암호화 알고리즘 쉽게 암기하기

💡 지피디아 핵심 브리핑

정보처리기사 및 실무 보안 면접에 빈출되는 대칭키, 비대칭키, 일방향 해시 암호화 알고리즘의 핵심 개념과 세부 스펙을 체계적으로 정리했습니다. 블록 및 스트림 암호화의 작동 방식과 각 알고리즘별 개발 연도, 키 크기, 블록 크기, 라운드 수 등의 필수 암기 항목을 완벽하게 대비할 수 있습니다.

암호화 알고리즘 학습의 필요성과 실무적 접근

정보처리 기사 자격증 시험을 준비하거나 웹 개발 및 시스템 보안 분야의 실무를 다루다 보면 암호화 알고리즘은 피할 수 없는 핵심 주제입니다. 특히 필기 및 실기 시험에서는 특정 암호화 알고리즘의 블록 크기, 키 길이, 라운드 수, 개발 연도, 그리고 개발 기관을 묻는 세부적인 문제가 높은 빈도로 출제됩니다. 예를 들어 “64비트 블록 크기와 56비트 키 길이를 가지는 개인키 암호화 알고리즘은 무엇인가?”와 같은 구체적인 문항에 대비하기 위해서는 단순한 명칭 암기를 넘어 세부 스펙을 정확히 숙지해야 합니다.

현실적인 웹 개발 환경에서는 프레임워크나 라이브러리가 내부적으로 암호화를 처리하기 때문에 매번 알고리즘의 수학적 구조나 역사적 배경을 깊게 파고들 필요는 없습니다. 어떠한 용도로 사용되는지, 대칭키인지 비대칭키인지, 그리고 명칭과 요약된 특성 정도만 파악하고 있어도 실무 개발 시 올바른 보안 프로토콜을 선택하는 데 큰 무리가 없습니다. 그러나 국가 자격증 시험이나 엄격한 보안 컴플라이언스를 다루는 인증 심사 과정에서는 명확한 수치와 표준 규격을 요구하므로, 본 문서에서 강조하는 굵은 글씨와 핵심 파라미터를 반복하여 학습하는 것이 가장 효율적인 합격 전략이자 실무 지침이 됩니다.

암호화 알고리즘 구조도

대칭 알고리즘 : 스트림과 블록 암호화의 이해

대칭 알고리즘은 데이터를 암호화하는 과정과 복호화하는 과정에서 동일한 키를 사용하는 암호화 방식입니다. 구조적 특성에 따라 데이터를 일정한 크기의 고정된 단위로 나누어 처리하는 블록 암호화와, 연속적인 데이터 흐름을 비트 또는 바이트 단위로 실시간 처리하는 스트림 암호화로 분류할 수 있습니다. 대칭 알고리즘은 비대칭 알고리즘에 비해 연산 속도가 매우 빠르다는 장점이 있어 대용량 데이터 전송에 적합합니다. 다만, 통신 당사자 간에 동일한 비밀키를 안전하게 공유해야 하는 키 분배의 어려움과 키 관리의 복잡성이 존재한다는 단점이 있습니다.

[Block 암호화 알고리즘]

