RSA, SHA, ECDSA 원리

agnusdei·2025년 5월 29일

✅ 1. RSA (Rivest-Shamir-Adleman)

🔹 개념

공개키 기반 비대칭 암호화 및 서명 알고리즘
큰 소수의 곱셈은 쉽고, 역으로 소인수분해는 매우 어려운 원리를 기반


🔹 동작 원리 (서명 기준)

  1. 키 생성

    • 두 소수 p,qp, q 선택
    • n=p×qn = p \times q
    • ϕ(n)=(p1)(q1)\phi(n) = (p-1)(q-1)
    • 공개키 ee, 비밀키 dd ( ed1modϕ(n)ed \equiv 1 \mod \phi(n) )
  2. 서명

    • 문서 해시 HH
    • 서명 = S=HdmodnS = H^d \mod n개인키로 암호화
  3. 검증

    • 수신자가 SemodnS^e \mod n 계산
    • 문서 해시와 비교 → 같으면 유효

✔️ 핵심 공식:

서명: S=HdmodnS = H^d \mod n
검증: H=?SemodnH \stackrel{?}{=} S^e \mod n


🔹 특징

  • 암호화와 서명 모두 지원
  • 속도 느림, 키 길이 큼 (2048bit 이상 권장)
  • 구조 단순하지만 계산량 큼

✅ 2. SHA (Secure Hash Algorithm)

🔹 개념

입력 데이터를 고정 길이 해시값으로 변환하는 함수
암호화 X, 단방향 압축 함수
원본 복원 불가, 출력은 항상 동일


🔹 동작 원리

  1. 문서 입력 (임의 길이)
  2. 패딩(Padding) → 길이 맞춤
  3. 블록 분할 → 512비트 단위
  4. 압축 함수 반복 → 내부 상태 업데이트
  5. 최종 해시값 생성 → 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와 동일:
개인키로 서명, 공개키로 검증

  1. 키 생성

    • 타원 곡선 상의 점 GG
    • 개인키 dd, 공개키 Q=dGQ = dG
  2. 서명 생성

    • 메시지 해시 zz
    • 랜덤값 kk 선택
    • R=kGR = kG, r=xmodnr = x \mod n
    • s=k1(z+rd)modns = k^{-1}(z + r \cdot d) \mod n
    • 서명 = (r, s)
  3. 서명 검증

    • w=s1modnw = s^{-1} \mod n
    • u1=zw,u2=rwu_1 = zw, u_2 = rw
    • X=u1G+u2QX = u_1 G + u_2 Q
    • x=Xxmodnx' = X_x \mod n
    • x=?rx' \stackrel{?}{=} r

✔️ 핵심 개념:

곡선 위의 점을 곱하는 연산이 역산 불가 = 보안성


🔹 특징

  • RSA보다 빠르고, 작은 키로 높은 보안성
  • 모바일, IoT 등에서 선호
  • ECC 기반으로는 ECDSA, EdDSA 등이 있음

✅ 최종 정리표

구분RSASHAECDSA
종류비대칭 암호/서명해시 함수ECC 기반 서명
핵심 원리소인수분해 어려움단방향 압축타원곡선 곱셈 불가
용도암호화, 서명무결성 확인서명
서명 방식해시 → 개인키로 암호화해시만 수행타원곡선 점 연산 기반
키 크기큼 (2048bit+)없음작음 (256bit 수준)
성능느림빠름빠름, 경량화

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글