信息论研究在有噪声的环境下的通信;而密码学研究在有敌手的环境下的通信。
前人之述备矣,不想更了。
0.引言
0.1.威胁 风险 攻击 漏洞
-
Threat
A threat is a possible danger that might exploit a vulnerability. -
Risk
An expectation of loss expressed as the probability that a particular threat will exploit a particular vulnerability with a particular harmful result. -
Attack
An assault on system security that derives from an intelligent threat.
-
Vulnerability
A flaw or weakness in a system’s design, implementation,or operation and management that could be exploited to violate the system’s security policy.
0.2.非形式化地讲安全
总的来说,安全定义包含两个部分:安全目标(或者说,以敌手的视角,怎样才达成一次成功的攻击)和威胁模型(敌手能力)。
以下将针对加解密来阐述何谓安全。
怎样才算是一个“安全”加密方案?(如何定义安全)
-
敌手恢复密钥应当是不可能的。
我们可以很容易地看出来,如果敌手可以确定通信双方约定好的密钥,那么该加密方案就是不安全的。然而这个条件并不充分,一个很简单的例子就是:, 密文没有泄露任何有关密钥的信息,但明文却已一览无遗了。这带来了一个启示:保证密钥的机密性本身不是目的,用它达成安全目标才是。
-
敌手从密文中恢复明文应当是不可能的。
然而这个条件也不充分,一个很简单的例子就是:假如一个加密方案的密文会泄露90%的明文信息,即便敌手无法恢复完整的明文,那也是不安全的。
-
敌手从密文中得到明文的任何一个比特应当是不可能的。
这个条件还不够完善。即使攻击者不能得到明文的任何一个比特,但可以获得某些关于明文的信息,比方说,在存储了薪酬并加密了的数据库中,攻击者得知某些打工人的工资的上界或下界,也是不安全的。
-
“正确”的答案:若敌手无法从密文中计算出任何关于明文的函数,那么加密方案是安全的。在这种情况下,敌手无法获得任何有关明文的信息,这个安全定义,其实就是无条件安全。
因为是非形式化,所以不用纠结细节。
0.3.威胁模型
威胁模型即敌手能力,能力由低到高见下。
- Ciphertext-only attack
- Known-plaintext attack
- Chosen-plaintext attack
- Chosen-ciphertext attack
翻译过来就是
唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击。
需要注意的是,尽管以上能力是所谓的由低到高列举,但并没有其中的哪个能力会严格大于另外一个,具体使用哪个决定于加密方案的部署环境。
除此之外
0.4.合理假设
绝大多数的现代密码学的安全证明依赖于各种假设。
0.4.1.数学假设
为人熟知的有分解大整数问题、离散对数问题、椭圆曲线下的离散对数问题、SVP等等……
1. 无条件安全
无条件安全也称完美安全。
即使拥有无限的计算时间(或者说计算能力)与无限内存,密码还是不能被攻破,这时候我们才说该密码具有完美安全。
例如一次性密码本。
2.计算上安全
对于一个给定的密码算法,如果在合理的时间内,使用合理的资源()都不能被攻破,那么就将该算法视为计算上安全。
计算安全性可以描述为两个变量的表达式:
攻击者可以执行的操作数量的上限。
攻击成功概率的上限。
具体地,对一个密码方案而言,如果攻击者最多能执行 个操作(具体操作是什么并不关键,我们更关心的是数量级)并且成功的概率不会超过 , 那么该密码方案就是 。
参考
[1] Introduction to Modern Cryptography
[2] Serious Cryptography:A Practical Introduction to Mordern Encryption