본문 바로가기
DevOps: Database

Database Security: MySQL AES

by riwonet 2024. 10. 4.

1. 대칭 암호화의 개념

대칭키 암호화는 비밀키 암호화 혹은 단일키 암호화라고도 불립니다. 즉, 대칭 암호화 방식은 암호화 키와 복호화 키가 동일하게 사용됩니다.

 

2. 대칭 암호화 알고리즘의 종류

  1. Data Encryption Standard: 평문을 64비트 블록으로 나누고, 각 블록을 56비트 키로 암호화 합니다. 이와 같은 연산을 16 라운드 수행합니다. 
  2. Triple DES: 암호화 키의 길이를 112비트, 168비트로 확장하여 DES를 3중으로 겹쳐서 사용합니다. DES-EDE3 유형의 경우 168비트의 키를 사용하여 평문에서 암호화, 복호화, 암호화를 거쳐 암호문을 생성하게 됩니다. DES-EDE2 유형의 경우 EDE3에서의 두 암호화 단계에서 동일한 키를 사용하게 되어 112비트의 키를 사용합니다. 
  3. Advanced Encryption Standard: DES를 대신하게 된 새로운 표준 대칭 암호화 알고리즘으로, 평문을 128비트의 블록으로 나눕니다. 128, 192, 256 비트 중에서 적절한 키 길이를 선택해 이에 따라 10, 12, 14 라운드를 거쳐 각 블록에 대해 암호화 합니다. 

 

3. 대칭 암호화 알고리즘의 적용

MySQL에서는 DBMS를 통해 AES 암호화 함수를 제공하고 있으며, 다음은 제가 이를 활용하여 기본 데이터베이스 일부를 암호화 혹은 복호화 한 예시입니다.

sakila 데이터베이스의 customer 테이블 선정하기
AES_ENCRYPT 함수 사용하여 last_name 컬럼 암호화하기
AES_DECRYPT 함수 사용하여 last_name 컬럼 복호화하기