现代密码学第4版习题解析:仿射变换加密与解密实例详解

日期: 2025-03-14 07:06:25 |浏览: 34|编号: 78999

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

现代密码学第4版习题解析:仿射变换加密与解密实例详解

1。现代密码学(第四版)练习参考答案第1章1。假设仿射转换的加密为:加密纯文本“国家安全机构”,并使用解密转换来验证您的解密结果。解决方案:纯文本M =国家安全机构表示为: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根据E11,23(M)11*M+23(mod 26)

2。1019 1从此,ciphertext C = ywpkxyhvkxonptjchybxlpktb使用解密转换来验证加密结果:从11*191(mod 26)知道11-1 = 19(注意:注:模块化元素可以通过euclidean algoridean algoritean Algorith或直接填充125)。根据D11,23(c)11-1*(C-23)(mod 26)19*(C-23)(mod 26),相应的纯文本字符M = 19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 2 20 17 8 19 24 0 6 4 13 2 24从此代理,解密结果与纯文本一致,是正确的。 2。让我们从仿射中改变

3。通过加密纯文本为:edsgickxhuklzveqzvkxwkzzukukukukvcuh更改获得的密文。众所周知,纯文本的前两个字符是“如果”,因此纯文本被解密了。解决方案:假设加密转换为C = EA,B(M)A*M+B(MOD 26)。 From the question, we can see that the first two characters in the plain text are if and the corresponding ciphertext is ed, that is, there are: E(i)=e, 4a*8+b(mod 26), (i=8, e=4), E(f)=d, 3a*5+b(mod 26), (f=5, d=3), and we can find from the above two formulas, a=9, b=10, so the decryption转换为d9,10(c)9-1*(C-10)(mod 26)和3*91(mod 26),我们可以看到与9-1 = 3 ciphertext相对应的数字表示为:C = 4 3 18 6 8 2 10 23 7

4. According to D9,10(c)9-1*(c-10) (mod 26)3*(c-10) (mod 26), the corresponding plain text character c=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 From this we get the plain text m=ify youcanreadthisthankateahcer Let the multi-denotation substitution password be encrypted as: for the plain text "PLEASE SEND我这本书,我的信用卡没有六o

5. NE TWO ONE THREE EIGHT SIX ZERO ONE SIX EIGHT FOUR NINE SEVEN ZERO TWO” Verify your results with decryption transformation, where the solution: When encrypting, first group the plaintext, one group for each four: substitute the encryption transformation: to obtain the calculation result: The cipher text is: NQXB BTWB DCJJ IJDT XDCF YFSG LYGD MOXN LLGN HAPC QZZQ zcrg zezj uieb rrsq nemv qdje mxna ierp xakm yrby yrby tqfm nemv nemv ome与上述相同,当解密时,首先将ciphertext组成,然后将其替换为解密转换:获取明文:获取Plea sese ndme ndme theb okm ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr ycr

6. The decryption verification result of E DITC ARDN OISS IXON ETWO ONETHREE EIGH TSIX ZERO ONES IXEI GHTF OURN INES EVEN ZERO TWO is consistent with the plain text. 4。假设在多折叠式及时密码中,A为22矩阵,B是零矩阵。 Also, knowing that the plain text "dont" is encrypted as "elni", find matrix A. Solution: Suppose the matrix is ​​from m=dont=(3,14,13,19) and c=elni=(4,11,13,8) and it can be seen that: The solution is: Chapter 2 The 3-level linear feedback shift register can have 4 linear feedback functions when it is in. Suppose its initial state is, find the output sequence和每个线性反馈功能的周期。解决方案:假设3级线性反馈特征多项式(如果有常见的可能性)与初始状态相对应。四个线性反馈函数记录为:输出顺序

7. Column, from definition 2-2, the period is obtained from definition 2-3, the output sequence is obtained from theorem 2-5, the period is an m-sequence irreducible polynomial, the output sequence, the period is an m-sequence output sequence, and the period is an m-sequence output sequence, and the period is a characteristic polynomial of the n-level linear feedback shift register is, the initial state is, prove that the period of输出序列等于顺序。解决方案:定义的顺序最小。因为初始状态不是零,因此将其设置为序列的最小周期。而且因为它必须存在,所以。同样,由于定理2-1具有,次数不超过次数,而且次数不超过。因此,它是一个积极的整数,并且拥有它。设置,。也就是说,该期间的顺序。如果它是N级不可还原多项式,则序列的最小周期等于阶。该功能生成的次数不得超过。不可用,所以。因为,所以。假设初始状态是,找到此非线性反馈移位寄存器的输出顺序和周期。解决方案:来自初始状态

8。可以获得线性递归:可以获得输出序列,并且周期为。 4。假设键流是由阶段的LFSR生成的,其先前位是01。M+3位有可能是1?为什么?解决方案:1不能出现在M+3位上,因为:根据线性移位寄存器的递归关系,有:5。假设键流是由N级LFSR生成的,并且其周期是任何整数。考虑钥匙流中的以下位对,以询问那里有多少个形状对。尝试证明您的结论。解决方案:根据p23定理2-7,在具有一段时间内的M序列中,有一个带有i的长度的运行,而0和1的运行为一半,然后有:1 2运行:1 3运行:1 N-2运行:1 n-2运行:然后有: /2 GET-GET-GET-GET-GET-GET-GET,以便有一对形状。 6。密码字符串101011011已知流密封器的

9、0和相应的明文字符串0100010001,还知道使用3级线性反馈移位寄存器生成键流,尝试破译加密系统。解决方案:从已知的键流序列可以获得为1110100111。由于它是三级线性反馈移位寄存器,因此可以获得以下方程:将值替换为:从此,键流的递归关系为:。 7。如果GF(2)上二进制添加流密码的密钥发生器是N级线性反馈移位寄存器,则生成的密钥是M序列。第2.5节已知,如果对手知道一对2N长,则可以将键流的发电机解密。如果对手只知道2N-2长的加密文本对,请询问如何破译键流生成器。解决方案:如果对手在Ming Secret文字中只知道2N-2对,他可以在Ming秘密文本中构造以下2N对:可以设置:纯文本:密码文本:其中:其中:其中:

10。未知。已知,未知。可能的值为00,01,10,11。可能的值为00,01,10,11。有16个组合方案,可以分开破解以获得钥匙流。在破裂结果中,符合M序列属性的键流是正确的解决方案,并且可能不是唯一的。 8。假设JK触发器中和分别为3级和4 m序列,并找到输出序列和周期。解决方案:从JK触发器中,我们可以知道3级和4级M序列的总和分别为时期。 9。假设基本的时钟控制序列发生器分别是2级和3级M序列,并找到输出序列和周期。解决方案:如果基本的时钟控制序列发生器中的周期为,则输出序列的周期为,则输出序列的周期为。生成了LFSR2的状态向量,可用的更改如下:输出序列第3(1)章假设M和M的逐位补体证明它在DES中,

11。如果宣传数据包和加密键是一点补充的,那么所获得的密文也会被点点一点地补充一点,也就是说:如果y = desk(x),则y = desk(x)提示:证明任何两个位字符串a和b的长度相等。在对DES进行搜索攻击不佳时,有必要执行由256个密钥组成的钥匙空间。是否可以根据(1)的结论减少用于进行搜索攻击不良的关键空间。 (1)证明:假设LI和RI分别不是第i-thous des转换的左侧和右侧,i = 0,1,16,那么加密过程是:如果纯文本和密钥k同时补充了加密过程,则加密过程是:函数将在其中扩展数据的左侧和右侧,并在其中进行稍作限制或与by-bit-pitific specific或key的操作。因此,通过S框并替换输出结果P后,就有:也有同一时间,因此纯文本P和键K同时补充。

12。(2)答案:根据(1)的结论,可以执行失败的搜索攻击,这可以将要搜索的密钥的空间减少一半,即255。鉴于授予X,因此,从(1)开始,一个搜索包括两个明文的情况,包括x和x。 2。证明DES解密转换是加密转换的倒数。证明:让它成为左右位置交换函数,然后迭代转换为: 时间,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, ,, ,,, ,,,,,,,,,,,,,,,, ,, ,, ,, ,, ,, ,,, ,, ,, ,, ,, ,,,,,,,,,,,,,,, (认证)3。在DES的EBC模式下,如果密文数据包中存在错误,则仅在解密后仅会影响相应的明文数据包。但是,在CBC模式下,会有错误传播。例如,图3-11中C1中的一个误差显然会影响P1和P2的结果。 (1)P2后的分组是否受到影响? (2)设置其他

13。秘密之前的明文数据包P1有一些错误。此错误会传播多少个密文数据包?它会对收件人产生什么影响?答案:(1)在CBC模式下,如果Ciphertext数据包中存在错误C1,则在解密期间将受到明文数据包的影响,并且随后的数据包将不会受到影响,也就是说,CBC的误差传播长度为2,可以恢复。 (2)如果纯文本组P1存在错误,则随后的密码文本组将有错误。但是,对于接收者,解密后,除了P1中的错误外,其他纯文本组可以正确恢复。 4。在8位CFB模式下,如果在密文字符中发生1位错误,则错误可以传播多远?答案:在8位CFB模式下,如果密文中存在1位错误,它将影响当前数据包和后续数据包的解密,从而导致解密输出导致9个连续的错误组,即,错误传播的长度为9。5。

14。当意识到想法时,最困难的部分是模量乘法操作。以下关系提供了实现模块化乘法的有效方法,其中a和b是两个N位的非0整数:(1)证明有独特的非负整数Q和R,以便进行; (2)找到Q和R的上限和下限; (3)证明; (4)找到有关Q的表达; (5)找到有关Q和R的表达; (6)使用(4)和(5)的结果找到R的表达来说明R的含义。 (1)证明:假设存在这样的原因,所以,,所以,只有。 (2)解决方案:显然,A和B的最大值都是两个,因此存在原因。 (3)证明:(4)解决方案:根据,我们得到(5)解决方案:根据,我们得到解决方案:当时,基于并获得同样,当时,其余的r代表AB的N最低显着位位与AB的正确移位数N之间的差异。 6。(1)为什么是

15。模块化乘法不是吗? (2)在Idea的模量添加操作中,为什么模量乘法代替?答案:(1)在Idus Modulo乘法操作中,有必要确保该操作形成组,因此模量必须为Prime,因此不能采取216。 (2)同一组中的分布定律和结合定律都是真实的,但是思想算法必须确保添加模量和模量的乘法。分配法和位之间的约束法是不正确的。因此,模块化添加操作不能与模块化乘法操作相同,即不能选择模块化216+1,而216必须是模块化加法操作中的组。事实证明,SM4算法满足了连贯性,即加密过程和解密过程是相同的,但是关键用法顺序相反。证明:SM4算法的加密轮函数分为加密函数g和数据交换E。也就是说,加密轮函数fi = gi = gi = g

16。ixi,xi+1,xi+2,xi+3,rki(i = 0,1,2,31)=(xitxi+1,xi+1,xi+2,xi+3,rki,xi+1,xi+1,xi+2,xi+3)exi+3) (i = 0,1,2,31),因为, (gi)2 = gi(xitxi+1,xi+2,xi+3,rki,xi+1,xi+2,xi+2,xi+3,rki)=(xitxi+1,xi+1,xi+2,xi+3,xi+3, rkitxi+1,xi+2,xi+3,rki)= xi,xi+1,xi+2,xi+3,rki)= xi,xi+1,xi+2,xi+2,xi+3,rki = i因此,加密函数g是对应的。 e转换为:exi+4,(xi+1,

17。xi+2,xi+3)=(xi+1,xi+2,xi+3,xi+4)e2xi+4,(xi+1,xi+2,xi+3)= i显然,E是反合操作。总而言之,加密轮功能是平衡的。根据加密框图,SM4的加密过程可以写入:SM4 = G0EG1EG30EG31R,根据解密框图,SM4的解密过程可以写入:SM4-1 = G31EG30EG1EG1EG1EG1EG1EG0R比较SM4和SM4-1,可以看到操作是相同的,仅使用命令。因此,SM4算法结合使用。第4章1。证明以下关系:(1),然后; (2),然后; (3),然后。解决方案:(1)假设从问题中,有整数,这样就可以证明这一点。 (2)已知有整数,因此证明了这一点。 (3)众所周知,有整数,因此证明了这一点。

