Libsodium支持的加密
1 | Libsodium 支持两种流行的加密算法: AES256-GCM 和 ChaCha20-Poly1305(原始版和IETF版) ,另一种是后者的一种变体,即: XChaCha20-Poly1305 |
加密信息对比
加密方式 | Key 大小 | Nonce大小 | Block大小 | MAC 大小 | 对应libsodium版本 |
---|---|---|---|---|---|
AES-256-GCM | 256 比特 | 96比特 | 128 比特 | 128 比特 | libsodium >= 1.0.4 but requires hardware support. IETF standard; also implemented in many other libraries. |
ChaCha20-Poly1305 | 256 比特 | 64比特 | 512 比特 | 128 比特 | libsodium >= 0.6.0. Also implemented in {Libre,Open,Boring}SSL. |
ChaCha20-IETF-Poly1305 | 256 比特 | 96比特 | 512 比特 | 128 比特 | libsodium >= 1.0.4. IETF standard; also implemented in Ring, {Libre,Open,Boring}SSL and other libraries. |
XChaCha20-IETF-Poly1305 | 256 比特 | 192 比特 | 512 比特 | 128 比特 | libsodium >= 1.0.12. |
加密方式选择
1 | Xchacha20-poly1305-ietf是相对最安全的 |
AES-256-GCM
1 | 目前这种结构支持硬件加速,需要Intel SSSE3扩展,以及 aesni 和 pclmul。 |
ChaCha20-Poly1305
1 | 虽然AES-256-GCM在专用硬件上速度非常快,但在非专用硬件上性能要低得多。并且, AES容易受到缓存冲突时间的攻击。 |
XChaCha20-IETF-Poly1305
1 | XChaCha20-Poly1305继承了ChaCha20-Poly1305所有优势并将随机文件nonce大小扩展到192位。这种扩展的随机数大小允许安全使用随机数。 |
翻译自:Libsodium官网
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2018/05/16/带有附加数据的认证加密-libsodium/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!