维吉尼亚密码编码器/解码器(关键词密码)
在浏览器中完成维吉尼亚密码的加密与解密,使用关键词让每个字母的偏移量随位置变化。可用同一个关键词互相加密与解密,并逐字符查看转换过程。所有处理均在浏览器本地完成,不会发送到服务器。
使用提示
- 维吉尼亚密码曾被称为"无法破译的密码"(le chiffre indéchiffrable),大约300年间没有找到实用的破译方法。
- 由于关键词会循环使用,关键词越短,相同的偏移模式重复得越快,为密码分析提供的线索也越多。关键词越长通常越安全。
- 空格、标点和数字会原样输出,不会消耗关键词的位置,因此改变换行或空格的方式不会影响加密的规律性。
- 加密与解密使用同一个关键词,是对称操作。点击"将结果作为输入"按钮,即可立即用解密模式验证刚才的加密结果。
- 输出会保留原始输入的大小写(内部的偏移计算基于字母在字母表中的位置进行)。
常见问题
闲话 ― 卡西斯基试验如何攻破"无法破译的密码"
维吉尼亚密码以16世纪法国外交官布莱瑟·德·维吉尼亚的名字命名,但他很可能并非其真正的发明者。早在1553年,意大利密码学家乔瓦尼·巴蒂斯塔·贝拉索就已经发表了本质相同的方法:用循环使用的关键词决定每个字母各自的偏移量。维吉尼亚本人后来因16世纪的著作而与另一种密码产生关联,这一误传直到19世纪才被广泛固定下来,成为科学史上归属张冠李戴的一个典型案例。
凯撒密码只使用一个固定的偏移量,机械式的恩尼格玛密码机则每次转子转动都会改变偏移量,而维吉尼亚密码通过循环使用一个便于记忆的关键词,实现了逐字母不同的偏移量。用单一偏移量加密的凯撒密码,仅凭基础的频率分析就很容易破解;而维吉尼亚密码在表面上抹平了字母出现频率的分布,因此直到19世纪中叶都被称为"无法破译的密码(le chiffre indéchiffrable)",并在实际中被广泛使用。
这一声誉终结于1863年,普鲁士陆军军官弗里德里希·卡西斯基发表了"卡西斯基试验"。他通过测量密文中重复子串之间的距离,展示了如何推算关键词的长度;一旦知道长度,就可以对每个位置使用与破解简单凯撒密码相同的频率分析方法。这使得曾经实用了约三百年的密码被系统性地攻破,成为密码分析史上真正的转折点。
有趣的是,如果关键词与明文一样长且只使用一次,维吉尼亚密码在数学上就等价于理论上不可破译的"一次性密码本"。而实际运用中关键词过短且被反复使用,正是其真正的弱点所在,这一关于密钥管理重要性的历史教训,至今仍影响着现代密码学的设计。