您好,欢迎来到尔游网。
搜索
您的当前位置:首页信息安全习题答案2-4章

信息安全习题答案2-4章

来源:尔游网
第2章习题及答案

1.设a-z的编码为1-26,空格编码为27,采用密码算法Ck1Mk2,取k13,k25,设明文为“cryptography is an applied science”,计算相应的密文。 解:明文: cryptography is an applied science

C3M5

加密: c:335(mod28)14 对应得到字母n; r:1835(mod28)3 对应得到字母c; y:2535(mod28)24对应得到字母x; 其余字母的解密运算类似,略.

通过计算相应的密文为:ncxyivzchyaxbdfbhsbhyymdtqbfndtsnt

2.用Vigenere算法加密明文“The meeting will be held at afternoon”,设密钥为:hello。

解:起始密钥串是:hello,根据编码规则A0,B1,,Z25,密钥串的数字表

为(7,4,11,11,14),明文串The meeting will be held at afternoon进行维吉尼亚加密和解密运算。加密运算如下表:

明文 明文编码 密钥编码 密文编码 Theme 19,7,4,12,4 7,4,11,11,14 eting 4,19,8,13,6 willb 22,8,11,11,1 eheld 4,7,4,11,3 7,4,11,11,14 ataft ernoo n 13 7 20 u 7,4,11,11,14 4,17,13,14,14 7,4,11,11,14 7,4,11,11,14 7,4,11,11,14 7,4,11,11,14 0,11,15,23,18 11,23,19,24,20 alpxs lxtyu 3,12,22,22,15 11,11,15,22,17 7,23,11,16,7 11,21,24,25,2 dmwwp llpwr hxlqh lvyzc 密文 3.利用穷举搜索法编写程序破译如下利用移位密码加密的密文:BEEAKFYDJXUQYHYJQRYHTYJIQFBQDUYJIIKFUHCQD

解:根据移位密码的特点,密钥k的取值有26种可能,即就是1,2…26, 当k=1时,将输入的密文所对应的码向前移一位,即就是各位所对应的码减去1,然后输出消息,…当k=25时,各位所对应的码减去25,然后输出消息,当k=26时,不变,输出的文明和密文相同。 程序如下:

#include void main() {

int i,k,t;

char j,temp[26],m[41];

char c[41]={'B','E','E','E','A','K','F','Y','D','J', 'X','U','Q','Y','H','Y','J','Q','R','Y',

'H' , 'T','Y','J','I','Q','F','B','Q','D','U', 'Y','J','I','I','K','F','U','H','C','Q', 'D'};

for(i=1,j='A';i<=26,j<='Z';i++,j++) {

temp[i]=j; }

for(k=1;k<=26;k++) {

printf(\"the %dth result is: \

for(i=0;i<41;i++) {

for(t=1;t<=26;t++) {

if(c[i]==temp[t]) {

if(t-k>0)

t=(t-k)%26; else if(t-k<0)

t=(t-k+26)%26; else

t=26; m[i]=temp[t]; break; }

}

}

}

printf(\"%c\}

printf(\"\\n\");

4.什么是单向陷门函数?单向陷门函数有什么特点?单向陷门函数

如何应用于非对称密码?

答:单向陷门函数是满足下列条件的函数f:DV 1) 对于任意给定的xD,计算yf(x)是容易的;

2) 对于几乎所有任意给定yV, 计算xD使得yf(x),在计算上是困难的,即,计算xf1(y)是困难的。这里所谓困难是指在有意义的时间要求之内计算是不可行的。

3) 存在陷门信息t,当已知t 时,对给定的任何yV,若相应的

x存在,则计算x使yf(x)是容易的。

说明:

1) 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性质,其中的t称为陷门信息(trapdoor information)。 2) 这里的陷门信息t 保密,用作解密密钥,此时t 称为秘密密钥(Private key),记为Sk。由于加密函数是公开的,任何人都可以将信息x加密成yf(x);只有拥有陷门信息t的人,即拥有Sk才能解密出信息xf1(y)。

3) 单向陷门函数的第2)条性质可以保证窃听者由截获的密文

