✅ 1. RSA (Rivest-Shamir-Adleman)
🔹 개념
공개키 기반 비대칭 암호화 및 서명 알고리즘
큰 소수의 곱셈은 쉽고, 역으로 소인수분해는 매우 어려운 원리를 기반
🔹 동작 원리 (서명 기준)
-
키 생성
- 두 소수 p,q 선택
- n=p×q
- ϕ(n)=(p−1)(q−1)
- 공개키 e, 비밀키 d ( ed≡1modϕ(n) )
-
서명
- 문서 해시 H
- 서명 = S=Hdmodn ← 개인키로 암호화
-
검증
- 수신자가 Semodn 계산
- 문서 해시와 비교 → 같으면 유효
✔️ 핵심 공식:
서명: S=Hdmodn
검증: H=?Semodn
🔹 특징
- 암호화와 서명 모두 지원
- 속도 느림, 키 길이 큼 (2048bit 이상 권장)
- 구조 단순하지만 계산량 큼
✅ 2. SHA (Secure Hash Algorithm)
🔹 개념
입력 데이터를 고정 길이 해시값으로 변환하는 함수
암호화 X, 단방향 압축 함수
원본 복원 불가, 출력은 항상 동일
🔹 동작 원리
- 문서 입력 (임의 길이)
- 패딩(Padding) → 길이 맞춤
- 블록 분할 → 512비트 단위
- 압축 함수 반복 → 내부 상태 업데이트
- 최종 해시값 생성 → 256bit (SHA-256 기준)
✔️ 핵심 원리:
단방향 + 고정길이 + 변경추적 가능
🔹 특징
- SHA-1 (더 이상 보안 X)
- SHA-2(SHA-256, SHA-512) 가장 널리 사용
- SHA-3은 Keccak 기반
✅ 3. ECDSA (Elliptic Curve Digital Signature Algorithm)
🔹 개념
**타원 곡선 암호(ECC)**를 이용한 디지털 서명 알고리즘
RSA보다 짧은 키로 동등한 보안성 제공
🔹 동작 원리
복잡해 보이지만 핵심은 RSA와 동일:
개인키로 서명, 공개키로 검증
-
키 생성
- 타원 곡선 상의 점 G
- 개인키 d, 공개키 Q=dG
-
서명 생성
- 메시지 해시 z
- 랜덤값 k 선택
- 점 R=kG, r=xmodn
- s=k−1(z+r⋅d)modn
- 서명 = (r, s)
-
서명 검증
- w=s−1modn
- u1=zw,u2=rw
- X=u1G+u2Q
- x′=Xxmodn
- x′=?r
✔️ 핵심 개념:
곡선 위의 점을 곱하는 연산이 역산 불가 = 보안성
🔹 특징
- RSA보다 빠르고, 작은 키로 높은 보안성
- 모바일, IoT 등에서 선호
- ECC 기반으로는 ECDSA, EdDSA 등이 있음
✅ 최종 정리표
| 구분 | RSA | SHA | ECDSA |
|---|
| 종류 | 비대칭 암호/서명 | 해시 함수 | ECC 기반 서명 |
| 핵심 원리 | 소인수분해 어려움 | 단방향 압축 | 타원곡선 곱셈 불가 |
| 용도 | 암호화, 서명 | 무결성 확인 | 서명 |
| 서명 방식 | 해시 → 개인키로 암호화 | 해시만 수행 | 타원곡선 점 연산 기반 |
| 키 크기 | 큼 (2048bit+) | 없음 | 작음 (256bit 수준) |
| 성능 | 느림 | 빠름 | 빠름, 경량화 |