AEGIS 还是 AES?

本文对比了AEGIS和AES加密算法,AEGIS作为一种基于AES的加密算法,集成了身份验证标签,并为每条消息分配一个唯一标识符;在具有AES硬件支持的设备上,AEGIS是一个不错的选择,否则XChaCha20可能在性能上更胜一筹。libsodium.js库支持AEGIS-128l、AEGIS-256和XChaCha20三种加密算法。

AEGIS 或 AES?

AES 自 2001 年以来就已存在,并且目前仍然表现强劲。但是,还有其他的替代方案,包括 ChaCha20 和 AEGIS,并且强大的 Bart Preneel 合著了一篇关于 AEGIS 的论文 [这里][1]:

密码学领域的世界领导者:Bart Preneel

Bill Buchanan OBE

•直播

论文是 [这里][1]:

总体而言,AEGIS-128L 和 AEGIS-256 是基于 AES 的密码,它们集成了身份验证标签,并且每条消息都可以具有唯一的标识符。nonce 值也相对较大,AEGIS-128L 的 nonce 值为 128 位,AEGIS-256 的 nonce 值为 256 位,并且具有比 AES-GCM 更好的安全裕度。总的来说,我们可以泄露密码过程的状态,但这不会泄露密钥,并且已经证明在使用 AES 增强型处理器时具有快速操作,并且比 AES-GCM 具有更低的内存要求。

libsodium.js 是一个被编译为 WASM (WebAssembly) 的 sodium 密码库,它使用与 Python 端口相同的 sodium 方法。总而言之,libsodium 使用 AEGIS-128l、AEGIS-256 或 XChaCha20。 这样,我们为 AEGIS-128l 提供了 128 位密钥,为 AEGIS-256 和 XChaCha20 提供了 256 位密钥。 对于 AEGIS-128l,我们有一个 128 位的 nonce 值,对于 256 位的 AEGIS-256,我们有一个 256 位的 nonce 值。 对于 XChaCha20,我们有一个 192 位的 nonce。 在下面,我们将选择加密类型,并为附加数据 (AD) 生成一个随机 nonce 值和 128 个字节。 这种类型的密码称为 AEAD(带有附加数据的身份验证加密)。

在下面,我们创建一个随机的 128 位加密密钥,并使用 AEGIS-128l 加密和解密消息 [这里]:

const message = document.getElementById("message").value;
var msg = window.sodium.from_string(message);

var ciphertext;
var decrypted;
var key;
var nonce;

key = window.sodium.crypto_aead_aegis128l_keygen();
document.getElementById('key').innerText = toHex(key) + "\n";
nonce = window.sodium.randombytes_buf(window.sodium.crypto_aead_aegis128l_NPUBBYTES);
document.getElementById('nonce').innerText = toHex(nonce) + "\n";

onst ad = window.sodium.randombytes_buf(64);
document.getElementById('ad').innerText = toHex(ad) + "\n";

ciphertext = window.sodium.crypto_aead_aegis128l_encrypt(msg, ad, null, nonce, key);
ecrypted = window.sodium.crypto_aead_aegis128l_decrypt(null, ciphertext, ad, nonce, key);

document.getElementById('Ciphertext').innerText = toHex(ciphertext);
document.getElementById('Decrypted').innerText = new TextDecoder().decode(decrypted);

这是一个例子:

[使用 JavaScript 在 WASM 中使用 libsodium.js 进行 AES 加密

libsodium.js 是一个被编译为 WASM (WebAssembly) 的 sodium 密码库,它使用与 … 相同的 sodium 方法

asecuritysite.com](https://asecuritysite.com/webcrypto/crypto_sodium_aes?source=post_page-----47f5488cb300---------------------------------------)

结论

对于具有 AES 硬件支持的设备,AEGIS 是一个相当不错的解决方案,否则 XChaCha20 对于性能可能更好。

参考文献

[1] Wu, H., & Preneel, B. (2013, August). AEGIS: A fast authenticated encryption algorithm. In International Conference on Selected Areas in Cryptography (pp. 185–201). Berlin, Heidelberg: Springer Berlin Heidelberg.

  • 原文链接: billatnapier.medium.com/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
billatnapier
billatnapier
江湖只有他的大名,没有他的介绍。