18。2。证明以下关系:(1); (2)。解决方案:(1)假设有一个整数。 (2)假设有一个整数。 3。使用Fermat定理找到它。解决方案:因为这是一个质量数,然后是从fermat定理,我们可以获得:;根据属性,我们可以获得:。 4。使用流行的欧几里得算法查找逆元素。解决方案:下表显示了计算步骤:循环数量QX1X2X3Y1Y2Y3初始值1011901671101671-152211-1521-152-121533-12154-777424-77424-7777-9161So.So。 5。问。解决方案:从欧几里得算法中,我们得到:如此。 6。求解以下一致方程系统:解决方案:根据中国剩余定理求解一致方程系统。请注意,有方程式系统的解决方案为7。计算以下legendre符号:(1); (2

19.); (3)。解决方案:(1)(2)(3)8。找到所有原始的根。解决方案:因为,因此,所有不同的主要因素都是,也就是说,只需要计算。因为,有8个原始根。满意度的原始根源。 9。证明当且仅当它是质量数时,它是一个域。证明:(1)如果是一个域,则所有都是亚伯组。显然,这是一个亚伯群,它与N是否是质量数字无关。但是,如果它是一个ABEL组,则其条件之一必须确保模量乘法逆元素适用于任何任意元素,也就是说,对于任何,即,它是质量数字。 (2)如果它不是素数,则至少存在一个,因此,即modulo乘法逆元素,不能保证它们是亚伯组,即不是域。 10。假设通信的双方都使用RSA加密系统,接收方的公钥是,收到的密文为,而纯文本为。答:因为,这是清晰的文本。 11。已知的运行时间

20。是的,使用中国残留定理改善RSA的解密操作。如果未考虑中国剩余定理的计算成本,则证明改进的解密操作速度是原始解密操作速度的4倍。证明:RSA的两个大因素的长度大约相等,大约是模量的位长度的一半,即在中国剩余定理中,必须在模块和模块上执行模块化指数操作,这与运行时间定律相似,因此每个模量指数操作的运行时间仍然是其模态长度的第三个功率,也是其模态长度的第三个功能。在不考虑中国剩余定理计算的成本的情况下,RSA解密操作的总运行时间是两个模量索引操作的运行时间的总和,也就是说,改进的解密操作速度是原始解密操作速度的4倍。 12。假设RSA加密系统的公共密钥是(1)通过重复升级方法对纯文本进行加密,并且中间结果是:如果对手得到上述中间结果,则易于分解,并询问对手如何分解它。

21。(2)找到解密密钥。解决方案:(1)从上述中间结果中,我们可以获得:。从中,我们可以看到分解是。 (2)解密密钥,可从扩展的欧盟算法获得。 13。在Elgamal加密系统中,设置质数,原始根,(1)如果接收器B的公钥B是发件人A选择的随机整数,请找到与纯文本相对应的密文。 (2)如果a选择了另一个随机整数,以便在授权后加密的密文。解决方案:(1)密码,其中:。因此,与纯文本相对应的密码文本是。 (2)您可以获得用尽它的方法。所以。 14。假设背包加密系统的过度插入序列是乘数和模量,请尝试加密晚安。解决方案:从乘数和模量器中,您可以得到它。纯文本“晚安”的编码是“ 00111”,“ 01111”,“ 01111”,“ 00100”,“ 000000”,

22。“ 01110”,“ 01001”,“ 00111”,“ 01000”,“ 10100”,然后有:因此,纯文本“晚安”的相应密文。 15。假设背包加密系统的过度插入序列是乘数,模量,请尝试解密它。解决方案:因为,。因此,相应的纯文本组是:从教科书的第120页的表4-7中,您可以将纯文本称为“ adra”。 16。众所周知,两者都是质数,它们的雅各比符号是:(1)当且仅当它们是模具的平方残留物或模具中的非平方残留物时,它是模具的平方残留物。 (2)是模具的平方残留物,并且仅当它们既是模具的平方残留物,又是模具的非方形残基。证明:(1)必要性:如果存在模具的正方形残差,则意味着并且显然必须存在,因此它也是模具和模具的平方残留物。它也是从标题中获得的。所以:

23。是的,也就是说,模具和模具的方形盈余,以及模具和模具的平方盈余,即模具的平方盈余;是的,是的,即模具和模具的非方面盈余,以及模具和模具的非方形盈余,即模具和模具的非方形盈余,以及模具和霉菌的非方形盈余,即模具的非方向盈余。足够:如果模具的两个正方形残基都是模具和模具的平方残留物,即模具和模具的平方残基同时是模具和模具的平方残留物,因此它们是模具和模具的平方残留物;如果霉菌的非方形残基,那么可能假定的模具和模具的非方块残基至少有一种情况,那么它们也是霉菌和模具的非方形残基。因此,同样,它同时是模具和模具的平方残留物,因此它是模具的平方残留物。 (2)如果模具的正方形残基是模具的正方形残留物,同时是模具的方形残留物,因此,由于Lejander符号的均匀功率肯定是(外壳除外),因此剩下的证明是相同的(1)。提示:17。拉宾密码系统中的设置:

24。(1)确定模具下的4平方根。 (2)找到与纯文本消息相对应的密文。 (3)对于上述密文,请确定4个可能的明文。解决方案:(1)已知可以从中国残留定理获得等效方程的系统:因为,因此。可以通过组合获得以下四个方程系统:根据中国残留定理,有:第一个方程式的解决方案是:第二个方程系统的解决方案是:第三个方程系统的解决方案是:四个方程系统的解决方案是。因此,四个平方根是。 (2)相应的密文为。 (3)解密是解决方案,可以从中国残留定理中获得等效方程系统:因为,可以通过组合获得以下四个方程式:根据中国残留定理,有:第一个方程式的解决方案是:第二个方程系统的解决方案是:第三个方程系统的解决方案是:四个方程系统的解决方案是。因此,有四个可能的纯文本。 18。椭圆曲线代表,在其上找到所有点。解决方案:模型

