STREAM 1 Stream 2 RC 4 5 Stream

  • Slides: 76
Download presentation

STREAM 암호 1 Stream 암호 2 RC 4 알고리즘 5

STREAM 암호 1 Stream 암호 2 RC 4 알고리즘 5

Stream 암호 8

Stream 암호 8

Simplified DES 3. 1 S-DES 개요 3. 2 S-DES 키의 생성 3. 3 S-DES

Simplified DES 3. 1 S-DES 개요 3. 2 S-DES 키의 생성 3. 3 S-DES 암호 알고리즘 3. 4 S-DES의 분석 16

3. 1 S-DES 개요 (2/2) 18

3. 1 S-DES 개요 (2/2) 18

3. 2 S-DES 키의 생성 (1/4) • K 1 = P 8(Shift(P 10(key))) •

3. 2 S-DES 키의 생성 (1/4) • K 1 = P 8(Shift(P 10(key))) • K 2 = P 8(Shift(P 10(key))) S-DES를 위한 키 생성 19

3. 2 S-DES 키의 생성 (2/4) v 키생성 K 1 = P 8(Shift(P 10(key)))

3. 2 S-DES 키의 생성 (2/4) v 키생성 K 1 = P 8(Shift(P 10(key))) v 10 비트 키 = (k 1, k 2, k 3, k 4, k 5, k 6, k 7, k 8, k 9, k 10) v P 10 순열 = (k 3, k 5, k 2, k 7, k 4, k 10, k 1, k 9, k 8, k 6) P 10 3 예제 5 2 7 4 12345 10 1 9 8 6 67890 v 10 bit key = ( 1 0 0 0 1 0 ) v. P 10(key) = (10000 01100) 20

3. 2 S-DES 키의 생성 (3/4) v 키 생성 K 1 = P 8

3. 2 S-DES 키의 생성 (3/4) v 키 생성 K 1 = P 8 ( Shift ( P 10 ( key ))) v (Shift(P 10(key))): LS-1[키의 1 st 5비트] & LS-1[키의 2 nd 5비트] u 앞 다섯 비트와 뒤 다섯 비트 좌로 순환 이동(1 bit 좌측 순환이동) v P 10 =( k 3, k 5, k 2, k 7, k 4, k 10, k 1, k 9, k 8, k 6 ) v Shift =( k 5, k 2, k 7, k 4, k 3, k 1, k 9, k 8, k 6, k 10 ) v 예제) u P 10 5 06 1 78 = ( 1102 03 04 0 1 90 00 ) u LS-1 =(00001 11000) 21

3. 2 S-DES 키의 생성 (4/4) v 키생성 K 1 = P 8(Shift(P 10(key)))

3. 2 S-DES 키의 생성 (4/4) v 키생성 K 1 = P 8(Shift(P 10(key))) = P 8(LS-1) v P 8(LS-1) = P 8( 0 0 1 u 11000) 10 비트에서 8비트 선택 치환 v K 1 = ( 1 0 0 ) v K 2 = P 8(Shift(P 10(key)))) = P 8(Shift(LS-1)) = P 8(LS-2) v LS-2 = Shift(LS-1) : LS-1의 결과에 2비트 좌측 순환 이동 v K 2 = P 8(LS-2) = P 8( 0 0 1 0 0 0 1 1 ) = ( 0 1 0 0 1 1 ) 22

함수 fk (2/4) v 8비트 서브키 K 1 = (k 11, k 12, k

함수 fk (2/4) v 8비트 서브키 K 1 = (k 11, k 12, k 13, k 14, k 15, k 16, k 17, k 18) v XOR 연산 n 4 k 11 n 1 k 12 n 2 k 13 n 3 k 14 p 0, 0 p 0, 1 p 0, 2 p 0, 3 n 2 k 15 n 3 k 16 n 4 k 17 n 1 k 18 p 1, 0 p 1, 1 p 1, 2 p 1, 3 v S-Box 25

DES의 한 회전 L key R 32 32 expand 48 48 S-boxes 28 28

DES의 한 회전 L key R 32 32 expand 48 48 S-boxes 28 28 shift 28 28 Ki compress 48 28 28 32 32 P box 32 L R 32 key 31

DES 확장 순열 v 입력 32 비트 0 1 2 3 4 5 6

DES 확장 순열 v 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 v 출력 48 비트 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 32

DES S-box v 8 “교환 박스” 또는 S-박스 v 각 S-박스는 6 비트를 4

DES S-box v 8 “교환 박스” 또는 S-박스 v 각 S-박스는 6 비트를 4 비트로 매핑 v 1번 S-박스 입력 비트(0, 5) 입력 비트 (1, 2, 3, 4) | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ------------------------------------------00 | 1110 0100 1101 0010 1111 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 1001 0111 0101 1011 0011 1110 1010 0000 0110 1101 33

DES P-box v 입력 32 비트 0 1 2 3 4 5 6 7

DES P-box v 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 v 출력 32 비트 15 1 6 19 20 28 11 27 16 7 23 13 31 26 2 0 14 22 25 8 18 12 29 4 17 30 5 21 10 34 9 3 24

DES 보조키 v 56 비트 DES 키: 0, 1, 2, …, 55 v 좌

DES 보조키 v 56 비트 DES 키: 0, 1, 2, …, 55 v 좌 반쪽 키 비트: LK 49 42 35 28 21 0 50 43 36 29 8 1 51 44 37 16 9 2 52 45 14 7 22 15 30 23 38 31 v 우 반쪽 키 비트: RK 55 48 41 34 27 6 54 47 40 33 12 5 53 46 39 18 11 4 24 17 20 13 26 19 32 25 10 3 35

AES Shift. Row v 회전 이동 47

AES Shift. Row v 회전 이동 47

TEA 암호화 v 32개 회전을 가정 (K[0], K[1], K[2], K[3]) = 128 bit key

TEA 암호화 v 32개 회전을 가정 (K[0], K[1], K[2], K[3]) = 128 bit key (L, R) = plaintext (64 -bit block) delta = 0 x 9 e 3779 b 9 sum = 0 for i = 1 to 32 sum += delta L += ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) R += ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) next i ciphertext = (L, R) 56

TEA 복호화 v 32개 회전을 가정 (K[0], K[1], K[2], K[3]) = 128 bit key

TEA 복호화 v 32개 회전을 가정 (K[0], K[1], K[2], K[3]) = 128 bit key (L, R) = ciphertext (64 -bit block) delta = 0 x 9 e 3779 b 9 sum = delta << 5 for i = 1 to 32 R = ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) L = ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) sum = delta next i plaintext = (L, R) 57