1.算法复杂度的定义
时间复杂性:考虑算法的主要操作步骤,计算执行中所需要的总操作次数。
空间复杂性:执行过程中所需存储器的单元数目。
数据复杂性:信息资源。
![](https://i-blog.csdnimg.cn/blog_migrate/345bf664fc306b60cccd9d846d7e7163.png)
假设一个算法的时间复杂度为O(nt),其中t为常数,n为输入问题的长度,则称这类算法的时间复杂度为多项式的。具有多项式时间复杂度的算法为多项式算法。函数g(n)=O(nt)表示存在常数c>0和n0≥0,对一切n>n0均有|g(n)|≤c|nt|成立,也就是说,当n足够大的时候,g(n)存在上界。算法的时间复杂性写不成O(P(n))形式,其中P(n)表示n的多项式函数,这样的算法称为非多项式时间算法。
2.P问题和NP问题
如果一个判定问题存在解它的多项式时间的算法,则称该问题属于P类。如果一个判定问题不存在解它的多项式时间的算法,且对于一个解答可以在多项式时间验证其是否正确,则称该问题属于NP类。
3.计算安全性
当问题输入长度足够大,分析密码体质的算法的复杂度较大,可能的计算能力下,在保密的期间内可以保证算法不被攻破,这就是密码体质的计算安全性思想。实际安全是指密码系统满足以下准则之一:破解改密码系统的成本超过被加密信息本身的价值;破译改密码系统的时间超过被加密信息的有效生命周期。
4.注意事项
密码学研究领域,界定原始的文本、图像、音频等任何格式的数据信息,都存在相应的编码方式,转化为二进制的数据流。在具体算法中,表示为message={0,1}*。