PBKDF2, BCrypt

정명진·2023년 5월 9일
0

PBKDF2 (Password-Based Key Derivation Function 2)는 패스워드를 단순 해싱 하는게 아닌 password에 salt를 첨가해 iteration 만큼 해싱을 계속하여 암호화를 하는 알고리즘이다.

프로젝트를 하며 사용해볼 기회가 있었는데 url 라이센스를 체크하는데 사용을 했다.

  1. 임의의 랜덤값을 생성후 base64 인코딩을 해 salt를 생성한다.
  2. 반복횟수를 결정한다.
  3. 반복횟수, salt, url을 PBKDF2 암호화를 진행한다.
  4. 앞으로 호스트를 체크하여 라이센스 값과 동일한지 비교한다.

이렇게 라이센스 체크를 구현했다.

BCrypt는 salt 생성 방식이 독특해서 찾아봤다.

이 암호화는 salt 에 prefix가 존재한다. 2a2a{반복횟수} 이런식으로 시작한다.
횟수가 5라면 "$2a$05" 10이라면 "$2a$10" 이렇게 시작을 하는데 그 의미가 무엇인지 궁금해서 찾아봤다.

$2는 bcrypt 고정이고 a, b, y 이렇게 factor를 특정짓는 요소가 있는데 이는 cost를 의미한다고 이해했다. a -> y로 갈수록 hash 생성 cost가 증가하며 그만큼 안정성도 증가한다는 의미이다.

암호학의 세계도 재미난것같다.

profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..

0개의 댓글