1. 古典密码
古典密码主要采用代换和置换技术,该技术仍然是构造现代对称加密算法的核心技术。研究古典密码对于理解、构造和分析现代密码都是非常有必要的。
1.1 代换密码
最简单的代换密码是单表代换密码,是指对于一个给定的加密密钥,明文消息空间中的每一个元素被代换成密文消息空间中的唯一元素,单表代换不能抵抗频率分析攻击。
代表算法: 移位密码(凯撒密码)、乘数密码、仿射密码、多项式密码、密钥短语密码等
移位密码:在凯撒密码中 N=26, k = 3
加密变换:Ek(m) = m + k = c mod N;
解密变换:Dk(c) = c - k = m mod N;
乘数密码:采用的是仿射变换 f(a) = b = a[j];
加密变换:j = j * k mod N;
解密变换:j = j * k^(-1) mod N;
其中(k, N) = 1; k * k^(-1) mod N = 1;
仿射密码:加法密码和乘法密码结合就构成仿射密码
仿射密码的加密 :C= Ek(m)=(k1m+k2) mod n
解密算法 :M= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)modn = 1) 仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。多项式密码:密钥短语密码: