好问题。
我是美洲原住民,这对我们来说是众所周知的。我也有汉语和方言的经验。我会解释为什么我稍后会提到中文部分。
这是一个非常好的例子security through obscurity
。它一直有效,直到弄清楚为止。然而,与说英语的人相比,说纳瓦霍语的人太少了,以至于当时很难找到以母语为母语的人来学习。他们怎么会知道这是纳瓦霍语?这对他们来说听起来很陌生。
虽然代码可能很简单,但很难找到人教你这些代码。二战期间,美国的日本人被围捕并安置在拘留营中。任何同情他们的人都可能受到同样的惩罚。找到纳瓦霍叛徒的机会极低。
为什么加密比语言和方言更强?
关于加密,Thomas Pornin 等其他人可以比我更好地解释这一点,但我会尝试向您展示相似之处:
加密就像一种语言。这有点像将一个单词(或字符)转换为另一组高度不同的字符。使用适当的加密,A -> Z
除非Z -> A
您拥有key
. 使用语言,您可以比较其他语言中具有相似含义的单词,并进行相应的翻译。有了语言,你key
就是了解这些语言。
使用适当的加密,您无法做到这一点。您无法将正确加密的文本放入解密例程并返回结果。不是没有钥匙。您需要密钥来解密它。使用哈希,您永远无法取回消息,只能验证它是否真实,但这些消息很容易受到碰撞攻击。
这里有些例子:
Pretend this is Encryption. The "key" to decrypting the
hidden message is to understand both languages. There is
a second hidden message which requires deeper understanding.
[English] [Chinese]
Hello -> 你好
Alpaca -> 草泥马
在哈希(单向)的情况下,它可以像这样运行:
[English]
Bring potter to Naria. The Death Star is ready for our war against the Time Lords.
[bcrypt]
$2a$04$38oxoVSWS9A97nkHYvxyD.FoLh7wxnHFTI2bOvg8XKZ/hA29BPEgS
使用哈希,您必须根据消息验证内容以查看它们是否匹配。这不是真正的加密方法,因为您无法返回原始消息。您最终也可能导致碰撞。
在 AES 256 位(双向)的情况下:
[English with key]
Find Potter and bring him to Narnia. The Death Star is ready for our war against the Time Lords.
[AES 256 encryption result]
Uz+07JfiUU8MwjJVCCefLpH8hFlP2mrjMbO4ArP7IbYVbpDFulUNf6GKDYw9fELI0oeni1sdD81E191BownSDPHvAnQ6TJTB63lYEodUj+ZxXVEvSetL+ZwXEgI9zS/R
你打算怎么破解这些?实际上,就像语言一样。不同之处在于破解真正的加密要困难得多。首先,映射语言和创建翻译器比映射加密数据库要容易得多。
这就是为什么纳瓦霍人的“代码”是密码学的,相比之下“非常简单”。时代默默无闻的安全性使得它很难破解,但今天用现在的机器很容易破解。
使用晦涩的方言或语言可以添加额外的“加密”层(请注意,引号表示它不是真正的加密),但同样,this is security through obscurity
不应单独依赖 , 。在加密的情况下,这些算法已经被受过良好教育的研究人员长时间测试为安全的。另一方面,语言更容易学习。
几乎任何白痴都可以学习一门语言。我是活生生的证据。受过良好教育的密码学家和数学家无法破解许多强大的加密形式。一般的外行有什么希望?
语言和方言的有用性
关于中提到的晦涩的方言#2
,你今天仍然可以看到这样的事情。事实上,这并不是日本人因默默无闻而被安全部门控制的唯一例子。
例如,中国军方依靠另一层“加密”(注意引号)——这真的只是security through obscurity
——用他们的方言。上次对华战争,日本因为不懂执行,没能“破解”温州话,被用来对付他们。
旁注:Phonemica等组织已做出相当大的努力来消除晦涩难懂的汉语方言。
今天依赖方言和语言的部分问题是黑客无处不在,所以很有可能有人会找到你的教学手册。计算机处于可以在很短的时间内自动消除语言或方言的好时机。另一方面,真正的加密几乎是牢不可破的。
一旦有人很快学会了你的语言或方言,你通过默默无闻的安全感就会很快消失。这已经使用了数千年,但在现代,它不会那么有效。
默默无闻的安全性完全无效吗?
尽管我已经说过了,但这确实增加了另一层在技术上难以破解的混淆。即使您的加密消息被破坏,您的攻击者仍然需要花费大量时间将其映射出来。虽然与适当的加密相比,它是孩子的游戏,但通过默默无闻的安全性确实有它的用途,但你不应该再完全依赖它。