25。仍然有一个正方形盈余。当没有解决方案时,曲线没有相应的点。当没有解决方案时,曲线没有相应的点。当没有解决方案时,曲线没有相应的点。当没有解决方案时,曲线没有相应的点。什么时候;什么时候;什么时候;什么时候;因此,椭圆曲线上的所有点都是:。 19。已知点在椭圆曲线上,总和。解决方案:(1)问。所以。 (2)易于知道。所以。 20.使用椭圆曲线实现大策略系统,假设椭圆曲线是发电机和接收器A的秘密钥匙A。(1)找到A的公共密钥A。(2)发件人B想要发送消息,选择一个随机数,然后找到Ciphertext。 (3)显示接收聚会的过程A从Ciphertext中恢复消息。解决方案:(1)易于知道的公钥。求。所以。可以从问题19中获得。所以。 (2)密码。求:。求:。所以。求:。所以。总结:。 (3)从密文中恢复消息的过程如下:其中:a)首先计算计算。

26。 = 2 * GB3计算。所以。 = 3 * GB3计算。所以。 = 4 * GB3计算。所以。 b)计算。所以。第5章在公共密钥系统中,每个用户U都有自己的公钥和秘密密钥。如果任何两个用户A和B通过以下方式通信,A将消息发送给B。在B接收到B后,它会自动将消息返回到A中,以使A知道B确实收到了消息M。 (1)询问用户c如何通过攻击获得消息m?解决方案:当A向B发送消息时,A的身份“ A”未经身份验证,并且B在收到消息后无法验证发件人,并且身份A和B会传输纯文本。因此,用户C可以通过以下方式获取消息M:当A向B发送消息时,C拦截了消息并将身份A替换为自己的身份C,并将修改后的消息发送给接收机B; B提取消息后,它将根据身份“ C”返回

27。消息; C Robs B的消息再次使用其自己的私钥解密消息M,并使用A的公钥对M进行加密,并将消息发送给A。通过这种方式,用户C获得了消息M,而不会影响A和B之间的正常通信,并实现攻击。 (2)如果通信格式变为:A将消息B发送到消息B,则当B将消息返回A时,安全性是什么?分析A和B此时如何相互验证并传递消息M。解决方案:根据消息格式,消息M首先签名,然后进行加密。传输的消息是机密和认证的。对手无法获得数据包文明文本,这可以提高安全性。 A和B之间的相互认证的过程如下:当B接收消息时,首先使用B的私钥解密消息,然后根据提取的身份信息A和A的公共密钥验证消息M的签名M的正确性。如果通过验证通过,则意味着消息确实来自A。相反,A可以验证相同的方法

28。确实来自B,因此实现了相互认证。 Diffie-Hellman密钥交换协议很容易受到中间人攻击的攻击,也就是说,在攻击者拦截双方之间的通信内容之后,他可以假装分别是通信方,以获得两党协商的密钥。攻击者如何实施攻击的详细分析。解决方案:尽管Diffie-Hellman密钥交换算法非常聪明,但由于没有身份验证功能,因此有中间攻击。当爱丽丝(Alice)和鲍勃(Bob)交换数据时,特鲁迪(Trudy)拦截了交流信息,并假装是爱丽丝(Alice),并欺骗鲍勃(Bob),假冒鲍勃(Bob)并欺骗了爱丽丝(Alice)。该过程如下:(1)爱丽丝选择一个大的随机数X并计算出来。爱丽丝将G,P和X传输到Bob,但被Trudy拦截。 (2)Trudy假装爱丽丝选择一个大的随机数Z并计算出来。 Trudy将Z传输到鲍勃; (3)t

29。鲁迪模仿鲍勃,然后将其传输给爱丽丝; (4)BOB选择一个较大的随机数Y并进行计算。鲍勃将y传给爱丽丝,但被特鲁迪拦截。 (1),(3)爱丽丝和特鲁迪共享一个秘密钥匙,(2),(4)Trudy和Bob共享一个秘密钥匙。将来,只要Trudy是中介,爱丽丝和鲍勃就不会找到任何通信例外,但是Trudy可以获得所有通信内容。在Diffie-Hellman密钥交换过程中,让大码数P = 11,A = 2是P的原始根,(1)用户A的公钥,并找到其秘密密钥。解决方案:满足,因此有= 6。(2)假设用户B的公共密钥,并找到A和B的共享密钥k。解决方案:可以从Diffie-Hellman协议中看到它。线性一致

30。算法,问题:(1)该算法生成的序列的最大周期是多少?解决方案:由于模型,它没有原始根,并且从递归方法中不难知道。因此,该算法生成的序列的最大周期是最大顺序1,但是,但是。如果L = 4,则不难验证序列周期为4时,该算法生成的序列的最大周期为4。(2)A的值是多少?解决方案:A必须满足,因此将其带入其中。如果该周期为4,也就是说,A(3)的值对种子有任何限制吗?解决方案:必须满足种子。在Shamir Secret Sementation阈值方案中,令K = 3,N = 5,Q = 17分别为8、7、10、0和11。选择其中的任何三个,构建插值多项式并找到秘密数据s。解决方案:取,构建插值多项式。在基于中国残差定理的秘密分割阈值方案中,让三个子键分别为6、3和4,找到秘密数据s。解开:

