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,求向量,使得
'iiaAaS7{0,1}X71177iiixa问题的定义及分类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/ln100xx8算法复杂度的定义时间(计算)复杂性:考虑算法的主要操作步骤,计算执行中所需的总操作次数
空间复杂性:执行过程中所需存储器的单元数目
数据复杂性:信息资源
计算模型----确定性图灵机(有限带符号集合,有限状态集,转换函数)(读写头,读写带)
算法复杂度的定义不同的编程语言,