现代密码学_清华大学_杨波着+习题答案

合集下载

杨波, 《现代密码学(第2版)》06-1

杨波, 《现代密码学(第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

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

现代密码学课后题答案

现代密码学课后题答案

《现代密码学习题》答案第一章判断题×√√√√×√√选择题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,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。

现代密码学_清华大学_杨波著_部分习题答案[1]

现代密码学_清华大学_杨波著_部分习题答案[1]
密文 C= E11,23(M)≡11*M+23 (mod 26) =[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1]
= 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版)》07

杨波, 《现代密码学(第2版)》07

由加密算法产生数字签字又分为外部保密方式 加密算法产生数字签字又分为外部保密方式 产生数字签字又分为 内部保密方式,外部保密方式是指数字签字是直 和内部保密方式,外部保密方式是指数字签字是直 接对需要签字的消息生成而不是对已加密的消息生 否则称为内部保密方式. 成,否则称为内部保密方式. 外部保密方式便于解决争议,因为第3方在处 外部保密方式便于解决争议,因为第 方在处 理争议时,需得到明文消息及其签字. 理争议时,需得到明文消息及其签字.但如果采用 内部保密方式, 内部保密方式,第3方必须得到消息的解密密钥后 方必须得到消息的解密密钥后 才能得到明文消息.如果采用外部保密方式, 才能得到明文消息.如果采用外部保密方式,接收 方就可将明文消息及其数字签字存储下来以备以后 万一出现争议时使用. 万一出现争议时使用.
由此可见,数字签字具有认证功能. 由此可见,数字签字具有认证功能.为实现上 条性质, 要求: 述3条性质,数字签字应满足以下要求: 条性质 数字签字应满足以下要求 ① 签字的产生必须使用发方独有的一些信息以防 伪造和否认. 伪造和否认. 签字的产生应较为容易. ② 签字的产生应较为容易. 签字的识别和验证应较为容易. ③ 签字的识别和验证应较为容易. ④ 对已知的数字签字构造一新的消息或对已知的 消息构造一假冒的数字签字在计算上都是不可行的. 消息构造一假冒的数字签字在计算上都是不可行的.
因此, 因此,在收发双方未建立起完全的信任关系且存在 利害冲突的情况下,单纯的消息认证就显得不够. 利害冲突的情况下,单纯的消息认证就显得不够. 数字签字技术则可有效解决这一问题. 数字签字技术则可有效解决这一问题. 类似于手书签字,数字签字应具有以下性质: 类似于手书签字,数字签字应具有以下性质: 应具有以下性质 能够验证签字产生者的身份, ① 能够验证签字产生者的身份,以及产生签字的 日期和时间. 日期和时间. 能用于证实被签消息的内容. ② 能用于证实被签消息的内容. 数字签字可由第三方验证, ③ 数字签字可由第三方验证,从而能够解决通信 双方的争议. 双方的争议.

杨波, 《现代密码学(第2版)》04-2

杨波, 《现代密码学(第2版)》04-2
• 如果密钥太短,公钥密码体制也易受到穷搜索攻击。 因此密钥必须足够长才能抗击穷搜索攻击。 • 由于公钥密码体制所使用的可逆函数的计算复杂性 与密钥长度常常不是呈线性关系,而是增大得更快。 所以密钥长度太大又会使得加解密运算太慢而不实 用。因此公钥密码体制目前主要用于密钥管理和数 字签字。 • 第2种攻击法:寻找从公开钥计算秘密钥的方法。 目前为止,对常用公钥算法还都未能够证明这种攻 击是不可行的。
⑥ 加、解密次序可换,即 EPKB[DSKB(m)]=DSKB[EPKB(m)]
其中最后一条虽然非常有用,但不是对所有的算法 都作要求。
单向函数是两个集合X、Y之间的一个映射,使 得Y中每一元素y都有惟一的一个原像x∈X,且由x 易于计算它的像y,由y计算它的原像x是不可行的。
这里所说的易于计算是指函数值能在其输入长 度的多项式时间内求出,即如果输入长n比特,则求 函数值的计算时间是na的某个倍数,其中a是一固定 的常数。这时称求函数值的算法属于多项式类P,否 则就是不可行的。 例如,函数的输入是n比特,如果求函数值所用 的时间是2n的某个倍数,则认为求函数值是不可行 的。
以上认证过程中,由于消息是由用户自己的秘密钥 加密的,所以消息不能被他人篡改,但却能被他人 窃听。这是因为任何人都能用用户的公开钥对消息 解密。为了同时提供认证功能和保密性,可使用双 重加、解密。如图4.3所示。
图4.3 公钥密码体制的认证、保密框图
发方首先用自己的秘密钥SKA对消息m加密,用于 提供数字签字。再用收方的公开钥PKB第2次加密, 表示为 c=EPKB[ESKA[m]] 解密过程为
由gcd(m, q)=1及Euler定理得mφ(q)≡1 mod q,所以 mkφ(q)≡1 mod q [mkφ(q)]φ(p)≡1 mod q mkφ(n)≡1 mod q 因此存在一整数r,使得mkφ(n) = 1+rq,两边同乘以 m=tp得 mkφ(n)+1 = m + rtpq = m + rtn

