《信息安全原理与技术》(第2版)习题答案

本原根α为7。A和B分别选择秘密数为5和12。求共享的密钥。 解:由题意得 XA=5, XB=12,则 YA=aXAmod p=75 mod 71=51, 故K=YAXBmod p=5112 mod 71=30。

4.12编写RSA加密和解密程序。 解:int encrypt(int m,int e,int n)

{

int c,i,k=1;

for(i=1;i<=e;i++) k=k*m; c=k%n; return c; }

int decrypt(int c,int d,int n) {

int m,i,k=1;

for(i=1;i<=d;i++) k=k*c; m=k%n; return m; }

第5章

5.1为什么需要消息认证?

答:网络安全的威胁来自于两个方面:一是被动攻击,攻击者只是通过侦听和截取等手段被动的获取数据,并不对数据进行修改;一是主动攻击,攻击者通过伪造、重放、篡改、改变顺序等手段改变数据。对于这些应用中,仅提供保密性是远远不够的。认证则是防止主动攻击的重要技术。认证的目的主要有两个:第一,验证消息的发送者是合法的,不是冒充的,这称为实体认证,包括对信源、信宿等的认证和识别;第二,验证信息本身的完整性,这称为消息认证,验证数据在传送或存储过程中没有被篡改、重放或延迟等。

5.2 SHA中使用的基本算术和逻辑函数是什么?

答:SHA-512中最核心的处理就是对单个512分组处理的80轮的每一轮的处理,其运算如下定义:

T1=h+Ch(e,f,g)+(∑1512e)+Wt+Kt T2=(∑0512 a)+Maj(a,b,c) a=T1+T2 b=a c=b d=c e=d+T1 f=e g=f h=g

21

其中:

t:步骤数,0≤t≤79。

Ch(e,f,g)=(e AND f)⊕(NOT e AND g) 条件函数,如果e,则f,否则g。

Maj(a,b,c)=(a AND b) ⊕(a AND c) ⊕(b AND c),函数为真仅当变量的多数(2或3)为真。 (∑0512 a)=ROTR28(a) ⊕ROTR34(a) ⊕ROTR39(a) (∑1512 e)= ROTR14(e) ⊕ROTR18(e) ⊕ROTR41(e) Wt:64位,从当前的512位消息分组导出 Kt:64位常数 +:模264加

5.3一个安全的散列函数需要满足的特性有哪些?

答:(1) H可以应用于任意长度的数据块,产生固定长度的散列值;

(2) 对每一个给定的输入m,计算H(m)是很容易的;

(3) 给定Hash函数的描述,对于给定的散列值h,找到满足H(m) = h的m在计算上是不可行的;

(4) 给定Hash函数的描述,对于给定的消息m1,找到满足m2?m1且H(m2)=H(m1)的m2

在计算上是不可行的;

(5)找到任何满足H(m1)=H(m2)且m1 ? m2的消息对(m1, m2)在计算上是不可行的。

5.4什么是生日攻击?

答:生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。这种攻击对Hash函数提出了一个必要的安全条件,即消息摘要必须足够长。 Yuval的生日攻击法描述如下:

(1) 合法的签名方对于其认为合法的消息愿意使用自己的私钥对该消息生成的m位的散列值进行数字签名。

(2) 攻击者为了伪造一份有(1)中的签名者签名的消息,首先产生一份签名方将会同意签名的消息,再产生出该消息的2m/2种不同的变化,且每一种变化表达相同的意义(如:在文字中加入空格、换行字符)。然后,攻击者再伪造一条具有不同意义的新的消息,并产生出该伪造消息的2m/2种变化。

(3) 攻击者在上述两个消息集合中找出可以产生相同散列值的一对消息。根据“生日悖论”理论,能找到这样一对消息的概率是非常大的。如果找不到这样的消息,攻击者再产生一条有效的消息和伪造的消息,并增加每组中的明文数目,直至成功为止。

(4) 攻击者用第一组中找到的明文提供给签名方要求签名,这样,这个签名就可以被用来伪造第二组中找到的明文的数字签名。这样,即使攻击者不知道签名私钥也能伪造签名。

5.5散列函数和消息认证码有什么区别?各自可以提供什么功能?

答:消息认证码和散列函数都属于认证函数。简单来说,消息认证码是一种使用密钥的认证技术,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。而散列函数是将任意长的消息映射为定长的hash值的函数,以该hash值作为认证符。散列函数也称为消息的“指纹”。但是散列函数用于认证时,通常和数字签名结合使用。

它们都可以提供消息认证,认证内容包括:消息的源和宿;消息内容是否曾受到偶然的或有意的篡改;消息的序号和时间栏。

22

5.6数字签名和散列函数的应用有什么不同? 答:散列函数可以被称为是消息的“指纹”,它可以用来对于消息生成一个固定长度的短数据块。它可以和数字签名结合提供对消息的认证。由于数字签名算法在对长的消息进行签名的时候需要先分块再分别签名,速度很慢,所以采用对消息的散列值进行签名可以提供效率并提供认证。数字签名中需要使用私钥,只有拥有私钥的用户才可以提供数字签名,数字签名可以解决的问题包括:否认:发送方否认发送过或签名过某个消息;伪造:用户A伪造一份消息,并声称该消息来自B;冒充:用户A冒充其他用户接收或发送报文;篡改:消息接收方对收到的消息进行篡改。这些问题散列函数是单独解决不了的。

