728x90
지난 2주간 해외 출장을 다녀와서 그동안 공부를 못했다.
그래서 오랜만에 포스팅을 해보려고 한다.
오늘 공부할 내용은 키유도 함수이다.
키 유도 함수란...?
키 유도 함수(Key derivation function, KDF)는 NIST에서 승인한 알고리즘 중의 하나로 의사 난수 함수(블록 암호 또는 해시 함수)를 사용하여 키의 길이를 확장하거나 Diffie–Hellman 키 교환의 결과인 그룹 요소를 AES와 함께 사용할 대칭 키로 변환하는 등 필요한 형식의 키를 얻는 데 사용한다.
*블록 암호: 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템
키 유도 함수는 여러가지가 있는데 이중에 PBKDF2에 대해서 알아보려고 한다.
PBKDF2
PBKDF2(Password-Based Key Derivation Function)는 무차별 대입 공격에 대한 취약성을 보완하기 위해서 사용되는 키 유도 함수 중 하나로 PKCS 시리즈 중 #5 의 일부이다. 기존에 사용되던 PBKDF1의 경우는 최대 160비트 길이의 유도 키만 생성할 수 있었지만 PBKDF2로 유도할 수 있는 키의 길이는 이론상 제한이 없다.
*PKCS: Public-Key Cryptography Standard RSA 시큐리티에서 정한 공개 키 암호에 대한 표준 프로토콜
*PKCS #5: 비밀번호 기반 암호화 표준(Password-based Encryption Standard)으로 RFC 2898에 기술되어 있다.
PBKDF2의 키 유도 과정은 아래와 같다.

1. Password, Salt 값을 생성한다.
공개키 암호화 표준에서는 최소 Salt 값을 64비트,
미국 국립표준기술 연구소에서는 최소 Salt 값을 128비트로 권장한다.
2. 유도할 키의 길이를 정한다.
3. Password, Salt 값을 이용해서 PRF(Hash)로 난수를 생성한다.
4. N 번 반복 하면 원하는 키를 유도할 수 있다.
*PRF(PseudoRandom Function): 난수를 생성하기 위해 보통 Hash 함수를 사용하는 것을 권장
*Password: 비밀번호
*Salt: 평문에 임의의 문자열을 덧붙이기 위해 사용되며 이 행위를 Salting이라고 한다.
*N: 반복 횟수
*Digest: 최종적으로 유도된 키 값
728x90
'Crypto' 카테고리의 다른 글
MAC(메시지 인증 코드), CMAC 그리고 HMAC (1) | 2024.04.14 |
---|---|
난수 생성기, PRNG와 TRNG (0) | 2024.04.11 |
ECC 알고리즘, ECDH와 ECDSA (0) | 2024.04.10 |
Hash function 알고리즘의 종류와 특징 (0) | 2024.04.02 |
Hash Function의 특징과 용도 (0) | 2024.04.01 |