1第七章简答题及计算题⑴公钥密码体制与对称密码体制相比有哪些优点和不足?答:对称密码一般要求:1、加密解密用相同的密钥2、收发双方必须共享密钥安全性要求:1、密钥必须保密2、没有密钥,解密不可行3、知道算法和若干密文不足以确定密钥公钥密码一般要求:1、加密解密算法相同,但使用不同的密钥2、发送方拥有加密或解密密钥,而接收方拥有另一个密钥安全性要求:1、两个密钥之一必须保密2、无解密密钥,解密不可行3、知道算法和其中一个密钥以及若干密文不能确定另一个密钥⑵RSA算法中n=11413,e=7467,密文是5859,利用分解11413=101×113,求明文。解:10111311413npq()(1)(1)(1001)(1131)11088npq显然,公钥e=7467,满足1<e<()n,且满足gcd(,())1en,通过公式1mod11088de求出1mod()3den,由解密算法moddmcn得3mod5859mod114131415dmcn2⑶在RSA算法中,对素数p和q的选取的规定一些限制,例如:①p和q的长度相差不能太大,相差比较大;②P-1和q-1都应有大的素因子;请说明原因。答:对于p,q参数的选取是为了起到防范的作用,防止密码体制被攻击①p,q长度不能相差太大是为了避免椭圆曲线因子分解法。②因为需要p,q为强素数,所以需要大的素因子⑸在ElGamal密码系统中,Alice发送密文(7,6),请确定明文m。⑺11Z上的椭圆曲线E:236yxx,且m=3。①请确定该椭圆曲线上所有的点;②生成元G=(2,7),私钥(5,2)2BBnP,明文消息编码到(9,1)mP上,加密是选取随机数k=3,求加解密过程。解:①取x=0,1,…,10并计算236(mod11)yxx,现以x=0为例子。因为x=0,23006(mod11)6mod11y,没有模11的平方根,所以椭圆上不存在横坐标为0的点;同理依次可以得到椭圆上的点有(2,4)(2,7)(3,5)(3,6)3(5,9)(5,2)(7,9)(7,2)(8,8)(8,3)(10,9)(10,2)②密钥生成:由题得B的公钥为{E:236(mod11)yxx,(2,7)G,(5,2)BP},私钥为⑻与RSA密码体制和ElGamal密码体制相比,简述ECC密码体制的特点。答:①椭圆曲线密码体制的安全性不同于RSA的大整数因子分解问题及ElGamal素域乘法群离散对数问题。自公钥密码产生以来,人们基于各种数学难题提出了大量的密码方案,但能经受住时间的考验又广泛为人们所接受的只有基于大整数分解及离散对数问题的方案,且不说这两种问题受到亚指数的严重威胁,就如此狭窄的数学背景来说,也不能不引起人们的担忧,寻找新的数学难题作为密码资源早就是人们努力的一个方向,而椭圆曲线为公钥密码体制提供一类新型的机制。②椭圆曲线资源丰富。同在一个有限域上存在着大量不同的椭圆曲线,这位安全性增加了额外的保障。③效率方面。在同等安全水平上,椭圆曲线密码体制的密钥长度与RSA,ElGamal的密钥小得多,所以,计算量小,处理速度快,存储空间占用小,传输带宽要求低,特别在移动信号,无线设备上的应用前景非常4好。④安全性。而显然是任何密码体制的必备条件,椭圆曲线密码体制的安全性分析因而也引起了各国密码学家及有关部门的关注和重视,但成果并不丰硕。也许这可视为椭圆曲线密码体制具有高安全性的一种证据,因此,大多是密码学家对其前景持乐观态第六章4.简答题(1)简要说明散列(哈希)函数的特点。答:哈希函数有如下特点:输入数字串与输出数字串具有唯一的对应关系;输入数字串中任何变化会导致输出数字串也发生变化;从输出数字串不能够反求出输入数字串。哈希函数算法有多种,它受到广泛的应用,在信息安全领域,它是实现数字签名和认证的重要工具。(3)简述MD5算法。答:Md5的全称是Message-DigestAlgorithm5(信息-摘要算法),在90年代初由MitLaboratoryForComputerScience和RsaDataSecurityInc的Ronaldl.rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署5私人密钥前被“压缩”成一种保密的格式。MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆;所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过比在表中比破解密码的MD5算法散列值,通过匹配从映射表中找出破解密码所对应的原始明文。(4)MD5在MD4基础上做了哪些改进,其改进的目的是什么?答:MD5在MD4基础上增加了Safety-Belts,所以MD5又被称为是“系有安全带的MD4”,它虽然比MD4慢一点,但更为安全。(5)简述SHA1算法。答:SHA1也叫安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准(DigitalSignatureStandardDSS)里面定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产6生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。(6)简述SHA256算法。答:SHA256算法是SHA家族算法里面的一种,它的输入时最大长度小于2^64的消息,输出是256bit消息摘要,输入以512bit的分组为单位处理。该过程包括:附加填充位和长度,初始化散列缓冲区,以512bit分组为单位处理消息,经过64轮操作。(7)简述HMAC算法。答:HMAC是密钥相关的哈希运算消息认证码(keyed-HashMessageAuthenticationCode),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC引擎提供HMAC运算功能,发挥两方面的作用:a)验证TPM接受的授权数据和认证数据;b)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。(9)如图6-17所示的认证码是基于分组密码的CBC模式,其他模式是否也可以用来认证消息?请简要说明原因。7答:可以的,依据数据认证算法的思想,可选用其他分组密码算法来生产数据认证码,同时考虑安全性分组长度应选择更长。(10)数字签名算法中,对消息的Hash值签名,而不对消息本身签名有哪些好处?答:由于安全的Hash函数具有抗碰撞性,所以利用消息散列值实现数字签名,能够满足消息的完整性,防伪造性以及不可否认性等特点,而且签名短,更容易管理,有利于签名的扩展。第五章(1)简述序列密码算法和分组密码算法的不同。序列密码分组密码明文长度可以小于1字节,有记忆;加密不仅与密钥和明文有关,还与当前状态有关,也叫状态密码;设计关键在于密钥序列产生器,使生成的密钥序列尽可能高的不可预测性。明文分成比较大的块,无记忆;每块使用相同的加密函数进行处理;增加记忆模块,形成一种序列密码;设计关键在于加解密算法,是明文密文之间的关8联在密钥控制下尽可能复杂;(2)密钥序列生成器是序列密码算法的核心,请说出至少5点关于密钥序列生成器的基本要求。①种子密钥K的长度足够大,一般应在128位以上;②KG生成的密钥序列{ki}具极大周期;③{ki}具有均匀的n元分布;④利用统计分析方法由{ki}提取关于KG结构或K的信息在计算上不可行;⑤混乱性,即{ki}的每一比特位均与K的大多数比特有关;⑥扩散性,即K的任一比特的改变要引起{ki}在全貌上的变化;⑦序列密钥{ki}不可预测,密文和相应明文的部分信息,不能确定整个{ki}。(4)简述RC4算法的实现过程。详见166页。(5)简述A5算法的实现过程。详见169页。(6)简述SEAL算法的实现过程。详见171页。(7)简述WAKE算法的实现过程。详见176页。(8)简述PKZIP算法的实现过程。详见177页。(9)简述FCSR算法的实现过程。详见161页。9第四章、简答题(1)分组密码的设计应满足的要求是什么?答:①分组要足够长。假设n为分组长度,则要使分组代换字母表中的元素个数2n足够大,以防止明文穷举攻击。②密钥长度要足够长,以防止密钥穷举攻击。但密钥又不能过长,这不利于密钥的管理且影响加解密的速度。③由密钥确定的置换算法要足够复杂,足以抵抗各种已知的攻击,如查分攻击和线性攻击等,使攻击者除了利用穷举攻击外,无其他更好的攻击方法。④加密解密运算简单,易于软件和硬件的快速实现。为了便于软件编程和通过逻辑电路实现,算法中的运算应尽量简单,如二进制加法或移位运算,参与运算的参数长度也应选择在8的整数倍,可以充分发挥计算机中字节运算的优势。⑤一般无数据扩展,即明文和密文长度相同。在采用同态置换和随机话加密技术时可引入数据扩展。⑥差错传播尽可能的小。设计密码时,①②③的安全性为必要条件,同时还需考虑④⑤⑥。10归纳起来,一个分组密码在实际应用中需要在安全性和实用性之间寻求一种平衡,使算法在足够安全的同时,又具有尽可能短的密钥,尽可能小的存储空间以及尽可能快的运行速度。(2)简述分组密码设计的准则。答:①分组长度分组长度越长意味着安全性越高,但是会影响加密解密的速度。1977年之后,由于计算速度和分析技术的提高,建议使用分组长度128位。②密钥长度密钥越长同样意味着安全性越高,但会影响加密和解密的速度。现在一般认为64位的密钥是不安全的,通常使用的密钥长度为128位。③轮函数F轮函数F通常之迭代分组密码中单轮加密解密算法的实现部分,是分组密码结构的核心,由其实现数据的混乱和扩散。在设计中,轮函数要遵循雪崩效应准则和位独立准则。评价轮函数实际质量的指标有安全性,速度和灵活性。④迭代的轮数迭代分组密码的本质是单轮不能提供足够的安全性而11多伦迭代增强其安全性。一般而言,迭代轮数越多,密码分析越困难,但过多的迭代会使输入和输出的关系复杂化,影响加解密速度,而安全性增强不明显,一般而言,决定迭代轮数的准则是:是密码分析的难度大于简单穷举攻击的难度。⑤子密钥的生成方法理论设计目标是子密钥的统计独立性和密钥更换的有效性。包括:实现简单,便于硬件实现,子密钥的生成不影响迭代轮函数的执行;不存在简单关系;种子密钥的所有比特对每个子密钥比特影响大致相同;没有弱密钥或弱密钥容易避开;保证密钥和密文符合位独立准则和雪崩效应。(3)简述DES算法中S盒的特点?答:S盒是DES中唯一的非线性部分,DES的安全强度主要取决于S盒的安全强度。DES中8个S盒,输入均为6位,输出为4位。有以下特点:①具有良好的非线性,即输出地每一个比特与全部输入比特有关;②每一行包括所有16种4位二进制。③两个输入相差1bit比特时,输出相差2bit。④如果两个输入刚好在中间2个比特上不同,则输出至少有2个比特不同。12⑤如果两个输入前2位不同而最后2位相同,则输出一定不同。⑥相差6bit的输入共32对,在这32对中有不超过8对的输出相同。(4)DES算法具有互补性,而这个特性会使DES在选择明文攻击下所需的工作量减半。简要说明原因。答:在选择明文攻击下,C1=Ek(m),(1)C2=Ek(m)(2)根据互补性,2c=Ek(m)(3)根据(1)式穷举搜索密钥k时,入输出密文是C1,则加密密钥就是多应用的密钥;若输出密文是2c,根据(3)可知加密密钥是多应用的密钥的补,这样,利用一个密钥的加密尝试,能够检测两个密钥是否为真正的加密密钥。因此,DES的互补性会使DES在选择明文攻击下所需的工作量减半。(6)简述利用差分分析攻击DES算法的基本过程。答:过程如