现代密码学_清华大学_杨波着+习题答案

现代密码学_清华大学_杨波着+习题答案

现代密码学_清华⼤学_杨波着+习题答案设 A = ' ∞ ,= =≤ ? ≤ ∞ ' ? ≤ ? ≤ ∞ ' ? 可求得 A = '⼀、古典密码(1,2,4)11,23AGENCY ”加密,并使⽤解密变换 D 11,23(c)≡11-1(c-23) (mod 26) 验证你的加密结果。

解:明⽂⽤数字表⽰:M=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24]密⽂ C= E 11,23(M)≡11*M+23 (mod 26)=[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1] = YWPKXYHVKXONPTJCHYBXLPKTB∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采⽤第4章的“4.1.6欧⼏⾥得算法”,或者直接穷举1~25)∴解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26)对密⽂ C 进⾏解密:M ’=D(C)≡19C+5 (mod 26)=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] = THE NATIONAL SECURITY AGENCY2. 设由仿射变换对⼀个明⽂加密得到的密⽂为 edsgickxhuklzveqzvkxwkzukvcuh ,⼜已知明⽂的前两个字符是“if ”。

对该密⽂解密。

解:设解密变换为 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 。

杨波,_《现代密码学(第2版)》第五章 5.4-5.5节

杨波,_《现代密码学(第2版)》第五章 5.4-5.5节

5.4.1 随机数的使用
很多密码算法都需使用随机数,例如: 很多密码算法都需使用随机数,例如: • 相互认证。在密钥分配中需使用一次性随机数来 相互认证。 防止重放攻击。 防止重放攻击。 • 会话密钥的产生。 会话密钥的产生。 • 公钥密码算法中密钥的产生,用随机数作为公钥 公钥密码算法中密钥的产生, 密码算法中的密钥, 密码算法中的密钥,或以随机数来产生公钥密码算 法中的密钥。 法中的密钥。 在随机数的上述应用中, 在随机数的上述应用中,都要求随机数序列满 随机性和不可预测性。 足随机性和不可预测性。
一种方法是将高质量的随机数作为随机数库编 一种方法是将高质量的随机数作为随机数库编 辑成书,供用户使用。 辑成书,供用户使用。然而与网络安全对随机数巨 大的需求相比,这种方式提供的随机数数目非常有 大的需求相比,这种方式提供的随机数数目非常有 再者, 限。再者,虽然这时的随机数的确可被证明具有随 机性,但由于敌手也能得到这个随机数源, 机性,但由于敌手也能得到这个随机数源,而难以 保证随机数的不可预测性。 保证随机数的不可预测性。 网络安全中所需的随机数都借助于安全的密码 网络安全中所需的随机数都借助于安全的密码 算法来产生。但由于算法是确定性的, 算法来产生。但由于算法是确定性的,因此产生的 数列不是随机的。然而如果算法设计得好, 数列不是随机的。然而如果算法设计得好,产生的 数列就能通过各种随机性检验,这种数就是伪随机 数列就能通过各种随机性检验,这种数就是伪随机 数。
如果取a=7,其他值不变,则产生的数列为 5, 25, ,其他值不变,则产生的数列为{1, 如果取 29, 17, 21, 9, 13, 1,…},周期增加到 。 ,周期增加到8。 周期尽可能大, 应尽可能大 应尽可能大。 为使随机数数列的周期尽可能大 为使随机数数列的周期尽可能大,m应尽可能大。 普遍原则是选 接近等于计算机能表示的最大整数 接近等于计算机能表示的最大整数, 普遍原则是选m接近等于计算机能表示的最大整数, 如接近或等于2 如接近或等于231。

