我们已经知道,一个密码体制由明文信源、密文、密钥与加密运算这四个基本要素构成,下面我们将进一步给出它们的数学模型。
1、明文信源 直观地讲,明文信源就是明文字母表或者明文字母。比如所有的英文字母、全部的中文字符就是典型的明文字母表。准确一点,明文信源还应当包含明文字母的概率分布。如果用X表示明文字母表,则它的元素x∈X则就是明文字母。在明文字母表中,不同的明文字母出现的频率往往是不同的,比如在26个英文字母中,一般来说字母“e”的频率最高;而在汉字中,可能是“的”字频率最高。
所以,一个明文信源记为S=[X,p(x)],其中X为明文字母表,p(x)为明文字母x∈X出现的概率,而且p(x)满足如下条件:对任何x∈X,p(x)≥0,且∑p(x)=1。
2、密文 密文由密文字母表Y和密文字母y∈Y组成,密文字母表一般是指密文可能使用的全部字母的集合,而y∈Y是它的元素。密文字母表可以与明文字母表相同,也可以不同。
3、密钥与加密运算 密钥用来从密码体制的一组加密运算中选择一个加密运算(或者称为加密步),密钥允许你按照以前制定的规则改变加密,比如每天,或每份报之后,或者每个字符之后。通常,密钥的组织和编排须利于它们允许通过简单的规则产生单独的加密步。加密方法的组合复杂度取决于在此方法下密钥的数量。
如果用K表示密钥空间,也就是选择加密步的参数集合,k∈K则称为一个密钥。 加密步就是明文字母表X到密文字母表Y的一个映射:E:X→Y,对每个x∈X。由于加密步并不是单一的,而是一族运算,因此我们就可以记为Ek=Ek(x),其中x∈X,k∈K。除特殊的编码方法外,如多名码或多音码,对于每个k∈K,Ek(x)都是X到Y的1-1映射。 通常要求用户对密钥的选择是随机的,而且密钥的选择与明文无关。这样密钥的使用概率p(k),k∈K与明文的出现概率就是互相独立的。
4、密码体制 在明确了密码体制的几个组成要素的数学模型后,我们就可以给出一个密码体制的数学模型。我们定义S={X,Y,K,p(x,k),Ek(x), x∈X,k∈K}为一个密码体制。实际上从运算的角度讲,密码体制包含加密系统和解密系统两部分。
如果一个密码体制设计完成,则相应的明文、密文、密钥之间的关系也就随之确定,用概率方法表示为:对任何x∈X,k∈K,y∈E(X),p(x,y,k)=p(x,k)=p(x)p(k)。
密码技术的应用一直伴随着人类文化的发展,其古老甚至原始的方法奠定了现代密码学的基础。使用密码的目标就是使一份消息或记录对非授权的人是不可理解的。可能有人认为这很容易,但你必须考虑原定的接收方是否能解读消息。如果接收方是没有经验的,随便写个便条他也可能很长时间无法读懂。因此不一定要求加密和解密方法特别复杂,它必须适应使用它的人员的智力、知识及环境。下面我们介绍古典密体制发展演化的过程。
1、古典加密方法 最为人们所熟悉的古典加密方法,莫过于隐写术。它通常将秘密消息隐藏于其它消息中,使真正的秘密通过一份无伤大雅的消息发送出去。隐写术分为两种,语言隐写术和技术隐写术。技术方面的隐写比较容易想象:比如不可见的墨水,洋葱法和牛奶法也被证明是普遍且有效的方法(只要在背面加热或紫外线照射即可复现)。语言隐写术与密码编码学关系比较密切,它主要提供两种类型的方法:符号码和公开代码。
符号码是以可见的方式,如手写体字或图形,隐藏秘密的书写。在书或报纸上标记所选择的字母,比如用点或短划线,这比上述方法更容易被人怀疑,除非使用显隐墨水,但此方法易于实现。一种变形的应用是降低所关心的字母,使其水平位置略低于其它字母,但这种降低几乎让人觉察不到。
一份秘密的信件或伪装的消息要通过公开信道传送,需要双方事前的约定,也就是需要一种公开代码。这可能是保密技术的最古老形式,公开文献中经常可以看到。东方和远东的商人和赌徒在这方面有独到之处,他们非常熟练地掌握了手势和表情的应用。在美国的纸牌骗子中较为盛行的方法有:手拿一支烟或用手挠一下头,表示所持的牌不错;一只手放在胸前并且跷起大拇指,意思是“我将赢得这局,有人愿意跟我吗?”右手手掌朝下放在桌子上,表示“是”,手握成拳头表示“不”。
特定行业或社会阶层经常使用的语言,往往被称为行话。一些乞丐、流浪汉及地痞流氓使用的语言还被称为黑话,它们是这些社会群体的护身符。其实也是利用了伪装,伪装的秘密因此也称为专门隐语。
黑社会犯罪团伙使用的语言特别具有隐语的特性,法语中黑话有很多例子,其中有的现在还成了通俗用法。比如rossignol (夜茑)表示“万能钥匙”,最早始于1460年;mouche(飞行)表示“告密者”,等等。
公开代码的第二种类型就是利用虚码和漏格进行隐藏:隐藏消息的规则比较常见的有:“某个特定字符后的第几个字符”,比如空格后的下一个字母(“家庭代码”,二战中在参战士兵中广为流传,但引起了审查机关的极大不满);更好一点的还有空格后的第三个字母,或者标点符号后的第三个字母。
漏格方法可以追溯到卡达诺(Cardano,1550年)时代,这是一种容易掌握的方法,但不足之处是双方需要相同的漏格,特别是战场上的士兵,使用时不太方便。
2、代替密码 代替密码就是将明文字母表中的每个字符替换为密文字母表中的字符。这里对应密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。代替密码有五种表现形式:
单表代替
即简单代替密码或者称为单字母代替,明文字母表中的一个字符对应密文字母表中的一个字符。这是所有加密中最简单的方法。
多名码代替
就是将明文字母表中的字符映射为密文字母表中的多个字符。多名码简单代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出现频率最高,降低对应密文字母出现频率的一种方法就是使用多名码,如e可能被密文5、13或25替代。
多音码代替
就是将多个明文字符代替为一个密文字符。比如将字母“i” 和“j”对应为“K”,“v”和“w”代替为“L”最古老的这种多字母加密始见于1563年由波他的《密写评价》(De furtiois literarum notis)一书。
多表代替
即由多个简单代替组成,也就是使用了两个或两个以上的代替表。比如使用有5个简单代替表的代替密码,明文的第一个字母用第一个代替表,第二个字母用第二个表,第三个字母用第三个表,以此类推,循环使用这五张代替表。多表代替密码由莱昂.巴蒂斯塔于1568年发明,著名的维吉尼亚密码和博福特密码均是多表代替密码。
密本
密本不同于代替表,一个密本可能是由大量代表字、片语、音节和字母这些明文单元和数字密本组组成。如1563- baggage,1673-bomb,2675-catch,2784-custom,3645-decide to,4728-from then on等等。在某种意义上,密本就是一个庞大的代替表,其基本的明文单位是单词和片语,字母和音节主要用来拼出密本中没有的单词。实际使用中,密本和代替表的区别还是比较明显的,代替表是按照规则的明文长度进行操作的,而密本是按照可变长度的明文组进行操作的。密本的最早出现在1400年左右,后来大多应用于商业领域。二战中盟军的商船密本,美国外交系统使用的GRAY密本就是典型的例子。
3、换位密码 在换位密码中,明文字符集保持不变,只是字母的顺序被打乱了。比如简单的纵行换位,就是将明文按照固定的宽度写在一张图表纸上,然后按照垂直方向读取密文。这种加密方法也可以按下面的方式解释:明文分成长为m个元素的块,每块按照n来排列。这意味着一个重复且宽度为m的单字母的多表加密过程,即分块换位是整体单元的换位。简单的换位可用纸笔容易实现,而且比分块换位出错的机会少。尽管它跑遍整个明文,但它并不比整体单元换位提供更多的密码安全。
在第二次大世界中,德军曾一度使用一种被称为bchi的双重纵行换位密码,而且作为陆军和海军的应急密码,只不过密钥字每天变换,并且在陆军团以下单位使用。此时英国人早就能解读消息了,两个不同的密钥字甚至三重纵行换位的使用也无济于事。
4、转轮密码 随着电动打字机的使用,电动密码机开始在保密通信中大显身手。在第二次世界大战中,转轮密码机的使用相当普遍。它主要利用机械运动和简单电子线路,有一个键盘和若干转轮,实际上它是维吉尼亚密码的一种实现。 每个转轮由绝缘的圆形胶板组成,胶板正反两面边缘线上有金属凸块,每个金属凸块上标有字母,字母的位置相互对齐。胶板正反两面的字母用金属连线接通,形成一个置换运算。不同的转轮固定在一个同心轴上,它们可以独立自由转动,每个转轮可选取一定的转动速度。例如,一个转轮可能被导线连通以完成用F代替A,用U 代替B,用L代替C等等。
为了防止密码分析,有的转轮密码机还在每个转轮上设定不同的位置号,使得转轮的位置、转轮的数量、转轮上的齿轮结合起来,增大机器的周期。
最著名的转轮密码机是德国人舍尔比乌斯设计的恩尼格马机和瑞典人哈格林设计的哈格林密码机(美国军方称为M-209)。
德国人使用的恩尼格马机共有5个转轮,可选择3个使用。转轮机中设计的一块插板及一个反射轮,可对一个明文字母操作两次。另一个特点是转轮的由齿轮控制,以形成不规则进位。波兰的密码研究人员最早破译了德国的恩尼格马,并将方法提供给了英国人。
M-209是二战中美军的主要加密设备,它是一种齿数可变的齿轮装置,有六个密钥轮,一个印字轮。在一次特定的加密作业中,有多少个齿,代替表就推移多少个位置,并用这个代替表加密。该设备的各个部件互相作用,产生一串互不相关的长周期密钥。
1、CAESAR体制 CAESAR 体制是一种单表加性密码体制,其明文字母表、密文字母表和密钥字母表相同,比如英文字母表。加密步可由如下简单的式子表示:y=x+k,其中x∈X, y∈Y,k∈K。最简单的一种就是第一个明文字母由其右边的第三个字母代替,由D代替,B由E代替,…,Y,由B代替,Z由C代替。广义的CAESAR体制引入两个密钥参数,加密步变为y=k1x+k2,其中x∈X,y∈Y,k1,k2∈K。
2、双字的Playfair体制 1854 年,查尔斯.惠斯通(Charles Wheatstone)发明了一种特殊的双叶双码代替密码,他的朋友莱昂.普莱弗尔(Lyon Playfair)将其推荐给政府和军界的高层人士。这种体制的首次使用是在克里米亚战争期间,正式报道的使用是在Boer战争中,其名称也就以 Playfair命名。军队很看重它的一点就是此方法既不需要表也不需要器械,易作为战地密码。英国军队差不多用了一个世纪,而且保证它一直是保密的。然而在一次世界大战中的1915年,德国人将其破译了。
PLAYFAIR加密步按如下方式进行:由一个口令字开始,将一个Z25上的置换表(省去了Z26中的Z)排成5×5方阵。
P A L M E
R S T O N
B C D F G
H I K Q U
V W X Y Z
或
T O M R S
D F G B C
K Q U H I
X Y Z V W
L M E P A
加密步没有定义双字母是同一字母的情况,还有最后一个字母不成对的情况。上述两个例子的结果是相同的。如果一个双字母的两个字母在同一行(或一列),则它们就用其右边(相应地,底下)的字母所代替,比如:am→LE ,dl→KT。
另一种情况是,两个字母不在同一行或同一列,则第一个字母由同一行中且在第二个字母的那一列的字母代替;第二个字母则由同一行中,且是第一个字母所在那一列的字母所代替,比如:ag→EC ,ho→QR。
3、维吉尼亚体制
维吉尼亚体制是最古老而且最著名的多表密码体制之一,它以法国密码学家Blaise de Vigenere(1523--1596)命名。与CAESAR密码体制相似,其密钥是逐步变化的。一般是用维吉尼亚方阵来进行加密和解密的。每列都可以看成是一个CAESAR体制,其中密钥是0、1、2...25。加密时,将在方阵中查找明文字母所在的行及CAESAR体制密钥所在的列,来确定密文字符。通常CAESAR体制的密钥用密钥字来表示。比如,用KEYSTREAM来加密TWOPERSONS,首先在方阵中查找第T行第K列的字母,则得到T 对应的密文字母D,以此类推。解密时,则查找D在K列的行位置。通常密钥字要重复使用,特别是对较长的明文。
加密方阵作为多表体制的基础,它具有多样性,即可选择其它容易记忆的方阵。这里值得一提的就是Beaufort方阵,它的行是维吉尼亚方阵行的逆序。
4、Hill体制 在Hill 密码体制中,明文空间和密文空间是相同的,比如英文字母集。首先对字母集中的字母进行编号,比如A为0号,B为1号,Z为25号,后面所有的运算都要模 26。然后选择一个可逆的d维方阵M,其元素是介于0和25之间的整数。加密过程为MP=C,当然这里的P和C都是d维列向量。更确切地说,每个d元明文字符定义了列向量P,分量是d元明文字符的编号。计算得到的列向量C再被译为d元密文字符。
尽管希尔密码体制看起来几乎没有实用价值,但它对密码学的发展却产生了深刻的影响。希尔发明的重要性在于它无可辩驳地表明:数学方法在密码学中的地位是不容置疑的。随后在30年代,大批数学家投身于密码学研究。
尽管古典密码体制受到当时历史条件的限制,没有涉及到非常高深或者复杂的理论,但在其慢长的发展演化过程中,已经充分表现出了现代密码学的两大基本思想-代替和换位,而且还将数学的方法引入到密码分析和研究中。这为后来密码学成为系统的学科以及相关学科的发展奠定了坚实的基础,如计算机科学、复杂性理论等等。
1、明文信源 直观地讲,明文信源就是明文字母表或者明文字母。比如所有的英文字母、全部的中文字符就是典型的明文字母表。准确一点,明文信源还应当包含明文字母的概率分布。如果用X表示明文字母表,则它的元素x∈X则就是明文字母。在明文字母表中,不同的明文字母出现的频率往往是不同的,比如在26个英文字母中,一般来说字母“e”的频率最高;而在汉字中,可能是“的”字频率最高。
所以,一个明文信源记为S=[X,p(x)],其中X为明文字母表,p(x)为明文字母x∈X出现的概率,而且p(x)满足如下条件:对任何x∈X,p(x)≥0,且∑p(x)=1。
2、密文 密文由密文字母表Y和密文字母y∈Y组成,密文字母表一般是指密文可能使用的全部字母的集合,而y∈Y是它的元素。密文字母表可以与明文字母表相同,也可以不同。
3、密钥与加密运算 密钥用来从密码体制的一组加密运算中选择一个加密运算(或者称为加密步),密钥允许你按照以前制定的规则改变加密,比如每天,或每份报之后,或者每个字符之后。通常,密钥的组织和编排须利于它们允许通过简单的规则产生单独的加密步。加密方法的组合复杂度取决于在此方法下密钥的数量。
如果用K表示密钥空间,也就是选择加密步的参数集合,k∈K则称为一个密钥。 加密步就是明文字母表X到密文字母表Y的一个映射:E:X→Y,对每个x∈X。由于加密步并不是单一的,而是一族运算,因此我们就可以记为Ek=Ek(x),其中x∈X,k∈K。除特殊的编码方法外,如多名码或多音码,对于每个k∈K,Ek(x)都是X到Y的1-1映射。 通常要求用户对密钥的选择是随机的,而且密钥的选择与明文无关。这样密钥的使用概率p(k),k∈K与明文的出现概率就是互相独立的。
4、密码体制 在明确了密码体制的几个组成要素的数学模型后,我们就可以给出一个密码体制的数学模型。我们定义S={X,Y,K,p(x,k),Ek(x), x∈X,k∈K}为一个密码体制。实际上从运算的角度讲,密码体制包含加密系统和解密系统两部分。
如果一个密码体制设计完成,则相应的明文、密文、密钥之间的关系也就随之确定,用概率方法表示为:对任何x∈X,k∈K,y∈E(X),p(x,y,k)=p(x,k)=p(x)p(k)。
密码技术的应用一直伴随着人类文化的发展,其古老甚至原始的方法奠定了现代密码学的基础。使用密码的目标就是使一份消息或记录对非授权的人是不可理解的。可能有人认为这很容易,但你必须考虑原定的接收方是否能解读消息。如果接收方是没有经验的,随便写个便条他也可能很长时间无法读懂。因此不一定要求加密和解密方法特别复杂,它必须适应使用它的人员的智力、知识及环境。下面我们介绍古典密体制发展演化的过程。
1、古典加密方法 最为人们所熟悉的古典加密方法,莫过于隐写术。它通常将秘密消息隐藏于其它消息中,使真正的秘密通过一份无伤大雅的消息发送出去。隐写术分为两种,语言隐写术和技术隐写术。技术方面的隐写比较容易想象:比如不可见的墨水,洋葱法和牛奶法也被证明是普遍且有效的方法(只要在背面加热或紫外线照射即可复现)。语言隐写术与密码编码学关系比较密切,它主要提供两种类型的方法:符号码和公开代码。
符号码是以可见的方式,如手写体字或图形,隐藏秘密的书写。在书或报纸上标记所选择的字母,比如用点或短划线,这比上述方法更容易被人怀疑,除非使用显隐墨水,但此方法易于实现。一种变形的应用是降低所关心的字母,使其水平位置略低于其它字母,但这种降低几乎让人觉察不到。
一份秘密的信件或伪装的消息要通过公开信道传送,需要双方事前的约定,也就是需要一种公开代码。这可能是保密技术的最古老形式,公开文献中经常可以看到。东方和远东的商人和赌徒在这方面有独到之处,他们非常熟练地掌握了手势和表情的应用。在美国的纸牌骗子中较为盛行的方法有:手拿一支烟或用手挠一下头,表示所持的牌不错;一只手放在胸前并且跷起大拇指,意思是“我将赢得这局,有人愿意跟我吗?”右手手掌朝下放在桌子上,表示“是”,手握成拳头表示“不”。
特定行业或社会阶层经常使用的语言,往往被称为行话。一些乞丐、流浪汉及地痞流氓使用的语言还被称为黑话,它们是这些社会群体的护身符。其实也是利用了伪装,伪装的秘密因此也称为专门隐语。
黑社会犯罪团伙使用的语言特别具有隐语的特性,法语中黑话有很多例子,其中有的现在还成了通俗用法。比如rossignol (夜茑)表示“万能钥匙”,最早始于1460年;mouche(飞行)表示“告密者”,等等。
公开代码的第二种类型就是利用虚码和漏格进行隐藏:隐藏消息的规则比较常见的有:“某个特定字符后的第几个字符”,比如空格后的下一个字母(“家庭代码”,二战中在参战士兵中广为流传,但引起了审查机关的极大不满);更好一点的还有空格后的第三个字母,或者标点符号后的第三个字母。
漏格方法可以追溯到卡达诺(Cardano,1550年)时代,这是一种容易掌握的方法,但不足之处是双方需要相同的漏格,特别是战场上的士兵,使用时不太方便。
2、代替密码 代替密码就是将明文字母表中的每个字符替换为密文字母表中的字符。这里对应密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。代替密码有五种表现形式:
单表代替
即简单代替密码或者称为单字母代替,明文字母表中的一个字符对应密文字母表中的一个字符。这是所有加密中最简单的方法。
多名码代替
就是将明文字母表中的字符映射为密文字母表中的多个字符。多名码简单代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出现频率最高,降低对应密文字母出现频率的一种方法就是使用多名码,如e可能被密文5、13或25替代。
多音码代替
就是将多个明文字符代替为一个密文字符。比如将字母“i” 和“j”对应为“K”,“v”和“w”代替为“L”最古老的这种多字母加密始见于1563年由波他的《密写评价》(De furtiois literarum notis)一书。
多表代替
即由多个简单代替组成,也就是使用了两个或两个以上的代替表。比如使用有5个简单代替表的代替密码,明文的第一个字母用第一个代替表,第二个字母用第二个表,第三个字母用第三个表,以此类推,循环使用这五张代替表。多表代替密码由莱昂.巴蒂斯塔于1568年发明,著名的维吉尼亚密码和博福特密码均是多表代替密码。
密本
密本不同于代替表,一个密本可能是由大量代表字、片语、音节和字母这些明文单元和数字密本组组成。如1563- baggage,1673-bomb,2675-catch,2784-custom,3645-decide to,4728-from then on等等。在某种意义上,密本就是一个庞大的代替表,其基本的明文单位是单词和片语,字母和音节主要用来拼出密本中没有的单词。实际使用中,密本和代替表的区别还是比较明显的,代替表是按照规则的明文长度进行操作的,而密本是按照可变长度的明文组进行操作的。密本的最早出现在1400年左右,后来大多应用于商业领域。二战中盟军的商船密本,美国外交系统使用的GRAY密本就是典型的例子。
3、换位密码 在换位密码中,明文字符集保持不变,只是字母的顺序被打乱了。比如简单的纵行换位,就是将明文按照固定的宽度写在一张图表纸上,然后按照垂直方向读取密文。这种加密方法也可以按下面的方式解释:明文分成长为m个元素的块,每块按照n来排列。这意味着一个重复且宽度为m的单字母的多表加密过程,即分块换位是整体单元的换位。简单的换位可用纸笔容易实现,而且比分块换位出错的机会少。尽管它跑遍整个明文,但它并不比整体单元换位提供更多的密码安全。
在第二次大世界中,德军曾一度使用一种被称为bchi的双重纵行换位密码,而且作为陆军和海军的应急密码,只不过密钥字每天变换,并且在陆军团以下单位使用。此时英国人早就能解读消息了,两个不同的密钥字甚至三重纵行换位的使用也无济于事。
4、转轮密码 随着电动打字机的使用,电动密码机开始在保密通信中大显身手。在第二次世界大战中,转轮密码机的使用相当普遍。它主要利用机械运动和简单电子线路,有一个键盘和若干转轮,实际上它是维吉尼亚密码的一种实现。 每个转轮由绝缘的圆形胶板组成,胶板正反两面边缘线上有金属凸块,每个金属凸块上标有字母,字母的位置相互对齐。胶板正反两面的字母用金属连线接通,形成一个置换运算。不同的转轮固定在一个同心轴上,它们可以独立自由转动,每个转轮可选取一定的转动速度。例如,一个转轮可能被导线连通以完成用F代替A,用U 代替B,用L代替C等等。
为了防止密码分析,有的转轮密码机还在每个转轮上设定不同的位置号,使得转轮的位置、转轮的数量、转轮上的齿轮结合起来,增大机器的周期。
最著名的转轮密码机是德国人舍尔比乌斯设计的恩尼格马机和瑞典人哈格林设计的哈格林密码机(美国军方称为M-209)。
德国人使用的恩尼格马机共有5个转轮,可选择3个使用。转轮机中设计的一块插板及一个反射轮,可对一个明文字母操作两次。另一个特点是转轮的由齿轮控制,以形成不规则进位。波兰的密码研究人员最早破译了德国的恩尼格马,并将方法提供给了英国人。
M-209是二战中美军的主要加密设备,它是一种齿数可变的齿轮装置,有六个密钥轮,一个印字轮。在一次特定的加密作业中,有多少个齿,代替表就推移多少个位置,并用这个代替表加密。该设备的各个部件互相作用,产生一串互不相关的长周期密钥。
1、CAESAR体制 CAESAR 体制是一种单表加性密码体制,其明文字母表、密文字母表和密钥字母表相同,比如英文字母表。加密步可由如下简单的式子表示:y=x+k,其中x∈X, y∈Y,k∈K。最简单的一种就是第一个明文字母由其右边的第三个字母代替,由D代替,B由E代替,…,Y,由B代替,Z由C代替。广义的CAESAR体制引入两个密钥参数,加密步变为y=k1x+k2,其中x∈X,y∈Y,k1,k2∈K。
2、双字的Playfair体制 1854 年,查尔斯.惠斯通(Charles Wheatstone)发明了一种特殊的双叶双码代替密码,他的朋友莱昂.普莱弗尔(Lyon Playfair)将其推荐给政府和军界的高层人士。这种体制的首次使用是在克里米亚战争期间,正式报道的使用是在Boer战争中,其名称也就以 Playfair命名。军队很看重它的一点就是此方法既不需要表也不需要器械,易作为战地密码。英国军队差不多用了一个世纪,而且保证它一直是保密的。然而在一次世界大战中的1915年,德国人将其破译了。
PLAYFAIR加密步按如下方式进行:由一个口令字开始,将一个Z25上的置换表(省去了Z26中的Z)排成5×5方阵。
P A L M E
R S T O N
B C D F G
H I K Q U
V W X Y Z
或
T O M R S
D F G B C
K Q U H I
X Y Z V W
L M E P A
加密步没有定义双字母是同一字母的情况,还有最后一个字母不成对的情况。上述两个例子的结果是相同的。如果一个双字母的两个字母在同一行(或一列),则它们就用其右边(相应地,底下)的字母所代替,比如:am→LE ,dl→KT。
另一种情况是,两个字母不在同一行或同一列,则第一个字母由同一行中且在第二个字母的那一列的字母代替;第二个字母则由同一行中,且是第一个字母所在那一列的字母所代替,比如:ag→EC ,ho→QR。
3、维吉尼亚体制
维吉尼亚体制是最古老而且最著名的多表密码体制之一,它以法国密码学家Blaise de Vigenere(1523--1596)命名。与CAESAR密码体制相似,其密钥是逐步变化的。一般是用维吉尼亚方阵来进行加密和解密的。每列都可以看成是一个CAESAR体制,其中密钥是0、1、2...25。加密时,将在方阵中查找明文字母所在的行及CAESAR体制密钥所在的列,来确定密文字符。通常CAESAR体制的密钥用密钥字来表示。比如,用KEYSTREAM来加密TWOPERSONS,首先在方阵中查找第T行第K列的字母,则得到T 对应的密文字母D,以此类推。解密时,则查找D在K列的行位置。通常密钥字要重复使用,特别是对较长的明文。
加密方阵作为多表体制的基础,它具有多样性,即可选择其它容易记忆的方阵。这里值得一提的就是Beaufort方阵,它的行是维吉尼亚方阵行的逆序。
4、Hill体制 在Hill 密码体制中,明文空间和密文空间是相同的,比如英文字母集。首先对字母集中的字母进行编号,比如A为0号,B为1号,Z为25号,后面所有的运算都要模 26。然后选择一个可逆的d维方阵M,其元素是介于0和25之间的整数。加密过程为MP=C,当然这里的P和C都是d维列向量。更确切地说,每个d元明文字符定义了列向量P,分量是d元明文字符的编号。计算得到的列向量C再被译为d元密文字符。
尽管希尔密码体制看起来几乎没有实用价值,但它对密码学的发展却产生了深刻的影响。希尔发明的重要性在于它无可辩驳地表明:数学方法在密码学中的地位是不容置疑的。随后在30年代,大批数学家投身于密码学研究。
尽管古典密码体制受到当时历史条件的限制,没有涉及到非常高深或者复杂的理论,但在其慢长的发展演化过程中,已经充分表现出了现代密码学的两大基本思想-代替和换位,而且还将数学的方法引入到密码分析和研究中。这为后来密码学成为系统的学科以及相关学科的发展奠定了坚实的基础,如计算机科学、复杂性理论等等。