UTILS.
ทำงานในเบราว์เซอร์ 100%
🔡

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

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

ผลลัพธ์

เกี่ยวกับเครื่องมือนี้

เครื่องคำนวณดัชนีความบังเอิญ (IoC) จะคำนวณสถิติการวิเคราะห์รหัสลับคลาสสิก นั่นคือความน่าจะเป็นที่ตัวอักษรสองตัวที่สุ่มเลือกจากข้อความจะเหมือนกัน เครื่องมือจะกรองอินพุตให้เหลือเฉพาะตัวอักษร แปลงเป็นตัวพิมพ์ใหญ่ นับตัวอักษรแต่ละตัวจาก 26 ตัว n_i จากทั้งหมด N ตัวอักษร แล้วประเมิน IC = Σ n_i·(n_i − 1) / (N·(N − 1)) และยังรายงาน IC ที่ปรับให้เป็นบรรทัดฐาน = IC × 26 ปรับสเกลให้ข้อความสุ่มสม่ำเสมออยู่ใกล้ 1.0 และข้อความธรรมดาภาษาอังกฤษอยู่ใกล้ 1.73

ค่าอ้างอิงเหล่านี้คือสิ่งที่ทำให้ IoC มีประโยชน์ ข้อความธรรมดาภาษาอังกฤษมี IC ราว 0.0667 (ปรับเป็น ≈ 1.73) เพราะการกระจายตัวอักษรห่างไกลจากความราบเรียบ ในขณะที่ข้อความเข้ารหัสแบบสุ่มสม่ำเสมอหรือ polyalphabetic ที่ผสมดีจะลดลงเหลือราว 0.0385 (ปรับเป็น ≈ 1.00) รหัสแทนที่แบบ monoalphabetic จะรักษา IC ของข้อความธรรมดาไว้ ดังนั้น IC สูงจึงบ่งบอกรหัสแบบง่าย ส่วน IC ต่ำบ่งบอกรหัส polyalphabetic เช่น Vigenère

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

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

ดัชนีความบังเอิญบอกอะไรฉัน?
มันวัดว่าการกระจายตัวอักษรไม่สม่ำเสมอเพียงใด ข้อความธรรมดาภาษาอังกฤษมี IC ราว 0.0667 (ปรับเป็น ≈ 1.73) ส่วนข้อความเข้ารหัสแบบสุ่มหรือ polyalphabetic ลดลงเหลือราว 0.0385 (ปรับเป็น ≈ 1.00) IC สูงบ่งบอกข้อความธรรมดาหรือรหัส monoalphabetic ส่วน IC ต่ำบ่งบอกรหัส polyalphabetic เช่น Vigenère
ทำไม IC ที่ปรับให้เป็นบรรทัดฐานจึงมีประโยชน์?
การคูณ IC ดิบด้วย 26 ปรับสเกลใหม่ให้ข้อความสุ่มสม่ำเสมออยู่ราว 1.0 และภาษาอังกฤษราว 1.73 ให้ค่าอ้างอิงที่เข้าใจง่าย ทำให้การเปรียบเทียบว่า ‘ใกล้ภาษาอังกฤษแค่ไหน’ อ่านง่ายโดยไม่ต้องจำทศนิยมดิบที่มีค่าน้อย
การสแกนคอลัมน์ประเมินความยาวกุญแจอย่างไร?
สำหรับความยาวกุญแจ k แต่ละค่าที่เป็นไปได้ มันจะแบ่งข้อความเป็น k คอลัมน์ (ตัวอักษรทุกตัวที่ k) คำนวณ IC เฉลี่ยของคอลัมน์ แล้วชี้ค่า k ที่ค่าเฉลี่ยใกล้ภาษาอังกฤษมากที่สุด (~0.0667) ที่คาบ Vigenère ที่แท้จริง แต่ละคอลัมน์เป็นการเลื่อน Caesar เดียว (monoalphabetic) IC จึงสูงขึ้นเข้าใกล้ค่าภาษาอังกฤษ
เครื่องหมายวรรคตอนหรือตัวพิมพ์ส่งผลต่อผลลัพธ์หรือไม่?
ไม่ เครื่องมือจะตัดทุกอย่างออกเหลือเฉพาะตัวอักษรและแปลงส่วนที่เหลือเป็นตัวพิมพ์ใหญ่ก่อนนับ ดังนั้นเว้นวรรค ตัวเลข และเครื่องหมายวรรคตอนจึงถูกละเว้น มีเพียงตัวอักษร 26 ตัว A–Z ที่นับรวมใน N และจำนวนนับตัวอักษร

เครื่องมือเพิ่มเติม