0Pricing
Cryptology Academy · บทเรียน

คณิตศาสตร์การเข้ารหัสและถอดรหัส RSA

ประยุกต์ใช้การยกกำลังแบบมอดูลาร์เพื่อเข้ารหัสและถอดรหัสข้อความ

คณิตศาสตร์การเข้ารหัสและถอดรหัส RSA เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน 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 ภาษาไพธอน: C = pow(42, 17, 3233) = 2557

การถอดรหัส RSA ตามตำรา

ถอดรหัสข้อความเข้ารหัส C ด้วยกุญแจส่วนตัว (d, n): M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 ภาษาไพธอน: 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) ครั้ง: pow(base, exp, mod) ในภาษาไพธอนจะใช้วิธีนี้โดยอัตโนมัติ

ข้อจำกัดด้านขนาดข้อความ

RSA ตามตำรากำหนดให้ M < n สำหรับ RSA-2048 ค่า M มีขนาดได้สูงสุด 256 ไบต์ ซึ่งเพียงพอสำหรับเข้ารหัสกุญแจ AES ขนาดสั้น แต่ไม่เหมาะสำหรับเข้ารหัสไฟล์ขนาดใหญ่โดยตรง

เหตุใด RSA ตามตำราจึงไม่ปลอดภัย

ปัญหาของ RSA แบบดิบ: 1. M เดิมทุกครั้ง → ได้ C เดิมทุกครั้ง (เป็นแบบกำหนดแน่นอน) 2. M ขนาดเล็กเมื่อ e มีขนาดเล็ก: C = M^e ตรง ๆ (ไม่มีการลดแบบโมดูลาร์) 3. มีสมบัติการคูณ: Enc(M1)×Enc(M2) = Enc(M1×M2) รูปแบบการเติมข้อมูลช่วยแก้ปัญหาเหล่านี้ได้ทั้งหมด

การเข้ารหัส 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 ) )

การถอดรหัส 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.1 มิลลิวินาที การถอดรหัส RSA-2048 (ส่วนตัว): ประมาณ 1 มิลลิวินาที AES-256-GCM: ประมาณ 100 MB/s การเข้ารหัสแบบผสมผสานความเร็วในการแลกเปลี่ยนกุญแจของ RSA เข้ากับอัตราการประมวลผลข้อมูลของ AES

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

เมื่อใช้ RSA ตามตำราด้วย e=3 และ n=33 การเข้ารหัส M=5 ได้ผลลัพธ์เป็นเท่าใด

สรุปทบทวน

ตอนนี้คณิตศาสตร์ของการเข้ารหัสและถอดรหัส RSA ชัดเจนแล้ว ต่อไปเราจะดูว่า RSA ช่วยปกป้อง HTTPS, SSH และการลงลายมือชื่อโค้ดในโลกจริงได้อย่างไร

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

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

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

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

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

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

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

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

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

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

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

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

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