Blog
Anki
컴퓨터 과학

해시란 무엇이고 해시값은 무엇인가요?

꼬리 질문
  • 해시 함수의 주요 특성은 무엇인가요?
  • 해시 충돌이란 무엇이고 어떻게 해결하나요?
  • 해시는 주로 어디에 사용되나요?
  • 대표적인 해시 알고리즘에는 어떤 것들이 있나요?

답변 보기

✅ **해시(Hash)**는 임의의 크기의 데이터를 고정된 크기의 값으로 변환하는 단방향 함수입니다.

  • **해시값(Hash Value)**은 해시 함수를 통해 생성된 고정 길이의 결과값을 의미합니다
  • 입력 데이터를 '메시지', 출력값을 '해시값' 또는 '다이제스트(Digest)'라고 부릅니다 📊
  • 동일한 입력에 대해서는 항상 같은 해시값을 생성합니다
  • 해시값만으로는 원본 데이터를 복원할 수 없는 일방향성을 가집니다 🔒

꼬리질문: 해시 함수의 주요 특성은 무엇인가요?

  • 결정성(Deterministic): 같은 입력은 항상 같은 출력을 생성
  • 고정 길이: 입력 크기와 관계없이 출력 크기는 일정
  • 빠른 연산: 해시값 계산이 효율적
  • 눈사태 효과: 입력의 작은 변화가 출력을 크게 변화시킴 ⚡
  • 단방향성: 해시값으로부터 원본 데이터 복원 불가능

꼬리질문: 해시 충돌이란 무엇이고 어떻게 해결하나요?

  • 해시 충돌: 서로 다른 입력값이 같은 해시값을 생성하는 현상
  • 비둘기집 원리(Pigeonhole Principle)에 의해 이론적으로 불가피 🐦
  • 해결 방법:
    • 체이닝(Chaining): 같은 해시값을 가진 데이터들을 연결리스트로 관리
    • 개방 주소법: 충돌 시 다른 빈 슬롯을 찾아 저장

꼬리질문: 해시는 주로 어디에 사용되나요?

  • 데이터 무결성 검증: 파일 다운로드 시 변조 확인 ✅
  • 패스워드 저장: 평문 대신 해시값 저장으로 보안 강화
  • 해시 테이블: 빠른 데이터 검색을 위한 자료구조
  • 블록체인: 거래 데이터의 무결성 보장 ⛓️
  • 디지털 서명: 문서의 진위성 확인

꼬리질문: 대표적인 해시 알고리즘에는 어떤 것들이 있나요?

  • MD5: 128비트, 현재는 보안상 권장하지 않음 ❌
  • SHA-1: 160비트, 보안 취약점으로 deprecated
  • SHA-256: 256비트, 비트코인에서 사용하는 안전한 알고리즘 💎
  • SHA-3: 최신 표준, Keccak 기반의 안전한 해시 함수