## Cryptosystem Design and AES

Lecturer: Professor Fred B. Schneider

Lecture notes by Jed Liu

### Cryptosystem Design

With cryptosystems, we desire perfect secrecy, meaning the probability that the contents of some intercepted data corresponds to some plaintext message is unaltered by knowledge of the ciphertext for that message.

Ideally, attacking a cryptosystem should require a brute-force search of the key space. This leads to measuring the strength for cryptosystem by what is known as its work factor, the amount of time needed to decipher a message without knowledge of the key. A cryptosystem is considered secure when its workfactor is exponential in the length of the key: 2keylen.

Here are some general goals for designing secure encryption algorithms:

• confusion: obscuring the connection between the characters in the plaintext and those in the ciphertext. Substitution is a form of this. Note that having confusion does not prevent an attacker from tampering with an encrypted message in a controlled manner and, thereby, causing specific changes to the meaning of plaintext.

• diffusion: any change in the key or plaintext causes many characters in the ciphertext to change. The idea is to spread change in the key or plaintext throughout the ciphertext. Permutation is a simple form of diffusion.
As a general rule of thumb, a good encryption algorithm would satisfy the following two criteria:
• No output bit should be a linear function of the input bits. In other words, the algorithm must induce non-linearity. This ensures confusion.

• Avalanche Criteria: the probability of changing a given bit in the output is ½ when any subset of the input bits are complemented.

### Types of Cryptographic Functions

There are three classes of cryptographic functions:

• Secret key (symmetric): involves 1 key, known as the secret key
• Public key (asymmetric):involves 2 keys, known as the private & public keys
• hash: involves 0 keys

### Birth of the Advanced Encryption Standard (AES)

AES is currently the the US "standard" secret key cryptosystem, replacing DES (Data Encryption Standard, adopted in 1977). AES is the result of a three year competition. This competition was announced in September 1997 and had entries from 12 different countries. Reviewers from the U.S. and abroad helped narrow the 15 submissions down to five finalists. The one submission that eventually won was called "Rijndael" and was invented by two Belgians, Joan Daemen and Vincent Rijmen.

The fact that this was an international contest acknowledges the existence of strong foreign cryptographers. This is consistent with prior U.S. experience with DES --- all successful attacks on DES were done by people in Israel and Japan. The international nature of the AES selection process is also important, since it paves the way for AES to be used for international commerce.

### A Brief History of DES --- How we got to AES

In the early 1970s, the National Security Agency (NSA) and the National Bureau of Standards (NBS, now known as the National Institute of Standards and Technology, or NIST) saw the need for a civilian encryption algorithm. In 1974, IBM proposed "Lucifer", an encryption algorithm that uses 64-bit keys. Two years later, NBS (in consultation with NSA) made a modified version of that algorithm into a standard.

DES takes in 64 bits of data, employs a 56-bit key, and executes 16 cycles of substitution and permutation before outputting 64 bits of encrypted data.

In the summer of 1998, the Electronic Frontier Foundation (EFF) built a DES cracker machine at a cost of \$250,000. It had 1536 chips, worked at a rate of 88 billion keys per second, and was able to break a DES encrypted message in 56 hours. One year later, with the cracker working in tandem with 100,000 PCs over the Internet, a DES encrypted message was cracked in only 22 hours.

One common way to make DES more secure today is to encrypt three times using DES. This is known as triple-DES (3DES). 3DES is extremely slow, so a better algorithm was needed.

### Requirements for AES

Here's what the contestants were up against in proposing an algorithm for AES:
• AES had to be a private key algorithm. I.e. it had to use a shared secret key.

• It had to support the following key sizes:
• 128 bits ( = 3.4 x 1038 keys, equivalent to 2560-bit RSA)
• 192 bits ( = 6.2 x 1057 keys)
• 256 bits ( = 1.1 x 1077 keys)
DES uses only 56-bit keys, giving a key space of 7.2 x 1016 keys. So, if you were able to search half the DES key space in 1 second, then on average, it would take 149 trillion years to crack a 128-bit AES key. (The universe is at most 20 billion years old!)

• It had to satisfy certain engineering criteria: performance, efficiency, implementability, and flexibility. And Rijndael can be implemented easily in both hardware and software, is amenable to instruction-level parallelism, and has realizations that require little memory (so the algorithm can be used in smartcards).

• It had to be what is called a block cipher --- an encryption algorithm structured in terms of an internal function and runs that function repeatedly on the input. Each iteration is called a round; AES uses 10 rounds.

AES is also an instance of a Feistel cipher, a special case of a block cipher. The input to such a cipher consists of 2t bits. The input is first divided into 2 parts: L0 and R0. The cipher then proceeds in rounds. In the i-th round,

• Li := Ri-1
• Ri := Li-1 XOR f(Ri-1, ki),
where f is some function (all the magic is here!), and ki is some number derived from the key, to be used in round i.

### IDEA --- International Data Encryption Algorithm

IDEA, originally named the Improved Proposed Encryption Standard (IPES), was designed to be efficient in software. It was developed by Xuejia Lai and James Massey in 1991. It operates on a 64-bit plaintext data block and uses a 128-bit key. IDEA is used in PGP to encrypt messages.