## Symmetric Key
[Home] This page outlines a wide range of methods used in encryption.
## Symmetric Key## Secret-key encryption methodsThe following are the tips related to encryption: **Block size**. Block. A block cipher uses a block size of a given number of bits. DES has a 64-bit block size, and AES has a 128-bit block size.**DES**. DES. DES encryption algorithm is block cipher and uses a 64-bit block and a 64-bit encryption key.**3DES**. 3DES. DES encryption algorithm is block cipher and uses a 64-bit block and a 64-bit encryption key (of which only 56 bits are actively used in the encryption process). Unfortunately, DES has been around for a long time, and the 56-bit version is now easily crackable (in less than a day, on fairly modest equipment). An enhancement, and one which is still fairly compatible with DES, is the 3-DES algorithm. It has three phases and splits the key into two. Overall the key size is typically 112 bits (2x54 bits - with a combination of the three keys - of which two of the keys are typically the same). The algorithm is EncryptK3( DecryptK2( EncryptK1(message), where K1 and K3 are typically the same (to keep compatibility).**3DES (with clear text keys)**. 3DES. This example generates the 3DES key clear text keys.**RC2**. RC2. RC2 ("Rivest Cipher") is a block cipher and is seen as a replacement for DES. It was created by Ron Rivest in 1987, and is a 64-bit block code and can have a key size from 40 bits to 128-bits (in increments of 8 bits). The 40-bit key version is seen as weak, as the encryption key is so small, but is favoured by governments for export purposes, as it can be easily cracked. In this case, the key is created from a Key and an IV (Initialisation Vector). The key has 12 characters (96 bits), and the IV has 8 characters (64 bits), which go to make the overall key.**AES**. AES. AES (or Rijndael) is a new block cipher, and is the new replacement for DES, and uses 128-bit blocks with 128, 192 and 256-bit encryption keys. It was selected by NIST in 2001 (after a five-year standardisation process). The name Rijndael comes from its Belgium creators: Joan Daemen and Vincent Rijmen.**AES (Python)**. AES. This implements AES using Python for a number of AES modes.**AES (Python) with OpenSSL format**. AES. This implements AES using Python for CBC and with an OpenSSL output.**Blowfish**. Blowfish. Bruce Schneier created Blowfish with a general-purpose private key block cipher encryption algorithm.**Blowfish (with CBC)**. Blowfishcbc. With CBC we split the message into blocks and encrypt each block. The input from the first stage is the IV (Initialisation Vector), and the input to the following stages is the output from the previous stage. In this example we will use Blowfish to encrypt, using CBC.**Twofish**. Twofish. Bruce Schneier created Twofish with a general-purpose private key block cipher encryption algorithm.**Skipjack**. Skip jack. Skipjack is a block cipher, using private-key encryption algorithm, and designed by NSA.**Camellia**. Camellia. Camillia is a block cipher created by Mitsubishi and NTT.**RC5**. RC5. RC5 is a block cipher with variable key size, block size and rounds.**RC6**. RC6. RC6 is a block cipher with variable key size, block size and rounds.**Pohlig-Hellman**. Pohlig. This uses the Pohlig-Hellman algorithm.**All-or-nothing**. AONT. The All-or-nothing created messages, of which all the messages are required to rebuild the original message.**Range of methods**. OpenSSL. This includes the encryption of a wide range of methods.**SSL**. SSL. This outlines the debug information returned from an SSL/TLS connection.**Heartbleed (Theory)**. Heartbleed. This outlines the Heartbleed vulnerability.**Heartbleed (Demo)**. Heartbleed. This provides a demo of the Heartbleed vulnerability.**Heartbleed (Network)**. Heartbleed. This provides a capture of network traffic and IDS detection for Heartbleed.**Heartbleed (View Session)**. Heartbleed. This provides a capture of session information.**Red Pike**. Red Pike. This provides an implementation of Red Pike.**Feistel Ciphers**. Feistel Ciphers. This provides an implementation of a Feistel Cipher.**C# AES and OpenSSL**. Csharp for OpenSSL. This produces the same AES CBC output for C# as for OpenSSL.
## Token-based encryption (Fernet)**Fernet**. Fernet. This outlines Fernet encryption**Fernet with PBKDF2 key generation**. Fernet (PBKDF2). This outlines Fernet encryption with PBKDF2 key generation**Fernet with key rotation**. Fernet (Key rotation). This outlines Fernet encryption with key rotation.**Fernet (Auto key)**. Fernet. This outlines Fernet encryption**Fernet (Decoding token)**. Fernet Decode. This outlines Fernet decoding of the token
## Google Tink**Google Tink (Symmetric key)**. Google Tink (Symmetric). Google Tink is a new cryptography library for secure coding and outlines the usage of symmetric key encryption.**Google Tink (MAC)**. Google Tink (MAC). this outlines the integration of MACs into Google Tink**Google Tink (Digital Signature)**. Google Tink (Digital Signature). This outlines the integration of digital signatures into Google Tink**Google Tink (Hybrid Encryption)**. Google Tink (Hybrid Encryption). This outlines the integration of hybrid encryption into Google Tink
## Format Preserving Encryption**Format Preserving Encryption**. FPE. This outlines Format Preserving Encryption.**Honey Encryption**. Honey. This outlines Honey encryption.
## Stream ciphers**ChaCha20**. ChaCha20. ChaCha is a**stream cipher**and is three-times faster than AES.**Salsa20**. Salsa20. Salsa20 is a**stream cipher**and is three-times faster than AES.**RC4**. RC4. RC4 is a**stream cipher**used in WEP (in wireless encryption).**RC4 (repeating IV)**. RC4. This illustrates how we can EX-OR two values with the same IV value.**RC4 key generation**. RC4. This illustrates how we generate the key.**Affine**. Affine. Affine is a**stream cipher**which uses an equation to encrypt.**ARIA**. ARIA. ARIA is a**stream cipher**and has a similar operation to AES but has two S-boxes.
## Padding Methods**Padding (AES)**. Padding. This outlines how data is padded for AES.**Padding (DES)**. Padding. This outlines how data is padded for DES.**Padding (DES) with CBC**. Padding. This outlines how data is padded for DES for CBC.
## Mobile networks (crypto)**A5/1**. A5. This uses the A5/1 algorithm.**A5/3 (Kasumi)**. Kasumi. This uses the A5/3 (Kasumi) algorithm.**Snow**. Snow. This uses the Snow stream cipher algorithm.**Zuc**. Zuc. This uses the Zuc stream cipher algorithm.
## PresentationThe following is an outline presentation on encryption: |