RSA(Rivest, Shamir, Adleman)

1. RSA 암호 체계의 주요 특징

  • 비대칭키 암호화 : 공개키($e$)와 개인키($d$)가 한 쌍을 이룹니다. 공개키로 암호화하면 개인키로만 복호화할 수 있습니다.
  • 소인수분해의 난해함 : 아주 큰 두 소수의 곱을 소인수분해하는 것이 어렵다는 수학적 원리에 기반합니다.
  • 용도 : 데이터 암호화뿐만 아니라 전자서명에도 사용됩니다. (개인키로 서명하고 공개키로 검증)
  • 속도 : 대칭키 암호(AES 등)에 비해 연산 속도가 느려 주로 대칭키를 교환하기 위한 키 분배용으로 활용됩니다.

 

2. RSA 키 생성 및 계산 프로세스

시험에서는 다음의 수치 계산 과정을 단계별로 물어보는 경우가 많습니다.

1단계: 변수 설정

  • 두 개의 큰 소수 $p, q$를 선택합니다.
  • $n = p \times q$를 계산합니다. ($n$은 공개키와 개인키의 일부가 됩니다.)
  • 오일러 파이 함수 $\phi(n) = (p-1)(q-1)$을 계산합니다.

2단계: 키 생성

  • 공개키($e$) : $1 < e < \phi(n)$이며, $\phi(n)$과 서로소인 정수를 선택합니다.
  • 개인키($d$) : $e \times d \equiv 1 \pmod{\phi(n)}$을 만족하는 $d$를 구합니다. 즉, $(e \times d)$를 $\phi(n)$으로 나누었을 때 나머지가 1

3단계: 암호화 및 복호화

  • 암호화 : $C = M^e \pmod n$
  • 복호화 : $M = C^d \pmod n$

 

3. 시험에 자주 나오는 계산 문제 유형

시험장에서는 시간이 촉박하므로 모듈러(Modular) 연산의 성질을 익혀두는 것이 핵심입니다.

유형 1: 개인키($d$) 구하기

문제: $p=3, q=11, e=3$일 때, 개인키 $d$는?

  • $n = 3 \times 11 = 33$
  • $\phi(n) = (3-1) \times (11-1) = 2 \times 10 = 20$
  • $3 \times d \equiv 1 \pmod{20}$ 만족하는 $d$ 찾기
  • $3 \times 7 = 21 \equiv 1 \pmod{20}$ 이므로 $d = 7$

유형 2: 암호문($C$) 계산하기

문제: $n=33, e=3, M=7$일 때 암호문 $C$는?

  • C = 7^3 \pmod{33}$
  • $7^2 = 49 \equiv 16 \pmod{33}$
  • $C = 16 \times 7 = 112$
  • $112 = (33 \times 3) + 13 \rightarrow$ $C = 13$

유형 3: 관계식의 성질 파이하기

  • $n$이 공개되면 소인수분해를 통해 $\phi(n)$을 알아낼 수 있고, 이를 통해 개인키 $d$를 유도할 수 있다는 점이 RSA의 보안 위협 요소임을 묻는 이론 문제.
  • $e$와 $\phi(n)$은 반드시 서로소(Greatest Common Divisor = 1)여야 한다는 조건 확인.

 

💡 수험생을 위한 팁

  • 지수 법칙 활용 : $M^{13} \pmod n$ 같은 큰 지수는 $M^8 \times M^4 \times M^1$ 형태로 쪼개서 계산하세요.
  • 서로소 확인 : $e$를 선택할 때 $\phi(n)$의 약수가 포함되지 않도록 주의해야 합니다.
  • 전자서명과 혼동 주의 : 암호화는 상대방의 공개키로, 서명은 나의 개인키로 한다는 개념을 명확히 구분하세요.