#aes #encryption #encryption-decryption #crypto

tinyaes

AES(高级加密标准)的纯Rust实现

1个不稳定版本

0.1.0 2023年6月22日

#2015密码学

MIT许可证

54KB
1K SLoC

tinyaes-rs

tinyaes是一个用于快速AES加密和解密的紧凑型Rust包

工作正在进行中

链接 http://www.crypto-it.net/eng/theory/padding.html


lib.rs:

tinyaes是AES(高级加密标准)的纯Rust实现。

它支持AES-128、AES-192和AES-256。这是一个低级实现,目前只能加密数据块。目前不打算直接使用,而是作为其他加密库的构建块。未来可能会添加更高级的功能。

示例:使用AES-256加密数据块

use tinyaes::AESCore;
use tinyaes::AESKey;

let key: [u8; 32] = "This is a 256-bit key as bytes!!".as_bytes().try_into().unwrap();
let plaintext: [u8; 16] = "This is a block!".as_bytes().try_into().unwrap();

let aes256: AESCore = AESCore::new(AESKey::AES256(key));
let ciphertext: [u8; 16] = aes256.encrypt(&plaintext);

let expected_result: [u8; 16] = [0x08, 0x39, 0x58, 0x3b, 0xc4, 0x15, 0xef, 0xf6, 0x7e, 0x46, 0x65, 0x04, 0x03, 0x7e, 0x7a, 0x88];
assert_eq!(ciphertext, expected_result);

let decrypted: [u8; 16] = aes256.decrypt(&ciphertext);
assert_eq!(decrypted, plaintext);

依赖项

~23KB