T

Text Machine

เครื่องมือข้อความทรงพลัง ในเบราว์เซอร์ของคุณ

เครื่องมือถอดรหัสแทนที่

วางรหัสแทนที่แบบโมโนอัลฟาเบติกหรือคริปโตแกรม แล้วกู้ข้อความต้นฉบับกลับมาโดยไม่ต้องรู้กุญแจ เครื่องมือนี้จับคู่ความถี่ของตัวอักษรเพื่อตั้งค่าเดาเริ่มต้น จากนั้นใช้ simulated annealing ที่ให้คะแนนตามไทรแกรมภาษาอังกฤษเพื่อค้นหาตัวอักษร 26 ตัวให้ได้คำอ่านที่ดูเหมือนภาษาอังกฤษมากที่สุด ทุกอย่างทำงานในเบราว์เซอร์ของคุณ

ลองตัวอย่าง:

ข้อความที่เข้ารหัส

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

วิธีใช้ ตัวถอดรหัสแทนที่

  1. 1

    วางข้อความที่เข้ารหัส

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

  2. 2

    กดแกะ

    คลิกแกะรหัส การค้นหาจะทำงานสักครู่ — มันจะลองตัวอักษรที่เป็นไปได้หลายแสนชุด — แล้วแสดงคำอ่านที่ดูเหมือนภาษาอังกฤษมากที่สุดที่พบ

  3. 3

    อ่านข้อความที่กู้คืนมา

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

  4. 4

    ตรวจสอบตัวอักษรที่กู้คืนมา

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

  5. 5

    แชร์หรือล้าง

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

อธิบายการแกะรหัสแทนที่

เครื่องมือนี้ทำอะไร

รหัสแทนที่แบบโมโนอัลฟาเบติกจะแทนตัวอักษรทุกตัวในชุดตัวอักษรด้วยตัวอื่น — A อาจกลายเป็น Q, B อาจกลายเป็น W — และใช้ชุดตัวอักษรที่สับเปลี่ยนนั้นชุดเดียวกันตลอดทั้งข้อความ มันคือรหัสที่อยู่เบื้องหลังคริปโตแกรมในหนังสือพิมพ์ ปริศนาห้องหนีภัย และ Aristocrat ของ American Cryptogram Association มีชุดตัวอักษรที่เป็นไปได้มากกว่าสี่ร้อยเซปทิลเลียนชุด มากเกินกว่าจะลองทีละชุดได้ แต่กระนั้นรหัสแทนที่ก็เป็นหนึ่งในรหัสที่ทลายได้ง่ายที่สุด เครื่องมือนี้ทลายมันให้คุณโดยอัตโนมัติ ไม่ต้องมีกุญแจ

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

ทำไมรหัสแทนที่จึงถูกทลายได้

รหัสแทนที่ซ่อนว่าตัวอักษรไหนคือตัวอักษรอะไร แต่มันซ่อนไม่ได้ว่าแต่ละตัวอักษรถูกใช้บ่อยแค่ไหน ในภาษาอังกฤษ E พบบ่อยกว่าตัวอักษรอื่นใดมาก ตามด้วย T, A, O, I และ N ขณะที่ J, Q, X และ Z นั้นหายาก การเข้ารหัสเพียงแค่เปลี่ยนป้ายให้กับความถี่เหล่านั้น ไม่ว่าตัวอักษรใดจะแทน E ตัวนั้นจะกลายเป็นตัวอักษรที่พบบ่อยที่สุดในข้อความที่เข้ารหัส ข้อเท็จจริงเพียงข้อเดียวนั้น — ความถี่ของตัวอักษรคงอยู่แม้ผ่านการแทนที่ — คือรอยรั่วในเกราะที่วิชาการวิเคราะห์รหัสทั้งหมดถูกสร้างขึ้นบนนั้น

ลำพังความถี่อย่างเดียวยังไม่เพียงพอ เพราะตัวอักษรหลายตัวมีจำนวนใกล้เคียงกันและอาจถูกสลับกันโดยผิดพลาด สัญญาณที่ลึกกว่าอยู่ที่วิธีการที่ตัวอักษรประกอบกัน ภาษาอังกฤษนิยมรูปแบบบางอย่าง — TH, HE, ING, THE, AND — และแทบไม่ใช้รูปแบบอื่นเลย การถอดรหัสที่ถูกต้องจะเต็มไปด้วยรูปแบบธรรมชาติเหล่านั้น ส่วนการถอดรหัสที่ผิดจะเต็มไปด้วยการประกอบที่ภาษาอังกฤษจริงๆ ไม่เคยใช้ การวัดความแตกต่างนั้นคือสิ่งที่ทำให้คอมพิวเตอร์สามารถจดจำคำตอบที่ถูกต้องท่ามกลางคำตอบที่ผิดซึ่งดูสมเหตุสมผลนับไม่ถ้วน

