1.介绍GydF4y2Ba

在本教程中,我们将检查加密算法中的计算复杂性问题。GydF4y2Ba

讨论不会集中在任何具体的密码算法上,但我们将揭示它们的基本一般规律。GydF4y2Ba

2.对称和公钥密码体制GydF4y2Ba

假设两个人,GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba,想要以一种秘密的形式交流。GydF4y2Ba一种GydF4y2Ba想要传达一个信息GydF4y2BamGydF4y2Ba所以,只有GydF4y2BaB.GydF4y2Ba可以理解其内容。去做这个,GydF4y2Ba它使用称为密码系统或密码的协议,该协议产生密码或密文GydF4y2BaCGydF4y2Ba原始信息的加密功能GydF4y2Bae (\ cdot)GydF4y2Ba:GydF4y2Ba

\ [c = e(m)\]GydF4y2Ba

B.GydF4y2Ba使用解密功能GydF4y2Bad (\ cdot)GydF4y2Ba,基本上是逆功能GydF4y2Bae (\ cdot)GydF4y2Ba,获取原始信息:GydF4y2Ba

\ [d (C) = d (e (M)) = M \]GydF4y2Ba

加密和解密可以在经典通信机制中被视为编码和解码子系统的组件:GydF4y2Ba

假设有第三人称GydF4y2BaZ.GydF4y2Ba能够拦截消息GydF4y2Ba一种GydF4y2Ba发送给GydF4y2BaB.GydF4y2Ba。最不利的条件迫使我们考虑这样一个事实GydF4y2BaZ.GydF4y2Ba知道使用的协议GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba。在此刻,GydF4y2BaZ.GydF4y2Ba可以简单地应用来解密邮件GydF4y2BaD(c)GydF4y2Ba。GydF4y2Ba

因此,我们需要一个额外的元素来确保通信的安全性。GydF4y2Ba此元素是秘密密钥,或简单地是一个密钥GydF4y2Ba,已知GydF4y2BaB.GydF4y2Ba没有它GydF4y2BaZ.GydF4y2Ba尽管知道使用的通信协议,仍无法解密邮件。GydF4y2Ba

但是GydF4y2Ba一种GydF4y2Ba要知道GydF4y2BaB.GydF4y2Ba一件秘密的关键?直到二十世纪末,大多数加密人员都会在肯定的情况下回答这个问题。GydF4y2Ba在这种情况下,我们讨论对称密钥系统,金宝搏官网188beGydF4y2Ba他们的安全依赖于钥匙的保密GydF4y2Ba。GydF4y2Ba

1976年,迪菲和赫尔曼发表了一篇文章GydF4y2Ba加密中的新方向GydF4y2Ba,他们提出了公开密钥密码系统。在其中,GydF4y2Ba一种GydF4y2Ba使用公共域密钥或公钥加密消息GydF4y2BaB.GydF4y2Ba可以用他的私钥解密,只知道他。任何人都可以发送加密的消息GydF4y2BaB.GydF4y2Ba, 但只有GydF4y2BaB.GydF4y2Ba可以知道它的内容。这消除了密钥安全问题,这是对称密码系统的弱点。GydF4y2Ba

3.古典与现代密码学GydF4y2Ba

在场景中在哪里GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba怀疑潜在的攻击GydF4y2BaZ.GydF4y2Ba,我们可以问自己两个基本问题:GydF4y2Ba

  1. 什么可以GydF4y2BaZ.GydF4y2Ba与它得到的消息加密对有关吗?GydF4y2Ba
  2. 从安全的角度来看,哪个结果是令人满意的GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba?GydF4y2Ba

根据我们如何回答这些问题,我们有两种不同的方法:古典与现代加密。GydF4y2Ba

为了加深这个问题,我们推荐塔尔博特和威尔士的优秀著作GydF4y2Ba复杂性和加密,介绍GydF4y2Ba“。GydF4y2Ba

3.1。古典密码学GydF4y2Ba

基于信息理论并大大阐述了香农,它被称为信息理论方法。基本假设如下:GydF4y2Ba

密码不能泄露消息的任何信息。金宝搏官网188beGydF4y2Ba

