Loading

安全规约-第一讲

 

时间:2022/08/27

 

课程链接:安全规约(第一讲)

参考文献:

1. 密码学入门之安全模型

2. 密码学入门之安全模型, revisited

 

对于如何定义一个密码系统中的算法要从以下七个方面入手:

1. 定义这个密码系统的安全服务,这就和写论文一样,需要讲好一个故事,陈述一下这个密码系统的使用场景

2. 说明有哪些实体参与了这个密码系统

3. 说明该密码系统中涉及到哪些算法

4. 给这些算法命名,在命名时不要随意命名,最好是根据现有的习惯

5. 定义哪些实体会运行哪些算法,将上面的算法与实体联系起来

6. 描述一下算法的输入和输出,这里不涉及到算法的具体执行过程

7. 说明哪些正确性原则是这些算法所必须要满足的

在上面的第七条中我们提到了需要定义算法的正确性,下图中给出了相对具体的正确性阐述,拿数字签名算法举例,这里的正确性就是指所有生成的签名都能够被正确的验证,也就是说你这个签名算法不存在漏洞,即使用私钥生成签名后用正确的公钥无法验证签名通过。

在看完密码系统定义的相关知识之后,作者又对安全模型进行了阐述。这里的安全模型对应于上面的密码系统(cryptosystem),也就是说在定义完密码系统之后需要跟着相应的安全模型,安全模型可以抽象的看作是一系列安全攻击的集合,但并不是所有安全攻击的集合。

在给出的参考文献1中给出了安全模型的作用,就是把对一个密码方案的攻击描述成一个计算问题。

之所以要描述成一个计算问题,主要是有以下两方面的原因:

一个安全模型大多数情况下都涉及到两方,分别是攻击者和挑战者,其中挑战者保存有该密码系统的秘密密钥,而攻击者的目的是为了攻破这个密码系统,两者之间存在信息差。在定义安全模型时,主要包含两个方面,分别是攻击者的能力和安全目标。

定义安全模型需要四步:

1. 初始化:对攻击者和挑战者进行初始化,比如挑战者生成公私钥,然后将公钥发送给攻击者。

2. 能力:描述攻击者可以询问什么以及什么时候能发起这个询问,需要注意的是,在安全规约中,攻击可以看作询问,即attack=query。

3. 安全目标:攻击者获胜的条件。

4. 攻击者的优势:对于一个密码系统,存在一个天然被猜测的概率,就比如抛硬币来猜正反,你在什么信息都不知道的情况下,也有1/2的概率猜对,但这并不是攻击者的优势,而是一个天然猜对的概率。而攻击者的优势是,当你获得一些信息之后,可能会提高你猜对的概率,也就是在1/2之上的概率,如果这个概率是可以忽略的,那么该密码系统是安全的,如果不能忽略,则该密码系统是不安全的。 

除了上面提到这几点之外,我们在定义安全模型时不能考虑攻击者发起的trivial attack,比如攻击者向挑战者询问它的私钥,如果攻击者拿到私钥后,这个密码系统就会变得很脆弱;以及攻击者的策略也不需要考虑,对于挑战者而言,只需要诚实且正确的回答攻击者的询问。此外,安全模型需要确保攻击者的优势是可以忽略的,也就是说在该安全模型下,这个密码系统是安全的,它可以抵御该模型下的一系列攻击,不能定义一个不安全的安全模型。

下面给出了定义一个安全模型的例子:

安全模型并不是固定不变的,根据不同的场景也可以给出或强或弱的安全模型。强安全模型指的是攻击者的能力更强,密码系统能抵御的攻击越多;弱安全模型指的是攻击者的能力更弱,密码系统能抵御的攻击更少。

既然上面提出了安全模型也分强弱,那如何比较安全模型的强弱呢,参考文献1给出了比较的三个角度:

下面进行了抽象,在一个安全模型下破获一个方案相当于解决一个计算问题。

在上面给出的参考文献2中,作者通过一个身份密码学的方案说明了之前没有解答的一个问题,即小明能不能把安全模型能定义得弱一些,因为他构造的方案无法在更强的安全模型下进行安全证明。这里通过作者给出的例子可以看出,如果虽然提出的方案能够在给出的弱安全模型下被证明安全,但是由于这个弱安全模型脱离了实际,所以也是没有意义的,感觉作者这里的意思是,提出弱安全模型肯定是可以的,但是需要符合实际。

 

posted @ 2022-08-27 15:41    阅读(224)  评论(2编辑  收藏  举报