yf(x)推测x是不可行的。

非对称密码的思想与单向陷门函数有关,他们都是依赖于数学上的困难问题而设计的,这一点与分组密码有着根本的区别。非对

称密码实际上就是需要设计一个单向陷门函数(One-way Trapdoor Function)。非对称密码中的公钥用于单向陷门函数的正向(加密)计算,而私钥用于反向(解密)计算。

5.设通信双方使用RSA加密,接收方的公开密钥是(5,35),接受者收到密文为10,求明文。

解:N=35,e=5, (N)(57)4624, (5,24)1;

ed1(mod(N)),5d1(mod24)解得d5;

为了解密密文10,利用秘密钥d计算10dm(mod35),即得到了明文 m=5。

验证: cme(modN),1055(mod35)成立。 所以明文 m5。

6.在RSA密码中,设选择参数p=7,q=17,为某用户选择e=5,

则该用户的公私钥分别是什么?

P=7, q=17, 则N=7*17=119 φ(N)=(p–1)(q–1)=6*16=96 因为e=5, (5,72)=1,

由欧拉辗转相除法,96*1-5*19=1 即 5*19=1(mod96) 所以d=19作为解密密钥。

(N,e)=(119,5)作为RSA的公开密钥。

1516mod4371。 7. 编写程序完成计算:

m=16,c=15=(1111),于是1=4

main() {

Int l=4,z=1,c=15 For(i=l-1;i>=0;i--) {z=z*zmod4371 z=zmmodN} Return z }

8.有哪几种分组密码工作模式?分组密码工作模式在实际中有什么作用? 电码本模式(ECB)

电码本模式是最简单的工作模式,该模式将输入的消息分成一定比特长度的分组(将最后的分组填充),使用秘密密钥加密每个分组。另一端再接收到加密的分组后,解密每个分组并得到初始消息。

m1Ec1m2Ec2mnEcn 大多数信息不可能被完整的分成几组,最后一部分通常不够一组,可采用填充方式来解决。填充就是采用全0、全1或0与1的组合来填充最后的短块,使其成为完整的一组,解密后再删除最后填充的字节。为了便于识别填充信息,对于不足一个完整分组的块,在填充的最后一位填充的往往不是0或1,而是需要填充的比特的数目。使用这种填充方式,即使最后一组明文是完整的,也需要再填充一个完整的块,这样便于对不同长度的明文进行统一的处理。

ECB模式有两个缺陷:首先,如果消息包含两个完全一样的明

文分组,则输出的加密分组也是完全一样的,如果攻击者已知几组消息的明文和密文,就能编出相应的代码薄而无需知道密钥;其次,在这种模式下,攻击者能够修改分组或者重排分组。由于这些缺陷,很少人使用ECB模式加密数据。 (2)密码分组连接模式(ECB)

针对ECB模式存在的缺陷,CBC模式对分组密码加入了反馈机制,即将前一组的加密结果反馈到当前组的加密,同时,当前组的加密结果被用来修改下一组加密。每组密文依赖于它前面的各组明文,这样即使明文中有重复的分组,也不会出现相同的密文分组。

m1IVm2mn⊕Ekc1⊕Ekc2⊕Ecn

在CBC模式中,首先生成一个初始随机向量IV(Initialization Vector),用IV与明文的第一个分组进行异或运算,再进行加密运算。并将该随机数与数据一起传输,这样可以防止两个初始明文块相同的消息其加密结果的密文分组也相同。在解密过程中,先对当前密文分组进行解密,再将上一分组的密文作为随机数与当前密文分组解密后的输出进行异或运算。由于异或的逆运算是它自身,所以CBC模式的解密就是加密的逆过程。

IVc1Dkc2DkcnD ⊕m1⊕m2⊕mn

CBC模式的解密模式

由于异或运算的系统开销远小于加密的系统开销,所以CBC模式的效率是比较高的,其缺陷是需要传输初始向量IV。随机选择IV可以防止攻击者对CBC模式进行选择明文攻击。CBC模式会受到修改密文分组和重新排列密文分组的攻击。攻击者对数据进行微小的改变,就可以控制一个分组的内容,导致前一分组的内容变得无法预测和无法控制。

