安全和密码学的理论与实践之间的区别?


21

安全和密码学的理论和实践之间有什么有趣的区别?

当然,最有趣的例子是根据实践经验为理论研究提供新途径的例子。

答案可能包括(但不限于):

  • 理论表明某些事情是可能的,但从未在实践中使用的示例
  • 在理论上认为某些安全的东西在实践中不安全的例子
  • 在广泛的实际使用中的事例背后没有什么理论依据。

...

警告

如果您的答案本质上是“理论是关于无症状的,而实践不是”,那么该理论应该是真正的中心,或者答案应包括一些具体示例,这些示例在实际情况下的实际经验不同于基于期望的期望。在理论上。


我知道一个例子:安全电路评估。从理论上讲非常强大,但实际上太复杂了,因为这将涉及将您的代码,将其展开到电路中,然后一次对每个门进行安全评估。


:FYI,这个问题在此的其他问题的灵感来自一些修辞/讨论cstheory.stackexchange.com/questions/453/...
约书亚Grochow

Answers:


23

哦,男孩,从哪里开始。

最大的肯定是黑匣子。加密研究人员对诸如随机Oracle模型的不稳定性问题之类的事情大惊小怪。安全研究人员则处于另一个极端,他们希望一切都可以用作黑匣子,而不仅仅是哈希函数。这是一个持续的紧张根源。

为了说明这一点,如果您查看安全协议的形式分析,例如BAN逻辑,您将看到对称加密被视为“理想的分组密码”。这里有一个细微的区别-BAN逻辑(和其他协议分析技术)并不声称是安全证明;相反,它们是发现缺陷的技术。因此,这里理想的密码模型并不是严格意义上的。但是,根据经验,大多数安全分析倾向于局限于形式模型,因此效果是相同的。

我们甚至还没有谈论过从业者。这些家伙通常甚至不知道加密原语不打算成为黑匣子,而且我怀疑这种情况是否会改变-数十年来试图将其打入头脑并没有改变。

要了解问题的严重性,请考虑有关API签名可伪造性的安全公告。该错误部分是由于Merkle-Damgard结构中的长度扩展攻击(这确实是非常基本的),并影响了Flickr,DivShare,iContact,Mindmeister,Myxer,RememberTheMilk,Scribd,Vimeo,Voxel,Wizehhive和Zoomr。作者注意,这不是完整列表。

我确实认为从业者应该为这种悲惨的状况承担最大的责任。另一方面,也许加密理论家也需要重新考虑他们的立场。他们的话是:“黑匣子是不可能建立的;我们甚至不会尝试。” 我要说的是,既然很明显您的构造无论如何都会被用作(黑匣子)黑匣子,为什么不至少设法使其尽可能接近黑匣子呢?

本文梅克尔-Damgard再访是什么我谈论的一个很好的例子。他们研究了以下安全性概念:“当将固定长度的构建块视为随机预言或理想的分组密码时,任意长度的哈希函数H必须表现为随机预言”。这种理论研究在实践中具有巨大的潜力。

现在让我们来看一下电路评估的例子。我不同意你的推理。并不是像您将已编译的二进制文件盲目地变成电路一样。相反,您仅将电路评估应用于基础比较功能,这通常非常简单。Fairplay是电路评估的一种实现。我的一位与之合作的同事告诉我,它出奇的快。效率确实是电路评估的一个问题(我确实知道在现实世界中出于这个原因而被拒绝的情况),但它远没有达到顶峰。

我不同意的第二个原因是,如果您考虑一些典型的现实生活场景,您可能会想在其中进行遗忘的电路评估-例如,当两家公司正在考虑是否合并时-计算成本与整体人力和预算相比,所涉及的成本微不足道

那么,为什么在实践中没有人使用通用安全功能评估呢?好问题。这使我想到了理论与实践之间的第二个区别:信任实际上存在于实践中!并非偏执狂模型中的所有事情都需要做。人们实际上想要使用密码解决的问题集比密码学家想象的要小得多。

我知道有人开了一家公司,试图向企业客户出售安全的多方计算服务。猜猜是什么-没有人想要它。他们解决这些问题的方式是签订合同,指定可以使用和不能使用的数据,并且在将数据用于预期目的后将销毁数据。在大多数情况下,这很好。

我在理论和实践之间的最终区别是关于PKI。加密纸经常在某处加上一个句子,说“我们假设使用PKI”。不幸的是,针对最终用户的数字证书(与公司环境中的网站或员工相对,自然层次结构)从未实现。这篇经典论文描述了当您要求普通人使用PGP时会发生的欢闹。有人告诉我,此后该软件已得到了很大的改进,但是如今在底层设计和体系结构问题以及人为限制方面并没有太大区别。

我不认为由于缺乏现实世界的PKI,密码学家应该做任何不同的事情,除非要意识到它限制了密码协议在现实世界中的适用性。我把它扔进去,因为这是我要解决的问题。


好答案!(尽管我承认我并没有完全了解所有内容-我将不得不关注您的一些链接并通读它们,但这需要另一遍。)关于安全电路评估:我喜欢听到它。在讲完密码学入门课程并询问教授是否在实践中使用过之后,我所说的观点基本上是我的感受。
Joshua Grochow 2010年

谢谢。顺便说一句,我是StackExchange的新手,也不知道社区Wiki是否意味着不接受第一人称写作。在这种情况下,请随时进行更改。
randomwalker

