密码学(杨义先)- 计算复杂性理论

视频:地址

本章的主要内容:问题的定义和分类、算法复杂度的定义和分类、P问题和NP问题、规约思想和NPC问题、密码算法的计算安全性

问题的定义和分类

背包问题

数学化定义:

密码学(杨义先)- 计算复杂性理论

是NP问题!

素数分解问题

密码学(杨义先)- 计算复杂性理论

无法证明是P问题还是NP问题!

问题定义

问题:描述参量陈述揭发应满足的性质(询问)

参量是具体数值时,称为问题的一个实例

判定问题:回答是或否

计算问题:从其可解集合中搜索出最优解

算法复杂性的定义和分类

复杂度

时间(计算)复杂度:考虑算法的主要操作步骤,计算执行中所需的总操作次数

空间复杂性:执行过程中所需存储器的单元数目

数据复杂度:信息资源

密码学(杨义先)- 计算复杂性理论

计算模型

使用 确定性图灵机(有限带符号集合、有限状态集、转换函数)来判断复杂度

P问题和NP问题

P问题一般认为是多项式问题,即该问题在多项式时间被解决的问题;而多项式问题被认为是简单问题,即一个算法的复杂度是P问题或难度和P问题一样的话,该算法被认为是不安全的!

P问题

如何一个判定问题存在解它的多项式时间的算法,则该问题属于P类问题

NP问题

如果一个判定问题不存在解它的多项式时间的算法,且对于一个解答(猜)可以在多项式时间验证其是否正确,则称该问题属于NP类问题

那么P问题是否是NP问题?
更多:参考

密码算法的计算安全性

密码学(杨义先)- 计算复杂性理论

可以看出,不同的算法,算法复杂度有很大的不同!

当问题输入长度足够大,分析密码*的算法复杂度较大,可能的计算能力下,在保密的期间可以保证算法不被攻破,这就是密码*的算法安全性思想!

好的密码系统设计:

  合法用户:简单(多项式时间)

  攻击者:复杂(非多项式时间)

实际安全是指密码系统满足以下准则:

1、破解该密码系统的成本超过被加密信息本身的价值

2、破译该密码系统的时间超过被加密信息的有效生命周期

上一篇:Matplotlib系列(五):三维绘图


下一篇:机器学习-科学数据库day3