31。从问题中,应获得s。因为这三个子键分别为6、3、4,因此,您可以获得= 48,您可以得到= 48,您可以得到=也就是说,秘密数据s为48。第6章第16.1.3节中介绍的数据身份验证算法是由CBC模式的DES定义的,在该模式的DES中定义了最初的VERTECTECTECT,则可以将最初的向量解释为2。第6.1.3节DES设计数据身份验证算法在CBC模式下为:引用O1 = EK(D1)O1 = EK(D1)O2 = Ek(D2O1)O3 = EK(D3O2)on = EK(Dnek(Dnek(Dn-1ek)(Dn-1ek(Dn-1ek)(Dn-1ek(dn-1ek(dn-1ek),您使用= ek(dnon-dnon-dnon-1) j = 64 j = 64必须采用,也就是说,整个64位将由每个移位寄存器向左移动。

32。要达到相同的结果,您可以使用Quote IV = D1,PI = Di+1(i = 1,?n-1),在CFB模式下pn = 0。如果您使用引用o2 = d3ek(o1)o3 = d4ek(o2)on = ek(on-1)= ek(dnek(dnek(dn-1ek(dn-1ek(dnek(d2ek(d1)),on-1 = dnek(on-2)on = 0ek(on-2)on = 0ek(on-1)在cfb模式下,在两个方程式中进行了相同的构建。 CBC模式的加密技术,例如,将密钥视为消息数据包。

33。其中E是数据包加密算法。 (1)假设E是DES。第3章中的练习证明,如果宣传数据包和加密密钥都被一点补充,那么所获得的密文也会被点点一点地补充一点。该结论用于证明,在上述哈希函数中,可以修改消息,但哈希值保持不变。答:对手主要通过修改函数引用m1,m2,?,mn m1,m2,?,mn和Quote H0 H0的输入值来构建碰撞。 h1 = desm1(h0)h0h2 = desm2(h1)h1hn = desmn(hn)hn-1使用引用的两个属性y = desk y = desk(x)y = desk(x)和报价,可以看到,如果对手同时打架quote m1 m1和qu

34. If OTE H0 H0 is supplemented bit by bit, then the properties are known to QUOTE DESM1(H0) DESM1(H0) are also supplemented bit by bit. From the properties are known to QUOTE H1 H1 remains unchanged, so QUOTE H2,?HN H2,?HN are not affected either, so there are: QUOTE H(M1M2?MN)=HN H(M1M2?MN)=HN H(M1M2?MN)=HN H(M1M2?MN)=HN (2) If the iterative relationship Hi=EHi-1(Mi)Mi, it is proved that the above attack can still be carried out on it. Answer: The iterative relationship is QUOTE, and the opponent can also supplement QUOTE M1 M1 and QUOTE H0 H0 bit by bit at the same time. From the nature, QUOTE DESH0(M1) DESH0(M1) is also supplemented by bit by bit, and from the nature, two

35. Know that QUOTE H1,?HN H1,?HN are not affected, so the above attacks can still be carried out. 3 Consider using the public key encryption algorithm to construct the hash function. Suppose the algorithm is RSA. After packetizing the message, the first packet is encrypted with the public key. After the encryption result is XORed from the second packet, it is encrypted and continued. Suppose a message is divided into two packets B1 and B2, and its hash value is H(B1, B2)=RSA(RSA(B1)B2). It is proved that C2 is optional for any group C1, such that H(C1, C2)= H(B1, B2). Prove that this attack method can attack the hash function constructed with the public key encryption algorithm mentioned above. Proof: For any packet QUOTE C1 C1, QUOTE C2 C2 can be constructed as follows: QUOTE, then H(C1,C2)=RSA(RSA(C1)C2)=RSA(RSA(RSA(

36. C1)RSA(C1)RSA(B1)B2)=RSA(RSA(B1)B2)=H(B1,B2) Suppose that the input message grouping of the hash function is QUOTE M1M2?MN M1M2?MN, then QUOTE M1 M1 can be taken as QUOTE M1 M1 M1 instead of QUOTE M1 M1, and construct QUOTE M2 M2 from the above method to replace QUOTE M2 M2, and you can get QUOTE H(M1M2?MN)=H(M1M2?MN) H(M1M2?MN)=H(M1M2?MN), and the attack is successful. In Figure 6-11, it is assumed that there are 80 32-bit long words for storing each Wt, so these 80 values ​​can be calculated in advance before processing the information packet. To save storage space, consider a cyclic shift register with 16 words, whose initial value stores the first 16 values ​​(ie W0, W1,

37., W15), design an algorithm to calculate each Wt afterwards. Answer: XORCLS1 QUOTE Wi WiW0W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15 QUOTE W0W15 W0W15 is 16 words of a message packet, initially placed in the shift register, as shown in the figure above to connect the circuit. QUOTE CLS1 The output of CLS1 is fed back to the input on the right side of the shift register. Then when each clock arrives, the shift register moves a word from the left output. QUOTE Wi(i=0,?,79) Wi(i=0,?,79). 5. For SHA, calculate W16, W17, W18, W19 Answer: W16=CLS1(W0W2W8W13)W17=CLS1(W1W3W9W14)W18=CLS1(W2W4

38. W10W15)W19=CLS1(W3W5W11W16)6 Suppose a1a2a3a4 is 4 bytes in a 32-bit long word. Each of the words can be regarded as an integer between 0255 represented by binary. In the big-endian way, the word represents the integer a1224+a2216+a328+a4. In the little-endian structure, the word represents the integer a4224+a3216+a228+a1. (1) MD5 uses a small-endian structure. Since the digest value of the message should not depend on the structure used by the algorithm, in order to perform modulo 2 addition operations on the two words X=x1x2x3x4 and Y=y1y2y3y4 stored in the big-endian way, these two words must be adjusted.怎么做? Answer: Since MD5 uses little-endian structure, while X and Y use big-endian storage structure, X must be

39. Convert Y to little-endian format, let's convert it to: QUOTE X=x1x2x3x4 X=x1x2x3x4, QUOTE Y=y1y2y3y4 Y=y1y2y3y4, then x1224+x2216+x328+x4=x4224+x3216+x228+x1x1=x4,x2=x3,x3=x2,x4=x1 (2) SHA uses the big-endian method and asks how to perform modulo 2 addition of two words X and Y stored in a small-endian structure. Answer: Since SHA uses big-endian structure, while X and Y use little-endian storage structure, X and Y must be converted into big-endian format and set to: QUOTE X=x1x2x3x4 X=x1x2x3x4, QUOTE

40. Y=y1y2y3y4 Y=y1y2y3y4, then there is x4224+x3216+x228+x1=x1224+x2216+x328+x4x1=x4,x2=x3,x3=x2,x4=x1 Chapter 7 1. In the DSS digital signature standard, then, if taken, then. When signing a message, select, calculate the signature and perform verification. Solution: (1) Signing process: In order to simplify, use instead, the user's signature of the message is.计算,。 So sign. (2) Verification process: The message received by the receiver is, and the signature is.计算,。 Because, the signature is considered valid, that is, verification is passed. 2. What are the consequences of parameter leakage in DSA signature algorithm? Solution: If the attacker obtains a valid signature and knows the parameters in the DSA signature algorithm, then there is only one unknown number in the signature equation, that is, the user's secret key

41. Therefore, the attacker can obtain the secret key. Therefore, parameter leakage will lead to a leak of the signature secret key, and the attacker can forge the signature of any message. Chapter 8 Suppose you know the solution to a backpack problem, try to design a protocol to prove that you do know the solution to the problem through zero-knowledge proof. Solution 1: Suppose the backpack vector is, and the prover P knows the solution to the backpack volume, that is, the protocol for P to prove to the verifier that he has the secret in a zero-knowledge proof is as follows: P randomly selects a vector, calculates it, and will be sent to V. V is randomly selected and will be sent to P; P is calculated, instantly, and immediately; will be sent to V. Note: If, P displays the solution, ie if, P displays the encrypted solution, ie If V accepts the proof of P. Completeness, correctness and security of the protocol (1) Completeness: If P and V comply with the protocol and P knows the solution, the response makes V accept the proof of P. (2) Correctness: The fake prover E

42. You can trick V into accepting your own proof by using the probability in the following way: E randomly selects a vector sum, calculates it, and sends it to V. V is randomly selected and will be sent to E; E will be sent to V. The verification equation for V is. At that time, the equation was true, V accepted the proof of E, and E cheated successfully. Because the probability is, so the probability of E success is. On the other hand, it is the best probability of E's success. Otherwise, if E makes V believe in his own proof with a probability greater than that, then E knows one, and for this, he can correctly answer the sum of the two inquiries of V, which means that E can calculate, and thus can calculate, so it is secret. (3) Security: According to the above discussion, the probability of the fake prover E cheating V is too high. To reduce this probability, the protocol can be executed multiple times. Assume that the execution times, the probability of fraud success will be reduced. Solution 2: (1) First choose a large prime number, which is a prime number and is also a prime number.

43. Original root. P randomly selects an integer (no super-increment sequence is required), in the calculation formula, it is a secret key; and it is public. (2) Zero-knowledge proof protocol 1) P randomly selects, calculates, and transmits it to V; 2) V randomly selects a binary bit sequence and transmits it to P; 3) P calculates, and transmits it to V. 4) V verification, whether the calculation comparison is true, if it is true, it means that P understands the secret key; otherwise, P is a fake. (3) Security The security threat of such algorithms mainly comes from P spoofing V or V fake P. If there is no problem with the backpack and discrete logarithm used, the probability of P spoofing V and V for fake P is based on randomness. If the probability of selecting 0 or 1 for each is, the probability of fake or cheating is successful is; if the protocol is repeated, the probability of success is. In Section 8.1.4, why is it required in the "multiple transfer one" inadvertent transmission protocol based on large number decomposition problem? Suppose, choose B

44. Choose, and want to obtain A's secret, analyze whether B can be successfully obtained. Solution: (1) The requirement is to ensure that the two square roots of the same number have opposite Jacobi symbols under the modulus. (2) B first calculates the Jacobi symbol sum and sends 4,-1 to A. Next, A calculates the square root of 4 mod55, finds that the square root of 4 is 2 when mod 5, and the square root of 4 is 2 when mod 11 is 2. You can get the following four systems of equations: From the solution of the first system of equations, the solution of the second system of equations, the solution of the third system of equations, the solution of the fourth system of equations, because A sends 42 or 53 to B. When A sends 42 to B, B obtains the decomposition formula from the obtained factor, thereby obtaining the secret of A. When A sends 53 to B, because B cannot calculate a factor, no new information is obtained, so that A's secret cannot be obtained. Suppose it is a prime number, and the elements of the group are the life of the group

45. For each, there is an integer, such that. (1) Select an element uniformly and randomly in the process to prove that if it is not a generator, there is an integer, so that the probability of being established is at most. (2) Given a zero-knowledge proof of generative elements. (3) In the zero-knowledge proof in (2), can the proofer complete the proof in polynomial time, and why? Solution: (1) Because it is not a generator, the loop group is obviously a subgroup, and, let it be, a positive integer greater than 1, so. Select an element evenly and randomly. If, you can find one on it so that it is true. The probability is at most, so the probability of being established is at most. (2) V takes any element in it and sends it to P. P knows, make. P takes a random element in it, calculates and sends it to V. V is randomly selected and will be sent to P; P is calculated and sent to VV for verification. If it is true, the proof of P is accepted. P and

46. ​​V Repeat the above process. (3) The above proof can be completed in polynomial time.因为,是一个有限值,可以在多项式时间内完成。设n是两个未知大素数p和q的乘积,x0,x1Zn*且其中至少一个是模n的二次剩余。又设x0,x1模n的Jacobi符号都为1,考虑下面交互证明系统,其中x0,x1和n作为输入,P为证明者,V为验证者:P随机选择iR0,1,vb,v1-bRZn*,计算ybvb2 mod n及y1-bv1-b2x1-bi-1 mod n,将y0,y1发送给V。 V随机选择cR0,1,将c发送给P。 P计算zbuicvbmodn,z1-bv1-b,将zb,z1发送给V。 V检查z02y0 mod n和z12x1cy1

47、mod n是否成立,或z02x0y0 mod n和z12x11-cy1 mod n是否成立。如果不成立,则拒绝并终止。以上过程重复log2v次。证明以上协议证明了x0,x1中至少有一个是模n的二次剩余。证明以上协议是完备的。解:对于给定的y0,y1和x0,x1,证明者P都能够回答c=0或c=1的两个挑战;故说明y0和y0 x0都是模n的二次剩余或者y1和y1x1都是模n的二次剩余;根据数论知识可得:x0或x1至少有一个是模n的二次剩余。若Prover和Verifier都是诚实的,且(1)是正确的,显然,验证者最终会接受证明者的证明。第9章可证明安全习题1、解释主义安全的概念,这一概念可用于抵

48、抗如下攻击吗? 1)、被动的多项式时间有界敌手; 2)、被动的多项式时间无界敌手; 3)、主动的多项式时间有界敌手。答:语义安全:一个安全的加密方案应使敌手通过密文得不到任何信息,即使是1比特的信息。此概念可用于抵抗被动的多项式时间有界敌手和主动的多项式有界敌手,但不能抵抗被动的多项式无界敌手。2. Rabin密码体制是IND-CPA安全的吗?是IND-CCA安全的吗?是IND-CCA2安全的吗?答:Rabin密码体制Rabin密码体制是RSA密码体制的一种修正,假定模数不能被分解,该类体制对于选择明文攻击是计算安全的。因此,Rabin密码体制提供了一个可证明安全的密码体制的例子:假定分解整数

49、问题是整数上不可行的,那么Rabin密码体制是安全的。Rabin密码体制:密钥生成设,其中和是素数,且,即这两个素数形式为,计算。为公钥,为私钥。加密其中是明文分组,是对应的密文分组。解密解密也就是求模的平方根,即解,该方程等价于方程组:由于,所以可以解出每个方程有两个解:两两组合可得4个同余方程组: = 1 * GB3 、 = 2 * GB3 、 = 3 * GB3 、 = 4 * GB3 、由中国剩余定理可解出每一个方程组的解,共四个,即每一密文对应的明文不唯一。为有效确定明文一般在中加入某些代表性信息,如:发送者身份号、接受者身份号、时间、日期等下面证明,当时,两个方程,的平方根都很容

50、易求出。由得,即是一个整数。因是模的平方剩余,故设的根为,即,则所以和是方程的两个根。同理,和是方程的两个根。当时,求解方程与分解是等价的,所以破译Rabin密码体制的困难程度等价于大整数的分解。所以Rabin密码体制对选择明文攻击是可证明安全的,然而该体制对选择密文攻击是完全不安全的,因谕言机用实际解密算法来代替,就可以攻破密码体制。所以Rabin密码体制是IND-CPA安全的,但不是IND-CCA安全的,也不是IND-CCA2安全的。3.计算性Diffie-Hellman问题(Computational Diffie-Hellman,CDH问题)是已知,计算。离散对数问题(Discrete

51、 Logarithm问题,DL问题)是已知,计算。证明如下关系:证明:1)、证明定义DDH假设: 设是阶为大素数的群,为的生成元。则以下两个分布:随机四元组。四元组(称为Diffie-Hellman四元组,简称DH四元组)。是计算上不可区分的,称为DDH假设。具体地说,对任一敌手,区分和的优势是可忽略的。设是构成的集合,是构成的集合下面构造一个敌手,利用来攻击CDH问题。设,输入四元组,目标是判断还是,如果则说明,输出;否则则说明,终止。此时选中t的概率是,故获胜的概率是2)、证明由CDH问题可知,对任一敌手,在已知情况下,计算的优势是可忽略的。那么下面构造一个敌手,利用来攻击DL问题。则已知

52、,目标是计算。设,且;如果:,则;或,则;否则终止。此时敌手选中的概率为又因为计算的优势是,所以获胜的概率为。4.设是单钥加密方案,将9.2.2节中的加密方案修改如下:输入公开钥和消息,选择一个随机数,输出密文。证明如果RSA问题是困难的,则修改后的加密方案是IND-CPA安全的公钥加密方案。证明:设GenRSA是RSA加密方案的密钥生成算法,它的输入为,输出为模数(为2个比特素数的乘积),整数满足。又设是一个哈希函数,其中是一个任意的多项式。加密方案如下:密钥产生过程: ; ,。加密过程(其中): ;输出(,)解密过程:: ;输出。定理:设是一个随机谕言机,如果与方案GenRSA相关的RS

53、A问题是困难的,则方案是IND-CPA安全的。即,设存在一个IND-CPA敌手以的优势攻破方案,那么一定存在一个敌手至少以的优势解决RSA问题。证明:的IND-CPA游戏如下:: ; ,; ; ;,其中;,; 如果,则返回1,否则返回0敌手的优势定义为安全参数的函数: 下面证明方案可归约到RSA假设。敌手已知,以(攻击方案)作为子程序,进行以下过程,目标是计算。选取一个随机串,作为的猜测值,将公钥发给。H询问:建立一个表(初始为空),元素类型,在任何时候都能发出对的询问,做如下应答(设询问为)如果已经在,则以中的应答;如果以应答,将存入表中,并记下。否则随机选择以应答,并将存入表中。挑战:输出

54、两个挑战的消息和,随机选择,并令,将给作为密文。在执行结束后(在输出其猜测之后),输出第2)步记下的。设表示事件:在模拟中发出询问,即出现在中。断言1:在以上模拟过程中,的模拟是完备的。证明在以上模拟中,的视图与其在真实攻击中的视图是同分布的,这是因为1) 的询问中的每一个都是用随机值来回答的。而在对的真实攻击中,得到的是的函数值,由于假定是随机谕言机,所以得到的的函数值是均匀的。2)对来说,为对做一次密加密。由的随机性,对来说是随机的。所以两种视图不可区分。断言2:在上述模拟攻击中。证明:显然有。又由在真实攻击中的定义,可知的优势大于等于,得在模拟攻击中的优势也为。=又知:所以即模拟攻击中

