【proverif】proverif的下载安装和初使用

文章目录

  • 一、proverif下载
    • 1. 下载proverif安装包
    • 2. 解压proverif安装包
    • 3. 点开其中的README,安装graphciz和gtk
    • 4. 查看安装是否成功
    • 5. 测试


一、proverif下载

1. 下载proverif安装包

官网:proverif
首先下载全过程无需开外网,而且安装包下载和安装都很快,半小时内可以完成。
进入官网,看到downloads的标题下面有一个download for windows,直接下载。
在这里插入图片描述
下载之后是一个.tar.gz的文件,将该文件放入D盘(D盘新建一个文件夹,命名为proverif,将.tar.gz安装包放入文件夹内),我们用代码方式进行解压。

2. 解压proverif安装包

进入cmd命令行,按一下步骤逐次输入命令行,完成解压。

1. 进入proverif的文件夹cd /d D:\proverif2. 解压安装包tar -zxvf proverif2.04.tar.gz

解压完成后,proverif文件夹就会出现一个名为proverif2.04的文件。

3. 点开其中的README,安装graphciz和gtk

在这里插入图片描述
README中表示还要安装两个包,下面是他们的地址,两个文件均下载到proverif文件夹中:

graphciz:https://www.graphviz.org/download/
GTK:download

graphciz的安装按照自己电脑位数来选择,我选择了64位。
在这里插入图片描述


GTK安装是按照README中指定的文件下载:
在这里插入图片描述
下载完之后是一个压缩包:gtk+-bundle_2.24.10-20120208_win32.zip,解压到proverif文件中,将解压文件改名为GTK

配置路径:控制面板-》系统-》高级系统设置-》环境变量,然后设置如图:
在这里插入图片描述
至此,GTK安装和环境配置结束。

4. 查看安装是否成功

graphciz下载后直接安装即可,安装后在任务管理器中查看是否安装成功:

dot -version

可以看到successfully loaded即为成功。
在这里插入图片描述

5. 测试

在proverif文件中新建一个txt文件,编写下面代码:

free c:channel.free Cocks:bitstring[private].
free RSA:bitstring[private].query attacker(RSA).
query attacker(Cocks).processout(c,RSA);0

然后将txt文件后缀改成.pv,在cmd中进入proverif文件,并执行语句:

proverif test1.pv

若出现该图的情况,是因为后缀没有改成功:
在这里插入图片描述

Win11的后缀修改方式:打开此电脑——查看更多——选项——查看——隐藏已知文件类型扩展名。然后在txt文件重命名中,将.txt改成.pv。

若出现该页面时,证明安装成功:
在这里插入图片描述

该段代码的解释:

第1行用(*和*)括起来的是注释。

第3行定义了一个通信通道,通道的名字是c,这里的free类似于编程语言中的全局变量,在ProVerif里这表示这是一个全局都知道的知识,即攻击者也可以获取,具体到这一行说明通道c是公共的。

第5行和第6行定义了bitstring类型的变量Cocks和RSA,它们都是free的,但是用[private]限制了它们无法被攻击者获取到。

第11行定义了一个进程,第12行是这个进程内的一条语句,表示通过通道c将RSA发送出去,第13行的0是进程结束标志(也可以不写这个0和最后一个;)。

第8行和第9行定义了对性质的查询,需要注意,如query attacker (RSA)在底层实际查询的是【not attacker (RSA)】,即要判断命题【RSA不会被攻击者窃取】是否是成立的。

从最下面的Verification summary中也可以看到,RSA的验证结果是false,也就是会被攻击(因为它被通过公有通道发送出去了),而Cocks不会被攻击。

参考博客:

  1. https://blog.csdn.net/SHU15121856/article/details/107927165

  2. https://blog.csdn.net/weixin_43863334/article/details/110006348

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138044.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的出租车管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

9.25day5---Qt

登录页面设计,建立用户注册以及登录的数据库,数据库保存用户名和密码 (ps:本篇只完成了登录功能,其他功能,请见下篇嘿嘿。) 再次注册则失败: 代码如下: 头文件: 登录…

堆的OJ题

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ 小林的算法笔记       🛰️社区 :✈️ 进步学堂       &am…

redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。 比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个…

生产消费者模型的介绍以及其的模拟实现

