เครื่องมือเข้ารหัสซีซาร์
รหัสซีซาร์จะเลื่อนตัวอักษรทุกตัวไปตามจำนวนคงที่ เช่น เมื่อเลื่อน +3 ตัว A จะกลายเป็น D, B จะกลายเป็น E และไล่ต่อไปโดยวนจาก Z กลับไป A ชื่อนี้มาจากจูเลียส ซีซาร์ ซึ่งเล่ากันว่าใช้การเลื่อน 3 ตำแหน่งในจดหมายส่วนตัวของเขา เป็นรหัสแทนที่ที่เรียบง่ายที่สุด และยังมีประโยชน์สำหรับปริศนา การสาธิตในห้องเรียน และธรรมเนียม ROT13 แบบคลาสสิกบน Usenet วางข้อความ เลือกค่าการเลื่อน แล้วเข้ารหัสหรือถอดรหัสได้ทันที
รหัสซีซาร์ทำงานอย่างไร
-
1
ใส่ข้อความปกติหรือข้อความเข้ารหัส
ใช้ข้อความภาษาอังกฤษใดก็ได้ อักขระที่ไม่ใช่ตัวอักษร เช่น ตัวเลข เครื่องหมายวรรคตอน และช่องว่าง จะถูกส่งผ่านโดยไม่เปลี่ยนแปลง และยังคงตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม
-
2
เลือกค่าการเลื่อน
ใช้จำนวนเต็มใดก็ได้ตั้งแต่ 1-25 การเลื่อน 13 คือ ROT13 ซึ่งถอดกลับได้ด้วยตัวมันเอง รหัสซีซาร์แบบดั้งเดิมใช้ค่า 3
-
3
เลือกทิศทาง
การเข้ารหัสจะเลื่อนไปข้างหน้า ส่วนการถอดรหัสจะเลื่อนย้อนกลับ การถอดรหัสด้วยค่า K เทียบเท่ากับการเข้ารหัสด้วยค่า 26-K
-
4
อ่านผลลัพธ์
ข้อความเข้ารหัส หรือข้อความปกติที่ถอดรหัสแล้ว จะแสดงขึ้นทันที คัดลอกได้ด้วยคลิกเดียว
ตัวอย่างหน้าตาของการเลื่อนแบบซีซาร์
การเลื่อน 3 ตำแหน่งเมื่อนำไปใช้กับตัวอักษร:
Plain: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
ตัวอย่าง: HELLO เมื่อเลื่อน 3 → KHOOR ถอดรหัส KHOOR ด้วยการเลื่อน 3 หรือเข้ารหัสด้วยการเลื่อน 23 → HELLO
ROT13 — การเลื่อนที่กลับตัวเองได้
ROT13 ใช้การเลื่อน 13 ตำแหน่ง เมื่อนำไปใช้สองครั้งจะได้ข้อความเดิมกลับมา: HELLO → URYYB → HELLO สิ่งนี้ทำให้เหมาะกับการซ่อนสปอยเลอร์ในโพสต์ Usenet ช่วงทศวรรษ 1980 เพราะการแปลงแบบเดียวใช้ได้ทั้งเข้ารหัสและถอดรหัส โดยไม่ต้องจำคีย์
ความปลอดภัย หรือพูดให้ตรงคือแทบไม่มี
รหัสซีซาร์ถูกออกแบบมาให้แตกได้ง่ายเมื่อเจอกับการวิเคราะห์สมัยใหม่:
- การลองครบทุกแบบ: มีค่าการเลื่อนที่เป็นไปได้เพียง 25 ค่า ลองทั้งหมดแล้วเลือกค่าที่อ่านออกเป็นภาษาอังกฤษ
- การวิเคราะห์ความถี่: ข้อความที่ถูกเลื่อนยังคงความถี่ของตัวอักษรไว้
Eยังเป็นตัวที่พบบ่อยที่สุดในภาษาอังกฤษ ดังนั้นตัวอักษรใดที่พบบ่อยที่สุดในข้อความเข้ารหัส ก็น่าจะเป็นEหลังถูกเลื่อน - ข้อความต้นฉบับที่รู้บางส่วน: ถ้ารู้ตัวอักษรต้นฉบับแม้เพียงตัวเดียว ก็รู้ค่าการเลื่อนทันที
อย่าใช้รหัสนี้กับสิ่งใดก็ตามที่ต้องการปกป้องจริง ๆ มันเหมาะสำหรับการเรียนรู้ ไม่ใช่การใช้งานด้านความปลอดภัย
รูปแบบอื่นและการต่อยอด
- ROT5: เลื่อนเฉพาะตัวเลข (0-9) ใช้ร่วมกับ ROT13 ใน ROT18
- ROT47: เลื่อนอักขระ ASCII ที่พิมพ์ได้ 94 ตัว และกลับตัวเองได้เหมือน ROT13
- Vigenère: ซีซาร์ที่ใช้คีย์เวิร์ด ทำให้แต่ละตำแหน่งใช้ค่าการเลื่อนต่างกัน แตกได้ยากกว่ามาก
- Atbash: สลับ A↔Z, B↔Y และไล่ต่อไป เป็นการแทนที่แบบคงที่ที่มีความเกี่ยวข้องทางประวัติศาสตร์กับภาษาฮีบรู
การใช้ในห้องเรียน
รหัสซีซาร์เป็นหัวข้อพื้นฐานในสัปดาห์แรกของวิชาการเข้ารหัสลับ เพราะช่วยแนะนำเลขคณิตมอดูลาร์ การแทนที่ การวิเคราะห์ความถี่ และแนวคิดเรื่องคีย์ โดยไม่ต้องใช้คณิตศาสตร์หนัก ๆ นอกจากนี้ยังเป็นคำตอบของโจทย์ CTF แนว “การเข้ารหัสสำหรับผู้เริ่มต้น” จำนวนมาก
คำถามที่พบบ่อย
ซูเอโทเนียสบันทึกว่าซีซาร์ใช้การเลื่อน 3 ตำแหน่งสำหรับจดหมายของเขา ส่วนออกัสตัสเล่ากันว่าใช้การเลื่อน 1 ตำแหน่ง (A → B, B → C, Z → A หรือ AA แล้วแต่แหล่งข้อมูล)
ไม่รองรับ รหัสซีซาร์แบบดั้งเดิมนิยามบนอักษรโรมัน 26 ตัว อักษรที่มีเครื่องหมายกำกับเสียง เช่น é, ñ, ü จะถูกส่งผ่านโดยไม่เปลี่ยนแปลง หากต้องการรหัสที่รองรับหลายชุดตัวอักษร ควรใช้รูปแบบการแทนที่สมัยใหม่
เพราะสะดวก มันช่วยซ่อนข้อความแบบไม่จริงจัง เช่น สปอยเลอร์ คำตอบปริศนา หรือตัวกรองคำหยาบเบา ๆ ขณะเดียวกันก็ถอดกลับได้ง่ายมาก มันไม่เคยถูกออกแบบมาเพื่อความปลอดภัย แต่เป็นเพียงการพรางข้อความแบบเบา ๆ
ได้ และทำได้ง่าย ลองค่าการเลื่อนทั้ง 25 ค่า แล้วมองหาข้อความภาษาอังกฤษที่อ่านรู้เรื่อง ข้อความเข้ารหัสที่ยาวกว่า 20+ ตัวอักษรมักชัดเจนแทบไม่มีความกำกวม แต่ข้อความที่สั้นมากอาจมีค่าการเลื่อนที่ดูเป็นไปได้หลายค่า
เครื่องมือที่เกี่ยวข้อง
ตัวเข้ารหัสรหัสลับ A1Z26
เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้
เข้ารหัส / ถอดรหัส AES
เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส
ตัวเข้ารหัส Atbash Cipher
เข้ารหัสหรือถอดรหัสข้อความด้วยรหัส Atbash ซึ่งเป็นการแทนที่แบบฮีบรูที่จับคู่ A-Z เป็น Z-A การทำงานเดียวกันใช้ได้ทั้งเข้ารหัสและถอดรหัส
ตัวเข้ารหัสและถอดรหัส Base85
เข้ารหัสและถอดรหัส Base85 ในรูปแบบ Adobe Ascii85 (PostScript/PDF) หรือ Z85 (ZeroMQ) กะทัดรัดกว่า Base64 สำหรับข้อมูลไบนารี
ตัวเข้ารหัสและถอดรหัส Base32
เข้ารหัสและถอดรหัสสตริง Base32 ด้วยตารางอักขระ RFC 4648 เหมาะสำหรับซีเคร็ต TOTP, โทเค็นที่ไม่แยกตัวพิมพ์ใหญ่เล็ก และตัวระบุที่มนุษย์ต้องพิมพ์
ตัวสร้าง bcrypt
สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 14 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้