这种假设导致了完全保密的概念GydF4y2Ba我们可以形式化如下:GydF4y2Ba

\ [\ forall \ left [m \在m; c \ in c \ ove] \ lightarrow \ pr(m = m,c = c)= \ pr(m = m)\]GydF4y2Ba

这个公式简单地说,给定了一个具体信息GydF4y2BamGydF4y2Ba在一组可能的消息之间GydF4y2BamGydF4y2Ba并给出一个混凝土密码GydF4y2BaCGydF4y2Ba一组可能的密码之间GydF4y2BaCGydF4y2Ba的概率GydF4y2BamGydF4y2Ba独立于GydF4y2BaCGydF4y2Ba。即使GydF4y2BaZ.GydF4y2Ba可以访问消息的密码,他无法了解其内容的任何内容。金宝搏官网188beGydF4y2Ba

这种方法的一个问题是,一个完美的保密系统需要的密钥长度至少与任何可以用它封装的消息的长度一样大GydF4y2Ba,使得它不适合现代通信系统,如互联网。GydF4y2Ba

3.2。现代加密GydF4y2Ba

现代密码学采用了完全不同的方法。基本假设是:GydF4y2Ba

如果加密图显示有关消息的信息并不重要。金宝搏官网188be重要的是GydF4y2BaZ.GydF4y2Ba可以有效地提取此信息。GydF4y2Ba

如果我们假设GydF4y2BaZ.GydF4y2Ba拥有无限的计算能力,那么前面的命题就不成立了。因此,现代密码学认为:GydF4y2Ba

Z.GydF4y2Ba有限的计算资源。GydF4y2Ba

但如果这是真的GydF4y2BaZ.GydF4y2Ba,也适用于GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba,这就引出了另一个假设:GydF4y2Ba

有一种数学函数很容易计算,但很难求反,叫做单向函数。GydF4y2Ba

在这个场景中,GydF4y2Ba一种GydF4y2Ba和GydF4y2BaB.GydF4y2Ba可以加密包含少量计算资源的消息,但是GydF4y2BaZ.GydF4y2Ba只有当它具有高计算能力时,才能从邮件中获取信息。最后的假设阐明了与计算程序的复杂性有关的问题的重要性,从而实现了他们实施的缓和或难度。GydF4y2Ba

现代加密是基本上今天用于加密交易和通信的密码学。GydF4y2Ba但是,任何允许指数增加计算能力的系统,例如量子计算机,可能会濒临灭绝GydF4y2Ba。GydF4y2Ba

4.复杂性理论的框架GydF4y2Ba

任何计算系统,包括密码系统,只能使用可计算函数。重要的是计算的难易程度。GydF4y2Ba

例如,假设特定问题,例如,对一组数字进行排序。我们打电话给这个问题GydF4y2Ba\ PI.GydF4y2Ba。复杂性理论试图回答这样的问题:GydF4y2Ba

  1. \ PI.GydF4y2Ba解决问题本身是容易还是困难?GydF4y2Ba
  2. 给予GydF4y2Ba\ pi_ {1}GydF4y2Ba和GydF4y2Ba\ pi_ {2}GydF4y2Ba,这更易于解决?GydF4y2Ba

要答案,我们将算法分类为不同的复杂性类别,根据以下想法,将群组计算过程组分组:GydF4y2Ba

  1. 我们在基本操作的数量方面测量算法的执行时间。GydF4y2Ba
  2. 算法的运行时间取决于输入的大小。GydF4y2Ba

这GydF4y2BaO.GydF4y2Ba符号GydF4y2Ba建立一种表达这些想法的象征。一种复杂性算法GydF4y2BaO (n ^ {2})GydF4y2Ba例如,必须执行多个基本操作等于输入的大小的平方。GydF4y2Ba

复杂性类GydF4y2Ba

这GydF4y2BaO.GydF4y2Ba- 不允许我们在上面规定的术语中定义复杂性类。进一步的详细信息可以在我们的教程中找到GydF4y2BaP,NP,NP - 完全和计算机科学中的NP难题GydF4y2Ba。GydF4y2Ba

