เครื่องมือเข้ารหัสซีซาร์

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

รหัสซีซาร์ทำงานอย่างไร

  1. 1

    ใส่ข้อความปกติหรือข้อความเข้ารหัส

    ใช้ข้อความภาษาอังกฤษใดก็ได้ อักขระที่ไม่ใช่ตัวอักษร เช่น ตัวเลข เครื่องหมายวรรคตอน และช่องว่าง จะถูกส่งผ่านโดยไม่เปลี่ยนแปลง และยังคงตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม

  2. 2

    เลือกค่าการเลื่อน

    ใช้จำนวนเต็มใดก็ได้ โดยใช้ค่าลบ เช่น -3 เพื่อถอดรหัส การเลื่อน 13 คือ ROT13 ซึ่งถอดกลับได้ด้วยตัวมันเอง รหัสซีซาร์แบบดั้งเดิมใช้ค่า 3

  3. 3

    เข้ารหัสหรือถอดรหัส

    ค่าการเลื่อนบวกใช้สำหรับเข้ารหัส ส่วนค่าลบใช้สำหรับถอดรหัส การถอดรหัสด้วยค่า K เทียบเท่ากับการเข้ารหัสด้วยค่า 26-K

  4. 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 ตำแหน่ง เมื่อนำไปใช้สองครั้งจะได้ข้อความเดิมกลับมา: HELLOURYYBHELLO สิ่งนี้ทำให้เหมาะกับการซ่อนสปอยเลอร์ในโพสต์ 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+ ตัวอักษรมักชัดเจนแทบไม่มีความกำกวม แต่ข้อความที่สั้นมากอาจมีค่าการเลื่อนที่ดูเป็นไปได้หลายค่า

เครื่องมือที่เกี่ยวข้อง

ตัวเข้ารหัสไฟล์ Base64

เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด

ตัวเข้ารหัสและถอดรหัส Base58

เข้ารหัสข้อความ UTF-8 หรือไบต์เลขฐานสิบหก และถอดรหัส Base58 อย่างปลอดภัยด้วยชุดอักขระ Bitcoin, Ripple หรือ Flickr

ตัวเข้ารหัสรหัสลับ A1Z26

เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้

ตัวสร้าง bcrypt

สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 13 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้

เข้ารหัส / ถอดรหัส AES

เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส

เครื่องมือสร้างใบรับรอง SSL

สร้างใบรับรอง SSL/TLS ที่ลงนามด้วยตนเองและคีย์ส่วนตัว RSA ทั้งหมดในเบราว์เซอร์ กำหนด Common Name, SAN และช่วงอายุเอง ส่งออกเป็น PEM

เครื่องมือนี้มีให้บริการในภาษาอื่น