본문 바로가기
Major/#정보보호(Data protection)

블록 암호(Block Cipher)

by Bright_Between 2023. 4. 23.
반응형

블록 암호(Block Cipher)는 텍스트의 블록을 고정된 길이의 블록 단위로 분할하여 암호화하는 암호화 방식입니다. 블록 암호는 대표적으로 DES(Data Encryption Standard)과 AES(Advanced Encryption Standard)이 있습니다. 이 글에서는 DES와 AES의 개념, 동작 원리, 보안성 등에 대해 살펴보겠습니다.

 

DES의 구조 (출처: https://liveyourit.tistory.com/196)


## DES (Data Encryption Standard)

DES는 1977년에 미국 국가 안보국(NSA)에서 개발한 블록 암호입니다. DES는 64비트의 평문을 64비트의 암호문으로 변환하는데 사용됩니다. DES는 라운드 함수(round function)라고 불리는 암호화 함수를 16번 반복하여 암호화를 수행합니다.

DES의 동작 원리는 다음과 같습니다.

1. 초기 순열(Initial Permutation, IP) : 입력된 평문을 초기 순열 함수에 적용하여 64비트 블록으로 변환합니다.
2. 16회의 라운드(Round) : 초기 라운드 함수에 입력으로 전달되는 64비트 블록과 48비트의 서브키를 이용하여 64비트 블록을 암호화합니다. 이때, 서브키는 초기 키를 라운드 키로 변환하는데 사용됩니다.
3. 최종 순열(Final Permutation, FP) : 16번의 라운드 함수를 거친 결과를 최종 순열 함수에 적용하여 암호문으로 변환합니다.

DES는 초기에는 매우 안전한 암호화 기술로 여겨졌지만, 1990년대에는 해독기술의 발전으로 인해 보안성이 떨어지게 되었습니다. 따라서 DES의 개선 버전인 Triple DES가 등장하게 되었습니다만, 현재 DES보다는 AES 사용이 권장됩니다.

 

DES의 구조 (출처: https://www.tutorialspoint.com/cryptography/advanced_encryption_standard.htm)


## AES (Advanced Encryption Standard)

AES는 DES에 대한 대안으로 1997년에 발표된 블록 암호화 기술입니다. AES는 미국 국립표준기술연구소(NIST)에서 공모전을 통해 선정된 암호화 알고리즘으로, 128, 192, 256비트의 블록 크기를 지원합니다.

AES의 동작 원리는 다음과 같습니다.

1. 초기 라운드(Initial Round) : 입력된 평문과 128비트의 라운드 키를 XOR 연산하여 128비트 블록을 생성합니다.
2. 9회의 주 라운드(Main Round) : 라운드 함수를 적용하여 128비트 블록을 암호화합니다. 이때, 라운드 함수는 상태(SubBytes), 행위(ShiftRows), 열 혼합(MixColumns), 그리고 라운드 키(AddRoundKey)를 사용합니다.
3. 최종 라운드(Final Round) : 마지막 주 라운드에서는 상태와 행위 함수만 사용하고, 열 혼합 함수는 사용하지 않습니다.

AES는 DES에 비해 보안성이 더욱 높습니다. AES는 블록 크기, 키 길이, 라운드 수 등을 조정하여 보안성과 성능 사이의 균형을 맞출 수 있습니다. AES는 또한 하드웨어와 소프트웨어 모두에서 구현이 가능하며, 많은 애플리케이션에서 사용되고 있습니다.

하지만 AES의 보안성은 공격 기술이 발전함에 따라 점차 약해지고 있습니다. 최근에는 사이드 채널 공격(side-channel attack) 등의 공격 기술이 개발되고 있기 때문입니다. 따라서 AES를 사용할 때는 적절한 키 관리와 사이드 채널 공격 대비를 고려해야 합니다.

종합적으로, DES와 AES는 블록 암호화 기술 중에서 가장 보편적으로 사용되는 알고리즘입니다. AES는 보안성과 성능 면에서 우수하며, DES는 Triple DES를 사용하여 더욱 강화된 보안성을 제공할 수 있습니다. 하지만 암호화 기술이 계속해서 발전함에 따라, 보안성을 유지하려면 새로운 알고리즘과 기술을 계속해서 연구하고 적용해야 합니다.

반응형

댓글