可证明安全随笔
来源:互联网 发布:大数据行业前景 编辑:程序博客网 时间:2024/04/27 22:40
可证明安全是在攻击者模型下描述的,攻击者通常拥有足够的计算资源。安全性的证明通常基于一些假设。例如,攻击者能够接触到密码系统,某些问题在计算上是困难的。
可证明安全的研究有两条主线,第一是对于一个给定的直观任务,建立正确的安全定义;第二个是尽可能在一般性的假设和猜想上完成构建和证明,例如单向函数是否成立的问题。一个重要的悬而未决的问题是如何把证明建立在P≠NP的基础之上,因为目前单向函数的成立和P≠NP的猜想不得而知。
有些证明基于一些安全模型,例如random oracle model
可证安全采用渐进的方法,根据多项式时间归约对难题进行分类,如果一个计算能力有限的攻击模型针对某种体制攻击的优势(advantage)是可以忽略的,则认为这个体制是安全的。这个在理论上尽管有很重要的保证,但是在实践当中由于需要对安全参数进行初始化,需要知道安全参数的具体情况,不恰当的归约会造成攻击模型成功的概率增大,或者对计算资源的要求比预期的增多。
concrete security所有攻击者可用的资源参数化,例如运行时间、内存消耗以及其它系统资源,如可以获得的明文的数目、对oracle可用的查询次数。如此则可以得出攻击者的优势上限。
语义安全,在公钥密码体制中应用广泛。一个语义安全的密码系统要求计算能力有限的攻击者无法仅仅从密文和公钥中得到明文的重要信息。
语义安全实际考虑的是被动意义下的安全,即攻击者只能根据自己设计的明文通过公钥得到密文,并且考察密文的特性。文献[1]中给出的语义安全的定义:即使攻击者可以得到除y外任意密文对应的明文,但也无法得知m(y的明文)除长度外的任何信息。
语义安全没有考虑选择密文攻击的情况,在选择密文攻击的情况下,攻击者可以得到所选择密文对应的明文,许多语义安全的体制在选择密文攻击的模型下是不安全的。所以,对于通用的加密体制而言,语义安全的标准已经不够了。
Goldwasser/Micali于1982年提出语义安全,后面又证明了语义安全与密文不可区分性的等价性。文献[1]表示,不可区分性指即使攻击者可以得到除y外任意密文对应的明文,但是无法以远大于1/2的概率确定y来源于哪一个mb的密文。
由于对手也拥有公钥,因为加密算法必须引入随机性,否则攻击者可以直接加密m0以及m1,直接和输出进行对比,成功猜测oracle的选择。
语义安全的加密算法有Goldwasser-Micali, El Gamal,Paillier,它们都是可证明安全的,同时它们的语义安全可以归约到一些数学难题上,例如DDH,二次剩余等。
其他一些非语义安全的算法如RSA可以在某些增强的假设下语义安全,例如Optimal Asymmetric Encryption Padding(OAEP).
在选择密文攻击模型下,攻击模型下攻击者可以选择任意密文,在一个未知的密钥下得到它的明文,有许多安全的体制在密文攻击的背景下是不安全的,
适应性选择密文攻击,攻击者根据前一次交互得到的结果,构造下一次的密文以作为解密的输入,简称为CCA2
References: [1]. Koblitz, N. and A.J. Menezes, Another Look at" Provable Security". Journal of Cryptology, 2007. 20(1): p. 3-37.
- 可证明安全随笔
- 可证明安全思想简介
- 证明多元可微
- 安全随笔1:谨慎一次MD5值的可被穷举性
- 安全随笔1:谨慎一次MD5值的可被穷举性
- 证明HashSet不是线程安全
- 手机安全随笔1
- 可重复组合公式的证明
- 随笔-spingmvc controller线程安全
- 证明ArrayList线程不安全以及如何安全
- 证明StringBuffer线程安全,StringBuilder线程不安全
- 平台证明作为服务——云安全采用本地证明,网格安全采用远程证明
- 可安全删除的文件类型
- 安全随笔2:对称加密应用场景
- 证明truncate发出了可观察的commit命令
- 【NPC】21、证明电路可满足性问题是NPC问题
- 数学可证明:酒鬼总能找到回家的路
- 如何证明二元函数的连续性 可…
- 很强悍的js获取request参数的方法
- Sun 推荐的命名规范
- C#中的数据类型
- Python中的正则表达式匹配中文问题
- 毕业
- 可证明安全随笔
- tomcat5.5 整合 iis6.0
- Clone a MDD Lib,快速修改MDD层lib
- lock vs Monitor vs Mutex之间的区别
- POST上传
- .Net比较奇怪的问题
- centos 安装 openoffice 3
- Routinebot - 一款小巧的GUI自动化测试工具
- JAVASCRIPT 打开新窗口