- 什么是代替密码
使用加法方式构造一种代替密码。
五元组(M,C,K,E,D)中各项如下所示:
明文
case
case
加密算法:
e(x)=x+a(mod26)a∈Z/(26)
e(x)=x+a(mod26)a∈Z/(26)
密钥:
a=5
a=5
密文:
HFYJ
HFYJ
解密算法:
x=e(x)−a(mod26)a∈Z/(26)
x=e(x)−a(mod26)a∈Z/(26)
仿射密码分析
设计思想
仿射密码由加法密码和乘法密码结合构成,由于加法和乘法相互独立,可以实现更多种类的代替密码。对于仿射密码的加密过程
e(x)=ax+b(mod26)a,b∈Z/(26)
e(x)=ax+b(mod26)a,b∈Z/(26)
当且仅当gcd(a,26)=1gcd(a,26)=1时具有唯一解(即可逆)。其中a的取值为(1,3,5,7,9,11,15,17,19,21,23,25)共12个。
(a取值为1时退化为加法密码);b取值为0到25,共26种(当b取值为0时退化为乘法密码)。在a=1,b=0a=1,b=0时,相当于未加密。
通过C++实现仿射密码所有的26×12=31226×12=312种不同情况的加密过程。
通过Matlab对字符频率进行统计分析。



