考虑一个民族国家(蓝色)与另一个民族国家(红色)交战的情况。蓝色想部署一个安全的密码,蓝色目前无法破解,但是他们认为红色可以对密码进行反向工程,并使用它来保护红色的通信(红色无法开发自己的安全密码)。

问题:


过去的政府如何解决这个问题?
一个人如何设计这样的密码?

我一直在努力这种系统的表述不完整(也许不可能)。我知道询问是“我的密码安全”问题是不被接受的,但是我希望下面的概述中没有足够的实现细节,因此在这种情况下将不会看到。这更像是“我的密码可能吗”的问题。

这是我设计的后门密码。

假设一个函数$ g $,将一个整数作为输入$ s_i $并输出密码$ c_s $。也就是说,$ g $根据种子$ s $生成密码。

$$ \ text {Let} g(s)= c_s $$

密码$ c_s $具有以下特性:如果知道$ s $,则可以解密全部使用$ c_s $加密的邮件。因此,由于Red不知道$ s $并且无法从$ c_s $中学习$ s $,因此该密码对于Blue来说是安全的,但是如果Red尝试使用$ c_s $,则Blue可以解密其所有通信。

可以通过将加密后的$ c_s $使用的密钥(使用从$ s $派生的公共密钥)形式的$ c_s $来构建$ c_s $。也就是说,

$$ \ text {Let} c_s。\ text {encrypt}(key,明文)=密文| publicKey_s(key)$$

这会行得通,因为后门很明显并且很容易移除,因此不能满足我们上面的情况。 Red可以更改密码而不附加密钥的加密形式$ publicKey_s(key)$。

相反,更微妙的方法是创建一个函数$ g'$,该函数仍然花费$ s $,但同时产生密码$ c'_s $和函数$ v_s $。

$$ \ text {Let} g'(s)=(c'_s,v_s)$$

密码$ c'_s $具有以下特性:其某些密钥不安全,而另一些它的密钥是安全的。函数$ v_s $仅产生安全密钥。

Blue可以使用$ v_s $生成并分发许多安全密钥。

最好的情况是,Red并没有意识到某些密钥很弱而有些密钥很强,因此假设Blue永远不会使用Blue可能会破解的密码。 Red对此信任使用$ c_s $进行秘密通信。

即使该漏洞暴露出来,Blue通信仍然是安全的,并且Red仍然不能生成强密钥。 Red也不能使用Blue捕获的密钥,因为Blue记得会生成它们。

问题:这种方案是否可以远程实现,如果可以的话,可以用什么数学来构造它?

编辑:

我把它写成“想象一个安全的后门密码”。

评论

Dual_EC_DRBG是否符合条件?

@ user11342 +1,但请添加更多内容(也许总结一下有关它的各种说法)。 Dual_EC_DRBG确实与上述方案非常接近,因为它具有“弱值”和“强值”。我觉得这真的很有趣。

我不得不质疑埃伯曼先生关于“一个时间片不是流密码”的一些评论。我在这里发表这些评论是为了帮助那些可能关注此特定主题的人。我想我首先要问埃伯曼先生,他对一个时限的定义是什么,以及为什么我在此线程中提到的密码系统不能像传统的Wikipedia文章中所定义的那样归为一个时限。一个时间片。

看你不能要求我扩展一个主题,同时又将我的答案移到一个我没有足够声誉的地方,因为我没有足够的声誉。这种情况以及答案的普遍水平很低,使我对这个引用失去了兴趣。再见

柳杉密码(C2)呢?根据其算法的使用,为其(4C实体)的被许可方分配了不同的S-Box。从理论上讲,如果让客户错误地选择了S-Box,则他们在算法上的变体可能是不安全的,因为众所周知,选择S-box可能会严重影响算法的安全性。

#1 楼

从数学上讲,它可以做到。已经对活板门分组密码进行了研究。参见,例如Rijmen和Preneel撰写的一系列陷阱门密码以及后续论文。

