首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES速度与置换LCG的比较

AES速度与置换LCG的比较
EN

Cryptography用户
提问于 2021-04-26 01:32:37
回答 1查看 187关注 0票数 0

AES的速度是多少?如何准确估计?在此:

https://security.stackexchange.com/questions/92074/aes-algorithm-encryption-time

他们写的可能是700 MB/s,但这里:

https://www.cse.wustl.edu/~jain/cse567-06/ftp/encryption_perf/index.html

Abdel-Karima Al Tamima估计大约是50 MB/s,为什么会有这样的差异?是因为某种硬件加速吗?我试着把它和PCG发生器比较一下:

https://www.pcg-random.org/paper.html

比较一下产生伪随机数的速度更快的是什么(我知道PCG不是密码安全的,也不是密码)。例如,128位PCG可以进行大约65 GB/s (它可能是在Python的numpy中实现的)。它可与50 MB/s或700 MB/s相比吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2021-04-28 01:21:08

在硬件中实现AES通常是非常快的。在我的笔记本电脑上,核心i7 8665U,AES-128的工作速度为6758 MB/s,在软件中实现要慢得多,在固定时间的实现中用软件实现要慢得多。在我的系统上,一个非固定时间的天真的软件实现以367 MB/s的速度运行。

你说过你在找智能手机处理器。一些较新的处理器将提供AES加速,但并非所有处理器都可用。如果您正在寻找一种能够在几乎所有系统上运行良好、时间恒定、密码安全的算法,我建议使用ChaCha20,或者,如果您确实需要惊人的性能,则推荐ChaCha12。在我的系统上,ChaCha20以3513 MB/s的速度运行,在没有硬件加速的情况下,它的性能明显优于AES。ChaCha12的性能几乎和许多非加密PRNG一样好或更好。对于PRNG,无论是加密的还是非加密的,它都是我的选择,因为它快速、安全,并且没有弱种子(与许多非加密PRNG不同)。它也是Rust rand系列板条箱的默认PRNG,并且在Linux内核中使用ChaCha20生成随机数。

请注意,PRNG的任何性能比较还必须考虑不仅生成值,而且要将它们放到可以使用它们的位置。例如,如果您只使用向量寄存器对相同的数据进行加密,那么AES-NI指令的性能可能会比我前面列出的还要好。但是,当您必须在内存中加载和存储数据时,性能会下降,因为这样做成本更高。我怀疑PCG文件并没有以实际的方式考虑到这一点。

当然,我的系统上的性能度量并不反映其他系统,如果您需要了解特定系统的工作方式,您应该自己对其进行基准测试。您可能还想看看超级警察,它在各种类型的硬件上对许多加密原语进行了基准测试,以回答您的问题。您可能会发现硬件可以与现代和较旧的处理器相媲美,包括各种ARM和ARM64硬件。

关于性能的最后一个注意事项:对于一个作业,您并不总是需要使用最快的算法。在大多数应用程序中,随机数的生成很可能不是瓶颈,使用像ChaCha这样的算法(比如缺乏弱状态和更好的质量)的好处可能会超过稍微慢一点的事实。您的基准需要集中在找出瓶颈的地方,并尽可能地改进这些地方。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/89610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档