암호 블록 체인 모드 (CBC)
CBC (Cipher Block Chaining) 모드는 대칭 키 암호화에서 사용되는 블록 암호 운용 모드 중 하나입니다.
이 모드는 암호화되지 않은 평문 블록과 이전의 암호문 블록 간에 XOR(배타적 논리합) 연산을 수행한 후, 그 결과를 블록 암호 알고리즘을 통해 암호화하여 암호문 블록을 생성합니다.
이 과정은 평문의 각 블록에 대해 연쇄적으로 수행됩니다.
CBC 모드의 주요 특징은 다음과 같습니다:
- 초기화 벡터 (IV)
- CBC 모드에서 첫 번째 평문 블록을 암호화하기 전에 초기화 벡터(IV)라는 무작위 값과 XOR 연산을 수행합니다.
- 이렇게 하면 동일한 평문 블록이 암호화될 때마다 다른 암호문 블록이 생성되어, 암호문의 패턴 분석을 어렵게 만듭니다.
- 오류 전파
- 암호문 블록에 오류가 발생하면, 복호화 과정에서 오류가 전파되어 영향을 받는 평문 블록이 두 개가 됩니다.
- 오류가 발생한 암호문 블록은 잘못된 평문 블록으로 복호화되며, 바로 다음 블록의 복호화 과정에서도 오류가 전파되어 영향을 받습니다.
- 그러나 그 이후의 블록들은 영향을 받지 않습니다.
- 패딩
- 평문의 길이가 블록 크기로 나누어 떨어지지 않을 경우, 패딩이 필요합니다.
- 패딩은 평문의 마지막 블록에 추가되는 일정한 규칙을 가진 데이터입니다.
- 복호화 시, 패딩을 제거하여 원래의 평문을 얻을 수 있습니다.
CBC 모드는 블록 암호 알고리즘의 일반적인 운용 모드로, 패턴 분석을 어렵게 만들어 주는 특징 덕분에 보안성이 높다고 평가됩니다.
그러나 병렬 처리가 어렵다는 단점도 있습니다.
CBC의 Self Recovery 증명
CBC 암호화에서 Self-Recovery 또는 이전 블록의 오류가 다음 블록(바로 다음 블록 제외)들에 영향을 미치지 않는다의 의미에 대해 이해한 것을 토대로 기록하겠습니다
의문점 : 이름부터가 Cipher Chain인데 당연히 영향을 미친다고 봐야 하지 않을까?
- CBC에서 다른 블록의 영향을 미치지 않는다는 이전 블록의 오류가 다음 블록들의 복호화 하는데 이상이 없음을 나타냅니다
아래 CBC 암호화의 일반식을 이해가 쉽습니다
모두가 알다시피 CBC는 블록 암호화 모드입니다. 또한 CBC의 경우 이전 블록(암호화 된)이 암호화 하는데 들어갑니다
복호화를 한다면 역순으로 진행을 할텐데, 이 때 당연히 이전 암호 블록 C_i가 들어갈 것입니다
이 부분이 핵심입니다. 오류가 발생한 암호 블록을 통짜로 가져다가 복호화를 하니, 오류가 더 이상 전파가 되지 않는다고 보는 것입니다.
오류가 발생하던 안하던, 다음 블록들을 복호화하는데 아무 영향도 없습니다
위의 복화화 과정에 corruption을 추가해도 아래와 같이 다음 것에 영향을 미치지 않게 되는 것이죠
레퍼런스
'Computer Science > Security' 카테고리의 다른 글
Kerberos 심층 이해 (0) | 2023.04.17 |
---|---|
네트워크 보안 에센셜 3장 연습 문제 풀이 (0) | 2023.04.13 |
네트워크 보안 모델 (0) | 2023.04.12 |
공격대상과 공격 트리 (0) | 2023.04.12 |
보안 메커니즘 (0) | 2023.04.12 |