没有合适的资源?快使用搜索试试~ 我知道了~
首页proverif用户文档
proverif用户文档,ProVerif is an automatic cryptographic protocol verifier, in the formal model (so called Dolev-Yao model). This protocol verifier is based on a representation of the protocol by Horn clauses. Its main features are。
资源详情
资源评论
资源推荐

ProVerif
Automatic Cryptographic Protocol Verifier
User Manual for Untyped Inputs
Bruno Blanchet
∗
INRIA Paris-Rocquencourt, France
May 15, 2018
Warning! This manual documents the untyped inputs of ProVerif (untyped Horn clauses, untyped
pi calculus). These input formats are no longer actively developed. We recommend coding your protocols
in the typed pi calculus format, described in the file manual.pdf.
1 Introduction
This manual describes the untyped input s yntax and output of ProVerif. It does not describe the internal
algorithms used in the system. These algorithms have been described in various research papers [6, 2, 7,
1, 3, 4, 8, 10, 5, 9], that can be downloaded on
http://www.di.ens.fr/~blanchet/publications/index.html.
The tool can take two formats as input. Th e firs t one is in the form of Horn clauses (logic programming
rules), and corr e s ponds to the system described in [6]. The secon d one is in the form of a proces s in an
extension of the pi calculus, described in [2]. In both cases, t he output of the system is essentially the
same.
2 Common remarks on the syntax
Comments can be included in input files. Comments are surrounded by (* and *). Nested comments
are not supported.
Identifiers begin with a letter (uppercase or lowercase) and contain any number of letters, digits, the
underscore character (
), the quote character (’), as well as accented letters of the ISO Latin 1 character
set. Case is significant. Each input system has a number of keywords that cannot be used as ordinary
identifiers.
In case of syntax error , the system indicates the character position of the error (line and column
numbers). Please use your text editor to find the position of the error. (The error messages can be
interpreted by emacs.)
3 Command-line options
The syntax of t he command-line is
./proverif hoptionsi hfilenamei
where the hoptionsi can be
∗
This work was partly done while the author was at
´
Ecole Normale Sup´erieure, Paris and at Max-Planck-Institut f¨ur
Informatik, Saarbr¨ucken.
1

