基于类型检查的加密协议验证
1. F# 安全编程
在编写安全相关程序时,我们使用 F# 的一个子集。这个子集是一种标准的、类似 ML 的按值调用的函数式语言,包含递归函数和递归代数数据类型,还添加了两种用于编写规范的构造。虽然它不支持 F# 的类、对象或循环结构,但已被证明足以编写数千行的安全应用程序和大型加密协议。
1.1 F# 模块语法
F# 程序由一系列模块组成,模块的语法定义如下:
- 模式(Patterns) :
P,Q ::=
(),true,false,i,“s” // 常量: 单位、布尔值、整数、字符串
x // 变量
(P1,...,Pn) // 元组
h P // 构造函数
- 表达式(Expressions) :
e ::=
(),true,false,i,“s” // 常量: 单位、布尔值、整数、字符串
x // 变量
(e1,...,en) // 元组
fun x → e // 函数 (x 的作用域是 e)
h e // 构造函数应用
e1 e2 // 函数应用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



