사용자:쵸리/연습장

위키백과, 우리 모두의 백과사전.
해쉬 함수 모형도

암호학적 해시 함수[편집]

암호학적 해시 함수(cryptographic hash function)은 해시 함수의 일종으로,임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해쉬값을 출력하는 함수이다. 각 메시지마다 해쉬값이 다르기 때문에 해쉬함수는 메시지의 무결성을 확인하는 방법으로 메시지의 내용이 변경되지 않았다는 것을 보장해준다. 또한, 일방향함수를 포함하고 있기 때문에 해시값에서 원문을 재현할 수는 없고 같은 해시값을 가진 다른 데이터를 작성하는 것도 극히 어렵다. 이런 특성을 이용해서 통신의 암호화 보조수단이나 사용자 인증, 디지털 서명 등에 응용되고 있다.

해시 함수 특징[편집]

  • 역상 저항성(preimage resistance): 주어진 해시 값에 대해, 그 해시 값을 생성하는 입력값을 찾는 것이 계산상 어렵다 라는 말로 즉, 해시 함수는 제 1 역상 공격에 대해 안전해야 한다. 이 성질은 일방향함수(one way function)와 연관되어 있다.
  • 제 2 역상 저항성(second preimage resistance): 입력 값에 대해, 그 입력의 해시 값을 바꾸지 않으면서 초기 입력 값과 다른 입력값을 찾는 것이 계산상 어렵다. 즉, 해시 함수는 제 2 역상 공격에 대해 안전해야 한다.
  • 충돌 저항성(collision resistance): 해시함수는 해시 충돌에 대해 안전해야 한다. 같은 해시 값을 생성하는 두 개의 입력값을 찾는 것이 계산상 어려워야 한다.

해시 함수 종류[편집]

  1. MD 알고리즘

MD(Message Digest function 95) 알고리즘에는 MD2, MD4, MD5 이렇게 세 가지가 있는데 RSA를 개발한 미국 MIT의 로널드 리베스트 교수가 공개키 기반 구조를 만들기 위해 RSA와 함께 개발했다. 1989년에 만들어진 MD2는 8비트 컴퓨터에 최적화되어 있고 MD4(1990년 개발)와 MD5(1991년 개발)는 32비트 컴퓨터에 최적화되어 있다. MD5 알고리즘은 MD4의 확장판으로, MD4보다 속도가 빠르지는 않지만 데이터 보안성에 있어 더 많은 확신을 제공한다.


  1. SHA 알고리즘

SHA(Secure Hash Algorithm) 알고리즘은 미국 NSA에 의해 만들어졌다. 160비트의 값을 생성하는 해시 함수로, MD4가 발전한 형태이다. MD5보다 조금 느리지만 좀더 안전한 것으로 알려져 있다. SHA 알고리즘은 크게 SHA-1과 SHA-2로 나눌 수 있으며 종류에 따른 성능은 [표1-1]과 같다(SHA-256, 384, 512는 SHA-2에 속한다).

SHA 종류별 특징 [1-1]
종류 메시지 문자 크기 블록크기 해시 셜과값 길이 해시강도
SHA-1 <2^64 512 160 0.625
SHA-256 <2^64 512 256 1
SHA-384 <2^128 1024 384 1.5
SHA-512 <2^128 1024 512 2

하지만, MD5와 SHA-1 안전하지 않다는 것이 알려져 있다. 미국 US-CERT에서는 2008년 MD5를 사용하지 말아야 한다고 발표했고, NIST에서는 2008년 SHA-1의 사용을 중지하며 SHA-2를 사용할 것이라고 발표했다.NIST는 SHA-3의 개발을 위해 2007년 11월 2일부터 공모를 진행하고 있다.

같이 보기[편집]