Chapter 4
理想的安全规约
应该包含四个特征:
(1)安全模型:应该是最强的安全模型,允许敌人最大限度、灵活、自适应的像挑战者查询,并以最小的要求赢得游戏。
(2)困难问题:用于安全规约的潜在难题必须是在同一数学原语上定义的所有难题中最难的一个。
(3)规约消耗和规约丢失:规约消耗T和规约损失L必须是最小值。也就是说,T在敌人的查询数量中是线性的,并且L=1。
(4)敌人的计算限制:除了时间和优势外,对敌人没有计算限制。例如,允许对手自己访问哈希函数。然而,在随机的Oracle模型中,对手不允许访问哈希函数,而是必须查询一个随机的Oracle。
适应性攻击
假设
a
a
a是集合
{
0
,
1
}
\left\{0,1\right\}
{0,1}中的一个,如果
a
a
a是随机挑选的,那么
a
a
a取到0或1的概率各占一半。但如果是适应性选择
a
a
a,那么0或1的概率就不清楚了。
自适应攻击是一种特殊的攻击,其中敌人对给定空间的选择不是均匀分布的,而是基于一种未知的概率分布。
规约中敌人的计算能力
simulator必须隐藏秘密信息
I
\mathbb{I}
I,一旦敌人从给定的参数中获取到了
I
\mathbb{I}
I,那就是一次无效的攻击。为了保证敌人不知道
I
\mathbb{I}
I,simulator需要使用困难问题来隐藏它,有以下三种方法:
(1)
I
\mathbb{I}
I被隐藏在一堆困难问题
P
1
,
P
2
,
P
3....
P1,P2,P3....
P1,P2,P3....中,我们需要证明这些困难问题比P要难,并且只能通过解决这些困难问题才可以获取
I
\mathbb{I}
I。这种方式有挑战性并且不太实际,因为我们可能很难将
P
1
,
P
2
,
P
3....
P1,P2,P3....
P1,P2,P3....的困难性规约到潜在的困难问题
P
P
P上。
(2)
I
\mathbb{I}
I被隐藏在困难问题
P
P
P中。
(3)
I
\mathbb{I}
I被隐藏在绝对的困难问题中,即使敌人有无限的计算能力也不可解。这种方法十分有效,因为绝对的困难问题能普遍使用并且独立于困难问题
P
P
P。这种情况下,我们仅需证明
I
\mathbb{I}
I隐藏在绝对的困难问题中。
敌人绝不能知道的信息
(1)随机数
(2)*问题实例
(3)如何解决一个绝对困难的问题
粗略来说,敌人可以利用它已知的信息对simulator发起无用的攻击,而simulator应该利用敌人不知道的信息迫使它以不可忽略的概率发起有用的攻击。
不可区分的模拟
重要的概率公式
Latex公式的使用很重要,具体的一些细节读者可以参考Latex公式
说明:
A
c
A^c
Ac代表
A
A
A不发生的补充事件。
等式
(1)
P
r
[
B
]
=
1
−
P
r
[
B
c
]
Pr[B]=1-Pr[B^c]
Pr[B]=1−Pr[Bc]
(2)
P
r
[
A
]
=
P
r
[
A
∣
B
]
P
r
[
B
]
+
P
r
[
A
∣
B
c
]
P
r
[
B
c
]
Pr[A]=Pr[A|B]Pr[B]+Pr[A|B^c]Pr[B^c]
Pr[A]=Pr[A∣B]Pr[B]+Pr[A∣Bc]Pr[Bc]
(3)
P
r
[
A
∧
B
]
=
P
r
[
B
]
⋅
P
r
[
A
∣
B
]
Pr[A\wedge B]=Pr[B]\cdot Pr[A|B]
Pr[A∧B]=Pr[B]⋅Pr[A∣B]
(4)
P
r
[
A
∧
B
]
=
P
r
[
A
]
⋅
P
r
[
B
∣
A
]
Pr[A\wedge B]=Pr[A]\cdot Pr[B|A]
Pr[A∧B]=Pr[A]⋅Pr[B∣A]
(5)
P
r
[
A
∧
B
]
=
P
r
[
B
∣
A
]
⋅
P
r
[
A
]
P
r
[
B
]
Pr[A\wedge B]=\frac{Pr[B|A]\cdot Pr[A]}{Pr[B]}
Pr[A∧B]=Pr[B]Pr[B∣A]⋅Pr[A]
(6)
P
r
[
A
∣
B
]
=
1
−
P
r
[
A
c
∣
B
]
Pr[A|B]=1-Pr[A^c|B]
Pr[A∣B]=1−Pr[Ac∣B]
(7)
P
r
[
A
1
∧
A
2
∧
.
.
.
∧
A
q
]
=
1
−
P
r
[
A
1
c
∨
A
2
c
∨
.
.
.
∨
A
q
c
]
Pr[A_1\wedge A_2\wedge...\wedge A_q]=1-Pr[A_1^c\vee A_2^c\vee...\vee A_q^c]
Pr[A1∧A2∧...∧Aq]=1−Pr[A1c∨A2c∨...∨Aqc]
(8)
P
r
[
A
1
∨
A
2
∨
.
.
.
∨
A
q
]
=
1
−
P
r
[
A
1
c
∧
A
2
c
∧
.
.
.
∧
A
q
c
]
Pr[A_1\vee A_2\vee...\vee A_q]=1-Pr[A_1^c\wedge A_2^c\wedge...\wedge A_q^c]
Pr[A1∨A2∨...∨Aq]=1−Pr[A1c∧A2c∧...∧Aqc]
(9)
P
r
[
(
A
1
∧
A
2
∧
.
.
.
∧
A
q
)
∣
B
]
=
1
−
P
r
[
(
A
1
c
∨
A
2
c
∨
.
.
.
∨
A
q
c
)
∣
B
]
Pr[(A_1\wedge A_2\wedge...\wedge A_q)|B]=1-Pr[(A_1^c\vee A_2^c\vee...\vee A_q^c)|B]
Pr[(A1∧A2∧...∧Aq)∣B]=1−Pr[(A1c∨A2c∨...∨Aqc)∣B]
(10)
P
r
[
(
A
1
∨
A
2
∨
.
.
.
∨
A
q
)
∣
B
]
=
1
−
P
r
[
(
A
1
c
∧
A
2
c
∧
.
.
.
∧
A
q
c
)
∣
B
]
Pr[(A_1\vee A_2\vee...\vee A_q)|B]=1-Pr[(A_1^c\wedge A_2^c\wedge...\wedge A_q^c)|B]
Pr[(A1∨A2∨...∨Aq)∣B]=1−Pr[(A1c∧A2c∧...∧Aqc)∣B]
不等式
(1)
P
r
[
A
1
∨
A
2
∨
.
.
.
∨
A
q
]
≤
∑
i
=
1
q
P
r
[
A
i
]
Pr[A_1\vee A_2\vee...\vee A_q]\leq \sum_{i=1}^{q}Pr[A_i]
Pr[A1∨A2∨...∨Aq]≤∑i=1qPr[Ai]
(2)
P
r
[
A
1
∧
A
2
∧
.
.
.
∧
A
q
]
≥
∏
i
=
1
q
P
r
[
A
i
]
Pr[A_1\wedge A_2\wedge...\wedge A_q]\geq \prod_{i=1}^{q}Pr[A_i]
Pr[A1∧A2∧...∧Aq]≥∏i=1qPr[Ai]
(3)
P
r
[
A
1
∨
A
2
∨
.
.
.
∨
A
q
]
≤
1
−
∏
i
=
1
q
P
r
[
A
i
c
]
Pr[A_1\vee A_2\vee...\vee A_q]\leq 1-\prod_{i=1}^{q}Pr[A_i^c]
Pr[A1∨A2∨...∨Aq]≤1−∏i=1qPr[Aic]
(4)
P
r
[
A
1
∧
A
2
∧
.
.
.
∧
A
q
]
≥
1
−
∑
i
=
1
q
P
r
[
A
i
c
]
Pr[A_1\wedge A_2\wedge...\wedge A_q]\geq 1-\sum_{i=1}^{q}Pr[A_i^c]
Pr[A1∧A2∧...∧Aq]≥1−∑i=1qPr[Aic]
(5)
P
r
[
A
]
≥
P
r
[
A
∣
B
]
⋅
P
r
[
B
]
Pr[A]\geq Pr[A|B]\cdot Pr[B]
Pr[A]≥Pr[A∣B]⋅Pr[B]
条件等式
(1)如果
A
A
A和
B
B
B相互独立,
P
r
[
A
∣
B
]
=
P
r
[
A
]
Pr[A|B]=Pr[A]
Pr[A∣B]=Pr[A]
(2)如果所有的事件都是独立的,
P
r
[
A
1
∨
A
2
∨
.
.
.
∨
A
q
]
=
∑
i
=
1
q
P
r
[
A
i
]
Pr[A_1\vee A_2\vee...\vee A_q]=\sum_{i=1}^{q}Pr[A_i]
Pr[A1∨A2∨...∨Aq]=∑i=1qPr[Ai]
(3)如果所有的事件都是独立的,
P
r
[
A
1
∧
A
2
∧
.
.
.
∧
A
q
]
=
∏
i
=
1
q
P
r
[
A
i
]
Pr[A_1\wedge A_2\wedge...\wedge A_q]=\prod_{i=1}^{q}Pr[A_i]
Pr[A1∧A2∧...∧Aq]=∏i=1qPr[Ai]
Random和Independent的概念
假设
(
A
,
B
,
C
)
(A,B,C)
(A,B,C)是空间
Z
p
\mathbb{Z}_p
Zp上的三个随机数。
∙
R
a
n
d
o
m
:
Z
p
\bullet Random: \mathbb{Z}_p
∙Random:Zp中
C
C
C和其他的概率都相同,为
1
p
\frac{1}{p}
p1
∙
I
n
d
e
p
e
n
d
e
n
t
:
\bullet Independent:
∙Independent:根据
A
A
A和
B
B
B不能计算出
C
C
C
Random Oracle
Hash Functions vs Random Oracles
∙
K
n
o
w
l
e
d
g
e
.
\bullet Knowledge.
∙Knowledge.如果是
H
a
s
h
Hash
Hash函数的话,给定
x
x
x,敌人可以知道
H
(
x
)
H(x)
H(x),而如果是
R
a
n
d
o
m
O
r
a
c
l
e
Random\,Oracle
RandomOracle,敌人只有询问
x
x
x才可以获得
H
(
x
)
H(x)
H(x)
∙
I
n
p
u
t
.
\bullet Input.
∙Input.二者有相同的输入空间,但是对
H
a
s
h
Hash
Hash函数的输入是指数级别的,对
R
a
n
d
o
m
O
r
a
c
l
e
Random\,Oracle
RandomOracle的输入是多项式级别的。
∙
O
u
t
p
u
t
.
\bullet Output.
∙Output.二者具有相同的输出空间,但是
H
a
s
h
Hash
Hash函数的输出取决于输入和哈希函数算法,而
R
a
n
d
o
m
O
r
a
c
l
e
Random\,Oracle
RandomOracle的输出由
s
i
m
u
l
a
t
o
r
simulator
simulator定义。前者输出不需要均匀分布,而后者必须随机且均匀分布。
∙
R
e
p
r
e
s
e
n
t
a
t
i
o
n
.
\bullet Representation.
∙Representation.哈希函数可以看作是从输入空间到输出空间的映射,根据哈希函数算法计算该映射。
R
a
n
d
o
m
O
r
a
c
l
e
Random\, Oracle
RandomOracle可以看作是一个虚拟哈希函数,它由输入和输出组成的列表表示。
R
a
n
d
o
m
O
r
a
c
l
e
Random\,Oracle
RandomOracle本身没有任何规则或算法来定义映射,只要求所有的输出都是随机的和独立的。
这几天仍然学习的是第4章节的内容,本次笔记到书89页。