由于CBC模式的链接机制,使得它除了能够提供保密性外,还能用于消息认证,可以识别密文在传输中是否被攻击者进行了篡改,比如密文分组的重放和删除等。该特性的另一个方面则是密文传输错误的传播,即密文传输中的一个分组发生错误导致本分组无法正确解密,同时导致下一个分组不能正确解密。 (3)输出反馈模式(OFB)

输出反馈模式通过序列密码思想实现加密的模式,其思路是将OFB输出的数据串与明文消息进行异或运算以实现加密。在该工作模式加密过程中,首先生成一个随机比特的数,称为IV(Initialization Vector)。输入块X置成初始值:X1IV。设明文是由q个明文块

P1,P2,,Pq构成,块长度为j比特。

对每个明文变量进行加密的运算采用以下四个步骤: a) 使用分组密码:YiEk(X1) b) 选择最左边的j位:ZiYic) 产生密文变量:CiPiZi d) 反馈操作:Xi1Yi

对i1,2,q,重复上述步骤,最后一个循环结束于步骤c)。此过程如图2.18的左半部分所示。每次使用分组密码所产生的结果Yi被用来

Yi的最左边j位用来加密输入变量。反馈并成为X的下一个值,即Xi1。

j

OFB模式的优点有:

(1) 在知道要加密的消息之前,可以预先生成一次一密序列。

在需要加密消息时,没有加密算法的系统开销,只需进行异或运算,提高算法效率;

(2) 如果密文的一个比特被篡改,明文中只有相应的比特被篡

改。在CBC模式中,只要密文分组cn有改动,对应的整个明文分组mn就会被篡改,mn1中与cn中被篡改比特相应的比特也会被篡改;

(3) 消息是可以具有任意长度的数据块,只要收到一组明文,

相应的密文可以立刻发送。

加密解密长度为n的X长度为n的XEk选择最左边j位CDk选择最左边j位长度为j的P长度为j的P

OFB模式的缺点是:如果攻击者知道明文和密文,就可以将明文修改为他所需要的任意消息。这只需要将密文和已知的明文进行异或运算,然后在与他需要的消息进行异或运算即可实现。

(4) 密文反馈模式(CFB)

密文反馈(CFB)模式在结构上与OFB模式类似,它们均适用于待加密的消息必须按字符处理时。每次生成j比特的数据并与j比特的明文进行异或运算(按字符处理时,可以取j=8)。在OFB模式加密中,分组加密算法Ek的输入是n比特的输入变量X,经过加密算法得到Y,选择最左边的j比特用来和明文异或得到密文。将上一个分组加密的结果C的k个比特移入寄存器FB中,作为下次分组加密的输入数据。

与OFB模式不同的是,在CFB模式中,移入寄存器的k比特是上一个密文分组的k比特,所以使用CFB模式无法在获得消息之前预先生成一次一密序列。该模式加密过程如图的左半部分所示,该

模式解密过程如图的右半部分所示。

加密解密长度为n的X k位长度为n的X k位Ekk-j个1k-j个1Dkj位选择最左边j位j位选择最左边j位C长度为j的P长度为j的P

CFB具有OFB模式的优点,即在收到任何一个字节之后都可以立即加密并发送,适用于用户格式的需要。CFB模式的缺点是: 1) 对信道错误敏感,会造成错误传播;

2) 使用一次分组密码只能加密一个子块,而不是一个明文分组,因此数据速率不高。 (5) 计数器模式(CTR)

计数器(CTR)模式的分组密码工作模式是通过对于一个计数器序列进行加密得到一次一密序列,并与数据进行异或运算而生成密文。CTR模式的加密过程描述如图所示。

IV计算器加1 ……计算器加1KEkm1KEkKEkc1m2c2mLcL 与OFB模式类似,CTR模式的优点是可以预先生成一次一密序列,且加密时只需实施异或运算。但是,它与CBC模式一样,可以从消息的任意点开始解密,而不需要从消息的开头开始解密。这使得CTR模式用于加密随机存储文件时非常理想。

