เครื่องคำนวณดัชนีความบังเอิญ
วัดว่าการกระจายตัวอักษรของข้อความเอนเอียงแค่ไหน แล้วอ่านความยาวกุญแจได้จากตารางรายคอลัมน์โดยตรง
ลองดู:
วางข้อความลงไปเพื่อวัดค่า ตัวอย่างซีซาร์และ Vigenère ใช้ข้อความเดียวกับตัวอย่างภาษาอังกฤษ คุณจึงเห็นได้ทันทีว่ารหัสแต่ละชนิดทำอะไรกับตัวเลขนี้
วิธีใช้ ดัชนีความบังเอิญ
- 1
วางข้อความ
ใส่ข้อความธรรมดาหรือข้อความเข้ารหัสลงในกล่อง มีเฉพาะตัวอักษร A ถึง Z ที่เข้าร่วม ส่วนตัวพิมพ์เล็กใหญ่ ช่องว่าง ตัวเลข และเครื่องหมายวรรคตอนจะถูกละเว้น รูปแบบการจัดหน้าจึงขยับตัวเลขไม่ได้
- 2
อ่านค่าดัชนี
ค่า IC ดิบคือความน่าจะเป็นที่ตัวอักษรสองตัวซึ่งหยิบมาแบบสุ่มจะเป็นตัวเดียวกัน ค่าที่ปรับเทียบคือค่านั้นเทียบกับตัวอักษรสม่ำเสมอ โดย 1.00 คือสุ่ม และราว 1.73 คือภาษาอังกฤษ
- 3
ตัดสินว่าเป็นรหัสชนิดใด
ราว 0.066 แปลว่าการกระจายตัวอักษรยังอยู่ครบ จึงเป็นข้อความธรรมดาหรือรหัสแทนที่อย่างง่าย ราว 0.038 แปลว่าถูกทำให้ราบแล้ว ซึ่งชี้ไปที่รหัสกุญแจซ้ำ
- 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 จะรับข้อความเข้ารหัส แบ่งเป็นคอลัมน์ตามจำนวนนั้น ถอดแต่ละคอลัมน์แบบรหัสซีซาร์ แล้วคืนคำกุญแจกับข้อความต้นฉบับให้คุณ
คำถามที่พบบ่อย
ดัชนีความบังเอิญคืออะไร
ทำไมค่าของฉันต่างจากเครื่องคำนวณอื่น
ดัชนีความบังเอิญหาความยาวกุญแจได้อย่างไร
ค่าประมาณฟรีดแมนคืออะไร ควรเชื่อไหม
ทำไม 5, 10 และ 15 ได้คะแนนดีพอกัน
บอกได้ไหมว่าข้อความเป็นภาษาอะไร
ข้อความของฉันออกจากเบราว์เซอร์ไหม
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้