PSD( Private-Self-Development )

단방향 암호화 ( HASH ) 와 단점 보완 본문

Backend/기타

단방향 암호화 ( HASH ) 와 단점 보완

chjysm 2022. 10. 3. 15:05

단방향 암호화 방식 이란?

복호화가 불가능한 암호화 방식 

주로 해시 함수를 이용하여 암호화한다.


해시 함수?

  • 임의의 길이를 갖는 데이터를 입력받아 고정된 길이의 해시값을 출력하는 함수.
  • 키값이 없기 때문에, 같은 입력값을 넣을 경우 같은 출력 값을 가지게 된다.

해시 함수의 특성

역상 저항성

  • 해시된 값이 주어져 있을때 계산을 하여 입력된 값을 계산하기가 어려워야 한다.

제2 역상 저항성

  • 원본 데이터와 해시 된 값이 주어졌을 때 똑같은 해시값을 반환하는 다른 데이터를 찾아내거나 계산이 불가능해야 한다.

충돌 저항성

  • 데이터 A와 데이터 B가 같은 해시값이 나오면 안 된다.

압축 효과

  • 원본 데이터의 크기 및 길이가 크더라도 해시 함수를 통해서 만들어진 해시값은 일정한 길이의 데이터여야 한다.

단방향 암호화

  • 해시하는 것은 원본 데이터를 뭉갠다 라는 표현을 쓴다.
  • 절때 복호화가 불가능하여야 하며 해시값을 가지고 원본 값으로 역산할 수 없어야 한다.

눈사태 효과

  • 입력값의 아주 작은 변화로도 해시값이 전혀 다르게 도출되어야 한다.

단방향 암호화 종류

1. SHA-1 ( Secure Hash Algorithm-1 )

  • 충돌 쌍 탐색 공격 때문에 SHA-2를 권장하고 있음.
충돌 쌍 탐색 공격 란?
해시 충돌( 다른 입력 값인데 같은 해시 결과 가 나오는 경우 )
이 일어나는 두 입력값을 찾는 공격이다.
보안적으로 문제가 생긴다.

 

2. SHA-2( Secure Hash Algorithm-2 )

SHA-256

특징

  • 현재 블록체인에서 가장 많이 채택하여 사용되고 있는 암호 방식

장점

  • SHA-512보다 해시 생성이 빠르다.
  • 안정성 문제도 크게 없다.
  • 속도가 빠르다.

단점

  • 길이 확장 공격에 취약하다.

 

SHA-512

단점

  • 길이 확장 공격에 취약하다.
  • 용량을 너무 많이 차지한다.

 

3. SHA-3( Secure Hash Algorithm-3 )

특징

  • SHA-1과 SHA-2를 대체하기 위한 함수

장점

  • SHA-2가 출력할 수 있는 메시지 해시값의 크기를 모두 출력 가능
  • 충돌 저항성, 역상 저항성, 제2역상 저항성 만족
  • SHA-2가 사용되는 곳에 SHA-3을 바로 적용 가능
  • 메모리 효율이 좋다.

단점

  • SHA-3을 지원하는 소프트웨어 또는 하드웨어가 사실상 없음 
  • SHA-1,2 보다 느린 속도

해시 함수의 단점 보완법

무차별 대입 공격, Rainbow table 공격, 충돌 쌍 탐색 공격, 길이 확장 공격 등 과 같이 

해시 함수의 보안 문제를 해결하기 위한 보완법이 있다.

 

1. Key Stretching ( 키 스트레칭 )

  • 해시 함수를 N번만큼 반복하는 것
  • 무차별 대입 공격 방지할 수 있다.

출저 : 구글 검색

 

2. 솔팅(Salting)

  • 암호화 데이터에  특정 데이터를 특정 위치에 추가한 후
    해시값을 출력하는 것. 
  • Rainbow Table 공격을 방지하는 효과가 있다.

출저 : 구글 검색

 


참조

https://k0102575.github.io/articles/2020-03/hash

https://egg-stone.tistory.com/19