基于游戏序列的密码协议安全性证明方法及装置的制作方法

文档序号:7742710阅读:301来源:国知局
专利名称:基于游戏序列的密码协议安全性证明方法及装置的制作方法
技术领域
本申请涉及信息安全领域,特别是涉及一种基于游戏序列的密码协议安全性证明方法及装置。
背景技术
密码协议是构建安全信息系统的一个基本要素。密码协议的设计与安全性分析已成为密码学与信息安全领域一个极为重要的研究方向。目前协议安全分析主要依赖两种方法形式化分析和可证安全分析。形式化分析容易借助程序自动实现,但其将密码算法假设为绝对安全的“黑盒”,证明结果具有很大局限性和不可靠性。而可证明安全分析提供了通过严格证明确保密码协议安全性的有效途径,已成为有说服力、广泛接受的密码协议安全性分析方法;可证安全密码算法基于可计算性和计算复杂度理论,建立密码协议攻击算法与某个数学难题求解算法的复杂度之间的联系,以数学难题的难解性来论证密码协议的安全性,得到的证明结果更可靠,更具有说服力。2002年,Abadi和Rogaway等学者说明了在计算复杂度理论框架下Dolev-Yao模型的合理性,这使得可以使用基于Dolev-Yao模型的形式化分析工具来分析密码协议基于计算复杂度理论的可证明安全性,但是上述结论有很大的局限性,比如为了使用形式化分析工具,必须假设协议所使用的密码原语具有很强的安全性。2004年,Siop论述了如何使用“游戏序列”来组织安全性证明过程。该方法的基本思想是以攻击者和挑战者之间进行的攻击游戏来形式化刻画对密码协议的攻击过程, 如果证明攻击者达到其攻击目标的概率是可忽略的,则协议是安全的;安全性证明从实际攻击游戏开始,对游戏进行一系列小改动来构造一个游戏序列,两个相邻游戏或者等价,或者非常接近(接近程度通过概率刻画),攻击者达到攻击目标的概率可以由最后一个游戏得到。此后,基于构造游戏序列(Game based)的密码协议安全性自动化证明成为学术研究的热点之一。这一方向目前出现了两个较为成功的证明工具。它们和本发明所采用的技术方法有部分共同之处,但都存在某些重大缺陷。CryptoVerif是Bruno Blanchet与2007年设计实现的一个密码协议安全性自动化证明工具。和本发明一样,这个工具也通过构造游戏序列来进行安全性证明。首先构造一个用进程演算描述的初始游戏,刻画出密码协议的安全属性,随后通过一组进程转换,构造出游戏序列,实现安全性证明。这一工具与本发明的主要不同在于证明路径选择的方式。 CryptoVerif采用一种启发式路径选择机制,当一个转换策略失败时,程序会自动建议一个替代的证明策略。这一方法的缺陷在于建议机制不够完善和灵活,导致自动化证明的失败率高,很多时候需要人工进行辅助选择,因此实际上只能作为已知证明的一种自动化验证方法。CertiCrypt是2008年Gilles Barthe等人设计的一个基于游戏序列的协议安全性自动化证明工具。它的核心模块是Coq定理证明器。这一工具的设计思想是构造一个使用计算性语义的逻辑来描述初始游戏,并使其符合Coq定理证明器的输入要求,从而利用 Coq对初始游戏进行逻辑推演,生成游戏序列实现证明。这一方法的最大缺点在对初始游戏进行修改,使其符合Coq输入要求这一过程极为复杂。但从当前的研究来看,协议安全性的证明仍然无法摆脱人工证明,其证明过程严重依赖人工完成,导致证明过程复杂易错,难以检验。因此,如何利用计算机技术实现密码协议可证安全性的自动化分析和证明成为当前一个重要的理论和技术问题。