目录 生产者消费者模型的概念 生产者消费者模型的特点 基于阻塞队列BlockingQueue的生产者消费者模型 对基于阻塞队列BlockingQueue的生产者消费者模型的模拟实现 ConProd.c文件的整体代码 BlockQueue.h文件的整体代码 对【基于阻塞队列BlockingQueue的生产者消费者模型…

uniapp----微信小程序 日历组件(周日历 月日历)【Vue3+ts+uView】

uniapp----微信小程序 日历组件(周日历&& 月日历)【Vue3tsuView】 用Vue3tsuView来编写日历组件;存在周日历和月日历两种显示方式;高亮显示当天日期,红点渲染有数据的日期,点击显示数据 1. calenda…

数据结构——AVL树

目录 1.什么是AVL树? 2.AVL树插入的模拟实现 ①节点定义 ②插入 ③旋转 ⑴右单旋 ⑵左单旋 ⑶双旋(右左旋) ⑷双旋(左右旋) ⑸完整的插入代码 3.AVL树的性能分析 1.什么是AVL树? AVL树是一种自…

NLP文本生成全解析:从传统方法到预训练完整介绍

目录 1. 引言1.1 文本生成的定义和作用1.2 自然语言处理技术在文本生成领域的使用 2 传统方法 - 基于统计的方法2.1.1 N-gram模型2.1.2 平滑技术 3. 传统方法 - 基于模板的生成3.1 定义与特点3.2 动态模板 4. 神经网络方法 - 长短时记忆网络(LSTM)LSTM的核心概念PyTorch中的LST…

中尺度混凝土二维有限元求解——运行弯曲、运行光盘、运行比较、运行半圆形(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

YOLOv8快速复现 训练 SCB-Dataset3-S 官网版本 ultralytics

目录 0 相关资料SCB-Dataset3-S 数据训练yaml文件 YOLOv8 训练SCB-Dataset3-S相关参数 0 相关资料 YOLOV8环境安装教程.:https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频:…

ceph分布式存储

ceph特点 Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的…

经典指标策略回测一览

编辑 经典指标策略回测一览 关键词 A股市场(沪深京三市) 5000股票20年内日线走势回测,区分除权,前复权,后复权三种模式;由于数据量较大,采用两种方式共享数据,一是 天启网站的数据…

每天几道Java面试题:IO流(第五天)

目录 第五幕 、第一场)街边 友情提醒 背面试题很枯燥,加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第五幕 、 第一场)街边 【衣衫褴褛老者,保洁阿姨,面试者老王】 衣衫褴褛老…

【数据结构】二叉树的·深度优先遍历(前中后序遍历)and·广度优先(层序遍历)

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)

一、环境准备 1、服务器配置和角色规划 IP 地址主机名硬件配置操作系统安装步骤10.168.168.1cm-server8C16GCentos7新建10.168.168.2agent018C16GCentos7新建10.168.168.3agent028C16GCentos7新建10.168.168.4agent038C16GCentos7新建10.168.168.5agent048C16GCentos7扩容 2…

七天学会C语言-第五天(函数)

1. 调用有参函数 有参函数是一种接受输入参数(参数值)并执行特定操作的函数。通过向函数传递参数,你可以将数据传递给函数,让函数处理这些数据并返回结果。 例1:编写一程序,要求用户输入4 个数字&#xf…

Innodb底层原理与Mysql日志机制

MySQL内部组件结构 Server层 主要包括连接器、词法分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现&#xff0c…

超级详细 SQL 优化大全

1、MySQL的基本架构 1)MySQL的基础架构图 左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右…

Python实现Redis缓存MySQL数据并支持数据同步

简介 本文讲讲如何用Redis做MySQL的读缓存,提升数据库访问性能。 MySQL是一种很常用的关系型数据库,用于持久化数据,并存放在磁盘上。但如果有大数据量的读写,靠MySQL单点就会捉襟见肘,尽管可以在MySQL本身做优化&am…

Qt httpclient

记录一次Qt中处理https请求的操作 构造函数 get onFinished函数: onCompleted是对外的信号,这里接收的数据主要是文本类 post form post json Form 与 Json的差别是http header 的设置 文件下载处理 这里与服务器有个约定,文件长度不能小于…