If you don’t get why this contrast is funny,
search for a video of the artist and the last line of the first
paragraph.
I clearly can’t show it in class…
1.1 Reading
Chapter 6 and 7, Block and Stream Ciphers:
https://github.com/crypto101/crypto101.github.io/raw/master/Crypto101.pdf
1.2 Symmetric block encryption
principles
Also referred to as: Conventional, Secret-key, or Single-key
encryption
It was the only alternative, before public-key encryption in
1970’s
It is still the most widely used scheme.
Has five ingredients:
Plaintext
Encryption algorithm
Secret key
Ciphertext
Decryption algorithm
1.2.1 Classified along Independent
Dimensions
The type of operations used for transforming plaintext to
ciphertext
Substitution - each element in the plaintext is
mapped into another element
Transposition - elements in plaintext are
rearranged
2. The way in which the plaintext is processed
* Block cipher - processes input one block of elements
at a time
* https://en.wikipedia.org/wiki/Block_cipher
* Stream cipher - processes the input elements
continuously
* https://en.wikipedia.org/wiki/Stream_cipher
1.2.2 Crpytanalysis
Attacks come in a variety of academic and/or realistic flavors:
1.2.2.1 Computationally Secure
Encryption Schemes
Encryption could be considered computationally secure if:
Cost of breaking cipher exceeds value of
information
Time required to break cipher exceeds the useful lifetime of
the information
Usually very difficult to estimate the amount of effort required to
break
Can estimate time/cost of a brute-force attack
Unless you are using the perfect OTP, you should assume cryptography
only buys you time when your message will be secret; how long, who
knows, but likely nearing your lifetime for the current strongest open
crypto.
1.2.3 Feistel Cipher Structure
1.2.3.1 Classic Fiestel
Network
10a-SymmetricBlock/f1-crop.png
1.2.4 Block Cipher Structure
Symmetric block cipher consists of:
A sequence of rounds
With substitutions and permutations controlled by key
Parameters and design features:
Block size
Key size
Number of rounds
Round key generation algorithm
Round function
Fast software encryption/decryption
1.3 Data Encryption Standard
(DES)
Was very widely used
Minor variation of the Fiestel Network
1.3.1 Triple DES
10a-SymmetricBlock/f2-crop.png
1.4 Advanced Encryption Standard
(AES)
The Advanced Encryption Standard (AES) was issued as a federal
information processing standard (FIPS 197).
It is intended to replace DES and triple DES with an algorithm that
is more secure and efficient.
1.4.1 Overview of AES Enrcyption
and Decryption
10a-SymmetricBlock/f3-crop.png
AES Encryption Round
1.5 Algorithm Details
1.5.1 Substitute Bytes
Transformation
10a-SymmetricBlock/00.png
Replace according to these lookup tables:
1.5.2 S-box
10a-SymmetricBlock/01.png
1.5.3 Inverse S-box
10a-SymmetricBlock/02.png
Note: how are these tables created?
1.5.4 ShiftRows
Spin the “padlock” of the rows, by increasing numbers of clicks.
To move individual bytes from one column to another and spread bytes
over columns.
On encryption left rotate each row of State by 0, 1, 2, 3 bytes
respectively.
Decryption does reverse.
1.5.5 Mix Column Transformation:
MixColumns
Operates on each column individually.
Mapping each byte to a new value that is a function of all four bytes in
the column.
Use of equations over finite fields to provide good mixing of bytes in
column.
1.5.6 Add Round Key
Transformation
Simply XOR State with bits of expanded key (you know how to do this
now!)
Security comes from the from complexity of round key expansion and other
stages of AES