키 유도함수 (Key Derivation Function)
쉽게 풀면
사람이 만든 비밀번호는 길이가 짧고 패턴이 예측 가능해서 그대로 암호 키로 쓰기에는 안전하지 않습니다. 키 유도함수는 이런 약한 입력값을 반복적인 연산 과정을 거쳐 충분히 무작위하고 긴 암호 키로 바꿔주는 역할을 합니다. 같은 입력을 넣으면 항상 같은 키가 나오지만, 입력값을 모르는 사람은 결과 키를 추측하기 매우 어렵습니다. 무작위한 값을 추가로 섞어 공격자가 미리 계산해 둔 표를 이용하지 못하게 막는 기법도 함께 사용됩니다.
왜 중요한가
키 유도함수는 사용자가 기억하기 쉬운 비밀번호를 안전한 암호 키로 변환해야 하는 거의 모든 인증 시스템에서 사용되기 때문에 정보보안학에서 중요하게 다루어집니다. 로그인 시스템, 파일 암호화 도구, 암호화폐 지갑 등 다양한 곳에서 활용됩니다. 연산 비용을 의도적으로 높여 무차별 대입 공격에 걸리는 시간을 늘리는 설계 원칙도 이 분야의 핵심 연구 주제입니다.
논문에서는 이렇게 쓰입니다
키 유도함수의 계산 비용이 공격 저항성과 직결됨을 보여주는 사례입니다.
비밀번호를 그대로 저장하지 않고 키 유도함수를 거쳐 안전하게 보관하는 실무적 활용 사례입니다.
조금 더 깊게 보면
대표적인 키 유도함수로는 PBKDF2, scrypt, Argon2 등이 있으며, 이들은 해시 연산을 반복하거나 메모리 사용량을 늘리는 방식으로 공격자의 계산 비용을 높입니다. 최신 방식일수록 전용 하드웨어를 이용한 병렬 공격에 더 강한 저항성을 갖도록 설계되는 경향이 있습니다.
주의할 점
키 유도함수를 사용하더라도 원래 입력값 자체가 지나치게 단순하거나 예측 가능하면 안전성이 크게 떨어질 수 있습니다.