1、2018 06 11 1现代密码学期末作业零、选择题(1)采用美国数据加密标准 DES 进行数据加密时,加密算法种的基本运算不包括 C 。A)置换运算 B)异或运算 C)模乘运算 D)移位运算(2)关于 RSA 算法下列说法不正确的是 A 。A)RSA 算法是一种对称加密算法B) RSA 算法的运算速度比 DES 慢C) RSA 算法可用于某种数字签名方案D)RSA 的安全性主要基于因子分解的难度(3) 8 位的密钥可以产生多少个可能的密钥 CA) 8 B) 82 C) 28 D)65536(4) 3DES 密钥的长度最长是多少位? BA) 56 位 B) 168 位 C) 112 位 E)1
2、28 位(5) MD5 (Hash)的输出是多少位? BA)64 位 B)128 位 C)160 位 D)256 位 (6) SHA(Hash)的输出是多少位?CA)64 位 B)128 位 C)160 位 D)256 位2018 06 11 2一、根据下面图解释名词,明文,密文,加密,解密,加密算法,解密算法, 加密密钥和解密密钥通信双方采用保密通信系统可以隐藏和保护需要发送的消息,使未授权者不能提取信息。发送方将要发送的消息成为明文,明文被变换成看似无意义的随机消息,称为密文,这种变换过程称为加密;其逆过程,即由密文恢复出原明文的过程称为解密。对明文进行加密操作的人员称为加密员或密码员。密
3、码员对明文进行加密时所采用的一组规则称为加密算法。传送消息的预定对象称为接收者,接收者对密文进行解密时所采用的一组规则称为解密算法。加密和解密算法的操作通常都是在一组密匙控制下进行的,分别称为加密密匙和解密密匙。二、阐述密码体制分类密码体制从原理上可分为两大类,即单钥体制和双钥体制。单钥体制的加密密钥和解密密钥相同。采用单钥体制的系统的保密性主要取决于密钥的保密性,与算法的保密性无关,即由密文和加解密算法不可能得到明文。换句话说,算法无需保密,需保密的仅是密钥。换句话说,算法无需保密,需保密的仅是密钥。根据单钥密码体制的这种特性,单钥加解密算法可通过低费用的芯片来实现。密钥可由发送方产生然后再
4、经一个安全可靠的途径(如信使递送)送至接收方,或由第三方产生后安全可靠地分配给通信双方。如何产生满足保密要求的密钥以及如何将密钥安全可靠地分配给通信双方是这类体制设计和实现的主要课题。密钥产生、分配、存储、销毁等问题,统称为密钥管理。这是影响系统安全的关键因素,即使密码算法再好,若密钥管理问题处理不好,就很难保证系统的安全保密。单钥体制对明文消息的加密有两种方式: 一是明文消息按字符(如二元数字)逐位地加密,称之为流密码;另一种是将明文消息分组(含有多个字符) ,逐组地进行加密,称之为分组密码。单钥体制不仅可用于数据加密,也可用于消息的认证。双钥体制是由 Diffie 和 Hellman 于
5、1976 年首先引入的。采用双钥体制的每个用户都有一对选定的密钥:一个是可以公开的,可以像电话号码一样进行注册公布;另一个则是秘密的。因此双钥体制又称为公钥体制。2018 06 11 3双钥密码体制的主要特点是将加密和解密能力分开,因而可以实现多个用户加密的消息只能由一个用户解读,或由一个用户加密的消息而使多个用户可以解读。前者可用于公共网络中实现保密通信,而后者可用于实现对用户的认证。三、阐述扩散和混淆的概念扩散和混淆是由 Shannon 提出的设计密码系统的两个基本方法,目的是抗击敌手对密码系统的统计分析。所谓扩散,就是将明文的统计特性散布到密文中去,实现方式是使得明文的每一位影响密文中多
6、位的值,等价于说密文中每一位均受明文中多位影响。混淆是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。因此即使敌手能得到密文的一些统计关系,由于密钥和密文之间的统计关系复杂化,敌手也无法得到密钥。四、什么是密码分组链接(CBC)模式,请画出加密与解密示意图它一次对一个明文分组加密,每次加密使用同一密钥,加密算法的输入是当前明文分组和前一次密文分组的异或,因此加密算法的输入不会显示出与这次的明文分组之间的固定关系,所以重复的明文分组不会在密文中暴露出这种重复关系。五、哈希(Hash)函数应满足什么条件?杂凑函数应满足以下条件: 函数的输入可以是任意长。 函数的输出是固定长。 已知
7、 x,求 H(x)较为容易,可用硬件或软件实现。 已知 h,求使得 H(x)=h 的 x 在计算上是不可行的,这一性质称为函数的单向性,称 H(x)为单向杂凑函数。 已知 x,找出 y(yx)使得 H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。 找出任意两个不同的输入 x、y,使得 H(y)=H(x)在计算上是不可行的。如果单向杂凑函数满足这一性质,则称其为强单向杂凑函数。2018 06 11 4第和第个条件给出了杂凑函数无碰撞性的概念,如果杂凑函数对不同的输入可产生相同的输出,则称该函数具有碰撞性。六、说明迭代型哈希函数一般结构的运算过程. 其中
8、函数的输入 M 被分为 L 个分组 Y0,Y1,YL-1,每一个分组的长度为 b 比特,最后一个分组的长度不够的话,需对其做填充。算法中重复使用函数 ff 的输入有两项,一项是上一轮(第 i-1 轮)输出的 n 比特值 CVi-1,称为链接变量,另一项是算法在本轮(第 i 轮)的 b 比特输入分组 Yi。f 的输出为 n比特值 CVi,CVi 又作为下一轮的输入。算法开始时还需对链接变量指定一个初值 IV,最后一轮输出的链接变量 CVL 即为最终产生的杂凑值。通常有 bn,因此称函数 f 为压缩函数。算法可表达如下:CV0=IV=n 比特长的初值;CVi=f(CVi-1,Yi-1);1iL;H
9、(M)=CVL算法的核心技术是设计无碰撞的压缩函数 f,而敌手对算法的攻击重点是 f 的内部结构,由于 f 和分组密码一样是由若干轮处理过程组成,所以对 f 的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出 f 的碰撞。由于 f 是压缩函数,其碰撞是不可避免的,因此在设计 f 时就应保证找出其碰撞在计算上是不可行的。七、什么是零知识证明?下图表示一个简单的迷宫,C 与 D 之间有一道门,需要知道秘密口令才能将其打开。P 向 V 证明自己能打开这道门,但又不愿向 V 泄露秘密口令。可采用什么协议? 2018 06 11 5八、AES 高级加密标准的轮函数由 4 个不同的计算部件
10、组成,分别是:字节代换(ByteSub ) 、行移位(ShiftRow) 、列混合(MixColumn) 、密钥加(AddRoundKey ) 。根据下图写出字节代换(ByteSub) 、行移位( ShiftRow) 、列混合( MixColumn) 、密钥加(AddRoundKey) 。2018 06 11 6九、设椭圆曲线 y2=x3+2x+7, p=179 满足 1/210 失败的概率, 求将消息 M=5 表示成曲线上的点 .十、在 RSA 算法中,设公钥 KU=7,187,私钥 KR=23,187, 设明文M=88, 求密文 C。2018 06 11 7十一、根据下图 S-DES (S
11、implified DES) 收、发双方共享的 10 位密钥,计算出两个 8 位子密钥分别用在加密、解密的不同阶段。图中的 P10、P8 如下表,初始 10 位密钥为(1010000010)求图中的K1、K 2初始 10 位密钥为(1010000010)P10=1000001100LS1 左=00001LS1 右=11000K1= P8=10010010LS2 左=00100LS2 右=00011K2= P8=00001001十二、根据下图 S-DES 加密算法计算出当明文 M=11110011,求密文?算法中的变换如表IP 2 6 3 1 4 8 5 7IP-1 4 1 3 5 7 2 8
12、6E/P 4 1 2 3 2 3 4 1P4 2 4 3 1P10 3 5 2 7 4 10 1 9 8 6P8 6 3 7 4 8 5 10 9LS-1 循环左移一位 LS-2 循环左移二位2018 06 11 8解答如下:M=11110011IP 1 0 1 1 1 1 0 1IP-1 1 0 0 1 0 1 1 0E/P 1 0 0 1 0 0 1 0P4 0 0 1 0(S0)1=00(S1)1=10(S0)2=10(S1)2=00明文 C=10010110十三、通信双方使用 RSA 加密体制,接收放的公开密钥是( e,n)=(5,119) 接收到的密文是 C=66,求明文 m=? (
13、p 96 例 4.8)十四、是密钥分配的一个实例。根据下图,假定两个用户 A、B 分别与密钥分配中心 KDC (key distribution center)有一个共享的主密1 0 3 23 2 1 00 2 1 3S0=3 1 3 20 1 2 32 0 1 33 0 1 0S1=2 1 0 32018 06 11 9钥 KA 和 KB。A 希望与 B 建立一个共享的一次性会话密钥,根据下图解释可通过几步来完成?密钥分配实例 A 向 KDC 发出会话密钥请求。表示请求的消息由两个数据项组成,第 1 项是A 和 B 的身份,第 2 项是这次业务的惟一识别符 N1,称 N1 为一次性随机数,可
14、以是时戳、计数器或随机数。 KDC 为 A 的请求发出应答。应答是由 KA 加密的消息,因此只有 A 才能成功地对这一消息解密,并且 A 可相信这一消息的确是由 KDC 发出的。消息中包括A 希望得到的两项内容: 一次性会话密钥 KS; A 在中发出的请求,包括一次性随机数 N1, 此外,消息中还有 B 希望得到的两项内容: 一次性会话密钥 KS; A 的身份(例如 A 的网络地址)IDA。这两项由 KB 加密,将由 A 转发给 B,以建立 A、B 之间的连接并用于向 B 证明A 的身份。 A 存储会话密钥,并向 B 转发 EKBKSIDA。因为转发的是由 KB 加密后的密文,所以转发过程不会
15、被窃听。B 收到后,可得会话密钥 KS,并从 IDA 可知另一方是 A,而且还从 EKB 知道 KS 的确来自 KDC。这一步完成后,会话密钥就安全地分配给了 A、B。然而还能继续以下两步工作: B 用会话密钥 KS 加密另一个一次性随机数 N2,并将加密结果发送给 A。 A 以 f(N2)作为对 B 的应答,其中 f 是对 N2 进行某种变换(例如加 1)的函数,并将应答用会话密钥加密后发送给 B。十五、假定 A、B 双方已完成公钥交换,根据下图可按什么步骤建立共享会话密钥?:2018 06 11 10图 5.7 具有保密性和认证性的密钥分配 A 用 B 的公开钥加密 A 的身份 IDA 和
16、一个一次性随机数 N1 后发往 B,其中N1 用于惟一地标识这一业务。 B 用 A 的公开钥 PKA 加密 A 的一次性随机数 N1 和 B 新产生的一次性随机数N2 后发往 A。因为只有 B 能解读中的加密,所以 B 发来的消息中 N1 的存在可使 A 相信对方的确是 B。 A 用 B 的公钥 PKB 对 N2 加密后返回给 B,以使 B 相信对方的确是 A。 A 选一会话密钥 KS,然后将 M=EPKBESKAKS发给 B,其中用 B 的公开钥加密是为保证只有 B 能解读加密结果,用 A 的秘密钥加密是保证该加密结果只有A 能发送。 B 以 DPKADSKBM恢复会话密钥。十六、MD5 的
17、算法的框图如下图所示。算法的输入为任意长的消息(图中为 K 比特) ,分为 512 比特长的分组,输出为 128 比特的消息摘要。请解释 MD5 对消息填充、附加消息的长度用步骤、对 MD缓冲区初始化处理过程?2018 06 11 11图 6.5 MD5 的算法框图十七、例 7.1 下面给出的是具有仲裁方式数字签字,其中 X 表示发方,Y 表示收方,A 是仲裁者,M 是消息, XY: 表示 X 给 Y 发送一消息 M。请解释签字按如下过程是怎样实现的? XA:ME KXAIDXH(M)。 AY:E KAYIDXM E KXAIDXH(M)T。十八、例 7.2 下面给出的是具有仲裁方式数字签字,
18、其中 X 表示发方,Y 表示收方,A 是仲裁者,M 是消息, XY: 表示 X 给 Y 发送一消息 M。请解释数字签字按如下过程是怎样实现的?例签字过程如下: 2018 06 11 12 XA: IDXE KXYME KXAIDXH(E KXYM)。 AY: E KAYIDX EKXYME KXAIDXH(E KXYM)T。十九、例 7.3 下面给出的是具有仲裁方式数字签字,其中 X 表示发方,Y 表示收方,A 是仲裁者,M 是消息,XY: 表示 X 给 Y 发送一消息 M。请解释签字按如下过程是怎样实现的?例签字过程如下: XA:ID XE SKXIDXE PKYESKXM。 AY:E SK
19、AIDXE PKYESKXMT。二十、根据下图说明 PGP 中通过数字签字提供认证的过程? 发送方产生消息 M。 用 SHA 产生 160 比特长的消息摘要 H(M)。 发送方用自己的秘密钥 SKA 按 RSA 算法对 H(M)加密,并将加密结果EPSKAH(M)与 M 链接后发送。 接收方用发送方的公开钥对 EPSKAH(M)解密得 H(M)。 接收方对收到的 M 计算消息摘要,并与中的 H(M)比较。如果一致,则认为 M 是真实的。过程中结合使用了 SHA 和 RSA 算法,类似地也可结合使用 DSS 算法和 SHA 算法。2018 06 11 13二十一、根据下图说明 PGP 为传输或存
20、储的文件提供加密的保密性认证业务的过程? 发送方产生消息 M 及一次性会话密钥 KS。 用密钥 KS 按 CAST-128(或 IDEA 或 3DES)加密 M。 用接收方的公开钥 PKB 按 RSA 算法加密一次性会话密钥 KS,将、中的两个加密结果链接起来发往接收方。 接收方用自己的秘密钥按 RSA 算法恢复一次性会话密钥。 接收方用一次性会话密钥恢复发送方发来的消息。二十二、根据下图说明同一消息同时提供保密性与认证性的过程?发送方首先用自己的秘密钥对消息签字,将明文消息和签字链接在一起,再使用一次性会话密钥按 CAST-128(或 IDEA 或 3DES)对其加密,同时用 ElGamal
21、算法对会话密钥加密,最后将两个加密结果一同发往接收方。这一过程中,先对消息签字再对签字加密。这一顺序优于先加密、再对加密结果签字。这是因为将签字与明文消息在一起存储比与密文消息在一起存储会带来很多方便,同时也给第三方对签字的验证带来方便。二十三、图 2.9 是一个 3 级反馈移位寄存器,其初始状态为(a1,a2,a3)=(1,0,1),写出前 6 个时刻的状态和输出。2018 06 11 14图 2.9 一个 3 级反馈移位寄存器既输出序列为 101110111011,周期为 4二十四、计算 AES 的密钥第八轮密钥编排 EAD27321(32) B58DBAD2(33) 312BF560(3
22、4) 7F8D292F(35) 求 W36 W37 W38 W39 K15K11K7K3K14K10K6K2K13K9K5K1K12K8K4K0W3w2w1w0w7w6w5w4g 状态( a1,a2,a3)输出1 0 11 1 01 1 10 1 11 0 11 1 0 1011102018 06 11 15二十五、例 2.3 图 2.11 是一个 5 级线性反馈移位寄存器,其初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输出序列为图 2.11 一个 5 级线性反馈移位寄存器1001101001000010101110110001111100110周期为 31。二十
23、六、例 4.4 由以下方程组求 x。1mod235od7x二十七、 说明 RSA 算法密钥的产生2018 06 11 16二十八、例 4.8 选 p=7,q=17 。计算 ASE 的密钥求 19 的密文?二十九、阐述公钥证书的概念、产生过程。2018 06 11 17三十、结合图 5.6 说明公钥的简单分配过程图 5.6 简单使用公钥加密算法建立会话密钥图 5.6 表示简单使用公钥加密算法建立会话密钥的过程,如果 A 希望与 B 通信,可通过以下几步建立会话密钥: A 产生自己的一对密钥PKA,SKA,并向 B 发送 PKA|IDA,其中 IDA 表示 A的身份。 B 产生会话密钥 KS,并用 A 的公开钥 PKA 对 KS 加密后发往 A。 A 由 DSKAEPKAKS恢复会话密钥。因为只有 A 能解读 KS,所以仅 A、B 知道这一共享密钥。 A 销毁PKA,SKA,B 销毁 PKA。三十一、说明简化的 Fiat-Shamir 身份识别方案中协议的交互过程。