Snuffle
Encyclopedia
Snuffle is an encryption system
Cryptography
Cryptography is the practice and study of techniques for secure communication in the presence of third parties...

 designed by Daniel Bernstein and the subject of his court case, Bernstein v. United States
Bernstein v. United States
Bernstein v. United States is a set of court cases brought by Daniel J. Bernstein challenging restrictions on the export of cryptography from the United States....

.

Often lost in the discussion of Bernstein v. United States
Bernstein v. United States
Bernstein v. United States is a set of court cases brought by Daniel J. Bernstein challenging restrictions on the export of cryptography from the United States....

, the court case that overturned and eventually eliminated US export restrictions on cryptography
Export of cryptography
The export of cryptography in the United States is the transfer from the United States to another country of devices and technology related to cryptography....

, is that the subject of the case, Snuffle, was itself an attempt to bypass the regulations.

Snuffle showed how to use a cryptographic hash function
Cryptographic hash function
A cryptographic hash function is a deterministic procedure that takes an arbitrary block of data and returns a fixed-size bit string, the hash value, such that an accidental or intentional change to the data will change the hash value...

, which was legal to export, as a strong encryption system, which was illegal to export. The irony of the case was that it was not the hash that was illegal, but the software that showed how to use it.

Snuffle source code is widely available on the Internet and included on the disks accompanying Bruce Schneier
Bruce Schneier
Bruce Schneier is an American cryptographer, computer security specialist, and writer. He is the author of several books on general security topics, computer security and cryptography, and is the founder and chief technology officer of BT Managed Security Solutions, formerly Counterpane Internet...

's Applied Cryptography. Although his court case was dismissed in October 2003, Bernstein still has not published his cryptography pages or the technical papers describing Snuffle.

In early 2005, Bernstein submitted an updated version of Snuffle, called Snuffle 2005 based on his Salsa20
Salsa20
Salsa20 is a stream cipher submitted to eSTREAM by Daniel Bernstein. It is built on a pseudorandom function based on 32-bit addition, bitwise addition and rotation operations, which maps a 256-bit key, a 64-bit nonce , and a 64-bit stream position to a 512-bit output...

 hash function, to the ECRYPT Stream Cipher project.

How Snuffle works

Stream ciphers work by taking a string (the encryption key) and deterministically generating a bunch of random-seeming text, called keystream
Keystream
In cryptography, a keystream is a stream of random or pseudorandom characters that are combined with a plaintext message to produce an encrypted message ....

, from that key. That keystream is then XORed against the message you want to encipher. To decipher the text, the recipient simply hands the same key to the stream cipher to produce an identical keystream and XORs it with the ciphertext, resulting in the original message.

Snuffle simply works by running the hash function in counter mode: generating the keystream by hashing the key with a message based nonce
Cryptographic nonce
In security engineering, nonce is an arbitrary number used only once to sign a cryptographic communication. It is similar in spirit to a nonce word, hence the name. It is often a random or pseudo-random number issued in an authentication protocol to ensure that old communications cannot be reused...

and sequential integers (1, 2, 3, 4, etc.) appended.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK