# Encryption

**Symmetric Cryptography (stream ciphers or block ciphers)**

**DES –**The Data Encryption Standard (DES) is a block cipher.**Blowfish**– Symmetric block cipher developed by Bruce Schneier.**CAST5 & 6**– Developed by Carlisle Adams & Stafford Tavares. A 64-bit block cipher using a 64-bit key.**Twofish**– A symmetric block cipher using a maximum key length of 265 bits and a block size of 128 bits. Created by Kelsey, Hall, Ferguson, Wagner, Whiting and Schneier as an AES candidate.**3-Key 3DES**– The triple data encryption standard algorithm. DES based symmetric algorithm which uses three DES keys by encrypting a block of plain text with the first key, passing the result through the decryption algorithm with the second key, and encrypting the result with the third key. Extends the strength of DES.**2-Key 3DES**– An encryption configuration in which the DES algorithm is used three times with only two keys, one key is used twice.**AES/Rijndael**– iterated block cipher with variable block and key lengths specifiable to 128, 192, or 256 bits. Developed by Joan Daemen and Vincent Rijmen of Belgium.**IDEA**– International data encryption algorithm. A block cipher operating on 64 bit plain-text blocks. The scheme was developed in Switzerland.**Kasumi (A5/3) –**international standard encryption for third-generation W-CDMA mobile communications.**MARS**– IBM AES candidate – a shared-key (symmetric) block cipher supporting 128-bit blocks and variable key lengths.**RC2 –**is a 64-bit block cipher with a variable size key.**RC4/Arcfour**– A variable-key-length stream cipher designed by Ron Rivest of MIT. Once a proprietary algorithm of RSA Data Security, Inc.**RC5**– Block cipher of several word length options, suitable for hardware or software applications.**RC6**– RSA Laboratories AES candidate – symmetric block cipher supporting 128-bit blocks and variable key lengths.**SAFER-SK**– An iterated block cipher with 64 or 128 bit plaintext and ciphertext blocks.**SEA**– Sapher Encryption Algorithm. Approved in 70 countries, rated as strong crypto by U.S. and U.K. governments.**Serpent**– An AES candidate proposed by Ross J. Anderson (United Kingdom), Eli Biham (Israel) and Lars R. Knudsen (Norway) – Serpent encrypts a 128-bit plaintext block to a 128-bbit ciphertext block in 32 rounds under the control of 33 128-bit sub-keys and a key size of 128, 192, or 256 bits.**SEAL**– Software-optimized encryption Algorithm. A fast stream cipher for 32-bit machines designed by Rogaway and Coppersmith.**Skipjack -**is a block cipher – an algorithm for encryption – developed by the U.S. National Security Agency.**Anubis**– is a symmetric block cipher with a 128 bit block size and a key size from 128 to 320 bits, with increments of 32 bits. Anubis was designed by Paulo Barreto and Vincent Rijmen, and has been submitted as a candidate cipher to the New European Schemes for Signatures, Integrity, and Encryption (NESSIE) process. ‘**Khazad**– is a symmetric block cipher with a 64 bit block size and a 128 bit key size. Khazad was designed by Paulo Barreto and Vincent Rijmen, and has been submitted as a candidate cipher to the New European Schemes for Signatures, Integrity, and Encryption (NESSIE) process.**Square**– the cipher was designed by Joan Daemen and Vincent Rijmen and was cryptanalyzed by Lars Knudsen. It has a 128 bit block size and a 128 bit key size.**SEED**is developed by KISA (Korea Information Security Agency). The input/output block size and key length of SEED is 128-bits.

**Asymmetric Cryptography**

**Diffie-Hellman**– The first public-key algorithm, uses exponential key exchange.**ECKAS-DH**– Elliptic Curve Key Agreement Scheme – Diffie-Hellman version.**EIGamal –**Is mainly used to establish common keys and not to encrypt messages.**RPK**– Raike Public Key. A public-key encryption algorithm based on the same math as Diffie-Hellman Key Exchange in GF(2^n) using maximal length LFSRs. Can also be implemented based on Multiplicative Congruential Generators in GF(p) or Elliptic Curve Groups.**RSA**– Algorithm invented by Ron Rivest, Adi Shamir and Len Adelman.**ECES**– Elliptic Curve Encryption Scheme. A public-key encryption scheme for encrypting and decrypting.**ECDSA –**Elliptic Curve DSA (ECDSA) is a variant of the Digital Signature Algorithm (DSA)which operates on elliptic curve groups. As with Elliptic Curve Cryptography in general, the bit size of the public key believed to be needed for ECDSA is about twice the size of the security level, in bits.**XTR –**Is an public-key encryption algorithm. XTR is a novel method that makes use of traces to represent and calculate powers of elements of a subgroup of a finite field. It is based on the underlying very first public key cryptosystem, the Diffie-Hellman key agreement protocol.

**Message Digest /Hash**

**GOST –**is a 256-bit cryptographic hash function**HMAC –**HMAC is used for message integrity checks between two parties that share a secret key, and works in combination with some other Digest algorithm, usually MD5 or SHA-1.**MD2 –**is a cryptographic hash function developed by Ronald Rivest in 1989.**MD4 –**is a message digest algorithm (the fourth in a series) designed by Professor Ronald Rivest of MIT in 1990. It implements a cryptographic hash function for use in message integrity checks. The digest length is 128 bits.**MD5 –**replaced the earlier hash function, MD4**.**uses a Merkle tree-like structure to allow for immense parallel computation of hashes for very long inputs.**MD6 –****SHA-0****SHA-1**– Secure hash algorithm revision one.**SHA-2**– Secure hash algorithm comprising SHA-224, SHA-256, SHA-384, SHA-512.**RIPEMD-128 -**RIPEMD is developed in the framework of the EU project RIPE.**RIPEMD-160****RIPEMD-256****RIPEMD-320****Tiger****Whirlpool –**is a*hash*designed after the Square block cipher.

**Random Number Generation**

**FIPS 186**– A pseudo-random number generator scheme built around SHA-1 and which has been standardized by NIST.**RPK**– Raike Public Key. A public-key encryption algorithm based on the same math as Diffie-Hellman Key Exchange in GF(2^n) using maximal length LFSRs. Can also be implemented based on Multiplicative Congruential Generators in GF(p) or Elliptic Curve Groups.**ANSI X9.31**– A pseudo-random number generator using 3-key 3DES or AES algorithms.**ANSI X9.62**– ECDSA – A pseudo-random number generator.

**Key Exchange**

**Diffie-Hellman**– The first public-key algorithm, uses exponential key exchange.**Modified Diffie-Hellman**– Session key exchange**ECKAS**– DH Elliptic Curve Key Agreement Scheme – Diffie-Hellman version. The input to the scheme is elliptic curve parameters. (aka ECDH)**ECKAS – MQV**– Elliptic Curve Key Agreement Scheme – MQV version. Establishes one or more shared secrets between two parties for subsequent use. Involves the public and private keys of the users.**KEA**– Key exchange algorithm (Government)**RPK**– Raike Public Key. A public-key encryption algorithm based on the same math as Diffie-Hellman Key Exchange in GF(2^n) using maximal length LFSRs. Can also be implemented based on Multiplicative Congruential Generators in GF(p) or Elliptic Curve Groups.**RSA**– Algorithm invented by Ron Rivest, Adi Shamir and Len Adelman

**Digital Signature (Data authentication and Non-repudiation)**

**DSA**– Digital Signature Algorithm. A public-key digital signature algorithm proposed by NIST for use in the digital signature standard (DSS).**ECAES**– Elliptic Curve Authentication Encryption Scheme. Analogous to ECES plus it provides verification of the integrity of the original message.**ECDSA**– Elliptic curve analog of DSA. Uses a signature and verification operation for data integrity and entity authentication. Currently being standardized in ANSI and IEEE.**ECNR**– Elliptic Curve Nyberg-Reuppel. Scheme with message appendix. Consists of a signature operation and a verification operation.**RPK**– Raike Public Key. A public-key encryption algorithm based on the same math as Diffie-Hellman Key Exchange in GF(2^n) using maximal length LFSRs. Can also be implemented based on Multiplicative Congruential Generators in GF(p) or Elliptic Curve Groups.**RSA**– Algorithm invented by Ron Rivest, Adi Shamir and Len Adelman