§4.2密码的设计,解码与破译
密码的设计和使用至少可从追溯到四千多年前的埃及,巴比伦、罗马和希腊,历史极为久远。古代隐藏信息的方法主要有两大类:
其一为隐藏信息载体,采用隐写术等;
其二为变换信息载体,使之无法为一般人所理解。
在密码学中,信息代码被称为密码,加密
前的信息被称为明文,经加密后不为常人
所理解的用密码表示的信息被称为密文
(ciphertext),将明文转变成密文的过程被
称为加密(enciphering),其逆过程则被称
为解密(deciphering),而用以加密、解密
的方法或算法则被称为密码体制
(crytosystem)。
记全体明文组成的集合为U ,全体密文组成的集合为V ,称U 为明文空间,V 为密文空间。加密常利用某一被称为密钥的东西来实现,它通常取自于一个被称为密钥空间的含有若干参数的集合K 。按数学的观点来看,加密与解密均可被看成是一种变换:取一k ∈K ,u ∈U ,令,v 为明文u 在密钥K 下的密文,而解码则要用到K 的逆变换K -1,。由此可见,密码体系虽然可以千姿百态,但其关键还在于密钥的选取。
∀V v u k ∈−→−
随着计算机与网络技术的迅猛发展,大量各具特的密码体系不断涌现。离散数学、数论、计算复杂性、混沌、……,许多相当高深的数学知识都被用上,逐步形成了(并仍在迅速发展的)具有广泛应用面的现代密码学。
早期密码
替代密码
移位密码
construct用法
代数密码
1.代替法密码
代替法密码采用另一个字母表中的字母来代替明文中的字母,明文字母与密文字母保持一一对应关系,但采用的符号改变了。加密时,把明文换成密文,即将明文中的字母用密文字母表中对应位置上的字母取代。解密时,则把密文换成明文,即把密文中的字母用明文字母表中对应位置上的字母代回,解密过程是加密过程的逆过程。在代替法加密过程中,密文字母表即代替法密钥,密钥可以是标准字母表,也可以是任意建立的。
明文字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表KLMNOPQRSTUVWXYZABCDEFGHIJ 密钥常用一密钥单词或密钥短语生成混淆字母表。密钥单词
或密钥短语可以存放在识别码、通行字或密钥的秘密表格中。
混合一个字母表,常见的有两种方法,这两种方法都采用
了一个密钥单词或一个密钥短语。
方法1:
a)选择一个密钥单词或密钥短语,例如:construct
b)去掉其中重复的字母,得:constru
c)在修改后的密钥后面接上从标准字母表中去掉密钥中已有的字母后剩下的字母,得:
明文字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表CONSTRU ABDEFGHIJKLMPQVWXYZ 在设计密钥时,也可在明文字母表中选择一个特定字母,然后从该特定字母开始写密钥单词将密钥单词隐藏于其中。例如,对于上例,选取特定字母k,则可得:
明文字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表KLMPQVWXYZ CONSTRU ABDEFGHIJ
方法2:
a)选择一个密钥单词或密钥短语,例如:construct b)去掉其中重复的字母,得:constru
c)这些字母构成矩阵的第一行,矩阵的后续各行由标准字母表中去掉密钥单词的字母后剩下的字母构成
d)将所得矩阵中的字母按列的顺序排出
得:cugmyoahpznbiqsdjvrtekwrflx
按照此方法产生的字母表称为混淆字母表。还可以使用混淆数。混淆数由以下方法产生:a)选一密钥单词或密钥短语,例如:construct b)按照这些字母在标准字母表中出现的相对顺序给它们编号,对序列中重复的字母则自左向右编号,得:construct 143675928
c)自左向右选出这些数字,得到一个混淆数字组:143675928,混淆字母表由从小到大的顺序取矩阵中相应列得出。为增加保密性,在使用代替法时还可利用一些其他技巧,如单字母表对多字母表、单字母对多字母、多重代替等。