320x100
320x100

해시 (Hash)

- 임의의 크기를 가진 데이터를 고정된 크기의 데이터로 변환 시킨 것

- 해시 알고리즘

 : 데이터를 해시로 변환하는 알고리즘

 : 해시 자체는 암호화 과정이 아니지만, 암호화 기법과 같이 사용하여 다양한 기능을 구현할 수 있음

 

 

 

MD5 (Message-Digest algorithm 5)

- RFC1321로 지정된 128비트의 해시함수

 : 주로 프로그램이나 파일의 무결성을 검사할때 사용

 : 설계상 결함으로 인해 보안 관련 용도로는 사용하지 않음

 => 노트북 한대의 계산능력으로 1분내에 해시 충돌 검출 가능

 

- 기본개념

 ㆍ32개의 16진수로 이루어진 해시 값 생성

 ㆍ생성가능한 해시 값의 수 = 16^32

 ㆍ충돌 (Collision)

   : 원본 데이터가 다름에도 불구하고 같은 해시 값이 생성되는 것

 

 

 

 

SHA (Secure Hash Algorithm)

- 미국 국가 안전 보장국(NSA)에서 개발한 서로 관련된 암호학적 해시 함수들의 모음

 : SHA-1, SHA-2, SHA-256, SHA-512 등의 알고리즘이 있음

 : SHA-2의 경우 224, 256, 384, 512 bit의 해시함수로 구성 되어 있음

 : TLS, SSL, PGP, SSH, IPSec 등의 많은 보안 프로토콜에서 채택

 

- 기본개념

 ㆍ원본 데이터의 작은 변화에도 해시 값의 변동이 매우 큼

 ㆍ현재 MD5와 SHA-1은 보안이 뚫렸으나, SHA-2 계열 알고리즘은 현재까지는 안전

 ㆍSHA-256 (256bit) / SHA-512 (512bit)가 현재 널리 쓰이는 중

 

 

 

 

 

암호화 알고리즘

Adaptive Key Derivation Dunction

- 다이제스트 (해시화된 데이터)를 생성할때 salting과 Key-Stretching를 반복하여 공격자가 쉽게 유추할 수 없도록

  보안의 강도를 선택할 수 있는 함수

- PBKDF2, Bcrypt, Scrypt가 있음

 

※ salting

  : 해시함수 실행전 원문에 임의의 문자를 덫붙혀 보안성을 높이는 기법

 

※ Key-Stretching

  : 입력한 패스워드의 다이제스트를 생성하고 생성된 다이제스트를 입력 값으로 하여 다이제스트를 생성하는 것을

    반복하여 보안성을 높이는 기법

 

 

 

 

PBKDF2 (Password-Based Key Derivation Function)

- 해시 함수의 컨테이너 역할을 하는 함수

 : 검증된 해시함수만을 사용

 : 해시함수와 salt를 적용하여 해시함수의 반복횟수를 지정하여 암호화 가능

 : 가장 많이 사용되는 ISO표준에 적합한 알고리즘

 

 

 

 

 

Bcrypt 

- Blowfish 암호를 기반으로 설계된 패스워드 해싱 함수

 : 1999년 발표 이후 현재까지 사용중인 가장 강력한 암호화 알고리즘

 : OpenBSD에서 채택 / .NET 및 Java를 포함한 많은 플랫폼 및 언어에서 사용가능

 : 해시화 반복횟수를 늘려 연산속도를 늦출 수 있어 연산능력이 강화된 Brute-Force공격에 대비 가능

 

※ Blowfish 알고리즘

 : 데이터 암호화 표준(DES)와 국제 데이터 암호화 알고리즘 (IDEA)를 대신하여 사용되는 암호화 알고리즘

 : 32비트~448비트의 가변길이의 키를 이용하는 비밀키 블록 암호

 

※ Brute-Force

 : 무차별 적으로 값을 대입하여 해시 알고리즘을의 원본 데이터를 알아내는 공격 기법

 

 

 

 

Scrypt

- 2012년에 발표된 PBKDF2와 유사한 함수

 : 다이제스트를 생성할때 메모리 오버헤드를 갖도록 설계되어 Brute-Force시도시 병렬화 처리가 어려움

 : Bcrypt보다 더 경쟁력이 있다고 평가 됨

 : 여러 프로그래밍 언어의 라이브러리에서 제공 받을수 있음

 

 

 

기타  알고리즘

- SEED : 한국인터넷진흥원(KISA)에서 개발한 128비트의 대칭키 블록 암호 알고리즘

 

 

 

 

 

Refference

blog.naver.com/sol9501/70104119450

jongmin92.github.io/2019/12/18/Java/hash/

ksbsite.tistory.com/12?category=926929

st-lab.tistory.com/100

velog.io/@kylexid/%EC%99%9C-bcrypt-%EC%95%94%ED%98%B8%ED%99%94-%EB%B0%A9%EC%8B%9D%EC%9D%B4-%EC%B6%94%EC%B2%9C%EB%90%98%EC%96%B4%EC%A7%88%EA%B9%8C

brownbears.tistory.com/73

d2.naver.com/helloworld/318732

 

 

 

 

 

 

 

300x250
728x90