안녕하십니까 임오군란과 민씨에서 민씨입니다. 오늘은 해시함수에 대해서 알아보는 시간을 가져보도록 하겠습니다.
해시함수 (Hash Function)
해시 함수 또는 해시 알고리즘 또는 해시함수알고리즘은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다.
출처: 위키백과
https://www.convertstring.com/ko/Hash/SHA256
위의 사이트에서 해시함수를 만들어서 암호화된 문자열을 받을 수 있습니다.
암호화 전 | 암호화 후 |
안녕하세요 | B51DE4D4145B2F1455C558395C38ACAF23281C702C8109B1574975A46C0549E0 |
안넝하세요 | F1F0C2E4D5E344852EFA730E62B66EEB6A16CDD46B765110188D78BEFC2F1C2D |
위와 같이 한 획의 차이로 전혀 다른 글자가 해시함수를 통해 출력되는 것을 확인할 수 있습니다.
또한 64 byte의 글자 수 길이와는 관계 없이 항상 고정된 길이의 문자열을 출력합니다.
이런한 점을 통해 해시함수의 특징을 한 번 생각해 보도록 하겠습니다.
- 같은 입력 값은 항상 같은 출력 값을 보장
- 눈사태효과: 아주 작은 차이의 입력값에도 전혀 다른 값을 출력
- 단방향성 : 출력된 값으로 입력값을 유추하지 못한다. → y=h(x)에서 x를 찾지 못함
- 항상 고정된 길이의 해시를 출력한다.
SHA
SHA (Secure Hash Algorithm)
미국 NSA에서 제작하고 미국 국립표준기술연구소에서 표준으로 채택한 암호학적 해시함수.
현재는 일반적으로 SHA-256을 사용하고 있고 안정성이 높다.
사용 사례
SHA-1
Git : 파일이나 모든 커밋을 SHA-1로 해시한 식별자를 통해 관리
SHA-256 (SHA-2)
인터넷 뱅킹 : SHA-256 혹은 RSA-2048 암호화 사용
비트코인 : 작업증명에 SHA-256을 사용
Window 업데이트 : 파일의 디지털 서명에 SHA-256을 사용한다.
웹브라우저의 인증서.
해시함수의 종류
MD4, MD5
- (1990년대초 미국 Ronald Rivest 교수 제안,개발)
SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512), SHA-3 (KECCAK)
- (1990년대 중반 이후, MD4,MD5의 개선 대체를 위해, 미국 NIST 공모,공표)
MDC
- 메시지의 무결성(메시지가 변하지 않았다는 것.) 보장하는 메시지 다이제스트.
- 수신한 메시지의 MDC를 계산하고 송신측이 보내준 MDC와 비교하여 동일한지 비교함.
- 과정
① 메시지의 무결성을 제공하기 위해서 송신자 A는 송신할 메시지를 이용하여 메시지 다이제스트(암호학적 해시함수를 이용한 해시값)를 만듦.
이때 생성된 메시지 다이제스트를 일반적으로 MDC라고 부름.
② 송신자 A가 메시지와 MDC를 수신자 B에게 보냄.
③ 수신자 B는 받은 메시지로 MDC를 만들고, 송신자 A가 보낸 MDC와 비교하여 메시지의 무결성을 확인함.
MAC
MAC(메시지 인증코드, Message Authentication Code)의 개념
- MAC은 해시함수 + 대칭키로 메시지 무결성을 인증하고 거짓행세(메시지 인증으로 검출)를 검출.(메시지 인증: 올바른 송신자에게 온것을 인증하는 것)
- 무결성을 확인하고 메시지에 대한 인증을 하는 기술. -> 도청(소극적 공격) 방어, 변경과 거짓행세 검출 가능
임의 길이의 메시지와 송신자 및 수신자가 공유하는 키. 두 개를 입력으로 하여 고정 비트길이의 출력을 만드는 함수. 이 출력값을 MAC이라고 함.
- 적극적 공격인 데이터 위조 같은 것을 방어하는데 사용.
'IT KNOWLEDGE' 카테고리의 다른 글
CISM(국제공인정보보호관리자) 자격증에 대해 알아보자! (0) | 2022.07.06 |
---|---|
네트워크 케이블이란? (0) | 2022.07.04 |
네트워크 관리사 2급 자격증에 대해 알아보자 (0) | 2022.06.27 |
표준프레임워크 eGovFrame 소개 (0) | 2022.06.24 |
인프라 엔지니어 관점으로 봐야 할 네트워크 토폴로지 (0) | 2022.06.24 |
댓글