Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안 해싱의 주요 유형: RIPEMD, MD5, CRC32, Tiger, MD4 총정리

정보 보안 분야에서 해싱(Hashing)은 데이터의 무결성을 검증하고 민감한 정보를 보호하는 핵심 기술입니다. 해싱 알고리즘은 임의 길이의 데이터를 고정된 길이의 해시 값으로 변환하며, 용도와 보안 수준에 따라 다양한 종류가 존재합니다. 이번 글에서는 대표적인 해싱 알고리즘인 RIPEMD, MD5, CRC32, Tiger, MD4의 특징과 작동 원리, 보안 취약점까지 자세히 살펴보겠습니다.

1. RIPEMD

RIPEMD(RACE Integrity Primitives Evaluation Message Digest)는 1996년 유럽의 RIPE 프로젝트의 일환으로, MD4와 MD5의 취약점을 연구하던 연구진이 개발한 해시 함수입니다. MD5나 SHA와 구조가 유사하며, 16단계씩 5라운드로 구성된 두 개의 병렬 처리 라인을 사용합니다. 출력값은 160비트 해시 값으로, SHA보다 처리 속도는 느리지만 상대적으로 더 높은 보안성을 제공하는 것으로 평가됩니다.

2. MD5

MD5(Message Digest 5)는 데이터 문자열을 인코딩하여 128비트 길이의 지문(fingerprint) 형태로 변환하는 해시 함수입니다. 주로 체크섬(checksum)으로 활용되어 데이터 무결성을 검증하는 데 사용됩니다. 다만 MD5는 확장된 해시 충돌(hash collision) 취약점이 발견되어 보안 목적보다는 일반적인 무결성 확인 용도로 권장되며, 그럼에도 불구하고 여전히 전 세계에서 가장 널리 사용되는 알고리즘 중 하나입니다.

3. CRC32

CRC32(Cyclic Redundancy Check 32)는 데이터의 우발적인 변경이나 손상을 감지하기 위해 설계된 오류 검출 코드입니다. 동일한 데이터 문자열에 CRC32를 적용하면 항상 같은 해시 값이 출력되기 때문에 파일 무결성 검사용 해시 알고리즘으로 자주 사용됩니다. 최근에는 Zip 파일 외부의 다양한 환경에서도 CRC32가 폭넓게 활용되고 있습니다.

CRC의 작동 원리

순환 중복 검사(CRC)는 송신 장치가 패킷에 대해 수학적으로 계산한 숫자로, 수신 컴퓨터가 이를 다시 계산하여 비교하는 방식으로 동작합니다. 원본 값과 재계산된 값이 일치하지 않으면 해당 패킷은 손상된 것으로 판단되어 재전송되거나 삭제됩니다.

CRC의 수학적 절차는 국제전기통신연합(ITU)에서 정의하고 있으며, 4KB 이하의 패킷에는 16비트 다항식을, 4KB를 초과하는 패킷에는 32비트 다항식을 전송 정보에 적용합니다.

4. Tiger 알고리즘

Tiger 해시 알고리즘은 MD5 및 SHA 계열에 비해 더 빠른 처리 속도와 우수한 성능을 제공합니다. 192비트 해싱 시스템을 채택하고 있으며, 최신 컴퓨터 환경에서 주로 사용됩니다. Tiger2는 기존 Tiger 알고리즘을 개선한 진화형 버전으로, 더욱 향상된 성능을 제공합니다.

Tiger의 설계 구조

Tiger는 해시 함수 설계에서 사실상 표준으로 자리 잡은 Merkle-Damgård 구조를 기반으로 만들어졌습니다. 단방향 압축 함수는 64비트 워드 단위로 동작하며, 3개 워드의 상태(state)를 유지하고 8개 워드의 정보를 처리합니다.

총 24라운드로 구성되어 있으며, XOR 연산과 덧셈/뺄셈, 회전(rotates), S-box 조회 등이 혼합된 연산 세트를 사용합니다. 또한 8개의 입력 워드로부터 24개의 라운드 키를 생성하는 비교적 복잡한 키 스케줄링 알고리즘이 적용됩니다.

5. MD4 (Message Digest Algorithm 4)

MD4는 128비트 다이제스트를 생성하는 암호화 해시 함수입니다. 1990년 로널드 라이베스트(Ronald Rivest)가 개발했으며, MD5, SHA-1, RIPEMD 등 후속 알고리즘의 설계에 큰 영향을 미쳤습니다. 그러나 1995년 최초의 충돌 공격(collision attack)이 발견되면서 심각한 보안 결함이 드러났고, 이후 새로운 공격 기법들까지 등장하여 현재는 보안 목적으로 사용이 권장되지 않습니다.