해쉬 알고리즘이란?
해쉬 알고리즘은 임의 길이의 정보를 입력받아 고정 길이의 암호문(해시값)을 출력하는 암호화 기술이다. 우리가 수학문제를 푼다고 생각해보자.
f(x) = y = x^102 + x^23 + x^4 + x + 12
위 f(x)식에서, x에 값을 집어넣으면 y값을 계산하기 쉽지만, y가 무엇인지 안다고 해서 x를 구하기는 쉽지 않다. (아마 102개의 해가 있지 않을까?ㅋㅋ 모르면 문과) 해쉬 알고리즘은 이러한 개념을 활용한 암호화 기술이라 생각하면 된다.
해쉬 알고리즘은 아래 네가지 특성이 있다.
특성 | 설명 |
압축성 | 임의 길이의 문자열을 고정 길이의 문자열(해시값)으로 변환 |
역상저항성 | f(x) = y인 x를 찾기 어려운 특성, 단방향 특성을 가짐 |
제2역상저항성 | 주어진 x에 대하여 f(x) = f(x')를 만족하는 x'를 찾기 어려운 특성을 사용함, 초기 입력과 다른 입력값 찾기 어려운 특성 |
충돌저항성 | 동일한 해시값 생성하는 두 개의 서로 다른 입력 값을 찾기 어려운 특성 |
해쉬 알고리즘의 종류와 보안강도
해쉬 알고리즘 종류 | 설명 | 특징 |
MD5 | 128bit의 출력 해시값 생성 | 최근 보안용도로 사용되지 않음 |
SHA-1 (Secure Hash Algorithm) |
160bit, 가장 많이 사용, 인터넷 Default 해시 알고리즘 | 전자서명에 활용 |
SHA-256 | AES 키 길이인 128, 192, 256 비트 대응 | 국내 보안강도 권고 |
TIGER | 64비트 프로세스 최적화, 192비트로 암호화 알고리즘 | 64비트 프로세서의 해시 |
HAVAL | MD5 보완, 128~256비트 알고리즘 제시 | MD5 단점 보완 |
보안강도 | NIST(미국) | 안정성 연한 |
80비트 이상 | SHA-1 | 2010년 까지 |
112비트 이상 | SHA-224/256/384/512 | 2011년~2030년 (최대 20년) |
128비트 이상 | SHA-256/384/512 | 2030년 이후 (최대 30년) |
192비트 이상 | SHA-384/512 | |
256비트 이상 | SHA-512 |
주로 SHA는 IT직 문제에도 빈출되니 알아두도록 하자.
해쉬 알고리즘의 활용
활용사례 | 내용 |
소프트웨어 변경 검출 | 배포 소프트웨어의 불법 변경 여부 점검 로직, CRC -> HASH 발전 |
패스워드 기초 암호화 | PBE(Password Based Encryption)에서 Password와 Salt의 조합을 Hash함수로 암호화 하여 암호화 키로 활용 |
메시지 인증 코드 | 네트워크 & 대용량 자료의 송수신 시 무결성 검증 위해 활용 |
전자 서명 | 전자 서명 시 Message Digest를 암호화 후 송수신하여 무결성 & 인증을 수행함. 거래의 신속한 처리 가능하게 함 |
전자 서명은 모든 곳에서 빈출되며, 프로세스 또한 정확히 알아두어야 한다. 후에 프로세스를 기술하겠다.
'자격증 > 정보관리기술사' 카테고리의 다른 글
[정보관리기술사] IT에서 Daemon, 데몬이란? (0) | 2024.01.12 |
---|---|
[정보관리기술사] 데이터 평문 전송 공격이란? (0) | 2023.11.09 |
[정보관리기술사] IT 프로젝트 용어 정리 (ISMP 등) (0) | 2023.09.30 |