문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 네트워크 보안]] == 개요 == [[블록 암호화]]기법을 사용할 경우 만약 블록의 내용이 겹치거나 같을 경우 같은 암호문을 생성해 낼 수 있다. 만야 공격자가 동일한 암호문을 발견할 경우 원문을 추적해 낼 수 있다는 가능성이 존재한다. 더 나아가 동일 암호문 블록의 발견에 더해서 하위 프로토콜 구조에 대한 지식까지 활용하면 전체 메시지를 복호화 해 낼 수 있다. 이 문제를 해결하기 위해서 평문 블록이 동일하더라도 다른 암호문 블록이 생성될 수 있도록 기존 암호화 기술에 임의성을 추가할 수 있다. == CBC (Cipher Block Chaining) == 기본 아이디어는 첫 번째 메시지와 함께 임의의 수를 단 한번만 전송하고 이후의 임의의 수로는 직전에 계산된 암호문 블록을 대신 사용하는 것이다. # 메시지를 암호화하기 전에 송신자는 초기화 벡터 (IV, Initialization Vector)라 불리는 임의의 k 비트열을 생성한다. 이 초기화 벡터를 c(0)라 하면 송신자는 이 초기화 벡터를 평문 형태로 수신자에게 보낸다. # 첫 번째 블록에 대해서 송신자는 평문의 첫 번째 블록과 IV의 배타적 논리합을 구한다. 그 다음, 그 결과를 블록 암호 알고리즘의 입력으로 사용하여 해당하는 암호문 블록을 얻는다. 송신자는 이 암호화된 블록 c(1)을 수신자로 전송한다. # i 번째 블록에 대해서 송신자는 <math> c(i) = Ks(m(i)) \bigoplus c(i-1)) </math> 의 식을 이용해서 i 번째 암호문 블록을 만들어 낸다. == 결과 == 수신자는 Ks 로 복호화 하여 <math> s(i) = m(i) \bigoplus c(i - 1) </math>를 얻어 낸다. # 수신자는 여전히 원래 메시지를 복구해 낼 수 있다. # 두 평문 블록이 동일하더라도 해당 암호문은 거의 모든 경우 서로 달라진다. # IV를 암호화 하지 않고 보내더라도 침입자는 Ks를 모르기 때문에 암호문 블록을 연전히 해독해 낼 수 없다. 암호 블록 체이닝 문서로 돌아갑니다.