1. 개인정보 암호화의 필요성
2. 암호화와 단방향 암호화(해시)
3. 해시를 이용한 암호화 방법
4. 해시와 키 유도 함수 종류
개인정보를 암호화하지 않는다면 DB에 접근해서 금융정보와 신상정보 등을 악용하는 심각한 문제가 발생할 수 있기 때문에 필수적이다.
그렇기 때문에 법률로도 정보통신망을 이용해서 사용자의 개인정보(아이디, 비밀번호, 신상정보)를 통신하는 경우 암호화해야한다고 정하고 있다.
암호화는 일반적으로 양방향이고 뜻하며 암호화 된 값을 해독하는 것을 복호화라고 한다.
개인정보를 암호화하는 경우는 복호화가 불가능한 단반향 암호화(해싱)를 해야한다.
하지만 단방향 해시 함수(One-Way Hash fuction)를 사용해도 한계가 존재한다.
같은 값을 해싱한 값은 값은 암호화된 데이터(다이제스트) 값을 지닌다.
같은 데이터를 해시할 때 같은 값의 다이제스트를 지니게 되고 이대로 암호화 방법으로 사용하면 수 많은 경우의 수를 대조하여 결국 값을 찾을 수도 있다.
SHA256 해시의 경우의 수는 2^256으로 다이제스트 경우의 수는 78자리 수로 매우 크지만 결국 같은 값으로 해싱한 값은 같다는 한계가 있다.
그렇기 때문에 이러한 한계를 보완하는 방법으로 사용한다.
해시의 종류
SHA, MD, HAS, WHIRLPOOL
키 유도 함수 종류
PBKDF2, bcrypt, scrypt, Argon2