当前位置:  开发笔记 > 人工智能 > 正文

pki与对称加密的性能差异是什么?

如何解决《pki与对称加密的性能差异是什么?》经验,为你挑选了3个好方法。

我们希望对我们的项目做一些严格的安全性要求,我们需要进行大量高性能的加密.

我认为我知道PKI比对称加密慢得多且复杂得多,但我找不到数字来支持我的感受.



1> Thilo..:

是的,纯粹的非对称加密比对称密码(如DES或AES)慢得多,这就是真正的应用程序使用混合密码术的原因:昂贵的公钥操作仅用于加密(和交换)对称算法的加密密钥.将用于加密真实的消息.

公钥加密解决的问题是没有共享密钥.使用对称加密,您必须信任所有相关方以保持密钥的秘密.这个问题应该是一个比性能更大的问题(可以通过混合方法减轻)



2> 小智..:

在运行OS X 10.5.5的Macbook和OpenSSL的库存版本中,"openssl speed"以每秒46,000个1024位块为AES-128-CBC时钟.同一个盒子以每秒169个签名计时1024位RSA.AES-128-CBC是"教科书"块加密算法,而RSA 1024是"教科书"公钥算法.这是苹果到橙子,但答案是:RSA要慢得多.

但是,这不是您不应该使用公钥加密的原因.这是真正的原因:

    公钥加密操作不适用于原始数据加密.像Diffie-Hellman和RSA这样的算法被设计为一种交换块加密算法的密钥的方法.因此,例如,您使用安全随机数生成器为AES生成128位随机密钥,并使用RSA加密这16个字节.

    像RSA这样的算法比AES更"用户友好".使用随机密钥,您向AES提供的明文块将随机出现给没有密钥的任何人.实际情况并非RSA的情况,这比AES更多 - 只是一个数学方程式.因此,除了正确存储和管理密钥之外,您还必须非常小心格式化RSA纯文本块的方式,否则最终会遇到漏洞.

    没有密钥管理基础结构,公钥不起作用.如果您没有验证公钥的方案,攻击者可以用自己的密钥对替换真正的密钥对来启动"中间人"攻击.这就是SSL强迫您通过证书的严格要求的原因.如AES块加密算法存在这个问题了,但是没有一个PKI,AES不比RSA安全性较差.

    公钥加密操作容易受到比AES更多的实现漏洞的影响.例如,RSA交易的双方必须就参数达成一致,这些参数是馈送到RSA方程的数字.攻击者可以替代恶意值来静默禁用加密.对于Diffie Hellman来说也是如此,对于Elliptic Curve来说更是如此.另一个例子是两年前在多个高端SSL实现中发生的RSA Signature Forgery漏洞.

    使用公钥证明你正在做一些"与众不同"的事情.与众不同的是您从未想过的加密技术; 除了算法之外,加密设计在被认为是安全的之前已经过多年的审核和测试.

对于希望在其应用程序中使用加密技术的客户,我们提出两项建议:

对于"静止数据",请使用PGP.真!PGP已经被殴打了十多年,被认为是安全的,不会出现愚蠢的实施错误.它有开源和商业变体.

对于"飞行中的数据",请使用TLS/SSL.世界上没有任何安全协议比TLS更好理解和更好的测试; 各地的金融机构都认为它是移动最敏感数据的安全方法.

这是一篇不错的文章 [matasano.com]我和几年前写过的专业密码学家Nate Lawson.它更详细地介绍了这些要点.


看来您的写作链接不再有效.

3> Cristian Ciu..:

使用OpenSSL speed命令对算法进行基准测试并亲自查看.

[dave@hal9000 ~]$ openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 26126940 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 7160075 aes-128 cbc's in 3.00s
...
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128 cbc     139343.68k   152748.27k   155215.70k   155745.61k   157196.29k


[dave@hal9000 ~]$ openssl speed rsa2048
Doing 2048 bit private rsa's for 10s: 9267 2048 bit private RSA's in 9.99s
Doing 2048 bit public rsa's for 10s: 299665 2048 bit public RSA's in 9.99s
...
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.001078s 0.000033s    927.6  29996.5

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有