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

技术编号:6532048 阅读:301 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于游戏序列的密码协议安全性证明方法。采用构造游戏序列的方式进行安全性证明。以Pi演算为蓝本,定义一种使用计算机模型语义的进程演算,并用它来描述游戏序列。在此基础上,设计了一套进程演化方法,包括概率观察等价转化,赋值替换,进程化简等,进行游戏序列的构造。为了实现完全不依赖人工干预的自动化证明,本发明专利技术设计了一个状态树遍历算法,对所有可能产生出的游戏序列进行遍历,以寻找满足条件的游戏序列,完成安全性证明。

【技术实现步骤摘要】

本申请涉及信息安全领域,特别是涉及一种基于游戏序列的密码协议安全性证明方法及装置
技术介绍
密码协议是构建安全信息系统的一个基本要素。密码协议的设计与安全性分析已成为密码学与信息安全领域一个极为重要的研究方向。目前协议安全分析主要依赖两种方法形式化分析和可证安全分析。形式化分析容易借助程序自动实现,但其将密码算法假设为绝对安全的“黑盒”,证明结果具有很大局限性和不可靠性。而可证明安全分析提供了通过严格证明确保密码协议安全性的有效途径,已成为有说服力、广泛接受的密码协议安全性分析方法;可证安全密码算法基于可计算性和计算复杂度理论,建立密码协议攻击算法与某个数学难题求解算法的复杂度之间的联系,以数学难题的难解性来论证密码协议的安全性,得到的证明结果更可靠,更具有说服力。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为状态树的根节点ο一种基于游戏序列的密码协议安全性证明装置,包括初始的数据结构生成单元用于对经过语言描述的密码协议进行解析,生成初始的数据结构;初始游戏命名单元用于将数据结构命名为初始游戏;策略转化单元用于对被所述初始游本文档来自技高网
...

【技术保护点】
1.一种基于游戏序列的密码协议安全性自动化证明方法,其特征在于,包括步骤:步骤S101:解析经过语言描述的密码协议,生成初始的数据结构,并将所述初始的数据结构命名为初始游戏;步骤S102:对被命名为初始游戏的数据结构进行策略转化,若转化不成功,执行步骤S103;否则,执行步骤S104;步骤S103:将被转化的数据结构删除,选择新的数据结构命名为初始游戏,返回步骤S102;若由初始的数据结构转化生成的数据结构均被删除,则执行步骤S106;步骤S104:判断经过转化生成的数据结构与所述初始的数据结构之间的差异概率是否在预设范围内且是否满足预设条件;若在预设范围内且满足预设条件,执行步骤S105,否则,将转化生成的数据结构命名为初始游戏,返回步骤S102;步骤S105:将与所述初始的数据结构之间的差异概率在预设范围内且满足预设条件的经过转化生成的数据结构与所述初始的数据结构所在的游戏序列定义为证明协议安全的证明序列;步骤S106:证明过程结束。

【技术特征摘要】
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所述的方法,其特征在于,所述语法转化的过程为 收集数据结构中的信息;根据收集到的信息对数据结构中的进程进行简...

【专利技术属性】
技术研发人员:顾纯祥祝跃飞光焱刘楠吴树华
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1