55、。由以上两个断言,在上述模拟过程中以至少的概率出现在。若发生,则在第(2)步可找到满足,即。所以成功的概率与发生的概率相同。5.Cramer-Shoup密码体制也使用哈希函数,其安全性证明为什么不是随机谕言机模型?答:首先回顾随机谕言机的定义。在对方案进行安全性分析时,将其中的哈希函数视为随机谕言机。随机谕言机是一个魔盒,对用户(包括敌手)来说,魔盒内部的工作原理及状态都是未知的。用户能够与这个魔盒交互,方式是向魔盒输入一个比特串,魔盒输出比特串(对用户来说,是均匀分布的)。这一过程称为用户向随机谕言机询问。由于这种哈希函数工作原理和内部状态是未知的,因此不能用通常的公开哈希函数。在安全性的

56、归约证明中,敌手需要哈希函数值时,只能由敌手为他产生。之所以以这种方式使用哈希函数,是因为要把欲攻击的困难问题嵌入到哈希函数值中。这种安全性称为随机谕言机模型下的。如果不把哈希函数当作随机谕言机,则安全性称为标准模型下的。 而Gramer-Shoup的证明过程无需把困难问题嵌入到哈希函数中,所以它是标准模型下的证明过程。 6.(1)在Paillier方案1中,设,在对加密时,取,计算密文,并验证解密过程。(2)在Paillier方案2中,设,计算的密文,并验证解密过程。答:因为在Paillier方案1中,加密算法为:解密算法为:所以当,时,其密文为:解密过程:解密为:即第10章下面是X.509

