- 블록 암호
- 암호학에서 블록 암호(block cipher)란 기밀성있는 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템이다. 만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용된다.(예, ECB, CBC, OFB, CFB, CTR)
- 블록암호 운용방식
- 암호학에서 블록 암호 운용 방식(영어: block cipher modes of operation)은 하나의 키 하에서 블록 암호를 반복적으로 안전하게 이용하게 하는 절차를 말한다. 블록 암호는 특정한 길이의 블록 단위로 동작하기 때문에, 가변 길이 데이터를 암호화하기 위해서는 먼저 이들을 단위 블록들로 나누어야 하며, 그리고 그 블록들을 어떻게 암호화할지를 정해야 하는데, 이때 블록들의 암호화 방식을 운용 방식으로 부른다.
- 평문 블록
- 블록 암호 알고리즘에서 암호화의 대상이 되는 평문
- 평문 블록의 길이는 블록 암호 알고리즘의 블록 길이임
- 암호화 블록
- 블록 암호 알고리즘을 써서 평문 블록을 암호화한 암호문
- 주요 모드
- 전자 부호표 모드
- 평문 블록을 암호화 한 것이 그대로 암호문 블록이 됨 (평문과 암호문 블록이 1대1 관계)
- 가장 간단한 모드. 기밀성이 가장 낮음. (암호문을 살펴보면 평문속의 반복되는 패턴을 파악할 수 있음)
- 모든 평문 블록이 각각 개별적으로 암호화되고, 복호화 때에는 개별적으로 복호화 됨
- 적극적 공격자인 맬로리가 악의를 가지고 암호문 블록을 서로 바꾸었다면, 수신자가 그 암호문을 복호화하면 바뀐 암호문 블록에 대응하는 평문 블록도 바뀌게 됨
- CBC(Cipher Block Chaining)
- 암호문 블록을 마치 체인처럼 연결시키기 때문에 붙여진 이름
- CBC 모드에서는 1개 앞의 암호문 블록과 평문 블록의 내용을 뒤섞은 다음 암호화를 수행 (ECB 모드의 약점 극복 가능)
- CBC 모드에서는 1 단계 앞에서 수행되어 결과로 출력된 암호문 블록에 평문 블록을 XOR 하고 나서 암호화를 수행. 생성되는 각각의 암호문 블록은 단지 현재 평문블록 뿐만 아니라 그 이전의 평문 블록들의 영향도 받게 됨
- 각 블록은 암호화되기 전에 이전 블록의 암호화 결과와 XOR되며, 첫 블록의 경우에는 초기화 벡터가 사용된다. 초기화 벡터가 같은 경우 출력 결과가 항상 같기 때문에, 매 암호화마다 다른 초기화 벡터를 사용해야 한다.
- CBC는 암호화 입력 값이 이전 결과에 의존하기 때문에 병렬화가 불가능하지만, 복호화의 경우 각 블록을 복호화한 다음 이전 암호화 블록과 XOR하여 복구할 수 있기 때문에 병렬화가 가능하다
- 활용 예
- IPsec에는 통신의 기밀성을 지키기 위해 CBC 모드를 사용함
- 트리플 DES를 CBC 모드로 사용한 3DES-CBC
- AES를 CBC 모드로 사용한 AES-CBC 등
- 인증을 수행하는 대칭암호 시스템의 하나인 Kerberos version 5에서도 사용
- ECB(Electronic Codebook)
- PCBC(Propagating CBC)
- CFB(Cipher Feedback)
- * 피드백 : 여기서는 암호화의 입력으로 사용한다는 것을 의미
- 암호 피드백(cipher feedback, CFB) 방식은 CBC의 변형으로, 블록 암호를 자기 동기 스트림 암호로 변환한다. CFB의 동작 방식은 CBC와 비슷하며, 특히 CFB 암호 해제 방식은 CBC 암호화의 역순과 거의 비슷하다
- OFB(Output Feedback)
- 출력 피드백(output feedback, OFB)은 블록 암호를 동기식 스트림 암호로 변환한다.
- XOR 명령의 대칭 때문에 암호화와 암호 해제 방식은 완전히 동일하다:
- Counter (CTR)
- 카운터(Counter, CTR) 방식은 블록 암호를 스트림 암호로 바꾸는 구조를 가진다. 카운터 방식에서는 각 블록마다 현재 블록이 몇 번째인지 값을 얻어, 그 숫자와 nonce를 결합하여 블록 암호의 입력으로 사용한다. 그렇게 각 블록 암호에서 연속적인 난수를 얻은 다음 암호화하려는 문자열과 XOR한다.
- 카운터 모드는 각 블록의 암호화 및 복호화가 이전 블록에 의존하지 않으며, 따라서 병렬적으로 동작하는 것이 가능하다. 혹은 암호화된 문자열에서 원하는 부분만 복호화하는 것도 가능하다.
'NOWS > Security' 카테고리의 다른 글
암호 공격 방식 (0) | 2016.07.06 |
---|---|
방화벽 (Firewall) : 침입 차단 시스템 (0) | 2016.07.06 |
허니팟 (honey pot) (0) | 2016.07.06 |
IDS vs. IPS (0) | 2016.07.06 |
개인정보 영향평가 (0) | 2016.07.06 |