传统的加密方法有哪些(密码的替代法包括哪些方式)

2023-03-24 13:36:17 密码用途 思思

本文只是概述几种简单的传统加密算法,没有DES,没有RSA,没有想象中的高端大气上档次的东东。。。但是都是很传统很经典的一些算法

首先,提到加密,比如加密一段文字,让其不可读,一般人首先会想到的是将其中的各个字符用其他一些特定的字符代替,比如,讲所有的A用C来表示,所有的C用E表示等等…其中早的代替算法就是由Julius Caesar发明的Caesar,它是用字母表中每个字母的之后的第三个字母来代替其本身的(C=E(3,p)=(p+3) mod 26),但是,这种加密方式,很容易可以用穷举算法来破解,毕竟只有25种可能的情况..

为了改进上诉算法,增加其破解的难度,我们不用简单的有序的替代方式,我们让替代无序化,用其中字母表的一个置换(置换:有限元素的集合S的置换就是S的所有元素的有序排列,且每个元素就出现一次,如S={a,b}其置换就只有两种:ab,ba),这样的话,就有26!种方式,大大的增加了破解的难度,但是这个世界聪明人太多,虽然26!很多,但是语言本身有一定的特性,每个字母在语言中出现的相对频率可以统计出来的,这样子,只要密文有了一定数量,就可以从统计学的角度,得到准确的字母匹配了。

上面的算法我们称之为单表代替,其实单表代替密码之所以较容易被攻破,因为它带有原始字母使用频率的一些统计学特征。有两种主要的方法可以减少代替密码里明文结构在密文中的残留度,一种是对明文中的多个字母一起加密,另一种是采用多表代替密码。

先说多字母代替吧,最著名的就是playfair密码,它把明文中的双字母音节作为一个单元并将其转换成密文的双字母音节,它是一个基于由密钥词构成的5*5的字母矩阵中的,一个例子,如密钥为monarchy,将其从左往右从上往下填入后,将剩余的字母依次填入剩下的空格,其中I/J填入同一个空格:

对明文加密规则如下:

1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。

2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。

3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。

4 若p1 p2相同,则插入一个事先约定的字母,比如Q 。

5 若明文字母数为奇数时,则在明文的末端添加某个事先约定的字母作为填充。

虽然相对简单加密,安全性有所提高,但是还是保留了明文语言的大部分结构特征,依旧可以破解出来,另一个有意思的多表代替密码是Hill密码,由数学家Lester Hill提出来的,其实就是利用了线性代数中的可逆矩阵,一个矩阵乘以它的逆矩阵得到单位矩阵,那么假设我们对密文每m个字母进行加密,那么将这m个字母在字母表中的序号写成矩阵形式设为P(如abc,[1,2,3]),密钥就是一个m阶的矩阵K,则C=P*K mod26,,解密的时候只要将密文乘上K的逆矩阵模26就可以了。该方法大大的增加了安全性。

什么是凯撒替换法

密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。这是一种简单的加密方法,这种密码的密度是很低的,只需简单地统计字频就可以破译。 现今又叫“移位密码”,只不过移动的为数不一定是3位而已。

密码术可以大致别分为两种,即易位和替换,当然也有两者结合的更复杂的方法。在易位中字母不变,位置改变;替换中字母改变,位置不变。

将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢记》。恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。

苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替换密码作了详细的描写。恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替。这种密码替换通常叫做恺撒移位密码,或简单的说,恺撒密码。

尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从1到25个位置的移位我们都可以使用, 因此,为了使密码有更高的安全性,单字母替换密码就出现了。

如:

明码表 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

密码表 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

明文 F O R E S T

密文 Y G K T L Z

只需重排密码表二十六个字母的顺序,允许密码表是明码表的任意一种重排,密钥就会增加到四千亿亿亿多种,我们就有超过4×1027种密码表。破解就变得很困难。

如何破解包括恺撒密码在内的单字母替换密码?

方法:字母频度分析

尽管我们不知道是谁发现了字母频度的差异可以用于破解密码。但是9世纪的科学家阿尔·金迪在《关于破译加密信息的手稿》对该技术做了最早的描述。

“如果我们知道一条加密信息所使用的语言,那么破译这条加密信息的方法就是找出同样的语言写的一篇其他文章,大约一页纸长,然后我们计算其中每个字母的出现频率。我们将频率最高的字母标为1号,频率排第2的标为2号,第三标为3号,依次类推,直到数完样品文章中所有字母。然后我们观察需要破译的密文,同样分类出所有的字母,找出频率最高的字母,并全部用样本文章中最高频率的字母替换。第二高频的字母用样本中2号代替,第三则用3号替换,直到密文中所有字母均已被样本中的字母替换。”

