中文 英语

密码的秘密世界

在这个秘密部门发生了什么改变,是一个专家所需的是什么?

受欢迎程度

在硬件和软件行业中创建安全环境的领域在某种程度上笼罩在神秘和误解之中。当然,有些类型的密码是相对简单和简单的。例如,有一种密码叫做凯撒密码,它是最多产、最简单的加密技术之一。

基本上,这简单地将两个字母排列在两个字母表中,并通过某个数量的位置将其中一个移位。数学上,这可以由以下代表:截图2015-11-08上午8.59.34 ;在送方面,和截图2015-11-08上午8.59.58 在接收方面。图1显示了一个简单的密码轮,以及换档的示例。所有人都需要正确地对齐轮子并替换字符。

图1
图1:基本加密轮。

最基本的配置只是移动一个字母。在这种情况下,一个字母中的A就是另一个字母中的B。这就把所有的东西向右或向左移动了一个字母,这取决于你是发送者还是接收者。多年来,这一直是高中生之间的主要加密方式。

另一个简单的方案称为atbash,可以追溯到原始的希伯来字母表。它正在反向转换字母表的字母。例如,变为z,b变为y等。

另一方面,有超级复杂的密码,一些所以秘密,除了发起者,没有人真正了解它们。但是,可以考虑“顶部”密码的单一候选人。在这种规模,它真的取决于应用程序,因为有几个元素可以组合以提供密码的不同功能。但通常,涉及AES,RSA或流和块的复杂密码可以非常强大和安全。然后,当然,有QKD,所有牢不可破的密码的爷爷。

在所有这一切的表面之下是非常复杂的,包括发生了什么以及谁在做这些事情。让我们深入探讨一下这个问题。

谁是密码专家?
“大多数人不应该尝试开发密码,”Microsemi SoC产品组的高级首席产品架构师Richard Newell说。“要想破译出正确的密码是非常困难的,只有专家才能做到。世界上也没有那么多的专家。”

Rambus的企业解决方案技术副总裁Steven Woo同意:“关键挑战之一是如何开发一个难以裂开难以破解计算能力的越来越难以裂开的密码。”这是密码开发中非常重要的度量标准。

开发密码有很多更多只是写一些代码来加密数据。“这里的危险是,当你第一次了解开发密码时,有一种倾向于认为这并不困难,”纽尔说。“那可以让你觉得你比你所知道的更多。”

在大多数情况下,最终结果是密码系统失败。开发者还需要考虑其他指标。

“只要有足够的时间和资源,任何密码都可以被破解,”吴宇森说。“作为密码开发者最重要的一个方面就是知道如何找到一个最容易破解的点,当它接近某个点时,黑客不值得花费时间和金钱来破解它们,于是他们就放弃了。理解密钥是如何构造的也很重要,这样你就能理解破译密码所花费的时间和精力。”

从设计角度来看,设计最佳密度艇的知识非常良好。要成为顶级密码设计师,必须首先成为密码分析的专家。密码分析是对分析加密系统的科学和方法的研究,了解他们的工作方式,并了解它们是如何被打破的。这需要了解如何分析加密算法,了解外围区域,例如侧信道攻击如何工作。它还需要能够发现算法实现中的弱点,而不仅仅是算法本身。

很难知道在密码上可能是什么类型的数学攻击,这是设计良好密码的先决条件。只需要很长时间和很多知识,只是开始了解从数学的角度来看发生的事情。增加了指标的实用性,并且需要大量的工作和理解成为一个顶级密码分析。

此外,必须是密码学和密码学方面的专家,密码学是一门全面的科学,密码学通常被视为使用密码保护攻击目标(数据)。

有什么新鲜事
今天加密中的热门话题的两个区域是线性和差分密码分析。这些是能够测量密码内的任何类型或数学缺陷,而不是通过对手利用。

吴宇森说:“传统的想法是,使用当前的加密方法,算法不需要保密。”“这是一把需要保密的钥匙。”

到目前为止,这可能是心态,但随着当今的巨大的处理能力,保持关键秘密可能还不够。“通过监控芯片的噪音,一个能够推断关于秘密密钥的东西,因为您知道该算法,”Woo说。

这是差异和线性密码分析工作的原因之一,以及为什么有新的势头来保护算法以及键。即使有人收购了某些相应的明文和密文,也使得它们非常难以破解的多轮密码的复杂性,使其非常困​​难。确定已使用的相应密钥仍然非常困难。

差分密码分析
这就是差异密码分析发挥作用的地方。假设,通过一些不寻常的环境,已经获取了大量相应的明文和密文块,其涉及特定的未知密钥。使用差分密码分析,分析师(或黑客)通常可以获得关于未知键的一些位的线索。可以大大缩短获得钥匙所需的时间。

图2.
图2:差分密码分析过程。来源:theamzingking.com.

例如,如果已经运行了两轮DES,并且现在已知输入和输出,那么确定使用的两个子键就变得相对容易,因为两个f函数的输出都已经实现了。这种方法相对简单。

该技术是我们的一个s盒。每个S盒都有四种可能的输入,可以产生已知的输出。在此示例中,每个子密钥长度为48位。但是,关键是本身,是56位长。现在它变成了解决问题。子密钥分为八组六位,并且它成为确定每组六位的四种可能性中的哪一个。

