Baconian 培根
转换方式¶
培根密码先将所有的明文字符先分为两种:a
类和 b
类,然后按五个字符一组进行分组。
分组的依据不定,最经典的一种方法是按粗体字区分,亦有用字体区分。
每五个字符将会按照类似二进制的方法进行转换,转成一个字符,可以参考下方表格。
标准的培根代码转换表中,I 与 J 共用一个代码,类似的,U 与 V 共用一个代码。
(因为培根密码有时用二进制表示会更加直观,本表在培根代码旁边增添了其二进制表示)
字母 | 代码 | 二进制对应 | 字母 | 代码 | 二进制对应 |
A | aaaaa | 00000 | N | abbaa | 01100 |
B | aaaab | 00001 | O | abbab | 01101 |
C | aaaba | 00010 | P | abbba | 01110 |
D | aaabb | 00011 | Q | abbbb | 01111 |
E | aabaa | 00100 | R | baaaa | 10000 |
F | aabab | 00101 | S | baaab | 10001 |
G | aabba | 00110 | T | baaba | 10010 |
H | aabbb | 00111 | U/V | baabb | 10011 |
I/J | abaaa | 01000 | W | babaa | 10100 |
K | abaab | 01001 | X | babab | 10101 |
L | ababa | 01010 | Y | babba | 10110 |
M | ababb | 01011 | Z | babbb | 10111 |
除了上面较为常见的转换表外,还有一种 I, J, U, V 各自独立的转换表。
字母 | 代码 | 二进制对应 | 字母 | 代码 | 二进制对应 |
A | aaaaa | 00000 | N | abbab | 01101 |
B | aaaab | 00001 | O | abbba | 01110 |
C | aaaba | 00010 | P | abbbb | 01111 |
D | aaabb | 00011 | Q | baaaa | 10000 |
E | aabaa | 00100 | R | baaab | 10001 |
F | aabab | 00101 | S | baaba | 10010 |
G | aabba | 00110 | T | baabb | 10011 |
H | aabbb | 00111 | U | babaa | 10100 |
I | abaaa | 01000 | V | babab | 10101 |
J | abaab | 01001 | W | babba | 10110 |
K | ababa | 01010 | X | babbb | 10111 |
L | ababb | 01011 | Y | bbaaa | 11000 |
M | abbaa | 01100 | Z | bbaab | 11001 |
加密举例¶
明文: PUZZLE
对应培根代码: abbba baabb babbb babbb ababa aabaa
类别区分方式:粗体( a 为正常, b 为粗体)
找一个30个字母的句子: This message is using baconian code
加密: Thism essag eisus ingba conia ncode
恢复正常空白:This message is using baconian code
识别方式¶
主要的线索主要是二进制,特别是两种不同的文字。有时“培根”这种肉食也会被刻意凸显来说明培根密码的存在。
历史¶
培根密码通常认为出自英国哲学家弗朗西斯·培根之手。培根密码很多时候并不是直接使用,而是作为一种隐写术 (Steganography) 的方法存在。
培根密码本质上是将二进制信息通过样式的区别,加在了正常书写之上。培根密码所包含的信息可以和用于承载其的文章完全无关。