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를 가지고 있다면 수신자를 속일 수 있다. (이 부분을 내가 잘 이해하지 못했다.)
□ 암호 피드백 모드(CFB)
- 암호 피드백 모드를 이용하여 블록 암호를 스트림 암호로 바꿀 수 있다.(왜 블록 암호를 스트림 암호로 바꾸려고 하는지 이해하지 못했다. ㅠㅠ 누군가 알고 계시면 댓글로 알려주세요.)
- 스트림 암호의 바람직한 특성은 암호문의 길이가 평문의 길이와 같다는 것이다.(이 부분도 이해가 안 갔어요. ㅠㅠ)
□ 카운터 모드(CTR)
- 네트워크 보안과 IPsec에 응용되는 모드이다
- 카운터 값이 반드시 암호화할 각각 평문 블록 별로 달라야 한다. 따라서 주로 초기값 카운터 결정 후 Counter(n) = Counter(n-1) + 1의 값을 사용한다.
- C1 = P1 ⊕ E(K, Counter1)
- P1 = C1⊕D(K, Counter1)
ㅇ 카운터 모드의 장점
- 하드웨어 효율성 : 처리속도가 향상된다.
- 소프트웨어 효율성 : 병렬 처리가 가능하여 효율적으로 처리할 수 있다.
- 사전처리 : 하부 암호 알고리즘이 입력값(평문, 암호문)에 영향을 받지 않으므로 카운터를 미리 준비할 수 있어서 처리속도를 높일 수 있다.
- 랜덤 접근 : 체인 모드에서는 블록 Ci 계산을 위하여 Ci-1을 계산하여야 하지만, 카운터 모드에서는 전 단계 블록이 다음 단계 암호화에 영향을 주지 않으므로 원하는 블록을 임의 접근하여 암호화할 수 있다.
- 보안성 : 간단하고 단순한데 비해 다른 암호화 운용 모드만큼 안전하다.
- 단순성 : 암호화 알고리즘만 있으면 복호화 알고리즘이 필요 없다.
지금까지 내용을 나름대로 완벽하게 이해하고 넘어가려고 노력했으나, 블록 운용 암호 단원에서는 이해하기 너무 어려워서 진도가 나가지 못했다.
일단 올해 이 책을 끝내는 것을 목표로 하고 완벽하게 이해하지 않더라도 어느 정도 하고 넘어가야겠다.
질문할 사람이 있으면 좋겠다.
대학생 때 질문할 수 있을 때 공부 열심히 할걸 ㅠㅠ
'네트워크보안에센셜' 카테고리의 다른 글
Chapter 03. 공개키 암호와 메시지 인증 - 3.1 메시지 인증 방법 (0) | 2020.09.19 |
---|---|
Chapter 02. 대칭 암호와 메시지 기밀성 - 복습문제 (0) | 2020.09.15 |
Chapter 02. 대칭 암호와 메시지 기밀서 - 2.4 스트림 암호와 RC4 (0) | 2020.09.10 |
2.2 대칭 암호 알고리즘, 2.3 랜덤넘버와 의사랜덤넘버 (0) | 2020.09.09 |
Chapter 02. 대칭 암호와 메시지 기밀성 - 2.1 대칭 암호 원리 (0) | 2020.09.09 |