RSA 알고리즘

RSA(Rivest, Shamir and Adleman)란?



[그림 https://raonctf.com/essential/study/web/cryptography]

그림은 RSA 알고리즘의 핵심 원리를 아주 간단한 숫자를 사용하여 보여주는 예시군요! “Why Does RSA Work?”라는 제목처럼, RSA 암호화와 복호화 과정이 어떻게 이루어지고, 왜 원래의 평문으로 돌아올 수 있는지 직관적으로 설명하고 있습니다.

그림을 단계별로 설명해 드릴게요.

1. 암호화 (Encryption)

  • 평문 (plaintext): 88 - 암호화하고자 하는 원래의 메시지입니다.

  • 공개 키 (Public Key, PU): {7, 187} - 암호화에 사용되는 키 쌍 중 공개해도 되는 키입니다. 여기서는 (e = 7) (지수)와 (n = 187) (모듈러스)로 이루어져 있습니다.

  • 암호화 과정: 평문 88을 공개 키의 지수 (e = 7)로 거듭제곱한 후, 공개 키의 모듈러스 (n = 187)로 나눈 나머지를 계산합니다.
    $$\text{ciphertext} = \text{plaintext}^e \pmod{n}$$ $$\text{ciphertext} = 88^7 \pmod{187}$$

  • 암호문 (ciphertext): 11 - 암호화된 결과입니다. 원래의 메시지 88과는 전혀 다른 숫자처럼 보이죠.

2. 복호화 (Decryption)

  • 암호문 (ciphertext): 11 - 암호화된 메시지입니다.
  • 개인 키 (Private Key, PR): {23, 187} - 복호화에 사용되는 비밀 키입니다. 여기서는 (d = 23) (지수)와 (n = 187) (모듈러스)로 이루어져 있습니다. 개인 키는 절대로 다른 사람에게 노출되어서는 안 됩니다.
  • 복호화 과정: 암호문 11을 개인 키의 지수 (d = 23)로 거듭제곱한 후, 개인 키의 모듈러스 (n = 187)로 나눈 나머지를 계산합니다.
    $$(plaintext = ciphertext^d \pmod{n})$$ $$(plaintext = 11^{23} \pmod{187})$$
  • 평문 (plaintext): 88 - 복호화된 결과입니다. 놀랍게도 원래의 메시지 88과 동일한 값을 얻을 수 있습니다!

RSA의 작동 원리 (Why Does RSA Work?)

RSA가 작동하는 핵심 원리는 **수학적 트랩도어 함수(mathematical trapdoor function)**의 일종인 큰 두 소수의 곱셈은 쉽지만, 그 곱셈 결과를 가지고 원래의 두 소수를 찾는 것은 매우 어렵다는 사실에 기반합니다.

  • RSA에서는 큰 두 소수 (p)와 (q)를 곱하여 (n)을 만듭니다. 이 (n)은 공개 키와 개인 키 모두에 사용됩니다.
  • 공개 키의 지수 (e)는 특정한 수학적 조건을 만족하는 수로 선택됩니다.
  • 개인 키의 지수 (d)는 (e)와 특정한 관계를 가지며, (p)와 (q)를 알아야만 쉽게 계산할 수 있습니다.
  • 오일러 정리(Euler’s totient theorem)라는 수학적 원리에 의해, (m^{ed} \equiv m \pmod{n}) (단, (m)과 (n)이 서로소인 경우)가 성립합니다. RSA에서는 이러한 수학적 관계를 이용하여 암호화와 복호화가 서로 역으로 작용하여 원래의 평문을 복원할 수 있도록 설계됩니다.

요약하자면:

  • 공개 키로 암호화된 메시지는 오직 대응하는 개인 키로만 복호화할 수 있습니다.
  • 개인 키를 알기 위해서는 (n)을 이루는 두 소수 (p)와 (q)를 알아야 하는데, (n)이 충분히 크다면 이 소인수 분해는 매우 어렵기 때문에 안전성이 유지됩니다.

이 그림은 복잡한 수학적 배경을 아주 단순한 숫자로 보여주어 RSA의 기본적인 아이디어를 이해하는 데 큰 도움을 줍니다. 😊 궁금한 점이 있다면 언제든지 질문해주세요!

Author

Gangtai Goh

Posted on

2025-06-22

Updated on

2025-06-22

Licensed under