安全协议分析与设计 教学课件 作者 卫剑钒 陈钟 安全协议 第5章 上.pptVIP

安全协议分析与设计 教学课件 作者 卫剑钒 陈钟 安全协议 第5章 上.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安全协议分析与设计 第五章(上) 卫剑钒 定理证明类分析方法 对协议安全性进行分析的目的在于,一方面试图找到可能存在的攻击,另一方面直接证明攻击是不可能发生的。前者如模型检测方法,后者如逻辑方法和定理证明方法。 定理证明方法开始于Kemmerer的Ina Jo和ITP的研究[KMM94],Paulson等人在文献[Paul97,Paul98]中提出了归纳定理证明方法,并研制了Isabelle这种定理证明工具[BP97]。比较著名的还有Meadows的NRL协议分析器方法、Bolignano的Coq证明系统、Cervesato等学者的基于线性逻辑的协议验证方法[CDLM99]、Brackin的HOL公理证明器[Brac99a,Brac99b]、Abadi和Gordon的Spi演算[AG97]方法、Thayer、Herzog和Guttman提出的串空间模型[THG98]等。 串空间证明方法 Thayer、Herzog和Guttman在文献[THG98]中提出了串空间(strand space)理论及方法,该方法被多数研究者认为是一种直观且较为严谨的安全协议形式化分析方法。 串空间模型还具备相当的灵活性,可以加入新的攻击者能力或减少完善加密假设,而不影响证明的整体框架。 串空间基本概念 一个串(strand)被定义为协议运行主体的执行事件序列,对于诚实主体来说,该事件序列是由发送和接收事件(分别用+和-表示)根据协议描述组成的。 如果一个主体同一时期参与了多轮协议,则用不同的串表示。 串空间(strand space)是串的集合,包括诚实主体串(regular strand)及攻击者串(penetrator strand),可视之为协议有效时间内所有的事件序列(包括攻击者的行为)。 丛(bundle)是串空间的子空间,它表现为一个有限的非循环图,主要作用是体现协议一次运行中所有动作之间的因果关系。 串空间基本概念 把协议主体之间所有可能交换的信息称之为项(item),如密钥、随机数以及加密项、Hash项等,令集合A中的元素为协议主体间可能交换的消息,称A的元素为项(term)。 A可由如下的集合元素和元素间的运算组成。 (1)集合T为原子明文项集合,T?A。 (2)集合K为密钥集合,K与T不相交,K?A。 (3)一元运算符inv:K →K。 (4)二元运算符encr:K×A→A。 (5)二元运算符join:A×A→A。 (6)多元运算符 Hash:A×…×A→A。 记inv(k)为k-1,表明了K的逆;记encr(k, m )为{m}k,表明了加密运算;记join(a, b )为( a, b),表明了连接运算。 串空间基本概念 子项(subterm)关系?递归定义如下。 (1)a?a。 (2)a?{g}K,如果a?g。 (3)a? ( g, h ),如果a?g∨a?h。 (4)a ? Hash(g1…,gn),如果a?g1∨…∨a ? gn。 其中,∨是逻辑“或”的含义。 串空间基本概念 定义5.1 带符号项是一个二元组σ, a,其中a∈A,σ∈{+, ?},记带符号项为+t或?t。(±A)*是一个集合,集合中每个元素都是一个带符号项的有限序列,该序列可记为 σ1, a1, …, σn, an 。 定义5.2 A上的串空间是串集合∑以及迹映射(trace mapping)tr:Σ→(±A)*。 通常为方便起见,用串集合∑表示一个串空间。 串空间基本概念 串是一个主体的动作的有限序列,这个序列用带符号项表示的话,就形成一个迹(trace),体现为(±A)*的一个元素。 对串s来说,它的迹记作tr(s),迹的长度为lengh(tr(s)),s的迹的第i个节点记作s(i),1≤i≤length(tr(s ) )。记节点n在迹中的序号记为index(n),该点所在的串为strand(n),该点的项为term(n)。 对于串集合Σ,用→表示消息的发送,对任意的串s1, s2∈Σ,如两个主体间发送了消息,如s1(i)=+m,s2(j)= ?m,即s1的主体发送消息m给s2的主体,则记这样的关系为s1(i)→s2(j)。 一个迹上相邻的两个节点表明了该主体的顺序相邻的两个动作,记作s(i)?s(j),其中j=i+1。为∑中所有串的所有节点之间建立→和?这样的关系,则串空间可以表示为一个有向图: N,(→∪?),N代表∑中所有串的所有节点的集合。 串空间 定义5.3 给定串空间∑: (1)一个节点(node)是一个二元组s,i, s∈Σ, i为满足1≤i ≤length( tr( s ) )的整数。tr(s)为s的迹,length( tr(s))则为串s的长度。节点集合记为N,每个节点 s, i 属于唯一的串s。 (2)若节点n = s

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档