Salsa20

包含两种由Daniel J. Bernstein开发的流加密算法的维基百科条目 / 維基百科,自由的 百科全書

Salsa20是一种流加密算法,由丹尼尔·J·伯恩斯坦提交到eSTREAM英语。它建立在基于add-rotate-xor(ARX)操作的伪随机函数之上——32位模加、异或(XOR)和循环移位操作。Salsa20映射一个256密钥、一个64位nonce以及一个64位流位置到一个512位的输出(也存在一个128位密钥的版本)。这使Salsa20具有了不同寻常的优势,用户可以在恒定时间内寻求输出流中的任何位置。它可以在现代x86处理器中提供约每4–14次循环周期一字节的速度[4],并具有合理的硬件性能。它没有注册专利,并且Bernstein还撰写了几篇对常见架构优化的公有领域实现。[5]

Quick facts: 概述, 设计者, 首次发布, 继承算法, 相关算法...
Salsa20
Salsa的quarter-round函数,每四组形成一轮。
概述
设计者丹尼尔·J·伯恩斯坦
首次发布2007年(2005年设计)[1]
继承算法ChaCha
相关算法Rumba20
认证eSTREAM英语密码组合
密码细节
密钥长度128或256位
状态长度512位
结构ARX
重复回数20
速度3.91 cpb英语于Intel Core 2 Duo[2]
最佳公开破解
2008年的密码分析中,在2251次操作中利用231对密钥流,尝试恢复256位的密钥,破解了20轮中的8轮 。[3]
Close

一个相关的密码算法ChaCha,具有类似的特点,但有不同的循环移位函数,已在2008年由伯恩斯坦发布。