实际上,问题陈述并不现实。这些假设是不现实的。今天,没有理由将红色限制为使用蓝色的密码。相反,Red可以使用任何经过严格审查的密码,例如AES。蓝色没有理由假设红色会使用蓝色的密码。鉴于公共文献的当前状态,这并不是对手的行为方式。因此,虽然您的问题陈述可能在40年前就值得思考并且很有趣,但是当没有关于密码学的公共文献时……今天,它是无关紧要的。

评论


$ \ begingroup $
我同意,您很可能是正确的,AES是相当安全的,硬盘如此便宜,每个人都可以使用OTP。为了便于讨论,假设NSA,GCHQ或其他对所有已知密码(AES,SERPENT等)都造成了毁灭性攻击。他们没有发布攻击,而是将所有军事系统缓慢转移到新的安全密码上(美国确实采用了像BATON这样的未发布/秘密密码)。如果“另一方”开始怀疑某些东西并切换到新的安全密码,则NSA希望保持其收听通信的能力。
$ \ endgroup $
– Ethan Heilman
2011年9月12日,下午1:26

$ \ begingroup $
@ e501:“让我们假设NSA,GCHQ或任何对所有已知密码都进行了毁灭性攻击的人”-但实际上,NSA积极鼓励使用AES,并允许将其用于机密流量(在SECRET)级别,前提是满足某些条件)。这表明NSA可能并非对所有密码都具有毁灭性攻击。电影院剧情值得考虑,但现实很有可能更为平凡。实际上,NSA窥探坏人的方式可能不是通过疯狂的密码分析,而是通过流量分析,操作员错误,不安全的端点等。
$ \ endgroup $
– D.W.
2011年9月12日在2:19

$ \ begingroup $
我完全同意,如果历史是法官的话,一般的数学攻击并不是打破大多数军事密码的方式。即便如此,GCHQ明天明天破译AES的可能性也非零。他们告诉世界吗?许多友好的政府将无法及时改用新密码。如果他们突然宣布了一项新竞赛,那么他们会伸出援手。此外,有一个有效的战略论点是,秘密侦听敌人的通讯所带来的好处也权衡了敌人也发现了攻击的风险。你是做什么?
$ \ endgroup $
– Ethan Heilman
2011年9月12日在2:38

$ \ begingroup $
那么,您还有另一个问题的答案-使用只有您自己知道的具有加密缺陷的任何密码。
$ \ endgroup $
– David Schwartz
2011-09-14 13:48

#2 楼

DES的设计可能使您对该问题有所了解。国家安全局改变了DES的S盒。许多人以为他们埋了后门。直到后来,Biham和Shamir才独立地发现差分密码分析法,人们才意识到NSA确实使DES更强大。密码分析,并且是这样做的唯一几个人(IBM表示他们也知道这一点)。 NSA确实可以将S-box设计为抵抗差异攻击的能力很弱,但是抵抗所有公共攻击的能力却很强。只有在发现差分密码分析之前,任何人都知道DES的能力很弱。

既然差分密码分析是众所周知的,那么您不能使用它吗?实际上,您可能会设计出一种对差分密码分析较弱的密码,而不会花费一段时间。你会怎么做?归结为差异功能。来自维基百科:


基本方法使用成对的纯文本,它们之间有一个常数
差;可以用几种方法定义差异,但是通常使用异或(XOR)操作。因此,构造S-box以便差异不进行XOR。选择其他一些差异函数,希望没人能弄清楚您使用了什么函数。您可能可以通过线性密码分析来做类似的事情。

但是,在所有现实中,最好在不安全的协议中使用标准密码。例如,padding oracle攻击相当实用,可能很难发现,特别是如果您采纳了这个主意并将其放在协议中的其他位置(不在padding中)。

评论


$ \ begingroup $
国家安全局确实削弱了DES,因此他们可以打破它,而其他国家则不能。他们通过减小密钥大小来做到这一点,以便只有拥有与NSA一样多的计算资源(也可能是定制构建的硬件)的人才可以希望在合理的时间内打破DES。
$ \ endgroup $
– Ethan Heilman
2011年9月12日下午0:58