下图说明了下面讨论的复杂性类的结构:GydF4y2Ba

5.1。P课GydF4y2Ba

它是在多项式时间中可解决的算法GydF4y2Ba。给予常数GydF4y2BaCGydF4y2Ba,它包括及时可执行的算法GydF4y2BaO (n ^ {c})GydF4y2Ba。我们认为这些算法可行和有效,从理论上可以通过将它们减少到决策问题(具有是/否答案的算法)来学习它们。GydF4y2Ba

多项式问题非常大GydF4y2BaCGydF4y2Ba在任何情况下都是棘手的,但正式他们属于课堂。我们认为在多项式时间中不能解决的问题,通常是不可行的。GydF4y2Ba

众所周知,逆函数GydF4y2Bad (\ cdot)GydF4y2Ba在许多密码算法中,它依赖于对非常大的质数进行因式分解。的整数的因式分解GydF4y2BaN.GydF4y2Ba通过试除的比特以时间的形式出现GydF4y2BaO(2 ^ {n / 2})GydF4y2Ba,一个指数时间,这使得程序甚至不可行GydF4y2BaN.GydF4y2Ba大概有几百人。GydF4y2Ba

当质数检验在P中时,最有效的质数分解算法有时间GydF4y2Bao \ left(2 ^ {n ^ {1/3}} \右)GydF4y2Ba,远非多项式时间。我们认为,分解问题不是在p中,但这是一个猜想,因此没有证据。诸如RSA和Rabin Cryptosystems的算法基于该猜想。GydF4y2Ba

5.2。NP类GydF4y2Ba

这是多项式时间可核实的问题GydF4y2Ba。在NP中,分解问题显然是在指数时间可溶的:给定一组因素和素数,可以验证多项式时间,无论是通过乘以因素是否乘以因素。GydF4y2Ba

另一个著名的例子是旅行推销员问题。推销员必须访问一个城市组一次。问题是确定通向最短路径的城市序列。GydF4y2Ba

如果我们以天真的方式接近问题,试图构建所有可能的路径,我们立即意识到即使对于适度的数字,问题也变得棘手。一些教学的例子表明,如果我们考虑地球的所有原子作为计算设备,每个都具有比最强大的计算机高的速度数量,即使是宇宙年龄的计算时间几百个城市。GydF4y2Ba

5.3。还原GydF4y2Ba

一种GydF4y2Ba\ pi_ {1}GydF4y2Ba问题减少到aGydF4y2Ba\ pi_ {2}GydF4y2Ba解决问题GydF4y2Ba\ pi_ {2}GydF4y2Ba让我们解决GydF4y2Ba\ pi_ {1}GydF4y2Ba。GydF4y2Ba

直观地,还原性在问题之间提供了对等价的想法GydF4y2Ba从复杂性的角度来看。GydF4y2Ba

5.4。类NPC和np完整性GydF4y2Ba

一种GydF4y2Ba\ PI.GydF4y2Ba据说问题是np-complete(NPC)GydF4y2Ba\ pi \GydF4y2BaNP和每个NP问题减少到GydF4y2Ba\ PI.GydF4y2Ba。GydF4y2Ba这些是NP中最困难的问题,最有可能是棘手的问题GydF4y2Ba。GydF4y2Ba

虽然原则上,原则上,对于建筑加密系统而言是可取的,但这对此目的不是一个充分的条件GydF4y2Ba。GydF4y2Ba

重要的结果是,如果我们找到一个多项式时间求解算法GydF4y2Ba\ PI.GydF4y2BaNPC中的问题,然后我们可以将所有NP问题减少到P并在多项式时间内解决它们。结果是p = np,这是不可能的。GydF4y2Ba

平等p = np将使许多密码算法无效,这些算法位于不可计算的逆功能上。GydF4y2Ba

5.5。BPP类GydF4y2Ba

这类BPP(有界误差概率多项式时间)问题包括用不严格确定时间,但在计算过程中利用随机选择的算法求解的问题。我们将不进行详细讨论,但该主题与组成密码系统的一些步骤有关,例如密钥的选择。GydF4y2Ba

