加密术语
• 明文(plaintext/message):是加密之前的字符、符号;
• 密文(ciphertext):是加密之后的字符、符号;
• 密钥(key) :是在明文转换为密文或将密文转换为明文的算法中输入的参数;
• 加密(encryption) :以某种特殊的算法改变原有的(明文)信息数据过程;
• 解密(decryption) :是从密文恢复出原有的(明文)信息数据的过程。
代换密码( substitution ):代换是古典密码中用到的最基本的处理技巧之一。所谓代换,就是将明文中的一个字母由其它字母、数字或符号替代的一种方法。又分为:移位(凯撒)密码、仿射密码、单表代换、多表代换
移位 (凯撒)密码
明文p ∈Z26,密文c ∈Z26 ,密钥k取[1,25]
加密:c = E(p) = (p + k) mod 26
解密:p = D(c) = (c – k) mod 26
仿射密码
• 数学描述
明文p ∈Z26,密文c ∈Z26 ,
密钥k=(a,b) ∈ Z26 * × Z26 且gcd(a,26)=1.
加密:c = E(p) = (a × p + b) mod 26
解密:p = D(c) = (c – b) × a-1mod 26
例:令密钥k=(7,3), 且gcd(7,26)=1.
明文hot=(7,14,19)
加密:
(7 × 7 + 3) mod 26 = 0
(7 × 14 + 3) mod 26 =23
(7 × 19 + 3) mod 26 =6
密文为(0,23,6)=(a,x,g)
解密:7 -1=15=-11 mod 26
(0- 3) × 15 mod 26 = 7
(23- 3) × 15 mod 26 =14
(6- 3) × 15 mod 26 =19
明文为(7,14,19)=(h, o,t)
单表代换密码
• 数学描述
明文p ∈Z26,密文c ∈Z26 ,
密钥k ∈ {∏|定义在0,2,…,25上的置换}
加密
c = k(p)
解密
p = k-1 (c)
多表代换密码
简化多表代换密码-维吉尼亚密码(VigenèreCipher):由26个类似 Caesar密码的代换表组成
维吉尼亚密码数学描述:
明文p ∈Z26,密文c∈Z26,密钥k∈(Z26)m
加密
c=(p1+k1 , p2+k2 , …, pm+km, pm+1+k1 , …) mod 26;
解密
p=(c1 -k1 , c2 -k2 , …, cm-km, cm+1-k1 , …) mod 26
置换密码
置换密码(permutation):是古典密码中用到的另一个最基本的处理技巧。将明文字符按照某种规律重新排列而形成密文的过程。
数学描述
明文p ∈(Z26) m,密文c ∈ (Z26) m ,
密钥k ∈{∏|定义在1,2,…,m上的置换}
加密
c= (p∏(1) ,p∏(2) ,…,p∏(m));
解密
p = (c∏ -1 (1) ,c∏ -1 (2) ,…,c∏ -1 (m))
例:密钥

明文:she sells sea shells by the shore
分组:shesel lsseas hellsb ythesh ore ‘z’ ‘z’ ‘z’
置换:EESLSH SALSES LSHBLE HSYHET E ‘z’ O ‘z’ ‘z’ R
希尔密码(Hill cipher)
明文p ∈(Z26) m,密文c ∈ (Z26) m ,
密钥K ∈{定义在Z26上m×m的可逆矩阵}
加密
c = p * K mod 26
解密
p = c * K -1 mod 26

转轮密码(Rotor Machine)

惟密文攻击
人类的语言存在冗余,以英文文档为例:
Ø 字母e 是使用频率最高的
Ø 其次是T,R,N,I,O,A,S
Ø Z,J,K,Q,X 很少使用
Ø A、I、U很少用在词尾,E、N、R常出现在词尾。E、S、D作为字母结尾字母的单词超过一半,T、A、S、W为起始字母的单词约占一半。
统计攻击(频率攻击)
Ø 假设:根据统计规律分析假设某些结论。
Ø 推断:在假设的前提下,推断出一些结论。
ü双频
ü字母跟随关系
ü构词规则
ü词义
Ø 验证发展:填上破译出的字母,根据词义、构词规则不断发展
移位密码、仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以直接用统计分析法