$ \ begingroup $
我不同意。如今,我不相信您可以设计出一种对差分密码分析不利的密码并摆脱它。我认为很快就会注意到它。使用其他一些差异函数不足以将其隐藏。密码分析师通常会寻找dc。在其他差异观念下进行攻击。而且,即使漏洞没有被迅速发现,人们仍然强烈要求任何新的分组密码提议最好带有针对差分密码分析和其他标准攻击的安全性证明(或至少有力的安全性证明),因此您不会走不远。
$ \ endgroup $
– D.W.
2011-09-12 1:06



$ \ begingroup $
@ D.W。我大致同意您的评论(已知的攻击可能是一个不好的起点),但是我花了一些时间研究不同的后门。考虑这样一种情况,其中攻击所依赖的差异是由一些逻辑函数定义的,该逻辑函数被构造为使得找到执行攻击的“差异函数”等同于3SAT。有多少SHA3决赛入围者有不同安全性的证明?这样做的前提条件是独立性假设(一个人可以差异化后门功能并仍然证明有抵抗力)。
$ \ endgroup $
– Ethan Heilman
2011年9月12日下午1:36

#3 楼

在非对称加密环境中,我认为可以使用双重活板门功能在此方向上完成某些工作。
过去,我研究了其中的几个示例,并简要地介绍了可以使用“本地”陷阱门和“全局”陷阱门建立加密方案的方法。全局陷阱门为您提供了一种托管密钥,使您可以解密在此加密方案下生成的所有密码。
用户使用本地陷阱门在他们之间进行通信。

请访问此白皮书以获取更多详细信息:http://www.iacr.org/archive/asiacrypt2003/01_Session01/ 03_106 / 28940037.pdf

如在另一个答案中所指出的,这仅对于学术观点是有趣的。没有理由知道有人在那里有托管密钥而使用这种密码系统。

#4 楼

它可能看起来像题外话。

但是今天存在硬件解决方案。

早些年,苏联和美国都使用逆向工程来获得密码系统的方案。今天的军事标准太封闭了。我们使用的称为民用标准,它是开放的。因此,逆向工程似乎是不必要的。

有这样的技术:Physical_Unclonable_Function


它是单向功能的硬件模拟。


可能以这种方式制造加密系统,从而最大程度地增加了逆向工程任务的复杂性。

当Red获得Blue的加密系统时,他们可能会像黑盒子一样尝试使用它进行加密,但是他们不能获得完整的加密方案,并且无法克隆此黑匣子。

在这种情况下,红色用一个“ s-block”犯了错误,它们的加密消息很容易被蓝色破坏。

另请参阅:HTH(硬件特洛伊木马)
en.wikipedia.org/wiki/Hardware_Trojan

带有“ PUF防护罩”的这种恶意电路可能像是蓝色针对红色的微小信任触发一样。

评论


$ \ begingroup $
为什么当Red不知道它如何工作时会使用它们?他们最有可能使用它来破解捕获的通讯
$ \ endgroup $
–种族
13年7月25日在11:09

$ \ begingroup $
2rath,来自以下问题:“(Red无法开发自己的安全密码)”
$ \ endgroup $
–reticulatus
13年7月26日在10:07

#5 楼

如果我们假设这个世界再次变得有趣,比如说AES和种类已经落入了目前未知的攻击,那么即使Red还是必须愚蠢地落入它。我们将考虑两种防御情况:在情况A中,几乎所有的密码都可以通过用自己的密钥编织另一个密码来加强。密码不必本身那么强大就能从根本上打破与原始密码的冲突。 (暂时考虑一下Enigma,它很容易碎。现在考虑使用gzip-base26-Engima。与原始加密算法相比,它的加密能力现在是荒谬的,并且原始攻击根本不起作用。)在现代情况下,堆栈很弱,但编织要可怕得多。如果我们在一个分组密码的轮次中爆发了另一个密码,并以加密的分组状态又回到了分组密码中,则会发生奇怪的事情。

如果是B,Red只需重新掷骰子即可Blue密码中的所有大常数,构造了一个变体,它可能具有其他人都不知道的不同后门密钥。