ข้ามไปยังเนื้อหา
บทความอธิบาย · ห้องทดลองรหัสและการเข้ารหัส

รหัสลับคลาสสิก: Caesar, ROT13, Atbash และ Affine

รหัสลับ Caesar, ROT13, Atbash, Affine และ keyword ทำงานอย่างไร วิธีถอดรหัสด้วยการนับตัวอักษร และเหตุใดปัจจุบันจึงไม่มีรหัสใดปลอดภัย

อ่าน 4 นาทีเผยแพร่เมื่อ

ผู้คนซ่อนข้อความให้เห็นอยู่ตรงหน้าเป็นเวลากว่าสองพันปีแล้ว กลเม็ดแรก ๆ คือการแทนที่ตัวอักษรแต่ละตัวด้วยตัวอื่นตามกฎตายตัว วิธีเหล่านี้สนุกและเป็นจุดเริ่มต้นที่ดีเยี่ยมสำหรับวิทยาการเข้ารหัสลับ แต่แต่ละวิธีก็พ่ายแพ้ให้ผู้โจมตีที่ใจเย็นและมีดินสอได้ บทความนี้จะแสดงวิธีทำงานของรหัสลับคลาสสิกห้าแบบ และเหตุใดปัจจุบันจึงไม่มีแบบใดปกป้องคุณได้

ข้อความต้นฉบับ ข้อความเข้ารหัส และกุญแจ

ข้อความต้นฉบับคือ ข้อความตัวอักษรล้วน ส่วนเวอร์ชันที่ถูกสลับคือ ข้อความเข้ารหัส รหัสลับ คือกฎที่เปลี่ยนข้อความหนึ่งให้เป็นอีกข้อความหนึ่ง และ กุญแจ คือรายละเอียดลับที่ใช้เลือกวิธีสลับข้อความโดยเฉพาะ

แนวคิดที่ดีซึ่งมีมาตั้งแต่ยุค 1800s คือให้สมมติว่าศัตรูรู้วิธีการของรหัสลับ และมีเพียงกุญแจเท่านั้นที่เป็นความลับ ทุกอย่างต่อไปนี้ควรประเมินตามมาตรฐานนั้น: หากมีคนรู้ว่าคุณทำอะไร แต่ไม่รู้กุญแจของคุณ เขาจะยังอ่านข้อความของคุณได้หรือไม่?

การเลื่อนแบบ Caesar: เลื่อนตัวอักษรในอักษร

การเลื่อนแบบซีซาร์ จะเลื่อนตัวอักษรแต่ละตัวไปข้างหน้าตามจำนวนที่กำหนดไว้ตายตัว ใช้การเลื่อน 3 ตำแหน่ง โดยเขียน A เป็น D, B เป็น E และเมื่อถึง Z จะวนกลับไปเป็น C นักเขียนชาวโรมันชื่อซูเอโทนิอุสบันทึกไว้ว่า จูเลียส ซีซาร์ใช้วิธีนี้กับจดหมายทางทหาร

จำนวนตำแหน่งที่เลื่อนคือกุญแจ ใครก็ตามที่รู้จำนวนนี้ก็สามารถเลื่อนกลับได้ ปัญหาคือมีกุญแจให้ลองน้อยมาก โดยมีการเลื่อนที่ใช้ได้จริงเพียง 25 แบบ ผู้โจมตีจึงลองได้ทุกแบบ นี่คือการค้นหาแบบ ลองทุกความเป็นไปได้ ซึ่งใช้เวลาประมาณหนึ่งนาทีหากลองด้วยมือ และแทบไม่ต้องใช้เวลาเลยเมื่อทำบนคอมพิวเตอร์

ROT13

ROT13 กำหนดให้การเลื่อนแบบซีซาร์เลื่อนไป 13 ตำแหน่ง เนื่องจากตัวอักษรมีทั้งหมด 26 ตัว การเลื่อน 13 สองครั้งจะพากลับไปยังจุดเริ่มต้น การเข้ารหัสและการถอดรหัสจึงเป็นการดำเนินการแบบเดียวกัน ฟอรัมต่าง ๆ เคยใช้วิธีนี้เพื่อซ่อนเนื้อหาที่เปิดเผยเนื้อเรื่องสำคัญ เพราะมันช่วยป้องกันการเหลือบมองโดยไม่ได้ตั้งใจเท่านั้น ไม่ใช่เพราะมันปกป้องข้อมูลได้จริง

Atbash: ตัวอักษรที่สะท้อนเป็นเงา

Atbash เขียนตัวอักษรเรียงย้อนกลับไว้ข้างใต้ตัวเอง ดังนั้น A จับคู่กับ Z, B จับคู่กับ Y, C จับคู่กับ X และต่อไปเรื่อย ๆ วิธีนี้มาจากตัวอักษรฮีบรู และปรากฏอยู่ในคัมภีร์โบราณบางฉบับ

