1. 문제 정의
개인정보는 정보통신망법에 의해 암호화해서 저장해야 합니다. 따라서 업브렐라 개발팀은 AES / ECB 방법을 채택하여 사용자의 정보를 저장하려고 했습니다. 하지만 AES / ECB 방법의 허점을 인지하고 더 안전한 방법은 AES / CBC 방법을 채택하려고 합니다.
2. AES
AES란 ‘Advanced Encryption Standard’의 약자로, 현대 보안 시스텡믜 핵심 기술 중 하나입니다.
AES 암호화는 미국 정부가 2001년에 표준으로 채택한 대칭키 암호화 방식입니다. 이 방식은 128, 192, 256 비트의 세 가지 키 길이를 지원하며, 블록 암호화 방식으로 데이터를 암호화하고 복호화합니다.
AES 암호화 방식에도 여러가지 방법이 있습니다.
이번 포스팅을 통해서는 ECB와 CBC 방법에 대해 알아보도록 하겠습니다.
2 - 1 AES / ECB
ECB 모드의 특징은 다음과 같습니다. (Electronic CodeBook)
- 단순성: 각 블록은 독립적으로 암호화되며, 동일한 평문 블록은 동일한 암호문 블록으로 암호화됩니다.
- 병렬 처리 가능: 각 블록이 독립적으로 암호화되므로, 병렬 처리가 가능합니다.
- 약점: 같은 블록의 반복된 패턴을 암호문에서 식별할 수 있어, 보안에 취약합니다.
2 - 2 AES / CBC
CBC 모드의 특징은 다음과 같습니다. (Cipher Block Chaining)
- 초기 벡터 (IV) 사용: CBC 모드는 첫 번째 블록 암호화에 사용되는 초기 벡터 (IV)가 필요합니다.
- 암호화되지 않은 첫 번째 블록을 초기 벡터와 XOR 연산을 거친 후 암호화가 됩니다.
- 블록 간의 연관성: 이전 블록의 암호문이 현재 블록의 암호화에 영향을 줍니다. 이로 인해 동일한 평문 블록도 다른 암호문 블록으로 암호화됩니다.
- 각 평문 블록이 바로 앞의 암호문 블록과 XOR 연산을 거친 후 암호화 됩니다.
- 보안 강화: ECB 모드의 약점을 해결하여 보안을 강화하였습니다.
이미지 출처 : https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation