困难假设和安全模型的强弱概念解释
困难假设的强与弱
一个数学问题可以分成计算性的(输出解)或判定性的(输出1/0)。存在概率多项式时间(PPT)算法解决的问题我们称之为简单的,不存在PPT算法解决的问题称之为困难的。对于目前还没有已知PPT算法的问题,我们不能(无条件)证明不存在这样的算法(除非P=NP得以证明),故而我们只能「假设」这些问题是困难的,称之为「困难假设」。然后再基于这些困难假设去构造密码方案。困难假设同样可以分成计算性的(如离散对数假设,CDH)和判定性的(如DDH)。
困难假设又可以(不精确地)分为弱假设(又称标准假设) 和强假设。对于群上假设来说,一个基准假设就是「离散对数假设(DL)」。如果一个假设和DL的安全级别相当,且安全级别只和生成底层数学原语的安全参数相关,则称这样的假设为弱假设(比如说CDH)。反之,如果安全级别低于DL的安全级别,且与其他参数比如问题实例大小相关,则称这类假设为强假设(比如q-SDH)。
攻破弱困难假设的时间开销要远远大于强困难假设。弱假设相对强假设更安全可靠,所以弱困难假设要好于强困难假设。
安全模型的强与弱
密码学中,我们一般不去一一考虑一系列的攻击(比如重放攻击,共谋攻击等)去分析密码方案的安全性,而是去在一个安全模型中去写一个安全归约来证明一个方案的安全性。安全模型是对可能敌手行为的抽象,描述了给定敌手的资源以及要求敌手达到的目标。给定敌手的资源越少,对敌手的限制越少,要求敌手达到的目标越高,安全模型越强。
对于安全目标A和B(敌手资源也同理),如果满足B后的方案相比满足A的方案,可以排除的可能的攻击向量更多,剩下的可能的攻击向量更少,则称B对应的安全模型比A更强。当然越强的安全模型越难有构造方案可以达到,而一旦达到,强安全模型比弱安全模型更好(和上述安全假设强弱正相反)。一个在强安全模型中证明安全的方案我们说其满足强安全性。
以签名的两种常见安全性EUF-CMA 和SUF-CMA为例,前者只要求敌手不可伪造出对新消息 m m m的签名,后者要求敌手不可伪造出新的消息-签名对 ( m , σ ) (m,\sigma) (m,σ)。对于已有旧消息 m m m ,伪造出新的合法签名 σ \sigma σ 的攻击,对于达到前者安全性质的方案来说依然是可能的,而对于后者来说是已经被排除在外的。
弱安全模型:若敌手在其询问过程受到约束,或者必须提前向挑战者透露一些询问,则该安全模型是弱安全模型。例如,在基于身份加密的IND-sID-CPA安全模型下,敌手无法进行任何解密询问,而且必须在看到主公钥之前指定挑战的身份。
强安全模型:若敌手的询问没有限制(除平凡攻击的询问)并且敌手不需要事先向挑战者透露任何询问,那么该安全模型就是强安全模型。例如,在基于身份加密的IND-ID-CCA安全模型下,攻击者可以对挑战密文之外的任何密文进行解密询问,并且敌手无须在挑战阶段之前指定挑战身份。
例如Dan Boneh文章中提出的without random oracle下的签名方案里面的安全模型是在under a weak chosen message attack,在系统初始化时,敌手就需要向挑战者提交后面查询的签名有哪些。