Baconian密码
这个密码也是非常非常好玩有意思的密码
加密规则
- 核心原理:二进制思想的雏形
培根密码的本质是一种替换密码,但它不是直接把字母换成另一个字母,而是将每个明文字母替换成一个由“A”和“B”组成的5位二进制组合
为什么是5位? 因为 2^5 = 32,这足以覆盖26个英文字母(I/J和U/V在某些版本中被视为相同,以凑整26个)
“A”和“B”代表什么? 它们可以代表任何两种截然不同的状态,比如:两种字体(如普通字体和粗体)
大小写字母
两种不同的符号
声音的高低
字 密码 字符 密码 字符 密码 字符 密码
a AAAAA g AABBA n ABBAA t BAABA
b AAAAB h AABBB o ABBAB u-v BAABB
c AAABA i-j ABAAA p ABBBA w BABAA
d AAABB k ABAAB q ABBBB x BABAB
e AABAA l ABABA r BAAAA y BABBA
f AABAB m ABABB s BAAAB z BABBB案例1
- 假设我们要加密单词:HELLO
- H -> aabbb
- E -> aabaa
- L -> ababa
- L -> ababa
- O -> abbab
- 组合密码:将上面所有的5位组合连起来
aabbb aabaa ababa ababa abbab或者写成:aabbbaabaaababaababaabbab
这就是最原始的培根密码形式。但这种方式太明显了,一眼就能看出是密码
案例2
使用两种字体(培根的本意)
这是培根密码的精髓所在。我们找一段正常的文字作为“载体”,然后用字体的变化来隐藏信息
- 明文(要隐藏的信息): ACT
- 载体文本: I Love You (我们将用这个句子的字母大小写来隐藏信息)
- 将明文转为培根码:
- A -> aaaaa
- C -> aaaba
- T -> baaba
- 组合:aaaaa aaaba baaba
- 制定规则:我们规定,培根码中的 a 对应小写字母,b 对应大写字母(这个规则可以任意设定,但加解密双方必须一致)
- 加密
- 我们需要 5 * 3 = 15 个字母的载体。I Love You 去掉空格是 ILoveYou,只有8个字母,不够。所以我们把它延长为 I LoVe YoU DeAr (15个字符)
- 现在,将培根码 aaaaa aaaba baaba 的每一个字母,对应到载体文本的每一个字母上,并应用大小写规则
我们得到i love you DeAr
对于不知情的人来说,这看起来只是一个有点奇怪大小写的“I love you dear”,但对于知道规则的人来说,他们可以提取出大小写模式:小 小 小 小 小 小 小 小 大 小 大 小 大 小,然后将其转换为 a a a a a a a a b a b a b a,再分成5位一组 aaaaa (A), aaaba (C), baaba (T),从而破解出真实信息 ACT
总结
你可以发挥想象力,用任何两种对立的事物来表示A和B
用不同字体:在一篇文章中,用“宋体”代表 A,用“楷体”代表 B
注意事项与优缺点
优点:
- 隐蔽性极强:如果隐藏得好(比如在一篇长文中偶尔改变字体),几乎无法被察觉。
- 概念简单:不需要复杂的数学计算。
缺点:
- 编码效率低:加密一个字母需要5个符号,信息会变得很长。
- 依赖预共享规则:加解密双方必须事先约定好哪两种状态代表A和B。
- 一旦被识破,很容易破解:因为其模式固定,一旦有人意识到这是培根密码,破解就是分分钟的事