读书频道 > 安全 > Web商务安全设计与开发宝典——涵盖电子商务与移动商务
5.1.3 非对称加密系统
2012-09-13 17:18:16     我来说两句 
收藏    我要投稿   
本书共有9章内容和4个附录,各章依次讲述了重要的背景信息和关于移动商务和移动商务安全问题的详细知识。附录提供了支撑各章节内容的重要的技术和合规主题。本书一开始介绍了电子商务时代及它对消费者购买习惯所...  立即去当当网订购

不像秘密密钥加密系统那样,利用一个发送者和接收者都知道的密钥,公开密钥系统使用两个密钥:一个公钥,一个私钥。公钥是供任何想要加密并发送消息的人使用,而私钥是用来解密消息。因此减少了交换秘密密钥的需求。下面列出了与公钥和私钥有关的几点重要事项:

● 公钥不能解密加了密的消息。
● 理想情况下,公钥导不出私钥。
● 用这两个密钥中的一个加密的消息可以用另一个解密。
● 私钥是保密的。

假设Kp是公钥,Ks是私钥,加密过程描述如下:

C=Kp(P) 和P=Ks(C)

其中C是密文,P是明文。

此外,反过来也对,即:

C=Ks(P) 和P=Kp(C)

图5-4是对非对称密钥加密的描述。

1. 单向函数

公钥加密应用单向函数。单向函数是指在一个方向容易计算而在相反方向却难以计算的函数。因此,就不难理解为什么容易从相应私钥生成公钥,却难以从相应公钥生成私钥了。

对于这样一个单向函数,如果y=f(x),那么给定x的值,很容易计算y的值,但如果给定y,求x,则会非常困难。一个简单的例子就是电话簿。如果知道名字,则很容易找到电话号码,而如果知道号码找名字,就很难。在公钥加密系统中,单向函数要想发挥作用,还应该有一个后门(trap door)。后门是一个秘密机制,能够轻松地计算出单向函数中的反函数。这样,如果您知道后门,在前面例子中,在给定y值的情况下,就能轻松地算出x值来。

2. 公开密钥算法

人们已经开发了大量的公开密钥算法。其中有些算法适用于数字签名、加密或两者都适合。因为公钥加密比私钥加密涉及到更多的计算,所以通常公钥加密比私钥加密慢。因此,人们逐渐使用混合系统,即用公钥加密来安全地分发用于对称密钥加密中的秘密密钥。

已经研制出的一些重要的公钥算法包括Diffie-Hellman密钥交换协议、RSA、El Gamal和椭圆曲线。

1) RSA

RSA名称是它的三个发明者Rivest、Shamir和Addleman的名字的首字母缩写5。这种算法依赖的是对于两个大质数的乘积N进行因式分解的难度。这两个数可能每个都有200位数。因此,从公钥中获取私钥之所以困难是因为它是由较难的单项函数产生的,其难度等同于找N的质因数的难度。

在RSA中,公钥和私钥产生过程如下:

(1) 选择两个长度相等的大质数p和q,计算它俩的乘积p×q=n,n即公共模数。
(2) 随机选择一个公共密钥e,使e和(p-1)(q-1)互质。
(3) 计算e×d =1 mod (p-1)(q-1),其中d是私钥。
(4) 因此,d=e-1 mod [(p-1)(q-1)]。

从这些计算中得出,(d,n)是私钥对,(e,n)是公钥对。于是明文P被加密,生成密文C如下:C=Pe mod n,

解密时恢复成明文P,即P=Cd mod n

一般情况下,明文会被分成两个等长的块,每块的位数都少于n的位数,然后对每块进行上面的加密和解密。RSA可以用来加密、密钥交换和数字签名。

2) Diffie-Hellman密钥交换

Diffie-Hellman 密钥交换是一种主体通过一个不安全的媒介交换密钥而不暴露密钥的方法。W.Diffie博士和M.E.Hellman博士在1976年一篇叫做“New Directions in Cryptography”的开创性论文中披露了这一方法6

该方法使得两个用户通过一个不安全的媒介交换密钥而不需要额外的会话密钥。它有两个系统参数p和g。两个参数都是公开的,所有的系统用户都可以使用。参数p是个质数,参数g叫做原根(generator),是一个比p小的整数,有下列属性:对于每一个介于1和p-1之间的数(包括1和p-1在内),会有一个值k使得gk=n mod p。比如,当给定下列公开参数时:p=质数  g=原根

则等式如下:y=gx mod p

利用这个等式,Bob和Alice两个人可以如下安全地交换一个共享的密钥:

Alice可以用她自己保存的“a”值来计算

ya =ga mod p

同样Bob可以用他自己保存的“b”值来计算

yb=gb mod p

然后,Alice把ya发送给Bob,Bob把yb发送给Alice。Alice因为知道她自己秘密保存的值a,因此她能计算出(yb)a,其结果为

gba mod p

同样,Bob用他自己保存的b值,能够计算出(ya)b,其结果为

gab mod p

因为gba mod p等于gab mod p,所以Bob和Alice已经安全地交换了密钥。

Diffie和Hellman在他们的论文中,主要描述了密钥交换,也提供了进一步开发公钥加密的基础。

3) El Gamal

T.El Gamal博士7推广了Diffie-Hellman的概念,把它应用到加密和数字签名上。El Gamal系统是一个未获专利的公共密钥加密系统,它是基于离散对数问题。

下面例子中说明了如何用El Gamal加密:

给定一个质数p和整数g,Alice用她的私钥a计算出她的公钥为ya=ga mod p。
Bob要发送消息M给Alice:
Bob生成随机数#b<p。
Bob计算yb=gb mod p和ym=M XOR yab=M XOR gab mod p
Bob把yb和ym发送给Alice,Alice计算出yba= gab mod p
因此,M=yba XOR ym= gab mod p XOR M XOR gab mod p

4) 椭圆曲线

椭圆曲线(Elliptic Curve, EC)是另一个公共密钥加密方法。这个方法是由Koblitz 和Miller 独立开发。椭圆曲线通常在有限域(如实数和有理数)上定义,实施模拟离散对数问题。

椭圆曲线公式如下:

y2=x3+ax+b 和一个无穷远点O。

椭圆曲线的空间具有如下属性:

● 加法操作是取模乘法运算的对应物。
● 乘法操作是取模指数运算的对应物。

因此,给定椭圆曲线上的两个点P和R,其中P=KR, 找出K值比较困难,这就是椭圆曲线离散对数问题。

因为计算椭圆曲线离散对数比计算传统的离散对数和分解两个大质数的乘积都困难,所以用椭圆曲线计算出的较小的密钥能够提供较高级别的安全性。比如,一个160比特的椭圆密钥等同于一个1024比特的RSA密钥。这一特点意味着它需要的计算少,内存小。因此,椭圆曲线加密适合应用在诸如智能卡和无线设备的硬件上。椭圆曲线可以用在数字签名、加密和密钥管理上。

3. 公共密钥加密系统算法分类

公共密钥加密利用较难的单向函数。与这类加密相关的计算如下:

● 分解两个大质数的乘积
 RSA
● 找出有限域上的离散对数

 El Gamal
 Diffie-Hellman
 Schnorr的签名算法
 椭圆曲线
 Nybergrueppel的签名算法

4. 非对称和对称密钥长度强度对比

表5-1对比了公共密钥加密系统和私用密钥加密系统的大致等效强度(来源:NIST):

表5-1  对称和非对称密钥强度等效对比

 

非对称密钥大小(RSA) 非对称密钥大小(椭圆曲线) 对称密钥大小
1024 160 80
2048 224 112
3072 256 128
7680 384 192
15380 521 256

 

来源:Draft NIST Special Publication 800-131, “Recommendation for the Transitioning of Cryptographic Algorithms and Key Lengths”, June 2010.

_____________________________________
5 Rivest, R. L., Shamir, A., and Addleman, L. M., “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems,”Communications of the ACM, v. 21, n. 2, Feb 1978, pp. 120-126.
6 Diffie, W. and Hellman, M., “New Directions in Cryptography,”IEEE Transactions on Information Theory, Vol. IT-22, November 1976, pp. 644-654.
7 El Gamal, T., “A Public-Key Crypto System and a Signature Scheme Based on Discrete Logarithms,”Advances in Cryptography: Proceedings of CRYPTO 84, Springer-Verlag, 1985, pp. 10-18. 

————————————————————————————————— 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:5.1.2 对称加密系统
下一篇:5.1.4 数字签名
相关文章
图文推荐
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站