网络信息与安全第二次作业1.一般来说,把一段详细的评述文字加密成一段加密文字,需要多少位DES密码?答:DSE一般采用56位长度的Key,所以总共有256种可能,这个数字大约是7.2X1016。2.假设这种DES切割函数就是不管输入什么值每32位的值都映射成0,那么DES是什么函数又是怎么计算的呢?答:Feistel密码的核心就是F函数,这个函数依赖S盒的使用,S盒的输出不应该太接近输入位的线性函数。函数F给Feistel密码注入了混淆成分。3.据说,64位前后交换位置这种DES方法不能提高加密算法的密码强度。不使用复杂的数学理论你能提供一个解释来说明吗?答:因为输出排列=(输入排列)-1,每一个排列都是一个有次序的Bryant-Tree排列,所以并没有安全上的改善。4.计算64位的数字加密操作通过使用CBC,k位OFB和k位CFB把它变成一个n位的评述文字。计算所有的加密操作,这些操作不仅仅运行在这个评述文字本身。举个例子n=1024和k=32。答:密文区段串接(CipherBlockChaining,CBC)模式k-位元密文反馈(k-bitsCipherFeedback,CFB)模式加密运算程序:SR1=IVC1=Fj(EK(SR1))⊕P1SRm=Sj(SRm-1)||Cm-1;m=2,3,4,…,NCm=Fj(EK(SRm))⊕Pm;m=2,3,4,…,NC=C1||C2||C3,…,CN解密運算程序:SR1=IVP1=Fj(DK(SR1))⊕C1SRm=Sj(SRm-1)||Cm-1;m=2,3,4,…,NPm=Fj(DK(SRm))⊕Cm;m=2,3,4,…,NP=P1||P2||P3,…,PNk-位元输出反馈(k-bitsOutputFeedback,OFB)模式加密运算乘程序:SR1=IVO1=Fj(EK(SR1))C1=P1⊕O1SRm=Sj(SRm-1)||Om-1;m=2,3,4,…,NOm=Fj(EK(SRm));m=2,3,4,…,NCm=Om⊕Pm;m=2,3,4,…,NC=C1||C2||C3,…,CN解密运算程序:SR1=IVO1=Fj(DK(SR1))P1=O1⊕C1SRm=Sj(SRm-1)||Om-1;m=2,3,4,…,NOm=Fj(DK(SRm));m=2,3,4,…,NPm=Om⊕Cm;m=2,3,4,…,NP=P1||P2||P3,…,PN5.考虑以下这种方法,通过CBC模式加密一个消息。为了加密一个消息,可以使用一个CBC解码算法。为了解密一个消息,可以使用一个CBC加密算法。这是怎么实现的呢?这种转换方法与一般的CBC模式比起来有多安全呢?答:这种方式是可以的。这种方式不如通常的CBC模式安全,因为解密算法是,每个密文组分别解密,再与上一个块密文亦或就可以恢复明文。解密算法的输入是明文,这样的安全性就非常低。6.通过使用一个弱的DES密码加密而成的64位OFB,将产生什么伪随机的比特流呢?注:请参考Kaufman§3.3.6相关章节弱密码的定义答:OFB是用虚拟随机数产生器加上IV与密钥,产生“一次性冗字填充”片段,即Ex(IV),Ex(Ex(IV)),Ex(Ex(Ex(IV))),...。一个弱DESKey是自己本身的反转,对于任何一个块来说b:Ex(b)=Dx(b).SoEx(Ex(b))=b.应此OFB的填充序列是Ex(IV),IV,Ex(IV),IV,…..。这样的规律导致不安全性。7.在RSA算法中,当我们知道e,p,g,是否可能得到超过一个d?答:不能得到,要得到d必须知道pqne。8.在RSA算法中,被加密的一些不属于Z*n,,什么情况下是可能发生的?9.在描述defenseagainstMan-in-the-MiddleAttack这种可能性时,它说用另外种方面的普通密码加密这个Diffie-Hellman值可以预防这方面的攻击。为什么一个攻击可以用另一方面的普通密码加密任何它想要的呢?答:普通密码加密这个Diffie-Hellman值,可以得知该文件的加密密码方式,从而找出规律。对其进行解密。所以才有此说法10.在模运算中,为什么一定要把操作数x设置成模数的相关初始值,是为了让x有一个唯一的乘法倒数吗?答:Sincetheadversary(Eve)doesnothavetheprivatekeysofthecommunicatingparties(Alice,Bob),EvecannotdecryptthemessagesexchangedbetweenAliceandBob,andrecoverthefollowingexponents:A=aAsaresult,EvecannotcomputethesharedvalueKab.