Fork me on GitHub

谈谈ECC和RSA

RSA

  RSA加密算法是现在广泛使用的现代加密的第一代加密算法,它是基于大素数分解难的数学问题来保证加密算法的安全性。设计一个加密算法需要满足一个条件,就是能够找到一个满足trapdoor的函数,也就是在计算上保证在一个方向是计算容易而在另一个方向上计算困难的特性,RSA刚好满足这一特性。随着硬件的发展,为了继续保证RSA的安全性,RSA现在的密钥长度要求越来越大了,密钥长度的变大虽然能够保证安全性,但是对于之前容易的乘法运算因为数据的变大而变的计算不容易和需要消耗更多的能量,而现在发展的潮流是移动端,移动端本身是一个低能耗的设备因此使用越来越大RSA密钥来保证安全性就可能不会是一个好的办法了。

ECC

  Elliptic Curve Cryptography是ECC的全称表示基于椭圆曲线的加密算法,既然是加密算法肯定需要有一个trapdoor函数,ECC是基于椭圆曲线的,可以由椭圆曲线的特性得到,一个点A做dot操作n次后得到一个点Z,我们不能由点A和点Z的已知来得到n次操作经过的所有点,这就满足了在一个方向上dot操作容易而找到参与操作的点是难的特性。ECC的私钥是priv,在g做priv次的乘法运算后得到公钥pub。我们知道了pub而不能容易的知道私钥priv这是基于椭圆曲线上计算离散对数是困难的数学问题。ECC的key=256位的密钥就能跟RSA的key=2048位密钥保证相同的安全性,ECC相对于RSA既能保证安全性又能节约计算资源。

现在广泛使用的还是RSA而ECC没有广泛的发展起来原因有

  ECC找到合适的椭圆曲线是一个问题,NIST(美国国家安全技术和标准)提供的Dual Elliptic Curve Deterministic Random Bit Generator (Dual_EC_DRBG)是一个使用椭圆曲线生成随机数发生器,在报道中称这个工具存在后门,这导致了人们对椭圆曲线的猜疑;ECDSA(基于椭圆曲线的数字签名)需要一个好的随机数来源,在安卓上随机数生成器具有缺陷这会导致黑客知道私钥priv。还有与ECC相关的专利纠纷问题阻碍了ECC的发展。有超过130项专利涵盖了BlackBerry拥有的椭圆曲线的特定用途。

参考文献


最新评论

    还没有人评论...

当当

友情链接

Powered by Python. Copyright © 2017.

鄂ICP备17010875号. All rights reserved.