CTR模式的应用中,需要注意的是,不可以使用相同的密钥和IV对于不同的数据进行加密,否则CTR模式不再安全,因为攻击者可以通过将两串密文数据进行异或运算,来获得两串明文数据的异或结果。

9. 设n4,s01011,f(x1,x2,x3,x4)x1x3,计算该4级线性反馈移位寄存器的输出序列。

解:在这里c1c31,则该线性反馈移位寄存器模型如下:

ai3 ai2 ai1 ai + 因为ain1f(ai1,ai2,...ain)c1ainc2ain1...cnai1, 所以a11 a20 a31 a41

a5c1a4c2a3c3a2c4a1a4a21

a6a5a30…. a15a14a12110

所以该4级线性反馈移位寄存器的输出序列为101110100111010,101110100111010,… 该序列有周期为15.

2310. 椭圆曲线E11(1,6)即表示yxx6mod11,求其上所有的点。已知G(2,7)是椭圆曲线E11(1,6)上的点,计算2G的值。 解:1)求当x=0,1,2….10时,x3x6(mod11)的值

2)在1)中得到的每个值确定是否有一个模11的平方根存在。若存在则(x,y)和(x,py)为E11(1,6)中的点。

所以椭圆曲线上的点集为(5,2),(5,9),(7,2),(7,9),(8,3),(8,8),(10,2), (10,8)

2G=G+G=(2,7)+(2,7)=(4,3)

11. 利用椭圆曲线实现ElGamal密码,设选取椭圆曲线为E11(1,6),取生成元G(2,7),接收方的秘密密钥为nA7。 (1)求A的公开密钥PA; (2)设发送方B希望发送消息Pm(10,9),选择随机数k3,求密文Cm.

解:(1)因为PAnAG,G=(2,7), nA=7 所以PA=(3,5)

(2)Cm(kG,pmkPA)=((8,2),(7,2))

第3章 习题

1. 说明Diffie-Hellman密钥交换协议原理。

答案:在Diffie-Hellman协议中,两个机构不需要使用密钥分发中心KDC,就可以创建一个对称会话密钥。在创建对称密钥之前,这两个机构要选择两个数p和g。其中p是一个有300个十进制数位(1024比特)的大的素数。第二个数g,是一个在群Zp,中的

*p1阶生成元。p和g作为系统的公开参数,可以公开发布。

协议过程描述如下:

(1) 通信方A选择一个大的随机数x,使得0xp1,计算R1gxmodp,并将R1发送给通信方B;

(2) 通信方B选择另一个大的随机数y,使得0yp1,计算R2gymodp,并

将R2发送给通信方A;

(3) A在收到R2后,计算K(R2)xmodp;

y(4) B在收到R1后,计算K(R1)modp 。

于是,他们得到了同一个K值,即取得了共同的会话对称密钥。因为通信方B计算出

yxyxy了K(R1)modp(gmodp)modpgmodp,而通信方A也计算出了

K(R2)xmodp(gymodp)xmodpgxymodp ,这样双方就共同获得会话密钥

K。

Diffie-Hellman密钥交换协议的安全性是基于离散对数的困难性的,由于p是非常大的素数,由其构成的群Zp,中离散对数问题是困难的。也就是说,即使攻击者在公共信道上截获了R1和R2,他也不能求出x或者y,因为这是一个数学困难问题。在无法获知x或者y的情况下,攻击者无法得到密钥K。

需要说明的是,协议中的p必须是一个足够大的素数,协议的安全性才能得到保证,即只有在p足够大的情况下,群Zp,中的离散对数问题才是困难的。

通信方A协商公开参数选择随机数x计算 R1=gx mod p**pg通信方B协商公开参数选择随机数y计算 R2=gy mod p

计算 K=R2x mod p计算 K=R1y mod p

2. 设系统公共参数为q=11,群中的生成元g=2. 设用户A的私钥为6,用户B的私钥为8,则他们的公钥分别是什么?如果采用Diffie-Hellman密钥交换协议进行密钥协商,试求他们可以达

