现代密码学组成
正式定义
- 安全保证:定义了该方案旨在防止攻击者进行什么操作——无论攻击者已经拥有的任何信息如何,密文都不应泄露有关底层明文的其他信息。
- 威胁模型 :攻击者拥有的能力
- 唯密文攻击
- 唯明文攻击
- 选择明文攻击
- 选择密文攻击
精确假设
- 验证假设条件:假设越被检验和测试而没有被反驳,我们就越相信这个假设是正确的。此外,对一个假设的研究可以通过证明它被被广泛相信的其他假设所暗示来提供其有效性的证据
- 方案对比:同样满足要求的方案所依赖的假设越弱越好,如果无法比较,那就选择好研究的方案
- 理解必要的假设:大多数方案都是依赖于底层模块,底层模块的安全性需要被理解和证明
- 方案依赖于底层假设相比于直接定义其安全性的优点:新假设没有用了很久的假设稳健。且底层假设更容易证明与研究(相比较直接建立一个安全架构)
证明安全
通过在假设的条件下证明定义的正确性。
完全保密加密
-
概念:面对有无穷计算力的攻击者也是安全的,密文没有任何明文信息(满足了现代密码学的正式定义和证明,但没有利用任何未经证实的计算假设,但这样会存在局限性)。公式如下:
当且仅当方程式对每m、m0∈M和每个c∈C有效时,具有消息空间M的加密方案(Gen、Enc、Dec)是完全保密的。 -
例子:One-Time Pad(一次性密钥):
- 缺陷:任何完全秘密的加密方案都必须具有一个至少与消息空间一样大的密钥空间
生成随机串
-
熵的概念:表示一个系统的混乱程度,即这个系统中的数据最少可以用多少位二进制来讲所有信息表示出来,计算公式如下,结果就是二进制串的位数:
-
准备一个高“熵”的数据池:通过外部输入
-
处理高熵数据,以产生一个几乎独立和无偏的位序列
完全不可区分
定义:对于2个明文,任选其一使用随机密钥加密,攻击者A获得后,猜中正确明文的概率不高于1/2,那么称该加密方案是完全不可区分的,公式表示:【PrivKeavA,Π = 1】表示2选1猜对的情况
一个加密算法当且仅当它是完全不可区分时,它才是完全保密加密
香农理论
设(Gen、Enc、Dec)是一个具有消息空间M的加密方案,其中为|M|=|K|=|C|(长度相同)。当且仅当以下情况下,该方案才是完全秘密的
- 对于每个k∈K,Gen选择它的概率为1/|K|
- 对于每个m∈M和每个c∈C,存在唯一的k∈K,使得c=Enck(m)