该理论告诉我们NPGydF4y2Ba\ nsubseteqGydF4y2BaBPP并且是支持假设P.GydF4y2Ba\ neq.GydF4y2BaNP。GydF4y2Ba

基于复杂性的密码学GydF4y2Ba

从所有先前的考虑,我们都可以瞥见复杂性理论和密码之间存在的并行性。第一次尝试识别在多项式时间中不可溶解的问题,而第二次尝试在多项式时间中构建不可破坏的协议GydF4y2Ba。GydF4y2Ba

当前基于复杂性的密码学根据一些指导原则解决了这个问题:GydF4y2Ba

  • 用一种简化的方法,试图把大量可能的问题和它们的计算方面与一些关于它们复杂性的假设联系起来金宝搏官网188beGydF4y2Ba
  • 确定我们可以构建加密协议的计算问题的基本属性GydF4y2Ba

因此,在加密系统中,加密功能GydF4y2Bae (\ cdot)GydF4y2Ba执行多项式时间,而解密函数GydF4y2Bad (\ cdot)GydF4y2Ba只在多项式时间内是可验证的。所有可能性的组合爆炸使人们不可能通过反复试验来破译这条信息。GydF4y2Ba

但是,正如我们所提到的那样,pGydF4y2Ba\ neq.GydF4y2BaNP假设不足以加密协议。GydF4y2Ba原因在于这种不平等是相对于最坏情况而言的GydF4y2Ba。GydF4y2Ba

在更正式的条款中,这意味着如果问题GydF4y2Ba\ PI.GydF4y2Ba没有在p,那么对于任何多项式算法,有没有解决的输入GydF4y2Ba\ PI.GydF4y2Ba。但这些情况可能是少数甚至很难找到。我们需要系统的方法来查找这些实例的每个计算难以解决的问题。GydF4y2Ba

7.单向函数GydF4y2Ba

以单向功能的概念可以解决以前的反对意见。反过来,它基于忽略功能的概念。GydF4y2Ba

一种GydF4y2Ba\ epsilon:\ mathcal {\ mathbb {n}} \ lightarrow [0,1]GydF4y2Ba如果每一个功能都可以忽略不计GydF4y2Ba\αGydF4y2Ba持续有一个GydF4y2Ba\ beta.GydF4y2Ba这样:GydF4y2Ba

\ [\ forall n \ ge \ beta \ lightarrow \ epsilon(n)\ leq \ frac {1} {n ^ {\ alpha}} \]GydF4y2Ba

\εGydF4y2Ba比任何多项式的逆更快地减少。GydF4y2Ba

单向函数满足以下条件:GydF4y2Ba

  • 在多项式时间中可计算GydF4y2Ba
  • 在多项式时间内不可逆转。正式,给定随机输入GydF4y2BaXGydF4y2Ba长度GydF4y2BaN.GydF4y2Ba和随机选择的概率多项式算法GydF4y2Ba\ mathcal {a}GydF4y2Ba,存在可忽略的功能GydF4y2Ba\εGydF4y2Ba这样GydF4y2Ba

