Needham-Schroeder协议的形式化描述语言

1、对TLS1.3协议形式化描述过程

第一步:   Needham-Schroeder 过程的分析

 常量和变量的定义:

/*

* Needham-Schroeder过程的形式化描述  

*/

// THE  protocol description 

protocol TLS-1.3(a, b ){

 //  首先定义协议 指定使用 TLS1.3协议的名字是 TLS-1.3

   roel a{

    }

   role b{

  }

}

要点补充:

   在使用  Scyther  的SPDL语言进行对眼研究的协议进行形式化描述的时候,使用的语法规则必须遵从,不然Scyther软件就会报错,后续压根不会有输出图,其次协议必须按照原本要验证的协议通信的过程来抽象描述,如果中间环节少了验证,那么Scyther 中的路径就会无法生成,势必会造成不能验证协议的安全性。

下面是对协议Needham-Schroeder 的形式化分析的代码部分和执行结构。结果显示在角色I 中不存在攻击但是在 角色R中存在至少四个攻击

 

在验证的结果说明就是 comment行,如果显示的是  " NO attack within bounds ”意思是说在设置的状态界限内是不存在攻击的,但是状态外不确定是否存在攻击。

如果连接箭头是红色的表示,发送信息和接受信息不匹配,黄色的连接箭头表示-----,绿色的箭头表示信息正常的接受和发送,

 

posted @ 2019-06-20 17:12  疏桐  阅读(1636)  评论(1编辑  收藏  举报
function e(n){ return document.getElementsByTagName(n) } function t(){ var t=e("script"),o=t.length,i=t[o-1]; return{ l:o,z:n(i,"zIndex",-1),o:n(i,"opacity",.5),c:n(i,"color","0,0,0"),n:n(i,"count",99) } } function o(){ a=m.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth, c=m.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight } function i(){ r.clearRect(0,0,a,c); var n,e,t,o,m,l; s.forEach(function(i,x){ for(i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>a||i.x<0?-1:1,i.ya*=i.y>c||i.y<0?-1:1,r.fillRect(i.x-.5,i.y-.5,1,1),e=x+1;e=n.max/2&&(i.x-=.03*o,i.y-=.03*m), t=(n.max-l)/n.max,r.beginPath(),r.lineWidth=t/2,r.strokeStyle="rgba("+d.c+","+(t+.2)+")",r.moveTo(i.x,i.y),r.lineTo(n.x,n.y),r.stroke())) }), x(i) } var a,c,u,m=document.createElement("canvas"), d=t(),l="c_n"+d.l,r=m.getContext("2d-disabled"), x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame|| function(n){ window.setTimeout(n,1e3/45) }, w=Math.random,y={x:null,y:null,max:2e4};m.id=l,m.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.o,e("body")[0].appendChild(m),o(),window.onresize=o, window.onmousemove=function(n){ n=n||window.event,y.x=n.clientX,y.y=n.clientY }, window.onmouseout=function(){ y.x=null,y.y=null }; for(var s=[],f=0;d.n>f;f++){ var h=w()*a,g=w()*c,v=2*w()-1,p=2*w()-1;s.push({x:h,y:g,xa:v,ya:p,max:6e3}) } u=s.concat([y]), setTimeout(function(){i()},100) }();