เช่นเดียวกับ ROT13 วิธีนี้ ไม่มีกุญแจเลย และย้อนกลับตัวเองได้: สะท้อนภาพสะท้อนอีกครั้งก็จะกลับมาเหมือนเดิม นั่นทำให้มันเป็นปริศนา ไม่ใช่กลอนล็อก เมื่อใครก็ตามมองเห็นรูปแบบแล้ว ข้อความทุกข้อความที่เคยเขียนด้วยวิธีนี้ก็จะถูกเปิดอ่านได้

รหัสลับ Affine: คูณแล้วเลื่อน

กำหนดให้ตัวอักษรแต่ละตัวมีจำนวน โดย A = 0 ไปจนถึง Z = 25 รหัสลับ affine จะนำจำนวนนั้นมาคูณด้วย a แล้วบวก b จากนั้นวนกลับเมื่อถึง 26:

E(x) = (a·x + b) mod 26

กำหนดให้ a = 1 แล้วคุณจะได้การเลื่อนแบบ Caesar ธรรมดา การคูณจะทำให้ตัวอักษรที่อยู่ใกล้กันกระจายห่างออกจากกันมากขึ้น จึงดูสับสนยิ่งกว่าเดิม

แต่ก็มีข้อจำกัด สำหรับการถอดรหัส ตัวอักษรรหัสลับแต่ละตัวต้องมาจากตัวอักษรต้นฉบับเพียงตัวเดียวเท่านั้น สิ่งนี้จะเกิดขึ้นก็ต่อเมื่อ a ไม่มีตัวประกอบร่วมกับ 26 ดังนั้น a = 3 และ a = 5 จึงใช้ได้ แต่ a = 2 หรือ a = 13 ใช้ไม่ได้ เพราะจะทำให้ตัวอักษรสองตัวที่ต่างกันถูกส่งไปยังตำแหน่งเดียวกัน มีค่า a ที่อนุญาตเพียง 12 ค่า และเมื่อรวมกับค่า b 26 ค่า จะได้กุญแจทั้งหมด 312 แบบ ดีกว่า 25 แบบ แต่ก็ยังน้อยมากสำหรับคอมพิวเตอร์

การแทนที่ด้วยคีย์เวิร์ด: สับเปลี่ยนได้ทุกรูปแบบ

ทำไมต้องเลื่อนตัวอักษรทุกตัวตามกฎด้วย? การเข้ารหัสแบบแทนที่ ทำให้กุญแจเป็นชุดตัวอักษรใด ๆ ที่สลับลำดับได้ เพื่อให้จำชุดที่สลับแล้วได้ง่าย ให้เขียนคีย์เวิร์ดก่อน ลบตัวอักษรที่ซ้ำกัน แล้วเติมตัวอักษรที่ยังไม่ได้ใช้ตามลำดับ คีย์เวิร์ด ZEBRAS จะได้ชุดตัวอักษรกุญแจ ZEBRASCDFGHIJKLMNOPQTUVWXY ดังนั้น A จะกลายเป็น Z, B เป็น E, C เป็น B และตัวอื่น ๆ ก็เช่นเดียวกัน

จำนวนชุดที่สลับได้มี 26 แฟกทอเรียล หรือประมาณ 4 × 10²⁶ แบบ การลองทั้งหมดเป็นไปไม่ได้ จึงดูเหมือนว่าการเข้ารหัสแบบแทนที่จะแกะไม่ได้มานานหลายศตวรรษ แต่จริง ๆ แล้วไม่ใช่

แล็บแบบสด ห้องทดลองรหัสลับแบบโต้ตอบ หมุนวงล้อ เข้ารหัสข้อความ แล้วลองถอดรหัสดู เปิดแล็บ ห้องทดลองรหัสและการเข้ารหัส ฉบับเต็ม →

ทำไมวิธีเหล่านี้จึงไม่ปลอดภัยในปัจจุบัน

การเข้ารหัสแบบแทนที่มีจุดอ่อนร้ายแรง: ตัวอักษรหนึ่งตัวจะกลายเป็นตัวอักษรเดิมเสมอ ดังนั้น รูปแบบ ของภาษาจึงยังคงอยู่ ในภาษาอังกฤษ E ปรากฏบ่อยที่สุด ตามด้วย T, A และ O ส่วน Q และ Z พบได้น้อย นักวิชาการในโลกอิสลามอธิบาย การวิเคราะห์ความถี่ ไว้ราวศตวรรษที่ 9: ให้นับตัวอักษรในข้อความที่เข้ารหัส จับคู่ตัวที่พบบ่อยที่สุดกับ E แล้วใช้รูปแบบของคำ (คำที่มีตัวอักษรเดียวอาจเป็น A หรือ I) เพื่อเติมส่วนที่เหลือ

