네트워크보안에센셜

Chapter 02. 대칭 암호와 메시지 기밀성 - 2.5 암호 블록 운용 모드

영차영차33 2020. 9. 15. 17:55

Chapter 02. 대칭 암호와 메시지 기밀성

2.5 스트림 암호와 RC4

블록 암호를 다양한 응용에 사용하기 위해 NIST에서는 5가지 운용 모드를 정의하였다. 

이 5가지 운용모드는 모든 대칭 블록 암호에 적용이 가능한다. 

 

□ 전자 코드북 모드(ECB)

  • 한 번에 b비트 크기의 블록으로 쪼갠다
  • 동일한 키로 각 블록을 암호화한다. 
  • 암호 블록 - 평문 블록이 1:1 매칭 된다.
  • 같은 평문 블록이 나타나면 동일한 암호문이 생성기 때문에 긴 메시지에는 안전하지 않다.
  • 메시지에 b비트의 배수를 주기로 반복되는 요소가 있다면 쉽게 해독이 가능하다

=> 같은 평문이 반복되더라도 동일하지 않은 암호 블록을 생성하는 기술이 필요하다.

 

□ 암호 블록 체인 모드(CBC)

  • 현재의 평문 블록과 바로 직전의 암호 블록을 XOR 하여 암호화한다. 
  • 각 블록에서 동일한 키를 사용하여 암호화 한다.
  • (암호화) Cj = E(K, Cj-1⊕Pj)
  • (복호화) Pj = D(K, Cj-1) ⊕ Cj
  • 첫 번째 암호 블록을 만들기 위해서는 초기화 벡터(IV) 값이 필요하다.
  • 초기화 벡터는 키 값과 같이 송신자, 수신자가 공유하여야 하며, 키처럼 보호하여야 한다.
  • 공격자가 다른 값을 갖는 IV를 가지고 있다면 수신자를 속일 수 있다. (이 부분을 내가 잘 이해하지 못했다.)

암호 블록 체인 모드(CBC)

□ 암호 피드백 모드(CFB)

  • 암호 피드백 모드를 이용하여 블록 암호를 스트림 암호로 바꿀 수 있다.(왜 블록 암호를 스트림 암호로 바꾸려고 하는지 이해하지 못했다. ㅠㅠ 누군가 알고 계시면 댓글로 알려주세요.)
  • 스트림 암호의 바람직한 특성은 암호문의 길이가 평문의 길이와 같다는 것이다.(이 부분도 이해가 안 갔어요. ㅠㅠ) 
  •  

암호 피드백 모드(CFB)

 

□ 카운터 모드(CTR)

  • 네트워크 보안과 IPsec에 응용되는 모드이다
  • 카운터 값이 반드시 암호화할 각각 평문 블록 별로 달라야 한다. 따라서 주로 초기값 카운터 결정 후 Counter(n) = Counter(n-1) + 1의 값을 사용한다.  
  • C1 = P1 ⊕ E(K, Counter1)
  • P1 = C1⊕D(K, Counter1) 

 

카운터 모드(CTR)

ㅇ 카운터 모드의 장

  • 하드웨어 효율성 : 처리속도가 향상된다.
  • 소프트웨어 효율성 : 병렬 처리가 가능하여 효율적으로 처리할 수 있다. 
  • 사전처리 : 하부 암호 알고리즘이 입력값(평문, 암호문)에 영향을 받지 않으므로 카운터를 미리 준비할 수 있어서 처리속도를 높일 수 있다. 
  • 랜덤 접근 : 체인 모드에서는 블록 Ci 계산을 위하여 Ci-1을 계산하여야 하지만, 카운터 모드에서는 전 단계 블록이 다음 단계 암호화에 영향을 주지 않으므로 원하는 블록을 임의 접근하여 암호화할 수 있다. 
  • 보안성 : 간단하고 단순한데 비해 다른 암호화 운용 모드만큼 안전하다. 
  • 단순성 : 암호화 알고리즘만 있으면 복호화 알고리즘이 필요 없다. 

지금까지 내용을 나름대로 완벽하게 이해하고 넘어가려고 노력했으나, 블록 운용 암호 단원에서는 이해하기 너무 어려워서 진도가 나가지 못했다. 

일단 올해 이 책을 끝내는 것을 목표로 하고 완벽하게 이해하지 않더라도 어느 정도 하고 넘어가야겠다. 

질문할 사람이 있으면 좋겠다. 

대학생 때 질문할 수 있을 때 공부 열심히 할걸 ㅠㅠ