关于此工具
重合指数(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),因为其字母分布远非均匀;而均匀随机或充分混合的多表密文则降至约 0.0385(归一化 ≈ 1.00)。单表替换保留明文的 IC,因此高 IC 意味着简单密码;低 IC 意味着如 Vigenère 之类的多表密码。
要恢复 Vigenère 密钥长度,请输入最大密钥长度以运行分列扫描。工具会对每个候选 k 将文本拆分为 k 列,计算这些列的平均 IC,并标记出平均值最接近英语值的 k——即可能的密钥长度,因为按真实周期拆分会重组出单表密码列。一切都是确定性的,并在浏览器中离线计算;不上传任何内容。
常见问题
重合指数能告诉我什么?
它衡量字母分布有多不均匀。英语明文的 IC 约为 0.0667(归一化 ≈ 1.73);随机或多表密文降至约 0.0385(归一化 ≈ 1.00)。高 IC 暗示明文或单表密码;低 IC 暗示如 Vigenère 之类的多表密码。
归一化 IC 为何有用?
将原始 IC 乘以 26 会重新缩放,使均匀随机文本约为 1.0、英语约为 1.73,提供一个直观参考。它让“与英语有多接近”的比较易于阅读,无需记住那些细小的原始小数。
分列扫描如何估算密钥长度?
对每个候选密钥长度 k,它将文本拆分为 k 列(每隔 k 个字母取一个),计算各列的平均 IC,并标记出平均值最接近英语(约 0.0667)的 k。在真实的 Vigenère 周期处,每一列都是单一的 Caesar 位移——即单表——因此其 IC 会升向英语值。
标点或大小写会影响结果吗?
不会。工具在计数前会去除除字母外的一切并将其余部分转为大写,因此空格、数字和标点都被忽略。只有 26 个字母 A–Z 参与 N 和字母计数。