# 암호 해시 함수 (Cryptographic Hash Function)

암호 해시 함수(Cryptographic Hash Function)는 개별 파일이나 비밀번호와 같은 데이터에 적용하여 체크섬이라는 값을 생성할 수 있는 알고리즘입니다. 암호화 해시 함수의 주요 용도는 데이터의 진위를 확인하는 것입니다.

**암호화 해시 함수**는 데이터에 대한 디지털 지문과 같습니다. 파일이든 비밀번호든 어떤 정보든 입력 데이터를 처리해 체크섬이라는 고유한 값을 생성하는 알고리즘입니다.

## 암호화 해시 함수를 사용하는 이유

암호화 해시 함수의 주된 목적은 데이터의 무결성과 진위성을 보장하는 것입니다. 작동 방식은 다음과 같습니다.

- **데이터 무결성:** 전송 전후의 체크섬을 비교하여 데이터가 변경되지 않았음을 확인할 수 있습니다.
- **비밀번호 저장:** 시스템은 실제 비밀번호 대신 해시된 값을 저장하여 보안을 강화합니다.
- **디지털 서명:** 디지털 문서 및 메시지의 진위성을 확인하는 데 도움이 됩니다.

## 주요 특징

1. **결정적:** 동일한 입력은 항상 동일한 출력 해시를 생성합니다.
2. **유사 난수 출력:** 입력의 작은 변화조차도 극적으로 다른 해시를 생성합니다(눈사태 효과라고 함).
3. **역산이 어려움:** 해시 값으로부터 원래 입력을 알아내는 것은 계산상 사실상 불가능합니다.
4. **충돌 저항성:** 서로 다른 두 입력이 동일한 해시를 내는 경우를 찾기가 사실상 불가능해야 합니다.

## 실용적인 예

“report.pdf”라는 파일이 있고 SHA-256과 같은 암호화 해시 함수를 통해 실행하면 고정 길이의 값이 출력됩니다.

SHA-256의 출력은 256비트이며, 보통 16진수 64자리 문자열로 표시됩니다.

“report.pdf”의 한 바이트라도 변경되면 SHA-256을 통해 다시 실행하면 완전히 다른 체크섬이 생성됩니다. 따라서 변조나 손상을 쉽게 감지할 수 있습니다.

무엇이든 넣으면 스무디로 만들어 주는 믹서를 떠올려 보겠습니다. 이 믹서에는 몇 가지 특별한 속성이 있습니다.

## 속성:

- **일방통행:** 재료를 넣고 스무디를 만들 수는 있지만, 스무디를 다시 원래 재료로 되돌릴 수는 없습니다.
- **고유한 결과:** 재료 조합마다 서로 다른 스무디가 나옵니다. 블루베리 한 개를 추가하는 것과 같은 작은 변화조차도 완전히 다른 음료를 만듭니다.
- **예측 가능한 결과:** 동일한 재료는 항상 동일한 스무디를 만듭니다. 동일한 것을 동일한 순서로 혼합하면 매번 동일한 결과를 얻을 수 있습니다.

이 믹서는 암호화 해시 함수에 비유할 수 있습니다. 텍스트 메시지, 사진, 심지어 전체 영화 등 모든 데이터를 “혼합”할 수 있습니다. 결과 “스무디”는 원래 데이터를 나타내는 고유한 코드인 해시입니다.

## 사용 방법:

온라인에서 파일을 다운로드한다고 가정해 보겠습니다. 파일이 변조되지 않았는지 어떻게 알 수 있을까요? 파일을 제공하는 웹사이트는 파일을 “믹서”(해시 함수)에 넣어 얻은 “스무디”(해시)를 공개할 수 있습니다. 내려받은 파일도 같은 “믹서”에 넣어 보면 됩니다. 두 “스무디”가 일치하면 파일이 변경되지 않은 원본임을 확인할 수 있습니다.

## 암호화 해시 함수: 데이터 무결성 및 보안 보장

암호화 해시 함수는 데이터에 대한 디지털 지문과 같습니다. 파일, 비밀번호, 심지어 전체 영화 등 모든 데이터 조각을 가져와 체크섬이라고 하는 고유한 고정 크기 코드로 변환하는 알고리즘입니다.

## 암호화 해시 함수 사용의 장점:

- **데이터 무결성 검증:** 원본 데이터의 가장 작은 변화도 체크섬을 크게 변경합니다. 따라서 암호화 해시 함수는 파일이 변조되거나 손상되었는지 확인하는 데 이상적입니다.
- **비밀번호 보안:** 웹사이트는 해시 함수를 사용하여 비밀번호를 안전하게 저장합니다. 실제 비밀번호를 저장하는 대신 해시를 저장합니다. 이렇게 하면 데이터 침해가 발생해도 실제 비밀번호가 바로 드러나지 않습니다. 다만 약한 비밀번호는 대입 공격으로 알아낼 수 있어, 솔트와 비밀번호 전용 해시 함수를 함께 씁니다.
- **디지털 서명:** 암호화 해시 함수는 전자 문서의 진위성과 무결성을 보장하는 디지털 서명을 생성하고 검증하는 데 중요합니다.

## 암호화 해시 함수의 단점:

널리 쓰이는 도구이지만 한계도 알아 둘 필요가 있습니다.

- **충돌 저항성:** 드물지만 서로 다른 두 입력이 동일한 해시 출력을 생성할 가능성이 있습니다. 이를 충돌이라고 합니다. 그러나 암호화 해시 함수는 충돌을 찾기가 매우 어렵도록 설계되었습니다.
- **암호화 아님:** 해싱은 암호화가 아닙니다. 해싱은 일방향 함수이므로 해시에서 원래 데이터를 검색할 수 없습니다. 비밀번호를 잃어버린 경우 해시는 복구하는 데 도움이 되지 않으므로 재설정해야 합니다.

---
출처: https://achivx.kr/glossary/cryptographic-hash-function-cryptographic-hash-%EC%95%94%ED%98%B8%ED%99%94-%ED%95%B4%EC%8B%9C-%ED%95%A8%EC%88%98-%EC%95%94%ED%98%B8%ED%99%94-%ED%95%B4%EC%8B%9C/ · ACHIVX 용어 사전 · 수정일 2026-10-20
