- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1
复杂性理论
《现代密码学》第三讲
上讲内容回顾
Shannon通信保密系统
熵和无条件保密
分组密码的设计思想
本章主要内容
问题的定义及分类
算法复杂度定义及分类
P问题和NP问题
规约思想与NPC类
密码算法的计算安全性
问题的定义及分类
1 设A=(a1,a2,…,an)是由n个不同的正整数构成的n元组,S是另一已知的正整数. A称为背包向量,S称为背包容积. 求A中元素集合A’,使 .
2 设背包向量A=(1,2,5,10,20,50,100), 背包容积为177,求向量 ,
使得 .
问题的定义及分类
3 已知整数N,问N是否是一个素数?
4 试问77是否是素数?
5 试问79是否是素数?
6 已知整数N,求N的素分解式.
7 已知整数177,求其素分解式.
问题的定义及分类
问题:描述参量陈述解答应当满足的性质(称为询问).
参量为具体数值时,称为问题的一个实例.
判定问题:回答只有Yes或No.
计算问题:从其可行解集合中搜索出最优解.
7
算法复杂度的定义
例 设x是小于100的某个整数,问x是否是素 数?
解答一:取2~ 的所有整数,依次试除x,若存在某个整数可以整除x,则程序停止,输出x为合数,否则输出x为素数.
最坏试除次数: 存储空间:0
解答二:预先将所有小于100的素数存储在寄存器中;然后将X与存储器中的元素比较,若存在某个素数等于x,则程序停止,输出x为素数,否则输出x为合数.
最坏比较次数: 100/ln100, 存储空间: 100/ln100
8
算法复杂度的定义
时间(计算)复杂性:考虑算法的主要操作步骤,计算执行中所需的总操作次数.
空间复杂性:执行过程中所需存储器的单元数目.
数据复杂性:信息资源.
计算模型----确定性图灵机(有限带符号集合,有限状态集,转换函数)(读写头,读写带).
算法复杂度的定义
不同的编程语言,不同的编译器导致执行一次操作的时间各不相同,为了方便不同算法比较,通常假定所有计算机执行相同的一次基本操作所需时间相同,而把算法中基本操作执行的最大次数作为执行时间.
基本操作数量
运行时间=
机器速度
10
算法复杂度的定义
定义 假设一个算法的计算复杂度为O(nt),其中t为常数,n为输入问题的长度,则称这算法的复杂度是多项式的。具有多项式时间复杂度的算法为多项式时间算法.
函数g(n)=O(nt)表示存在常数c0和n0=0,对一切n n0均有|g(n)|=c|nt| 成立,也就是说,当n足够大时,g(n)存在上界.
定义 非多项式时间算法:算法的计算复杂性写不成O(P(n))形式,其中P(n)表示n的多项式函数.
算法复杂度的定义
例 设x是小于100的某个整数,问x是否是素数?
解法1是否是多项式时间算法?
解法2是否是多项式时间算法?
12
P问题和NP问题
定义(P问题)如果一个判定问题存在解它的多项式时间的算法,则称该问题属于P类.
定义(NP问题) 如果一个判定问题不存在解它的多项式时间的算法,且对于一个解答可以在多项式时间验证其是否正确,则称该问题属于NP类.
公开问题:P≠ NP?
它是Clay研究所的七个百万美元大奖问题之一
密码算法的计算安全性
二次函数、三次函数、2x函数的示意图
14
密码算法的计算安全性
例. 设问题输入长度为n,在一个每秒钟运行百万次的计算机上的运行时间如下:
10
30
50
60
T(n)=n2
0.0001s
0.0009s
0.0025s
0.0036s
T(n)=2n
0.001s
17.9月
35.7年
366世纪
密码算法的计算安全性
当问题输入长度足够大,分析密码体制的算法的复杂度较大,可能的计算能力下,在保密的期间内可以保证算法不被攻破,这就是密码体制的计算安全性思想。
注:分析方法是无穷无尽的,类似于解决问题的算法,目前不存在非多项式时间的分析方法,将来可能存在,即算法将来可能不堪一击. 如差分分析出现。。。
16
密码算法的计算安全性
密码系统设计:
合法用户——易 (多项式)
攻击者 ——难(非多项式)
注:计算模型----图灵机
量子计算机出现导致分解因子问题容易,从而RSA等密码系统不再安全,缘由是计算模型不同.
非多项式时间问题 多项式问题
17
规约思想与NPC类
文档评论(0)