密码学-第2章古典密码
实验二 古典密码

实验2 古典密码1.实验目的(1)了解古典密码中的基本加密运算。
(2)了解几种典型的古典密码体制。
(3)掌握古典密码的统计分析方法。
2.实验内容(1)古典密码体制①简单移位加密(单表代换)该加密方法中,加密时将明文中的每个字母向前推移K位。
经典恺撒密码加密变换就是这种变换,取k=3。
步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。
图2-1加载文件步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simple shift”选项,并选择移位值“shift value”为3,加密步骤1中加载的文件,如图2-2所示。
图2-2 参数设置图2-3加密文件步骤3:比较二者的加密结果是否相同。
步骤4:点击CAP4软件中的“Simple analysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。
图2-4密钥分析②仿射密码加密(单表代换)在仿射密码加密(affine cipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。
a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系: c=(am+b)(mod 26)m=a-1(c-b)(mod 26)其中,(mod 26)的操作是:除以26,得其余数。
例如,选取密钥为(7,3)。
因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。
将“hot”转换成数字7、14、19,利用仿射等式生成: c(H)=(7×7+3) mod 26=52 mod 26=0,即为字母“a“。
c(O)=(7×14+3) mod 26=101 mod 26=23,即为字母“x“.c(T)=(7×19+3) mod 26=136 mod 26=6,即为字母”g”. 这样,对于这个密钥,”hot”变成了“axg“.CAP4软件中实现仿射密码加密:步骤1:在CAP4软件中加载要加密地的明文“mw.txt“.步骤2:选取Cipher菜单下的Affine Cipher菜单项,弹出如下对话框,如图2-5所示。
第2章 古典密码学体制

– 密文: giffg hddn0 njngn cuaa0 inano meiog – 解密:加密的逆过程; 463521
6
课堂练习
•
对明文”can you believe her‖分别按以下算 法加密,求密文。
1. 2. 3. 4.
倒序置换密码; 密钥为3421的周期置换密码; 密钥为love的周期置换密码; 密钥为love的列置换密码;
– Vigenere密码;
• (4)多字母组代替密码(polygram substitution cipher)
– Playfair密码
10
同音代替密码
• homophonic Substitution cipher • 与简单代替密码系统相似,唯一的不同是单个字符可以映 射成密文的几个字符之一。 • 一个明文字母表的字母a,可以变换为若干密文字母f(a), 称为同音字母。 • 同样的明文,加密所得的密文可能不相同。 • 举例:
明文:M=m1m2…mi…ml 密文:C=c1c2 …c i …c l 工作钥:K=K1 K 2 …K i …K l
•
加密变换:
– – –
•
例:用户钥为cat,对明文“vigenere cipher‖加密
–
加密:ci=mi+Ki mod n,其中n为明文字母表的长度
M: K: C:
v c x
i a i
• 置换起到扩散(diffusion)的作用,代替起到混乱 (confusion)的作用。 • 扩散(diffusion)和混乱(confusion)是对称密码 设计的基本思想。置换和代替在现代密码设计中 仍然被采用:S盒,P盒;SP结构。
3
提纲
• 1 置换密码 • 2 代替密码 • 3 转轮机 • 4 ENIGMA的兴亡 • 作业
chap2-古典密码

密钥 密文
密钥
明文
加密算法
明文 解密算法
加密密钥(Encryption Key) 解密密钥(Decryption Key)
基本概念
需要密钥的加密算法,记为:C=E(K,P),即密文消息同时
依赖于初始明文和密钥的值。实际上,E是一组加密算法, 而密钥则用于选择其中特定的一个算法。
加密与解密的密钥相同,即:P=D(K,E(K,P)) 加密与解密的密钥不同,则:P=D(K ,E(K ,P))
除了一次一密的方案外,没有无条件安全的算法 安全性体现在任意一条:
• 破译的成本超过加密信息的价值 • 破译的时间超过该信息有用的生命周期
密钥搜索所需平均时间
目录
1.
2. 3.
密码学的起源、发展和现状
密码学基本概念 典型几种古典密码技术
经典加密技术
替代 置换 隐写术
古典密码:替代(代替)
2018/6/26
41/72
古典密码:置换
改变明文内容元素的相对位置,保持内容的表现形式不 变 通常称为transposition或者permutation密码 通过重新安排消息字母的位置来隐藏明文信息,而不是 用其他字母来代换明文字母 这种方法是很容易破译的,因为密文拥有与明文一样的 字母频率统计特性
(4)任意k∈ K,有一个加密算法 ek E 和相应的解密 算法 d k D ,使得 ek : P C 和 dk : C P 分别为加 密解密函数, 满足dk(ek(x))=x ,这里 x ∈P。
密码编码系统分类
保密内容 密钥数量 明文处理的方式
保密内容
受限制的(restricted)算法
密码技术专题(二)——古典密码体制

密码技术专题(二)—古典密码体制∙1、密码体制的概念o明文信源o密文o密钥与加密运算o密码体制∙2、古典密码体制的发展o古典加密方法o代替密码o换位密码o转轮密码∙3、几种典型的古典密码体制o CAESAR体制o双字的Playfair体制o维吉尼亚体制o Hill体制我们已经知道,一个密码体制由明文信源、密文、密钥与加密运算这四个基本要素构成,下面我们将进一步给出它们的数学模型。
1、明文信源直观地讲,明文信源就是明文字母表或者明文字母。
比如所有的英文字母、全部的中文字符就是典型的明文字母表。
准确一点,明文信源还应当包含明文字母的概率分布。
如果用X表示明文字母表,则它的元素x∈X则就是明文字母。
在明文字母表中,不同的明文字母出现的频率往往是不同的,比如在26个英文字母中,一般来说字母“e”的频率最高;而在汉字中,可能是“的”字频率最高。
所以,一个明文信源记为S=[X,p(x)],其中X为明文字母表,p(x)为明文字母x∈X 出现的概率,而且p(x)满足如下条件:对任何x∈X,p(x)≥0,且∑p(x)=1。
2、密文密文由密文字母表Y和密文字母y∈Y组成,密文字母表一般是指密文可能使用的全部字母的集合,而y∈Y是它的元素。
密文字母表可以与明文字母表相同,也可以不同。
3、密钥与加密运算密钥用来从密码体制的一组加密运算中选择一个加密运算(或者称为加密步),密钥允许你按照以前制定的规则改变加密,比如每天,或每份报之后,或者每个字符之后。
通常,密钥的组织和编排须利于它们允许通过简单的规则产生单独的加密步。
加密方法的组合复杂度取决于在此方法下密钥的数量。
如果用K表示密钥空间,也就是选择加密步的参数集合,k∈K则称为一个密钥。
加密步就是明文字母表X到密文字母表Y的一个映射:E:X→Y,对每个x∈X。
由于加密步并不是单一的,而是一族运算,因此我们就可以记为Ek=Ek(x),其中x∈X,k∈K。
除特殊的编码方法外,如多名码或多音码,对于每个k∈K,Ek(x)都是X到Y的1-1映射。
第二章 简单密码学(补充古典密码学)

中
所使用的方式,其中密钥k=3,比如hello!就表示为khoor(忽略空格和符 号),它的数学表达式为:
加密:c=m+k(mod26)
解密:m=c-k(mod26) 加密步骤:1)先将26个英文字母编号:a,b,c,d……y,z;每个英文字母对应
的数字分别是0,1,2,3……24,25,注意这里的编号是从0开始的,与我们平时
12
Caesar密码
Caesar密码攻击
湖南公安高 等专科学校
如果在一篇用恺撒密码加密的密文中(假设它的字数很多,
而且字母随机性很好),我们就可以从中发现出现频率最多的 字母,假设它为e或者t或者a,将出现频率最低的字母假设为x 或者z或者q,然后玩填字游戏,找到加密所使用的k,攻破这个 加密体制。 求解k的表达式为:k=c-m(mod26) 注意:如果k为负数时,则加上26,使得k始终是一正数
第二章 简单密码学(补充——古典密码学)
湖南公安高 等专科学校
候选明文 exxegoexsrgi dwwdfndwrqfh cvvcemcvqpeg buubdlbupodf attackatonce zsszbjzsnmbd yrryaiyrmlac … haahjrhavujl gzzgiqgzuti式为:
加密:c=m+k(mod26) 解密:m=c-k(mod26) 其中k即密钥,也就是关键字(如cipher)的字母个数。还有一点与Caesar 密码不同,这里的字母表中字母顺序打乱了,不再是完全按英文字母顺序排列 的,关键字不同,密码表的次序就不相同,保证了安全性,比Caesar密码更加 健壮,单由于它仍然是单表替换密码,同样可用字母出现频率弱点进行攻击。
第二章 简单密码学(补充——古典密码学)
密码学-2

