JNU2012密码学期末真题考题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密码学作业

作业要求

1按下面各题要求回答问题;

2上机进行实验

3索引二篇公开发表有关计算机密码学的文章。时间发表在2009年以后

4考试当日,答题前交到监考老师处(二篇文章,本作业)

二.密码体制分类

密码体制从原理上可分为两大类,即单钥体制和双钥体制。

单钥体制的加密密钥和解密密钥相同。采用单钥体制的系统的保密性主要取决于密钥的保密性,与算法的保密性无关,即由密文和加解密算法不可能得到明文。换句话说,算法无需保密,需保密的仅是密钥。

换句话说,算法无需保密,需保密的仅是密钥。根据单钥密码体制的这种特性,单钥加解密算法可通过低费用的芯片来实现。密钥可由发送方产生然后再经一个安全可靠的途径(如信使递送)送至接收方,或由第三方产生后安全可靠地分配给通信双方。如何产生满足保密要求的密钥以及如何将密钥安全可靠地分配给通信双方是这类体制设计和实现的主要课题。密钥产生、分配、存储、销毁等问题,统称为密钥管理。这是影响系统安全的关键因素,即使密码算法再好,若密钥管理问题处理不好,就很难保证系统的安全保密。单钥体制对明文消息的加密有两种方式:一是明文消息按字符(如二元数字)逐位地加密,称之为流密码;另一种是将明文消息分组(含有多个字符),逐组地进行加密,称之为分组密码。单钥体制不仅可用于数据加密,也可用于消息的认证。

双钥体制是由Diffie和Hellman于1976年首先引入的。采用双钥体制的每个用户都有一对选定的密钥:一个是可以公开的,可以像电话号码一样进行注册公布;另一个则是秘密的。因此双钥体制又称为公钥体制。

双钥密码体制的主要特点是将加密和解密能力分开,因而可以实现多个用户加密的消息只能由一个用户解读,或由一个用户加密的消息而使多个用户可以解读。前者可用于公共网络中实现保密通信,而后者可用于实现对用户的认证。

三.扩散和混淆

扩散和混淆是由Shannon提出的设计密码系统的两个基本方法,目的是抗击敌手对密码系统的统计分析。

所谓扩散,就是将明文的统计特性散布到密文中去,实现方式是使得明文的每一位影响密文中多位的值,等价于说密文中每一位均受明文中多位影响。

混淆是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。因此即使敌手能得到密文的一些统计关系,由于密钥和密文之间的统计关系复杂化,敌手也无法得到密钥。

七.什么是零知识证明?下图表示一个简单的迷宫,C与D之间有一道门,需要知道秘密口令才能将其打开。P向V证明自己能打开这道门,但又不愿向V泄露秘密口令。可采用什么协议?

零知识证明起源于最小泄露证明。在交互证明系统中,设P知道某一秘密,并向V证明自己掌握这一秘密,但又不向V泄露这一秘密,这就是最小泄露证明。进一步,如果V

除了知道P能证明某一事实外,不能得到其他任何信息,则称P实现了零知识证明,相应的协议称为零知识证明协议。

① V在协议开始时停留在位置A。

② P一直走到迷宫深处,随机选择位置C或位置D。

③ P消失后,V走到位置B,然后命令P从某个出口返回位置B。

④ P服从V的命令,必要时利用秘密口令打开C与D之间的门。

⑤ P和V重复以上过程n次。

协议中,如果P不知道秘密口令,就只能从来路返回B,而不能走另外一条路。此外,P每次猜对V要求走哪一条路的概率是1/2,因此每一轮中P能够欺骗V的概率是1/2。假定n取16,则执行16轮后,P成功欺骗V的概率是1/216=1/65536。于是,如果P16次都能按V的要求返回,V即能证明P确实知道秘密口令。还可以看出,V无法从上述证明过程中获取丝毫关于P的秘密口令的信息,所以这是一个零知识证明协议。

