电子商务是建立在一个开放式的Internet上,维护商业机密是电子商务获得全面推广应用的重要保障。保证电子商务各方信息的完整性是电子商务应用的基础。数字签名技术可以实现数据的完整性、身份认证性、不可抵赖性。贸易双方的如何确定要进行交易的贸易方正是进行交易所期望的贸易方这一问题也可通过数字签名来实现。而数字签名技术本身的安全性则由密码技术来保证。
公钥密码体制的思想是在1976年由Diffie和Hellman提出。公钥密码体制的想法是:可以找到一种密码体制,使由给定的ek来求dk是计算不可行的。如果可以的话,加密规则ek是一个公钥,可以在一个目录中发布(这就是公钥体制名称的由来)。
1977年由Rivest、Shamir和Adleman发明的著名的RSA密码体制就是公钥体制的一种典型代表。其优点是甲可以利用公钥加密规则ek发出一条加密的消息给乙,而不需要预先共享密钥的通信。乙将是唯一能够利用dk(私钥)来对密文解密的人。乙可以让任何人发布他的公钥,任何人用公钥将数据加密后在网络中传输,即使在传输过程中被别人截获同时这人也拥有乙的公钥,也无法利用这些资料来破译加密数据:而只有乙通过私钥才能顺利解密密文。这样便能实现数据的安全传输。
1.RSA算法简介
RSA是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。
1.1 RSA算法的表述:
(1) 寻找两个大素数:p和q。为了提高安全性,两个素数的长度要求一样。并计算出其乘积N(N=p*q)。
(2) 随后计算出N 的欧拉函数φ(N)=(p-1)(q-1),φ(N)定义为不超过N并与N互素的数的个数。
(3) 从[0,φ(N)-1]中随机选取加密密钥e,使得e和φ(N)互为素数。
(4) 计算出满足公式e×d = 1modφ(N)中的d,d为解密密钥。
(5) 若用整数X表示明文,整数Y表示密文(X,Y均小于N),则加解密运算为:
加密:Y=Xe mod N
解密:X=Yd mod N
其中的d和N也互素、e和N是公开密钥、d和N是秘密密钥。两个素数p和q应舍弃,但不能泄密。 1.2 RSA实现的安全性和效率
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解。下表给出了在计算机每一微秒做一次操作的假定下分解不同大小的N所需要的时间:
N的十进位数 时间
50 3.9小时
5 104天
100 4年
200 3.8×1015年
RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n至少也要 600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法(如DES)慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。
1
2
3
下一页>>