T

Text Machine

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

เครื่องคำนวณดัชนีความบังเอิญ

วัดว่าการกระจายตัวอักษรของข้อความเอนเอียงแค่ไหน แล้วอ่านความยาวกุญแจได้จากตารางรายคอลัมน์โดยตรง

ลองดู:

ข้อความ

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

วิธีใช้ ดัชนีความบังเอิญ

  1. 1

    วางข้อความ

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

  2. 2

    อ่านค่าดัชนี

    ค่า IC ดิบคือความน่าจะเป็นที่ตัวอักษรสองตัวซึ่งหยิบมาแบบสุ่มจะเป็นตัวเดียวกัน ค่าที่ปรับเทียบคือค่านั้นเทียบกับตัวอักษรสม่ำเสมอ โดย 1.00 คือสุ่ม และราว 1.73 คือภาษาอังกฤษ

  3. 3

    ตัดสินว่าเป็นรหัสชนิดใด

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

  4. 4

    หาความยาวกุญแจในตารางรายคอลัมน์

    ถ้าข้อความดูเป็นรหัสหลายชุด ให้มองหาความยาวสั้นที่สุดที่ค่า IC รายคอลัมน์ไต่กลับไปทาง 0.066 นั่นคือความยาวกุญแจ และเป็นตัวเลขที่ตัวแก้ Vigenère ต้องการ

ทำความเข้าใจดัชนีความบังเอิญ

ตัวเลขหนึ่งตัว คำถามหนึ่งข้อ

ดัชนีความบังเอิญตอบคำถามแคบ ๆ ข้อเดียว ถ้าคุณล้วงเข้าไปในข้อความสองครั้งแล้วหยิบตัวอักษรออกมาครั้งละตัว บ่อยแค่ไหนที่คุณจะได้ตัวอักษรเดียวกันสองครั้ง ถ้าเป็นถุงที่มีตัวอักษร 26 ตัวพบบ่อยเท่ากัน คำตอบคือ 1 ใน 26 หรือราว 0.0385 แต่ภาษาอังกฤษได้เกือบสองเท่า คือราว 0.066 เพราะภาษาอังกฤษไม่ใช่ถุงที่สม่ำเสมอ E, T, A และ O รับงานส่วนใหญ่ ส่วน J, Q, X และ Z แทบไม่โผล่มาเลย

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

สิ่งที่มันบอกได้และบอกไม่ได้

ค่า IC ใกล้ 0.066 บอกว่าการกระจายตัวอักษรยังอยู่ครบ ครอบคลุมทั้งข้อความธรรมดา การเลื่อนแบบซีซาร์ กระจกแบบแอตแบช และรหัสแทนที่อย่างง่ายทุกแบบ และนี่คือเหตุผลที่รหัสแทนที่เดี่ยวถูกถอดด้วยการวิเคราะห์ความถี่ ไม่ใช่ด้วยตัวเลขนี้

ค่า IC ใกล้ 0.038 บอกว่าการกระจายถูกทำให้ราบแล้ว มีบางอย่างกำลังจับคู่ตัวอักษรต้นฉบับหนึ่งตัวเข้ากับตัวอักษรเข้ารหัสหลายตัว ซึ่งเป็นลายเซ็นของ Vigenère และญาติของมัน หรือของสายอักขระที่สุ่มจริง ๆ

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

ตารางรายคอลัมน์คือส่วนที่ทำงานจริง

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

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

ค่า IC รายคอลัมน์ที่เฉลี่ยข้ามกองจึงสูงขึ้นที่ความยาวกุญแจจริงและที่ทุกตัวคูณของมัน การไล่อ่านตารางหาความยาวแรกที่ค่ากระโดดขึ้นคือวิธีคลาสสิกในการหาความยาวกุญแจ Vigenère และกับข้อความจริงมันเชื่อถือได้มากกว่าสูตรฟรีดแมน

ขั้นต่อไป

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

เมื่อมั่นใจในความยาวแล้ว ตัวแก้ Vigenère จะรับข้อความเข้ารหัส แบ่งเป็นคอลัมน์ตามจำนวนนั้น ถอดแต่ละคอลัมน์แบบรหัสซีซาร์ แล้วคืนคำกุญแจกับข้อความต้นฉบับให้คุณ

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