ข้อความที่ยาวขึ้นจะให้สถิติที่แม่นยำกว่า ดังนั้นแม้จะมีจำนวนกุญแจที่เป็นไปได้มหาศาลก็ไม่ได้ช่วย การเข้ารหัสสมัยใหม่ถูกออกแบบให้ข้อความที่เข้ารหัสไม่แสดงรูปแบบเช่นนี้ และความปลอดภัยก็อาศัยกุญแจที่มีขนาดใหญ่เกินกว่าจะเดาได้ สำหรับสิ่งที่ต้องใช้จริง ให้ใช้เครื่องมือสมัยใหม่ที่ผ่านการทดสอบอย่างดี และอย่าสร้างวิธีของคุณเอง

สำรวจเรื่องนี้ในห้องทดลองได้อย่างไร

The Codes & Ciphers Lab gives you a cipher wheel you can turn, plus tools to count letters and test guesses. A good order through the free first world:

  1. Start with The Caesar shift and try breaking one.
  2. See self-inverse behaviour in ROT13, then Atbash.
  3. Test which multipliers work in Affine: multiply, then shift.
  4. Build a shuffled key in Keyword substitution.

This is a simplified teaching model of historical ciphers. It is meant to build intuition about keys and attacks, not to protect real messages.

สิ่งสำคัญที่ได้เรียนรู้
  • กุญแจเป็นตัวกำหนดการสลับลำดับ ส่วนผู้โจมตีให้ถือว่ารู้วิธีการ
  • Caesar มีกุญแจที่ใช้ได้เพียง 25 แบบ ส่วน ROT13 และ Atbash ไม่มีกุญแจลับ
  • ตัวคูณของ affine ต้องไม่มีตัวประกอบร่วมกับ 26 จึงเหลือค่าที่ใช้ได้ 12 ค่า
  • การแทนที่ด้วยคีย์เวิร์ดมีจำนวนกุญแจที่เป็นไปได้มหาศาล แต่ก็พ่ายแพ้ต่อการวิเคราะห์ความถี่ของตัวอักษร
บทเรียนฟรี · ห้องทดลองรหัสและการเข้ารหัส

การเลื่อนแบบซีซาร์

ตัวอักษรทุกตัวเลื่อนไปเป็นระยะทางเท่ากัน. ใช้เวลาประมาณ 6 นาที ฟรี ไม่ต้องมีบัญชี และใช้งานได้ในเบราว์เซอร์

เริ่มบทเรียนฟรี
แชร์XLinkedInFacebookRedditอีเมล

รายงานข้อผิดพลาด

มีอะไรผิดพลาด?
0 / 2000 · อย่างน้อย 10 ตัวอักษร
ส่งไปพร้อมกับรายงานของคุณ
  • หน้า
  • เกี่ยวกับ Classic Ciphers: Caesar, ROT13, Atbash and Affine · caesar-cipher-rot13-atbash-affine-explained
รวมถึงประเภทเบราว์เซอร์ของคุณด้วย รายงานจะถูกส่งไปยังระบบสนับสนุนของเรา โปรดดูประกาศความเป็นส่วนตัว

การจำลองสถานการณ์บน Novareka เป็นแบบจำลองเพื่อการเรียนรู้ที่ตั้งใจทำให้เรียบง่ายขึ้น แสดงให้เห็นว่าแนวคิดหนึ่ง ๆ ทำงานอย่างไร แต่ไม่สามารถใช้แทนคำแนะนำจากผู้เชี่ยวชาญด้านวิชาชีพ การแพทย์ หรือวิศวกรรมได้

บทความอธิบาย
ห้องทดลองรูปทรงค่าประจำหลัก เศษส่วน แบบคลี่ และสูตรของออยเลอร์ดูว่าบล็อกแสดงค่าประจำหลักอย่างไร เศษส่วนคือการแบ่งอย่างยุติธรรม แบบคลี่พับเป็นรูปทรงตันได้อย่างไร และทำไมจำนวนหน้า - สัน + จุดยอดจึงเท่ากับ 2 เสมออ่าน 5 นาที
บทความอธิบาย
ห้องทดลองเวกเตอร์อธิบายเวกเตอร์: ผลบวก ดอทโปรดักต์ ครอสโปรดักต์เรียนรู้ว่าเวกเตอร์บวกกันแบบปลายชนต้นอย่างไร ดอทโปรดักต์ตรวจจับมุมฉากได้อย่างไร ครอสโปรดักต์ชี้ไปทางไหน และการฉายสร้างเงาได้อย่างไรอ่าน 4 นาที
บทความอธิบาย
แคลคูลัสและความน่าจะเป็นลิมิตคืออะไร? พื้นฐานแคลคูลัสจากความชันสู่อัตราอธิบายฟังก์ชัน ขีดจำกัด ความต่อเนื่อง และอัตราการเปลี่ยนแปลง ณ ขณะหนึ่งตั้งแต่พื้นฐาน รวมถึงวิธีที่เส้นตัดซึ่งสั้นลงกลายเป็นเส้นสัมผัส ลองทำในห้องทดลองแบบสดอ่าน 5 นาที