Chap 2-2 Conventional Encryption Message Confidentiality (Symmetric, Block)
DES (Data Encryption Standard) Requirements 1. It must provide a high level of security. 2. It must be completely specified and easy to understand. 3. The security provided by the algorithm must not be based on the secrecy of the algorithm. 4. It must be all users and suppliers.
DES (Data Encryption Standard) 5. It must be adaptable for use in diverse applications. 6. It must be economical to implement in electronic devices and be efficient to use. 7. It must be amenable to validation. 8. It must be exportable.
S-DES Structure and Flow Diagram IP: initial permutation SW: Switch
Part1. Generation of Key Value Key generation for simplified DES
1.P10 Key Index 1 2 3 4 5 6 7 8 9 10 Initial Key Values P10 실행 후 Index 2 3 4 5 6 7 8 9 10 Initial Key Values P10 실행 후 의 Key 값
2.Shift(LS-1) Key 1 Index 3 5 2 7 4 10 9 8 6 LS-1 Key값 LS-1 실행 후 순열 변환이 이루어진 10비트 값을 좌측부터 5비트씩 2부분으로 나누어 각 부분의 5비트를 개별적으로 1비트씩 좌측으로 순환 이동시킨다. Key 1 Index 3 5 2 7 4 10 9 8 6 LS-1 Key값 LS-1 실행 후 의 Key 값
3.P8 Key 1 Index 2 3 4 5 6 7 8 9 10 Key1값 생성 : 1 1 1 0 0 1 0 1 Key값 1 Index 2 3 4 5 6 7 8 9 10 Key값 P8 실행 후 의 Key 값 Key1값 생성 : 1 1 1 0 0 1 0 1
4.Shift(LS-2) Key 1 Index 5 2 7 4 3 9 8 6 10 LS-1 Key값 LS-2 실행 후 1 Index 5 2 7 4 3 9 8 6 10 LS-1 Key값 LS-2 실행 후 의 Key 값
5.P8 Key 1 Index 2 3 4 5 6 7 8 9 10 Key2값 생성 : 0 1 1 0 0 0 1 1 Key값 Index 2 3 4 5 6 7 8 9 10 Key값 P8 실행 후 의 Key 값 Key2값 생성 : 0 1 1 0 0 0 1 1
Part2.평문 의 암호화 Simplified DES Scheme Encryption Detail
1. IP 주어진 평문 8비트로 순열(치환) 연산을 하여 Index값을 변환 시킨다. IP연산 후 얻어진 결과를 좌측부터 4비트씩 두 부분(0111 0100)으로 나눈 후 우측의 4비트 (0100) 를 가지고 Fk 함수 연산을 시작한다. 평문 1 Index 2 3 4 5 6 7 8 값
2.E/P (expansion/permutation) 입력된 4비트 값을 8비트로 확장 시키는 연산을 수행한다. 값 1 결과값 00101000 Index 4 2 3
3.XOR연산 값 Key1 결과값 1 확장된 8비트 값(00101000)과 입력받은 Key1의 값을 XOR연산 한다. 얻어진 8비트 값을 다시 좌측부터 4 비트씩 2부분(1100 1101)으로 나누어 좌측 4비트는 S0-box에 다음 4비트는 S1-box의 연산에 쓰여진다. 값 1 Key1 결과값
4.S-box 연산 S-1 S-0 1100 의 입력값 : 01 출력 1101의 입력값 : 00 출력 1 2 3 1 2 3 1100 의 입력값 : 01 출력 1101의 입력값 : 00 출력
5.P4 S-BOX 연산에 의해 얻어진값 0100 의 순열을 변환 시키는 연산 값 1 Index 2 3 4
6. XOR 연산 P4에 의해 얻어진 값 1000과 첫 IP연산후 얻어진 값 중 왼쪽 4비트 값을 XOR 연산 시킨다. 이때 얻어진 값(1111) 과 최초의 IP 연산후에 우측4비트로 나누어진 값 (0100)이 스위치 연산에의해 (0100 1111) 의 8비트로 만들어지고 이를 다시 좌측부터 4비트씩 2부분으로 나누어 우측의 (1111)4비트를 가지고 다음의 fk함수연산을 실행한다. 값 1 L 결과값
7.E/P 입력된 4비트 값을 8비트로 확장 시키는 연산을 수행한다. Value 1 결과값 11111111 Index 4 2 3
8. XOR연산 값 Key2 결과값 1 확장된 8비트 값(11111111)과 입력받은 Key2의 값을 XOR 연산 한다. 얻어진 8비트 값을 다시 좌측부터 4 비트씩 2부분(1001 1100)으로 나누어 좌측 4비트는 S1-box에 다음 4비트는 S2-box의 연산에 쓰여진다. 값 1 Key2 결과값
9.S-box 연산 S-1 S-2 1001 의 입력값 : 11 출력 1100의 입력값 : 01 출력 1 2 3 S-2 1 2 3 1001 의 입력값 : 11 출력 1100의 입력값 : 01 출력
10.P4 S-BOX 연산에 의해 얻어진값 1101의 순열을 변환 시키는 연산 값 1 Index 2 3 4
11. XOR 연산 P4에 의해 얻어진 값 1110과 처음 IP연산 후 얻어진 값중 오른쪽 4비트 값을 XOR 연산 시킨다. 값 1 R 결과값
12.IP-1 평문 Index IP-1 (Inverse IP) 암호문 : 11011011 (8bit ciphertext) 1 전 단계에서 얻어진 4비트 (1001)과 첫번째 fk의 두번째 XOR의 결과 4비트(1111)를 이용하여 역순열 작업을 하여준 후 여기서 얻어진 최종 값이 바로 최종의 S-DES암호문 값이 된다. 평문 1 Index 2 3 4 5 6 7 8 IP-1 암호문 : 11011011 (8bit ciphertext)
Part3.복호화 최종 으로 얻어진 암호문을 가지고 역순의 연산을 통해 최초로 주어졌던 평문을찾아 내는 방법 8-bit ciphertext 최종 으로 얻어진 암호문을 가지고 역순의 연산을 통해 최초로 주어졌던 평문을찾아 내는 방법 8-bit plaintext
1. IP 암호문 Index 값 IP연산 후 얻어진 결과를 좌측부터 4비트씩 두 부분(1001 1111)으로 주어진 암호문 8비트로 IP-1 연산의 역인 IP연산 하여 Index값을 변환 시킨다. 암호문 1 Index 2 3 4 5 6 7 8 값 IP연산 후 얻어진 결과를 좌측부터 4비트씩 두 부분(1001 1111)으로 나눈 후 우측의 4비트 (1111) 를 가지고 fk 함수 연산을 시작한다.
2.E/P (expansion/permutation) 입력된 4비트 값을 8비트로 확장 시키는 연산을 수행한다. 값 1 결과값 11111111 Index 4 2 3
3.XOR연산 값 Key2 결과값 1 확장된 8비트 값(01010101)과 입력받은 Key2의 값을 XOR연산 한다. 얻어진 8비트 값을 다시 좌측부터 4 비트씩 2부분(1001 1100)으로 나누어 좌측 4비트는 S0-box에 다음 4비트는 S1-box의 연산에 쓰여진다. 값 1 Key2 결과값
4.S-box 연산 S-1 S-0 1001 의 입력값 : 11 출력 1100의 입력값 : 01 출력 1 2 3 1 2 3 1001 의 입력값 : 11 출력 1100의 입력값 : 01 출력
5.P4 S-BOX 연산에 의해 얻어진값 1101 의 순열을 변환 시키는 연산 값 1 Index 2 3 4
6. XOR 연산 P4에 의해 얻어진 값 1101과 암호화 과정에서 IP연산후에 얻어진 값 중 왼쪽 4비트 값을 XOR 연산 시킨다. 값 1 L 결과값
7.E/P 입력된 4비트 값을 8비트로 확장 시키는 연산을 수행한다. Value 1 결과값 00101000 Index 4 2 3
8. XOR연산 값 Key1 결과값 1 확장된 8비트 값(00101000)과 입력받은 Key1의 값을 XOR 연산 한다. 얻어진 8비트 값을 다시 좌측부터 4 비트씩 2부분(1100 1101)으로 나누어 좌측 4비트는 S1-box에 다음 4비트는 S2-box의 연산에 쓰여진다. 값 1 Key1 결과값
9.S-box 연산 S-1 S-2 1101의 입력값 : 00 출력 1100 의 입력값 : 01 출력 1 2 3 S-2 1 2 3 1101의 입력값 : 00 출력 1100 의 입력값 : 01 출력
10.P4 S-BOX 연산에 의해 얻어진값 0001의 순열을 변환 시키는 연산 값 1 Index 2 3 4
11. XOR 연산 P4에 의해 얻어진 값 0001과 첫 IP연산 후 얻어진 값 중 오른쪽 4비트 값을 XOR 연산 시킨다. 값 1 R 결과값
12.IP-1 Input Index IP-1 (Inverse IP) 평문 : 10100101 (8bit plaintext) 1 전 단계에서 얻어진 4비트 (0111)과 첫번째 fk의 두번째 XOR의 결과 4비트(0100)를 이용하여 역순열 작업을 하여준 후 여기서 얻어진 최종 값이 바로 최종의 S-DES평문값이 된다. Input 1 Index 2 3 4 5 6 7 8 IP-1 평문 : 10100101 (8bit plaintext)
Feistel Cipher Structure Virtually all conventional block encryption algorithms, including DES have a structure first described by Horst Feistel of IBM in 1973 The realization of a Fesitel Network depends on the choice of the following parameters and design features (see next slide):
Feistel Cipher Structure Block size: larger block sizes mean greater security Key Size: larger key size means greater security Number of rounds: multiple rounds offer increasing security Subkey generation algorithm: greater complexity will lead to greater difficulty of cryptanalysis. Fast software encryption/decryption: the speed of execution of the algorithm becomes a concern
Classical Feistel Network K1 Ki
Conventional Encryption Algorithms Data Encryption Standard (DES) The most widely used encryption scheme The algorithm is reffered to the Data Encryption Algorithm (DEA) DES is a block cipher The plaintext is processed in 64-bit blocks The key is 56-bits in length
General Depiction of DES Encryption Algorithm 64bits = 56bits key + parity bits or simply set arbitrary
DES Concerns about: The overall processing at each iteration: Li = Ri-1 Ri = Li-1 F(Ri-1, Ki) Concerns about: The algorithm and the key length (56-bits)
Time to break a code (106 decryptions/µs)
Triple DEA Use three keys and three executions of the DES algorithm (encrypt-decrypt-encrypt) C = ciphertext P = Plaintext EK[X] = encryption of X using key K DK[Y] = decryption of Y using key K Effective key length of 168 bits C = EK3[DK2[EK1[P]]]
Triple DEA
Other Symmetric Block Ciphers International Data Encryption Algorithm (IDEA) 128-bit key Used in PGP(Pretty Good in Privacy) Blowfish Easy to implement High execution speed Run in less than 5K of memory
Other Symmetric Block Ciphers RC5 Suitable for hardware and software Fast, simple Adaptable to processors of different word lengths Variable number of rounds Variable-length key Low memory requirement High security Data-dependent rotations Cast-128 Key size from 40 to 128 bits The round function differs from round to round
Cipher Block Modes of Operation Cipher Block Chaining Mode (CBC) The input to the encryption algorithm is the XOR of the current plaintext block and the preceding ciphertext block. Repeating pattern of 64-bits are not exposed For first block, need “initialization vector”, IV IV must be known to sender and receiver (often all 0’s)
Cipher Feedback (CFB) Mode Allows use of DES as a stream cipher (appropriate when data inherently arrives in bits/bytes) Start with IV Encrypt XOR (MSB) j bits of output with j bit plaintext Result is ciphertext Shift IV by j bits, insert ciphertext J-bit CFM Mode (Encryption)
Location of Encryption Device Link encryption: A lot of encryption devices High level of security Decrypt each packet at every switch End-to-end encryption The source encrypt and the receiver decrypts Payload encrypted Header in the clear High Security: Both link and end-to-end encryption are needed (see Figure 2.9)
Key Distribution A key could be selected by A and physically delivered to B. A third party could select the key and physically deliver it to A and B. If A and B have previously used a key, one party could transmit the new key to the other, encrypted using the old key. If A and B each have an encrypted connection to a third party C, C could deliver a key on the encrypted links to A and B.
Key Distribution (See Figure 2.10) Session key: Data encrypted with a one-time session key. At the conclusion of the session the key is destroyed Permanent key: Used between entities for the purpose of distributing session keys
Summary Conventional Description Algorithms Requirements of DES Key generation for simplified DES Simplified DES Scheme Encryption Detail Location of Encryption Device Key distribution by KDC