2. ECB 모드
ECB 모드란?
전자 부호표 모드(Electric CodeBook Mode)
평문 블록을 암호화한 것이 그대로 암호문 블록
패딩(Padding)
* 마지막 평문 블록이 블록 길이에 미치지 못할 경우에 추가하여 블록 길이가 되도록 맞춘다.
안전하지 않다.
ECB 모드에 의한 암호화
ECB 모드에 의한 복호화
ECB 모드에 대한 공격 예
어느 은행의 송금 의뢰 데이터가 다음 3개의 블록으로 구성
블록1 = 송금자의 은행계좌번호(from)
블록2 = 송금처의 은행계좌번호(to)
블록3 = 송금액
송금 의뢰 데이터를 받은 은행은 지정된 금액을 송금자로 부터 송금처의 계좌로 이동
(예) A-5374의 계좌로부터 B-6671의 계좌로 1억원을 송금한다.
(a) A-5374의 계좌로 부터 B-6671의 계좌로 1억 원을 송금하라는 송금의뢰 데이터를 만들어 보자.
- A => 0x41, - => 0x2D, 5 => 0x35, 3 => 0x33, 7 => 0x37, 4 => 0x34
- 따라서, A-5374 => 41 2D 35 33 37 34
(송금자: A-5374) 평문 블록1 = 41 2D 35 33 37 34 20 20 20 20 20 20 20 20 20 20
(송금처: B-6671) 평문 블록2 = 42 2D 36 36 37 31 20 20 20 20 20 20 20 20 20 20
(송금액: 100000000) 평문 블록3 = 31 30 30 30 30 30 30 30 30 20 20 20 20 20 20 20
(b) 암호화 하자.
(송금자: ????) 암호문 블록1 = 59 7D DE CC EF EC BA 9B BF 83 99 CF 60 D2 59 B9
(송금처: ????) 암호문 블록2 = DF 49 2A 1C 14 8E 18 B6 53 1F 38 BD 5A A9 D7 D7
(송금액: ????) 암호문 블록3 = CD AF D5 9E 39 FE FD 6D 64 8B CC CB 52 56 8D 79
(c) 공격자 맬로리가 암호문 블록의 1과 2의 내용을 바꾼다.
(송금자: ????) 암호문 블록1 = DF 49 2A 1C 14 8E 18 B6 53 1F 38 BD 5A A9 D7 D7
(송금처: ????) 암호문 블록2 = 59 7D DE CC EF EC BA 9B BF 83 99 CF 60 D2 59 B9
(송금액: ????) 암호문 블록3 = CD AF D5 9E 39 FE FD 6D 64 8B CC CB 52 56 8D 79
(d) 은행이 이것을 복호화하면 다음과 같이 된다.
(송금자: A-5374) 평문 블록1 = 42 2D 36 36 37 31 20 20 20 20 20 20 20 20 20 20
(송금처: B-6671) 평문 블록2 = 41 2D 35 33 37 34 20 20 20 20 20 20 20 20 20 20
(송금액: 100000000) 평문 블록3 = 31 30 30 30 30 30 30 30 30 20 20 20 20 20 20 20
결과
원래는 A-5374의 계좌에서 B-6671의 계좌로 1억원을 송금하라는 지시였는데 B-6671의 계좌에서 A-5374의 계좌로 1억원을 송금하라는 정반대의 지시가 되어 버렸다.
'현대 암호학' 카테고리의 다른 글
[현대 암호학] 05-4. CFB 모드 (0) | 2021.06.23 |
---|---|
[현대 암호학] 05-3. CBC 모드 (0) | 2021.06.23 |
[현대 암호학] 05. 블록 암호 모드 (0) | 2021.06.23 |
[현대 암호학] 04. 실습(2) (0) | 2021.06.23 |
[현대 암호학] 04. 실습(1) (0) | 2021.06.23 |