应用密码学之古典密码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k = (k 1 , k 2 ,L , k n) ∈ K ,密文
c = E k (m) = (m1 + k 1 , m2 + k 2 , K , mn + k n )
其中的加法都是模 q加法 .显然,简单加法密码的 密钥量为 q n .
解密变换是什么
2. 简单乘法密码
2. 简单乘法密码
* 设 X n = Yn = Zn 1 ≤ i ≤ n}. 对任意 q , K = {( k 1 , k 2 ,L , k n | k i ∈ z q ,
明 a b c d e f g h i j k l mn o 文 字 母 p q r s t u v w x y z
密 c i p h e r a b d f g j k l m n o q s 文 字 母
Baidu Nhomakorabea
t
u v
w x
y
z
注意:要将密钥字内的重字母、空格及标点符号忽略。
例1
明 a b c d e f g h i j k l mn o 文 字 母 p q r s t u v w x y z
明 a b c d e f g h i j k l mn o p 文 字 母 密 d e f g h i j k l mn o p q r s 文 字 母 q r s t u v w x y z
t u v
w x
y z
a b c
**凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己 的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。
4. 简单置换密码
4. 简单置换密码
设 X n = Yn = Zn 1 ≤ i ≤ n}. q , K = {( k 1 , k 2 ,L , k n ) | k i 是 Z q 上的置换,
对任意的 m = ( m1 , m 2 ,L , m n ) ∈ X n , k = ( k 1 , k 2 ,L k n ) ∈ K ,密文
如何解密?请写出解密方法。
2. Vigenere体制
2. Vigenere体制
例: 试加密 caesarcode. 解密: kdssbeluwkgdb.
2 标准字头密码体制 2. 标准字头密码体制
这是一种置换密码.它利用一个密钥字来构造置换作为密钥.譬如, 如果选择cipher作为密钥字,则标准字头密码体制中的明文字母与密 文字母的对应关系为表2.3所示.(有时也称密钥字密码体制) 表2.3
第二章 古典密码
第二章 古典密码
•2.1 古典密码中的基本加密运算 ¾ 2.1.1 单表古典密码中的基本加密算法 ¾ 2.1.2 多表古典密码中的基本加密运算 •2.2 几种典型的古典密码体制 ¾ 2.2.1 几种典型的单表古典密码体制 ¾ 2.2.2 几种典型的多表古典密码体制 •2.3 古典密码的统计分析 ¾ 2.3.1 单表古典密码的统计分析 ¾ 2.3.2 多表古典密码的统计分析
加密方法如下:
Playfair体制
(1)如果 m1和 m2在P中的同一行,则密文 c1 和 c 2为紧靠 m1 和 m2 右 端的字母.这里将第一列看作最后一列的右端. (2)如果 m1和 m2在P中的同一列,则密文 c1 和 c 2为紧靠 m1 和 m2 下 方的字母.这里将第一行看作最后一行的下端. (3)如果 m1和 m2 既不在P的同一行又不在同一列,则密文 c1 和 c 2 分别为 m1 和 m2 确定的矩形的其他两个角上的字母. c1 和 m1 在同一行,c 2 和 m2 在同一行.
m = k −1 c mod q
显然,乘法密码的密钥量为ϕ (q ).
k
−1
是 k 的 mod q 乘法逆, 即 k −1 k = 1 mod q, 求逆算法见5.2.4.
3. 仿射密码
3. 仿射密码
设X = Y = Z q , K = {( k1 , k 2) | k1 ∈ z q , k 2 ∈ z* 对任意m ∈ X , k = (k1 , k 2) ∈ K , q}.
c = E k (m) = (mσ (1) , mσ (2) , L , mσ ( n )).
显然,换位密码的密钥量为 n!.
6. 广义置换密码 6. 广义置换密码
设 X n = Yn = Zn q,
n K为 Z n q 上的全体置换的集合 .对任意的 m ∈ X , k = σ ∈ K , 密文
例2.1 设密钥矩阵
⎛c ⎜ ⎜r p =⎜g ⎜ ⎜o ⎜v ⎝ i a k q w p b l s x h d m t y e⎞ ⎟ f⎟ n⎟ ⎟ u⎟ z⎟ ⎠
Playfair体制
明文 Playfair cipher was actually invented by wheatstone. 将明文分组为 pl ay fa ir ci ph er wa sa ct ua lq ly in ve nt ed ts to ne 则密文为 bs dw rb ca ip he cf ik qb ho qf ks mx ek zc mu hf dx yi if ut uq uf
k = (< k11 , k 21 > , < k 12 , k 22 > ,L ,< k1n , k 2 n >) ∈ K ,
密文
c = E k (m) = (k 11 + k 21 m1 , k 12 + k 22 m2 , L , k 1n + k 2 n mn )
n n
其中的加法和乘法都是模q的.显然,它的密钥量为 q ( ϕ q) .
例: 试加密 caesarcode.
2.2.1 几种典型的单表古典密码体制
明 a b c d e f g h i j k l mn o p 文 字 母 密 d e f g h i j k l mn o p q r s 文 字 母 q r s t u v w x y z
t u v
w x
y z
a b c
c = E k (m) = (k 1 (m1), k 2 (m2),L , k n (mn ))
显然,简单置换密码的密钥量为 (q! )n .
5. 换位密码 5. 换位密码
设 X n = Yn = Zn 密钥空间 K 为{1, 2, L,n }上的全体置换的集合 .对任意明文 q,
m = (m1 , m2 ,L , mn) ∈ X n , k = σ ∈ K ,密文
加密方法如下:
Playfair体制其实是由英国著名科学家 Charles Wheatstone(惠斯通电桥的设计者) 发明的. 名字取自于率先发起使用此密码体 制的Lione Playfair.
2.2.2 几种典型的多表古典密码体制
1. Playfair体制
Playfair体制的密钥是一个 5 × 5 的矩阵P = ( pij )5×5 .构造方法如下: (1)构造字母表{a,b,c,d,e,f,g,h,i,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z} 的一个置换.这里将j当作i,实际只有25个字母. (2)将所得置换按行排列成一个 5 × 5 的矩阵P = ( pij )5×5 用playfair体制对明文字母串进行加密时,首先在明文字母串的适 当位置插入一些特定的字母,譬如字母q,使得明文字母串的长度为偶 数,并且将明文的字母串案两个字母一组进行分组,每组中的两个 字母不同.对任意的明文字母对m1 m2 ,设它们对应的密文对为 c1 c 2
c = E k (m) = α + mH
其中的运算都是模 q的. 显然,广义仿射密码的 密钥量为 q r n , 其中 r n 为
n
Z q 上的不同的 n 阶可逆方阵的个数 .
2.2 几种典型的古典密码体制
下表给出了字母和数字的对应关系
字母 数字 字母 数字 字母 数字
a b c d e f g h i
m = ( m1 , m2 ,L , mn ) ∈ X n , k = (k 1 , k 2 ,L , k n) ∈ K ,密文
c = E k (m) = (m1 k 1 , m2 k 2 , K , mn k n )
其中的乘法都是模q乘法.显然,简单乘法密码的密钥量为ϕ ( q ) .
n
3. 简单仿射密码 3. 简单仿射密码
设 X n = Yn = Zn q,
K = {(< k11 , k 21 > , < k12 , k 22 > ,L , < k1n , k 2 n >) | k1i ∈ Zq , k 2i ∈ Z∗ q ,1 ≤ i ≤ n}.
对任意的 m = ( m 1 , m 2 ,L , m n ) ∈ X n ,
密 c i p h e r a b d f g j k l m n o q s 文 字 母
t
u v
w x
y
z
用此密表对shaanxi normal university 加密. 解密 Wejpmke. 例2. 假设密钥字为information security,构造对应的密 表.
2.2.2 几种典型的多表古典密码体制
0 1 2 3 4 5 6 7 8
j k l m n o p q r
9 10 11 12 13 14 15 16 17
s t u v w x y z
18 19 20 21 22 23 24 25
2.2.1 几种典型的单表古典密码体制
1. Caesar体制
Caesar体制是一种典型的加法密码,其密钥 k = 3. 表2.2给出了 该体制的明文字母和密文字母的对应关系. 表2.2
2.1古典密码中的基本加密运算
定义
对于一个密码体制,如果明文字母对应的密文字母在密文中保 持不变,则称其为单表密码体制;如果明文中不同位置的同一明文 字母在密文中对应的密文字母不同,则称其为多表密码体制.
2.1.1 单表古典密码中的基本加密算法
1. 加法密码
设X = Y = Z q , K = Z q . 对任意的m ∈ X,k ∈ K,密文
c = E k ( m) = ( m + k ) mod q
显然,加法密码的密钥量为q.
解密变换为
m = Dk (c) = (c − k ) mod q
2. 乘法密码
2. 乘法密码
设X = Y = Z q , K = Z ∗ q . 对任意的 m ∈ X,k ∈ K,密文
解密变换为:
c = E k ( m ) = km modq
c = E k (m) = σ (m).
显然,广义置换密码的密钥量为(q n)!
7. 广义仿射密码 7. 广义仿射密码
设 X n = Yn = Zn K = {(α , H ) | α ∈ Z n q, q , H 为 Z q 上的阶为 n 的可逆方阵 }
对任意的 m = ( m1 , m 2 , L , m n ) ∈ X n , k = (α , H ) ∈ K , 密文
密文
c = E k (m) = (k1 + k 2 m) mod q.
解密变换为
1 m = k− 2 (c − k 1) mod q
显然,加法密码和乘法密码都是仿射密码的特例.仿射密码的
密钥量为qϕ (q).
4. 置换密码
4. 置换密码
设X = Y = Z q , K为 z q 上全体置换的集合. 对任意的m ∈ X ,
1. Playfair体制
Playfair体制的密钥是一个 5 × 5 的矩阵P = ( pij )5×5 .构造方法如下: (1)构造字母表{a,b,c,d,e,f,g,h,i,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z} 的一个置换.这里将j当作i,实际只有25个字母. (2)将所得置换按行排列成一个 5 × 5 的矩阵P = ( pij )5×5 用playfair体制对明文字母串进行加密时,首先在明文字母串的适 当位置插入一些特定的字母,譬如字母q,使得明文字母串的长度为偶 数,并且将明文的字母串案两个字母一组进行分组,每组中的两个 字母不同.对任意的明文字母对m1 m2 ,设它们对应的密文对为 c1 c 2
k = σ ∈ K ,密文
c = E k ( m) = σ ( m ).
显然仿射密码是置换密 码的特例 .置换密码的密钥量为 q!.
2.1.2 多表古典密码中的基本加密运算
1. 简单加法密码
n n 设 X n = Yn = Zn q , K = Z q . 对任意的 m = ( m1 , m 2 ,L , m n ) ∈ X ,