杨波, 《现代密码学(第2版)》05-1

杨波, 《现代密码学(第2版)》05-1

5.1.5 无中心的密钥控制
用密钥分配中心为用户分配密钥时, 用密钥分配中心为用户分配密钥时,要求所有 用户都信任KDC,同时还要求对 加以保护. 用户都信任 ,同时还要求对KDC加以保护. 加以保护 如果密钥的分配是无中心的, 如果密钥的分配是无中心的,则不必有以上两 个要求. 个要求.然而如果每个用户都能和自己想与之建立 联系的另一用户安全地通信,则对有n个用户的网 联系的另一用户安全地通信,则对有 个用户的网 络来说,主密钥应多达n(n-1)/2个.当n很大时,这 很大时, 络来说,主密钥应多达 个 很大时 种方案无实用价值, 种方案无实用价值,但在整个网络的局部范围却非 常有用. 常有用.
用会话密钥K ④ B用会话密钥 S加密另一个一次性随机数 2,并 用会话密钥 加密另一个一次性随机数N 将加密结果发送给A. 将加密结果发送给 . 作为对B的应答 是对N ⑤ A以f(N2)作为对 的应答,其中 是对 2进行某种 以 作为对 的应答,其中f是对 变换(例如加1)的函数, 变换(例如加 )的函数,并将应答用会话密钥加 密后发送给B. 密后发送给 . 这两步可使B相信第③ 这两步可使 相信第③步收到的消息不是一个 相信第 重放. 重放. 注意: 步就已完成密钥分配, 注意: 第③步就已完成密钥分配,第④,⑤ 两步结合第③步执行的是认证功能. 两步结合第③步执行的是认证功能.
此外,消息中还有 希望得到的两项内容 希望得到的两项内容: 此外,消息中还有B希望得到的两项内容: 一次性会话密钥 S; 一次性会话密钥K A的身份(例如 的网络地址)IDA. 的身份( 的网络地址) 的身份 例如A的网络地址 这两项由K 加密,将由A转发给 转发给B,以建立A, 之 这两项由 B加密,将由 转发给 ,以建立 ,B之 间的连接并用于向B证明 的身份. 证明A的身份 间的连接并用于向 证 的身份.

杨波,_《现代密码学(第2版)》第三章 3.1-3.4节

杨波,_《现代密码学(第2版)》第三章 3.1-3.4节

图3.1 分组密码框图
通常取m=n。 。 通常取 若m>n,则为有数据扩展的分组密码; ,则为有数据扩展的分组密码; 若m<n,则为有数据压缩的分组密码。 ,则为有数据压缩的分组密码。
设计的算法应满足下述要求: 设计的算法应满足下述要求: 分组长度n要足够大 要足够大, ① 分组长度 要足够大,使分组代换字母表中的元素 个数2 足够大,防止明文穷举攻击法奏效。 个数 n足够大,防止明文穷举攻击法奏效。 DES、IDEA、FEAL和LOKI等分组密码都采用 、 等分组密码都采用n=64, 、 和 等分组密码都采用 , 在生日攻击下用232组密文成功概率为1/2,同时要求 在生日攻击下用 组密文成功概率为 , 存贮, 232×64b=215MB存贮,故采用穷举攻击是不现实的。 存贮 故采用穷举攻击是不现实的。
• 如将分组 化分为子段,每段长为 、16或者 。 如将分组n化分为子段 每段长为8、 或者 化分为子段, 或者32。 • 软件实现时,应选用简单的运算,使作用于子段上 软件实现时,应选用简单的运算, 的密码运算易于以标准处理器的基本运算,如加、 的密码运算易于以标准处理器的基本运算,如加、 移位等实现, 乘、移位等实现,避免用以软件难于实现的逐比特 置换。 置换。 • 为了便于硬件实现,加密和解密过程之间的差别应 为了便于硬件实现, 仅在于由秘密密钥所生成的密钥表不同而已。这样, 由秘密密钥所生成的密钥表不同而已 仅在于由秘密密钥所生成的密钥表不同而已。这样, 加密和解密就可用同一器件实现。 加密和解密就可用同一器件实现。 • 设计的算法采用规则的模块结构,如多轮迭代等, 设计的算法采用规则的模块结构,如多轮迭代等, 以便于软件和VLSI快速实现。 快速实现。 以便于软件和 快速实现
数据扩展尽可能地小。一般无数据扩展, ⑤ 数据扩展尽可能地小。一般无数据扩展,在采用同 态置换和随机化加密技术时可引入数据扩展。 态置换和随机化加密技术时可引入数据扩展。 差错传播尽可能地小。 ⑥ 差错传播尽可能地小。

