乘积和迭代:多种加密方法混合使用 对一个加密函数多次迭代
古典密码编码方法:
置换,代替,加法
把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。
最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。
⑴单表代替密码①、加法密码A和B是有 n个字母的字母表。
定义一个由A到B的映射:f:A→B
f(ai )= bi=aj
j=i+k mod n
加法密码是用明文字母在字母表中后面第 k个字母来代替。
K=3 时是著名的凯撒密码。
恺撒密码——历史上第一个密码技术
“恺撒密码”是古罗马恺撒大帝在营救西塞罗战役时用来保护重要军情的加密系统(高卢战记)。②、乘法密码?A和B是有n个字母的字母表。?定义一个由A到B的映射:f:A→B f(ai )= bi= aj j=ik mod n 其中,(n,k)=1。?注意:只有(n,k)=1,才能正确解密。③密钥词组代替密码随机选一个词语,去掉其中的重复字母,写到矩阵的第一行,从明文字母表中去掉这第一行的字母,其余字母顺序写入矩阵。然后按列取出字母构成密文字母表
⑵、多表代替密码?单表代替密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替。?构造多个密文字母表,?在密钥的控制下用相应密文字母表中的一个字母来代替明文字母表中的一个字母。一个明文字母有多种代替。? Vigenere密码:著名的多表代替密码(3)、代数密码:① Vernam密码明文、密文、密钥都表示为二进制位:
M=m1,m2,… ,mn K =k1,k2,… ,kn C =c1,c2,… ,cn② 加密c1= mi♁ ki ,i=1,2,… ,n
解密 : m1= ci♁ ki ,i=1,2,… ,n③因为加解密算法是模2加,所以称为代数密码。④对合运算f=f-1,模 2加运算是对合运算。
密码算法是对和运算,则加密算法=解密算法,工程实现工作量减半。⑤ Vernam密码经不起已知明文攻击。⑥如果密钥序列有重复,则Vernam密码是不安全的。⑦一种极端情况一次一密
? 密钥是随机序列。
? 密钥至少和明文一样长。
? 一个密钥只用一次。⑧一次一密是绝对不可破译的,但它是不实用的。⑨一次一密给密码设计指出一个方向,人们用序列密码逼近一次一密。