ขั้นที่หนึ่ง: การเดาเริ่มต้นที่จับคู่ตามความถี่

เครื่องมือเริ่มต้นด้วยการนับว่าตัวอักษรแต่ละตัวปรากฏในข้อความที่เข้ารหัสบ่อยแค่ไหน แล้วเรียงจำนวนเหล่านั้นเทียบกับลำดับความถี่ที่ทราบของภาษาอังกฤษ ตัวอักษรที่พบบ่อยที่สุดในข้อความที่เข้ารหัสจะถูกเดาว่าเป็น E ตัวถัดมาเป็น T แล้วจึงเป็น A, O, I, N และต่อไปเรื่อยๆ ลงไปตามรายการ นี่คือก้าวแรกแบบคลาสสิกที่ผู้แกะคริปโตแกรมทุกคนเรียนรู้ด้วยมือ

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

ขั้นที่สอง: simulated annealing ค้นหากุญแจ

จากการเดาเริ่มต้น เครื่องมือจะสลับความหมายของข้อความต้นฉบับของตัวอักษรสองตัวซ้ำๆ แล้วถามว่าตอนนี้ข้อความอ่านเหมือนภาษาอังกฤษมากขึ้นหรือไม่ หากการสลับช่วยได้ ก็จะเก็บไว้ ปัญหาคือการยืนกรานให้ต้องดีขึ้นทันทีเสมอจะทำให้การค้นหาติดอยู่กับคำตอบที่เกือบถูก — จุดเหมาะที่สุดเฉพาะถิ่น (local optimum) — ที่ไม่มีการสลับเพียงครั้งเดียวจะหลุดออกมาได้ การแกะรหัสแทนที่คือกรณีตำราเรียนสำหรับเทคนิคที่เรียกว่า simulated annealing ซึ่งแก้ปัญหานี้ได้พอดี

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

เครื่องมือตัดสินภาษาอังกฤษอย่างไร: ความเหมาะสมของไทรแกรม

ชุดตัวอักษรที่เป็นไปได้แต่ละชุดจะถูกให้คะแนนด้วยตัวเลขเดียว นั่นคือความเหมาะสมของไทรแกรม เครื่องมือจะดูทุกชุดของตัวอักษรสามตัวที่ติดกันในข้อความที่ถอดได้ แล้วรวมความน่าจะเป็นของแต่ละชุดสามตัวในภาษาอังกฤษจริง โดยใช้ตารางความถี่ของตัวอักษรสามตัวที่สร้างจากงานเขียนภาษาอังกฤษจำนวนมาก ชุดสามตัวที่พบบ่อยอย่าง THE, AND และ ING ได้คะแนนดี ส่วนชุดสามตัวที่ภาษาอังกฤษไม่เคยใช้ได้คะแนนแย่มาก

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

คุณต้องมีข้อความมากแค่ไหน และเมื่อไรที่มันลำบาก

การทลายรหัสแทนที่เป็นงานเชิงสถิติ ดังนั้นมันอยู่หรือตายขึ้นอยู่กับว่าคุณให้ข้อความมากแค่ไหน ด้วยตัวอักษรภาษาอังกฤษทั่วไปราวหนึ่งร้อยห้าสิบตัวขึ้นไป การกู้คืนมักจะเกือบสมบูรณ์แบบ ราวแปดสิบถึงหนึ่งร้อยตัวอักษรก็ยังใช้ได้ แต่ตัวอักษรหายากหนึ่งหรือสองตัว — J, Q, X และ Z ที่แทบไม่ปรากฏ — อาจถูกอ่านผิด เพราะหลักฐานยังไม่มากพอจะระบุตำแหน่งให้แน่ชัด ต่ำกว่าราวห้าสิบตัวอักษร ไม่ว่าผู้แกะจะเป็นคนหรือเครื่อง ก็แทบจะเป็นการเดาเป็นส่วนใหญ่

มีอีกหลายสิ่งที่ทำให้ข้อความแกะได้ยากขึ้น: ข้อความที่จงใจหลีกเลี่ยงตัวอักษรที่พบบ่อย (เช่นแพนแกรม) งานเขียนที่ไม่ใช่ภาษาอังกฤษ หรือรหัสที่ยังย้ายตำแหน่งตัวอักษรไปมาด้วยแทนที่จะเปลี่ยนป้ายอย่างเดียว เมื่อคำอ่านออกมาเกือบถูกแล้ว คำตอบเกือบจะเสมอคือป้อนข้อความที่เข้ารหัสเพิ่ม หรือแก้ตัวอักษรหนึ่งหรือสองตัวที่ดื้อด้วยสายตา หากข้อความไม่ใช่การแทนที่อย่างง่ายเลย เครื่องมือระบุประเภทรหัส (Cipher Identifier) สามารถบอกคุณได้ว่าจริงๆ แล้วคุณกำลังเจอกับอะไร

