非对称加密技术
1、加密技术概述
加密技术是电子商务采取的主要安全技术手段。采用加密技术可以满足信息保密性的安全需求,避免敏感信息泄露的威胁。通常信息加密的途径是通过密码技术实现的,密码技术是保护信息的保密性、完整性、可用性的有力手段,它可以在一种潜在不安全的环境中保证通信及存储数据的安全,密码技术还可以有效地用于报文认证、数字签名等,以防止种种电子欺骗。可以说,加密技术是认证技术及其他许多安全技术的基础,也是信息安全的核心技术。
密码技术包括密码设计、密码分析、密钥管理、验证技术等内容。密码设计的基本思想是伪装信息,使局外人不能理解信息的真正含义,而局内人却能够理解伪装信息的本来含义。其中,密码设计的中心内容就是数据加密和解密的方法。所谓“加密”,简单地说,就是使用数学的方法将原始信息(?模┲匦伦橹氡浠怀芍挥惺谌ㄓ没Р拍芙舛恋拿苈胄问剑芪模敖饷堋本褪墙芪闹匦禄指闯擅*摹C苈氲某鱿挚梢宰匪莸皆豆攀贝苈胙б埠推渌Э埔谎孀派缁岬姆⒄苟⒄梗群缶耸止そ锥巍⒒到锥巍⒌缱咏锥危衷谠蚪肓思扑慊屯缡贝D壳埃苈胙б逊⒄钩梢幻畔低车募际蹩蒲В羌А⒓扑慊蒲А⒌缱佑胪ㄐ诺戎疃嘌Э朴谝簧淼慕徊嫜Э啤8莶煌谋曜迹苈胩逯频姆掷喾椒ê芏啵渲谐S玫闹饕卸猿泼苈胩逯疲ㄒ步凶鞯ピ棵苈胩逯啤⒚孛苊茉棵苈胩逯啤⒍猿泼茉棵苈胩逯疲⒎嵌猿泼苈胩逯疲ㄒ步凶魉棵苈胩逯啤⒐茉棵苈胩逯啤⒎嵌猿泼茉棵苈胩逯疲┑取?/p>
在对称密码体制中,其中加密密钥与解密密钥是相同的。早期使用的加密算法大多是对称密码体制,所以对称密码体制通常也称作传统密码体制,或常规密码体制。在这种密码体制下,有加密(或解密)的能力就意味着必然也有解密(或加密)的能力。对称密码体制的优点是具有很高的保密强度,可以达到经受破译力量的分析和攻击,但它的密钥必须通过安全可靠的途径传递。由于密钥管理成为影响系统安全的关键性因素,使它难以满足系统的开放性要求。
为了解决对称密码体制的密钥分配问题,以及满足对数字签名的需求,20世纪70年代产生了非对称密码体制。在这种密码体制下,人们把加密过程和解密过程设计成不同的途径,当算法公开时,在计算上不可能由加密密钥求得解密密钥,因而加密密钥可以公开,而只需秘密保存解密密钥即可。在非对称密码体制中,*具代表性的算法当数RSA, 它从1978年公布至今,一直是加密算法中的主要算法之一。尽管该算法吸引了无数研究者,但在数学上还未找到*佳破译方法。
非对称加密技术(公开密钥算法)是在1976年由当时在美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人首先发明的。目前*流行的非对称加密技术RSA算法是由R.Rivest、A.Shamir和L.Adleman于1977年提出的。RSA的 取名就是来自于这三位发明者的姓的字母,它既能用于加密也能用于数字签名。
2、非对称加密技术RSA的算法原理
RSA的演算方法是:
1)用户选择2个够大的保密质数q、p(一般为100位以上十进制数)
2)令n=pq,n是公开的,从n分解出q、p是极其困难的。
n的欧拉函数:Φ(n)=(p-1)(q-1)
Φ(n)小于等于n,并与n互质
3)选择一个相对大的整数e?用苤甘筫与Φ(n)互质,
4)解同等方程:
ed=1modΦ(n)
求出解密指数d
5)设M、C分别为要加密的?暮捅患用艿拿芪?M、C小于n)
则:加密运算为:C=Memod n
解密运算为:M=Cdmod n
6)每个用户都有一组密钥(e、d、n)
(e,n) 叫公开密钥(Public Key,PK),可以公开在手册上,e为加密指数,公开密钥可以公开给任何需要知道的人。
(d,n)为叫私人密钥(Private Key, SK ),由个人所有、保密。
将p、q销毁
7)要求?腗<n
现在,用一个简单的例子来说明RSA公开密钥密码系统的工作原理。选两个质数: p=3 、q=5,计算出n=pq=15和Φ(n)=(3-1)(5-1)=8;选e=11(e必须与Φ(n)互质),可以通过ed=1modΦ(n)=1mod(8),计算出d=3,其实ed=11*3=33除以8确实余1。将e、n公布,d保密,p、q消毁。
如果田女士要发送机密信息M=13给子君小姐,她已经查到子君小姐的公开密钥是(n,e)=(15,11),于是田女士算出加密值C = M e mod N = 1311 mod 15 = 1,792,160,394,037 mod 15 = 7 并发给子君小姐。子君小姐收到密文C =7后,利用只有她知道的私人密钥(n,d)=(15,3)计算M= Cd mod N = 73 mod 15 = 343 mod 15 = 13 ,
3、非对称加密技术RSA的安全性
数学上的单向陷门函数的特点是一个方向求值很容易,但其逆向计算却很困难。许多形式为Y=f(x)的函数,对于给定的自变量x值,很容易计算出函数Y的值;而由给定的Y值,在很多情况下依照函数关系f(x)计算x值十分困难。例如,两个大素数p和q相乘得到乘积n比较容易计算,但从它们的乘积n分解为两个大素数p和q则十分困难。如果n为足够大,当前的算法不可能在有效的时间内实现。
RSA公开密钥密码体制的安全性取决于从公开密钥(n,e)计算出秘密密钥(n,d)的困难程度,而这等同于从n找出它的两个质因数p和q。目前认为寻求有效的因数分解的算法就是破解RSA公开密钥密码系统的*隹方法。由于n的长度是控制非对称加密技术RSA算法的安全可靠性的重要因素,因此我们可以通过增加n的长度来保证其安全性。
1977年,《科学的美国人》杂志悬赏征求分解一个129位十进数(426比特),直至1994年 3月,才由Atkins等人在因特网上动用了1600台计算机,前后花了八个月的时间,才找出了答案。现在,在技术上还无法预测攻破具有2048位密钥的RSA加密算法需要多少时间。美国Lotus公司悬赏1亿美元,奖励能破译其Domino产品中1024位密钥的RSA算法的人。从这个意义上说,目前1024位以上密钥的RSA算法是绝对安全的。
总之,随着硬件资源的迅速发展和因数分解算法的不断改进,为保证RSA公开密钥密码体制的安全性,*实际的做法是不断增加n的位数。
4、非对称加密技术RSA的不足之处
RSA的缺点主要有:1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。2)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高。且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。3)速度较慢,由于进行的都是大数计算,使得非对称加密技术RSA*快的情况也比对称加密技术DES慢上几个数量级,无论是软件还是硬件实现,速度一直是RSA的缺陷,因此,RSA一般来说只用于少量数据加密。
|