SNOW is a family of word-based synchronous stream ciphers developed by Thomas Johansson and Patrik Ekdahl at Lund University.
They have a 512-bit linear feedback shift register at their core, followed by a non-linear output state machine with a few additional words of state.
SNOW 1.0, SNOW 2.0, and SNOW 3G use a shift register of 16 32-bit words, and a 32-bit add-rotate-XOR (ARX) output transformation with 2 or 3 words of state. Each iteration advances the shift register by 32 bits and produces 32 bits of output.
SNOW-V and SNOW-Vi use a shift register of 32 16-bit words (designed to be implemented as 4 128-bit SIMD registers) which is advanced by 16 bits per iteration. 8 LFSR iterations can be performed simultaneously using SIMD operations, after which one output transformation step is performed, producing 128 bits of output. The output transformation uses the Advanced Encryption Standard (AES) round function (commonly implemented in hardware on recent processors), and maintains 2 additional 128-bit words of state.
SNOW 1.0, originally simply SNOW, was submitted to the NESSIE project. [1] The cipher has no known intellectual property or other restrictions. The cipher works on 32-bit words and supports both 128- and 256-bit keys. The cipher consists of a combination of a LFSR and a finite-state machine (FSM) where the LFSR also feeds the next state function of the FSM. The cipher has a short initialization phase and very good performance on both 32-bit processors and in hardware.
During the evaluation, weaknesses were discovered and as a result, SNOW was not included in the NESSIE suite of algorithms. The authors have developed a new version, version 2.0 of the cipher, that solves the weaknesses and improves the performance. [2]
During ETSI SAGE evaluation, the design was further modified to increase its resistance against algebraic attacks with the result named SNOW 3G. [3]
It has been found that related keys exist both for SNOW 2.0 and SNOW 3G, [4] allowing attacks against SNOW 2.0 in the related-key model.
SNOW has been used in the ESTREAM project as a reference cipher for the performance evaluation.
SNOW 2.0 is one out of stream ciphers chosen for ISO/IEC standard ISO/IEC 18033-4. [5]
SNOW 3G [6] is chosen as the stream cipher for the 3GPP encryption algorithms UEA2 and UIA2. [7]
SNOW-V was an extensive redesign published in 2019, [8] designed to match 5G cellular network speeds by generating 128 bits of output per iteration. SNOW-Vi [9] was tweaked for even higher speed using small changes to the LFSR; the output transformation is identical.
The Advanced Encryption Standard (AES), also known by its original name Rijndael, is a specification for the encryption of electronic data established by the U.S. National Institute of Standards and Technology (NIST) in 2001.
In cryptography, a block cipher is a deterministic algorithm that operates on fixed-length groups of bits, called blocks. Block ciphers are the elementary building blocks of many cryptographic protocols. They are ubiquitous in the storage and exchange of data, where such data is secured and authenticated via encryption.
In cryptography, Triple DES, officially the Triple Data Encryption Algorithm, is a symmetric-key block cipher, which applies the DES cipher algorithm three times to each data block. The 56-bit key of the Data Encryption Standard (DES) is no longer considered adequate in the face of modern cryptanalytic techniques and supercomputing power; Triple DES increases the effective security to 112 bits. A CVE released in 2016, CVE-2016-2183, disclosed a major security vulnerability in the DES and 3DES encryption algorithms. This CVE, combined with the inadequate key size of 3DES, led to NIST deprecating 3DES in 2019 and disallowing all uses by the end of 2023. It has been replaced with the more secure, more robust AES.
A stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream (keystream). In a stream cipher, each plaintext digit is encrypted one at a time with the corresponding digit of the keystream, to give a digit of the ciphertext stream. Since encryption of each digit is dependent on the current state of the cipher, it is also known as state cipher. In practice, a digit is typically a bit and the combining operation is an exclusive-or (XOR).
A5/1 is a stream cipher used to provide over-the-air communication privacy in the GSM cellular telephone standard. It is one of several implementations of the A5 security protocol. It was initially kept secret, but became public knowledge through leaks and reverse engineering. A number of serious weaknesses in the cipher have been identified.
NESSIE was a European research project funded from 2000 to 2003 to identify secure cryptographic primitives. The project was comparable to the NIST AES process and the Japanese Government-sponsored CRYPTREC project, but with notable differences from both. In particular, there is both overlap and disagreement between the selections and recommendations from NESSIE and CRYPTREC. The NESSIE participants include some of the foremost active cryptographers in the world, as does the CRYPTREC project.
In cryptography, Camellia is a symmetric key block cipher with a block size of 128 bits and key sizes of 128, 192 and 256 bits. It was jointly developed by Mitsubishi Electric and NTT of Japan. The cipher has been approved for use by the ISO/IEC, the European Union's NESSIE project and the Japanese CRYPTREC project. The cipher has security levels and processing abilities comparable to the Advanced Encryption Standard.
CRYPTREC is the Cryptography Research and Evaluation Committees set up by the Japanese Government to evaluate and recommend cryptographic techniques for government and industrial use. It is comparable in many respects to the European Union's NESSIE project and to the Advanced Encryption Standard process run by National Institute of Standards and Technology in the U.S.
In computer science and cryptography, Whirlpool is a cryptographic hash function. It was designed by Vincent Rijmen and Paulo S. L. M. Barreto, who first described it in 2000.
KASUMI is a block cipher used in UMTS, GSM, and GPRS mobile communications systems. In UMTS, KASUMI is used in the confidentiality (f8) and integrity algorithms (f9) with names UEA1 and UIA1, respectively. In GSM, KASUMI is used in the A5/3 key stream generator and in GPRS in the GEA3 key stream generator.
SEED is a block cipher developed by the Korea Information Security Agency (KISA). It is used broadly throughout South Korean industry, but seldom found elsewhere. It gained popularity in Korea because 40-bit encryption was not considered strong enough, so the Korea Information Security Agency developed its own standard. However, this decision has historically limited the competition of web browsers in Korea, as no major SSL libraries or web browsers supported the SEED algorithm, requiring users to use an ActiveX control in Internet Explorer for secure web sites.
Turing is a stream cipher developed by Gregory G. Rose and Philip Hawkes at Qualcomm for CDMA.
ECRYPT was a 4-year European research initiative launched on 1 February 2004 with the stated objective of promoting the collaboration of European researchers in information security, and especially in cryptology and digital watermarking.
Grain is a stream cipher submitted to eSTREAM in 2004 by Martin Hell, Thomas Johansson and Willi Meier. It has been selected for the final eSTREAM portfolio for Profile 2 by the eSTREAM project. Grain is designed primarily for restricted hardware environments. It accepts an 80-bit key and a 64-bit IV. The specifications do not recommend a maximum length of output per pair. A number of potential weaknesses in the cipher have been identified and corrected in Grain 128a which is now the recommended cipher to use for hardware environments providing both 128bit security and authentication.
ShāngMì 4 is a block cipher, standardised for commercial cryptography in China. It is used in the Chinese National Standard for Wireless LAN WAPI, and with Transport Layer Security.
In cryptography, SOBER is a family of stream ciphers initially designed by Greg Rose of QUALCOMM Australia starting in 1997. The name is a contrived acronym for Seventeen Octet Byte Enabled Register. Initially the cipher was intended as a replacement for broken ciphers in cellular telephony. The ciphers evolved, and other developers joined the project.
The following outline is provided as an overview of and topical guide to cryptography:
ISO/IEC 9797-1Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher is an international standard that defines methods for calculating a message authentication code (MAC) over data.
Simon is a family of lightweight block ciphers publicly released by the National Security Agency (NSA) in June 2013. Simon has been optimized for performance in hardware implementations, while its sister algorithm, Speck, has been optimized for software implementations.
KCipher-2 is a stream cipher jointly developed by Kyushu University and Japanese telecommunications company KDDI. It is standardized as ISO/IEC 18033–4, and is on the list of recommended ciphers published by the Japanese Cryptography Research and Evaluation Committees (CRYPTREC). It has a key length of 128 bits, and can encrypt and decrypt around seven to ten times faster than the Advanced Encryption Standard (AES) algorithm.