รหัสแทนที่และญาติพี่น้องของมัน

การแทนที่อย่างง่ายที่คงการเว้นวรรคของคำไว้คือสิ่งที่ผู้ตั้งคริปโตแกรมเรียกว่า Aristocrat ส่วนรหัสเดียวกันที่ลบเว้นวรรคออกคือ Patristocrat ทั้งคู่เป็นโมโนอัลฟาเบติก — ชุดตัวอักษรคงที่ชุดเดียวตลอดทั้งข้อความ — และทั้งคู่ก็พ่ายแพ้ต่อวิธีการที่นี่ Caesar และ Atbash เป็นเพียงการแทนที่แบบพิเศษที่ยิ่งง่ายกว่า ดังนั้นเครื่องมือนี้ก็แกะมันได้เช่นกัน แม้ว่าหน้าเฉพาะของมันจะแก้ได้ทันทีก็ตาม

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

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

คุณแกะรหัสแทนที่ได้จริงโดยไม่ต้องมีกุญแจหรือ?
ใช่ รหัสแทนที่ซ่อนว่าตัวอักษรไหนคือตัวอักษรอะไร แต่ไม่ได้ซ่อนว่าแต่ละตัวถูกใช้บ่อยแค่ไหน และความถี่ของตัวอักษรกับกลุ่มสามตัวอักษรในภาษาอังกฤษนั้นโดดเด่นมาก เครื่องมือเริ่มจากความถี่เหล่านั้น แล้วค้นหาชุดตัวอักษรที่การถอดรหัสอ่านเหมือนภาษาอังกฤษมากที่สุด กู้คืนทั้งข้อความและกุญแจโดยไม่มีอะไรให้มาล่วงหน้าเลย
เครื่องมือนี้แกะรหัสประเภทใด?
มันแกะรหัสแทนที่แบบโมโนอัลฟาเบติก — ประเภทที่ชุดตัวอักษรสับเปลี่ยนคงที่ชุดเดียวแทนตัวอักษรตลอดทั้งข้อความ ครอบคลุมคริปโตแกรมในหนังสือพิมพ์ Aristocrat และ Patristocrat รหัสที่ใช้ชุดตัวอักษรแบบคำสำคัญ และกรณีที่ง่ายกว่าอย่าง Caesar และ Atbash มันไม่แกะรหัสโพลีอัลฟาเบติกอย่าง Vigenère ซึ่งเปลี่ยนชุดตัวอักษรไปเรื่อยๆ ขณะทำงาน
เครื่องมือนี้ทำงานอย่างไร?
มีสองขั้นตอน ขั้นแรกมันจับคู่ความถี่ตัวอักษรของข้อความที่เข้ารหัสกับภาษาอังกฤษเพื่อตั้งค่าเดาเริ่มต้น จากนั้นมันใช้ simulated annealing — สลับตัวอักษรสองตัวซ้ำๆ และเก็บการสลับที่ทำให้ข้อความเหมือนภาษาอังกฤษมากขึ้น ขณะที่บางครั้งยอมรับการถอยหลังเพื่อหลุดจากทางตัน — โดยให้คะแนนตามว่าการประกอบสามตัวอักษรดูเป็นธรรมชาติแค่ไหน มันรันหลายครั้งและเก็บผลลัพธ์ที่ดีที่สุด
ทำไมจึงใช้การให้คะแนนไทรแกรมแทนความถี่ของตัวอักษร?
ความถี่ของตัวอักษรเดี่ยวอาจถูกจับคู่ได้ด้วยกุญแจที่ยังให้ผลเป็นข้อความที่อ่านไม่รู้เรื่อง จึงไม่เพียงพอด้วยตัวเองที่จะจดจำคำตอบที่ถูกต้อง ความเหมาะสมของไทรแกรมให้คะแนนทุกชุดของสามตัวอักษรเทียบกับภาษาอังกฤษจริง ซึ่ง THE, AND และ ING พบบ่อยและชุดสามตัวส่วนใหญ่หายากอย่างยิ่ง กุญแจที่ผิดจะให้ชุดสามตัวที่ไม่เป็นธรรมชาติและได้คะแนนแย่ ซึ่งทำให้การค้นหาเล็งเข้าหาคำอ่านที่แท้จริงได้
ฉันต้องมีข้อความมากแค่ไหนเพื่อทลายคริปโตแกรม?
ควรมีตัวอักษรภาษาอังกฤษทั่วไปอย่างน้อยหนึ่งร้อยห้าสิบตัวเพื่อการแกะที่เกือบสมบูรณ์แบบ ราวแปดสิบถึงหนึ่งร้อยตัวอักษรมักจะใช้ได้แต่อาจอ่านตัวอักษรหายากหนึ่งหรือสองตัวผิด ต่ำกว่าราวห้าสิบตัวอักษรมักจะมีหลักฐานเชิงสถิติไม่พอที่ผู้แกะคนใดจะมั่นใจได้ จึงคาดหวังได้เพียงคำอ่านบางส่วน
ผลลัพธ์เกือบถูกแล้วแต่ตัวอักษรไม่กี่ตัวผิด เพราะอะไร?
ตัวอักษรหายากอย่าง J, Q, X และ Z ปรากฏน้อยมากจนข้อความสั้นๆ อาจมีไม่มากพอที่จะระบุตำแหน่งได้อย่างมั่นใจ และตัวอักษรสองตัวที่มีความถี่ใกล้เคียงกันก็อาจถูกสลับกันเป็นครั้งคราว การแก้ไขมักจะเป็นการป้อนข้อความที่เข้ารหัสเพิ่ม หรือแก้ตัวอักษรหนึ่งหรือสองตัวที่หลงด้วยสายตาเมื่อข้อความที่เหลืออ่านออกแล้ว
มันจะแกะคริปโตแกรมที่คงเว้นวรรคไว้ (Aristocrat) ได้หรือไม่?
ได้ เว้นวรรค ตัวเลข และเครื่องหมายวรรคตอนจะถูกคงไว้ในผลลัพธ์แต่ถูกละไว้ระหว่างการแกะ ดังนั้นการเว้นวรรคของคำจึงไม่ช่วยและไม่เป็นอุปสรรค ไม่ว่าปริศนาของคุณจะคงเว้นวรรคไว้ (Aristocrat) หรือลบออก (Patristocrat) วิธีการความถี่และไทรแกรมเดียวกันก็กู้คืนข้อความได้
เครื่องมือนี้ให้ผลแน่นอน (deterministic) หรือไม่?
ใช่ แม้ว่ามันจะใช้การค้นหาแบบสุ่ม แต่ความสุ่มนั้นถูกขับเคลื่อนด้วยค่าเริ่มต้น (seed) ที่ตายตัว ดังนั้นข้อความที่เข้ารหัสเดียวกันจะให้ผลลัพธ์เดียวกันเสมอ นั่นยังหมายความว่าลิงก์ที่แชร์จะให้ผลการแกะที่เหมือนกันเป๊ะสำหรับทุกคนที่เปิดมัน
มันทำงานกับภาษาอังกฤษเท่านั้นหรือ?
ตารางความถี่และไทรแกรมในตัวเครื่องอธิบายภาษาอังกฤษ ดังนั้นมันจึงถูกปรับมาสำหรับข้อความต้นฉบับภาษาอังกฤษ ข้อความในภาษาอื่นมักจะออกมาเป็นเรื่องไร้สาระแม้ว่าการค้นหาจะสำเร็จก็ตาม เพราะมันกำลังจับคู่กับสถิติที่ผิด สำหรับข้อความที่ไม่ใช่ภาษาอังกฤษ คุณจะต้องมีข้อมูลความถี่สำหรับภาษานั้น
ข้อความที่เข้ารหัสของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การค้นหาทั้งหมดทำงานในเบราว์เซอร์ของคุณ ดังนั้นข้อความของคุณจึงไม่เคยถูกอัปโหลด บันทึกล็อก หรือจัดเก็บ แม้แต่ลิงก์สำหรับแชร์ก็เก็บข้อความที่เข้ารหัสของคุณไว้ในส่วนของ URL หลังเครื่องหมาย hash ซึ่งเบราว์เซอร์ไม่เคยส่งไปยังเซิร์ฟเวอร์ มันจึงยังคงเป็นส่วนตัวจนกว่าคุณจะเลือกแชร์เอง
ถ้ามันไม่ใช่รหัสแทนที่เลยล่ะ?
หากการแกะออกมาเป็นเรื่องไร้สาระและความถี่ของตัวอักษรดูราบเรียบผิดปกติ ข้อความอาจเป็นโพลีอัลฟาเบติก อิงการสับเปลี่ยนตำแหน่ง หรือเป็นอย่างอื่นไปเลย ให้รันเครื่องมือระบุประเภทรหัส (Cipher Identifier) เพื่อหาว่าคุณกำลังเจอกับอะไร แล้วใช้เครื่องมือที่ตรงกัน — ตัวอย่างเช่นเครื่องมือถอดรหัส Vigenère สำหรับรหัสที่ใช้กุญแจซ้ำ

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

ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้

ตัวระบุรหัสลับ

การวิเคราะห์ความถี่

ตัวแปลง Unix Timestamp

ตัวแปลง JSON เป็น CSV

ตัวแปลง CSV เป็น JSON

ตัวแปลง JSON เป็น YAML