#educational #block-cipher #crypto #skipjack

无std skipjack_rs

SKIPJACK代码簿加密/解密算法的纯Rust软件实现

1个不稳定版本

0.1.0 2022年4月17日

#2101密码学

MIT/Apache

670KB
107

SKIPJACK

SKIPJACK加密的纯Rust实现。

安全警告

SKIPJACK是一个已损坏且过时的加密算法。这个实现仅应用于教育目的。绝不应在生产环境中使用,作者将不对因不负责任地使用此库而造成的损害承担责任!

自行承担风险!

实现

此crate实现了SkipJack加密的低级加密/解密功能。它支持比原始SkipJack规范中指定的方法更好的64位块加密/解密优化。

/benches/中提供了基准测试。

示例

use skipjack_rs::*;
let skipjack: Skipjack =
    Skipjack::new([0x00, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11].into());
let mut buf = [0x3322, 0x1100, 0xddcc, 0xbbaa].into();
skipjack.encrypt(&mut buf);
assert_eq!(buf, [0x2587, 0xcae2, 0x7a12, 0xd300].into());
let skipjack: Skipjack =
    Skipjack::new([0x00, 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11].into());
let mut buf = [0x2587, 0xcae2, 0x7a12, 0xd300].into();
skipjack.decrypt(&mut buf);
assert_eq!(buf, [0x3322, 0x1100, 0xddcc, 0xbbaa].into());

许可

此crate可在以下任一许可下使用:

由您选择。

依赖项