读书频道 > 安全 > 深入浅出密码学——常用加密技术原理与应用
9.5 软件实现与硬件实现
2012-09-26 16:56:32     我来说两句 
收藏    我要投稿   
本书拥有的诸多特征使得它成为密码学从业者和学生独一无二的资源—本书介绍了绝大多数实际应用中使用的加密算法,并重点突出了它们的实用性。对于每种加密模式,我们都给出了最新的安全评估和推荐使用的密钥长度...  立即去当当网订购

在使用ECC 前,我们需要确定一个拥有良好密码学属性的曲线。实际中,对该曲线的一个核心要求就是,曲线上的点形成的循环群( 或子群) 的阶必须为素数。此外,导致密码学弱点的一些数学属性也必须排除。由于确保所有这些属性是一项非常重要而计算繁杂的任务,所以实际中通常使用标准曲线。

在实现椭圆曲线时,将 ECC 方案看作一个4 层的结构是非常有帮助的。最底层执行模运算,即素数域 GF(p ) 内的算术运算。所有四个域操作(即加减乘除)都需要。接下来一层实现了两个群操作:点加倍和点加法;这两个操作都使用了底层提供的算术运算。第三层使用其上一层提供的群操作实现了标量乘法。最上面一层则实现了实际的协议,即 ECDH 或ECDSA。需要注意的是,椭圆曲线密码体制中使用了两个完全不同的有限代数结构,即定义曲线的有限域GF(p ) 和曲线上的点形成的循环群。

在软件实现中,一个高度优化的256 位ECC 实现在64位的频率为3-GHz 的CPU 上运行时,每个点乘法需要大概2ms 。在小型微处理器或算法不够优化的实现中,吞吐率会比较慢,通常在10ms 以内。对于高性能的应用而言,比如每秒需要处理大量椭圆曲线签名的Internet 服务器,使用硬件实现是非常必要的。最快的硬件实现可以在40μs内完成一个点乘法的计算,而最常见的速度通常是几百μs 。

从性能光谱的另一面来讲,对类似RFID标签等轻量级应用而言,ECC 是最具吸引力的公钥算法。因为高度紧凑型的ECC 引擎只需要10 000门左右的体积,却可以达到每毫秒处理几十条指令的速度。尽管 ECC 引擎比诸如3DES 对称密码实现的体积更大,但却比RSA 实现所需要的体积要小很多。

ECC 的计算复杂度是所使用素数的位长度的立方,这主要是因为作为底层主要操作的模乘法的复杂度是位长度的平方,而标量乘法( 即使用Double-and-Add 算法) 又贡献了另一个线性维度,所以最后得到的计算复杂度也是立方级别的。这意味着将ECC 实现中的位长度加倍将导致性能大概下降23=8倍。RSA 和DL系统实现的运行时间都是立方级别。ECC 比另外两种主流公钥家族优胜的地方在于:在增加安全级别时,ECC 参数长度的增加会慢很多。例如,若要使攻击者破解一个给定ECC 系统的付出加倍,只需要将参数的长度增加2 位;而在 RSA 或DL方案中,则需要将参数的长度增加20~30位。这主要是因为,已知的针对 ECC 密码体制的攻击只有通用攻击,而对RSA 和DL方案的已知攻击却有更加强大的算法。  

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:9.4 安全性
下一篇:9.6 讨论及扩展阅读
相关文章
图文推荐
排行
热门
文章
下载
读书

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