安全规约第一讲:Definitions(Algorithm and Security Model)
安全规约主目录链接:https://blog.csdn.net/qq_43479839/article/details/117249715
标题xyi
- 安全规约第一讲:Definitions(Algorithm and Security Model)
- 1、Classical Cryptograpgy vs Modern Cryptography
- 2、How to Define Algorithms
- 3、How to Define Security Models[安全模型,可以看看西村密码学报第29期的《密码学入门之安全模型》]
- 4、Examples for Pratice
- 4.1 Online/Offline Signatures[algorithms and security model for this cryptosystem]
- 4.2 Identity-Based Signatures[algorithms and security model for this cryptosystem]
- 4.3 Public-Key Encryption[algorithms and security model for this cryptosystem]
- 4.4 Identity-Based Encryption[algorithms and security model for this cryptosystem]
- 4.5 Identity-Based Broadcast Encryption[algorithms and security model for this cryptosystem]
下面这张图第一讲的大纲,并附上郭福春老师的照片±+。
1、Classical Cryptograpgy vs Modern Cryptography
经典密码和现代密码的区别。
(密码可以分三个阶段,)
- 经典密码:古罗马时期,手算
- 近代密码:二战时期,机算
- 现代密码:20th,用数字电脑算
- 现代密码与经典密码的区别:即有很正式的定义definition、模型models(安全模型和计算模型)、证明proofs(安全规约,game-hopping proof ).
1.1 Clarified Concepts【Cryptology=Cryptography[以构造为主]+ Cryptanalysis[以分析为主]】
1.2 Clarified Concepts【Cryptology树状图】
2、How to Define Algorithms
当我们要构造cryptosystem,首先第一步就是定义算法algorithms。
当我们给定一个cryptosystem时,定义算法algorithms时,需要了解下面的:
- 第一步:理解我们安全服务的目标是什么【用故事的形式描述】
- 第二步:需要几方的参与。
- 第三步: 当我们定义一个cryptosystem时,我们到底需要几个algorithms。
- 第四步:每个算法需要用什么名字来命名。
- 第五步:谁来运行每一个算法。【映射到前面的entity,即哪个entity来运行算法】
- 第六步:每个算法输入和输出到底是什么。
- 第七步:算法满足的正确性correctness.
2.1 通过一个数字签名去介绍怎么定义算法
第一步:我们的安全服务目标是什么。motivation【通过故事给出motivation】
第二步:给出涉及的entity
第三步: 当我们定义一个cryptosystem时,我们到底需要几个算法algorithms。
【可以透过第一步的故事知道到底需要几个算法:看里面设计有几个计算,一个generate,一个sign,一个verify】
第四步:每个算法需要用什么名字来命名。
第五步:谁来运行每一个算法。【映射到前面的entity,即哪个entity来运行算法】
第六步:每个算法输入和输出到底是什么。
再通过上面把每个算法的输入输出符号定义清楚之后,需要给出形式化严格的定义。(即要对其进行描述,给出其输入和输出的语言描述[尽量规范,但是不要copy])
第七步:算法满足的正确性correctness.
3、How to Define Security Models[安全模型,可以看看西村密码学报第29期的《密码学入门之安全模型》]
在介绍安全模型之前在这里有三个问题:
- 1、怎么去分析一个方案的安全性?:How to analyze the security of a scheme?【答:通过安全模型来进行分析】
- 2、给定的一个方案(它是在一个安全模型下是安全的),那么它可以抵抗所有的攻击嘛?:Can a sheme(secure in a security )【答:不是,只能抵御在安全模型下描述的攻击】
- 3、安全模型是为了一个提出的方案定义的嘛?:Is a security model defines for a scheme?【答:不是,为一个cryptosystem】
3.1 what is security model?[证明某个方案在给定的安全模型下是安全的]
- 1、当我们为一个cryptosystem提供一种方案的时候,我们不能分析他抵御很多攻击是安全的,例如重放攻击和合谋攻击。但是我们能分析这个提出的方案在安全模型下是安全的。【即我们不能直接去描述说,这个方案能抵御什么攻击,而是在某种安全模型下是安全的】
- 2、一个**安全模型可以被看成是对于cryptosystem很多种攻击的抽象概念,**如果一个方案在某个安全模型下是安全的,则说明该方案可以抵御所有在该安全模型下描述的攻击。
- 3、抽象的攻击主要关注:攻击者能知道什么信息,而不是攻击者怎么知道这些信息。
- 4、一个安全模型是为一个cryptosystem定义,而不是对于一个方案。
3.2 How to Define a Security Model?【怎样去定义一个安全模型】
可以有俩种类型可以描述,一个是game,一个是实验的形式。这里只给出game的形式。
在用game描述安全模型的时候,只能用challanger和adversary之间的行为进行描述,其他的角色都不能在这里出现。
一个安全模型的定义:
- 1、攻击者的能力:(攻击者如何询问信息?或者是攻击者什么时候询问信息?)
- 2、攻击者的安全目标:(攻击者怎么能赢得游戏,即打破这个cryptosystem)
3.2.1 安全模型:正式的定义
3.2.2 定义安全模型时(When defining a security model)
因为当我们定义安全模型时,我们只考虑到算法algorithm定义的输入和输出,因为可能那个时候我们还没有具体的算法构造方案,但是并不重要,因为我们只关注算法的输入和输出。因为这样我们的安全模型才适用于cryptosystem中的所有方案。
下面给出了一个案列:自己看:
当定义安全模型时,注意下面俩点:
-
trivial attack:即如果一个攻击者可以做trival attack,则攻击者可以很容易得赢得这个游戏。
所以我们要尽量将这个trivial attack给排除掉。attack其实是一种询问query。
-
攻击者的strategy:即攻击者是如何获取信息的。
所以,我们只需要在询问的时候,挑战者给正确且实诚的回复即可。
上面trivial attack和strategy都是不考虑的,
3.2.3 对于数字签名的安全模型【 案列】
下面实例中的“trivial attack”:即攻击者询问数字签名的签名私钥。一旦攻击者获得签名私钥,则很容易赢得游戏。【这种trivial attack在安全模型中,是需要被排除的】
用形式化的语言,去描述数字签名的安全模型:
下面值得注意的是:
- Query其实就是攻击拥有的能力Capability
- 在数字签名中的Forgery伪造签名,即是攻击者想要完成的goal。【即是安全模型需要达到的安全goal】
3.3 Remarks on Security Model[在安全模型上的注意点]
3.3.1 Remarks on Security Model(1)
-
一个cryptosystem可以有一个或多个的security service
-
一个security service需要有一个security model。
-
多个安全服务security service可能被一个特殊的security model给描述。
3.3.2 Remarks on Security Model(2)
standard security model与standard model是不一样的。
标准安全模型standard security model并不一定是最强安全模型。【强或弱是需要对比才能凸显出来的,而不是一个是说弱就是弱】
3.3.3 Remarks on Security Model(3)
- 强安全模型,即敌手能力更强,安全模型能够抵抗更强的敌手。
- 并不是越强的安全模型就越好,这取决于你的安全应用需求。
- 为什么需要weak security model,1、可能弱的安全会有更高效的方案 2、因为有效的方案只能在弱安全模型中证明安全。
下面就是为了规约的前提:没有安全模型,我们就不能把攻破方案抽象到一个解决一个数学问题,如果不能抽象到解决一个数学问题,则被办法做安全规约。
4、Examples for Pratice
4.1 Online/Offline Signatures[algorithms and security model for this cryptosystem]
4.2 Identity-Based Signatures[algorithms and security model for this cryptosystem]
4.3 Public-Key Encryption[algorithms and security model for this cryptosystem]
4.4 Identity-Based Encryption[algorithms and security model for this cryptosystem]
4.5 Identity-Based Broadcast Encryption[algorithms and security model for this cryptosystem]
可参考资料:《卧村密码学报第六期:《Introduction to Security Reduction》方案证明指南》