PBKDF2

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2026.04.09
조회수
4
버전
v1

PBKDF2

개요

PBKDF2(Password-Based Key Derivation Function 2)는 비밀번호 기반 키 도출 함수(PBKDF)의 한 형태로, 암호화 시스템에서 약한 사용자 비밀번호를 더 강력하고 안전한 암호화 키로 변환하기 위해 설계된 알고리즘입니다. 이 함수는 PKCS #5 v2.0(Public-Key Cryptography Standards #5) 표준에 정의되어 있으며, 암호학적으로 안정적인 의사난수함수(PRF)를 기반으로 반복적인 해시 연산을 수행함으로써 공격자의 무차별 대입 공격(Brute-force Attack) 및 사전 공격(Dictionary Attack)을 어렵게 만듭니다.

PBKDF2는 오늘날 널리 사용되는 암호화 시스템, 예를 들어 와이파이(WPA2), 암호 관리자, 디스크 암호화 도구 등에서 비밀번호 기반 키 생성에 핵심적으로 활용됩니다.


작동 원리

PBKDF2는 주어진 비밀번호(패스워드), 솔트(salt), 반복 횟수(iteration count), 그리고 원하는 키 길이를 입력으로 받아, 암호학적으로 안전한 키를 출력합니다. 주요 구성 요소는 다음과 같습니다.

입력 매개변수

매개변수 설명
비밀번호 사용자가 입력한 암호 문자열. 보통 약한 entropy를 가짐.
솔트(Salt) 무작위로 생성된 바이트 배열. 동일한 비밀번호라도 다른 솔트를 사용하면 다른 키가 생성됨.
반복 횟수 해시 함수를 반복 적용하는 횟수. 보안성을 높이기 위해 수만 ~ 수십만 회 이상 사용.
키 길이 생성할 도출 키의 길이(바이트 단위).

알고리즘 절차

PBKDF2는 기본적으로 의사난수함수(PRF)를 반복적으로 적용하여 키를 도출합니다. 일반적으로 HMAC을 PRF로 사용하며, 해시 함수로는 SHA-1, SHA-256 등이 선택됩니다.

  1. 입력된 비밀번호와 솔트를 사용해 HMAC을 계산합니다.
  2. 이 결과를 다시 입력으로 하여 반복 횟수만큼 연속적으로 해시 연산을 수행합니다.
  3. 최종 출력값을 원하는 길이로 잘라내어 키로 사용합니다.

수식적으로 표현하면 다음과 같습니다:

DK = PBKDF2(PRF, 비밀번호, 솔트, 반복횟수, 키길이)

여기서 DK는 도출된 키(Derived Key)를 의미합니다.


보안 특성

솔트의 역할

솔트는 각 사용자의 비밀번호에 고유한 무작위 값을 추가함으로써 레인보우 테이블(Rainbow Table) 공격을 방지합니다. 동일한 비밀번호를 사용하더라도 솔트가 다르면 도출된 키가 달라지므로, 공격자가 미리 계산한 해시 값을 재사용할 수 없습니다.

반복 횟수의 중요성

반복 횟수는 계산 난이도를 인위적으로 증가시켜, 공격자가 무차별 대입을 시도할 때 시간적 비용을 크게 만듭니다. 예를 들어, 반복 횟수를 100,000회로 설정하면, 공격자는 각 비밀번호 시도마다 10만 번의 해시 연산을 수행해야 하므로 공격 속도가 크게 저하됩니다.

권장 반복 횟수: 2020년대 기준으로 최소 100,000회 이상이 권장되며, 시스템 성능과 보안 요구 사항에 따라 조정됩니다.


장단점

장점

  • 표준화 및 널리 채택: PKCS #5 및 NIST에서 승인된 표준 알고리즘으로, 다양한 플랫폼과 라이브러리에서 지원됩니다.
  • 단순하고 검증됨: 오랜 기간 동안 광범위하게 사용되어 왔으며, 중대한 암호학적 약점이 발견되지 않았습니다.
  • 조정 가능한 보안 수준: 반복 횟수를 조절함으로써 보안과 성능 사이의 균형을 맞출 수 있습니다.

단점

  • 메모리 사용 최소화: PBKDF2는 계산 집약적일 뿐만 아니라 메모리 집약적이지 않아, ASIC이나 GPU 기반 공격에 취약할 수 있습니다.
  • 최신 알고리즘 대비 상대적 열세: bcrypt, scrypt, Argon2와 같은 최신 키 도출 함수는 메모리 및 병렬화 공격에 더 강한 저항력을 제공합니다.

사용 사례

  • 디스크 암호화: TrueCrypt, VeraCrypt 등에서 비밀번호 기반 마스터 키 생성에 사용.
  • 와이파이 보안: WPA2-Personal에서 PSK(Pre-Shared Key) 생성 시 활용.
  • 암호 관리자: LastPass, KeePass 등에서 마스터 비밀번호로부터 암호화 키를 도출.
  • 웹 애플리케이션: 사용자 비밀번호를 저장할 때 해시화 과정에 포함 (단, 최근에는 더 나은 대안 권장).

관련 알고리즘 비교

알고리즘 계산 난이도 메모리 난이도 병렬화 저항 비고
PBKDF2 높음 낮음 낮음 표준화, 단순함
bcrypt 높음 중간 중간 OpenBSD에서 개발
scrypt 높음 높음 높음 메모리 집약적
Argon2 높음 높음 높음 PHC 우승 알고리즘

Argon2는 2015년 암호화 키 도출 함수 경연(PHC)에서 우승한 알고리즘으로, 현재 가장 강력한 대안으로 권장됩니다.


참고 자료


관련 문서

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?