블록 암호화는 입력된 평문 데이터를 정해진 고정 크기의 블록 단위로 분할한 뒤, 각 블록마다 비밀키를 적용하여 암호문 블록으로 변환하는 방식입니다. 블록 암호화의 안전성은 주로 블록의 크기, 키의 길이, 그리고 반복 연산을 수행하는 라운드 수에 의해 결정됩니다. 대표적인 블록 암호화 알고리즘에는 DES, 3DES, AES, SEED, ARIA, IDEA 등이 있으며, 각 알고리즘은 고유의 보안 모드와 패딩 기법을 결합하여 데이터의 무결성과 기밀성을 보장합니다.

  1. DES (Data Encryption Standard)
    • 개발 연도: 1975년
    • 개발 기관: IBM (미국 국립표준기술연구소와 공동)
    • 키 크기: 56비트
    • 블록 크기: 64비트
    • 라운드 수: 16라운드
    • 방식: 블록 암호화
    • 설명: DES는 초기에 전 세계적으로 가장 널리 채택된 대칭 암호화 표준이었습니다. 그러나 하드웨어 성능의 발전으로 56비트라는 짧은 키 크기가 현대의 강력한 컴퓨팅 파워를 통한 무차별 대입 공격에 취약하다는 점이 드러나면서, 현재는 보다 안전한 AES로 대체되는 추세입니다.
  2. 3DES (Triple Data Encryption Standard)
    • 개발 연도: 1998년
    • 개발 기관: IBM
    • 키 크기: 112비트 또는 168비트
    • 블록 크기: 64비트
    • 라운드 수: 48라운드
    • 방식: 블록 암호화
    • 설명: 3DES는 기존 DES의 취약점인 짧은 키 길이를 보완하기 위해 고안된 과도기적 알고리즘입니다. DES 알고리즘을 연속으로 세 번 적용하는 방식을 취하며, 강력한 보안 수준을 제공하는 반면 연산 횟수가 늘어나 계산 비용과 처리 속도가 저하되는 단점이 있습니다.
  3. SEED
    • 개발 연도: 1998년 (상용화 기준 1999년)
    • 개발 기관: 한국인터넷진흥원(KISA) 및 한국전자통신연구원(ETRI)
    • 키 크기: 128비트 또는 256비트
    • 블록 크기: 128비트
    • 라운드 수: 16라운드
    • 방식: 블록 암호화
    • 설명: SEED는 대한민국이 독자적으로 개발한 128비트 대칭 블록 암호화 알고리즘입니다. 국내 웹 환경 및 인터넷뱅킹 등에서 정보 보호 요구사항을 충족하기 위해 널리 도입되었으며, 국제 표준인 AES와 견주어도 손색없는 안전성을 제공합니다.
  4. AES (Advanced Encryption Standard)
    • 개발 연도: 2001년
    • 개발 기관: 미국 국립표준기술연구소(NIST)
    • 키 크기: 128비트, 192비트, 256비트
    • 블록 크기: 128비트
    • 라운드 수: 10, 12, 또는 14라운드 (키 크기에 따라 가변)
    • 방식: 블록 암호화
    • 설명: AES는 현재 전 세계적으로 가장 널리 사용되는 표준 대칭 암호화 알고리즘입니다. 뛰어난 암복호화 연산 속도와 최고 수준의 보안성을 동시에 제공합니다. 지원하는 키 크기에 따라 버화되며, 특히 128비트 키 크기를 사용하는 AES-128이 대다수 상용 시스템의 기본값으로 채택되어 있습니다.
  5. ARIA
    • 개발 연도: 2003년 (표준화 기준 2004년)
    • 개발 기관: 한국국가정보원, 산·학·연 협력단
    • 키 크기: 128비트, 192비트, 256비트
    • 블록 크기: 128비트
    • 라운드 수: 12라운드
    • 방식: 블록 암호화
    • 설명: ARIA는 국내 공공기관 및 국가 보안 요구사항을 충족하기 위해 개발된 독자 대칭 암호화 알고리즘입니다. 경량 환경과 하드웨어 구현 효율성이 뛰어나며, AES와 대등한 암호학적 안전성을 발휘합니다.
  6. IDEA (International Data Encryption Algorithm)
    • 개발 연도: 1991년
    • 개발 기관: Xuejia Lai 및 James Massey (스위스 연방기술원)
    • 키 크기: 128비트
    • 블록 크기: 64비트
    • 라운드 수: 8라운드
    • 방식: 블록 암호화
    • 설명: IDEA는 기존 DES 알고리즘의 대안으로 설계된 블록 암호화 방식입니다. 초기 PGP(Pretty Good Privacy) 등의 프로그램에 채택되었으나, 특허 문제 및 AES의 대중화로 인해 현재는 주력 알고리즘으로 자주 쓰이지 않습니다.

[Stream 암호화 알고리즘]

스트림 암호화는 데이터를 블록 단위가 아닌 연속적인 비트 또는 바이트 스트림 형태로 간주하여 처리합니다. 평문 데이터와 의사난수 생성기에서 출력된 키 스트림을 비트 단위 XOR 연산하여 암호문을 생성하므로, 실시간 데이터 통신이나 하드웨어 자원이 제한된 환경에서 탁월한 효율성을 보여줍니다.

  1. LFSR (Linear Feedback Shift Register)
    • 레지스터의 현재 상태에 선형 함수(주로 XOR 연산)를 적용하여 다음 비트 상태를 생성하는 시프트 레지스터 구조입니다.
    • XOR 연산을 핵심적으로 활용하여 의사난수 수열을 빠르게 만들어냅니다.
    • 스트림 암호의 키 스트림 생성기나 하드웨어 기반 난수 발생 장치에서 폭넓게 활용됩니다.
  2. RC4 (Rivest Cipher 4)
    • 평문의 1바이트와 암호키로부터 생성된 1바이트의 스트림을 XOR 처리하여 암호문 바이트를 산출하는 가변 키 길이 스트림 암호입니다.
    • 옥텟 단위로 고속 연산이 이루어지며, 로널드 라이베스트가 개발했습니다.
    • 과거 무선랜(WEP) 및 전송보안계층(TLS/SSL) 프로토콜 등 다양한 인터넷 환경에서 쓰였으나, 취약점이 발견되어 현재는 표준에서 배제되었습니다.

