现代密码学基础部分习题参考答案
习题一
1.【答】密码体制、单向函数与伪随机序列生成器、数字签名与杂凑函数、消息认证和身份识别、抗欺骗协议和零知识证明。
2.【答】安全性定义有两种:基于信息论的方法和基于计算复杂性理论的方法
3.【答】密码分析(或称攻击)可分为下列四类:
唯密文分析(攻击),密码分析者取得一个或多个用同一密钥加密的密文;
已知明文分析(攻击),除要破译的密文外,密码分析者还取得一些用同一密钥加密的明密文对;
选择明文分析(攻击),密码分析者可取得他所选择的任何明文所对应的密文(当然不包括他要恢复的明文),这些明密文对和要破译的密文是用同一密钥加密的;
选择密文分析(攻击),密码分析者可取得他所选择的任何密文所对应的明文(要破译的密文除外),这些密文和明文和要破译的密文是用同一解密密钥解密的,它主要应用于公钥密码体制。
4.【答】不严格地说,一个单向函数是一个函数,由x计算函数值y是容易的,但由y计算函数的逆是困难的(在某种平均意义下),“容易”和“困难”的确切含意由计算复杂性理论定义。单向函数是现代密码学的一个基本工具,大部分安全的密码系统(包括协议)的构造依赖于“单向函数存在”这一假设,所以十分重要。
5.【答】现在网络上应用的保护信息安全的技术如数据加密技术、数字签名技术、消息认证与身份识别技术、防火墙技术以及反病毒技术等都是以密码学为基础的。电子商务中应用各种支付系统如智能卡也是基于密码学来设计的,可以说密码学是信息安全技术的基础。由此可见现代密码学的应用非常广泛。现在任何企业、单位和个人都可以应用密码学来保护自己的信息安全。
习题二
1.【答】将(help me)转换为整数(7 4 11 15 12 4),利用c=5m+7(mod 26)得到密文整数(16 1 10 4 15 1),得到密文(qbkepb)。
2.【答】解密变换为d=15y-30(mod 26),(VMWZ)转换为整数为(21 12 22 25),得到明文整数(25 20 14 7),得到密文(ZUOH)。
3.【答】使用统计特性分析
4.【答】密钥为(12 0 19 17 8 23)明文为(1 4 8 9 8 13)(6 20 13 8 21 4 )(17 18 8 19 24 14)(5 15 14 18 19 18 )(0 13 3 19 4 11 )(4 2 14 12 12 20)(13 8 2 0 19 8)(14 13 18),密文为(13 4 1 0 16 10)(18 20 6 25 3 1)(2 18 1 10 6 11)(17 15 7 9 1 5)(12 13 22 10 12 8)(16 2 7 3 20 17)(25 8 21 17 1 5)(0 13 11)密文:nebaqksugzdbcsbkglrphjbfmnwkmiqchdurzivrbfanl。
6.【答】,密文:qlzj
习题三
1.【答】H(M)=
2.【答】H(M)=
H(K)=
密文空间概率分布:
根据公式可分别求得H(C)、H(M|C)、H(K|C)
习题七
1.【答】输出序列为:000111101011001……
4.【答】设明文为(0,1,0,0,0,1,0,0,0,1),密文为(1,0,1,0,1,1,0,1,1,0)。破译者计算得到密钥序列为,则从线性移位寄存器的结构很容易得到下列矩阵方程式
,
所以。
可以得到,所以特征多项式。
6.【答】输出序列为:110111101111011110……
周期为10
习题八
3.【答】IP变换后
L0= R0=
K1=
L1=R0; R1=L0⊕f(R0,K1)
习题九
1.【答】一个公钥密码体制是这样的一个5元组{M,C,,E,D},且满足如下的条件:
1.M是可能消息的集合;
2.C是可能的密文的集合;
3. 密钥空间是一个可能密钥的有限集;
4.对每一个={,}K,都对应一个加密算法EE, E:MC和解密算法DD,D:CM,满足对于任意的mM,都有c= E(m),m= D(c)=D(E(m))=m;
5.对于所有的K,在已知E的情况下推出D是计算上不可能的;
4.【答】,10=2×5,所以p=2,q=5,φ(n)=4
则5d=1(mod 4),gcd(d, 4)=1
则d=5,m=5
5.【答】:y=x+17,已知其上的点P=(-2,3),P=(2,5)
(a)设 P1+P2=(x, y),则==1/2
x=-x-x=1/4
y=(x-x)-y.=-33/8
(b)设2P1=(x, y)则==2
x=-x-x=4
y=(x-x)-y=-11
(c)-P1=(-2,-3)
6.【答】
(1)Y=9=g(mod P)=2(mod 11),则X=6
(2)K=(X)(mod P)=(3)(mod 11)=3
7.【答】GF(23)域上的,则=4,=5,p=23
计算modp,i[0,m-1],按第二个坐标排序m个有序对(i, modp),得到表T=
计算modp,j[0,m-1],按第二个坐标排序m个有序对(j, modp),得到表T.
从T、T中分别各自寻找一对(3,10)T和(1,10)T定义 log=mi+jmod(p-1)=4+22mod22=4
习题十
1.【答】一个签名方案是一个5元组(M,A, K,S,V),满足如下的条件:
M是一个可能消息的有限集;
A是一个可能签名的有限集;
密钥空间K是一个可能密钥的有限集;
对每一个=(,)K,都对应一个签名算法SigS和验证算法VerV。每一个Sig: M A和Ver: M A{TRUE ,FALSE}是一个对每一个消息x M和每一个签名yA满足下列方程的函数:
Ver(x,y)=
对每一个K,函数Sig和Ver都是为多项式时间可计算的函数。Ver是一个公开函数,称作公钥;而Sig是一个秘密函数,称作私钥,由用户秘密地保存。
2.【答】
R=modp
S=s+s+…+smodp-1
Rg=modp×=modp×
=×=
===y
5.【答】可以基于离散对数问题建立盲签名
习题十一
1.【答】(modp)
则,所以
2.【答】
4.【答】(x)=(( x)( x))=(x’)=(( x’)( x’))
令y=( x)( x),y’= ( x’)( x’)
习题十二
1.【答】识别(identification)和身份验证(authentication)是不同的。当说到身份验证时,通常存在一些承载信息的消息在通信双发之间交换,其通信的一方或双方需要被验证。识别(有时称为实体验证)是对一个用户身份的实时验证,它不需要交换承载信息的消息。
2.【答】一个安全的识别协议至少应该满足以下两个条件:
证明者A能向验证者B证明他的确是A;
在证明者A向验证者B证明他的身份后,验证者B没有获得任何有用的信息,B不能模仿A向第三方证明他是A。
3.【答】
由于=,则
4.【答】有一个标准的方法可将一个识别协议转化为一个签名方案。基本的观点是用一个公开的Hash函数来代替验证者B。
5.【答】针对一般交互式用户身份证明协议,都必须满足以下三种性质。
完全性(Completeness):若用户与验证者双方都是诚实地执行协议,则有非常大的
概率(趋近于1),验证者将接受用户的身份。
健全性或合理性(Soundness):若用户根本不知道与用户名字相关的密钥,且验证者是诚实的,则有非常大的概率,验证者将拒绝接受用户的身份。
隐藏性(Witness hiding):若用户是诚实的,则不论协议进行了多少次以及不论任何
人(包括验证者)都无法从协议中推出用户的密钥,并且无法冒充用户的身份。
习题十四
2.【答】
(1),则,所以
(2)
3.【答】设多项式为
则
K=6
4.【答】即构成(2,3)门限方案。
若知道,可建立方程组
解之得。