密钥量为 ( q! ) n
5、换位密码 (这里换位被看作一种多表代替密码!)
n X n Y n Zq ,
K 为 {1,2,, n} 上的全体置换的全体, 对任意明文 m (m1 , m2 ,, mn ) X n,k K, c E(m) (m (1) , m ( 2) ,, m ( n ) ) k
Z5
+ 0 1 2 3 0 0 1 2 3 1 1 2 3 4 2 2 3 4 0 3 3 4 0 1 4 4 0 1 2 * 1 1 1
* Z5
2 2
3 3
4 4
2
3 4
2
3 4
4
1 3
1
4 2
3
2 1
4
4
0
1
2
3
对于英文字母表 q=26
字母 数字
Z 26 {0, 1, 2,, 25}
f
c Ek (m) (m k ) mod q m Dk (c) (c k ) mod q
加法密码的密钥量为q 。 移位密码,凯撒密码体制
2、 乘法密码 X Y Z q , K Z q *, m X , k K ,
c Ek (m) km mod q, m k c mod q
密钥量为 (q )! 当q为素数时
n
A
D
B
E
R
P-1
b r e a d
* 求逆时需要重新排序!
(4 5 1 3 2) (3 5 4 1 2)
代替:字母表上的置换表。 (substitution) 换位:明文字母上的置换。(直接称为置换permutation) 混淆和扩散 S 盒和 P 盒
02 古典密码及分析

已知明文攻击,known plaintext
选择明文攻击,chosen plaintext
选择密文攻击,chosen ciphertext
选择文本攻击,chosen text
西安电子科技大学计算机学院
7
基于密码分析的攻击
Cryptanalytic Attacks
An algorithm that meets one or both of the following criteria:
An encryption scheme is said to be computationally secure if either of the foregoing two criteria are met.
unconditionally secure
8
西安电子科技大学计算机学院
穷举攻击
Key Size (bits)
西安电子科技大学计算机学院
15
对称密码模型
(Symmetric Cipher Model)
西安电子科技大学计算机学院
16
西安电子科技大学计算机学院
17
对称密码安全的两个必备条件:
加密算法必须是足够强的 a strong encryption algorithm 惟有发送者和接收者知道的秘密密钥 a secret key known only to sender / receiver C = EK(P) P = DK(C)
10
密码学的发展历史
第1阶段:1949年以前
1949年以前的密码技术可以说是一种艺术,而不是一种科 学,那时的密码专家是凭直觉和信念来进行密码设计和分 析的,而不是靠推理证明。
03_密码学基础(二)_古典密码算法

Vigenére cipher-破译 破译
依然保留了字符频率某些统计信息 重码分析法: 重码分析法:间距是密钥长度整数倍的相同子串有相同 密文,反过来, 密文,反过来,密文中两个相同的子串对应的密文相同 的可能性很大 a b c d e f g h i j k l m 00 01 02 03 04 05 06 07 08 09 10 11 12 n o p q r s t u v w x y z 13 14 15 16 17 18 19 20 21 22 23 24 25 密钥: 密钥 cryptographycryptographycr 明文: 明文 yourpackagereadyroomathree 密文: 密文 AFSGIOI PG PG…
FDHVDU FLSKHU
caesar cipher
明文 a 变成了密文 D
明文 密文
abcdefghijklmnopqrstuvwxyz DEFGHIJKLMNOPQRSTUVWXYZABC
FDHVDU FLSKHU Nhomakorabeacaesar cipher
明文 e 变成了密文 H
单字母替换密码
单表替换密码 移位( 密码、乘数( 移位(shift )密码、乘数(multiplicative)密码 密码 仿射( 密码、多项式( 仿射(affine ) 密码、多项式(Polynomial)密码 密码 密钥短语( 密钥短语(Key Word)密码 密码 多名替换密码 多表替换密码 维吉尼亚( 维吉尼亚(Vigenere)密码 密码 博福特( 博福特(Beaufort)密码 ) 滚动密钥(running-key)密码 滚动密钥 密码 弗纳姆(Vernam)密码 弗纳姆 密码 转子机(rotor machine) 转子机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主要内容
古典密码中的基本加密运算 几种典型的古典密码体制 古典密码的统计分析
2.1 古典密码中的基本加密运算
单表密码体制 多表密码体制
对于一个密码体制, 明 文字母对不同位置的同一明文字 母在密文中对应的密文字 母不同.
ci = mi⊕ki , i ≥1。
在用Vernam密码对明文加密时,如果对不同的明文使 用不同的密钥,则这时Vernam密码为“一次一密”(onetime pad)密码,在理论上是不可破译的。如果存在不 同的明文使用相同的密钥,则这时Vernam密码就比较 容易被破译。
5. Hill体制
Hill体制的基本思想是将n个明文字母通过线性 变换转换为n个密文字母。解密时只需做一次逆 变换即可。密钥就是变换矩阵。
例2.6(P22)
第2章总结
单表古典密码中的基本加密运算:加法、乘法、仿射、置 换 多表古典密码中的基本加密运算:简单加法、简单乘法、 简单仿射、简单置换、换位、广义置换、广义仿射 几种典型的古典密码体制:Caesar、标准字头、Playfair、 Vigenere、Beaufort、Vernam(one-time pad)、Hill 古典密码的统计分析:单表、多表(Kasiski测试法、重 合指数法)
确定密钥字:交互重合指数
定义2.1(x的重合指数):x中的两个随机元素相 同的概率,记为Ic(x)。
Ic(x) ≈ 0.065
定义2.2(x和y的交互重合指数):x中的一个随机 元素与y中的一个随机元素相同的概率,记为 MIc(x, y) 。
yi与yj的相对位移:(ki − kj) mod 26
3. Beaufort体制
设明文m = m1m2…mn,k = k1k2…kn,则密文
c = Ek(m) = c1c2…cn, 其中ci = (ki + 25 - mi) mod 26, i = 1, 2, …, n。
同Vigenere体制一样,当密钥的长度比明文短时,密钥 可以周期性地重复使用,直至完成明文中每个字母的 加密。 表2.5称为Beaufort方阵(书P13)。当用密钥字母ki对明 文字母mi进行加密时, Beaufort方阵中的第ki行第mi列 的字母就是相应的密文字母。
2.1.1 单表古典密码中的基本加密运算
4. 置换密码 2. 仿射密码 3. 乘法密码 1. 加法密码
设 为 ,对任意 上全体置换 设 ,对任意 ,密文 对任意 密文 的集合. 对任意 密文 显然 , 仿射密码是置换密码的特例 解密变换为 其中, q 是正整数, 解密变换为 其中,
显然, 加法密码和乘法密码都是仿 射密码的特例.
例2.5(P16)
表2.6 26个英文字母的出现频率
2.3.2 多表古典密码的统计分析
在多表古典密码的分析中,首先要确定密钥字的长度, 也就是要首先确定所使用的加密表的个数,然后再分析确 定具体的密钥。 确定密钥字长的常用方法有: Kasiski 测试法 (Kasiski test)
重合指数法 (index of coincidence)
问题:
置换和换位的定义、区别?
作业:
习题2.1、2.2、2.3、2.4、2.6
抽象代数
群:由一个非空集合和一个二元运算组成,并满 足封闭性、结合性、单位元、逆元的代数系统。
乘法群
环:一个集合,可以在其上进行加法和乘法运算 而封闭。
交换环:对于乘法运算可交换
域:非零元都有乘法逆的交换环。
2. 2 几种典型的古典密码体制
几种典型的单表 古典密码体制
几种典型的多表 古典密码体制
2. 2.1 几种典型的单表古典密码体制
Caesar 体制
标准字头密码体制
2.2.2 几种典型的多表古典密码体制
明文 Playfair 体制 其他多表古典密码体制有 密钥是一个 5×5 的构造矩阵 分组 Vigenere 体制 Beaufort 体制 加密时, 先在明文字母串插入特定字母 , 譬 如字母q, 使得长度为偶数 , 然后两两分组, Vernam 体制 每组中的两个字母不同。 Hill 体制
首先确定密钥字的长度,即加密表的个数。
Kasiski测试法:寻找密文中长度至少为3的相同 的密文片段对,计算每对密文片段中的两个密 文片段之间的距离。这样,我们就得到了一些 距离值d1, d2, d3, …di.我们可以猜测密钥字的 长度m可能是d1, d2, d3, …di的最大公因子。 重合指数法:利用重合指数法可以进一步确定 密钥字的长度是否为m。
P 中同行,
密文
P 中同列,
非同行同列,
为紧靠各自右端的字母 为紧靠各自下方的字母 为确定矩阵的对角字母
2. Vigenere体制
设明文m = m1m2…mn,k = k1k2…kn,则密文
c = Ek(m) = c1c2…cn, 其中ci = (mi + ki) mod 26, i = 1, 2, …, n。 当密钥的长度比明文短时,密钥可以周期性地 重复使用,直至完成明文中每个字母的加密。
字母 a b c d e f g h i j k l m 百分比 8.2 1.5 2.8 4.2 12.7 2.2 2.0 6.1 7.0 0.1 0.8 4.0 2.4 字母 n o p q r s t u v w x y z 百分比 6.8 7.5 1.9 0.1 6.0 6.3 9.0 2.8 1.0 2.4 2.0 0.1 0.1
表2.4称为Vigenere方阵(书P12)。当用密钥字 母ki对明文字母mi进行加密时,Vigenere方阵中 的第ki行第mi列的字母就是相应的密文字母。
例2.2
设明文为 This cryptosystem is not secure, 密钥为cipher, 则密文为:
VPXZGI AXIVWP UBTTMJ PWIZIT WZT。
例2.3
设明文为 This cryptosystem is also not secure, 密钥为cipher, 则密文为:
IAGOBZ DSVSLS JOKUVY BWWSQC IPKEJZ X。
4. Vernam体制
Vernam密码在加密前首先将明文编码为(0, 1)字符串。
设明文m = m1m2…mn,k = k1k2…kn,其中mi , ki∈GF(2) , 则密文c = c1c2…cn ,其中
因此,明文Hill的密文为XIYJ.
2. 3 古典密码的统计分析
单表古典密码的 统计分析
多表古典密码的 统计分析
2.3.1 单表古典密码的统计分析
单表古典密码体制的密文字母表实际上是明文字母表 的一个排列。 因此, 明文字母的统计特性在密文中能够反 映出来。当截获的密文足够多时, 可以通过统计密文字母 的出现频率来确定明文字母和密文字母之间的对应关系。
2.1.2 多表古典密码中的基本加密运算
3. 4. 6. 1. 7. 简单仿射密码 简单置换密码 广义置换密码 广义仿射密码 5. 2. 简单乘法密码 换位密码 简单加法密码 设 设 设 对任意
对任意 密文 对任意
密文 密文 其中的加法都是模 q 加法 . 显然 , 简单 其中的乘法都是模 q 乘法 . 显然 , 简单乘法 加法密码的密钥量为 密码的密钥量为 其中的加法和乘法都是模q 加法和乘法. 显然, 简单仿射密码的密钥量为
设明文m = (m1, m2, …, mn) ∈Z26n,密文c= (c1, c2, …, cn) ∈ Z26n ,密钥为Z26上的的n×n阶可逆 方阵K = (kij) n×n ,则 c = mK mod 26, m = cK-1 mod 26。
例2.4 设n=2,密钥为 11 8 7 18 -1 K= ,容易计算 K = 3 7 23 11 设明文为Hill, 则相应的明文向量为(7,8)和( 11,11)。于是,相应的密文向量 分别为 11 (7,8) 3 11 ( 11,11) 3 8 77 24, 56 56 )=(23,8), =( 7 8 121 33, 88 77 )=(24, 9 ), =( 7
有限域(伽罗瓦域):GF(2)