公开密钥密码系统(2)
2008-04-09 04:30:17来源:互联网 阅读 ()
对上面例子中的n=143,只是示意用的,用来说明RSA公开密钥密码系统的计算过程,从 143找出它的质数因子11和13是毫不困难的。对于巨大的质数p和q,计算乘积n=p×q非常简 便,而逆运算却难而又难,这是一种"单向性"。相应的函数称为"单向函数"。任何单向函数 都可以作为某一种公开密钥密码系统的基础,而单向函数的安全性也就是这种公开密钥密 码系统的安全性。
公开密钥密码系统的一大优点是不仅可以用于信息的保密通讯,又可以用于信息发送 者的身份验证(Authentication),或数字签名(Digital Signature),我们仍用例子来作示 意说明。
李先生要向张小姐发送信息m(表示他的身份,可以是他的身份证号码,或其名字的汉字 的某一种编码值),他必须让张小姐确信该信息是真实的,是由李先生本人所发的。为此,他 使用自己的秘密密钥(n,d)计算
s=md mod n建立了一个"数字签名",通过公开的通讯途径发给张小姐。张小姐则使李 先生的公开密钥(n,e)对收到的s值进行计算
s[RUe] mod n=(md)e mod n=m
这样,她经过验证,知道信息s确实代表了李先生的身份,只有他本人才能发出这一信息 ,因为只有他自己知道秘密密钥(n,d),其他任何人即使知道李先生的公开密钥(n,e),也无 法猜出或算出他的秘密密钥来冒充他的"签名"。
RSA的安全性
RSA公开密钥密码体制的安全性取决于从公开密钥(n,e)计算出秘密密钥(n,d)的困难 程度,而后者则等同于从n找出它的两个质因数p和q。因此,寻求有效的因数分解的算法就 是寻求一把锐利的"矛",来击穿RSA公开密钥密码系统这个"盾"。数学家和密码学家们一直 在刻苦努力寻求更锐利的"矛"和更坚固的"盾",而且不仅限于RSA一种方案。在此,我们只 考虑RSA的情况。
最简单的考虑是加厚我们的"盾",即n取更大的值,RSA实验室认为,512比特的n已不够 安全,在1997年或1998年后应停止使用。他们建议,现在的个人应用需要用768比特的n,公 司要用1024比特的n,极其重要的场合应该用2048比特的n。RSA实验室还认为,768比特的n 可望到2004年仍保持安全。
计算机硬件的迅速发展势头是不可阻挡的,这一因素对RSA的安全性是很有利的,因为 硬件的发展给"盾"带来的好处要多于"矛"。硬件计算能力的增强使我们可以给n加大几十 个比特,但不致放慢加密解密的计算,但同样水平的硬件计算能力的增强给予因数分解计算 的帮助却不那么大。
计算机软件和算法的发展对RSA的安全性的影响,情况比较复杂。至今,不管用怎样的 硬件和软件,大数的因数分解确实是极端困难的任务。
1977年,《科学的美国人》杂志悬赏征求分解一个129位十进数(426比特),直至1994年 3月,才由Atkins等人在因特网上动用了1600台计算机,前后花了八个月的时间,才找出了答 案。然而,这种"困难性"在理论上至今未能严格证明,但又无法否定。对于许多密码研究分 析人员和数学家而言,因数分解问题的"困难性"仍是一种信念,一种有一定根据的合理的信 念。
总之,随着硬件资源的迅速发展和因数分解算法的不断改进,为保证RSA公开密钥密码 体制的安全性,最实际的做法是不断增加模n的位数。
RSA的实用考虑
不对称密钥密码体制(即公开密钥密码体制)与对称密钥密码体制相比较,确实有其不 可取代的优点,但它的运算量远大于后者,超过几百倍、几千倍甚至上万倍,复杂得多。
在网络上全都用公开密钥密码体制来传送机密信息,是没有必要的,也是不现实的。在 计算机系统中使用对称密钥密码体制已有多年,既有比较简便可靠的,久经考验的方法,如 以DES(数据加密标准)为代表的分块加密算法(及其扩充DESX和Triple DES);也有一些新的 方法发表,如由RSA公司的Rivest研制的专有算法RC2、RC4、RC5等,其中RC2和RC5是分块加 密算法,RC4是数据流加密算法。
在传送机密信息的网络用户双方,如果使用某个对称密钥密码体制(例如DES),同时使 用RSA不对称密钥密码体制来传送DES的密钥,就可以综合发挥两种密码体制的优点,即DES 高速简便性和RSA密钥管理的方便和安全性。
关于RSA数字签名,前面的示意性介绍是不实用的,因为李先生的"签名"未与任何应签 署的报文(message)相联系,留下了篡改、冒充或抵赖的可能性。为了把那些千差万别报文 与数字签名不可分割地结合在一起,要设法从报文中提取一种确定格式的、符号性的摘要 ,称为"报文摘要"(message digest),更形象的说法是一种"数字指纹"(digital fingerpr int),然后对它"签名"并发送。
如果李先生要发送一个需签署的报文给张小姐,通讯安全软件会调用某种报文摘要算 法处理报文内容,得出一个数字指纹,然后用李先生自己的秘密密钥将它加密,这才是真正 的数字签名,将它同报文一并发送给张小姐。
张小姐收到报文和数字签名后,她用李先生的公开密钥将数字签名解密,恢复出数字指 纹。接着用李先生所用的一样的报文摘要算法处理报文内容,将算出的数字指文与收到的 经解密的数字指纹比较,如果两者完全相同,则李先生的数字签名被张小姐验证成功,她可 以相信报文是真实的,确实发自李先生。否则,报文可能来自别处,或者被篡改过,她有理由 拒绝该报文。
用上述方法,别人也不难读取报文并验证数字签名,这在实用中是不妥当的。为使报文 本身的内容不泄露给外人,李先生只要再添一个操作步骤:用张小姐的公开密钥先将待发的 报文加密,当然,张小姐在验证数字签名无误后,要用她自己的秘密密钥解密,才能得到原始 的机密信息。
即使这样做,别人还是可以插手验证数字签名,在实用中或许也要求改进,排除掉这种 可能性。其实,网上安全通讯实用中还有着多种不同的要求,研究人员已经提出了多种不同 的数字签名方案,以满足各种需求。其他不同的加密方案和数字签名方案,乃至不同的公开 密钥密码体制的研究,也正在紧锣密鼓地进行之中。
数字指纹
在数字签名中有重要作用的"报文摘要"算法,即生成报文"数字指纹"的方法,近年来倍 受关注,构成了现代密码学的一个重要侧面。
其实,报文摘要算法就是一类特殊的散列函数(hash函数,在计算机数据信息的检索过 程中有广泛应用),这些特殊要求是:
·接受的输入报文数据没有长度限制;
·对任何输入报文数据生成固定长度的摘要("数字指纹")输出;
·由报文能方便地算出摘要;
·难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要;
·难以生成两个不同的报文具有相同的摘要。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
