이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

보안

해쉬 (HASH)

이쿠우우 2021. 2. 23. 20:30
반응형

 

해쉬(HASH)

 

암호학의 HASH란?

하나의 문자열을 원래의 것을 상징하는 고정된 길이의 값이나 키로 변환하는 방식

 

Hash 함수 구성 원칙

압축성 (Compression)

  • 다양한 가변 길이의 입력에 고정된 크기의 결과값을 출력해야함

효율성 (Efficiency)

  • 어떤 입력 값에 대해서도 해쉬 값을 구하는데

  • 많은 자원과 노력이 소요되지 않고 계산 속도가 빨라야함

단방향성 (one-wayness)

  • 해쉬 결과 값으로부터 입력 값을 계산하는 것은 불가능 해야함

충돌 회피성 (Colliosion resistance)

  • 약한 충돌 회피성 
    • 입력 값과 해쉬 값을 알고 있을 때
    • 동일한 해쉬 값을 가지는 다른 입력 값을 찾는것이 불가능해야함
  • 강한 충돌 회피성
    • 동일한 해쉬 값을 가지는 서로 다른 메시지 쌍을
    • 찾는 것이 불가능해야함

 

 

무결성 검증

데이터를 보호하여 해당 데이터를 항상 정상 상태로 유지하는 성질

위, 변조를 방지하면서 신뢰성을 지켜야함

두개의 정보가 있을 때 두 정보의 Hash 값이 동일하면

그 정보는 동일하다고 판한 할 수 있음

 

 

메시지 인증(HMAC)

Keyed-hash Message Authentication Code 

인증된 메세지코드 라는 뜻

해쉬 함수에 Key를 사용하는 방식으로 메세지를 인증함

HMAC의 암호 강도는 어떤 크기의 해쉬 알고리즘을 사용하는지에 따라서 달라짐

 

[HMAC 동작 원리]

송신자와 수신자만이 공유하고 있는 Key 와 Message 를 혼합하여 Hash 값을 만듬

 

서로에서 보낸 메시지가 훼손되었는지 여부를 확인할 수 있음

 

반응형

'보안' 카테고리의 다른 글

DEP(Data Execution Prevention) 이란?  (0) 2021.08.27
ASLR 이란?  (0) 2021.08.27
OpenSSL를 이용한 암/복호화, 해쉬  (0) 2021.02.23
보안  (0) 2021.02.23
대칭키와 비대칭키란?  (0) 2021.02.19