Sosemanuk: a Fast Streaming Cipher
Sosemanuk is a fast stream cipher and one of the "winners"
of the eSTREAM competition. Sosemanuk effectively creates a
one-time pad that is XORed with the data, making encryption
and decryption the same operation.
design strength 128 bits
key length 1-32 bytes
IV, aka nonce 0-16 bytes
chunk size in increments of 80 bytes
Sosemanuk was created by Come Berbain, Olivier Billet,
Nicolas Courtois, Henri Gilbert, Louis Goubin, Aline Gouget,
Louis Granboulan, Cedric Lauradoux, Marine Minier, Thomas
Pornin and Herve Sibert. Their reference implementation is
free software; its license is "as close to Public Domain as
any software license can be under French law". See:
http://www.ecrypt.eu.org/stream/sosemanukpf.html
http://www.ecrypt.eu.org/stream/p3ciphers/sosemanuk/sosemanuk_p3.pdf
http://www.ecrypt.eu.org/stream/p3ciphers/sosemanuk/sosemanuk_p3source.zip
pySosemanuk.py is a simple Python ctypes wrapper for
the above C implementation of Sosemanuk.
Usage:
sm = Sosemanuk(key, IV)
dataout = sm.encryptBytes(datain) # same for decrypt
To make your learning and experimentation less cumbersome,
pySosemanuk.py is free for any use, but...
Copyright (c) 2007-2011 by Larry Bugbee, Kent, WA
ALL RIGHTS RESERVED.
pySosemanuk.py IS EXPERIMENTAL SOFTWARE FOR EDUCATIONAL
PURPOSES ONLY. IT IS MADE AVAILABLE "AS-IS" WITHOUT
WARRANTY OR GUARANTEE OF ANY KIND, NO EXCEPTIONS. USE
SIGNIFIES ACCEPTANCE OF ALL RISK.
README.txt
pySosemanuk-v0.03.zip
Enjoy,
Larry Bugbee
bugbee@seanet.com
March 12, 2007
rev Dec 2008
rev Jul 2011