以英文为例,首先我们以一篇或几篇一定长度的普通文章,建立字母表中每个字母的频度表。

在分析密文中的字母频率,将其对照即可破解。

虽然设密者后来针对频率分析技术对以前的设密方法做了些改进,比如说引进空符号等,目的是为了打破正常的字母出现频率。但是小的改进已经无法掩盖单字母替换法的巨大缺陷了。到16世纪,最好的密码破译师已经能够破译当时大多数的加密信息。

局限性:

短文可能严重偏离标准频率,加入文章少于100个字母,那么对它的解密就会比较困难。

而且不是所有文章都适用标准频度:

1969年,法国作家乔治斯·佩雷克写了一部200页的小说《逃亡》,其中没有一个含有字母e的单词。更令人称奇的是英国小说家和拼论家吉尔伯特·阿代尔成功地将《逃亡》翻译成英文,而且其中也没有一个字母e。阿代尔将这部译著命名为《真空》。如果这本书用单密码表进行加密,那么频度分析破解它会受到很大的困难。

一套新的密码系统由维热纳尔(Blaise de Vigenere)于16世纪末确立。其密码不再用一个密码表来加密,而是使用了26个不同的密码表。这种密码表最大的优点在于能够克制频度分析,从而提供更好的安全保障。

古典密码安全算法有哪些?

世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为

棋盘密码,原因为该密码将26个字母放在5×5的方格里,i,j放在一个格子里,具体情

况如下表所示

1 2 3 4 5

1 a b c d e

2 f g h i,j k

3 l m n o p

4 q r s t u

5 v w x y z

这样,每个字母就对应了由两个数构成的字符αβ,α是该字母所在行的标号,β是列

标号。如c对应13,s对应43等。如果接收到密文为

43 15 13 45 42 15 32 15 43 43 11 22 15

则对应的明文即为secure message。

另一种具有代表性的密码是凯撒密码。它是将英文字母向前推移k位。如k=5,则密

文字母与明文与如下对应关系

a b c d e f g h i j k l m n o p q r s t u v w x y z

F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。此时,k就是密钥。为了

传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对1,b对2,……,y对

25,z对0。这样凯撒加密变换实际就是一个同余式

c≡m+k mod 26

其中m是明文字母对应的数,c是与明文对应的密文的数。

随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。选取k,b作为两

个参数,其中要求k与26互素,明文与密文的对应规则为

c≡km+b mod 26

可以看出,k=1就是前面提到的凯撒密码。于是这种加密变换是凯撒野加密变换的

推广,并且其保密程度也比凯撒密码高。

以上介绍的密码体制都属于单表置换。意思是一个明文字母对应的密文字母是确定

的。根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。方法是在大

量的书籍、报刊和文章中,统计各个字母出现的频率。例如,e出现的次数最多,其次

是t,a,o,I等等。破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频

率特征,就可以将该密码体制破译。

鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,

来弥补这个弱点,增加抗攻击能力。法国密码学家维吉尼亚于1586年提出一个种多表式

密码,即一个明文字母可以表示成多个密文字母。其原理是这样的:给出密钥

K=k[1]k[2]…k[n],若明文为M=m[1]m[2]…m[n],则对应的密文为C=c[1]c[2]…c[n]。

其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M为data security,密钥k=best,将明

文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为

C=EELT TIUN SMLR

从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程

度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加

密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓

的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了

的密码,因而这种密码在今天仍被使用着。

古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有

其参考价值。

请比较代替密码中移位密码、单表替代密码和多表替代密码哪种方法安全性好,为什么?

多表替代好。多表代换密码需要猜测更多的字母表,并且频率分布特性也变得平坦,所以使得密码破译更加困难

传统密码有些什么?摩斯密码是一种

莫尔斯密码,与其说是密码,不如说是电码。

因为辨识两种声音 滴 和 答,很容易。想分辨26种声音,并简单发送就难了。

1950年前的密码都算是传统密码,简单来说,有以下几种

替换加密法: 用一个字符替换另一个字符的加密方法。

换位加密法: 重新排列明文中的字母位置的加密法。

回转轮加密法: 一种多码加密法,它是用多个回转轮,每个回转轮实现单码加密。这些回转轮可以组合在一起,在每个字母加密后产生一种新的替换模式。

多码加密法:

一种加密法,其替换形式是:可以用多个字母来替换明文中的一个字母。

夹带法: 通过隐藏消息的存在来隐藏消息的方法。

三分密码

首先随意制造一个3个3×3的Polybius方格替代密码,包括26个英文字母和一个符号。然后写出要加密的讯息的三维坐标。讯息和坐标四个一列排起,再顺序取横行的数字,三个一组分开,将这三个数字当成坐标,找出对应的字母,便得到密文。

仿射密码......