57、三向认证的最初版本假定协议不使用时间戳,可在其中将所有时间戳设置为0,则攻击者C如果截获A、B之前执行协议时的消息,就可假冒A和B,以使A(B)相信通信的对方是B(A).请提出一种不使用时间戳的、防中间人欺骗的简单方法。答:方案如下:需要交互的用户A和B提前设置一个只有双方知道的口令password。其中的。当接收方收到发送方的消息之后进行:,若得的值为之前商定好的password值,则说明发送方的可信的。上述过程即是不使用时间戳的、防止中间人欺骗的一种简单方法。在PGP中,若用户有N个公开钥,则密钥ID至少有两个重复的概率有多大?解:在PGP中,用公开钥中64个最低有效位表示该密钥的ID,即

58、公开钥的ID是。由于64位已经足够长,所以不同密钥ID重复的概率非常小。密钥ID 的可能取值共有种,则当用户有N个公开钥时,ID取值共有种,密钥ID至少有两个重复的概率为。在PGP中,先对消息签名再对签名加密,请详细说明这一顺序为什么优于先加密再对加密结果签名。答: 将签字与明文消息在一起存储比与密文消息在一起存储会带来很多方便,同时也给第三方对签字的验证带来方便。如果先加密消息再对消息签字,签字将和密文消息放在一起,这不利于存储消息,也不利于第三方验证签字。另外,加密之前需要压缩,对不压缩的消息签字,可便于以后对签字的验证。如果对压缩后的消息签字,则为了以后对签字的验证,需存储压缩后的消息

