네트워크
해시함수란?
tioon
2023. 9. 24. 14:44
해시함수란?
-어떠한 랜덤한 길이의 입력 데이터를 받아서 고정된 길이의 '해시값'이라는 고정된 길이의 문자열로 변환하는 것을 해시함수라고 합니다. 해시함수는 데이터를 요약하는 역할을 하는함수로, 같은 데이터는 항상 같은 결과를 가집니다.
해시함수의 특징
- 입력값 크기 자유
-해시함수의 입력값의 크기는 자유로워 어떠한 길이의 입력값을 넣어도 다 가능합니다. - 출력값 크기 고정
-입력값과는 다르게 출력값은 길이가 고정되어 있습니다. - 일방향 성질
-해시함수는 해시값으로 만드는건 쉽지만, 그걸되돌려서 입력값을 아는건 거의 불가능합니다. - 충돌 저항성
-어떤 두개의 서로 다른 데이터가 같은 해시값을 가지는 것을 찾기 어렵습니다.
해시함수의 활용
- MDC(메세지 변조감지코드)
-전달된 데이터가 중간에 변조되지 않았는지 확인하는데 사용되는 암호학적 해시함수.데이터를 전송하기 전에 MDC 함수가 전송 데이터 입력으로 받아 MDC값을 생성한후 수신자에게 같이 전송됩니다. 그이후 수신자에서 측에서도 MDC값을 생성한후 비교를 통해 데이터 변조유무를 확인합니다. 데이터가 전송될때 암호화가 되지않아 안전한 채널로 데이터를 전송해야한다는 제약 조건이있습니다. (둘의 암호화 데이터가 같으면 데이터 무결성, 아니면 데이터 변조)
- MAC(메세지 인증코드)
-데이터 무결성과 메세지 인증을 보장하기 위해 사용되는 암호화 기술로, 먼저 사용자 끼리 키를 공유해야합니다. 그이후 메세지와 키를 함께 암호화해 MAC을 만들고, 보낼 메세지와 MAC을 같이 다른사용자에게 전송합니다. 수신을한 다른 사용자는 받자마자 메세지와 공유한 키를 암호화하여 자기자신이MAC을 만든 후 받은 MAC과 비교를 통해 데이터 변조 유무를 판단합니다. 이 방식은 안전하지 않은 채널로 데이터를 전송해도 괜찮다라는 장점이 있지만, 키를 먼저 공유해야한다는 제약조건이 있습니다.
HMAC(Hash-based Message Authentication Code)
메세지 인증 코드를 생성하기 위해 설계된 알고리즘으로 MAC의 특별한 버전입니다.
해시함수와 비밀 키를 같이 사용하여 작동하며, 데이터의 무결성 및 인증을 보장합니다.
일반적인 MAC 방식보다 더 안전하며, 다양하게 쓰입니다.
- HMAC의 특징
- 빠른 속도
-암호화와 키 사용을 동시에 하여 메세지 인증속도를 빠르게 높일 수 있다. - 쉬운 코드 구현
-HMAC코드를 사용해 코드의 길이를 줄일 수 있습니다.
- 빠른 속도