소개
암호학의 세계에 오신 것을 환영합니다! 이 실습에서는 현대 보안의 가장 근본적인 개념 중 하나인 암호화 해싱 (cryptographic hashing) 에 대한 실질적인 경험을 쌓게 될 것입니다. 구체적으로 SHA-256 알고리즘을 다룰 것입니다.
암호화 해시 함수는 임의의 크기를 가진 입력 (또는 '메시지') 을 받아 고정된 크기의 바이트 문자열을 반환하는 수학적 알고리즘입니다. 이 출력은 일반적으로 '다이제스트 (digest)' 또는 '해시 (hash)'라고 합니다. 예를 들어, SHA-256 은 항상 256 비트 (32 바이트) 해시를 생성합니다.
이러한 함수에는 몇 가지 중요한 속성이 있습니다.
- 결정론적 (Deterministic): 동일한 입력은 항상 동일한 출력을 생성합니다.
- 단방향성 (One-way): 해시로부터 원래 입력을 찾아내기 위해 함수를 역으로 되돌리는 것은 계산적으로 불가능합니다.
- 눈사태 효과 (Avalanche Effect): 입력의 작은 변화 (예: 단일 문자 변경) 는 극적으로 다른 출력 해시를 생성합니다.
이 실습 전반에 걸쳐 openssl 명령줄 도구와 간단한 Python 스크립트를 사용하여 이러한 속성을 탐색하고 파일 무결성 확인 및 비밀번호 보안과 같은 실제 시나리오에서 해싱이 어떻게 사용되는지 이해하게 될 것입니다.



