本系列为《Introduction to Security Reduction》的学习笔记。
同样的,我在阅读时更多的会关注公钥密码学相关的知识,因此对于数字签名等其他密码学相关的内容读者可以自己在书中进行查阅。
Chapter 1
说明
一个安全的公钥密码结构首先应该阐明其密码概念,并将算法及其相应的安全模型的定义形式化。在公钥密码密码学中,有两种比较流行的证明方式,分别基于game和simulation。
Chapter 2
公钥加密
这部分主要介绍了公钥加密的体系结构,不再赘述。
关于公钥密码不可区分的安全性,设置游戏中一个挑战者一个敌人,其中挑战者负责生成加密结构,敌人试着打破这个结构。开始阶段,由挑战者生成
(
p
k
,
s
k
)
(pk,sk)
(pk,sk),并将
p
k
pk
pk发给敌人,自己保存
s
k
sk
sk。敌人在信息空间范围内生成两个不可区分的信息
m
0
,
m
1
m0,m1
m0,m1来发起挑战。挑战者从
{
m
0
,
m
1
}
\left\{m0,m1\right\}
{m0,m1}中随机挑选一个信息
m
c
m_c
mc并将其加密为
C
T
∗
CT^*
CT∗。如果允许
d
e
c
r
y
p
t
i
o
n
decryption
decryption操作的话,敌人可以对自己任意选择的密文进行解密除了
C
T
∗
CT^*
CT∗。最终,敌人在挑战者密文
C
T
∗
CT^*
CT∗中输出对选择信息
m
c
m_c
mc的猜测。
针对选择密文攻击的不可区分性的安全模型(IND-CCA)描述和上述一样,加入了敌人优势的定义。
基于ID的加密体系
由于每个公钥需要看起来是随机的字符串,因此公钥加密需要一个证书系统。在IBE体系中,有一个由PKG
(
p
r
i
v
a
t
e
−
k
e
y
g
e
n
e
r
a
t
o
r
)
(private-key\,generator)
(private−keygenerator)生成的主密钥对
(
m
p
k
,
m
s
k
)
(mpk,msk)
(mpk,msk)。其中
m
p
k
mpk
mpk发送给所有用户,而
m
s
k
msk
msk由PKG自己保存。假设Bob想要发送给Alice一个敏感的信息,Bob用
m
p
k
mpk
mpk和Alice的身份
I
D
ID
ID加密信息,Alice解密时使用自己的私钥
d
I
D
d_{ID}
dID(由PKG计算,包含
I
D
ID
ID和
m
s
k
msk
msk)。
IBE体系仅需要验证
m
p
k
mpk
mpk的合法性,只有与身份信息匹配,接收方才能PKG那里获取私钥来解密。
关于IBE的不可区分的安全性,同样由挑战者和敌人的游戏组成。挑战者生成IBE体系,而敌人破坏这个体系。开始阶段,挑战者生成主密钥对,并将
m
p
k
mpk
mpk发送给敌人。敌人输出两个不可区分的信息
{
m
0
,
m
1
}
\left\{m_0,m_1\right\}
{m0,m1}和
I
D
∗
ID^*
ID∗,挑战者从中随机选择一个信息并为
I
D
∗
ID^*
ID∗加密。在游戏期间,敌人可以自适应的对挑战身份以外的任何身份进行私钥查询,并对挑战密文以外的任意密文进行解密查询。特别的,敌人可以对满足
(
I
D
=
I
D
∗
,
C
T
≠
C
T
∗
)
(ID=ID^*,CT\neq CT^*)
(ID=ID∗,CT=CT∗)或者
(
I
D
≠
I
D
∗
,
C
T
=
C
T
∗
)
(ID\neq ID^*,CT=CT^*)
(ID=ID∗,CT=CT∗)的请求进行解密。最终,敌人输出对于挑战密文
C
T
∗
CT^*
CT∗的选择信息的猜测。
针对IBE的选择密文攻击的不可区分性的安全模型定义如上所述,再加入对于敌人优势的定义。
以下再加入两个较弱的安全模型。
(1)敌人必须在Setup阶段之前选择挑战表标识
I
D
∗
ID^*
ID∗。
(2)敌人不允许做任何的
d
e
c
r
y
p
t
i
o
n
decryption
decryption。
公钥加密和IBE加密的发展
PKE(Public key exchange)
PKE的安全模型包括对解密和安全目标的建模。
对于解密查询来说,定义包括
c
h
o
s
e
n
−
p
l
a
i
n
t
e
x
t
a
t
t
a
c
k
s
(
C
P
A
)
chosen-plaintext\, attacks(CPA)
chosen−plaintextattacks(CPA),
c
h
o
s
e
n
−
c
i
p
h
e
r
t
e
x
t
a
t
t
a
c
k
s
(
C
C
A
)
chosen-ciphertext\,attacks(CCA)
chosen−ciphertextattacks(CCA)和
n
o
n
−
a
d
a
p
t
i
v
e
a
t
t
a
c
k
s
(
C
C
A
1
)
non-adaptive\,attacks(CCA1)
non−adaptiveattacks(CCA1)。在CCA1中,敌人只允许在接收密文挑战之前进行揭秘查询。
对于安全目标来说,主要有四个定义:
(1)
T
h
e
d
e
f
i
n
i
t
i
o
n
o
f
i
n
d
i
s
t
i
n
g
u
i
s
h
a
b
i
l
i
t
y
(
I
N
D
)
The \,definition\,of\,indistinguishability (IND)
Thedefinitionofindistinguishability(IND):敌人无法区分挑战密文中加密信息。
(2)
T
h
e
d
e
f
i
n
i
t
i
o
n
o
f
s
e
m
a
n
t
i
c
s
e
c
u
r
i
t
y
(
S
S
)
The\,definition\,of\,semantic\,security (SS)
Thedefinitionofsemanticsecurity(SS):敌人无法从密文中计算加密信息。
(3)
T
h
e
d
e
f
i
n
i
t
i
o
n
o
f
n
o
n
−
m
a
l
l
e
a
b
i
l
i
t
y
(
N
M
)
The\,definition\,of\,non-malleability (NM)
Thedefinitionofnon−malleability(NM):给定挑战密文,对手无法输出另一个密文,使相应的加密信息“有意义相关”。
(4)
T
h
e
d
e
f
i
n
i
t
i
o
n
o
f
p
l
a
i
n
t
e
x
t
a
w
a
r
e
n
e
s
s
(
P
A
)
The\,definition\,of\,plaintext\,awareness (PA)
Thedefinitionofplaintextawareness(PA):对手在不知道要加密的底层消息的情况下无法创建密文。
IBE
与PKE类似,IBE安全模型有一些变体,如IND-ID-CCA1、IND-sID-CCA1、NM-ID-CPA、NM-ID-CCA1、NM-ID-CCA、NM-sID-CCA、SS-ID-CPA、SS-ID-CCA1、SS-ID-CCA和SS-sIDCPA。
这些具体的定义之后有机会再进行了解。
Chapter 4
安全规约就是将密码体系的不可破解归于到数学困难问题上。数学问题可以分为计算性问题和决定性问题。
算法分类
主要可以分为确定性算法和概率性算法。
如何证明新的困难问题
公钥密码学中,有可能一个方案在没有任何有效攻击的情况下看起来是安全的,但没有可以用来降低安全的困难问题。在这种情况下,就得创建一个新的困难问题。一个新的困难问题和一个新提出的方案相同,如果没有分析的话,其困难性就不能作为安全规约的基础。以下介绍三种流行的困难性分析方法。
(1)规约
假设一个有效的算法A可以解决新的困难问题。我们构造一个规约算法,将现有的困难问题的随机实例B转换为A的实例,这样A问题实例的解就意味着B问题实例的解。由于B很困难,所以新的难题A很容易的假设是错误的。因此,如果没有计算效率高的求解算法,问题A就是困难的。
(2)成员资格证明
假设存在一个一般问题,已经证明了没有任何计算有效的解算法。我们只需要证明这个新的难题是这个一般难题的一个特殊情况。
(3)*一般群模型中的难解性分析
在这个模型里,只给了敌人一个随机选择的组编码,而不是一个特定的组。粗略的说,对手不能直接执行任何的组操作,所有的查询操作必须在一个oracle,这意味着只允许查询基本的组操作。我们分析在这样的oracle下,敌人无法解决这个难题。
最后一种方法仅适用于基于组的难题。
弱假设和强假设
在这里,弱假设意味着破坏困难性假设的时间成本远大于强假设。
安全模型
安全模型可以看作是挑战者和敌人的游戏(交互式)。应包含以下三点:
(1)敌人可以询问何种信息
(2)敌人何时能够询问信息
(3)敌人怎样赢得游戏(破坏密码体系)
第4章内容较多,今天暂时学习到P50。