\[左\公关\ [\ mathcal{一}(f (x) = x \] \ leq \ε(n) \]GydF4y2Ba

输入长度GydF4y2BaN.GydF4y2Ba相当于加密协议中的关键长度。GydF4y2Ba

有可能表明如果是NPGydF4y2Ba\ subseteqGydF4y2BaBPP,那么就没有单向函数。GydF4y2Ba

7.1。单向函数的例子GydF4y2Ba

一些知名的例子是:GydF4y2Ba

  • 乘法,GydF4y2Baf(p,q)= pqGydF4y2Ba,GydF4y2BaP.GydF4y2Ba和GydF4y2Ba问:GydF4y2Ba相等长度的质数。的反演GydF4y2BaFGydF4y2Ba分解问题,正如我们已经看到的,被认为是不可行的吗GydF4y2Ba
  • 子集之和GydF4y2Ba那GydF4y2Baf(x_ {1},x_ {2},\ ldots,x_ {n},s)= \左(x_ {1},x_ {2},\ ldots,x_ {n},\ sum_ {i \s} x_ {i} \右)GydF4y2Ba, 存在GydF4y2Bax_ {i}GydF4y2Ba一个整数GydF4y2BaN.GydF4y2Ba比特和GydF4y2Bas \ subseteq [n]GydF4y2Ba。反转是子集和问题,例如在Knapsack加密方案中。这是一个NP问题,但没有确定的GydF4y2BaFGydF4y2Ba是我们认为的一种方式吗GydF4y2Ba
  • 离散日志集合GydF4y2Ba那GydF4y2Baf_ {g,g}(x)= g ^ {x}GydF4y2Ba,在那里GydF4y2BaGGydF4y2Ba是一个循环组,GydF4y2BaGGydF4y2Ba是产生GydF4y2BaGGydF4y2Ba和GydF4y2Bax \ \ left \ {1,\ ldots,|G |-1 \右\}GydF4y2Ba。反转(离散日志问题)是不可行的GydF4y2Ba
  • 这GydF4y2BaRSA系列GydF4y2Ba那GydF4y2Baf_ {n,e}(x)= x ^ {e} \ mod nGydF4y2Ba,在那里GydF4y2BaN.GydF4y2Ba是同等长度的两个素数的产物GydF4y2Ba
  • 拉比的收藏GydF4y2Ba那GydF4y2Baf_ {n}(x)= x ^ {2} \ mod nGydF4y2Ba。用于Rabin密码系统和Rabin数字签名方案。反演至少和因式分解一样困难GydF4y2BaN.GydF4y2Ba
  • 哈希函数和块密码GydF4y2Ba

可以说明大多数加密操作可以用单向函数执行。GydF4y2Ba

8. Trapdoor功能GydF4y2Ba

对于许多加密系统(如公开密钥加密),单向函数是不够的,因为需要额外的属性,如trapdoor属性。GydF4y2Ba在这种情况下,通过提供此Trapdoor信息,可以容易地逆转该功能GydF4y2Ba。GydF4y2Ba

一系列功能GydF4y2Baf = \ left \ {f_ {i}:d_ {i} \ lightarrow r_ {i} \ rectle \}GydF4y2Ba如果满足以下属性,则是Trapdoor功能的集合:GydF4y2Ba

  • 多项式时间中存在概率算法,使得给定某个输入GydF4y2BaN.GydF4y2Ba,它生成了这对GydF4y2Ba(I,T_ {i})GydF4y2Ba,在那里GydF4y2Ba一世GydF4y2Ba是家族的一个函数的索引,和GydF4y2Bat_ {i}GydF4y2Ba是trapdoor信息GydF4y2Ba
  • 给予输入GydF4y2Ba(i,x \在d_ {i}中)GydF4y2Ba可以计算GydF4y2Ba使固定)GydF4y2Ba在时间上GydF4y2Ba
  • 给定一个输入GydF4y2Ba(i,f_ {i}(x))GydF4y2Ba,没有产生的概率多项式算法GydF4y2BaXGydF4y2Ba具有非资格的概率GydF4y2Ba
  • 给予GydF4y2Ba(t_ {i},f_ {i}(x))GydF4y2Ba可以计算GydF4y2BaXGydF4y2Ba在P.GydF4y2Ba

RSA和Rabin Collections有Trapdoor属性:在给出模量的分解时,它们可以倒置多项式时间GydF4y2BaN.GydF4y2Ba。GydF4y2Ba

在这种情况下,一个非凡的定理建立:GydF4y2Ba

如果存在Trapdoor功能,则存在公钥加密方案。GydF4y2Ba

该结果将Trapdoor函数转换为公钥密码学的自然工具。GydF4y2Ba

9.结论GydF4y2Ba

我们从入门角度处理了复杂性和加密之间的关系。两条学科之间的联系点是理解特定技术或协议选择背后的原因的基础。GydF4y2Ba

在这次一般讨论之后,我们建议的自然路径是研究个别算法。邀请读者加深了这个主题。GydF4y2Ba

来宾GydF4y2Ba
0.GydF4y2Ba注释GydF4y2Ba
内联反馈GydF4y2Ba
查看所有评论GydF4y2Ba