议从加密到数字签名
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
议从加密到数字签名
2004年3月24日,《中华人民共和国电子签名法(草案)》(下简称草案)经国务院原则通过,即将提请人大审议,这标志着我国首部信息化法律走出了立法第一步。由于该草案明确了合同双方和认证机构在电子签名活动中的权利和义务,其技术细节受到了各方人士广泛关注。笔者一直关注数字签名的发展,在此结合自已在学习加密、证书技术中的心得体会,试图就电子签名问题梳理出一个脉络,向广大网管朋友作一个浅显的介绍。
基本概念
“电子签名”是广义的提法,是以保障基于网络交易平台下交易各方的合法权益为目的,满足和替代传统签名功能的各种电子技术手段,并不是手工签字或印章的图像化,其中“交易”是指个人信息交换、电子商务和电子政务等基于网络平台的活动;“交易各方”指从事这些活动的各方当事人;“网络”一般是针对互联网而言。
“数字签名”是通过密码技术实现电子交易安全的形象说法,是电子签名的主要实现形式。它力图解决互联网交易面临的几个根本问题:数据保密;数据不被篡改;交易方能互相验证身份;交易发起方对自己的数据不能否认。
在密码学中,密码的本质是某种算法,由密码算法算出一个密钥(Key),然后使用该密钥对交易双方传送的数据加密。该数据通称“报文”,加密前叫“明文报文”,即明文;加密后叫“密文报文”,即密文,密文没有密钥是不可读的。所有加密算法本身都是公开的,属于纯数学的范畴,本文不作过多讨论;密码学只关注密钥管理的问题,因为加密通信的安全性只与密钥有关,这是本文关注的重点。
加密通信方式主要有对称加密和非对称加密两种。
在开始讨论之前,我们假定:在不安全的网络中(比如互联网),Alice是通信发起人;Bob是通信接收人;Alice与Bob相互信任;而Eve监听通信并伺机破坏:这是John Wiley 和Sons在经典教程《Applied Cryptography》(《应用密码学》)中提出的部分人物,这些人物和环境属性现已成为描述密码学技术的标准。
对称加密——解决数据本身加密问题
顾名思义,对称加密就是“一把锁对应一把钥匙”,加锁开锁都是它。有传统和现代的区别,以下用古老的替换加密法为例作一简单说明。
明文:HiIamAlice 密文:ZEECGCFEIP
密钥(密码):
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C H I M P A N Z E B
D F G J K L O Q R S T X Y W U V
密钥第一排是常规26个字母,而第二排则是约定的字母顺序,用来替换对应的字母。除了字母,还可用其它约定符号起到同样的作用,都是异曲同工。
现代的对称加密方式多用繁复的数学算法进行,当前优秀的对称加密算法有DES、3DES、DEA、IDEA等,它们的运算速度快,加密性能优异。我们以Alice和Bob的通信为例演示通信过程大致如下:
1、由Alice通过某种对称加密算法算出一把密钥并传送给Bob;
2、Alice用该密钥加密明文,得到密文;
3、Alice将该密文传送给Bob;
4、Bob用该密钥解密密文,得到明文。
Eve如果只在第3步截获密文,由于不知道密钥,将一无所获。但当Eve监听到第1步,他和Bob得到的信息就一样多,到第4步,Eve的工作就是解密。并且Eve还能在第3步开始之前中断Alice与Bob的通信线路,然后冒充Bob接受Alice的信息,解密、修改后再冒充Alice加密发送给Bob,Alice和Bob始终蒙在鼓中。如果Bob受到利益损害,则Alice 可以指责说这是Bob自已泄露密钥导致。
可见对称加密的问题在于:1、必须事先传递密钥,造成密钥传递过程中(叫带内传输)极易被窃。常规手段无法解决这种高风险。2、密钥管理困难:假设有n方两两通信,如采用一把密钥,则密钥一旦被盗,整个加密系统崩溃;如采用不同密钥,则密钥数等于n*(n-1)/2,意味着100个人两两通信,则每人要保管4950把密钥!密钥管理成为不可能。3、由于密钥共享,无法实现不可否认。
虽然对称加密对数据本身的加密能力足够强大,而且已经在政府机关和商业机构内部得到了广泛应用,但不解决上述问题,面向互联网的电子商务和电子政务就无从谈起。
公匙加密——解决密钥带内传输问题
1975年下半年,斯坦福大学的教授狄菲和赫尔曼向全美计算机会议提交了名为《多用户加密技术》的论文,总结了正在探索中的公匙加密技术,但没有提出新的解决方案。
1976年5月,两人在全美计算机会议上又公布了离散指数密码算法,并在IEEE发表了著名的《密码学研究新方向》论文,提出了基于离散指数加密算法的新方案:交易双方仍然需要协商密钥,但离散指数算法的妙处在于:双方可以公开提交某些用于运算的数据,而密钥却在各自计算机上产生,并不在网上传递。EVE如果只监听而不参加运算,他是不可能从窃得的信息推导出密钥的。从而保证了密钥的安全。这是公匙加密的雏形。遗憾的是,这一类似于打电话状态的加密方法,要求交易方必须同时在线,且同样以相互信任为前提,所以仍然无法满足现代电子交易的需要。
1978年,麻省理工学院的三名教授瑞斯特(Rivest)、沙米尔(Shamir)和艾德曼(Adleman)人从这篇论文得到启发,开发了非对称RSA公共密钥算法。由于这一算法既解决了密钥的带内传输问题,又不必交易双方同时在线,也不要求交易方必须信任,终于为现代电子商务的蓬勃发展铺平了道路。
非对称加密是对称加密“逆向思维”的结果,即“一把锁对应两把钥匙”,任意一把加锁,但必须由另一把开锁。
公匙加密体制的通信过程大致如下:
1、Bob公开发布他的公匙;
2、Alice用Bob的公匙加密明文得到密文并传送给Bob;
3、Bob用它从不公开的私匙对该密文解密。
尽管这次Eve可以合法得到Bob的公匙,却无法对第2步截获的密文加以解密,因为他没有Bob的私匙。
Bob的公匙和私匙从何而来?为什么公匙加密的文件只有私匙才能解密?要搞清这两个问题,必须回过头来认识公匙加密的数学基础:大数不可能质因数分解假说。
只能被1和本身整除的数叫质数,例如13,质数是无穷多的。得到两个巨大质数的乘积是简单的事,但想从该乘积反推出这两个巨大质数却没有任何有效的办法,这种不可逆的单向数学关系,是国际数学界公认的质因数分解难题。
R、S、A三人巧妙利用这一假说,设计出RSA公匙加密算法的基本原理:1、让计算机随机生成两个大质数p和q,得出乘积n;2、利用p和q有条件的生成加密密钥e;3、通过一系列计算,得到与n互为质数的解密密钥d,置于操作系统才知道的地方;4、操作系统将n和e共同作为公匙对外发布,将私匙d秘密保存,把初始质数p和q秘密丢弃。
国际数学和密码学界已证明,企图利用公匙和密文推断出明文——或者企图利用公匙推断出私匙的难度等同于分解两个巨大质数的积。这就是Eve不可能对Alice的密文解密以及公匙可以在网上公布的原因。
至于“巨大质数”要多大才能保证安全的问题不用担心:利用当前可预测的计算能力,在十进制下,分解两个250位质数的积要用数十万年的时间;并且质数用尽或两台计算机偶然使用相同质数的概率小到可以被忽略。
公匙加密最大和惟一的问题是运算速度缓慢,理论上,对称加密算法的速度要比它快上了数百倍。
形象的说,公匙就是写有Bob名字、绝对坚固但特别笨重的邮箱,它可以放在任何地方,任何人都知道那是Bob的,所有人都能从邮箱的缝隙中塞进纸条。但只有Bob才有惟一的开锁匙匙(私匙)。所以在上面的通信过程中,Eve即使得到装有Alice纸条的Bob的笨重邮箱,也没有任何意义。
至此,密钥的“带内传输”问题解决了,也就解决了四个根本问题中的“保密”这一问题,但“不可否认”、“身份确认” 和“不被篡改”的问题又接踵而至:既然谁都能塞进纸条,Alice 不承认有他落款的纸条是他写的怎么办?
单向Hash函数——实现身份验证的幕后英雄