해싱 알고리즘(Hashing Algorithm)은 임의의 길이를 가진 입력 데이터를 고정된 길이의 비트 문자열로 변환하는 수학적 알고리즘입니다. 해시 테이블을 활용해 어떤 입력 값이든 균일한 형태의 메시지로 변환하며, 데이터 무결성 검증, 암호화, 디지털 서명 등 다양한 분야에서 핵심적인 역할을 담당합니다.
1. MD5 (Message-Digest Algorithm)
MD5는 메시지 다이제스트 알고리즘을 의미하며, 메시지 인증, 콘텐츠 검증, 디지털 서명에 사용되는 암호화 프로토콜입니다. 파일 전송 시 송신자가 보낸 파일과 수신자가 받은 파일이 일치하는지 해시 함수를 통해 확인할 수 있습니다.
다만 MD5는 충돌(collision) 취약점이 발견되어 현재는 보안 목적보다는 단순한 무결성 확인 용도로만 제한적으로 사용됩니다.
2. RSA (Rivest-Shamir-Adleman)
RSA는 개발자 세 명의 이름인 Rivest, Shamir, Adleman에서 따온 것으로, 공개키 암호화 기술의 대표격입니다. 공개키 기반 암호 시스템으로 안전한 정보 전송을 지원하며, 특히 인터넷을 통한 민감한 정보 전송에 널리 활용되는 표준 암호화 방식입니다.
RSA 암호학에서는 공개키와 개인키 모두 메시지를 암호화할 수 있으며, 복호화에는 암호화에 사용된 키와 짝을 이루는 반대쪽 키가 사용됩니다. 이러한 특성 덕분에 RSA는 가장 널리 쓰이는 비대칭 암호 알고리즘이 되었으며, 디지털 통신과 데이터 저장의 기밀성, 무결성, 진본성(authenticity), 부인 방지(non-repudiation)를 보장하는 수단으로 자리 잡았습니다.
3. SHA (Secure Hash Algorithm)
SHA(Secure Hash Algorithm)는 암호학적 해시 함수군으로, 수많은 암호화폐에서 활용되고 있습니다. 이 함수군은 미국 국립표준기술연구소(NIST)가 개발했습니다.
SHA 계열의 각 해싱 알고리즘은 이전 버전을 기반으로 발전해 왔으며, 2000년 이후 새로운 SHA 알고리즘은 출시되지 않았습니다. 참고로 SHA-384는 미국 국가안보국(NSA)의 TOP SECRET급 데이터 보호에 사용됩니다.
4. Scrypt
Scrypt는 의도적으로 연산량이 많도록 설계된 해시 함수로, 계산에 상대적으로 오랜 시간이 걸립니다. 높은 시간 복잡도와 대용량 메모리 요구 사항 덕분에 보안성이 뛰어난 것으로 평가됩니다. 대표적으로 라이트코인(Litecoin)이 Scrypt를 사용해 자체 블록체인을 보호하고 있습니다.
5. Ethash
Ethash는 이더리움(Ethereum) 네트워크가 설계하고 채택한 작업 증명(PoW) 채굴 알고리즘입니다. 이 해시 알고리즘은 암호화폐 커뮤니티의 세 가지 주요 과제, 즉 ASIC 저항성, 라이트 클라이언트 검증 가능성, 전체 체인 스토리지 관리 문제를 해결하기 위해 만들어졌습니다. 이더리움 창시자 비탈릭 부테린(Vitalik Buterin)이 이 알고리즘의 개발에 기여한 것으로 알려져 있습니다.
6. LANMAN
LANMAN은 마이크로소프트 LAN Manager에서 사용하는 해싱 알고리즘을 말합니다. 구형 윈도우 시스템은 LANMAN 방식으로 비밀번호를 저장했으며, DES 암호화 기법을 기반으로 해시를 생성했습니다.
그러나 LANMAN의 DES 구현 방식은 보안성이 크게 떨어져 무차별 대입(brute force) 공격에 취약합니다. 실제로 공격자는 몇 시간 만에 LANMAN 비밀번호를 해독할 수 있는 것으로 알려져 있습니다.