비대칭 알고리즘 : 공개키와 개인키의 구조

비대칭 알고리즘(공개키 암호화)은 암호화에 사용하는 키와 복호화에 사용하는 키가 서로 다른 두 개의 키를 활용하는 암호화 방식입니다. 시스템 사용자마다 공개키와 개인키 한 쌍을 가지며, 공개키는 네트워크 상에 누구나 열람할 수 있도록 개방하고, 개인키는 소유자만 엄격하게 비밀로 관리합니다. 공개키로 암호화한 정보는 오직 매칭되는 개인키로만 복호화할 수 있으며, 반대로 개인키로 서명한 데이터는 공개키로 진위 여부를 검증할 수 있습니다. 대표적인 알고리즘으로는 Diffie-Hellman, RSA, ECC, ElGamal 등이 존재합니다.

  1. Diffie-Hellman
    • 개발 연도: 1976년
    • 개발자: Whitfield Diffie, Martin Hellman
    • 방식: 키 교환 프로토콜
    • 설명: Diffie-Hellman은 안전하지 않은 통신망을 통해 두 통신 주체가 비밀키를 안전하게 공유할 수 있도록 고안된 최초의 공개키 기반 키 교환 프로토콜입니다. 현대 암호학에서 대칭키 전달의 한계를 극복한 선구적 업적으로 평가받습니다.
  2. RSA
    • 개발 연도: 1977년
    • 개발자: Ron Rivest, Adi Shamir, Leonard Adleman
    • 방식: 공개키 암호화, 전자 서명
    • 설명: RSA는 큰 소수의 소인수분해 문제의 수학적 난해함을 기반으로 한 가장 대표적인 공개키 암호화 및 전자 서명 알고리즘입니다. 웹서버 인증서(HTTPS)를 비롯한 다양한 보안 시스템에서 데이터 암호화와 신원 인증을 동시에 수행하는 중추적 역할을 맡고 있습니다.
  3. ECC (Elliptic Curve Cryptography)
    • 개발 연도: 1985년
    • 개발자: Neal Koblitz, Victor S. Miller
    • 방식: 공개키 암호화, 디지털 서명
    • 설명: ECC는 유한체 상의 타원 곡선 수학적 성질을 이용한 공개키 암호화 방식입니다. 기존 RSA 알고리즘과 비교했을 때 훨씬 더 짧은 키 길이만으로도 동일한 수준의 보안 강도를 제공하므로, 스마트폰, 사물인터넷(IoT) 기기 등 연산 능력과 전력이 제한된 환경에 최적화되어 있습니다.
  4. ElGamal
    • 개발 연도: 1985년
    • 개발자: Taher Elgamal
    • 방식: 공개키 암호화, 전자 서명
    • 설명: ElGamal은 이산대수 문제를 기반으로 설계된 공개키 암호화 및 디지털 서명 알고리즘입니다. Diffie-Hellman 키 교환 원리를 확장하여 개발되었으며, 암호화 과정에서 무작위 값을 사용하기 때문에 동일한 평문이라도 매번 다른 암호문이 생성되는 특성이 있습니다.

일방향 알고리즘과 해시 함수의 원리

