2 古典密码分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

•代替密码
简单代替密码(simple substitution cipher),又称单 字母密码(monoalphabetic cipher):明文的一个字符用 相应的一个密文字符代替。
多字母密码(ployalphabetic cipher):明文中的字符 映射到密文空间的字符还依赖于它在上下文中的位置。
可能尝试的密钥只有11个
仿射密码算法-i
• 加密函数取形式为
e(x)=ax+b (mod 26), a,b∈Z/(26)
要求唯一解的充要条件是 gcd( a,26)=1 该算法描述为: 设 P=C=Z/(26)
K={(a,b) ∈Z/(26)×Z/(26)|gcd(a,26)=1}, 对 k=(a,b) ∈K, 定义
(4)若a≡b mod q且b≡c mod q ,则a≡c mod q
模q算术-ii
• 模算术(Modular Arithmatic)
在mod q的q个剩余类集{0,1,2,…,q-1}上可以定 义加法和乘法运算如下: 加法: (a mod q)+ (b mod q)= (a+b) mod q 乘法:(a mod q) × (b mod q) = (a ×b)mod q
代替密码(substitution cipher):就是明文中的每一个字 符被替换成密文中的另一个字符。接收者对密文做反向替 换就可以恢复出明文。 置换密码(permutation cipher),又称换位密码 (transposition cipher):明文的字母保持相同,但顺序被 打乱了。
经典密码体制 代替密码 单字母密码 单表代换密码 多表代换密码 多字母密码 置换密码
1.4 古典密码
数学与系统科学学院
梁向前
2018/10/21
1
古典密码体制
• 经典密码体制采用手工或机械操作实现加解密,相对简单。 • 回顾和研究这些密码的原理和技术,对于理解、设计和分 析现代密码仍然具有借鉴的价值。 • 经典密码大体上可分为三大类:单表代换密码、多表代换密 码及多字母代换密码。 注另外一种说法:代替密码、 置换密码
例子: a=9, ABCDEFGHIJKLMNOPQRSTUVWXYZ AJSBKTCLUDMVENWFOXGPYHQZIR 明文cipher => 密文 SUFLKX
乘数密码分析
• 对于乘数密码,当且仅当a与26互素时,加密 变换才是一一映射的,因此a的选择有11种: a=3,5,7,9,11,15,17,19,21,23,25
多字母代换密码
• 可以用矩阵变换方便地描述多字母代换密码,有时又
称起为矩阵变换密码。
• Hill cipher
• Playfair cipher
模q算术-i
• 同余:给定任意整数a和q,以q除a,余数是r,则可以表示 为a=sq+r,0≤r<q,其中s=[a/q],表示小于a/q的最大整数。
定义r为a mod q的剩余,记为r≡a mod q.
单字母密码
• 单表代换密码 移位(shift )密码、乘数(multiplicative)密码 仿射(affine ) 密码、多项式(Polynomial)密码 密钥短语(Key Word)密码 • 多表代换密码 维吉尼亚(Vigenere)密码
博福特(Beaufort)密码
滚动密钥(running-key)密码 弗纳姆(Vernam)密码 转子机(rotor machine)
例子: cipher => FLSKHU
实际算法为: ∀x∈P 有 e3 (x) = x + 3(mod 26) = y 同时有,d 3 (y)=y-3 (mod 26)
凯撒大帝· 高卢战争
移位密码分析
• 给定加密的消息: PHHW PH DIWHU WKH WRJD SDUWB 由于(1)加解密算法已知 (2)可能尝试的密钥只有26个, 通过强力攻击得 到明文: meet me after the toga party. 移位密码很容易受到唯密文攻击。
7 3 0 A 7 14 3 23 X (mod 26) 19 3 6 G
•单表代换密码(移位密码算法)
设P=C=K=Z/(26),对k∈ K,定义
e k (x)=x+k (mod 26)=y∈C,
同时 d k (y)=y - k (mod 26) 注. 当k=3时,为Kaesar(凯撒)密码 abcdefghijklmnopqrstuvwxyz DEFGHIJKLMNOPQRSTUVWXYZABC
ek(x)=ax+b (mod 26) 和 dk(y)=a-1(y-b)(mod 26)
x,y ∈Z/(26) • q=26时,可能的密钥是 26 × 11个
• 例子,设 k=(7,3),注意到 7-1(mod 26)=15, 加密函数是ek(x)=7x+3, 解密函数是 dk(y)=15(y-3)=15y-19 易见 dk(ek(x)=dk(7x+3)=15(7x+3)-19=x+45-19=x (mod 26) 若加密明文:hot ,首先转换字母 h,o,t 成为数字7,14,19, 然后加密:
若整数a和b有(a mod q)=(b mod q) ,则称 a与b在mod q下同余。对于满足{r}={a|a=sq+r,s∈Z}的整数集称为同余 类。模运算有下述性质:
(1)若n|(a-b),则a≡b mod q (2)(a mod q)=(b mod q)意味a≡b mod q (3) a≡b mod q等价于b≡a mod q
注:如果允许字母表中的字母可以用任意字母进行替换, 则将有26!或多达4×1026 种可能的密码。
乘数密码算法
• 加密函数取形式为: e(x)=ax (mod 26), a∈Z/(26) 要求唯一解的充要条件是 gcd( a,26)=1. 该算法描述为: 设 P=C=Z/(26),K={a ∈Z/(26)|gcd(a,26)=1}, 对 k=a ∈K, 定义 e k (x)=ax (mod 26) 和 D k (y)=a-1(y)(mod 26), x,y ∈Z/(26),a-1:a的逆元。
相关文档
最新文档