본문 바로가기
CS/정보보호

운용모드

by J-rain 2023. 2. 2.

개요

  • 현대 블록 암호 중 가장 대표적인 AES는 고정길이(8바이트, 16바이트) 블록을 기준으로 암호화 및 복호화를 수행한다.
  • 그러나 실제 운용환경에서는 평문의 길이가 무척 길고 가변적이기때문에 임이의 길이의 데이터를 암호화하고 복호화하는 방법인 운용 모드가 필요하다.

1. ECB (Electronic codebook, 전자코드북)

  • 운용 모드 중에서 가장 간단한 모드
  • 각 블록이 독립적으로 암/복호화가 이루어진다. => 병렬 처리 가능
  • 블록간의 독립성으로 블록 단위의 패턴이 유지된다.
  • 평문에서 같은 값을 갖는 블록은 대응하는 암호문 블록도 동일하다.
  • 임의의 한 블록에서 오류가 발생하면 다른 블록으로 오류 확산이 일어나지 않는다.

2. CBC (Cipher-Block Chaninning, 암호 블록 체인)

  • 운용 모드 중에서 가장 보안성이 높은 모드
  • 각각의 평문 블록은 암호화되기 전에 이전 블록의 암호문과 XOR 된다. => 평문의 동일한 블록들은 암호문에서 서로 다른 블록으로 암호화 된다.
  • 암호화된 블록은 전송된 후, 다음 블록의 암호화에 사용되기 위해서 메모리에 저장되어야 한다.
  • 첫 번째 블록을 암호화하기 위해서는 초기벡터(IV)값이 필요하다. 이때 IV값은 송수신자가 사전에 공유한다.

CBC 오류 확산

만약, 암호문 블록 Cj가 전송 도중 한 비트가 오류가 발생한다면 복호 과정에서 평문 블록 Pj의 대부분 블록에서 오류가 발생하며 평문 블록 Pj+1에서는 Cj 블록의 같은 위치에서 한 비트 오류가 발생한다. Pj+2 부터 평문 블록은 오류에 영향받지 않는다.


3. CFB (Cipher Feedback, 암호 피드백)

  • 평문 블록의 크기가 n 보다 작은 r (r<n) 비트를 처리하는 경우 CFB모드를 사용한다.
    (블록 크기가 작은 경우 ECB나 CBC모드는 비효율적)CFB 오류 확산

4. OFB (Output Feedback, 출력 피드백)

-   CFB와 유사하게 블록을 한 바이트나 비트 단위로 쪼개어 작은 단위로 암호화 할 수 있다.

시프트레지스터 운영 방식에 집중하자

-첫번째 시프트 레지스터에는 초기 벡터(IV) 사용

  • CFB와 다르게 시프트레지스터에 채워지는 값은 이전 블록에서 평문 블록와 XOR 연산에 사용된 값이다.

Ci를 전송하는 도중 1bit 오류가 발생했고 해당 시스템은 12bit shift register를 한다.

Ci+3을 복호화 할 때까지는 Ci는 shift register에서 사용된다. Ci+1, Ci+2, Ci+3 평문 전체에 오류가 확산된다.
즉, 전송 중에 한 블록의 암호문(Ci)에 단일 비트 오류가 발생하면, 복호화 과정에서 그에 해당하는 평문(Pi)에 한 비트 오류가 발생한다. 그리고 그 오류는 시프트레지스터에 들어가 시프트레지스터를 완전히 빠져나올 때까지 다른 평문들에 영향을 끼친다.

시프트 레지스터의 운영 방식에 집중하자

-첫번째 시프트레지스터에는 초기 벡터(IV) 사용
-시프트레지스터에 채워지는 값은 이전 블록의 암호문 값

OFB 오류 확산

복호화 과정에서 암호문 한 블록은 다른 평문 및 암호문 블록에 영향을 주지 않는다.

즉, 한 블록의 암호문에서 발생한 오류는 해당하는 한 블록에만 영향을 준다. 따라서 암호 오류의 확산이 일어나지 않는다.


5. CTR (Counter, 카운터)

  • 블록을 암호화할 때마다 1씩 증가해 가는 카운터를 암호화 해서 평문 블록와 XOR을 취한 결과가 암호문 블록이 된다.
  • 블록의 순서를 임의로 암/복호화 할 수 있어서 병렬처리가 가능하다.

CTR 오류 확산

오류 확산의 특성은 OFB와 동일하다.

즉, 암호문의 한 블록 오류는 대응되는 평문에 한 블록 오류를 발생 시킨다. 따라서 암호 오류의 확산이 일어나지 않는다.


운용모드 비교

  • 효율성(전처리 가능) : OFB, CTR
  • 오류 확산 : CBC, CFB
  • 병렬처리 가능 : ECB, CTR (복호화시 가능 : CBC, CFB)

운용모드 과정모음

)

)

  • ECB 암호화, 복호화, 오류확산

)

)

  • CBC 암호화, 복호화, 오류확산

)

)

  • CFB 암호화, 복호화, 오류확산

)

)

  • OFB 암호화, 복호화, 오류확산

)

)

  • CTR 암호화, 복호화, 오류확산

'CS > 정보보호' 카테고리의 다른 글

블록암호  (0) 2023.02.02
정보보호 기본 용어  (0) 2023.02.02
키 관리  (0) 2023.02.02
인증과 인가  (1) 2023.02.02
공개키 시스템  (1) 2023.02.02

댓글