我希望我可以不止一次赞成这个答案。
Jeffε

FairPlay在现实的威胁模型下是不安全的(它对恶意攻击者而言是不安全的;只有在我们相信对手不会做出不利/恶意行为的情况下,它才是安全的)。如果安全性不重要,效率很容易;如果效率不重要,则安全性很容易,但是目前尚不知道如何同时实现两者。
DW

您对从业人员的评论实际上很慷慨。我遇到过一家公司的唯一产品,该公司的唯一产品是信用卡付款处理,该公司使用的Vigenère密码的密钥短于某些已知明文的片段。然后,他们不相信我,直到我向他们发送了一些攻击代码,它才是不安全的。
彼得·泰勒

12

Randomwalker的答案非常好。我最喜欢的理论与实践之间的差距是随机预言模型。在实践中,这似乎是一种非常安全的启发式方法(假设人们没有做一些愚蠢的事情,并且至少适当地进行了长度扩展,另请参阅randomwalker的回答),但是我们对此没有任何积极的理论结果。实际上,关于这种启发式的所有理论结果都是负面的。我认为这是一个伟大的研究问题,希望有朝一日能证明有关此模型的一些有趣的积极结果。

就我所知,甚至在实践中,对于混淆处理,尽管混淆处理得到了广泛使用,但混淆处理却不像加密一样安全,并且使用混淆处理隐藏长期且非常敏感的秘密并不被认为是谨慎的做法。(与使用随机预言机进行加密相反,人们对此完全感到满意。)因此,从这个意义上讲,理论与实践之间的差距并不大。(即,混淆是一个非常有趣的领域,我们在理论上和实践上都远远不够。)


10

同态加密和安全的多方通信是最近在密码学领域发现的两个重大发现,尚未进行充分的研究以使其实用化:像PROCEED这样的研究工作正在朝着这个方向发展,以识别我们可能会使用哪种编程模型来编写此模型。各种计算,以及对使密码算法在合理时间内运行的核心密码算法进行优化。这在密码术中是相当普遍的事情:我们从(比较)简单的算法开始,该算法需要很长时间才能运行,然后密码学家花费了数年的时间使用数学来逐步优化算法。


10

理论表明有可能实现但从未在实践中使用过的示例:

找到理论上可以解决的事情的例子很容易,但是(1)效率太低而无法在实践中使用,或者(2)没人在乎。示例:(1)(通用)零知识证明,(2)不可否认的签名。实际上,在任何加密货币会议上看,至少有一半的论文可能会属于这些类别之一。

在理论上认为安全的东西在实践中不安全的示例:

这个问题有点含糊,所以我不确定是否能解决这个问题,但是由于安全定义与部署方案不匹配,因此有很多“可证明安全”方案的例子在实践中被打破。仅在过去的几年中,就出现了针对SSH和IPSec的(可证明的变体)攻击。

在广泛的实际使用中的事例背后没有什么理论依据:

我认为您的意思是在加密世界中,而不是在一般安全性世界中。DSS签名就是一个很好的例子,它没有安全性证明。


9

MMMwMwMwMwMMMM

有许多提供二进制混淆解决方案的商业公司,也有几种开源解决方案。确切的混淆方法当然是保密的。工业上普遍使用的混淆范例是启发式的,因此了解在这种情况下用于混淆二进制文件的算法通常可以确保在混淆方面具有一定优势。工业中的混淆被称为“通过混淆实现安全”。

对于混淆问题,有一些理论方法可以使工业的需求形式化,但要依靠基于计算难点性的严格更强的安全性概念(设想用单向函数等效性测试代替整数和字符串等效性测试)。尤其是,对可组合点模糊化的研究已经得到了发展,以试图解决工业界感兴趣的模糊化问题。不幸的是,Barak等人在2001年的论文“ 关于混淆程序的(不可能)可能性 ”中给出了基于防篡改硬件启发的,最广泛的混淆理论模型。(此后还给出了其他几种模型的结果)。

目前,程序混淆的理论处于不断变化的状态,需要一种新的(可能限制性较小的)模型。实际上,该理论的主要问题在于缺乏共识模型(因此缺乏正式的被告)。完全同态加密的最新出现可能提供了这样的基础(这纯粹是作者的推测)。

要澄清的是,混淆与您的第三个示例匹配:“在广泛的实际使用中,某些示例背后没有任何理论依据。” 如今,混淆处理已被行业和具有更邪恶目的的人员广泛使用。尽管进行了尝试,但行业中的混淆目前尚未基于任何严格的理论。


8

即使涉及诸如伪随机数生成器之类的基本图元,也存在很大差距。考虑例如伪随机函数。在实践中,人们使用AES之类的东西,它在多个维度上与理论候选者(Goldreich,Goldwasser,Micali,Naor,Reingold等)有所不同:首先,参数是完全不同的,例如AES的密钥长度可以等于输入长度。 ,这在理论上是闻所未闻的。也许更重要的是,AES(以及许多其他分组密码)遵循所谓的置换置换网络范式,这与理论构建的方式(例如上文所述)大不相同。

当然,最有趣的例子是根据实践经验为理论研究提供新途径的例子。

我认为上面就是这样一个例子,例如,见Eric Miles的这篇论文(从中基本上可以得出此答案)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.