第三讲-古典密码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(二) Hill密码(1929)
基于矩阵的线性变换: K是一个m*m矩阵,在Z26上可逆,即存在K-1使得: KK-1 = I (在Z26) 对每一个k∈ K,定义 ek(x)=xK (mod 26) dk(y)=yK-1(mod 26) 明文与密文都是 m元的向量 (x1, x2 …, xm );(y1, y2,…,ym)
单字母替换密码
一.恺撒密码
E(p) = (p+3) mod 26 明文:abcdefghijklmnopqrstuvwxyz 密文:defghijklmnopqrstuvwxyzabc 例子: 明文: meet me after the party 密文: phhw ph diwho wkh sduwb
多字母替换密码-Playfair
Playfair:将明文中的双字母组合作为一 个单元对待,并将这些单元转换为密文的 双字母组合。 5×5变换矩阵的生成: I与J视为同一字符 (取CIPHER作为密钥) C I P H E R A B D F G K L M N O Q S T U V W X Y Z
古典密码
基于字符的密码 替换(substitution cipher):就是明文 中的每一个字符被替换成密文中的另一个 字符,接收者对密文做反向替换就可以恢复 出明文 置换(permutation cipher):又称换位密码 (transposition cipher):明文的字母保 持相同,但顺序被打乱了
(1):要求解唯一的充要条件是gcd(a,26)=1 (2):从(1)可知,当且仅当a与26互素时,加密变换才是 一一映射的,因此a的选择有11种: a=3,5,7,9,11,15,17,19,21,23,25 密钥空间大小 12 x 26 = 312种 !
仿射密码
算法定义 设 P=C=Z26, K={(a,b)∈Z26*Z26|gcd(a,26)=1}, 对k=(a,b) ∈K, 定义: ek(x)= ax + b (mod 26) dk(y)= a-1(y-b)(mod 26) x,y∈Z26
绝对安全但不实用,需要以某种安全的方 法将与消息长度相等的密钥传送给接收方, 以允许解密。而且,密钥只使用一次,然 后就被丢弃 ,增加了密钥管理问题 媒体访问接入协议中使用了一次一密
古典密码安全性分析
单表替换:字母频度、重复字母模式、字 母结合方式的统计特性不变 多表替换:明文统计特性通过多表替换被 隐藏
频率 14 12 10 8 6 4 2 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 密文字母频率
统计分析攻击
பைடு நூலகம்
单一字母替换容易被攻破,因为反映了原来 字母表的频率数据 分配给每个字母的符号数正比于该字母的相 对频率,则单字母的频率信息就会完全被淹 没
替 换 表
维吉尼亚密码(1858)
例子:q=26,x=polyalphabetic cipher, K=RADIO
密钥字为RADIO,则相应密钥为(17,0,3,8,14)
明文 密钥 密文
x=p olyal p ha betic cipher k=R ADIOR A DI ORADI ORADIO y=GOOJOCPKTP NTLKQZPKMF
对明文的多个字母加密 使用多表替换
多表替换密码
多表替换密码:以一系列(两个以上)替换表 依此对明文消息的字母进行替换的方法 非周期多表替换密码:替换表是非周期的无 限序列,密钥和明文长度相同 周期多表替换密码:替换表个数有限,重复 使用。
维吉尼亚密码 (1858)
是一种多表移位替换密码:设d为一固定的正 整数,d个移位替换表=( 1 , 2 ,… d) 由 密 钥 序 列 K = ( k1,k2,…,kd) 给 定 , 第 i+td个明文字母由表i决定,即密钥ki决定 ek(xi+td)= (xi+td+ki) mod q =y dk(yi+td)= (yi+td-ki) mod q =x
任意的单表替换密码: 明文:abcdefghijklmnopqrstuvwxyz 密文:sdvjkltioxcfawqzupyreghbam 例子:crypt => VPNZR 密钥空间为26! > 4 * 1026 通过字母的使用频率破译
对单表替换密码的统计分析攻击
例:
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSX AIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
3 7
且(11,24 ) =(121+72,88+168) =(11,22) 于是对 july加密的结果为DELW。
11 8 3 7
Hill密码
为了解密,计算
7 18 (3,4) 23 11 (9,20)
7 18 (11,22) 23 11 (11, 24)
且
因此,得到了正确的明文“july”
一次一密方案-Vernam密码
1918年,Gillbert
Vernam建议密钥采 用与明文一样长并且没有统计关系的密钥内 容(随机生成),他采用的是二进制数据: 加密:Ci = Pi Ki 解密:Pi = Ci Ki 核心:构造和消息一样长的随机密钥
一次一密方案
古典密码安全性分析
假设从仿射密码获得的密文为 FMXVEDKAPIIFERBNDKRXRSREFMORUDSDKDVS HVUFEDKAPRKDLYEVLRHHRH.试破解该密文。
统计各字母频率,R出现8次,D出现6次,E,H,K各出 现5次,F,S,V各出现4次 假定R(17)是e(4)的加密,D(3)是t(19)的加密,得 a=6,b=19 假定R是e的加密,E是t的加密,得a=8,b=11 假定R是e的加密,K是t的加密,得a=3,b=5,合法密 钥
仿射密码-乘数密码算法
加密函数取形式为
e(x)=ax (mod 26), a∈Z26 要求唯一解的充要条件是gcd(a,26)=1 该算法描述为: 设P=C=Z26,K={a∈Z26|gcd(a,26)=1}, 对k=a ∈K, 定义: ek(x)=ax (mod 26) dk(y)=a-1(y)(mod 26) x,y∈Z26
有ek(5,17)=(15,16),ek(8,3)=(2,5),ek(0,24)=(10,20) 由前两个明文密文对,可得 1516 517 2 5 = 8 3 k
替换密码
单字母替换密码(simple substitution cipher), 又称单字母密码(monoalphabetic cipher): 明文的一个字符用相应的一个密文字符代 替。 多字母替换密码(ployalphabetic cipher):明文中的字符映射到密文空间的 字符还依赖于它在上下文中的位置。
多字母替换密码-Playfair
明文的分组 balloon ba ll oo n 分组规则: 1、相同字母在同一分组时:在该分组两个字 母之间插入字母X,对明文重新进行分组 2、分组只有一个字母时:若发现情况1并进 行调整后,最后一个分组仍然只有一个字母, 在最后加入字母X。 balloon ba lx lo on
单字母替换密码分析
给定加密的消息:
phhw ph diwho wkh sduwb 由于 加解密算法已知 可能尝试的密钥只有26个 明文的语言已知 通过强力攻击得到明文: meet me after the party. 移位密码很容易受到唯密文攻击
单字母替换密码(续)
二.密钥短语密码 1.选择密钥并删除重复字母. 2.在明文的字母表下方从左往右写下处理的 后的密钥,然后再写剩余的字母即得密文字 母表. 如密钥短语密码为:hello->helo 明文:abcdefghijklmnopqrstuvwxyz 密文:heloabcdfgijkmnpqrstuvwxyz
多字母替换密码-Playfair
加密规则:按成对字母加密 1)若明文对在矩阵中是同行关系:将这对字母 均向右移一格,如有字母在右边界,则移动到 同行左边首字母。 he EC 2) 若明文对在矩阵中是同列关系:将这对字 母均向下移一格。若有字母在下边界,则移 动到同列首字母。 dm MT 3)其他情况取交叉: kt MQ OD TR
古典密码安全性分析
对hill密码的已知明文攻击
假定已经确定Hill密码的m值,且得到至少m 对不同的m元组 破解方法:根据获得的明文、密文信息,构造 两个mxm矩阵,则有矩阵Y=Xk,k是未知密钥, 假定X可逆,计算X的逆矩阵,即可得到k
古典密码安全性分析
明文Friday是用Hill密码加密的,m=2,得到密文 POCFKU
例子,设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, 然后加密: 7 3 0 A
7 14 3 23 X (mod 26); 19 3 6 G
解密:
0 19 7 1523 19 14 6 19 19
网络信息安全
陈羽中 yzchen1979@163.com
密码系统分类
密码系统的几种分类: 按执行的操作
替换(substitution)与置换(permutation) 单密钥(对称密钥)与双密钥(公开密钥)
按密钥的数量
按明文处理方式
流密码(stream cipher)与分组密码(block cipher)
Playfair密码
以前面的5×5变换矩阵(cipher)为例 C I P H E R A B D F G K L M N O Q S T U V W X Y Z (1)balloon ba lx lo on db sp gs ug (2)book bo ok rs qg (3)fill fi lx lx ae sp sp
乘数密码算法例子
例子: a=9, ABCDEFGHIJKLMNOPQRSTUVWXYZ AJSBKTCLUDMVENWFOXGPYHQZIR 明文 密文 cipher => SUFLKX 乘数密码分析: 对于乘数密码,当且仅当a与26互素时,加密 变换才是一一映射的,因此a的选择有11种: a=3,5,7,9,11,15,17,19,21,23,25 可能尝试的密钥只有11个
Hill密码
例子:当 m=2时,明文元素x=(x1,x2),密文元素y=(y1,y2)
11 8 (y1,y2)=(x1,x2) 3 7
K
7 18 23 11
若K= 11
8 3 7
,可得K-1 =
若对明文july加密,分成2个元素(j,u),(l,y),分别对应于 (9,20),(11,24),有 (9,20)11 8 =(99+60,72+140)=(3,4)
Playfair密码分析
Playfair有26X26=676种字母对组合 字符出现几率一定程度上被均匀化 基于字母频率的攻击比较困难 依然保留了相当的结构信息
仿射密码
用形如 e(x)=ax+b (mod 26),a∈Z26,b∈Z26 的加密函数的加密算法称为仿射密码,这类加密 函数称为仿射函数。(a=1时为移位密码)