这适用于两轮德。如果圆数的数量增加到四个,则它至少增加了至少一个数量级的难度。但是,有一种特殊的是,无论运行多少轮,输出仍然取决于输入和键。假设S箱中的有限数量和没有缺陷,最终将存在一些成功的,其中一个或多个输出的一个或多个输出将具有与输入比特和键位的组合相关的一定程度的相关性。

在理想的情况下,这种关联相对于关键位应该是绝对的。这是因为在本例中只有一个关键问题需要解决。这并不意味着它每次都能奏效,甚至大多数时候都能奏效。还有很多对要测试,关于输入和输出位。

现在,随着越来越多的DES推断这一点。显然,在输入和输出变量的增加中存在非线性关系,因此复杂性也会增加非线性。

在这种情况下,差异密码分析可以采用不同的方法,即寻找子专题相关性。例如,相反,假设特定位在输入处为1 - 然后基于上述方法,它将在输出处为0或1 - 期望是改变该位将不会改变一点输出。

差分密码分析可以在输入和输出中开发比特变化的模式。该技术完全是关于简化。它需要复杂的明文或密文,并寻找行为的异常,如更简单的近似。基本原理是被分析的密码具有特征,如果存在常数X,则给定多对明文A,B,这样B = XOR X,如果某个语句是关于钥匙的真实,则(b,k)= e(a,k)xor y对于某些常数y将是真实的,概率略高于仅通过随机机会给出的概率。

简单地说,差异密码分析能够通过将域缩小到比暴力破解更有可能的可能性来删除一些细节。

线性密码分析
相反,线性密码分析方法不搜索块密码可以表现为更简单的密码的隔离点。由Mitsubishi的Mitsuru Matsui开发[参见参考文献1],此方法解决了完整的密码。其方法围绕尝试通过尝试开发完整块密码的更简单近似来简化块密码而不是其部分。

图3-Linear Crypt来源脑袋
图3:线性密码分析过程。来源:theamzingking.com.

这的原理可以比作概括了许多单维扫描,通过计算机辅助层析成像中的物体产生二维切片。对于许多庞大的纯Phintext-cipherText对,这是作品。第一个进程是找到将从简化的密码生成该对的键。这产生了可能具有钥匙的相应位的值的键位。它是如何这样的。

与DC一样,这假定了一组随机明文和相应的密文的一些了解。基本概念是用线性表达式近似,使用独占或(XOR),符号化的一部分密码的操作屏幕截图2015-11-08在9.47.51 AM 。式为:

公式

其中xi表示输入的I ^ th位;x = [x1,x2,...]和y ^ j表示输出y的j ^ thit;= [Y1,Y2,...]。基本上,该等式表示U输入比特和V输出比特的XOR“SUM”。在线性密码分析中,该公式可用于找到可能具有更高或低于标准的可能性概率的变体。

为什么这项工作相当有趣。如果刚刚将U + V位的值随机选择值并将它们粘在等式中,则表达式持有的概率将是精确的1/2。这将无限地继续。然而,在线性密码分析中,从1/2的概率偏差是要保持的表达是可以利用的。因此,随着偏差进一步远离1/2的概率,即线性密码分析的应用结果越常识。

这里有一个例子。假设给定方程产生1的概率略高于1/2。然后,对于一个给定的密钥XOR-ing,运行大量的明文和相应的密文,将产生一个1,比0稍微多一点的结果。这就是前面一段讨论过的偏差。一旦为每对明文/密文获得足够数量的明文/密文对,公式就是明文、密文和密钥的每几位之间的异或。因为对每一对密钥来说,明文和密文是已知的,所以公式将产生几个密钥位的异或值。为什么这是有效的,因为这个方程是“正确的”,只是它是有效的一个微弱的百分数,所以当配对数量足够多的时候,一个模式开始作为大多数出现,这可以被用于一个很有可能是关键的一点。如果这个过程重复足够多次,理论上,所有的关键位都应该能够被确定。

底线
这两种方法都是有效的密码学方法。但只要略去设计和逆向工程各种各样的密码所需要的皮毛,就会发现要想在这个领域处于领先地位是多么困难。

要成为顶级密码分析师,一个人必须同时是设计师和攻击者。一个人还必须了解高等和复杂的数学,如微分和线性分析和其他,能够建立和拆除密码。此外,必须了解目前使用的无数密码,如RSA、AES、SHA、ECC和它们所有的细微差别。

世界上大多数人对密码分析的复杂性一无所知。有些人认为他们知道,这就是为什么今天有那么多失败的密码学。但最终,那些需要密码学的人将转向真正的专家——尤其是当IoE世界真正开始发展的时候。

词汇表
AES - 高级加密标准
DES - 数据加密标准
DC - 差分密码分析
椭圆曲线密码算法
线性密码分析
QKD - 量子密钥分布
RSA-它的创造者Ron Rivest, Adi Shamir和Leonard Adleman姓氏的首字母
安全哈希算法
XOR - 具有两个或多个输入的数字逻辑门,以及执行独占分离的输出。XOR门的输出只有在其输入之一是真实的,而不是输入

参考文献1:M. Matsui,“DES密码的线性密码分析方法”,《密码学进展》,EUROCRYPT ' 93 (Lecture Notes in Computer Science no. 1 .)765), Springer-Verlag,第386-397页,1994。



1评论

programify 说:

旧的一次性垫密码一直是我最喜欢的。Once you solve the problem of key distribution by entertaining the notion of using random number-sequences (BTW there’s no such thing as a random number), it starts to be a very practical way to communicate with a perfect cipher, unbreakable by interception and analysis.

发表评论


(注意:此名称将公开显示)