5.7数字签名需要满足哪些条件? 答:数字签名需要满足的条件包括:

[1] 签名的结果必须是与被签名的消息相关的二进制位串;

[2] 签名必须使用发送方某些独有的信息(发送者的私钥),以防伪造和否认; [3] 产生数字签名比较容易; [4] 识别和验证签名比较容易;

[5] 给定数字签名和被签名的消息,伪造数字签名在计算上是不可行的。 [6] 保存数字签名的拷贝,并由第三方进行仲裁是可行的。

5.8给出几种数字签名技术,分析其优缺点。

答:数字签名标准:DSA的安全性是建立在求解离散对数难题之上的,算法基于ElGamal和Schnorr签名算法,其后面发布的最新版本还包括基于RSA和椭圆曲线密码的数字签名算法。这里给出的算法是最初的DSA算法。只提供数字签名功能的算法,虽然它是一种公钥密码机制,但是不能像RSA和ECC算法那样还可以用于加密或密钥分配。

仲裁数字签名:仲裁签名中除了通信双方外,还有一个仲裁方。发送方A发送给B的每条签名的消息都先发送给仲裁者T,T对消息及其签名进行检查以验证消息源及其内容,检查无误后给消息加上日期再发送给B,同时指明该消息已通过仲裁者的检验。因此,仲裁数字签名实际上涉及到多余一步的处理,仲裁者的加入使得对于消息的验证具有了实时性。 盲签名:允许消息发送者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名除去盲因子,得到签名者关于原消息的签名。它除了满足一般的数字签名条件外,还必须满足下面的两条性质:

1. 签名者不知道其所签名的消息的具体内容。

2. 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。 盲签名主要用于电子商务等等领域。

第6章

6.1解释身份认证的基本概念。 答:身份认证是指计算机及网络系统确认操作者身份的过程。它用来防止计算机系统被非授权用户或进程侵入,保证以数字身份进行操作的操作者就是这个数字身份合法的拥有者。

6.2简述使用口令进行身份认证的优缺点。

答:口令认证的优点就是简单,易于实现。口令认证的不足之处是容易受到攻击,主要的攻击方式有窃听、重放、中间人攻击、口令猜测等。

23

6.3 简述OpenID和OAuth认证协议的功能与区别。

答:OpenID(Open Identity)是一个开放的、基于URI/URL的、去中心化的身份认证协议,也是一个开放的标准。通过OpenID,任何人都能够使用一个URL在互联网上用统一的方式来认证自己。一次注册,可以在多个网站上登录,从而实现了跨域的单点登录的功能,用户再无须进行重复的注册和登录。OAuth(Open Authorization)协议是一个开放的授权协议,其目标是为了授权第三方在可控范围下访问用户资源。OAuth和OpenID的区别在于应用场景的区别,OAuth用于为用户授权,是一套授权协议;OpenID是用来认证的,是一套认证协议。两者是互补的。一般支持OpenID的服务都会使用到OAuth。

6.4解释访问控制的基本概念。

答:访问控制规定了主体对客体访问的限制,并在身份识别的基础上,根据身份对提出资源访问的请求加以控制。访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。适当的访问控制能够阻止未经允许的用户有意或无意地获取数据。

6.5有哪几种访问控制策略?

答:根据控制策略的不同,访问控制可以划分为自主访问控制、强制访问控制和基于角色的访问控制三种。

6.6什么是强制访问控制MAC策略?它的适用场合是什么? 答:强制访问控制是指计算机系统根据使用系统的机构事先确定的安全策略,对用户的访问权限进行强制性的控制。强制访问控制进行了很强的等级划分,所以经常用于军事用途。

6.7什么是自主访问控制DAC策略?它的安全性如何?

答:自主访问控制是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。它的安全性不高,权限的传递可能会给系统带来安全隐患,无意间就可能泄露信息,而且不能防备特洛伊木马的攻击。

6.8为什么MAC能阻止特洛伊木马? 答:一个特洛伊木马是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄露信息。阻止特洛伊木马的策略是基于非循环信息流,所以在一个级别上读信息的主体一定不能在另一个违反非循环规则的安全级别上写,同样,在一个安全级别上写信息的主体一定不能在另一个违反非循环规则的安全级别上读。由于MAC策略是通过梯度安全标签实现信息的单向流通,因而它可以很好地阻止特洛伊木马的泄密。

6.9简述什么是基于角色的访问控制RBAC。 答:基于角色的访问控制是在用户和访问权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问。

第7章

7.1简述Kerberos的基本工作过程。 答:Kerberos的基本认证过程描述为:

①用户想要获取访问某一应用服务器的许可证时,先以明文方式向认证服务器AS发出

24

联系客服:779662525#qq.com(#替换为@)