익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
암호 해시 함수
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
암호 해시 함수(cryptographic hash function)는 임의 길이의 입력 데이터를 고정 길이의 해시 값으로 매핑하며, 암호학적 보안을 만족하는 여러 특성을 가진 함수이다. ==정의와 기본 개념== *입력: 임의 길이의 비트열 또는 메시지 *출력: 고정 길이의 비트열 (해시 값 또는 다이제스트) *결정론성: 동일한 입력에 대해 항상 동일한 출력이 나와야 한다 *역산 불가능성 (Preimage resistance): 주어진 해시 값으로부터 원래 입력을 찾는 것은 계산적으로 불가능해야 한다 *제2 역상 저항성 (Second preimage resistance): 주어진 입력과 동일한 해시 값을 갖는 다른 입력을 찾는 것이 불가능해야 한다 *충돌 저항성 (Collision resistance): 서로 다른 두 입력이 동일한 해시 값을 갖는 경우를 찾는 것이 불가능해야 한다 ==주요 속성== *입력 길이에 민감 (Avalanche effect): 입력이 조금만 변화해도 출력 전체가 크게 바뀐다 *빠른 계산성: 해시 함수는 입력을 해시 값으로 빠르게 계산할 수 있어야 한다 *일방향성: 해시 함수의 계산은 쉬워야 하지만 역방향 탐색은 어려워야 한다 *해시 값의 균등 분포: 가능한 출력 공간을 고르게 활용해야 한다 ==대표 알고리즘== *'''MD5''' **128비트 해시 출력 **현재는 실용적 공격 가능성이 알려져 있어 보안 목적에는 부적절하다 *'''SHA-1''' **160비트 출력 **충돌 공격이 실질적으로 가능해져 현대 시스템에서는 더 이상 권장되지 않는다 *'''SHA-2 계열''' **SHA-224, SHA-256, SHA-384, SHA-512 등의 다양한 길이 제공 **널리 사용되는 안전한 해시 계열 *'''SHA-3''' (Keccak 기반) **스펀지 구조(sponge construction)를 사용 **길이 확장 공격(length-extension attack)에 강한 저항성을 가짐 *'''BLAKE2 / BLAKE3''' **SHA-3 후보였던 BLAKE의 후속으로, 빠르고 안전한 해시 함수 **다양한 플랫폼에서 성능 최적화가 잘 되어 있음 ==활용 예== *데이터 무결성 검증: 파일 다운로드나 통신 메시지의 위변조 감지 *디지털 서명: 메시지를 먼저 해시한 뒤 해시 값을 서명 *비밀번호 저장: 비밀번호를 직접 저장하지 않고 해시 값과 솔트 값을 저장 *블록체인 및 분산 원장: 트랜잭션 해시, 머클 트리 구축 등 *메시지 인증 코드(MAC), KDF 구성 요소 등 ==한계 및 보안 고려== *해시 함수만으로는 비밀번호 저장에 충분하지 않다 — 빠르게 연산 가능하므로 무차별 대입 공격에 취약하다 *길이 확장 공격 (특히 Merkle‑Damgård 기반 해시 함수에서 발생 가능) *기존 알고리즘의 취약점 발견 가능성 — 새 알고리즘 또는 보완 방식 도입 필요 *출력 길이 제한 — 보안 수준에 맞는 해시 길이를 선택해야 한다 ==같이 보기== *[[키 유도 함수]] *[[메시지 인증 코드]] *[[해시 트리 (머클 트리)]] *[[SHA-2]] *[[BLAKE3]] ==참고 문헌== *Bruce Schneier, ''Applied Cryptography'' *NIST, ''FIPS PUB 180-4: Secure Hash Standard (SHS)'' *Jean-Philippe Aumasson, ''The Hash Function BLAKE'' ==각주== [[분류:보안]] [[분류:암호학]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록