Z*p,成的共享密钥K。

计算:A的公钥是

yA26mod119,B的公钥是:

yB28mod113,达成的共享密

48钥:K2mod11

3. 密钥的种类有哪些?为什么要采用层次化的密钥结构?

答案密钥从作用上可以分为以下三种: (1) 会话密钥

会话密钥是指在通信或者数据交换中,用来对用户数据进行加密操作的密钥。会话密钥往往是仅对当前一次会话有效或在一个短时期内有效。会话密钥一般是对称密钥,在加密前由系统自动生成。其生成一般是由系统根据主密钥产生,在使用后立即销毁,从而提高安全性。

(2) 密钥加密密钥

密钥加密密钥是指,用于对密钥(会话密钥)进行加密操作的密钥,即用于加密用户数据的会话密钥。密钥加密密钥可以由对称密钥承担也可以由非对称密钥承担,由非对称密钥对会话密钥提供保护,充分利用了非对称密码在密钥分发上的优势和对称密钥在加密效率上的优势,成为理想的密钥分发方案。

(3) 主密钥

主密钥是在一对用户之间的长期共享的秘密密钥,它往往作为生成会话密钥或密钥加密密钥的种子,实现这些密钥的分发和安全保护。而主密钥的分发则一般使用离线安全物理通道完成。

层次化密钥的优点主要有两个方面,一方面体现在密码系统的安全性上,因为层次化密钥的高层主密钥因为量少而易于机密保存,层次化密钥的低层会话密钥则由于频繁变动而提高了攻击的难度和破坏程度;另一方面,层次化密钥的优点还在于密钥的生成和管理可以自动化,因为只需要通过物理方式安全分发主密钥并为双方长期持有,其他的各层密钥则可以由算法自动生成。

4.什么是数字证书?数字证书的作用是什么?

答案:证书由证书主体和签名算法标示符及签名值组成,其中的签名算法标识符是用来表示CA对证书进行签名所用的签名算法,如SHA-1和RSA作为标识符就表示该数字签名算法是RSA,而用SHA-1作为Hash函数。证书主体则由版本号、证书序列号、签名算法标示符、颁发者、有效期、证书主体名称、主体公钥信息、颁发者ID、主体ID、扩展项字段组成。

作用:证书的概念是Kohnfeder在1978年第一次提出的,是公钥密码中的一种密钥管理媒介。证书实际上是一种权威性的电子文档,如同网络环境中的一种身份证。公钥证书就是把实体名称(以及其他相关属性)和相应公钥捆绑在一起,用于证明某一实体(如个人、团体、服务器)的身份及其公钥的合法性,即通过公钥证书可以把公钥证明给一个公钥证书使用者。因为有可能存在欺诈,所以在基于公钥密码的网络环境中,必须向公钥的使用者证明公钥的真实合法性,这种合法性是通过一个可信的机构来对任何一个实体的公钥进行公证,证明实体的身份以及与公钥的匹配关系。

5. 什么是PKI信任模型?有哪几种信任模型?

答案:所谓的PKI信任模型(trust model)就是一系列的规则,这些规则说明了用户怎样验证

从CA收到的证书

信任模型的种类: 1) 层次结构信任模型

在这种模式中,认证机构(CA)是严格按照层次结构组织的,整个CA体系可以描绘成一个倒转的树。在这种层次信任结构中有且只有一个被整个PKI域中都信任的根,称为根CA。图3.6表示出了这类信任模型。在实际情况中,级数可以多于三级。

CACA1CA2CA3用户1用户2用户3用户4用户5用户6用户7用户8 2) 网状信任模型

网状信任模型也称为分布式信任模型,这种信任模型把信任分散到两个或者多个CA上,用于将若干具有严格层次结构的PKI系统之间互联起来,即在一个组织或一个小的团体中使用层次结构的PKI,而在需要将几个小团体结合成一个大的信任域时,将其互联起来,建立互相之间的信任关系。网状信任模型如图3.7所示。

CA间的信任连接CA1CA1CA1各个的根CA中间CA终端实体

