1、运算速度不同
ChaCha20-Poly1305是Google所采用的一种新式加密算法,性能强大,在CPU为精简指令集的ARM平台上尤为显著(ARM v8前效果较明显),在同等配置的手机中表现是AES的4倍,chacha20-ietf-poly1305也是一种新式加密算法,但是比chacha20-poly1305”更快。
2、依赖平台不同
chacha20-poly1305依赖于OpenSSH平台,chacha20-ietf-poly1305依赖于OpenBSD平台。
扩展资料
ChaCha20的初始矩阵
ChaCha20有一个初始矩阵,矩阵的输入为一个256位的密钥、64位随机数、64位计数器值以及4×32位的常数,它们均填充在32位整型数组中作为初始矩阵。排列方式如下。
0x61707865 0x3320646e 0x79622d32 0x6b206574
Key Key Key Key
Key Key Key Key
Counter Counter nonce nonce
这里256位密钥即流密码的初始密钥,常数为通信双方在握手协议中协商的定值,计数器值取一个从0开始每次自增1的寄存器(64位)中的值,随机数为伪随机数生成器产生,每次生成密钥矩阵时产生不同的随机数。
轮函数
在矩阵每次完成置换后,都需要执行一次轮函数QUARTERROUND,该函数输入为4个32位串,即4个数组中的元素,输出同样也为4个32位串,这样执行完轮函数后除了数据以外,矩阵结构未发生任何变化,这里拿第一次行置换后的矩阵执行轮函数举例,执行轮函数操作如下。
QUARTERROUND(X,X,X,X[C]);
QUARTERROUND(X,X,X,X[D]);
QUARTERROUND(X,X,X[A],X[E]);
QUARTERROUND(X,X,X[B],X[F]);
参考资料来源: