古典密码-博福特密码Beaufort
本文目的在于整合了网上的Beaufort Cipher原理、解密及算法实现
大部分均为转载,可以链接到原文地址查看,这里只是整合文章
简介
以下直接搬运原文,便于查看,也可以直接链接到原文地址查看
wikipedia-Beaufort Cipher
zh.wikipedia-博福特密码
en.wikipedia-Beaufort Cipher
博福特密码,是一种类似于维吉尼亚密码的替代密码,由弗朗西斯·蒲福(Francis Beaufort)发明。它最知名的应用是M-209密码机。博福特密码属于对等加密,即加密演算法与解密演算法相同
博福特密码是按mod q
减法运算的一种周期代替密码,其博福特密码表如下
与维吉尼亚密码表相比,就第二列开始的字母排序不一致
示例
例如,明文的第一个字母为D
,则先在表格中找到第D
列。由于密钥的第一个字母为F
,于是D
列从上往下找到F
。这一F
对应的行号为C
,因而C
便是密文的第一个字母。以此类推可以得到密文。以下便是一个密钥为FORTIFICATION
时的例子:
明文:DEFENDTHEEASTWALLOFTHECASTLE
密钥:FORTIFICATIONFORTIFICATIONFO
密文:CKMPVCPVWPIWUJOGIUAPVWRIWUUK
practicalcryptography.com-Beaufort Cipher
practicalcryptography.com-Beaufort
该网站详细地介绍了Beaufort密码,涉及到算法、例子、在线加密等
Decrypto
-
在线网页
practicalcryptography.com Beaufort Cipher
http://ctf.ssleye.com/beaufort.html -
C语言实现解密算法
https://www.bbsmax.com/A/x9J2RyNgJ6/ -
python实现解密算法(pycipher模块)
from pycipher import Beaufort Beaufort('HELLO').encipher('defend the east wall of the castle') >>> 'EAGHBELEHKHMSPOWTXGVAAJLWOTH' Beaufort('HELLO').decipher('EAGHBELEHKHMSPOWTXGVAAJLWOTH') >>> 'DEFENDTHEEASTWALLOFTHECASTLE'