Post

Chapter 7. 공개 키 암호와 RSA(Public Key Cryptography and RSA)

Chapter 7. 공개 키 암호와 RSA(Public Key Cryptography and RSA)

1절. 공개 키 암호

공개 키 암호(Public Key Cryptography) == 비대칭형 암호(Asymmetric Cryptography)

(Alice : 암호 소유자 / Bob : 암호 해독자)

  • 두 개의 별도 키가 필요한 암호화 시스템
    • 비밀키, 공개키
    • 두 키는 다르지만 수학적인 연결
  • 한 당사자(Alice)는 공개키와 그에 맞는 개인키(비밀키)를 생성
  • 공개키는 널리 배포
  • Alice와 통신하고자 하는 모든 사람(Bob)이 공개키를 알고 있음
  • Alice의 공개키는 공격자도 알 알고 있음
  • Alice의 비공개키는 비밀로 유지
  • Bob은 자신의 공개키를 보유 / 미보유 가능

비밀 vs 공개 키 암호

비밀키/대칭 암호화의 단점
  • 키의 안전한 공유의 필요

    • 통신할 당사자들은 서로 미리 알아야 함
    • 대규모 조직은 키의 배포와 관리가 어려움
  • $t$명의 네트워크에서는 통신을 위해 $O(t^2)$개의 키 필요

    • 모든 키는 안전 저장 필수
  • 비밀키 암호화는 개방형 시스템에서는 적용 불가

    • ex) 전자상거래
비밀키 암호화의 필요성
  • 비밀키 암호화
    • 효율성 면에서 훨씬 더 우수하며 적용 가능 영역 존재
      • 군사 환경, 디스크 암호화 등
    • 공개키 기법과 결합하여 암호화에서 두 가지의 장점 보유
    • 키는 신뢰할 수 있는 기관을 통해 배포
      • ex) KDC(Key Distribution Center : 키 배포 센터)

Cryptographic Primitives(암호학적 기본 요소)

CP

2절. Public-Key Encryption

공개 키 암호(Public-Key Encryption)

  • 키 생성 알고리즘

    • (pk, sk)를 출력하는 랜덤화된 알고리즘
  • 암호화 알고리즘

    • 공개 키와 메시지(평문)를 입력받아 암호문을 출력
    • c = E(pk, m)
  • 복호화 알고리즘

    • 비밀 키와 암호문을 입력받아 메시지를 출력
    • m = D(sk, c)

3절. RSA Encryption

배경

  • 오일러의 정리(Euler’s Theorem)

    • $m$과 $n$이 서로소일 때 $(m ∈ Z_n^*)$, $m^φ(n) ≡$ $1$ ($mod$ $n$)
    • $ed$ $≡$ $1$ ($mod$ $φ(n)$)일 때, 모든 $m$에 대해 $(m^e)^d$ $≡$ $m^{ed}$ $≡$ $m$ ($mod$ $n$)
  • $n$ $=$ $pq$이며 $p$와 $q$는 서로 다른 홀수 소수

    • $φ(n) = (p-1)(q-1) =Z_n^*$
    • $n$의 소인수분해가 주어지면 $φ(n)$ 계산 가능
    • $n$의 소인수분해가 없으면 $φ(n)$ 계산 불가
  • 비대칭성(asymmetry)

    • $e$와 $n$의 소인수분해를 통해 계산된 $d$가 주어진 경우, $c = m^e$ $mod$ $n$으로부터 $m$ 계산 가능
    • $n$의 소인수분해가 없는 경우, $c = m^e$ $mod$ $n$으로부터 $m$을 계산할 명확한 방법 X

키 생성(RSA Key Generation)

  • 충분한 길이를 가진 랜덤 홀수 소수 $p$와 $q$ 생성
  • $n = pq$와 $φ(n) = (p - 1)(q - 1)$ 계산
  • $ed ≡ 1$ ($mod$ $φ(n))$을 만족하는 $e$와 $d$ 계산
    • $e$는 $φ(n)$과 서로소이며 $gcd(e, φ(n)) = 1$
    • $d$는 확장된 유클리드 알고리즘으로 계산 가능
  • 공개 키 = $(e, n)$
  • 비밀 키 = $(d, n)$

교과서에서의 RSA

  • 공개 키 = $(e, n)$
  • 비밀 키 = $(d, n)$
  • 메시지 $m ∈ Z_n^*$를 암호화를 위한 계산

    • $c$ $=$ $m^e$ $mod$ $n$
  • 암호문 c를 복호화를 위한 계산

    • $m$ $=$ $c^d$ $mod$ $n$
  • 보안성
    • 결정적(deterministic)이며 암호문이 평문에 대한 특정 정보 누설
예시

EX

RSA-OAEP(Optimal Asymmetric Encryption Padding)

OAEP

  • 이론 : $G$와 $H$는 랜덤 오라클
  • 실제 : $G$와 $H$는 암호학의 해쉬 함수들

4절. Hybrid Encryption

하이브리드 암호(Hybrid Encryption)

  • 공개 키 암호의 느린 속도임에도 사용하여 랜덤 대칭 키를 암호화
  • 해당 대칭 키로 메시지를 암호화
  • 수신자는 공개 키 암호화 방식을 사용하여 대칭 키를 복호화
  • 복원된 대칭 키로 메시지를 복호화
  • 대칭 키 암호화의 (점근적) 효율성을 가지면서도 공개 키 암호화의 기능 제공

5절. Exponentiation

거듭제곱(Exponentiation)

  • RSA에서는 잠재적으로 큰 지수 사용
  • 거듭 제곱의 효율성 증가 방법

    • $x^{16}$ 계산

      • 15번의 곱셈 필요
      • $x^{16}= x × x × x × x × x × x × x × x × x × x × x × x × x × x × x × x$

      • 각 부분 제곱의 반복적 계산
      • $(x^2, x^4, x^8, x^{16})$을
      • 4번의 곱셈으로 동일한 최종 결과
    • $x^{11}$ $mod$ $n$ 계산

      • $x^{11}=x^{1+2+8}=(x)(x^2)(x^8)$
      • $[(x$ $mod$ $n)×(x^2$ $mod$ $n)×(x^8$ $mod$ $n)]$
This post is licensed under CC BY 4.0 by the author.