发明内容
为解决上述技术问题,本申请实施例提供一种基于游戏序列的密码协议安全性证明方法及装置,该方法能够对密码协议进行完全自动化的安全性证明,并且证明过程和结论具备计算完备性。技术方案如下一种基于游戏序列的密码协议安全性自动化证明方法,包括步骤步骤SlOl 解析经过语言描述的密码协议,生成初始的数据结构,并将所述初始的数据结构命名为初始游戏;步骤S102 对被命名为初始游戏的数据结构进行策略转化,若转化不成功,执行步骤S103 ;否则,执行步骤S104 ;步骤S103 将被转化的数据结构删除,选择新的数据结构命名为初始游戏,返回步骤S102 ;若由初始的数据结构转化生成的数据结构均被删除,则执行步骤S106 ;步骤S104 判断经过转化生成的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件;若在预设范围内且满足预设条件,执行步骤 S105,否则,将转化生成的数据结构命名为初始游戏,返回步骤S102 ;步骤S105 将与所述初始的数据结构之间的差异概率在预设范围内且满足预设条件的经过转化生成的数据结构与所述初始的数据结构所在的游戏序列定义为证明协议安全的证明序列;步骤S106 证明过程结束。上述的方法,优选的,所述游戏序列以状态树的形式呈现;其中状态树的根节点为初始的数据结构;经过策略转化生成的新的数据结构为其父节点的子节点。上述的方法,优选的,所述方法的证明过程采用深度优先的动态搜索算法。上述的方法,优选的,所述语言描述具体为密码协议采用基于Pi演算的进程语言进行描述;包含项的定义、输入进程和输出进程;其中项表示协议中处理和传递的信息;输入进程和输出进程共同描述协议的运行以及和攻击者的交互。上述的方法,优选的,所述密码协议的解析过程为对密码协议进行词法分析;对经过词法分析的密码协议进行语法分析。上述的方法,优选的,所述策略转化包括基于协议中密码原语性质的观察等价转化和基于进程约化的语法转化。
上述的方法,优选的,所述观察等价转化的过程为定义观察等价式,提出所述观察等价式两端的关键项和关键进程,建立关键组件之间的对应转化关系;在数据结构中查找等价式左端的关键组件;将等价式左端的关键组件用与之对应的等价式右端的组件进行替换,从而生成一个新的数据结构。上述的方法,优选的,所述语法转化的过程为收集数据结构中的信息;根据收集到的信息对数据结构中的进程进行简化。上述的方法,优选的,在执行动态搜索过程前选定状态树的当前结点,并设定前趁栈,对从根节点开始当前节点的所有前趁节点进行存储。上述的方法,优选的,所述动态搜索过程具体为从所述前趁栈顶部取出当前节点 S,对所述当前节点S进行策略转化;将转化成功的新节点S、作为所述当前节点S的子节点,并压入所述前趁栈;在所述新节点S、压入前趁栈后,判断所述新节点S、与所述当前节点S的差异概率是否在预设范围内,若在,说明协议安全,选择当前节点S与所述新节点S、所在的路径为证明路径;若不在,对所述新节点S、进行与所述当前节点S相同的策略转化;若所述当前节点S的所有子节点经过策略转化后,均不能成功转化新节点,则删除当前节点S,所述当前节点S的父节点按顺序选择当前节点S的兄弟节点,对当前节点S 的兄弟节点做与当前节点S相同的操作;若删除节点后,当前节点的父节点是所述状态树的根节点,则搜索结束。上述的方法,优选的,若所述当前节点S需要删除且所述当前节点S是其父节点的最右子节点,则删除所述当前节点S及其父节点,直至删除后的节点不是其父节点的最右子节点。上述的方法,优选的,所述前趁栈顶部第一次取出的当前结点S为状态树的根节
点ο一种基于游戏序列的密码协议安全性证明装置,包括初始的数据结构生成单元用于对经过语言描述的密码协议进行解析,生成初始的数据结构;初始游戏命名单元用于将数据结构命名为初始游戏;策略转化单元用于对被所述初始游戏命名单元命名为初始游戏的数据结构进行策略转化,生成新的数据结构;判断单元对所述策略转化单元生成的新的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件进行判断,若不在预设范围内且不满足预设条件,将所述新的数据结构返回至初始游戏命名单元,指示所述初始游戏命名单元用返回的新的数据结构替换被命名为初始游戏的数据结构,将返回的新的数据结构命名为初始游戏;目标确定单元用于对判断单元中判定的与初始的数据结构之间的差异概率在预
6设范围内且满足预设条件的新的数据结构与初始的数据结构所在的游戏序列进行确定,并将此游戏序列定义为证明协议安全的证明序列。上述的装置,优选的,所述策略转化单元中设置有删除单元,用于对转化不成功的数据结构进行删除。由以上本申请实施例提供的技术方案可见,本发明提供的基于游戏序列的密码协议安全自动化证明技术,将经过描述的密码协议解析成计算机可以识别的数据结构,采用进程演化方法和状态树的动态搜索的游戏序列生成方法,实现对密码协议的自动化证明。 实现了真正意义上的完全自动化,解决了困扰可证安全自动化研究的问题,同时使证明过程和结论具备计算完备性。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。图1为本申请实施例实现密码协议安全性自动化证明方法的流程图;图2为本申请实施例将游戏序列以状态树形式呈现的示意图;图3为本申请实施例对密码协议进行解析的流程图;图4为本申请实施例基于协议密码原语性质的观察等价转化流程图;图5为本申请实施例基于进程约化的语法转化流程图;图6为本申请实施例对状态树节点进行存储的前趁栈结构示意图;图7为本申请实施例使用动态搜索方法对状态树进行动态搜索过程示意图;图8为本申请实施例实现密码协议安全性自动化证明装置的结构图;图9为本申请实施例设有存储单元的自动化证明装置的结构图。
具体实施例方式本申请实施例提供一种基于游戏序列的密码协议安全性自动化证明技方法。采用构造游戏序列的方式进行安全性证明。以Pi演算为蓝本,定义一种使用计算机模型语义的进程演算,并用它来描述游戏序列。在此基础上,设计了一套进程演化方法,包括概率观察等价转化,赋值替换,进程化简等,进行游戏序列的构造。为了实现完全不依赖人工干预的自动化证明,本发明设计了一个状态树遍历算法,对所有可能产生出的游戏序列进行遍历, 以寻找满足条件的游戏序列,完成安全性证明。以上是本申请的核心思想,为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。本申请实施例实现密码协议安全性自动化证明方法的流程图如图1所示,实现步骤如下
步骤SlOl 解析经过语言描述的密码协议,生成初始的数据结构,并将所述初始的数据结构命名为初始游戏;步骤S102 对被命名为初始游戏的数据结构进行策略转化,若转化不成功,执行步骤S103 ;否则,执行步骤S104 ;步骤S103 将被转化的数据结构删除,选择新的数据结构命名为初始游戏,返回步骤S102 ;若由初始的数据结构转化生成的数据结构均被删除,则执行步骤S106 ;步骤S104 判断经过转化生成的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件;若在预设范围内且满足预设条件,执行步骤 S105,否则,将转化生成的数据结构命名为初始游戏,返回步骤S102 ;步骤S105 将与所述初始的数据结构之间的差异概率在预设范围内且满足预设条件的经过转化生成的数据结构与所述初始的数据结构所在的游戏序列定义为证明协议安全的证明序列;步骤S106 证明过程结束。需要对以上步骤进行说明的是,密码协议一般采用文字化的表述方式,计算机不能直接将文字化的表述方式直接解析成可编程化的语言,所以在文字化的密码协议描述到计算机中时,采用一种基于Pi演算的进程语言对文字化的密码协议进行描述,包含项的定义、输入进程和输出进程。协议中处理和传递的信息用项来表示,输入进程和输出进程共同描述协议的运行以及和攻击者的交互。使用进程描述语言对密码协议和密码算法的安全属性进行描述,通过分析攻击者在游戏中获胜的概率来确定协议和算法安全与否,攻击者在游戏中获胜的概率是当前游戏中攻击成功的概率和当前游戏与初始游戏之间差异概率之和。对命名为初始游戏的数据结构进行策略转化,转化过程中应用多种转化策略,转化成功的新的数据结构可能为一个或多个,对转化成功的新的数据结构与初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件进行判断,若不在,则对生成的新的数据结构进行与命名为初始游戏的数据结构相同的策略转化,重复以上过程,若找到一个新的数据结构与初始的数据结构之间的差异概率在预设范围内且满足预设条件,则说明协议是安全的。需要说明的是这里的满足预设条件指转化成功的新的数据结构满足特定的安全目标(如秘密性、不可否认性
寸J ο转化成功的新的数据结构可能为一个或多个,对新的数据结构进行转化的过程中不能转化成功的新的数据结构需要被删除,然后选择其他的新的数据结构继续转化。本申请实施例公开的基于游戏序列的密码协议安全性自动化证明方法中,将游戏序列以状态树的形式呈现,其示意图如图2所示,状态树的根节点201为初始的数据结构, 初始的数据结构经过多种策略转化后得到的多个新的数据结构均作为根节点201的子节点,图中如节点202和节点203所示。转化后得到的新的数据结构经过与初始节点相同的策略转化后生成的数据结构,相对应到状态树中作为其父节点的子节点,图中节点202经过转化后,得到其子节点204和子节点205。本申请实施例公开的基于游戏序列的密码协议安全性自动化证明方法中对密码协议的解析流程图如图3所示,实现步骤具体如下步骤S301 接收经过语言描述后的密码协议;
8
步骤S302 对密码协议进行词法分析;步骤S303 对经过词法分析的密码协议进行语法分析;步骤S304 密码协议经过语法分析生成初始的数据结构。其中步骤S302的实现具体为借助Unix/Linux下LEX词法分析工具,调用LEX源程序;应用LEX源程序中的LEX可执行文件对密码协议进行词法分析;步骤S303的实现具体为借助Unix/Linux下YACC语法分析工具,调用YACC源程序;应用YACC中的YACC可执行文件对经过词法分析的密码协议进行语法分析。本申请实施例公开的基于游戏序列的密码协议安全性自动化证明方法中对游戏的转化策略较为重要的两类分别是基于协议中密码原语性质的观察等价转化基于进程约化的语法转化。本申请实施例基于协议密码原语性质的观察等价转化流程图如图4所示,实现步骤如下步骤S401 定义观察等价式,提出观察等价式两端的关键项和关键进程,建立关键组件之间的对应转化关系;步骤S402 在数据结构中中查找等价式左端的关键组件;步骤S403 将等价式左端的关键组件用与之对应的等价式右端的组件进行替换, 生成新的数据结构。基于协议中密码原语性质的观察等价转化所依据的观察等价式由人工进行证明和描述,之后用解析器进行解析。它刻画了密码原语的安全性质或安全假设,为构建游戏序列提供了非常有用的理论依据。观察等价式包含了两个概率不可区分的进程,即Q PQ', 据此将含有CW]的数据结构Gi转换为含有C[Q']的数据结构Gi+1,- p的性质提供了攻击成功时概率上限的计算依据;其中C代表一种操作,Q代表一种环境,具体应用到本发明中即为对数据结构中的一段子进程进行等价式转化;对数据结构进行转化的过程中,将数据结构中的一段子进程 Ql取出,通过观察等价式Q PQ'将Ql赋值其中得到Ql PQ1',用Qf替换掉数据结构中的Ql的到一个新的数据结构。本申请实施例中设计和实现的观察等价式包括单向函数、Hash函数、伪随机置换、 异或等重要密码构件。本申请实施例基于进程约化的语法转化流程图如图5所示,实现步骤如下步骤S501 收集数据结构中的信息;步骤S502 根据收集到的信息对数据结构进程进行简化。基于进程约化的语法转化的主要目的是对数据结构的进程进行简化,依据数据结构的进程中多包含的信息优化进程结构,移除冗余的进程语句,保证数据结构转化的顺利进行。语法转化过程具体为收集数据结构中的信息,称为“事实”,包括数据结构中项被定义的位置,项之间的相等关系,以及特定进程中可以合法使用的项的集合。
根据收集到的信息对数据结构的进程进行简化,判断出冗余进程和非法进程,对条件选择语句中的条件进行分析,区分成立条件,可选条件以及失败条件,并据此对选择语句进行处理。本申请实施例公开的基于游戏序列的密码协议安全性自动化证明方法中在多个游戏序列中确定与初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件的方法根据要寻找的目标数据结构节点的不同而有所区别。一般的秘密性目标游戏节点要求攻击者无法区分使用了目标项的进程和使用一个随机数的进程之间的差别,判定依据是目标项以及和目标项有关的其他项没有在输出信道上出现。签名不可伪造型目标游戏节点要求游戏进程中的伪造成功语句被执行的概率和忽略,判定依据是伪造成功语句所在分支在游戏转化过程中被移除。本发明中对目标数据结构节点的判定过程,即判断新的数据结构与初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件的过程采用多项式时间的复杂度处理方法,通过对多项式时间的倒数取值,然后与标准的安全参数进行比较,对符合要求的目标数据结构节点进行选择。本申请实施例对状态树节点进行存储的前趁栈结构示意图如图6所示,将节点存贮在前趁栈601中。前趁栈601用来保存当前节点的所有祖先,前趁栈601中存储从根节点开始当前节点的所有前趁节点。因为栈的性质是一种先进后出的存储结构,所以当前节点存储在前趁栈的顶部,依次向下为当前节点的父节点直至状态树的根节点。对节点进行转化时,先从前趁栈顶部取出当前节点,图中如节点603,对节点603 尝试做各种策略的转化。将转化成功的游戏封装成一个新节点602,作为节点603的子节点,压入前趁栈601中;同时判断节点602与初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件,如果在预设范围内且满足预设条件,则整个证明过程结束,否则,从前趁栈601中取出节点602,对节点602做与节点603相同的策略转化。需要说明的是,对初始的数据结构进行转化时,前趁栈601中只保存有状态树的根节点,根节点位于前趁栈的底部,图中如节点604所示,所以,进行第一次策略转化时,从前趁栈中取出的节点为状态树的根节点。本申请实施例使用动态搜索方法对状态树进行动态搜索过程示意图如图7所示对状态树采用一种深度优先的动态搜索方法进行遍历,动态搜索方法依次从上到下,从左至右对状态树进行遍历。遍历的过程中包含策略转化和确定与初始的数据结构之间的差异概率在预设范围内且满足预设条件的新的数据结构的过程,具体实现为从当前节点701开始,对当前节点701进行多种策略转化;将所有转化成功新节点的作为当前节点701的子节点,如图7中所示,假设转化成功了三个新节点,分别为新节点702、新节点703和新节点704;将新节点按从右到左的顺序压入前趁栈;在新节点节点压入前趁栈时,判断新节点中是否存在与状态树根节点的差异概率是否在预设范围内且是否满足预设条件的新节点;若存在,说明协议安全,选择此新节点与状态树根节点所在的路径为证明路径;若不存在,对新节点702进行与当前节点701相同的策略转化;
若当前节点701的所有子节点应用所有转化策略后,均不能成功转化新节点,则删除当前节点701。图7中假设节点702的所有子节点在应用所有转化策略后,均不能成功转化新节点,删除节点702后,节点702的父节点701按顺序选择节点S的兄弟节点703,对节点702 的兄弟节点703做与节点702相同的操作;若删除节点后,当前节点的父节点是所述状态树的根节点,则搜索结束。若当前节点需要删除且当前节点是其父节点的最右子节点,删除当前节点后还需要删除其父节点,直至删除后的节点不是其父节点的最右子节点。图7中,节点707需要删除,节点707为节点703的子节点且为最右子节点,因为深度优先搜索是从左至右遍历的,所以遍历节点707时,说明节点707的兄弟节点705和兄弟节点706均不满足证明条件,已被删除,即节点703的所有子节点中不存在与初始的数据结构之间的的差异概率在设定范围内且满足预设条件的节点,所以节点703应该被删除。针对以上方法实施例,本发明还提供了一种基于游戏序列的密码协议安全性自动化证明装置,其结构示意图如图8所示,包括初始的数据结构生成单元801、初始游戏命名单元802、策略转化单元803,判断单元804和目标确定单元805 ;其中初始的数据结构生成单元801用于对经过描述的密码协议进行解析,生成初始的数据结构;初始游戏命名单元802用于将数据结构命名为初始游戏;策略转化单元803用于对初始游戏命名单元802命名为初始游戏的数据结构进行策略转化生成新的数据结构;判断单元804用于对策略转化单元803生成的新的数据结构与初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件进行判断;若不在预设范围内且不满足预设条件,将新的数据结构返回至初始游戏命名单元802,并指示初始游戏命名单元802 用返回的新的数据结构替换被命名为初始游戏的数据结构,将返回的新的数据结构命名为初始游戏;若在预设范围内,将新的数据结构发送至目标确定单元805中;目标确定单元805用于对判断单元804中判定的与初始游戏之间的差异概率在预设范围内且满足预设条件的新的数据结构与初始的数据结构所在的游戏序列进行确定,并将此游戏序列定义为证明协议安全的证明序列。本申请实施例设有存储单元的自动化证明装置的结构图如图9所示,策略转化单元803中设置有删除单元901,用于对转化不成功的数据结构进行删除。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
1.一种基于游戏序列的密码协议安全性自动化证明方法,其特征在于,包括步骤 步骤SlOl 解析经过语言描述的密码协议,生成初始的数据结构,并将所述初始的数据结构命名为初始游戏;步骤S102:对被命名为初始游戏的数据结构进行策略转化,若转化不成功,执行步骤 S103 ;否则,执行步骤S104 ;步骤S103 将被转化的数据结构删除,选择新的数据结构命名为初始游戏,返回步骤 S102 ;若由初始的数据结构转化生成的数据结构均被删除,则执行步骤S106 ;步骤S104 判断经过转化生成的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件;若在预设范围内且满足预设条件,执行步骤S105, 否则,将转化生成的数据结构命名为初始游戏,返回步骤S102 ;步骤S105 将与所述初始的数据结构之间的差异概率在预设范围内且满足预设条件的经过转化生成的数据结构与所述初始的数据结构所在的游戏序列定义为证明协议安全的证明序列;步骤S106 证明过程结束。
2.根据权利要求1所述的方法,其特征在于,所述游戏序列以状态树的形式呈现; 其中状态树的根节点为初始的数据结构;经过策略转化生成的新的数据结构为其父节点的子节点。
3.根据权利要求1所述的方法,其特征在于,所述方法的证明过程采用深度优先的动态搜索算法。
4.根据权利要求1所述的方法,其特征在于,所述语言描述具体为密码协议采用基于 Pi演算的进程语言进行描述;包含项的定义、输入进程和输出进程;其中项表示协议中处理和传递的信息; 输入进程和输出进程共同描述协议的运行以及和攻击者的交互。
5.根据权利要求1所述的方法,其特征在于,所述密码协议的解析过程为 对密码协议进行词法分析;对经过词法分析的密码协议进行语法分析。
6.根据权利要求1所述的方法,其特征在于,所述策略转化包括基于协议中密码原语性质的观察等价转化和基于进程约化的语法转化。
7.根据权利要求6所述的方法,其特征在于,所述观察等价转化的过程为定义观察等价式,提出所述观察等价式两端的关键项和关键进程,建立关键组件之间的对应转化关系;在数据结构中查找等价式左端的关键组件;将等价式左端的关键组件用与之对应的等价式右端的组件进行替换,从而生成一个新的数据结构。
8.根据权利要求6所述的方法,其特征在于,所述语法转化的过程为 收集数据结构中的信息;根据收集到的信息对数据结构中的进程进行简化。
9.根据权利要求3所述的方法,其特征在于,在执行动态搜索过程前选定状态树的当前结点,并设定前趁栈,对从根节点开始当前节点的所有前趁节点进行存储。
10.根据权利要求9所述的方法,其特征在于,所述动态搜索过程具体为从所述前趁栈顶部取出当前节点S,对所述当前节点S进行策略转化;将转化成功的新节点S、作为所述当前节点S的子节点,并压入所述前趁栈;在所述新节点S、压入前趁栈后,判断所述新节点S、与所述当前节点S‘的差异概率是否在预设范围内,若在,说明协议安全,选择当前节点S与所述新节点S、所在的路径为证明路径;若不在,对所述新节点S、进行与所述当前节点S相同的策略转化;若所述当前节点S的所有子节点经过策略转化后,均不能成功转化新节点,则删除当前节点S,所述当前节点S的父节点按顺序选择当前节点S的兄弟节点,对当前节点S的兄弟节点做与当前节点S相同的操作;若删除节点后,当前节点的父节点是所述状态树的根节点,则搜索结束。
11.根据权利要求10所述的方法,其特征在于,若所述当前节点S需要删除且所述当前节点S是其父节点的最右子节点,则删除所述当前节点S及其父节点,直至删除后的节点不是其父节点的最右子节点。
12.根据权利要求10所述的方法,其特征在于,所述前趁栈顶部第一次取出的当前结点S为状态树的根节点。
13.一种基于游戏序列的密码协议安全性证明装置,其特征在于,包括初始的数据结构生成单元用于对经过语言描述的密码协议进行解析,生成初始的数据结构;初始游戏命名单元用于将数据结构命名为初始游戏;策略转化单元用于对被所述初始游戏命名单元命名为初始游戏的数据结构进行策略转化,生成新的数据结构;判断单元对所述策略转化单元生成的新的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件进行判断,若不在预设范围内且不满足预设条件,将所述新的数据结构返回至初始游戏命名单元,指示所述初始游戏命名单元用返回的新的数据结构替换被命名为初始游戏的数据结构,将返回的新的数据结构命名为初始游戏;目标确定单元用于对判断单元中判定的与初始的数据结构之间的差异概率在预设范围内且满足预设条件的新的数据结构与初始的数据结构所在的游戏序列进行确定,并将此游戏序列定义为证明协议安全的证明序列。
14.根据权利要求13所述的装置,其特征在于,所述策略转化单元中设置有删除单元, 用于对转化不成功的数据结构进行删除。
全文摘要
本发明公开了一种基于游戏序列的密码协议安全性证明方法。采用构造游戏序列的方式进行安全性证明。以Pi演算为蓝本,定义一种使用计算机模型语义的进程演算,并用它来描述游戏序列。在此基础上,设计了一套进程演化方法,包括概率观察等价转化,赋值替换,进程化简等,进行游戏序列的构造。为了实现完全不依赖人工干预的自动化证明,本发明设计了一个状态树遍历算法,对所有可能产生出的游戏序列进行遍历,以寻找满足条件的游戏序列,完成安全性证明。
文档编号H04L29/06GK102195925SQ20101011615
公开日2011年9月21日 申请日期2010年3月3日 优先权日2010年3月3日
发明者光焱, 刘楠, 吴树华, 祝跃飞, 顾纯祥 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1