Cryptology Academy · บทเรียน

การสร้างคีย์ RSA ทีละขั้นตอน

สร้าง p, q, n, e, d และทำความเข้าใจบทบาทของพารามิเตอร์แต่ละตัว

บทเรียน 2 จาก 413 ขั้นตอน

การสร้างคีย์ RSA ทีละขั้นตอน เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

ในบทเรียนนี้เราจะสร้างคู่กุญแจ RSA ตั้งแต่ต้น โดยทำตามทุกขั้นตอนทางคณิตศาสตร์ ตั้งแต่การเลือกจำนวนเฉพาะไปจนถึงพารามิเตอร์ของกุญแจ

ขั้นที่ 1: เลือกจำนวนเฉพาะขนาดใหญ่สองจำนวน

เลือกจำนวนเฉพาะขนาดใหญ่แบบสุ่ม p และ q ในระบบที่ใช้งานจริง: p,q ≥ 2^1023 (สำหรับ RSA 2048 บิต) สำหรับการสาธิต: 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

เลือก e ให้เป็นไปตาม 1 < e < φ(n) และ GCD(e, φ(n)) = 1. ค่ามาตรฐานคือ e = 65537 (0x10001) ซึ่งเป็นจำนวนเฉพาะ มีน้ำหนักแฮมมิงต่ำ (ทำให้เข้ารหัสได้รวดเร็ว) และรองรับอย่างแพร่หลาย

ขั้นที่ 5: คำนวณเลขชี้กำลังส่วนตัว d

d = e^(-1) mod φ(n): หา d ที่ทำให้ e×d ≡ 1 (mod 3120). สำหรับ e=17, φ=3120: d=2753 (ตรวจสอบ: 17×2753 = 46801 = 15×3120 + 1 ✓). ภาษาไพธอน: 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 (ความปลอดภัยเทียบเท่ากันแต่เร็วกว่าอย่างมาก)

การปรับให้เหมาะสมด้วย CRT

ทฤษฎีบทเศษเหลือจีน (CRT) ช่วยเร่งการถอดรหัส RSA ได้ประมาณ 4 เท่า จัดเก็บกุญแจส่วนตัวเป็น (p, q, dp, dq, qInv) แทนการเก็บเพียง d คำนวณโมดูลัส p และโมดูลัส q แยกกัน แล้วจึงนำผลลัพธ์มารวมกัน

การสร้างกุญแจในภาษาไพธอน

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') )

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ในการสร้างกุญแจ RSA โดยมี p=7 และ q=11 ค่าที่ถูกต้องของ n คือเท่าใด

สรุปทบทวน

ตอนนี้คุณสามารถสร้างกุญแจ RSA ตั้งแต่ต้นได้แล้ว ต่อไปเราจะนำกุญแจเหล่านี้ไปเข้ารหัสและถอดรหัสข้อความโดยใช้การยกกำลังแบบโมดูลาร์
เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “การสร้างคีย์ RSA ทีละขั้นตอน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างคีย์ RSA ทีละขั้นตอน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างคีย์ RSA ทีละขั้นตอน”

สร้าง p, q, n, e, d และทำความเข้าใจบทบาทของพารามิเตอร์แต่ละตัว คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างคีย์ RSA ทีละขั้นตอน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แนวคิดการเข้ารหัสด้วยกุญแจสาธารณะ
  2. การสร้างคีย์ RSA ทีละขั้นตอน
  3. คณิตศาสตร์การเข้ารหัสและถอดรหัส RSA
  4. กรณีการใช้งานจริงและขนาดคีย์ของ RSA
← กลับไปที่ Cryptology Academy