CS - 개인정보 암호화 (Hash) / TIL#16

Pablaw·2023년 2월 15일
0

TIL

목록 보기
16/20
post-thumbnail

1. 개인정보 암호화의 필요성
2. 암호화와 단방향 암호화(해시)
3. 해시를 이용한 암호화 방법
4. 해시와 키 유도 함수 종류

개인정보 암호화의 필요성

    개인정보를 암호화하지 않는다면 DB에 접근해서 금융정보와 신상정보 등을 악용하는 심각한 문제가 발생할 수 있기 때문에 필수적이다.
그렇기 때문에 법률로도 정보통신망을 이용해서 사용자의 개인정보(아이디, 비밀번호, 신상정보)를 통신하는 경우 암호화해야한다고 정하고 있다.

암호화와 단방향 암호화(해시)

    암호화는 일반적으로 양방향이고 뜻하며 암호화 된 값을 해독하는 것을 복호화라고 한다.

    개인정보를 암호화하는 경우는 복호화가 불가능한 단반향 암호화(해싱)를 해야한다.
하지만 단방향 해시 함수(One-Way Hash fuction)를 사용해도 한계가 존재한다.
같은 값을 해싱한 값은 값은 암호화된 데이터(다이제스트) 값을 지닌다.

해시를 이용한 암호화 방법

   같은 데이터를 해시할 때 같은 값의 다이제스트를 지니게 되고 이대로 암호화 방법으로 사용하면 수 많은 경우의 수를 대조하여 결국 값을 찾을 수도 있다.
SHA256 해시의 경우의 수는 2^256으로 다이제스트 경우의 수는 78자리 수로 매우 크지만 결국 같은 값으로 해싱한 값은 같다는 한계가 있다.

그렇기 때문에 이러한 한계를 보완하는 방법으로 사용한다.

  1. 여러차례 해싱한다. (Key Stretching)
  2. 원본 값에 문자열을 추가해서 해싱한다.(Salting)
  3. 두 가지를 모두 사용하여 해싱한다.(Adaptive Key Derivation Fuction)

해시와 키 유도 함수 종류

  1. 해시의 종류
    SHA, MD, HAS, WHIRLPOOL

  2. 키 유도 함수 종류
    PBKDF2, bcrypt, scrypt, Argon2

  • 키 유도 함수는 솔팅 시 추가하는 문자열로 사용되는 키값을 제공한다.
profile
반갑습니다, 프론트엔드 개발자를 꿈꾸고 있습니다 ! https://pablaw.github.io/profileLink/

0개의 댓글