일방향 알고리즘인 해시 함수는 임의의 길이를 가진 임의의 데이터를 입력받아 고정된 길이의 압축된 해시 값으로 변환하는 연산 과정입니다. 해시 함수의 가장 중요한 특징은 일방향성으로, 출력된 해시 값으로부터 원래의 평문 데이터를 역산하여 복원하는 것이 수학적으로 불가능합니다. 또한 동일한 입력값에 대해서는 언제나 정확히 일치하는 해시 값이 산출됩니다. 암호화 자체의 목적보다는 패스워드 검증, 데이터 무결성 검증, 전자서명 및 블록체인 등 광범위한 분야에서 데이터 지문 용도로 활용됩니다.

  1. SHA (Secure Hash Algorithm)
    • 미국 국가안보국(NSA)이 1993년에 최초 설계하고 미국 연방 정보 처리 표준(FIPS)으로 지정한 해시 암호화 알고리즘 패밀리입니다.
    • SHA-256, SHA-512 등의 상위 버전은 강력한 충돌 저항성을 제공합니다.
    • 주로 데이터 무결성 검사, 디지털 서명, 메시지 인증 등 다목적 보안 분야에서 표준으로 채택되어 사용됩니다.
  2. MD5 (Message-Digest Algorithm 5)
    • 임의의 길이를 입력받아 128비트 암호화 해시 값을 생성하는 함수이며, RFC 1321로 규정되어 있습니다.
    • 주로 파일의 무결성을 빠르게 확인하거나 소프트웨어 다운로드 검증 등에 활용되었습니다.
    • 심각한 충돌 공격 취약점이 발견되어 현재는 보안이 요구되는 웹 애플리케이션이나 인증서 발급에 사용하는 것이 엄격히 금지되어 있습니다.
  3. HAS-160
    • 대한민국 표준 전자서명 알고리즘인 KCDSA의 부속 함수로 사용되는 160비트 암호학적 해시 함수입니다.
    • SHA-1과 유사한 연산 구조를 공유하고 있습니다.
    • 국내 공인인증서 체계 및 전자서명 시스템에서 데이터의 고유 무결성을 검증하기 위해 도입되었습니다.

암호화 알고리즘 총정리 비교표

정보처리기사 시험 및 실무 설계 단계에서 빈출되는 양방향 및 일방향 알고리즘의 주요 스펙과 특징을 표로 정리했습니다.

분류 세부 방식 알고리즘명 개발연도 개발 기관 블록크기(비트) 키길이(비트) 라운드수 동작 방식
양방향 대칭키 DES 1975 IBM 64 56 16 블록
3DES 1998 IBM 64 112/168 48 블록
SEED 1999 한국전자통신연구원(ETRI) 128 128/256 16 블록
AES 2001 미국 표준기술연구소 (NIST) 128 128, 192, 256 10, 12, 14 블록
ARIA 2004 한국국가연구기관/산학연 128 128, 192, 256 12 블록
IDEA 1991 스위스연방기술원 64 128 8 블록
LFSR 1949 Claude Shannon (MIT) 난수발생 가변 – 스트림
비대칭키 공개키/개인키 Diffie-Hellman 1976 Whitfield Diffie, Martin Hellman 대칭키 분배를 위한 최초의 공개키 키 교환 프로토콜
RSA 1977 MIT (Rivest, Shamir, Adleman) 소인수분해 기반 공개키 암호화 및 디지털 서명 알고리즘
ECC 1985 Neal Koblitz, Victor S. Miller 타원 곡선 수학 기반, 작은 키 크기로 고도의 보안성 제공
ElGamal 1984 Taher Elgamal 이산대수 문제 기반 공개키 암호화 및 전자서명 제공

실무 체크포인트 및 자주 묻는 질문 (FAQ)

암호화 알고리즘을 학습하거나 실무 아키텍처에 적용할 때 자주 제기되는 질문과 핵심 점검 사항을 정리했습니다.

Q1. 정보처리기사 필기에서 가장 많이 출제되는 암기 팁이 있나요?

A. 대칭키 블록 알고리즘의 키 길이와 블록 크기를 숫자로 매칭하는 문제가 단골로 출제됩니다. DES는 64비트 블록에 56비트 키, AES와 SEED, ARIA는 128비트 블록 크기를 기본으로 가진다는 점을 연도와 함께 묶어서 암기하는 것이 효율적입니다.

Q2. 웹 개발 프로젝트에서 대칭키와 비대칭키 중 어떤 것을 선택해야 하나요?

A. 대용량 파일이나 데이터베이스 필드 암호화와 같이 속도가 중요한 구간에서는 연산 속도가 빠른 AES-128과 같은 대칭키 방식을 사용해야 합니다. 반면, 클라이언트와 서버 간의 최초 접속 시 세션 키를 안전하게 교환하거나 사용자 인증을 위한 전자서명이 필요한 구간에서는 RSA나 ECC 같은 비대칭키 방식을 혼용하는 하이브리드 방식으로 설계하는 것이 표준입니다.

Q3. 패스워드를 데이터베이스에 저장할 때 암호화 알고리즘을 쓰면 안 되나요?

A. 패스워드는 양방향 암호화 알고리즘(대칭/비대칭)으로 저장하면 관리자조차 복호화할 수 있어 보안상 위험합니다. 반드시 일방향 해시 알고리즘(SHA-256 등)에 솔트(Salt)와 키 스트레칭(Bcrypt, Argon2 등) 기법을 적용하여 복원이 불가능한 형태로 안전하게 저장해야 합니다.

위로 스크롤