本系列学习内容为剑桥大学论文《Reasoning about Belief in Cryptographic Protocols》,主要为GNY逻辑,方便日后使用prolog实现。
新发现了一个Latex公式汇总网站,感兴趣的可以参考Latex公式
概念和符号
公式
S
S
S和
K
K
K分别代表共享秘密和加密密钥。
(1)
(
X
,
Y
)
:
(X,Y):
(X,Y):两个公式的结合
(
c
o
n
j
u
n
c
t
i
o
n
)
(conjunction)
(conjunction)
(2)
{
X
}
K
\left\{X\right\}_K
{X}K和
{
X
}
K
−
1
:
\left\{X\right\}_K^{-1}:
{X}K−1:分别代表使用
K
K
K加密和解密,满足
{
{
X
}
K
}
K
−
1
=
X
\left\{\left\{X\right\}_K\right\}_K^{-1}={X}
{{X}K}K−1=X,但不一定满足
{
{
X
}
K
−
1
}
K
=
X
\left\{\left\{X\right\}_K^{-1}\right\}_K={X}
{{X}K−1}K=X
(3)
{
X
}
+
K
\left\{X\right\}_{+K}
{X}+K和
{
X
}
−
K
:
\left\{X\right\}_{-K}:
{X}−K:公钥加密和解密,满足
{
{
X
}
+
K
}
−
K
=
X
\left\{\left\{X\right\}_{+K}\right\}_{-K}={X}
{{X}+K}−K=X,有一些公钥体系(比如
R
S
A
RSA
RSA)也满足
{
{
X
}
−
K
}
+
K
=
X
\left\{\left\{X\right\}_{-K}\right\}_{+K}={X}
{{X}−K}+K=X
(4)
H
(
x
)
:
X
H(x):X
H(x):X的一个单向函数
(5)
F
(
X
1
,
.
.
.
,
X
n
)
:
F
F(X_1,...,X_n):F
F(X1,...,Xn):F是一个多对一的函数,对任意的
X
i
(
1
≤
i
≤
n
)
X_i(1\leq i\leq n)
Xi(1≤i≤n)和常量
C
1
,
.
.
.
,
C
n
−
1
C_1,...,C_{n-1}
C1,...,Cn−1,
F
(
C
1
,
.
.
.
,
C
i
−
1
,
X
i
,
C
i
+
1
,
.
.
.
,
C
n
)
F(C_1,...,C_{i-1},X_i,C_{i+1},...,C_{n})
F(C1,...,Ci−1,Xi,Ci+1,...,Cn)是一对一的函数,并且它的逆也是可以计算的。
F
(
X
)
F(X)
F(X)表示一个计算上可行的一对一函数,其逆在计算上也是可行的
声明
\quad
让
P
P
P和
Q
Q
Q来代表实体。
(1)
P
◃
X
:
P
P\triangleleft X:P
P◃X:P被告知
X
X
X。这可能是在执行了一些计算,如解密之后。也就是说,被告知的公式可以是消息本身,也可以是该消息的任何可计算的内容
(2)
P
∋
X
:
P
P\ni X:P
P∋X:P拥有或者是有能力拥有
X
X
X。在运行的特定阶段,这包括
P
P
P被告知的所有公式,它开始会话的所有公式以及在运行中生成的所有公式。此外,
P
P
P拥有或者能够拥有所有根据它已经拥有的公式所计算出来的一切
(3)
P
∣
∼
X
:
P
P|\sim X:P
P∣∼X:P曾经传输过
X
X
X。
X
X
X可以是一个消息本身,也可以从这样的消息中计算出一些内容,即一个公式可以隐式地表达
(4)
P
∣
≡
♯
(
X
)
:
P
P|\equiv \sharp(X):P
P∣≡♯(X):P相信或者有权相信
X
X
X是新鲜的。也就是说,在当前协议运行之前,
X
X
X没有被用于相同的目的
(5)
P
∣
≡
ϕ
(
X
)
:
P
P|\equiv \phi (X):P
P∣≡ϕ(X):P相信或者有权相信
X
X
X是可识别的。也就是说,如果在实际收到
X
X
X之前
P
P
P对其内容有一定的期望,那么
P
P
P就会识别
X
X
X
(6)
P
∣
≡
P
↔
S
Q
:
P
P|\equiv P\stackrel{S}{\leftrightarrow} Q:P
P∣≡P↔SQ:P相信或者有权相信
S
S
S是
P
P
P和
Q
Q
Q之间合适的秘密。他们可以正确的使用它来相互证明身份,也可以使用它或者由它生成一个密钥来进行交流,除了
P
P
P、
Q
Q
Q以及他们所信任的实体
(
p
r
i
n
c
i
p
a
l
)
(principal)
(principal)(不太清楚这个具体应该怎么翻译,目前觉着实体这个词比较合适)间,其他都不知道
S
S
S。然而在这种情况下,受信任的实体间不能使用
S
S
S作为身份的证明或者交流密钥
(7)
P
∣
≡
↦
+
K
Q
:
P
P|\equiv \stackrel{+K}\mapsto Q:P
P∣≡↦+KQ:P相信或者有权相信
+
K
+K
+K是
Q
Q
Q合适的公钥。除了
Q
Q
Q和
Q
Q
Q所信任的实体,相匹配的私钥
−
K
-K
−K不应该被其他人知道。然而,在这种情况下,受信任的主体不应该使用它来证明身份或交流
\quad
让
C
C
C代表声明。
(8)
C
1
,
C
2
:
C_1,C_2:
C1,C2:连词。我们将连接词视为具有关联性和可交换性等性质的集合
(9)
P
∣
≡
C
:
P
P|\equiv C:P
P∣≡C:P相信或者有权相信声明
C
C
C成立
“非起源于这儿”公式
P
◃
∗
X
:
P
P\triangleleft \ast X:P
P◃∗X:P被告知一个在当前运行中他之前从未传输过的公式。
*个人理解就是非本身发出的消息。
逻辑假设
这里只列出了之后论文中会使用的逻辑规则,全部的见附录。
被告知规则
T
2
T2\quad
T2
P
◃
(
X
,
Y
)
P
◃
(
X
)
\frac{P\triangleleft (X,Y)}{P\triangleleft(X)}
P◃(X)P◃(X,Y)
被告知一个公式意味着被告知它的每个连接组件。
T
3
T3\quad
T3
P
◃
{
X
}
K
,
P
∋
K
P
◃
(
X
)
\frac{P\triangleleft \left\{X\right\}_K,P\ni K}{P\triangleleft(X)}
P◃(X)P◃{X}K,P∋K
如果
P
P
P被告知了一个用他所拥有的密钥加密的公式,那么认为他已经被告知了该公式的解密内容。
拥有规则
P
1
P1\quad
P1
P
◃
X
P
∋
X
\frac{P\triangleleft X}{P\ni X}
P∋XP◃X
实体能够拥有任何告知他的东西。
P
2
P2\quad
P2
P
∋
X
,
P
∋
Y
P
∋
(
X
,
Y
)
,
P
∋
F
(
X
,
Y
)
\frac{P\ni X,P\ni Y}{P\ni (X,Y),P\ni F(X,Y)}
P∋(X,Y),P∋F(X,Y)P∋X,P∋Y
如果实体拥有两个公式,那么他也拥有这两个公式的连接以及他们的函数值。
新鲜性规则
实体对公式新鲜度的信念表明,他相信该公式在之前的任何协议运行中都没有相同的值。
F
1
F1\quad
F1
P
∣
≡
♯
(
X
)
P
∣
≡
♯
(
X
,
Y
)
,
P
∣
≡
♯
(
F
(
X
)
)
\frac{P|\equiv \sharp(X)}{P|\equiv \sharp(X,Y),P|\equiv \sharp(F(X))}
P∣≡♯(X,Y),P∣≡♯(F(X))P∣≡♯(X)
如果
P
P
P相信公式
X
X
X是新鲜的,那么他有权相信任何
X
X
X是分量的公式都是新鲜的,并且计算上可行的一对一函数
F
F
F是新鲜的。
F
2
F2\quad
F2
P
∣
≡
♯
(
X
)
,
P
∋
K
P
∣
≡
♯
(
{
X
}
K
)
,
P
∣
≡
♯
(
{
X
}
K
−
1
)
\frac{P|\equiv \sharp(X),P\ni K}{P|\equiv \sharp(\left\{X\right\}_K),P|\equiv \sharp(\left\{X\right\}_K^{-1})}
P∣≡♯({X}K),P∣≡♯({X}K−1)P∣≡♯(X),P∋K
如果
P
P
P认为一个公式
X
X
X是新鲜的,并且拥有一个密钥,那么
P
P
P有权相信使用该密钥对
X
X
X的加密和解密都是新鲜的。
可识别性规则
R
1
R1\quad
R1
P
∣
≡
ϕ
(
X
)
P
∣
≡
ϕ
(
X
,
Y
)
,
P
∣
≡
ϕ
(
F
(
X
)
)
\frac{P|\equiv \phi(X)}{P|\equiv \phi(X,Y),P|\equiv \phi(F(X))}
P∣≡ϕ(X,Y),P∣≡ϕ(F(X))P∣≡ϕ(X)
如果一个实体
P
P
P相信公式
X
X
X是可识别的,那么他有权相信任何
X
X
X是分量的公式都是可识别的,并且
X
X
X的计算可行函数
F
F
F是可识别的。
R
2
R2\quad
R2
P
∣
≡
ϕ
(
X
)
,
P
∋
K
P
∣
≡
ϕ
(
{
X
}
K
)
,
P
∣
≡
ϕ
(
{
X
}
K
−
1
)
\frac{P|\equiv \phi(X),P\ni K}{P|\equiv \phi(\left\{X\right\}_K),P|\equiv \phi(\left\{X\right\}_K^{-1})}
P∣≡ϕ({X}K),P∣≡ϕ({X}K−1)P∣≡ϕ(X),P∋K
如果一个实体
P
P
P相信一个公式
X
X
X是可识别的,并且
P
P
P拥有一个密钥
K
K
K,那么
P
P
P有权相信用
K
K
K对
X
X
X的加密和解密是可识别的。
信息解释规则
I
1
I1\quad
I1
P
◃
∗
{
X
}
K
,
P
∋
K
,
P
∣
≡
P
↔
K
Q
,
P
∣
≡
ϕ
(
X
)
,
P
∣
≡
♯
(
X
,
K
)
P
∣
≡
Q
∣
∼
X
,
P
∣
≡
Q
∣
∼
{
X
}
K
,
P
∣
≡
Q
∋
K
\frac{P\triangleleft \ast \left\{X\right\}_K,P\ni K,P|\equiv P\stackrel{K}{\leftrightarrow} Q,P|\equiv \phi(X),P|\equiv \sharp(X,K)}{P|\equiv Q|\sim X,P|\equiv Q|\sim \left\{X\right\}_K,P|\equiv Q\ni K}
P∣≡Q∣∼X,P∣≡Q∣∼{X}K,P∣≡Q∋KP◃∗{X}K,P∋K,P∣≡P↔KQ,P∣≡ϕ(X),P∣≡♯(X,K)
如果对于一个实体
P
P
P,以下所有条件都成立:
(1)
P
P
P收到一个由加密
X
X
X组成的公式,并标记“非起源于这儿”;
(2)
P
P
P拥有密钥
K
K
K;
(3)
P
P
P认为
K
K
K是适合自己和
Q
Q
Q的秘密;
(4)
P
P
P认为公式
X
X
X是可以识别的;
(5)
P
P
P认为
K
K
K或
X
X
X是新鲜的。
那么P有权相信以下几点:
Q
Q
Q曾经传达
X
X
X,
Q
Q
Q曾经传递用
K
K
K加密的公式
X
X
X,
Q
Q
Q拥有
K
K
K。
I
6
I6\quad
I6
P
∣
≡
Q
∣
∼
X
,
P
∣
≡
♯
(
X
)
P
∣
≡
Q
∋
X
\frac{P|\equiv Q|\sim X,P|\equiv \sharp(X)}{P|\equiv Q \ni X}
P∣≡Q∋XP∣≡Q∣∼X,P∣≡♯(X)
如果
P
P
P相信
Q
Q
Q曾经传达了公式
X
X
X,并且
P
P
P相信
X
X
X是新鲜的,那么
P
P
P有权相信
Q
Q
Q拥有
X
X
X。
合理性规则
如果
C
1
C
2
\frac{C_1}{C_2}
C2C1是一个公式,那么对任何的实体
P
P
P,也满足
P
∣
≡
C
1
P
∣
≡
C
2
\frac{P|\equiv C_1}{P|\equiv C_2}
P∣≡C2P∣≡C1。
例如,根据上述的
P
2
P2
P2规则,有以下公式:
Q
∣
≡
P
∋
X
,
Q
∣
≡
P
∋
Y
Q
∣
≡
P
∋
F
(
X
,
Y
)
\frac{Q|\equiv P\ni X,Q|\equiv P\ni Y}{Q|\equiv P\ni F(X,Y)}
Q∣≡P∋F(X,Y)Q∣≡P∋X,Q∣≡P∋Y
信任和管辖权
J
u
r
i
s
d
i
c
t
i
o
n
Jurisdiction
Jurisdiction代表信任和授权。
J
1
J1\quad
J1
P
∣
≡
Q
∣
⇒
C
,
P
∣
≡
Q
∣
≡
C
P
∣
≡
C
\frac{P|\equiv Q|\Rightarrow C,P|\equiv Q|\equiv C}{P|\equiv C}
P∣≡CP∣≡Q∣⇒C,P∣≡Q∣≡C
如果P相信Q对某些声明C有管辖权,而且Q相信C,那么P也应该相信C。
J
2
J2\quad
J2
P
∣
≡
Q
∣
⇒
Q
∣
≡
∗
,
P
∣
≡
Q
∣
∼
(
X
⇝
C
)
,
P
∣
≡
♯
(
X
)
P
∣
≡
Q
∣
≡
C
\frac{P|\equiv Q|\Rightarrow Q|\equiv \ast,P|\equiv Q|\sim(X\leadsto C),P|\equiv \sharp(X)}{P|\equiv Q|\equiv C}
P∣≡Q∣≡CP∣≡Q∣⇒Q∣≡∗,P∣≡Q∣∼(X⇝C),P∣≡♯(X)
如果P认为Q是诚实和称职的,并且P收到一条来自Q的消息
X
⇝
C
X\leadsto C
X⇝C,那么P应该相信Q真的相信C。
J 3 J3\quad J3 P ∣ ≡ Q ∣ ⇒ Q ∣ ≡ ∗ , P ∣ ≡ Q ∣ ≡ Q ∣ ≡ C P ∣ ≡ Q ∣ ≡ C \frac{P|\equiv Q|\Rightarrow Q|\equiv \ast,P|\equiv Q|\equiv Q|\equiv C}{P|\equiv Q|\equiv C} P∣≡Q∣≡CP∣≡Q∣⇒Q∣≡∗,P∣≡Q∣≡Q∣≡C
附加说明
公式 X X X被传达的先决条件由声明 C C C表示,在协议中表示为 X ⇝ C X\leadsto C X⇝C