3) WEB信任模型

这是一种技术密切相关的信任模型,它依赖于浏览器,例如Navigator和Internet Explorer。在一些网页浏览器中,包含一些来自根的一系列证书,这些根并没有经过一个高级别的权威机构一一验证,而是将这些根的公钥预装在浏览器上,使得浏览器的用户信任这些CA并把它们作为根CA。在Internet Explorer的\"工具\"/\"Internet选项\"/\"内容\"/\"证书\"/\"受信任的根证书颁发机构\"/可信根(使用下拉菜单)中,我们可以找到这些根的列表。然后,用户可以选择任意一个根来查看证书。

4) 以用户为中心的信任

在这种信任模型中,每个用户都自主地决定信赖哪个证书和拒绝哪个证书。例如一个用户A的最初的可信证书集可能包括特定的用户证书,如A的家人的、朋友的等等,这些用户的证书都是由A签署的,这样用户就担当了CA的角色,建立起了一个由他的公钥被其他人认证的信任网。这一信任模型的特点之一在于其可扩展性,例如当用户A收到了一个用户X的证书时,虽然这个证书不是他签名的,但是却是由用户B签名的,而用户B是自己信任网络中的一个用户,这样就可以信任用户X的证书(公钥)。

第4章 数字签名与认证技术

1.什么是消息认证码MAC?说明其在信息安全中的作用和局限性。

答:消息认证码MAC(Message Authentication Code):是以消息和密钥作为输入的公开函数,可以生成定长的输出。该方法需要在信息的发送方和接收方之间共享密钥。

1) 基于密钥杂凑函数的MAC

优点:这种构造方法具备很多优点,和同类型的MAC算法相比,它给出了安全性证明——将MAC的安全性归结到所使用的Hash函数上。在软件实现上,它要比使用分组密码构造的MAC快,并且神经质效率特别高。从它的构造上可以看出,它以一种非常简单的方式使用带密钥的Hash函数,同底层的Hash函数相比,性能并没有降低多少。另外两个值得称道的优点是免费和黑盒。免费是指Hash函数不爱法律,可以免费使用。黑盒是指可以将底层的Hash函数看成一个模块,可根据需要方便地进行更换。

缺点:安全性依赖于底层的Hash函数,而所使用的Hash函数有些是没有安全性证明的,所以不能保证这种方法的安全性。其次由于压缩函数是串行的,该构造方法不支持并行。

2) 基于分组加密算法的MAC

优点:这种方法出现得较早,是一种经典的构造方法,其构造方法简单,底层加密算法具备黑盒的性质,可以方便地进行替换。后来的很多MAC算法都是对它的改进。

缺点:CBC-MAC仅适用于对相同长度的消息进行认证,在消息长度变化的情况下是不安全的。另外,它的构造方法决定了该算法不支持并行计算。 2.什么是Hash函数?Hash函数应该具备哪些性质?

答:哈希(Hash)函数是一个输入为任意长的二元串,输出为固定长度的二元串的函数。

一般用H()表示哈希函数,若输出是长度为l的二元串,哈希函数表示为

H():{0,1}*{0,1}l

其中{0,1}*表示所有任意有限长的二元串的全体集合,{0,1}l表示所有长度为l的二元串的集合。

散列函数具有的重要性质是单向性、抗原像性、抗第二原像性以及抗碰撞性。

3. 数字签名的基本原理是什么?它和手写签名在哪些方面具有本质的不同? 答:数字签名的基本原理: 数字签名就是用私有密钥进行加密,而认证就是利用公开密钥可以进行正确的解密。在公钥密码系统中,由于公开密钥无法推算出私有密钥,所以公示的公开密钥并不会损害私有密钥的安全;公开密钥无须保密,可以公开传播,而私有密钥一定是个人秘密持有的。因此,某人用其私有密钥加密消息,能够用他的公开密钥正确解密,就可肯定该消息是某人签字的。因为其他人的公开密钥不可正确解密该加密过的消息,其他人也不可能拥有该人的私有密钥而制造出该加密过的消息。如下图示:

消息消息加密后的摘要消息加密后的摘要Hash摘要比较Hash摘要A的私钥加密加密后的摘要A的公钥解密解密后的摘要签名方数字签名与手写签名的本质不同在于:

验证方

(1) 数字签名是和所签名的信息绑定的,它是通过密码技术对指定电子文档生成的电子形式的签名,并非是书面签名的数字图象化。

(2)对数字签名来说,同一签名者对不同文件的数字签名是不相同的(数字签名与文件的数据指纹或称为信息摘要有关,不同的文件其数据指纹是不同的);而在传统的书面签名情况下,签名者对所有文件的签名几乎是一样的。 4. 说明Hash函数在数字签名中应用的意义。

答:Hash函数在数字签名中应用的意义是为了增加可识别信息。在数字签名中,对消息进行Hash的作用是将任意长度的消息压缩成固定长度的消息指纹。

*例如,在RSA数字签名中,RSA算法为:为了生成消息mZN的签名,Alice

生成sh(m)d(modN),即得到消息签名对(m,s)。收到消息-签名对(m,s),Bob的验证过程为Verify(N,e)(m,s)Trueifh(m)se(modN)。

在这个RSA签名算法中使用对消息进行Hash的方法,使得伪造RSA签名的存在性伪造不能奏效,即攻击者无法知道所用密码哈希函数下H(m)的原象。 故该算法才能真正用于数字签名应用中。

5. 设Hash函数为H(m)=m,给出在Z上的ElGamal签名方案。 答:一. 参数生成

1.公开参数

设是一个大素数,并确保在Z中求解离散对数在计算上是困难问题;

的一个生成元,或称为本原元素。 g (取g7)是Z中乘法群Z2.用户私钥参数

选定一个随机的x(取x10),xZ,作为用户的私钥。

3.用户公钥参数

计算ygxmod作为用户的公钥。 有y710mod18作为用户的公钥

由此设用户Alice的公私钥对为(xA,yA),yA公开,而xA保密。 二. 生成签名

Alice欲生成对消息m的签名,则执行如下的签名过程: 1.随机选择k(k13),kZp,并要求(k,88)1; 2.计算签名:rgkmod; 有rgkmod713mod33 3.计算签名:sk1(mxAr)mod88。

1 有s(m330)mod88

13得到消息签名对为(m,(r,s))。 三. 验证签名

设Bob为验证方,他知道公开参数(g,)以及Alice的公钥yA。对于消息签名对(m,(r,s)),Bob执行验证过程:

1.预查合法性:如果1r88,继续,否则签名是不合法的; 2.计算v1:v1yArrsmod; 3.计算v2:v2gmmod;

4.比较v1和v2:如果v1v2,表示签名有效;否则签名无效。

6. 设ElGamal签名中,Hash函数为H(m)=m,p=25319, 332,223658,秘密密钥为e2835。取随机数t5151,计算对于消息m2003的ElGamal签名。

解:签名过程如下:

(1)随机数t5151,tZp,且t,p11; (2)计算签名: r1808855151modp;

(3) 计算签名:s202512003283518088modp1。 5151得到消息签名对为2003,18088,2025



7. 设DSS签名中,参数p为20比特的素数652411,q为10比特素数659,取Hash函数为H(m)=m,计算消息m=123456的数字签名。 答:(1)参数生成 1.生成公开参数

已知p652411,q659

gh(p1)/qmodp其中h是一个整数,1h(p1),且要求g1,

取h3,g3990mod(652411)294910 2.用户参数

随机选取x10(0公钥。

(2)签名过程

签名的消息空间可以表示为Zp,而签名结果的空间可以表示为ZqZq。签名时还需要一个随机数k,可由一个随机数生成器生成。

x,从而求得yg10mod(652411),y是用户659)

1.k可由一个随机数生成器生成,且kZq,k{1,,q},取k3 2.r(gkmodp)modq即

r(294910)3mod(652411)mod659231

3.s(k1(H(M)xAr))modq即

1s(1234562310)mod659405

3故消息m的签字结果是(231,405)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务