1/44
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Symmetric Key Cryptography
The same key is used to encrypt and decrypt the message, faster than asymmetric but have an issue with key exchange
Diffusion
Changes to one character in the plain text affect multiple characters in the cipher text, unlike in historical algorithms where each plain text character only affect one cipher text character.
Confusion
Occurs by using a complex substitution algorithm. Attempts to make the relationship between the statistical frequencies of the cipher text and the key as complex as possible.
Kerckhoff's Principle
A cryptosystem should be secure, even if everything about the system is publicly known.
Substitution
Changing some part of the plain text for some matching part of cipher text. Historical algorithms typically use this.
Two things all modern block cipher algorithms use
Substitution and Transposition
Two types of symmetric algorithms
Block Ciphers and Stream Ciphers
This is how the substitution portion of symmetric key cryptography is accomplished
XORing the plain text message with the key
This is how transposition is done in symmetric key cryptography
Swapping blocks of text
What single-key encryption means
The same key is used to both encrypt and decrypt a message
List of popular symmetric block cipher algorithms
The Feistel Network, DES, 3DES, AES, Blowfish, Serpent, Twofish, Skipjack, IDEA, CAST, TEA, SHARK
Facts about the Feistel Function
Larger Block sizes increases security, Larger key size increases security, if the round function is secure then more rounds increase security
Cipher
The algorithm(s) needed to encrypt and decrypt a message
Key
Random bits used to encrypt a message
Algorithm
The mathematical process used to alter a message and make it unintelligible to any but the intended party
Data Encryption Standard (DES)
Was the premier block cipher for many years but is now considered outdated. Was selected a the Federal Information Processing Standard (FIPS) for the U.S. in 1976. This is a Feistel Cipher with 16 rounds and a 48bit key for each round. To generate round keys a 56bit key is slit into two 28bit halves. This Feistel Cipher uses 8 s-boxes.
3DES
Interim replacement for DES. Performs DES three times with three different 56bit keys.
Advanced Encryption Standard (AES)
Also known as Rijndael block cipher. Chosen as a replacement for DES in 2001. Designated as FIPS197. Can have three different key sizes; 128, 192, and 256. All three operate on a block size of 128 bits. Not based on a Feistel network. Operates on a 4x4 column-major order matrix of bytes called the state.
Blowfish
A symmetric block cipher designed in 1993 by Bruce Schneier. Was intended as a replacement for DES. Like DES it is a 16 round Feistel working on 64bit blocks. Can have bit sizes 32bits to 448bits.
Some products Blowfish is used in:
BCrypt, CryptoDisk, DriveCrypt, Password Safe, Password Wallet, Backup for Workgroups, Crashplan
Twofish
Finalist to replace DES. Block size of 128bits and key sizes up to 256bits, it's a Feistel cipher. Designed by Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson.
Skipjack
Developed by the NSA and was designed for the clipper chip, a chip with built in encryption. Decryption key was kept in escrow for law enforcement to decrypt the data without the owner's cooperation, made this algorithm highly controversial. Uses an 80bit key to encrypt and decrypt 64bit data blocks. An unbalanced Feistel network with 32 rounds.
International Data Encryption Algorithm (IDEA)
A block cipher designed as a replacement for DES. Designed by James Massey and Xuejia Lai in 1991. 64bit blocks and a 128bit key. Uses a series of eight identical transformations.
Tiny Encryption Algorithm (TEA)
A simple algorithm that is easy to implement in code, a Feistel Cipher that uses 64 rounds. Created by David Wheeler and Roger Needham in 1994.
SHARK
Created by Vincent Rijmen, Joan Daemen, Bart Preneel, Antoon Bosselaers, and Erik De Win. Uses a 64bit block with a 128bit key in six rounds. Shares similarities with the Rijndael cipher such as the use of S-boxes.
Electronic Codebook (ECB)
This is the most basic encryption mode. The message is divided into blocks and each block is encrypted separately. A weakness of this is that the same plain text always equals the same cipher text which gives the attacker a way to begin analyzing the cipher to derive the key.
Cipher-Block Chaining (CBC)
Each block of plaintext is XORed with the previous cipher text block before being encrypted. This creates significantly more randomness in the final cipher text. More secure than electronic codebook mode.
Cipher Feedback (CFB)
In this mode the previous cipher text block is encrypted, the cipher text is XORed back with the plain text to produce the current cipher text block, essentially it loops back on itself increasing the randomness of the cipher text.
Output Feedback (OFB)
Makes a block cipher into a synchronous stream cipher, generates keystream blocks, which are then XORed with the plain text blocks to get the cipher text.
Counter (CTR)
Used to turn a block cipher into a stream cipher, much like OFB mode. Generates the next keystream block by encrypting successive values of a "counter". The counter can be any simple function that does not repeat for a long time.
Initialization Vector (IV)
Fixed size input to a cryptographic primitive that is random or pseudorandom. Called a 'nonce' if it is non-repeating and not truly random. Used along with a secret key for encryption.
ECB Mode
Encryption of the same plain text with the same key results in the same cipher text. Use of an IV that is XORed with the first block of plain text solves this problem.
Symmetric Stream Ciphers
Sometimes called a state cipher. Random key is XORed with stream of plain text.
Synchronous Stream Cipher
A stream of pseudorandom digits is generated independently. That stream is then combined with the plain text (encrypt) or the cipher text (decrypt).
Self-synchronizing Stream Cipher
Uses several of the previous N cipher text digits to compute the key stream.
RC4
A Symmetric Stream Cipher created by Ron Rivest in 1987. Most widely used software stream cipher. Identically used for encryption and decryption, the data stream is simply XORed with the key. Uses a variable length key from 1 to 256 bytes.
Hash Function
Uses an H function that takes a variable size input (m) and returns a fixed size string. The value that is returned is called the **** value or the, or the h, or the digest. Can be expressed mathematically as h=H(m)
Has a variable length input with fixed length output, same sized output is produced regardless of what you put into the algorithm.
H(x) is one way. You can't undo it. It is also collision resistant,
Salt
Random bits that are used as one of the inputs to a hash. Complicates dictionary attacks.
MD5
128bit hash specified by RFC1321. In 1996 a flaw was found in this hash function that was created by Ron Rivest in 1991 to replace an earlier, similarly named, hash function. This hash is also not collision resistant. Recommended to use SHA-1 instead.
Breaks down message into 512 byte chunks, padded with 0s if needed to reach 512.
Length of the message is appended as the last 64bits.
Operates on a 128bit state, divided into 4 32bit words.
Four nonlinear function (F) rounds.
MD6
This hash uses a Merkle Tree like structure to allow for immense parallel computation of hashes for very long inputs. Was submitted to the NIST SHA-3 competition. In 2009 Rivest stated that this hash is not ready to be a candidate for SHA-3 because of speed issues and other concerns.
Secure Hash Algorithm
Most widely used hash algorithm.
SHA-1
A 160bit hash function that resembles earlier MD5 algorithm. Designed by the NSA to be part of the Digital Signature Algorithm.
SHA-2
Two similar hash functions with different block sizes, known as SHA-256 and SHA-512. Uses 64 byte (512bit) words.
SHA-3
A proposed hash function still in development. Will be given name in 2012 by NIST.
MAC and HMAC (Message Authentication Mode) and (Hash Message Authentication Mode)
One uses a block cipher in in CBC mode to improve integrity. The other adds a key to a hash to improve integrity.