Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

암호 시스템(Cryptosystem)이란? 정보 보안의 핵심 원리와 구성 요소 총정리

암호 시스템(Cryptosystem)의 개념

암호 시스템은 '암호 체계(cipher system)'라고도 불리며, 평문(plain text), 암호화 알고리즘(encryption algorithm), 암호문(cipher text), 복호화 알고리즘(decryption algorithm), 암호화 키(encryption key) 등 여러 암호학적 구성 요소를 활용해 정보 보안 서비스를 지원하는 기술 체계입니다.

쉽게 말해 암호 시스템은 데이터를 암호화하는 알고리즘 한 세트와 이를 다시 복호화하는 알고리즘 한 세트로 이루어진 집합입니다. 이러한 알고리즘은 반드시 비밀로 유지해야 하는 고유한 키를 사용할 수 있으며, 그 경우 키를 생성하고 공유하는 절차 역시 암호 시스템의 중요한 구성 요소로 간주됩니다.

암호 해독 공격(Cryptanalytic Attack)의 원리

암호 해독 공격은 알고리즘 자체의 특성에 기반하며, 여기에 평문의 일반적인 특징에 대한 사전 지식이나 평문-암호문 쌍(sample plain text-cipher text pairs) 일부가 추가될 수 있습니다. 이러한 공격은 알고리즘의 특성을 이용해 특정 평문의 내용을 추론하거나, 사용 중인 키를 알아내려는 시도입니다.

현대 암호학의 역할과 중요성

현대 암호학은 디지털 세상에서 필수적인 역할을 하며, 그 난이도 또한 상당히 높아졌습니다. 인터넷에서 신용카드 정보나 기타 개인 정보 같은 민감한 메시지를 안전하게 주고받는 데 널리 활용되고 있습니다.

암호화는 온라인은 물론 로컬 환경에서도 데이터를 안전하게 보호하는 데 사용됩니다. 대표적으로 AES(Advanced Encryption Standard, 고급 암호화 표준)는 각국 정부가 기밀 파일의 보안을 위해 채택하고 있으며, 수학 분야 전문가들이 제안한 여러 후보 가운데 보안성과 효율성을 인정받아 선정된 표준입니다.

또한 디지털 보안 기술은 익명성 보장, 디지털 서명을 통한 신원 인증, 블록체인 기술에서의 작업 증명(proof of work), 그리고 애플리케이션과 메시지가 위변조되지 않았음을 입증하는 용도로도 활용됩니다.

암호 시스템의 주요 특징

1. 평문을 암호문으로 변환하는 연산 방식

모든 암호화 알고리즘은 두 가지 기본 원리에 기반합니다. 하나는 치환(substitution)으로, 평문의 각 구성 요소(비트, 문자, 비트 그룹 또는 문자 그룹)를 다른 요소로 매핑하는 방식입니다. 다른 하나는 전치(transposition)로, 평문의 구성 요소들을 재배열하는 방식입니다.

핵심 요구 사항은 어떠한 데이터도 손실되지 않아야 한다는 것, 즉 모든 연산이 되돌릴 수 있어야(reversible) 한다는 점입니다. 대부분의 암호 시스템은 치환과 전치를 여러 단계에 걸쳐 조합한 곱 암호(product cipher) 형태로 정의됩니다.

2. 사용되는 키의 개수

송신자와 수신자가 동일한 키를 사용한다면 이 시스템은 대칭형(symmetric), 단일 키(single-key), 비밀 키(secret-key) 또는 관용 암호화(conventional encryption) 방식이라고 합니다. 반대로 송신자와 수신자가 서로 다른 복수의 키를 사용한다면 비대칭형(asymmetric), 두 키(two-key) 또는 공개 키(public-key) 암호화 방식이라고 부릅니다.

3. 평문을 처리하는 방식

블록 암호(block cipher)는 입력을 한 번에 한 블록씩 처리하여 각 입력 블록에 대해 하나의 출력 블록을 생성합니다. 반면 스트림 암호(stream cipher)는 입력 요소를 연속적으로 처리하면서 진행 과정에서 한 번에 한 요소씩 출력을 만들어냅니다.