0Pricing
Cryptology Academy · 강의

RSA 키 생성 단계별 학습

p, q, n, e, d를 생성하고 각 매개변수의 역할을 이해합니다.

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

환영합니다

이 레슨에서는 소수 선택부터 키 매개변수 계산까지 모든 수학적 단계를 따라 RSA 키 쌍을 처음부터 생성합니다.

1단계: 두 개의 큰 소수 선택

큰 난수 소수 p와 q를 선택합니다. 실제 환경에서는 2048비트 RSA를 기준으로 p,q ≥ 2^1023이어야 합니다. 예시에서는 p=61, q=53을 사용합니다.

2단계: 모듈러스를 계산

n = p × q = 61 × 53 = 3233. 모듈러스 n은 공개 구성 요소입니다. RSA-2048에서는 n ≈ 2^2048입니다. 값이 클 때 n을 소인수분해하는 것은 계산상 불가능에 가깝습니다.

3단계: 오일러 피 함수 계산

φ(n) = (p-1)(q-1) = 60 × 52 = 3120. 이 값은 키를 생성한 후 비밀로 유지합니다. 소인수분해 결과와 함께 개인 키를 계산하는 데 사용될 수 있기 때문입니다.

4단계: 공개 지수 e 선택

1 < e < φ(n)이고 GCD(e, φ(n)) = 1이 되도록 e를 선택합니다. 표준 선택값은 e = 65537 (0x10001)입니다. 이 값은 소수이고 해밍 가중치가 낮아 암호화가 빠르며 널리 지원됩니다.

5단계: 개인 지수 d 계산

d = e^(-1) mod φ(n): e×d ≡ 1 (mod 3120)이 되도록 d를 찾습니다. e=17, φ=3120일 때: d=2753 (검산: 17×2753 = 46801 = 15×3120 + 1 ✓). Python: d = pow(e, -1, phi_n)

키 쌍

공개 키: (e=17, n=3233) — 공유 가능 개인 키: (d=2753, n=3233) — 비밀 (e, n)은 자유롭게 공유하십시오. d는 목숨처럼 보호하십시오. 키를 생성한 후에는 p, q 또는 φ(n)을 절대 공개하지 마십시오.

실제 환경의 키 크기

RSA-1024: 2010년 이후 사용이 중단되었습니다. RSA-2048: 권장되는 최소 수준입니다. RSA-4096: 높은 보안성을 제공하지만 4배 느립니다. 대부분의 TLS 인증서는 RSA-2048 또는 ECDSA-256을 사용합니다. 두 방식은 보안 수준이 비슷하지만 ECDSA-256이 훨씬 빠릅니다.

CRT 최적화

중국인의 나머지 정리(CRT)는 RSA 복호화를 약 4배 빠르게 합니다. 개인 키를 d 하나만 저장하는 대신 (p, q, dp, dq, qInv)로 저장합니다. p에 대한 모듈러 연산과 q에 대한 모듈러 연산을 각각 수행한 다음 결과를 결합합니다.

Python에서 키 생성

from cryptography.hazmat.primitives.asymmetric import rsa private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) public_key = private_key.public_key()

키 직렬화

from cryptography.hazmat.primitives import serialization pem = private_key.private_bytes( serialization.Encoding.PEM, serialization.PrivateFormat.PKCS8, serialization.BestAvailableEncryption(b'passphrase') )

확인 문제

p=7, q=11로 RSA 키를 생성할 때 n의 올바른 값은 얼마입니까?

복습

이제 RSA 키를 처음부터 생성할 수 있습니다. 다음에는 이 키를 모듈러 거듭제곱을 사용한 메시지 암호화와 복호화에 적용해 보겠습니다.

자주 묻는 질문

“RSA 키 생성 단계별 학습” 강의는 무료인가요?

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

“RSA 키 생성 단계별 학습”에서 뭘 배우나요?

p, q, n, e, d를 생성하고 각 매개변수의 역할을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“RSA 키 생성 단계별 학습” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

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