1第3章密码学的复杂性理论基础2密码技术和算法复杂性计算复杂性:研究密码分析对于计算量的需求和密码分析的困难程度,从而得出这些密码技术和算法在现有可行的条件下是否具有足够的安全性:算法复杂性;问题复杂性。密码协议、方案和体制的安全性证明:零知识证明理论。3问题(problem)即需要回答的一般性提问:它通常含有若干个参数。对于一个问题进行描述应该包括两方面的内容:必须对问题的所有给定参数给出一般性描述;必须描述该问题的答案(或解)应该满足的性质。当问题的所有参数都有了确定的取值时,我们称得到了该问题的一个实例(instance)。4算法(algorithm)即求解某个问题的一系列具体步骤(通常被理解为求解所需的通用计算程序)。算法总是针对具体问题而言的,求解一个问题的算法通常不止一个。当某个算法能够回答一个问题的任何实例时,我们称该算法能够回答这个问题。当一个问题至少有一个能够回答该问题的算法时,我们称该问题可解(resolvable),否则称该问题不可解(unresolvable)。5算法复杂性即度量该算法所需的计算能力,包括:时间复杂性T(timecomplexity);空间复杂性S(spacecomplexity);随机位数目;信道带宽;数据总量;……6算法复杂性计算复杂性的表示符号为“O”(称为“大O”),表示计算复杂性的数量级好处:使算法复杂性度量与处理器的运行速度和指令运行时间无关;明确地揭示了输入的数据长度对算法复杂性的影响。OOO7算法复杂性算法的分类及其运行时间运算次数610n)1(O)(nO610)(2nO1210)(3nO1810)2(nO030,30110宇宙年龄的30100610类别复杂性时间多项式常数11微妙线性1秒二次11.6天三次32,000年指数8问题复杂性研究问题的内在复杂性,即在图灵机上解决最难的问题实例所需的最小时间和空间条件。9图灵机实际可用的计算模型。确定性图灵机。非确定性图灵机:能够进行猜测。求解一个问题分两个阶段:猜测阶段和验证阶段。10问题分类易处理的(tractable):确定性图灵机上能够在多项式时间内得到处理的问题。称易处理问题的全体为“多项式时间可解类”,记为P。非确定性图灵机上能够在多项式时间内得到处理的问题被称为“非确定性多项式时间可解问题”,简称NP问题。NP问题的全体被称为“非确定性多项式时间可解类”,记为NP。11NP问题意义:能够通过非确定性的多项式时间算法对许多对称密钥算法和所有公钥算法进行攻击。NP完全问题:指NP中的任何一个问题都可以通过多项式时间转化为该问题。NP完全问题的全体被记为NPC。NPHard问题?12零知识证明证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。13零知识“洞穴”14零知识“洞穴”(1)V站在A处;(2)P走进洞穴,到达C处或D处;(3)当P消失在洞穴中时,V走到B处;(4)V呼叫P,要求P:(a)从左通道出来;或者(b)从右通道出来;(5)P答应V的呼叫,并在有必要的情况下用咒语打开C与D之间的秘密之门;(6)重复步骤(1)~(5)次。15基本的零知识协议过程假设P知道一部分信息,并且该信息是一个难题的解法:(1)P用自己的信息和一个随机数将这个难题转变为与之同构的新难题,然后用自己的信息和这个随机数这个新难题;(2)P利用位承诺方案提交对于这个新难题的解法;(3)P向V透漏这个新难题,V无法通过新难题得到关于原难题或其解法的任何信息;(4)V要求P:(a)证明新、旧难题同构;或者(b)公布P在(2)中提交解法并证明该解法的确为新难题的解法;(5)P答应V的要求;(6)重复步骤(1)~(5)次。16交互与非交互交互零知识证明:证明者和验证者之间必须进行交互。由Goldwasser等人在20世纪80年代初提出GMR模型;FFS模型。非交互零知识证明:用一个短随机串代替交互过程并实现了零知识证明。20世纪80年代末,Blum等人进一步提出成员(或定理)的非交互零知识证明系统;知识(或身份)的非交互零知识证明系统。17交互图灵机交互图灵机指的是一个具有一条只读输入带、一条工作带、一条随机带、一条只读通信带和一条只写通信带的图灵机。其中,随机带上包含一条无限长的随机比特序列,并且只能从左向右读入。“一个交互图灵机投一个硬币”指该图灵机从自己的随机带上读取1bit。18交互协议即满足以下两个条件的有序图灵机(A,B),其中,A具有无限的计算能力,B具有多项式时间的计算能力:(a)A与B共享同一输入带;(b)B的只写通信带是A的只读通信带,同时,B的只读通信带是A的只写通信带。19GMR模型假设证明者具有无限的计算能力,并且验证者具有多项式时间的计算能力。对于输入I和语言L,判断I∈L是否成立。由于这一过程向验证者泄露了1b信息(即I∈L),所以基于GMR模型的零知识证明并非真正的零知识证明。这种交互零知识证明通常被称为“成员(或定理)的零知识证明(zeroknowledgeproofsofmembershiportheorem)。20FFS模型假设证明者与验证者具有多项式时间的计算能力。证明者向验证者证明的不是I∈L成立与否,而是证明自己知道输入I关于语言L的状况。由于在这个证明过程中,验证者相信这个证明,但是又无法得知任何信息(包括I∈L是否成立)。基于FFS模型的零知识证明是真正的零知识证明。这种交互零知识证明通常被称为“知识(或身份)的零知识证明(zeroknowledgeproofsofknowledgeoridentity)”。21成员(或定理)的非交互零知识证明系统两个阶段预处理阶段:建立证明者和验证者所拥有的某些共同信息及其各自拥有的秘密信息,允许证明者和验证者进行交互。定理证明阶段:证明者选择并向验证者证明自己所知道的定理,这个阶段是非交互的。