《现代密码学》练习题(含答案)

《现代密码学》练习题(含答案)

《现代密码学》练习题(含答案)一、填空题(每空1分,共7分)1. 加密算法的功能是实现信息的保密性。

2. 数据认证算法的功能是实现数据的完整性即消息的真实性。

3. 密码编码学或代数中的有限域又称为伽罗华(Galois)域。

记为GF(pn)4. 数字签名算法可实现不可否认性即抗依赖性。

信息安全基本要求:可用性、保密性、完整性、不可否认性、可控性、真实性。

5. Two-Track-MAC算法基于带密钥的RIPEMD-160。

密钥和输出MAC值都是20B6. AES和Whirlpool算法是根据宽轨迹策略设计的。

7. 序列密码的加密的基本原理是:用一个密钥序列与明文序列进行叠加来产生密文。

8. Rabin密码体制是利用合数模下求解平方根的困难性构造了一种非对称/公钥/双钥密码体制。

1. 现代对称密码的设计基础是:扩散和混淆。

2. 加密和解密都是在密钥控制下进行的。

3. 在一个密码系统模型中,只截取信道上传送信息的攻击方式被称为被动攻击。

4. Caesar密码体制属于单表代换密码体制。

(字母平移)5. 尽管双重DES不等价于使用一个56位密钥的单重DES,但有一种被称为中途相遇攻击的破译方法会对它构成威胁。

(成倍减少要解密的加密文本)6. 设计序列密码体制的关键就是要设计一种产生密钥流的方法。

2. 椭圆曲线密码是利用有限域GF(2n)上的椭圆曲线上点集所构成的群上定义的离散对数系统,构造出的公钥/非对称密码体制。

3. 在公钥密码体制中,加密密钥和解密密钥是不一样的,加密密钥可以公开传播而不会危及密码体制的安全性。

2. 密码学上的Hash函数是一种将任意长度的消息压缩为某一固定长度的消息摘要的函数。

3. 数字签名主要是用于对数字消息进行签名,以防止消息的伪造或篡改,也可以用于通信双方的身份认证。

2. CTR/计数器加密模式与CBC认证模式组合构成CCM模式;GMAX算法与CTR加密模式组合构成GCM模式。

杨波, 《现代密码学(第2版)》05-2

杨波, 《现代密码学(第2版)》05-2

在设计密码算法时,经常使用似乎是随机的数 列,称为伪随机数列,例如RSA算法中素数的产生。 一般来说,决定一个大数N是否为素数是很困难的。 最原始的方法是用小于 的每个数去除N,如果N N 很大,比如10150,这一方法则超出了人类的分析能 力和计算能力。很多有效的算法是通过使用随机选 择的整数序列作为相对简单计算的输入,可检测一 个数的素性。如果随机选择的序列足够长(当然, 远小于 ),就可比较肯定地得出这个数的素 10150 性。这种方法称为随机化,在设计密码算法时经常 使用。
2. 不可预测性 在诸如相互认证和会话密钥的产生等应用中, 不仅要求数列具有随机性而且要求对数列中以后的 数是不可预测的。
对于真随机数列来说,数列中每个数都独立于 其他数,因此是不可预测的。 对于伪随机数来说,就需要特别注意防止敌手 从数列前边的数预测出后边的数。
5.4.2 随机数源
• 真随机数很难获得,物理噪声产生器,如离子辐射 脉冲检测器、气体放电管、漏电容等都可作为随机 数源,但在网络安全系统中很少采用,一方面是因 为数的随机性和精度不够,另一方面这些设备又很 难连接到网络系统中。
a n mod m 1 n 1, 2, , m 2 m1 a mod m 1
时,产生的数列是整周期的。例如, a=75=16807即 为m=231-1的一个本原根,由此得到的随机数产生 器Xn+1=(aXn)mod (231-1)已被广泛应用,而且与其 他产生器相比,经历过更多的检验,这种产生器常 用于统计和模拟工作。
EDE表示两个密钥的三重DES。
本方案具有非常高的密码强度,因为:
•采用了112比特长的密钥和9个DES加密;
•算法由两个伪随机数输入驱动,一个是当前的日 期和时间,另一个是算法上次产生的新种子; •即使某次产生的随机数Ri泄露了,但由于Ri又经一 次EDE加密才产生新种子Vi+1,所以别人即使得到 Ri也得不到Vi+1,从而得不到新随机数Ri+1。

