现代密码学_清华大学_杨波着+习题答案
杨波, 《现代密码学(第2版)》06-1

图6.1 MAC的基本使用方式
如果仅收发双方知道K,且B计算得到的MAC 与接收到的MAC一致,则这一系统就实现了以下 功能: ① 接收方相信发送方发来的消息未被篡改,这是 因为攻击者不知道密钥,所以不能够在篡改消息后 相应地篡改MAC,而如果仅篡改消息,则接收方 计算的新MAC将与收到的MAC不同。 ② 接收方相信发送方不是冒充的,这是因为除收 发双方外再无其他人知道密钥,因此其他人不可能 对自己发送的消息计算出正确的MAC。
第1轮 已知M1、MAC1,其中MAC1=CK(M1)。对 所有2k个可能的密钥计算MACi=CKi(M1),得2k-n个 可能的密钥。 第2轮 已知M2、MAC2,其中MAC2=CK(M2)。对 上一轮得到的2k-n个可能的密钥计算MACi=CKi(M2), 得2k-2×n个可能的密钥。
如此下去,如果k=αn,则上述攻击方式平均需要α 轮。例如,密钥长为80比特,MAC长为32比特, 则第1轮将产生大约248个可能密钥,第2轮将产生 216个可能的密钥,第3轮即可找出正确的密钥。
⑤ 已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不 可行的。称满足这一性质的杂凑函数为弱单向杂凑 函数。 ⑥ 找出任意两个不同的输入x、y,使得H(y)=H(x) 在计算上是不可行的。称满足这一性质的杂凑函数 为强单向杂凑函数。
第⑤和第⑥个条件给出了杂凑函数无碰撞性的概念, 如果杂凑函数对不同的输入可产生相同的输出,则 称该函数具有碰撞性。
杂凑函数的目的是为需认证的数据产生一个“指 纹”。为了能够实现对数据的认证,杂凑函数应满 足以下条件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(x)较为容易,可用硬件或软件实现。 ④ 已知h,求使得H(x)=h的x在计算上是不可行的, 即满足单向性,称H(x)为单向杂凑函数。
现代密码学杨波课后习题讲解

选择两个不同的大素数p和q, 计算n=p*q和φ(n)=(p-1)*(q-1)。 选择整数e,使得1<e<φ(n)且e 与φ(n)互质。计算d,使得 d*e≡1(mod φ(n))。公钥为 (n,e),私钥为(n,d)。
将明文信息M(M<n)加密为 密文C,加密公式为 C=M^e(mod n)。
将密文C解密为明文信息M,解 密公式为M=C^d(mod n)。
课程特点
杨波教授的现代密码学课程系统介绍了密码学的基本原 理、核心算法和最新进展。课程注重理论与实践相结合, 通过大量的案例分析和编程实践,帮助学生深入理解和 掌握密码学的精髓。
课后习题的目的与意义
01 巩固课堂知识
课后习题是对课堂知识的有效补充和延伸,通过 解题可以帮助学生加深对课堂内容的理解和记忆。
不要重复使用密码
避免在多个账户或应用中使用相同的密码, 以减少被攻击的风险。
注意网络钓鱼和诈骗邮件
数字签名与认证技术习题讲
05
解
数字签名基本概念和原理
数字签名的定义
数字签名的应用场景
数字签名是一种用于验证数字文档或 电子交易真实性和完整性的加密技术。
电子商务、电子政务、电子合同、软 件分发等。
数字签名的基本原理
利用公钥密码学中的私钥对消息进行签 名,公钥用于验证签名的正确性。签名 过程具有不可抵赖性和不可伪造性。
Diffie-Hellman密钥交换协议分析
Diffie-Hellman密钥交换协议的原理
该协议利用数学上的离散对数问题,使得两个通信双方可以在不安全的通信通道上协商出一个共 享的密钥。
Diffie-Hellman密钥交换协议的安全性
该协议在理论上被证明是安全的,可以抵抗被动攻击和中间人攻击。
《现代密码学(第2版)杨波 01

