Hash Functions & Digital Signatures
데이터의 무결성을 증명하는 일방향 암호화 기술인 해시 함수와, 온라인상의 인감도장 역할을 하는 디지털 서명의 수리적 원리를 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
해시 함수 및 디지털 서명(Hash Functions & Digital Signatures, HDS)은 정보의 1비트 변화도 즉각 감지하는 '무결성(Integrity) 거름망'이자, 누가 메시지를 보냈는지 수리적으로 확증하여 발뺌할 수 없게 만드는 '부인 방지(Non-repudiation) 물리학'입니다.
학습자는 어떠한 입력값도 고정된 길이의 고유한 수치로 변환하는 **일방향 해시(SHA-256 등)**의 물리적 특성과, 공개키 암호를 응용해 메시지의 출처를 증명하는 디지털 서명의 수리적 수순을 배웁니다. 특히, 서로 다른 두 입력이 같은 해시값을 갖는 '충돌(Collision)'을 물리적으로 방지하는 원리를 익힙니다. 이를 통해 소프트웨어 변조 방지, 전자 결재, 블록체인 거래 증명 등 현대 사회의 모든 수리적 신뢰 시스템을 구축하는 하이엔드 인증 공학 역량을 확보합니다.
2. Scope & Boundaries
In-Scope
- Hash Principles: 일방향성, 압축성, 효율성, 충돌 저항성의 수리적 정의
- Modern Hash Functions: SHA-2, SHA-3, BLAKE3 등의 물리적 엔진 구조
- Digital Signature Schemes: RSA-PSS, ECDSA, Ed25519의 서명 및 검증 수리 모델
- Message Integrity (HMAC): 키를 섞은 해시를 통한 데이터의 물리적 오염 방지
- Password Hashing Mechanics: Argon2, bcrypt, scrypt와 같은 속도 지연(Slow-hash) 물리 기제
Out-of-Scope
- 데이터 암호화/복호화 자체의 대칭·비대칭 알고리즘 상세 (10-01-01 SAA 영역에서 분담)
- 사용자의 신원을 확인하는 인증 수단(Password, MFA) 상세 (10-04-XX 영역에서 분담)
Boundaries
- HDS vs. SAA: SAA(10-01-01)가 '비밀(Secret)'을 유지하는 데 집중한다면, HDS는 정보가 '변하지 않았음(Integrity)'과 '누가 했음(Origin)'을 증명하는 데 집중하여 구분합니다.
3. Counterexample
- 단순히 "빠른 해시 사용"이라 설명하는 것은 HDS 학습이 아닙니다. 왜 비밀번호 저장에 가장 빠른 해시(MD5/SHA1)를 쓰는 것이 하드웨어 병렬 연산을 이용한 무차별 대입(Brute-force) 공격에 수리적으로 취약해지는지 증명할 수 있어야 하며, 디지털 서명에서 해시값을 서명하지 않고 '메시지 본문 전체'를 비대칭 암호화하는 것이 왜 물리적 성능 재앙을 일으키는지 논증하지 못한다면 HDS의 정수를 이해하지 못한 것입니다.
4. Prerequisites
- Symmetric & Asymmetric Algorithms (Basic): 10-01-01의 비대칭키(공개키/개인키) 개념 이해가 필수입니다.
- Computer Architecture & Embedded Systems (Recommended): 02-01-XX의 비트 연산 및 연산량(Work Load) 제어 이해가 권장됩니다.
5. Learning Map
- One-way Door: 한쪽으로만 갈 수 있고 다시 돌아올 수 없는 해시의 수리적 성질을 이해합니다.
- Fingerprint of Data: 거대한 파일도 짧은 숫자로 요약하는 무결성 지문을 생성합니다.
- The Digital Seal: 해시값에 개인키를 입혀, 전 세계 누구도 위조할 수 없는 디지털 인장을 찍습니다.
- Hardening the Vault: 하드웨어 가속을 방해하는 '메모리 하드 암호'를 통해 비밀번호 정보를 수치적으로 요새화합니다.
6. Learning Topics
Basic
Core: 해시 함수의 물리적 특성과 일방향성 (Hash Physics)
- Why to Learn: 데이터가 한 톨이라도 바뀌었는지 하드웨어가 즉각 판단하게 만들기 위해서입니다.
- What to Learn:
- One-way Property: 결과값에서 입력값을 역산하기 힘든 수리적 특성
- Avalanche Effect: 입력의 미세한 변화가 결과값의 거대한 물리적 파동을 만드는 현상
- Collision Resistance: 우연히 같은 해시값이 나올 확률을 수리적으로 0에 수렴하게 만드는 법
- How to Learn:
- 문자열 끝에 점(.) 하나만 추가하고 SHA-256 해시값을 비교하여, 비트가 얼마나 물리적으로 요동치는지 관찰 실습
- 파일 다운로드 시 제공되는 'Checksum' 수치와 실제 파일 해시를 비교하여 변조 유무 확인 훈련
- Implement: 두 파일의 해시를 비교하여 동일성을 판별하는 기초
IntegrityGuard
Recommended
Core: 디지털 서명과 신뢰의 수순 (Signature Mechanics)
- Why to Learn: 인터넷 상의 누군가가 "진짜 그 사람"임을 수리적으로 확신하기 위해서입니다.
- What to Learn:
- Signing Process: 메시지 해시 + 개인키 = 서명의 물리적 결합
- Verification Process: 서명 + 공개키 = 해시 일치 여부의 수리적 판정
- Non-repudiation: 나중에 본인이 작성하지 않았다고 물리적으로 발뺌할 수 없는 기제
- How to Learn:
openssl명령어를 사용하여 텍스트 파일에 서명을 만들고, 다른 팀원에게 공개키와 함께 주어 검증하게 하는 실습- 서명된 메시지의 1바이트를 수정했을 때 검증 엔진이 왜 물리적으로 실패를 뱉는지 알고리즘 추적
- Implement: RSA 키를 이용해 메시지에 서명을 남기고 검증하는
DigitalNotary
Practical
Core: 비밀번호 해싱과 속도 제어 (Slow-hash Engineering)
- Why to Learn: 해커가 훔쳐간 데이터베이스를 수백 년간 계산해도 풀지 못하게 물리적으로 지연시키기 위해서입니다.
- What to Learn:
- Salt & Pepper: 동일한 비밀번호도 다르게 보이게 하는 물리적 무작위 노이즈
- Iterative Hashing: 연산 횟수(Work Factor)를 늘려 하드웨어 공격 비용을 수치적으로 높이는 법
- Argon2/bcrypt: GPU/ASIC을 활용한 병렬 공격을 물리적으로 무력화하는 메모리 기반 해시
- How to Learn:
- 일반 SHA-256과 Argon2의 1회 연산 소요 시간()을 비교하고, 1초에 수행 가능한 공격 횟수 산출 실습
- 'Salt'가 없을 때 발생하는 'Rainbow Table(미리 계산된 사전)' 공격의 취약성 연구
- Implement: 입력한 난이도에 따라 연산 시간이 변하는 안전한 비밀번호 해시 시스템
SafeAuth
Advanced
Core: 최신 서명 알고리즘과 멀티 서명 (Advanced Signatures)
- Why to Learn: 더 빠르고 더 안전하며, 여러 명이 공동 서명해야 하는 고차원 비즈니스 로직을 구현하기 위함입니다.
- What to Learn:
- EdDSA (Ed25519): 보안성과 속도가 매우 뛰어난 최신 물리 서명 구조
- Multi-signature: N명 중 M명의 서명이 모여야 유효해지는 수리적 임계치 시스템
- Aggregate Signatures: 여러 개의 서명을 하나로 묶어 하드웨어 저장 용량을 아끼는 기술
- How to Learn:
- 비트코인(ECDSA)과 솔라나(Ed25519)의 서명 처리 방식 차이와 수리적 가스비() 상관관계 분석 실습
- '슈노르 서명(Schnorr Signatures)'이 공개키를 어떻게 물리적으로 결합하는지 수리 모델 연구
- Implement: N명 중 과반수가 동의해야 통과되는 가상 전자 결재 엔진
ConsensusSign
7. Terminology
8. References
Primary
- [P2] SWEBOK v4.0 - Software Engineering Quality / Security (Integrity Mechanisms) — Structural standards.
- [P3] CyBOK - Cryptography Knowledge Area (Hash Functions) — Definitive theory.
Secondary
- [Understanding Cryptography] Christof Paar — Chapter on hash functions and signatures.
- [A Taxonomy of Web Attacks] — Context for hash collision and password leaks.
Industry
- [FIPS 180-4: Secure Hash Standard (SHS)] — NIST government standard.
- [RFC 2104: HMAC: Keyed-Hashing for Message Authentication] — Internet standard.
9. Final Checklist
Primary
- '해시 함수의 충돌()'이 발생했을 때 시스템의 '무결성'이 물리적으로 어떻게 무너지는지 설명 가능한가? (P3)
- '디지털 서명'이 '대칭키 메시지 인증(HMAC)'보다 '부인 방지' 측면에서 왜 수리적으로 우월한지 기술할 수 있는 가? (P2)
Secondary
- 'SHA-3'가 'SHA-2'와 전혀 다른 수리적 구조(Sponge Construction)를 가지는 물리적 배경을 소통 가능한가?
- Rainbow Table 공격이 최신 하드웨어 환경에서 'Salt'에 의해 수치적으로 어떻게 무력화되는지 논증할 수 있는 가?
Industry
- 실무 배포 환경에서 실행 파일의 'Code Signing' 누락이 하드웨어 OS 보안 제어(Gatekeeper 등)를 어떻게 통과하지 못하는지 분석할 수 있는 가? (SFIA)
- Argon2의 비용 파라미터()를 우리 서버 하드웨어 자원에 최적화하여 수리적으로 설정하는 수순을 완성할 수 있는 가?