ดัชนีความบังเอิญคืออะไร
คือความน่าจะเป็นที่ตัวอักษรสองตัวซึ่งหยิบจากข้อความแบบสุ่มจะกลายเป็นตัวเดียวกัน เขียนเป็นสูตรคือผลรวมของ n(n-1) จากจำนวนครั้งของแต่ละตัวอักษร หารด้วย N(N-1) ของทั้งข้อความ ภาษาอังกฤษออกมาราว 0.066 เพราะตัวอักษรไม่กี่ตัวทำงานเกือบทั้งหมด ส่วนตัวอักษรสุ่มสม่ำเสมอออกมาที่ 1/26 หรือราว 0.0385
ทำไมค่าของฉันต่างจากเครื่องคำนวณอื่น
เกือบทุกครั้งเป็นเพราะการปรับเทียบ บางเครื่องมือรายงานความน่าจะเป็นดิบ บางเครื่องมือคูณด้วย 26 ข้อความเดียวกันจึงอ่านได้ทั้ง 0.0667 และ 1.73 ที่นี่แสดงทั้งสองค่า อีกสาเหตุที่พบบ่อยคือเครื่องมือนั้นนับช่องว่างหรือตัวเลขเป็นอักขระด้วย ส่วนที่นี่นับเฉพาะตัวอักษร A ถึง Z
ดัชนีความบังเอิญหาความยาวกุญแจได้อย่างไร
ลำพังตัวมันเองหาไม่ได้ สิ่งที่หาความยาวได้คือการแบ่งข้อความเข้ารหัสออกเป็น L คอลัมน์แล้ววัดแต่ละคอลัมน์แยกกัน ที่ค่า L จริง ทุกคอลัมน์ถูกเข้ารหัสด้วยการเลื่อนซ้ำค่าเดียว จึงเป็นรหัสซีซาร์ของภาษาอังกฤษและคงค่า IC ของภาษาอังกฤษไว้ ที่ค่า L ผิด คอลัมน์จะเป็นของผสมและยังราบอยู่ ตารางรายคอลัมน์แสดงผู้เข้าชิงทุกค่าเรียงกัน
ค่าประมาณฟรีดแมนคืออะไร ควรเชื่อไหม
เป็นสูตรจากปี 1922 ที่แปลงค่า IC หนึ่งค่าให้เป็นความยาวกุญแจโดยประมาณ ใช้เป็นตัวตรวจทานคู่กับตารางรายคอลัมน์ได้ดี แต่ผิดบ่อยพอที่จะไม่ควรใช้ลำพัง โดยเฉพาะกับข้อความสั้น ขีดจะขึ้นเมื่อข้อความของคุณกระจุกพอ ๆ กับข้อความธรรมดาอยู่แล้ว หรือสั้นเกินกว่าจะมีค่า IC สูตรนี้ตั้งอยู่บนสมมติฐานว่ากุญแจที่วนซ้ำได้ทำให้ข้อความแบนลง นอกช่วงนั้นจึงไม่มีอะไรให้ประมาณ และตัวเลขใด ๆ ก็จะเป็นการแต่งขึ้น
ทำไม 5, 10 และ 15 ได้คะแนนดีพอกัน
เพราะการแบ่งเป็น 10 คอลัมน์คือการผ่า 5 คอลัมน์จริงออกเป็นครึ่ง และแต่ละครึ่งยังคงการเลื่อนค่าเดียวไว้ ตัวคูณของความยาวจริงทุกตัวจึงรับคะแนนนั้นมาด้วย คำตอบคือสมาชิกที่สั้นที่สุดของตระกูล รายการแนะนำจึงตัดตัวคูณออก
บอกได้ไหมว่าข้อความเป็นภาษาอะไร
บอกได้อย่างหยาบมากเท่านั้น ตารางเปรียบเทียบแสดงว่าข้อความของคุณอยู่ตรงไหนเทียบกับค่าที่ตีพิมพ์ แต่หลายภาษามีค่าใกล้กัน และตัวอย่างสั้นจะแกว่งมากกว่าระยะห่างระหว่างค่าเหล่านั้น ใช้แยกภาษาธรรมชาติออกจากข้อความที่ดูสุ่มได้ แต่อย่าใช้เลือกระหว่างฝรั่งเศสกับสเปน
ข้อความของฉันออกจากเบราว์เซอร์ไหม
ไม่ออก การคำนวณทั้งหมดเกิดขึ้นในหน้านี้ ไม่มีการอัปโหลด บันทึก หรือเก็บไว้ที่ใดทั้งสิ้น

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

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

การตรวจแบบคาซิสกี

ตัวถอดรหัสวีฌ์แนร์

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

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

ตัวถอดรหัสแทนที่

ตัวแปลง Unix Timestamp