59、或在验证签字时对消息重做压缩。并且,zip压缩算法是不确定性的,该算法在不同的实现中会由于在运行速度和压缩率之间产生不同的折中,产生出不同的压缩结果。在PGP的消息格式中,消息摘要的前两个8比特位组以明文形式传输。 (1)说明这种形式对哈希函数的安全性有多大程度的影响。答:首先,哈希函数满足如下几个性质(1)输入为任意长度,输出为固定长度,便于计算与实现。 (2)哈希函数具有单向性。 (3)哈希函数具有抗碰撞性。在PGP中,消息摘要有SHA对签名的时间戳链接上本身后求得的160比特哈希函数输出结果。公开的消息摘要的前两个8比特位数组(哈希结果的前两个8比特位数组内容),对哈希函数的安全性没有影响。 (

60、2)接收方用消息摘要的前两个8比特位组,确定自己在验证发送方的数字签名时是否正确地使用了发送方的公开钥,其可信程度有多大?答:消息摘要是对签名的时间戳链接上消息本身后求得的160比特函数输出,然后再由发送方使用秘密要进行签名所得。接收方验证签名时,即为使用对应发送方公钥进行签名验证,其可信程度与签名算法的安全性相关,如果使用的签名算法具有不可伪造性,那么这种验证方式就是可信安全的。在表10-2中,公钥环中的每一项都有一个拥有者可信字段,用以表示这一公钥的属主(即拥有这一公钥的用户)的可信程度。这一字段能否充分表达PGP对这一公钥的信任?如果不能,则如何实现PGP对这一公钥的信任?解:PGP是一

61、个网络,每个人在信任链中都作为到另一个人的介绍人。PGP把密钥签名作为一种介绍形式。当某个人签署了一个密钥时,他就成为那个密钥的潜在介绍人。例如,假设Alice签署了Bob的密钥,而Bob签署了Charlie的密钥。Alice现在就有了一个到Chrlie的证明路径。Alice现在有一种方式知道Charlie的密钥确实是Charlie的,因为上面有Bob的签名,而且Alice知道Bob的密钥确实是Bob的。这是一种在密钥中提供可传递的信任。这个设计中有一个明显的问题。如果有人作为介绍人,但是并不真正知道他所介绍的人会怎么样呢?例如,如果Bob非常粗心,虽然签署了Doug的密钥,却宣称是Charl

62、ie的。不仅Bob认为这处密钥属于Charlie(尽管是Doug但却宣称它属于Charlie),而且因为对受托性没有一种度量,Alice也会相信。这就是PGP信任网中所发生的。通过信任网(Web of Trust),用户定义了对一个密钥的信任量,作为介绍人。在前面的例子中,Alice给予Bob的密钥尽可能多的信任,而且如果他相信Bob正确地签署了其他人的密钥,他也会相信这个密钥。如果Alice知道Bob对于密钥验证很松懈,他就不会再信任Bob作介绍人了。其结果是,Alice不会再相信Bob为Doug签署的但宣称为Charlie的密钥。当然,信任网也不是绝对安全。如果有人被欺骗签署了一个错误的密钥,它就会使得其他人错误地相信它。PGP信任网被认为是一个声誉系统,受到尊敬的人给出好的签名,其他人则给出不好的签名。当存在错误的声誉时,系统就可能失效。综上所述,我们可知,PGP的信任字段并不能充分表达用户对这一公钥的信任。用户要根据证书链以及信誉系统来计算对特定公钥的信任程度。如果使用用户充分信任的第三方机构或个人为特定公钥签字,可以实现用户对这一公钥的充分信任。

提醒:请联系我时一定说明是从铂牛网上看到的!