#cipher #encryption

skipjack

A straight-line implementation of Skipjack in Rust

2 unstable releases

0.2.0 Jan 2, 2022
0.1.0 Mar 8, 2020

#625 in Cryptography

Custom license

19KB
183 lines

skipjack.rs

license Build Status

Note: Skipjack is not suitable for contemporary use. This library exists as an example, and not for consumption.

skipjack.rs is a straight-line (meaning no branches or loops) Rust implementation of the Skipjack cipher, best known for its use by the NSA in the Clipper chip.

skipjack.rs has three primary goals (all for educational purposes, for yours truly):

  1. To represent safe, idiomatic Rust in a cryptographic context
  2. To be easy to read and understand with a minimal understanding of Rust, even without a background in cryptography
  3. To directly reflect the NIST specification for Skipjack (i.e., no optimizations or shortcuts)

Design

This implementation attempts to adhere closely to the NIST-provided specification in design, and does not support any modes of operation other than single-block codebook.

Installation

You should not use Skipjack (or skipjack.rs) for anything serious. But, if you'd like to play with it, you can install it via cargo:

[dependencies]

skipjack = "0.1.0"

Documentation is available on docs.rs.

No runtime deps