当前位置:首页 >技术文章>

9种公开密钥算法

 

超时代软件产品包括:文件夹加密软件共享文件夹加密软件、视频加密软件、U盘防拷贝软件等各类加密软件,服务于广大各人用户和企业用户。

 

公开密钥概念是由迪菲和赫尔曼联合及默克尔独立发明的。他们的贡献在于他们认为密钥可以成对出现——一个加密密钥和一个脱密密钥,而且不能从一个密钥产生出另一个密钥。

在安全、适用的公钥算法中,有的仅适于密钥分配.有的适于加密(及因此而适于密钥分配).有的仅适于数字签名;只有一种算法同时适于加密和数字签名.这就是RSA。


Dime—Hellman算法

Diffie--Hellman是发明的首例公钥算法,算法的安全性来自在有限域内计算离散对数的困难性这·种困难性与在相同域内计算幂的容易性形成鲜明的对比。虽然算法不能用来加密和脱密报文,但可用于密钥产生和交换。A方和B方可用这个算法通过非安全通路产生秘密密钥、他们可以把这个秘密密钥用于DES或他们需要的任何其它算法。

Diffie--Hellman密钥交换算法已取得专利权,PKP(PublicKeyPartners)协会已发给这项专利许可证。


背包算法(KnapsackAlgorithms)

广义公钥加密的首例算法是默克尔和赫尔曼开发出来的。普通背包算法只能用于加密.虽然汉密尔(Hamir)曾使该体制适用于产生数字签名。背包算法的安全性来自背包问题。

背包问题是一个非常简单的问题。已知许多项,每一项都具有不同的重量,是否可把某些这样的项放入一个背包以便背包称出一个已知的重量?

沙米尔和齐佩尔(Zipped)发现了算法的缺陷,正是这些缺陷使他们能够在无专用密钥的情况下脱密报文。由于原Merkle--Hellmall方案被破译,所以提出了许多其它的背包体制:多重迭代背包,Graham--Shamir背包等,它们全部都被破译。

虽然还有一种目前仍然安全的变型背包算法,郎Chor--Rivest背包,但需要的计算量使它远不如这里所讨论的其它算法有用。鉴于所有其它变型算法都属容易之列,信赖它似乎是不谨慎的

原Merkle--Hellman算法已取得专利权,PKP协会已发给该项专利许可证


RSA算法

在默克尔发明背包之后不久,出现了首倒成熟的公钥算法一一种用于加密和数字签名的公钥算法它是多年来提出的所有公钥算法中*容易理解和实现的算法,同时也是*流行的算法。算法于1978年首次推出,并以三位发明者里斯特(Rivest)、沙米尔(Shamir)和埃德尔曼(Adelman)的名字命名,并在以后经受住了不少年头的广泛的密码分析破译。虽然密码分析既未证明也未推翻RSA的安全性,但它却提出了一个算法理论基础方面的置信水平问题。

RSA算法的安全性来自分解大数因子的困难性。公开和专用密钥是一对非常大(1oo~200位数字或甚至更大)素数的函数,算法由素数计算出两个密钥,而且猜想由一个密钥确定另一个密钥相当于分解两个素数乘积的因子。

RSA算法已取得专利权,PKP协会已发给该项专利许可证。


Rabin算法

Rabin方案的安全性来自在有限域内求出平方根的困难性。

虽然这种算法有一条胜过RSA的优点,即它可能如分解因子一样安全,但问题在于它对选择密文攻击完全无安全可言,所以人们还是觉得应坚持用RSA。


Feige—Fiat—shamir算法

菲亚特(AmosFiat)和沙米尔发明的鉴别和数字签名方案在如何证明你自己:识别和签名问题实用解法一文中作了详尽讨论。费吉(Ur[elFeige)、菲亚特和沙米尔修改该算法为零知识身份证明,这可能就是众所周知的零知识身份证明算法。

Fiat--Shamir数字签名方案胜过RsA的主要长处在于典型的签名仅需要1一4的模数乘法运算。因此.它比起RsA来要快得多。

Fiat--Shamir算法已取得专利权。


Guillou--Quisquater算法

Fiat--Shamir为首倒实用零知识身份证明算法,它采用增加迭代和鉴定数量的办法把交换中所需的计算减少到*低限度。对有些实现如智能卡(SmartCard),这个办法是不太理想的。同外界的交换非常费时,而且每次鉴定需要的存贮量都可能损坏智能卡资源。格伊洛(Guillou)和基斯奎特(Quisquater)开发出了更适于这类应用场合的零知识识别算法。


Ong--Schaorr--Shamir算法

昂(Ong)、斯诺尔(Schnorr)和沙米尔以二次多项式为基础,开发出一类采用多项式模n的签名方案。当昂和斯诺尔首次在“通过近似表征二次式的签名”一文中提出该方案时,曾给予100美元奖励成功的密码分析。波拉特(Pollard)证明它是不安全的,但其作者并未受阻他们又提出了基于三次多项式的改进算法.不过改进算法也被波拉特破译。接着作者提出了基于四次多项式的改进算法.改进算法再次被破译。自那以后便没有再提出这种类型的方案。


E1 Gamal算法

E1 Gamal方案的安全性来自计算离散对数的困难性。算法可用于加密和数字签名。El Gamal未取得专利权.虽然PKP协会声称他们的专利包括所有公钥密钥。


Schnorr算法

Schnorr鉴别和签名方案融E1 Gamal和Feige—Fiat—Shamir算法的思想于一体.其安全性来自计算离散对数的困难性。

Schamir算法已取得专利权。