四.什么是密码分组链接(CBC)模式,请画出加密\解密示意图

它一次对一个明文分组加密,每次加密使用同一密钥,加密算法的输入是当前明文分组和前一次密文分组的异或,因此加密算法的输入不会显示出与这次的明文分组之间的固定关系,所以重复的明文分组不会在密文中暴露出这种重复关系。

一根据下面图解释名词,明文,密文,加密,解密,加密算法,解密算法, 加密密钥和解密密钥

通信双方采用保密通信系统可以隐蔽和保护需要发送的消息,使未授权者不能提取信息。发送方将要发送的消息称为明文,明文被变换成看似无意义的随机消息,称为密文,这种变换过程称为加密;其逆过程,即由密文恢复出原明文的过程称为解密。对明文进行加密操作的人员称为加密员或密码员。密码员对明文进行加密时所采用的一组规则称为加密算法。传送消息的预定对象称为接收者,接收者对密文进行解密时所采用的一组规则称为解密算法。加密和解密算法的操作通常都是在一组密钥控制下进行的,分别称为加密密钥和解密密钥。

五.杂凑(Hash)函数应满足的条件

杂凑函数应满足以下条件:

①函数的输入可以是任意长。

②函数的输出是固定长。

③已知x,求H(x)较为容易,可用硬件或软件实现。

④已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向杂凑函数。

⑤已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。

如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。

⑥找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。

如果单向杂凑函数满足这一性质,则称其为强单向杂凑函数。

第⑤和第⑥个条件给出了杂凑函数无碰撞性的概念,如果杂凑函数对不同的输入可产生相同的输出,则称该函数具有碰撞性。

六.迭代型杂凑函数的一般结构

其中函数的输入M被分为L个分组Y0,Y1,…,YL-1,每一个分组的长度为b比特,最后一个分组的长度不够的话,需对其做填充。

算法中重复使用函数f

f 的输入有两项,一项是上一轮(第i-1轮)输出的n比特值CVi-1,称为链接变量,另一项是算法在本轮(第i轮)的b比特输入分组Yi。f 的输出为n比特值CVi,CVi又作为下一轮的输入。算法开始时还需对链接变量指定一个初值IV,最后一轮输出的链接变量CVL 即为最终产生的杂凑值。通常有b>n,因此称函数f为压缩函数。算法可表达如下:CV0=IV=n比特长的初值;

CVi=f(CVi-1,Yi-1);1≤i≤L;

H(M)=CVL

算法的核心技术是设计无碰撞的压缩函数f,而敌手对算法的攻击重点是f 的内部结构,由于f 和分组密码一样是由若干轮处理过程组成,所以对f 的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出f 的碰撞。由于f 是压缩函数,其碰撞是不可避免的,因此在设计f 时就应保证找出其碰撞在计算上是不可行的。

八.AES高级加密标准的轮函数由4个不同的计算部件组成,分别是:字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)、密钥加(AddRoundKey)。根据下图写出字节代换(ByteSub)、行移位(ShiftRow)、

(1) 字节代换(ByteSub)

字节代换是非线形变换,独立地对状态的每个字节进行。代换表(即S-盒)是可逆的,由以下两个变换的合成得到:

①首先,将字节看作GF(28)上的元素,映射到自己的乘法逆元,‘00’映射到自己。

②其次,对字节做如下的(GF(2)上的,可逆的)仿射变换:

(2) 行移位(ShiftRow)

行移位是将状态阵列的各行进行循环移位,不同状态行的位移量不同。第0行不移动,第1行循环左移C1个字节,第2行循环左移C2个字节,第3行循环左移C3个字节。位移量C1、C2、C3的取值与Nb有关,由表3.10给出。(见66页表3.10)

按指定的位移量对状态的行进行的行移位运算记为ShiftRow (State)图3.20是行移位示意图。

相关文档
最新文档