보안공부

반응형
 
  • 암호학적 해시 함수

해시 함수란, 가변 길이의 메시지를 일정한 길이의 출력 값으로 바꾸어주는 함수로서, 출력된 값은 해시 값 뜨는 메시지 다이제스트라고 한다. 이 해시값을 가지고 원래의 메시지 입력 값을 예측하는 것은 계산적으로 불가능해야 한다. 이를 computationally infeasible하다고 하며, 이러한 해시 함수의 특징을 단방향성(일방향성)이라고 한다.

 

 

  • 해시 함수의 충돌 회피성

동일한 입력값의 해시 값이 같을 때 충돌(collision)이 발생했다고 한다. 이 충돌과 관련하여 해시 함수가 얼마나 안전한지 나타내는 기준이 있다. 제1역상 저항성(premage resistance)은 해시 함수와 메시지 다이제스트 y가 주어졌을 때, h(x) = y를 만족하는 x를 계산적으로 불가능하다는 의미이다. 제2역상 저항성(second preimage resistance, 약한 충돌 회피성)은 입력 값과 해시 값이 주어졌을 때, 그 해시 값을 바꾸지 않으면서 입력 값을 변경하는 것은 계산적으로 불가능하다는 의미이다. 즉 h(x) = h(x')를 만족하는 x'를 찾기 힘들다는 말이다. 충돌저항성(collision resistance, 강한 충돌 회피성)이란, 같은 해시 값을 생성하는 두 개의 입력 값을 찾는 것이 계산적으로 불가능하다는 의미이다. 이러한 세 가지 특징을 만족하는 해시 함수를 암호학적 해시 함수라고 할 수 있다. 즉 암호학적 해시 함수는 해시 함수의 일종으로,해시 값과 원래의 입력 값과의 관계를 찾기 힘든 성질(위 3가지 성질)을 만족한다. 암호학적 해시 함수 말고도 disk에 자료를 저장할 때에도 해시 함수를 이용한다. 가장 널리 사용되는 해시 함수에는 MD5, SHA 계열 함수들이 있다.

 

 

  • 대표적인 해시 함수, SHA

 

SHA(Secure Hash Algorithm) 함수들은 미국 국가 안전 보장국(NSA)에서 설계한 것으로 미국 표준이다. SHA-0, SHA-1이 순서대로 발표되었고 그 후에, SHA-224. SHA-256, SHA-384, SHA 512가 더 발표되었다. 뒤의 4종을 SHA-2라고 통칭하기도 한다. 이들은 TLS, SSL, SSH, PGP, lPSec 등의 다양한 보안 프로토콜과 시스템에서 사용되고 있다. SHA-0과 SHA-1에 대한 공격 방법이 발견되었기 때문에, 좀 더 보안성을 높이기 위해서는 SHA-256 이상 사용하길 권고되고 있다.

 

반응형

+ Recent posts