杨波, 《现代密码学(第2版)》07

杨波, 《现代密码学(第2版)》07

图7.1 消息加密产生数字签字的基本方式
(2) 公钥加密 如图7.1(b)所示,发送方A使用自己的秘密钥SKA对 消息M加密后的密文作为对M的数字签字,B使用A 的公开钥PKA对消息解密,由于只有A才拥有加密 密钥SKA,因此可使B相信自己收到的消息的确来自 A。然而由于任何人都可使用A的公开钥解密密文, 所以这种方案不提供保密性。为提供保密性,A可 用B的公开钥再一次加密,如图7.1(c)所示。
True S Sig x M Verx S , M False S Sig x M
算法的安全性在于从M和S难以推出密钥x或伪造一 个消息M′使M′和S可被验证为真。
7.1.3 数字签字的执行方式
数字签字的执行方式有两类: 直接方式和具有仲 裁的方式。 1. 直接方式 指数字签字的执行过程只有通信双方参与,并假定 双方有共享的秘密钥或接收一方知道发方的公开钥。
DSS签字也利用一杂凑函数产生消息的一个杂凑值, 杂凑值连同一随机数k一起作为签字函数的输入, 签字函数还需使用发送方的秘密钥SKA和供所有用 户使用的一族参数,称这一族参数为全局公开钥 PKG。签字函数的两个输出s和r就构成了消息的签 字(s,r)。接收方收到消息后再产生出消息的杂凑 值,将杂凑值与收到的签字一起输入验证函数,验 证函数还需输入全局公开钥PKG和发送方的公开 钥PKA。验证函数的输出如果与收到的签字成分r 相等,则验证了签字是有效的。
7.1 数字签字的基本概念
7.1.1 数字签字应满足的要求 消息认证的作用是保护通信双方以防第三方 的攻击,然而却不能保护通信双方中的一方防止另 一方的欺骗或伪造。通信双方之间也可能有多种形 式的欺骗,例如通信双方A和B(设A为发方,B为 收方)使用图6.1所示的消息认证码的基本方式通 信,则可能发生以下欺骗:

杨波,_《现代密码学(第2版)》第三章 3.6节

杨波,_《现代密码学(第2版)》第三章 3.6节

构成的字节b看成系数在 看成系数在{0, 将b7b6b5b4b3b2b1b0构成的字节 看成系数在 1} 中的多项式 b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0 例如: 十六进制数‘57’对应的二进制为 例如: 十六进制数‘ 对应的二进制为01010111, , 对应的二进制为 看成一个字节,对应的多项式为x 看成一个字节,对应的多项式为 6+x4+x2+x+1。 。
第3章 分组密码体制 章
• • • • • • 分组密码概述 数据加密标准 差分密码分析与线性密码分析 分组密码的运行模式 IDEA AES算法 算法——Rijndael 算法
3.6 AES算法 算法——Rijndael 算法
• 1997年4月15日,美国 年 月 日 美国ANSI发起征集 发起征集AES 发起征集 (Advanced Encryption Standard)的活动,并为 )的活动, 此成立了AES工作小组。此次活动的目的是确定一 此成立了 工作小组。此次活动的目的是确定一 工作小组 个非保密的、可以公开技术细节的、 个非保密的、可以公开技术细节的、全球免费使用 的分组密码算法,以作为新的数据加密标准。 的分组密码算法,以作为新的数据加密标准。 • 1997年9月12日,美国联邦登记处公布了正式征集 年 月 日 AES候选算法的通告。对AES的基本要求是: 比 候选算法的通告。 的基本要求 候选算法的通告 的基本要求是 三重DES快、至少与三重 一样安全、 三重 快 至少与三重DES一样安全、数据分组 一样安全 长度为128比特、密钥长度为 比特、 比特。 长度为 比特 密钥长度为128/192/256比特。 比特
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)成立。

相关文档
最新文档