개발스토리

Hash Function 본문

Computer Science/보안

Hash Function

무루뭉 2020. 11. 27. 19:41

Hash Function

■ 임의의 긴 입력값을 적절하게 처리하여 짧은 값을 출력하는 함수

■ Message Authentication Code (MAC)로 무결성 제공

■ 전자 서명으로 sender authentication 제공

 

Hash Properties

■ 입력 길이에 상관없이 출력 길이가 일정하다.

■ 조금이라도 입력 값이 다르면 출력 값은 완전히 달라진다. -> integrity 제공

■ x = h(x)는 쉽지만 reverse 계산은 어렵다. ->암/복호와의 차이점

■ 충돌저항성이 높을수록 좋은 hash 함수이다. ( 충돌 저항성이란 해시값이 같은 입력 값을 두 개를 찾을 수 없다는 특성이다.)

 

Integrity : using Message Authentication Code (MAC)

■ 메시지 무결성 : 변경되지 않은 원본이 맞음을 보장해준다.

■ 메시지를 해시 함수로 돌린 후 나온 결과가 MAC이다. 

메시지와 MAC을 합쳐서 인터넷 망으로 전송한다.

■ reveiver는 sender가 보낸 것을 받고 메시지와 MAC으로 나눈다. 그 다음 메시지를 똑같은 해시 함수로 돌린 뒤에 sender가 보낸 MAC이랑 비교한다. (같으면 무결성 보장)

위 그림에서는 sender Authentication은 제공되지 않는다 : sender가 hacker여도 receiver는 알 수 없다.

 

Authentication : using Digital Signature

 

■ integrity(무결성)과 authentication(인증)을 동시에 제공한다.

■ key를 사용(key를 모르는 사용자는 생성 불가능)

■ 위 그림은 sender와 receiver가 key를 공유하고 있다는 가정.

■ 메시지를 해시함수로 돌린 mac을 sender에 private key로 암호화한 뒤 메시지와 합쳐서 보낸다.

■ receiver는 받으면, 메시지 부분은 같은 해쉬함수로 돌린다. 

■ 또한, mac 부분은 sender에 public key로 복호화를 한 뒤, 해시함수끼리 비교를 한다. 

-> 같으면 무결성 보장, 또한 sender에 public key로 복호화한 것이니 사용자 인증 보장.

 

Merkle Structure

■ 메시지를 block으로 나눔

■ 고정된 길이의 입력 값을 받아들여 고정된 길이로 출력하는 압축 함수를 반복 사용하여 긴 길이의 입력을 처리할 수 있는 해쉬 함수로 확대하여 설계하는 방식

 

MAC의 한계

■ 제 3자에 대한 sender authentication 불가능

-> key를 모르는 사용자에게는 못한다.

■ MAC 공격 방법 : Replay Attack

-> 정상적인 사용자가 보낸 packet을 가로채서 hacker가 사용자인 척 다시 packet을 보내는 방법 

-> hacker는 복호화에 관심이 없음

 

'Computer Science > 보안' 카테고리의 다른 글

IDS_침입 탐지 시스템  (0) 2020.11.27
전자 서명(Digital Signature)  (1) 2020.11.27
Access Control Policy_RBAC  (0) 2020.11.24
Access Control Policy_DAC  (0) 2020.11.24
Access Control(접근 제어)  (0) 2020.11.23
Comments