Shine's dev log

블록 암호 운용방식 (Modes of operation) 본문

보안

블록 암호 운용방식 (Modes of operation)

dong1 2020. 5. 14. 23:25

1. 블록 암호 운용방식

 

블록 암호의 운용 방식은 다음과 같다.

하나의 키로 블록 암호를 반복적으로 안전하게 이용하게 하는 절차.

 

예를들어 DES의 경우, 블록사이즈가 64비트이다. 그렇다면, 평문을 64비트 단위로 쪼개서 여러번 암호화를 수행해야 할 것이다. 이 때, 반복적으로 이용하는 방법에 따라 여러가지 모드로 나눌 수 있다.

 

블록암호를 운용하는 방식에 따라 ECB, CBC, CFB, OFB, CTR 모드가 있다.

 

 

 

2. ECB 모드 (Electric Code Book)

 

평문을 N개의 n-bit 블록으로 분할하여 각각 독립적으로 암호화 하는 방식

ECB mode

  • 특징

- 마지막 부분에 padding이 필요하다.

- 병렬처리가 가능하다.

- 두개 이상의 블록을 갖는 메세지에는 권장하지 않는다.

- 오류파급 : 단일 비트 오류가 해당 블록의 비트들의 오류가 된다. (다른 블록에 영향x)

 

 

  • 안전성 이슈

- 패턴이 유지되고, 같은 평문블록은 같은 암호문 블록을 만든다.

- 블록간의 독립성 때문에 키를 몰라도 특정 블록 바꿔치기를 통해 변조가 가능하다.

- 사진파일 같은 경우에 암호화가 되어도 식별 가능할 수 있다.

 

 

 

3. CBC 모드 (Cipher Block Chaining)

 

각각의 평문 블록이 암호화되기 전에 이전 암호문 블록과 XOR 되는 모드

 

CBC mode

 

  • 특징

- 첫번째 블록은 XOR할 이전 암호문 블록이 없으므로, 초기벡터(IV)가 필요하다. (송-수신자 사이에 공유되어야 한다.)

- 다음 블록 암호화할 때 필요하므로 메모리에 저장 필수.

- 병렬처리가 불가능하다.

- 랜덤하게 선택된 블록을 암,복호화 할 수 없다.

- 오류파급 : P(i) 블록의 단일비트 오류시 C(i) 블록에서는 대부분의 비트에 오류발생, C(i+1) 암호문은 같은위치에 단일비트 오류 발생.

 

  • 안전성 이슈

- 블록단위의 패턴유지 불가 (단, IV가 같으면 패턴유지 가능)

 

 

 

4. CFB 모드 (Cipher FeedBack)

 

CBC의 변형으로, 블록 암호를 비트 스트림으로 생각하는 방식.

 

  • 특징

- 블록크기가 n 이지만, 평문의 크기는 r (r<n)인 경우에 사용

- 평문과 이동레지스터의 r비트를 XOR한 결과가 다음 단계에 피드백된다.

- 초기벡터(IV) 필요.

- 스트림 데이터 암호화나 인증에 자주 사용됨.

- CFB모드에서 이동 레지스터의 값을 다음 단계에 이용하면 OFB모드가 된다.

- 복호화때도 암호화과정이 사용된다.

 

  • 안전성 이슈

- CBC와 마찬가지로 블록 단위의 패턴이 유지되지 않는다.

- 같은 IV로 암호화하면, 같은 결과 나온다.

- 암호문 덧붙이기 가능하다.

 

 

 

5. CTR 모드 (CounTeR)

 

CFB모드와 유사하지만, 피드백 값을 이용하는 것이 아니라 독립적인 카운터(counter)값을 이용한다.

 

Counter

 

  • 특징

- 암호화시 피드백 존재x (병렬처리 가능)

- 키 스트림의 의사난수성은 counter를 사용하여 성취한다.

- 각각의 평문 블록에 대해 각각 다른 카운터 사용해야 한다.

- 고속 네트워크 암호화에 이용.

- 복호화때도 암호화과정이 사용된다.

- 오류파급 : 암호문의 1비트 오류는 단지 대응되는 평문의 한비트에 영향

 

  • 안전성 이슈

- 블록단위 패턴유지 불가.

 

 

오늘 배운 내용을 정리해보면,

 

1. 블록암호를 사용할 때 운영방식에 따라 ECB, CBC, CFB, CTR모드 등이 있다.

 

 

본 내용은 공부하며 정리한 것으로, 치명적인 오류가 있을 수 있습니다.

 

 

'보안' 카테고리의 다른 글

공개키 암호 (Public key Cryptography)  (0) 2020.05.27
메세지 인증 (Message Authentication)  (1) 2020.05.15
RC4 암호 알고리즘  (0) 2020.05.14
AES 암호화  (0) 2020.05.08
DES 암호화  (0) 2020.05.07