公开密钥密码系统(3)

2008-04-09 04:30:17来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

显然,上面前三点是适用性的要求,保证对长短不一的报文易于生成同样大小的"数字 指纹";后三点则是安全性的要求,是建立在某种单向函数的基础之上的。

从八十年代末到九十年代,Rivest开发了好几种RSA公司专有的报文摘要算法,包括MD 、MD2、MD5等。以1991年发表的MD5为例,是克服了MD4算法的安全性缺陷的产物,"数字指 纹"的大小是128比特。1994年发表的一个研究报告称,可以花费一千万美元去制造一台专 门的机器,针对MD5搜索两个不同的报文具有相同的摘要,即"碰撞"现象,平均用24天才能找 到一个碰撞。至今,MD5被认为仍是一个安全的报文摘要算法。

专用数字签名方案
前面介绍的RSA数字签名方案的例子属于所谓"常规数字签名方案",这类方案具有如下 特点:

·签名者知道他签署的报文的内容;

·任何人只要知道签名者的公开密钥,就可以在任何时间验证签名的真实性,不需要签 名者的"同意"信号或来自其他方面的信号;

·具有基于某种单向函数运算的安全性。

但在电子货币、电子商业和其他的网络安全通讯的实用中,可能 要放宽或加强上列特 征中的一个或几个,或添上其他安全性特征,以适应各种不同的需求。

例如,在因特网上购买商品或服务,要向供应商(由银行)付款,顾客发出包含有他的银 行帐号或别的重要信息的付款报文,由收款者作出(电子)签名才能生效,但帐号之类的信息 又不宜泄露给签名者,以保证安全。这种情况,就要使用"专用数字签名方案"中的一种:"盲 签名方案"(Blind Signature Scheme)。

盲签名方案的工作原理是这样的:张小姐有报文m要求李先生签署,但不能让李先生知 道关于报文m的任何一点信息。设(n,e)是李先生的公开密钥,(n,d)是他的秘密密钥。张小 姐用她的安全通讯软件生成一个与n互质的随机数r,将

m′=r[RUe]m mod n发送给李先生,这样,李先生收到的是被r所"遮蔽"的m值,即m′,他不可 能从m′中获取有关m的信息。接着,李先生发回签名值

s′=(m′)d mod n=(r[RUe]m)d mod n=rmd mod n

张小姐对收到的s′计算

s′r-1 mod n=md mod n

就得到了真正的来自李先生的对m的签名

s=m[RUd] mod n

可见,运用盲签名方案,张小姐无法代替或冒充李先生的签名,而李先生则不知道他自 己所签署的报文的真实内容。

除了盲签名方案之外,我们简单介绍另外几种专用数字签名方案:

·"指定批准人签名方案"(Designated Confirmer Signature Scheme)

某个指定的人员可以自行验证签名的真实性,其他任何人除非得到该指定人员或签名 者的帮助,不能验证签名。

·"小组签名方案"(Group Signature Scheme)

一个小组的任一成员可以签署文件,验证者可以确认签名来自该小组,但不知道是小组 的哪一名成员签署了文件。

·"一次性签名方案"(One-time Signature Scheme)

仅能签署单个报文的签名方案。

·"不可抵赖签名方案"(Undeniable Signature Scheme)

在签名和验证的常规成分之外添上"抵赖协议"(Disavowal Protocol),则仅在得到签 名者的许可信息号后才能进行验证。

·带有"数字时间标记系统"(Digital Timestamping System)的签名方案

将不可篡改的时间信息纳入数字签名方案。

从列举的专用数字签名方案简介可以看到,为适应实用需求,数字签名方案是颇为丰富 多彩的。

Diffie-Hellman密钥一致协议
在本文的末尾,我们来回顾一下公开密钥密码体制的奠基人Diffie和Hellman所提出的 "指数密钥一致协议"(Exponential Key Agreement Protocol),该协议不要求别的安全性 先决条件,允许两名用户在公开媒体上交换信息以生成"一致"的,可以共享的密钥。

协议要求设定两个参数p和g,p是一个大质数,g是模p指数运算的生成元,p和g都是公开 的,系统中任何人都可用。

设想两名用户张小姐和李先生要得出一个共享的密钥,首先各自生成随机数,如果和张 小姐的随机数是a,她由a算出一个公开值。

k[RDa]=g[RUa] mod p发送给李先生。同样,如果李先生的随机数是b,他由b算出一个公开值

k[RDb=g[RUb] mod p发送给张小姐。然后他们收到公开值kb和ka分别用自己的随机数a和b作 模p指数运算,可得

k[RDab]=(k[RDb])[RUa] mod p=(g[RUb])[RUa] mod p=g[RUba] mod p

K[RDba]=(k[RDa])[RUb] mod p=(g[RUa])[RUb] mod p=g[RUab] mod p

两者是相等的,即

k=k[RDab]=k[RDba]

这样,张小姐和李先生经过在公开媒体上交换信息,生成了共享密钥k。

由于p、g、ka和kb都是公开的值,任何人只要能算出模p离散对数loggk[RDa]和loggk[RDb]就得 到了秘密值a或b。因此,Diffie-Hellman密钥一致协议的安全性取决于离散对数计算的困 难性,在p是巨大质数的场合,模p指数运算确实是一个单向函数。

研究表明,在p与n的比特数相同时,模p离散对数计算与n的因数分解计算的困难程度相 当;1991年有实验证明,计算要比因数分解计算略困难一些,即对100(十进)位的p值的离散 对数计算所付出的努力与对110位n值因数分解计算差不多。

模p离散对数方法在前文提及的一些专用数字签名方案中有着实际的应用;同时,为寻 求新的、更好的公开密钥密码体制,基于其他数学理论的离散对数方法是很吸引人的,所谓 "椭圆曲线公开密钥密码体制"就是其中的一种,是当前国际密码学界的一个热点。 (数据处理者注:A[RUx]----表示A的右上脚注为x, A[RDx]----表示A的右下脚注为x

--------------------------------------------------------------------------------

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在Delphi窗口中创建IE风格的菜单

下一篇:COMDCOM对象中通过Variant传递数组