블록 암호 (Block Cipher)

정보보안학
한 줄 정의: 데이터를 고정된 크기의 블록 단위로 나누어 암호화하는 대칭키 암호 방식입니다.

쉽게 풀면

블록 암호는 긴 문서를 일정한 크기의 페이지로 잘라, 각 페이지를 같은 규칙으로 암호화하는 방식과 비슷합니다. 예를 들어 데이터를 128비트 단위로 잘라 매 조각마다 같은 암호화 절차를 반복 적용합니다. 조각의 크기가 딱 맞지 않으면 마지막 조각에는 빈 공간을 채워 넣는 과정이 필요합니다. 이렇게 일정한 단위로 처리하기 때문에 구현과 검증이 비교적 체계적입니다.

왜 중요한가

블록 암호는 파일 암호화, 디스크 암호화, 통신 보안 등 다양한 곳에서 기본 구성요소로 쓰이기 때문에 정보보안학에서 핵심적으로 연구됩니다. 블록을 연결하는 운용 모드에 따라 안전성과 성능이 크게 달라지므로, 다양한 모드의 특성을 분석하는 연구가 활발합니다. 특히 AES와 같은 표준 블록 암호의 안전성 분석은 오랜 기간 이어져 온 연구 주제입니다.

논문에서는 이렇게 쓰입니다

"본 연구는 블록 암호의 CBC 운용 모드에서 발생할 수 있는 패딩 오라클 취약점을 분석하였다."

블록 암호 자체가 아니라 블록을 연결하는 운용 방식에서 발생하는 보안 문제를 다루고 있음을 보여줍니다.

"제안된 경량 블록 암호는 64비트 블록 크기를 사용하여 임베디드 환경에서의 연산 부담을 낮췄다."

자원이 제한된 환경을 고려해 블록 크기와 구조를 최적화한 설계 사례입니다.

조금 더 깊게 보면

블록 암호는 여러 라운드에 걸쳐 치환과 순열 연산을 반복하는 구조를 가지며, 대표적으로 페이스텔 구조와 SPN 구조가 사용됩니다. 실제 사용 시에는 ECB, CBC, CTR, GCM 등 다양한 운용 모드와 결합되며, 모드 선택에 따라 기밀성뿐 아니라 무결성 보장 여부도 달라집니다.

주의할 점

블록 암호 알고리즘 자체가 안전해도 운용 모드를 잘못 선택하면 패턴 노출이나 위변조 같은 취약점이 발생할 수 있습니다.

관련 용어