保密通信系统的组成
明文消息空间M,密文消息空间C,密钥空间 K1和K2,在单钥体制下K1=K2=K,此时密钥K需 经安全的密钥信道由发送方传给接收方; 加密变换Ek1:M→C,其中k1∈K1,由加密器 完成; 解密变换Dk2:C→M,其中k2∈K2,由解密器 实现. 称总体(M,C,K1,K2,EK1,DK2)为保密通信系统.对 于给定明文消息m∈M,密钥k1∈K1,加密变 换将明文m变换为密文c,即 c=f(m,k )=E (m)m∈M,k ∈K
20世纪90年代,因特网爆炸性的发展把人类 带进了一个新的生存空间.因特网具有高度 分布,边界模糊,层次欠清,动态演化,而 用户又在其中扮演主角的特点,如何处理好 这一复杂而又巨大的系统的安全,成为信息 安全的主要问题.由于因特网的全球性,开 放性,无缝连通性,共享性,动态性发展, 使得任何人都可以自由地接入,其中有善者, 也有恶者.恶者会采用各种攻击手段进行破 坏活动.
如何产生满足保密要求的密钥以及如何将密 钥安全可靠地分配给通信双方是这类体制设 计和实现的主要课题. 密钥产生,分配,存储,销毁等问题,统称 为密钥管理.这是影响系统安全的关键因素. 单钥体制可用于数据加密,也可用于消息的 认证. 单钥体制有两种加密方式:
– 明文消息按字符(如二元数字)逐位地加密,称 之为流密码; – 将明文消息分组(含有多个字符),逐组地进行 加密,称之为分组密码.
在信息传输和处理系统中,除了预定的接收 者外,还有非授权者,他们通过各种办法 (如搭线窃听,电磁窃听,声音窃听等)来 窃取机密信息,称其为截收者. 截收者虽然不知道系统所用的密钥,但通过 分析可能从截获的密文推断出原来的明文或 密钥,这一过程称为密码分析,ห้องสมุดไป่ตู้事这一工 作的人称为密码分析员,研究如何从密文推 演出明文,密钥或解密算法的学问称为密码 分析学.
现代密码学 课后答案 第二版

f)反馈移位寄存器输出序列生成过程中,对输出序列周期长度起着决定性的作用,而对输出的序列起着决定性的作用。
g)选择合适的n级线性反馈函数可使序列的周期达到最大值2的n次方-1,并具有m序列特性,但敌手知道一段长为n的明密文对时即能破译这n级线性反馈函数。
2.经典的信息安全三要素--机密性,完整性和可用性,是信息安全的核心原则。
3.根据对信息流造成的影响,可以把攻击分为5类中断、截取、篡改、伪造和重放,进一步可概括为两类主动攻击和被动攻击。
4.1949年,香农发表《保密系统的通信理论》,为密码系统建立了理论基础,从此密码学成为了一门学科。
5.密码学的发展大致经历了两个阶段:传统密码学和现代密码学。
6.1984年,Shamir提出了一种基于身份的加密方案IBE的思想,方案中不使用任何证书,直接将用户的身份作为公钥,以此来简化公钥基础设施PKI中基于公钥证书维护的过程。
4.10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第三章
5.判断
6.选择题
7.填空题
a)在1949年香农发表《保密系统的通信理论》之前,密码学算法主要通过字符间的简单置换和代换实现,一般认为密码体制属于传统密码学范畴。
b)传统密码体制主要有两种,分别是指置换密码和代换密码。
c)置换密码又叫换位密码,最常见的置换密码有列置换和周期转置换密码。
6.1976年,W.Diffie和M.Hellman在《密码学的新方向》一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
7.密码学的发展过程中,两个质的飞跃分别指1949年香农发表的《保密系统的通信理论》和1978年,Rivest,Shamir和Adleman提出RSA公钥密码体制。
现代密码学课后题答案

《现代密码学习题》答案第一章判断题×√√√√×√√选择题1、1949年,( A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由( D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是( B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是( D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击填空题:5、1976年,和在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指 1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法 5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章判断题:×√√√选择题:1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
A置换密码B单表代换密码C多表代换密码D序列密码4、维吉利亚密码是古典密码体制比较有代表性的一种密码,其密码体制采用的是(C )。
现代密码学_清华大学_杨波著_部分习题答案[1]
![现代密码学_清华大学_杨波著_部分习题答案[1]](https://img.taocdn.com/s3/m/1ce7aa8502d276a200292edc.png)
= YWPKXYHVKXONPTJCHYBXLPKTB ∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采用第 4 章的“4.1.6 欧几里得算法”,或者直接穷举 1~25) ∴ 解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26) 对密文 C 进行解密:
密文用数字表示为:
c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为 m=3*c+22 (mod 26)
=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]
⇒
Ri'
=
L' i −1
⊕
F
(
R' i −1
,
Ki' )
( ) ( ) ⇔
Li−1 ⊕ F (Ri−1, Ki )
'=
Li−1
⊕
F
(
R' i −1
,
Ki'
)
'
根据(i)(ii) 根据(iii)
⇔
F (Ri−1, Ki )
=
F
(
R' i −1
,
Ki' )
⇔
P(S
( E ( Ri −1 )
⊕
现代密码学课后题答案

《现代密码学习题》答案第一章判断题×√√√√×√√选择题1、1949年,( A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由( D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是( B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是( D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击填空题:5、1976年,和在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指 1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法 5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章判断题:×√√√选择题:1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
A置换密码B单表代换密码C多表代换密码D序列密码4、维吉利亚密码是古典密码体制比较有代表性的一种密码,其密码体制采用的是(C )。
杨波, 《现代密码学(第2版)》02

• 初始状态由用户确定。 • 当第i个移位时钟脉冲到来时,每一级存储器ai都将 其内容向下一级ai-1传递,并计算f(a1,a2,…,an)作为 下一时刻的an。 • 反馈函数f(a1,a2,…,an)是n元布尔函数,即n个变元 a1,a2,…,an可以独立地取0和1这两个可能的值,函数 中的运算有逻辑与、逻辑或、逻辑补等运算,最后 的函数值也为0或1。
例2.3 图2.11是一个5级线性反馈移位寄存器,其 初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输 出序列为: 1001101001000010101110110001111100110… 周期为31。
图2.11 一个5级线性反馈移位寄存器
n级线性反馈移位寄存器的状态周期小于等于2n-1。 输出序列的周期与状态周期相等,也小于等于2n-1。
又由p(x)A(x)=φ(x)可得p(x)q(x)A(x)=φ(x)q(x)。
所以(xp-1)A(x)=φ(x)q(x)。 由于q(x)的次数为 p-n,φ(x)的次数不超过n-1,
所以(xp-1)A(x)的次数不超过(p-n)+(n-1)=p-1。
将(xp-1)A(x)写成 xp A(x)- A(x),可看出对于任意正整 数i都有ai+p=ai。 设p=kr+t, 0≤t<r,则ai+p=ai+kr+t=ai+t=ai,所以t=0,即 r | p。(证毕)
分组密码与流密码的区别就在于有无记忆性。 流密码的滚动密钥z0=f(k,σ0)由函数f、密钥k和指定 的初态σ0完全确定。 由于输入加密器的明文可能影响加密器中内部记忆 元件的存储状态,σi(i>0)可能依赖于k,σ0,x0, x1,…,xi-1等参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。
因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。
解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。
解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。
当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。
当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。
当 c1=1,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2⊕a 3,输出序列为 10101010…,周期为 2。
3. 设 n=4,f(a 1,a 2,a 3,a 4)=a 1⊕a 4⊕1⊕a 2a 3,初始状态为(a 1,a 2,a 3,a 4)=(1,1,0,1),求此非线性 反馈移位寄存器的输出序列及周期。
解:列出该非线性反馈移位寄存器的状态列表和输出列表:而第 m+3a m +3 = c 1a m +2 + c 2a m +1 + c 3a m = c 1 ⊕1 + c 2 ⊕ 0 + c 3c m ⊕ 0即第 m+3 比特为 0三、分组密码(1,2,3,4)1. (1)设M’是M的逐比特取补,证明在DES中,如果对明文分组和密文分组都逐比特取补,那么得到的密文也是原密文的逐比特取补,即如果Y = DES K(X),那么Y’=DES K’(X’)提示:对任意两个长度相等的比特串A和B,证明(A⊕B)’=A’⊕B。
证:(i)容易验证,在DES中所有的置换操作,包括初始置换IP、逆初始置换IP-1、选择扩展算法E、置换运算P以及置换选择PC1、置换选择PC2,都满足如下性质:如果N=PO(M),则N’=PO(M’),其中PO是某种置换操作即有(PO(M))’= PO(M’)(ii)容易验证,密钥生成过程中的左循环移位LS满足如下性质:如果N=LS (M),那么N’=LS(M’),即有(LS (M))’=LS(M’)结合(1)可知,如果记子密钥为(K1,…,K16),K为初始密钥,KG为密钥生成算法,则有如下性质:如果(K1,…,K16)=KG(K),那么(K1',…,K16')=KG(K’)(iii) 对于任意两个比特a和b,有(a⊕b)’= a⊕b⊕1=(a⊕1)⊕b=a’⊕b(= a⊕(b⊕1)=a⊕b’),因此对任意两个长度相等的比特串A和B,有(A⊕B)’=A’⊕B=A⊕B’成立。
穷举搜索密钥空间K1/2,对于某个k∈K1/2,假设(i) E k(x)=y1,如果y1=y,则说明k0=k而且k0∈K1/2。
(ii) E k(x’)=y2,如果y2=y’,则说明k= k0’,即k0= k’而且k0∈K’1/2。
综上可知:对于选定的明文密文对(x,y),只需遍历K1/2中的所有密钥即可,此时密钥空间大小少为255。
2.证明DES的解密变换是加密变换的逆。
证明:定义T是把64位数据左右两半交换位置的操作,即T(L,R)=(R,L),则T2(L,R)=(L,R),即T2=I,其中I为恒等变换。
定义DES中第i轮的主要运算为f i,即f i (L i 1, R i 1 ) = ( L i 1 F (R i 1, K i ), R i 1 )么解密后的P1跟加密前一样,同样有一个比特的错误,而对于C i≥2能够解密得到无错误的明文。
4.在8比特CFB模式中,如果在密文字符中出现1比特的错误,问该错误能传播多远。
解:该错误将传播到后面的 '≤(64+8-1)/8∞ƒ = 8个单元,共9个单元解密得到错误的明文。
四、公钥密码1. 3.用Fermat定理求3201 mod 11。
解:对于模运算,有结论(a×b) mod n = [ (a mod n)×(b mod n)] mod n 由Fermat 定理,可知310≡1 mod 11,因此有(310)k≡1 mod 11所以3201 mod 11= [(310)20×3] mod 11 = [( (310)20 mod 11)×(3 mod 11)] mod 11 = 3。
解:n=35 -> p=5, q=7∏(n)=(p-1)(q-1)=24d≡e-1 mod ∏(n)≡5-1 mod 24≡5 mod 24 .... (因为5×5≡1 mod 24)所以,明文M ≡ C d mod n ≡ 105 mod 35 ≡ 512.设RSA 加密体制的公开钥是(e,n)=(77, 221)。
(1) 用重复平方法加密明文160,得中间结果为:(1)如果接收方B 的公开钥是y B=3,发送方A 选择的随机整数k=2,求明文M=30 所对应的密文。
(2)如果A 选择另一个随机整数k,使得明文M=30 加密后的密文是C=(59, C2),求C2。
解:(1) C1≡g k mod p = 72 mod 71 = 49,C2≡y Bk M mod p = (32×30) mod 71= 57 所以密文为C=(C1, C2)=(49, 57)。
(2)由7k mod 71 = 59 ,穷举k 可得k=3 。
所以C2 = (3k×30) mod 71 = (33×30) mod 71 = 29。
解:C2 - n A C1= (P m + kP A)– n A (kG) = (10, 2)– 7(8,3) = (10, 9) = P m五、消息认证与杂凑函数1. 6.1.3 节的数据认证算法是由CBC 模式的DES 定义的,其中初始向量取为0,试说明使用CFB 模式也可获得相同结果。
(图1)解:CFB 模式中的加密部分的框图如下:(图2)如果要使CFB 模式输出结果和CBC 模式的相同,那就要选择适当参数和输入。
假设消息为M=D1D2…D N,则按如下思路考虑:(1) CBC 中DES 加密算法输入输出都为64 位,所以CFB 中的参数j 应取64。
此时的CFB 模式变为:(图3)(2)比较图1 和图2 中开始几个分组的处理,考虑DES 加密的输入和输出,可知,IV → D1, P1 → D2, ...(3)CBC 中最后一个DES 加密的输出为消息认证符,即O N=E K(D N⊕O N-1),因此在CFB 中,应取P M为Z64(64 比特都为0 的分组),这样有C M=E K(C M-1)⊕Z64=E K(C M-1)。
此时,应取P M-1 = D N。
综上可知:对于消息M=D1D2...D N, 如果采用DES/CFB 的数据认证算法,那么,当其参数取如下值时,参数j=64, 参数IV=D1,输入消息M'=D2D3...D N Z64其输出与采用DES/CBC 的数据认证算法的输出相同。
NCUT 密码学–习题与答案2010 2.有很多散列函数是由CBC模式的分组加密技术构造的,其中的密钥取为消息分组。
例如将消息M分成分组M1,M2,…,M N,H0=初值,迭代关系为H i=E Mi(H i-1)⊕H i-1 (i=1,2,…,N),杂凑值取为HN,其中E是分组加密算法。
(1)设E为DES,我们知道如果对明文分组和加密密钥都逐比特取补,那么得到的密文也是原密文的逐比特取补,即如果Y=DES K(X),那么Y’=DES K’(X’)。
利用这一结论证明在上述散列函数中可对消息进行修改但却保持杂凑值不变。
(2) 若迭代关系改为H i=E Hi-1(M i)⊕M i,证明仍可对其进行上述攻击。
解:(1) H i=E Mi(H i-1)⊕H i-1 E Mi(H i-1)= H i⊕H i-1E Mi’(H’i-1)= (H i⊕H i-1)' = H i⊕H’i-1即H i =E Mi’(H’i-1)⊕H’i-1则有H1 =E M1’(H’0)⊕H’0,因此,构造消息M’1M2…M n,同时初始向量取为原先的初始向量的补,则可得到相同的杂凑值。
(2) H i=E Hi-1(M i)⊕M i E Hi-1(M i)= H i⊕M i E H’i-1(M’i)= H i⊕M’i则有H1 =E H0’(M’1)⊕M’1因此,构造消息M’1M2…M n,同时初始向量取为原先的初始向量的补,则可得到相同的杂凑值。
3.考虑用公钥加密算法构造散列函数,设算法是RSA,将消息分组后用公开钥加密第一个分组,加密结果与第二个分组异或后,再对其加密,一直进行下去。
设一消息被分成两个分组B1和B2,其杂凑值为H(B1,B2)=RSA(RSA(B1)⊕B2)。
证明对任一分组C1可选C2,使得H(C1,C2)=H(B1,B2)。
证明用这种攻击法,可攻击上述用公钥加密算法构造的散列函数。
证明:(1)对任一分组C1,设RSA算法中加密公钥为e。
若取C2为C2 = (C1e mod n)⊕(B1e mod n)⊕B2则有RSA(C1)⊕C2 = (C1e mod n)⊕[(C1e mod n)⊕(B1e mod n)⊕B2]= (B1e mod n)⊕B2= RSA(B1)⊕B2从而有H(C1,C2) = H(B1,B2)成立。