目录
(3)一次一密密码(One Time Pad)(考点:选择、判断)
二、置换密码(Permutation Cipher)(又称换位密码)
一、替代密码(substitution cipher)
(一)主要特点
替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文;解密时则利用对应的逆替换表,将需要解密的密文依次通过查表,替换为相应的字符即可恢复出明文。
替代密码的密钥就是其替换表。
(二)分类—根据密码算法加解密时使用替换表多少的不同
1.单表替代密码(加解密时使用一个固定的替换表)
(1) 一般单表替代密码
明文空间:26个英文字母的集合 密文空间:26个英文字母的集合
密钥空间:K={ Π: Z26-Z26 | Π是置换 }
对任意Π属于K,加密变换:eπ(m)=π(m)=c 解密变换:dπ(c)= π-1(c)=m,π-1是Π的逆置换
(2) 移位密码(又叫加法密码)
明文空间M、密文空间C、密钥空间K满足 P=C=K={ 0,1,2,3.......25 }=Z26,即把26个英文字母与整数0—25一一对应,定义
加密变换:Ek(m) = m+k (mod 26)
解密变换:Dk(c) = c-k (mod26)
注:当K=3时,则此密码体制就是恺撒密码(Caesar Cipher)
(3) 仿射密码(重点、考点、必记)
明文空间和密文空间都为Z26,密钥空间K={ (k0,k1) | k0,k1Z26,gcd(k1,26)=1},gcd(k1,26)=1即k1与26互素,最大公约数为1
加密变换:c=Ek(m)=k1m+k0 (mod26)
解密变换:m=Dk(c)=k1-1(c-k0) (mod26)
其中,k1*k1的逆=1 mod26,当k1=1时即为移位密码,当k0=0时即为乘法密码
解题方法:
*加密:1、根据给出的明文字母写出对应的数字
2、带入加密变换解出密文对应的数字
3、根据解出的数字写出对应字母即为密文
*解密:1、根据辗转相除法求出k1的逆置换
2、根据给出的密文字母写出对应的数字
3、带入解密变换解出密文对应的数字
4、根据解出的数字写出对应字母即为明文
**若已知两个明密文对:直接带入加密变换中列出方程组求解未知数(两个方程式两个未知数可求解)
*求模m的明文空间、密文空间、密钥空间:Zm Zm m*(m)
例:模35的明文空间和密文空间都为Z35,(35)=4*6=24,所以密钥空间=24*35
2.多表替代密码(加解密时使用多个替换表)
(1)维吉尼亚密码
明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,可表示为M=C=K=(Z26)^n
其重复出现字母的距离是密钥长度的整数倍
(2)希尔密码(Hill)(重点)
基本思想:将n个明文字母通过线性变换将它们转换为n个密文字母,解密只需做一次逆变换即可
明文M与密文C均为n维向量,密钥K={ Z26上的n*n可逆矩阵 }
(判断矩阵是否可逆:计算矩阵的行列式,如果行列式的值不等于零,则矩阵可逆;如果行列式的值等于零,则矩阵不可逆)
加密变换:C=K*M(mod26)
解密变换:M=K-1 * C(mod26)
其中,K-1为K在模26上的逆矩阵,满足:K * K-1=K-1 * K=I(mod26),I为单位矩阵
》例题: 》解:
(3)一次一密密码(One Time Pad)(考点:选择、判断)
定义:若替代密码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。又称Vernam密码。
记:
1.香农从信息论的角度证明了这种密码体制在理论上是不可破译的
2.现实中,量子密码 。量子密钥分配协议:BB84通讯协议
3.量子通信—番建伟—墨子号(量子通信卫星)
4.实际上Vernam密码属于序列密码,加解密方法都使用模2加
5.该密码体制要求:密钥是真正的随机序列;密钥长度大于等于明文长度;每个密钥只使用一次
6.如果重复使用密钥,则该密码体制就很不安全
(4)Playfair密码
一种著名的双字母单表替代密码
二、置换密码(Permutation Cipher)(又称换位密码)
(一)主要特点
这种密码通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变;
这种密码是把明文中各字符的位置次序重新排列来得到密文的一种密码体制;
(二)分类
1.周期置换密码
(1)思想:将明文字符按一定长度n分组,把每组中的字符按1,2...n的一个置换重排位置次序来得到密文的一种加密方法。其密钥就是置换,在的描述中包含了分组长度的信息。解密时,对密文字符按长度n分组,并按的逆置换把魅族字符重排位置次序来得到明文。
(2)例题
2.列置换密码
(1)思想:将明文按行填写到一个列宽固定(设为m)的表格或矩阵中,然后按(1,2...m)的一个置换交换列的位置次序,再按列读出即得到密文。解密时,将密文按列填写到一个行数固定(设为m)的表格或矩阵中,然后按(1,2...m)的一个置换交换列的位置次序,再按行读出即得到明文。
(2)例题
三、轮转机密码
美国人Hebern发明了轮转密码机,简称轮转机(Rotor)。
未完待续............