如果一个Crypto行业的从业者对于密码学只是采取敬而远之,当作工具利用,甚至轻视的态度,在我看来这是堪称「Web 3.0迷惑行为」的。因为没有密码学就没有了这个行业的技术根基,精神根基。对于根基,应该再怎么重视都不为过。
“但是密码学太TM难了!”这是同学们的心声,我对此完全感同身受。不过我还是要在这里小幽默一下:密码学“难”就对了!如果这个宇宙中没有hardness,那密码学也就不存在了。密码学正是在利用这个宇宙中存在的计算困难性,来为一个更安全更自由更平等的社会添砖加瓦!
Just kidding. 这个系列是对密码学中的常见概念的辨析,面向以严肃心态学习密码学的初学者。个人能力有限所以请DYOR并欢迎指正。
也欢迎小伙伴们提出下一期的答疑点,我会尽力去解答。(注意要求是真的「密码学」问题,不包括「财富密码」……
一个数学问题可以分成计算性的(输出解)或判定性的(输出1/0)。存在概率多项式时间(PPT)算法解决的问题我们称之为简单的,不存在PPT算法解决的问题称之为困难的。对于目前还没有已知PPT算法的问题,我们不能(无条件)证明不存在这样的算法(除非
困难假设又可以(不精确地)分为弱假设(又称标准假设) 和强假设。对于群上假设来说,一个基准假设就是「离散对数假设(DL)」。如果一个假设和DL的安全级别相当,且安全级别只和生成底层数学原语的安全参数相关,则称这样的假设为弱假设(比如说CDH)。反之,如果安全级别低于DL的安全级别,且与其他参数比如问题实例大小相关,则称这类假设为强假设(比如q-SDH)。
攻破弱困难假设的时间开销要远远大于强困难假设。弱假设相对强假设更安全可靠,所以弱困难假设要好于强困难假设。
密码学中,我们一般不去一一考虑一系列的攻击(比如重放攻击,共谋攻击等)去分析密码方案的安全性,而是去在一个安全模型中去写一个安全归约来证明一个方案的安全性。安全模型是对可能敌手行为的抽象,描述了给定敌手的资源以及要求敌手达到的目标。给定敌手的资源越少,对敌手的限制越少,要求敌手达到的目标越高,安全模型越强。
对于安全目标
以签名的两种常见安全性EUF-CMA 和SUF-CMA为例,前者只要求敌手不可伪造出对新消息
假设有两个计算问题
所以在计算复杂性理论中归约方向是很明确的:
以下是Sipser教材中的原话:
When problem
is efficiently reducible to problem , an efficient solution to can be used to solve efficiently.
在密码学中同样的道理,依然是应当是
只不过问题
于是我们可以说:
也可以说:
请牢记“归约到”的意思永远都是如果后半句的条件满足,则前半句的条件满足。故第二种说法本质是在说“如果不存在PPT算法
很多人平时会说或在论文里会写 “密码方案是基于(based on)某个假设的”或者说“密码方案 归约到 假设”。这两种其实都只是上述第二种说法的不严谨表述。
另外注意,在安全归约中困难假设的困难程度是攻破方案困难程度的「下界」而非「上界」。
预告:下节课答疑点:紧致归约,理想模型,随机预言模型(random oracle model)