#ice #algorithm #block-cipher

ice-crypt

Rust实现的ICE加密算法

1个稳定版本

1.0.0 2022年9月3日

#2403 in 加密学

GPL-3.0-or-later

17KB
229

ICE-Crypt

Ice-Crypt是ICE(信息隐写引擎)加密算法的Rust实现。

ICE

[ICE]是一种64位私钥分组密码,继承了DES的传统。然而,与DES不同,它被设计成可以抵抗差分和线性密码分析,并且没有密钥补全弱点或弱密钥。此外,其密钥大小可以是64位的任何倍数,而DES密钥则限制在56位。
-- Matthew Kwan,ICE加密算法的作者

使用方法

将此添加到您的 Cargo.toml

[dependencies]
ice-crypt = "1.0.0"

要加密一个简单的消息,您可以使用以下代码

src/main.rs:

use ice_crypt::IceKey;

fn main() {
    let key: Vec<u8> = vec![67, 83, 71, 79, 16, 54, 0, 0, 132, 13, 0, 0, 97, 3, 0, 0];

    let message: &str = "My secret message";

    // Create a new IceKey instance
    let mut icekey = IceKey::new(2);

    // Set Private Key
    icekey.set(key);

    let encrypted_message: Vec<u8> = icekey.encrypt_all(message.as_bytes().to_vec());

    let decrypted_message: Vec<u8> = icekey.decrypt_all(encrypted_message);

    // Convert to string and remove 0 padding
    let mut output = std::str::from_utf8(&decrypted_message).unwrap();
    output = output.trim_end_matches('\0');

    assert_eq!(message, output);
}

文档

待办事项

原始

ICE加密算法由Matthew Kwan设计和编写,您可以查看他在他的网站上对该算法的C/C++实现。

许可

Ice-Crypt在GNU通用公共许可证(版本3)的条款下分发。

有关详细信息,请参阅LICENSE

无运行时依赖项