0Pricing
Cryptology Academy · 강의

RSA 암호화 및 복호화 수학

모듈러 지수 연산을 적용해 메시지를 암호화하고 복호화합니다.

RSA 암호화 및 복호화 수학은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

RSA 키를 생성했으므로 이제 이를 적용해 보겠습니다. 암호화와 복호화는 모두 모듈러 거듭제곱입니다. 계산은 간단하지만 개인 키 없이는 역산하기가 불가능에 가깝습니다.

교과서식 RSA 암호화

정수로 표현한 메시지 M을 공개 키 (e, n)으로 암호화합니다: C = M^e mod n 예시: M=42, e=17, n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

교과서식 RSA 복호화

개인 키 (d, n)으로 암호문 C를 복호화합니다: M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

작동 원리: 오일러 정리

C^d mod n = (M^e)^d mod n = M^(ed) mod n. ed ≡ 1 (mod φ(n))이므로 M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M입니다.

제곱-곱셈 알고리즘

M^e를 순진하게 계산하면 e번의 곱셈이 필요합니다. 제곱-곱셈 알고리즘은 이를 O(log e)번의 곱셈으로 줄입니다. Python의 pow(base, exp, mod)는 이를 자동으로 사용합니다.

메시지 크기 제한

교과서식 RSA에서는 M < n이어야 합니다. RSA-2048에서는 M의 최대 크기가 256바이트입니다. 짧은 AES 키를 암호화하는 데는 적합하지만, 큰 파일을 직접 암호화하는 데는 적합하지 않습니다.

교과서식 RSA가 안전하지 않은 이유

패딩되지 않은 RSA의 문제: 1. 같은 M은 항상 같은 C가 됩니다(결정적). 2. 작은 e와 작은 M을 사용하면 C = M^e가 그대로 성립합니다(모듈러 감소가 일어나지 않음). 3. 곱셈 관계가 성립합니다: Enc(M1)×Enc(M2) = Enc(M1×M2) 패딩 방식이 이러한 모든 문제를 해결합니다.

Python에서 RSA 암호화(OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

Python에서 RSA 복호화

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

RSA + AES 하이브리드 패턴

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

RSA 성능 수치

RSA-2048 암호화(공개 키): 약 0.1ms. RSA-2048 복호화(개인 키): 약 1ms. AES-256-GCM: 약 100MB/s. 하이브리드 암호화는 RSA 키 교환의 속도와 AES 데이터 처리량을 결합합니다.

확인 문제

e=3, n=33인 교과서식 RSA를 사용할 때 M=5의 암호화 결과는 무엇입니까?

복습

RSA 암호화와 복호화의 수학적 원리를 명확히 이해했습니다. 다음에는 실제 환경에서 RSA가 HTTPS, SSH, 코드 서명을 어떻게 보호하는지 살펴보겠습니다.

자주 묻는 질문

“RSA 암호화 및 복호화 수학” 강의는 무료인가요?

네 — “RSA 암호화 및 복호화 수학” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“RSA 암호화 및 복호화 수학”에서 뭘 배우나요?

모듈러 지수 연산을 적용해 메시지를 암호화하고 복호화합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“RSA 암호화 및 복호화 수학” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 공개 키 암호학 개념
  2. RSA 키 생성 단계별 학습
  3. RSA 암호화 및 복호화 수학
  4. RSA의 실제 사용 사례와 키 길이
← Cryptology Academy(으)로 돌아가기