• -in hformati
Choose the input format (horn, horntype, pi, pitype). When the -in option i s absent, th e input
format is chosen according to the file exte ns ion, as detailed below. The recommended input format
is the typed pi calculus, which corresponds to the option -in pitype, and is the default when
the file extension is .pv. It is described in manual.pdf. The other formats are no longer actively
developed. Input may also be provided using the untyped pi c alcu lu s (option -in pi, the default
when the file extension is .pi), typed Horn clauses (option -in horntype, the default when the
file extension is .horntype), and untyped Horn clauses (option -in horn, the default for all other
file extensions). This manual documents the untyped Horn clauses and the untyped pi calculus
input formats.
• -out hformati
Choose th e output format, e it he r solve (analyze the protocol) or spass (stop the analysis before
resolution, and outpu t the clauses in the format required for us e in the Spass first-or de r theorem
prover, see http://www.spass-prover.org/). The default is solve. When you select -out spass,
you must add the option -o hfilenamei t o specify the file in which the clauses will be outp ut .
• -TulaFale hversioni
For compatibility with the web service analysis tool TulaFale (see the tool download at http:
//research.microsoft.com/projects/samoa/). The version number is the version of TulaFale
with which you would like compatibility. Currently, only version 1 is supported.
• -color
Display a colored output on terminals that support ANSI color codes. (Will result in a garbage
output on ter mi nals that do not support these codes.) Unix terminals typically support ANSI color
codes. For emacs users, you can run ProVerif in a shell buffer with ANSI color codes as follows:
– start a shell with M-x shell
– load the ansi-color library with M-x load-library RET ansi-color RET
– activate ANSI colors with M-x ansi-color-for-comint-mode-on
– now run ProVerif in the shell buffer.
You can also activate ANSI colors in shell buffers by default by adding t he following to your .emacs:
(autoload ’ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook ’shell-mode-hook ’ansi-color-for-comint-mode-on)
• -help or --help
Display a short summary of command-line options.
4 Input as Horn clauses
By default, the executable program proverif takes Horn clauses as input. You can run it as follows:
./proverif hfilenamei
where hfilenamei references a file containing the Horn clauses, in the format explained below. The system
then b asi cally deter min es whether a fact can be derived from the clauses. If true, a proof is given. As
shown in [6], this can be used to determine secr e cy properties of protocols: if a c er tain fact cannot be
derived from the clauses, then the secrecy of a certain value is preserved. A difference with first-order
theorem provers that perform a similar task, is that correctness and completeness are r eversed. Here,
correctness means that if a value is not secret, the system says so, that is, if a fact is derivable, the system
says so. Completeness means that if a fact is not derivable, then the system says so. We sometimes dr op
completeness (that is, we lose precision; see options below), but never correctness.
2

hclausei ::= [(hfacti & )
∗
hfacti ->] hfacti
| (hfacti & )
∗
hfacti <-> hfacti
| (hfacti & )
∗
hfacti <=> hfacti
hfacti ::= hidenti:seqhtermi
| htermi <> htermi
htermi ::= hidenti(seqhtermi)
| hidenti[seq hte r m i]
| (seqhtermi)
| hidenti
hfactformati ::= hidenti:seqhtermformati
htermformati ::= hidenti(seqhtermformati)
| hidenti[seqhtermformati]
| (seqhtermformati)
| hidenti
| *hidenti
where seqhXi is a sequence of X: seqhXi = [(hXi,)
∗
hXi] = hXi, . . . ,hXi. (The sequence can be empty,
it can be one element hXi, or it can be several elements hXi separate d by commas.)
Figure 1: Grammar of facts and clauses
The keywords of this input system are data, elimtrue, equation, fun, not, nounif, param, pred,
query, and reduc.
The input file consists of a list of declarations, followed by the keyword reduc and a list of clauses:
hdeclarationi
∗
reduc (hclausei;)
∗
hclausei.
The syntax of facts and clauses is given in Figure 1. In this grammar X
∗
means any number of r epetitions
of X, [X] means X or nothing. Text in typewriter style should appear as it is in the input file. Text
between h and i represents non-terminals.
Declarations can be any of the following:
• param hnamei = hvaluei.
This declaration sets the value of c onfigu r ation parameters. The following cases are supported:
– param verboseRules = false.
param verboseRules = true.
Display the number of clauses every 200 clause created dur i ng the solving process (false) or
display each clause created during the solving process (true).
– param verboseRedundant = false.
param verboseRedundant = true.
Display eliminated redundant clauses when true.
– param verboseCompleted = false.
param verboseCompleted = true.
Display completed set of clauses after saturation when true.
– param verboseEq = true.
param verboseEq = false.
Display information on h andl in g of equational theories when true.
3

– param verboseTerm = true.
param verboseTerm = false.
Display information on termination when true (changes in the selection function to improve
termination; termin ation warnings).
– param maxDepth = none.
param maxDepth = n.
Do not limit the depth of terms (none) or limit the depth of terms to n, where n is an integer.
A negative value means no limit. When the depth is limited to n, all terms of depth greater
than n are replaced with new variables. Limiting the depth can be used to enforce termination
of the solving process at the cost of precision.
– param maxHyp = none.
param maxHyp = n.
Do not limit the number of hypotheses of clauses (none) or limit it to n, where n is an
integer. A negative value means no limit. When th e number of hypoth es e s is limited to n,
arbitrary hypotheses are removed from clauses, so that only n hypotheses remain. Limiting
the number of hypotheses can be used to enforce termination of the solving process at the
cost of precision (although in general limiting the depth by the above declaration is e n ough
to obtain termination).
– param selFun = TermMaxsize.
param selFun = Term.
param selFun = NounifsetMaxsize.
param selFun = Nounifset.
Chooses the selection function that governs the resolution process. All selection functions
avoid unifying on facts indicated by a nounif declarati on. Nounifset does exactly that.
Term automatically avoids some other unifications, to help termination, as determined by
some heuristics. NounifsetMaxsize and TermMaxsize choose the fact of maximum size when
there are several possibilities. This choice sometimes gives impressive spe ed up s .
– param stopTerm = true.
param stopTerm = false.
Display a warning and wait for user answer when the system th in k s the solving process will
not termin ate (true), or go on as if nothing had happen ed (false). This setting applies only
to the selection functions NounifsetMaxsize and Nounifset. (See parameter selFun.)
– param redundancyElim = simple.
param redundancyElim = no.
param redundancyElim = best.
An elimination of redundant clauses has been implemented: when a clause without sele cte d
hypotheses is derivable from other clauses without selected hypothesis, it is removed. With
redundancyElim = simple, this is applied for newly generated clauses. With redundancyElim
= no, this is never applied. With redundancyElim = best, this is also applied when an old
clause can be derived fr om other old clauses plus the new clause.
– param redundantHypElim = beginOnly.
param redundantHypElim = false.
param redundantHypElim = true.
When a clause is of the form H ∧ H
′
→ C, and there exists σ such t hat σH ⊆ H
′
and σ does
not change the variables of H
′
and C, then the clause can be replaced with H
′
→ C (since
there are implications in both directions between these clauses).
This replacement is done when redundantHypElim = true., or when redundantHypElim =
beginOnly. and H contains a begin event. Indeed, testing this property takes time, and
slows down small examples. On the other hand, on big examples, in particular when they
contain several begin events (or blocking facts), this technique can yield huge spe ed up s .
– param reconstructDerivation = true.
param reconstructDerivation = false.
4
剩余19页未读,继续阅读

qq_35737030
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0