sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars5 | |
extra_vars6 |
운영 모드 ( Mode of Operation )
스트림 사이퍼의 경우에는 비트 혹은 바이트 단위의 평문을 곧바로 처리하지만 블록 사이퍼의 경우에는 블록 단위로 처리하므로 몇 가지 고려할 점이 생기게 됩니다.
1) 패딩 ( Padding )
평문이 반드시 블록 비트 수의 배수 길이로 존재하지는 않으므로 마지막 블록을 처리할 때는 블록 비트 수보다 적은 경우가 많습니다.
(예) DES에서 입력 평문의 비트 수가 100비트라면 첫 블록 64비트를 처리한 후 36비트가 남게 됨
이런 경우 64비트를 맞추어 주기 위해 보통 100000000000... 과 같은 형태로 비트를 첨가하여 주는데 이렇게 비트열을 첨가하여 블록 길이를 맞추는 것을 패딩(padding)이라고 합니다. 대부분의 암호 알고리즘 표준에서는 여러 가지 패딩 방법을 명시해 둡니다.
2) 모드 ( Mode )
기본 암호화 연산 단위를 연결하여 큰 길이의 평문을 처리하는 방법을 모드(mode)라고 하며 암호 알고리즘에 따라 여러 가지 방법이 정의되어 있습니다. 여기에서는 일반적으로 대칭키 암호에 많이 활용되는 DES의 운용 모드(mode of operation) 네 가지를 살펴보도록 하겠습니다.
█ ECB(Electronic Code Book)► 가장 기본적인 운용 방법으로 입력 평문 X1 X2 ... Xn에 대하여 각각의 대응되는 암호문 Y1 Y2 ... Yn을 생성하는 방법► 앞뒤 블록 간에 아무런 연관이 없으므로 병렬 처리가 가능하고 속도가 빠름► 평문-암호문의 상관 관계가 쉽게 드러나 known-plaintext attack이나 블록의 일부를다른 것으로 바꾸는 블록 재생 공격(replay attack)에 대하여 매우 취약█ CBC(Cipher Block Chaining)► 이전 블록의 암호문을 평문 블록과 XOR한 후 암호화 하는 방법으로 가장 많이 사용되는 모드► 최초 평문 블록에 대해서는 초기화 벡터(Initialization Vector)가 필요하며, 평문-암호문의 패턴이 감추어지고 평문의 첫 블록이 암호문의 마지막 블록까지 영향을 주므로 known-plaintext attack이나 재생 공격에 대해 강함► 암호화 용도 뿐 아니라 인증을 위한 MAC을 생성할 때 많이 사용됨█ CFB(Cipher Feedback)► 이전 블록의 암호문을 암호화한 후 평문 블록과 XOR하는 것으로 블록 사이퍼를 스트림 사이퍼처럼 구현하는 방법► 최초 평문 블록에 대해서는 초기화 벡터가 필요하며, 평문-암호문의 패턴이 감추어지고 평문의 첫 블록이 암호문의 마지막 블록까지 영향을 주는 특성을 갖고 있음█ OFB(Output Feedback)► 초기화 벡터로부터 반복적으로 암호화하면서 매 결과 블록을 평문 블록과 XOR하여 암호문을 구하는 것으로 역시 블록 사이퍼를 스트림 사이퍼처럼 구현하는 방식► 암호화를 시작하기 전에 미리 초기화 벡터를 암호화한 비트 열을 계산해 둘 수 있어 효율적인 연산이 가능함