Cryptography Flashcards
What is a mono-alphabetic substitution cipher?
A mono cipher is one where each symbol in the string input is replaced with another.
For example, ‘ABC’ may be replaced with ‘PQR’, and in this case ‘BCD’ would be replaced with ‘QRS’.
This cipher is easy to break, as we can use a frequency attack.
What is a Feistel cipher?
A Feistel cipher is not necessarily a cipher in and of itself, but a framework for building stronger composite/product ciphers.
It splits a block input into two partitioned blocks, where it then sends it through n rounds of the following:
…Send the RHS through a function f - where f is any form of obfuscation function such as a hash function or a cryptographic scheme - then XOR it with the LHS.
This result goes into the RHS, while the original RHS is placed into the LHS.
The interesting thing about the Feistel cipher is that no matter what you use - one-way function or not - it will always be possible to decrypt as long as you have the keys used in making it.
What is a homophonic substitution cipher?
A homophonic cipher is one where we attempt to avoid frequency attacks by mapping each character to multiple strings of characters.
For example, a message ‘01’ may have
0 = {‘00’, ‘11’} and 1 = {‘10’, ‘01’}.
Then, the ciphertext would read either 0010, 0001, 1110 or 1101.
This is, obviously, very hard to decrypt.
What is a polyalphabetic substitution cipher?
A polyalphabetic cipher is one where our key consists of all ordered sets of t permutations over a.
Then, we substitute each letter pairwise with that key set.
An example is the Vignere cipher, where each letter is subsituted using the formula pi(a) = (a + ei) mod n, where ei is the key at position i.
What is a One-Time Pad?
A one-time pad is a crypto scheme carried out over a binary string where we XOR it with another random binary string of the same length.
If done correctly, with a true random string that is of the same length as the input string, it is completely mathematically unbreakable.
What is a transposition cipher?
A transposition cipher is an alternate type of cipher where we transpose the plaintext (or move it along the string) instead of substitution.
An example of this is the Egyptian scytale, where a vertical message may be decrypted by wrapping it around a baton of a certain size.