第2章_信息安全数学基础(复杂性) 编订

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算复杂性是研究密码分析对于计算量的需求和密码分 析的困难程度 ,从而得出这些密码技术和算法在现有 可行的条件下是否具有足够的安全性。
学习计算复杂性,需要掌握两个概念:
问题 算法
2020/11/3
第2章 信息安全数学基础(计算复杂性) 算法复杂性 问题复杂性
2020/11/3
第2章 信息安全数学基础(计算复杂性) 算法复杂性 问题复杂性
有限状态控制单元控制每个读写头访问一条纸带,并沿 着纸带左右移动
图灵机求解问题的输入是一个有限长度的字符串,该输 入占据每条纸带无限个单元的最左边的有限个单元。
读写头对纸带的一次访问称之为一个合法移动 (Move)。
2020/11/3
图灵机(续)
图灵机求解问题时,被赋予一个初始状态 (Initial State),且一步一步地移动,从而完成 对输入的扫描。
图灵机的有限状态控制单元
当前状态 纸带上的符号 下一步移动 下一个状态
0 q0(初态) 1


q0

q1
响铃或终止
0
q1
1


q2

q0
输出非整除信息
0
q2
1
2020/11/3


q1

q2
输出非整除信息
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
对于一个二进制非负整数 a,后面如果是 0,则对应 2a;如果后面是 1,则对 应 2a+1。
能被3整除。
解:(续)
当前状态 q0(初态)
纸带上的符号
0 1 空
下一步移动
右 右 响铃或终止
下一个状态
q0 q1
0
q1
1


q2

q0
输出非整除信息
有限状态控制 单元
0
q2
1


q1

q2
输出非整除信息
q=q0
读写头
11 0
0空
纸带
识别一个输入是否可以被3整除的图灵机示意图
2020/11/3
图灵机(续)
图灵机有三个状态 q0,q1 和 q2 分别对应完成扫描串 3k,3k+1 和 3k+2: q0:对应完成扫描串 3k(对应能否被 3 整除) q1:对应完成扫描串 3k+1(对应被 3 除余 1) q2:对应完成扫描串 3k+2(对应被 3 除余 2)
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
如果图灵机最终扫描了整个输入串,且满足了中止条件 而停止下来,则称图灵机识别了该输入。
否则,图灵机在某一点没有合法移动,因此会没有识别 输入串而停止下来,此时称图灵机无法识别该输入。
图灵机所识别的一个输入,称为一种可识别语言的一个 实例。
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
(2)在 a=3k+1 的扫描后,图灵机在状态 q1;如果在该点当下一步扫描到 0(即 2a=3k’+2),图灵机必定移动到 q2;如果下一步扫描到字符 1(即 2a+1=6k+3=3k’),必定移动到 q0。
2020/11/3
图灵机(续)
例如:请用DIV3图灵机证明a=12(二进制1100) 能被3整除。
解:设 DIV3 处于初态状态 q0,
有限状态控制 单元
q=q0
读写头
11 0
0空
识别一个输入是否可以被3整除的图灵机示意图
2020/11/3
纸带
图灵机(续)
例如:请用DIV3图灵机证明a=12(二进制1011)
2020/11/3
算法复杂性(续)
算法常见复杂性分类
一般而言,常数算法、线性算法、多项式算法和超多 项式算法统称为多项式算法。
所谓多项式,就是具有下列形式的一个函数:
f (n) ck nk ck1nk1 ... c1n c0
其中,k和ck是常数,且ci≠0。当k>0时,k称为多项式的次数, ci称为多项式的系数。
2020/11/3
算法复杂性(续)
计算复杂性的表示符号为“ O ”(称为“大O ”,即算法 的阶号),表示计算复杂性的数量级
例如:一个给定算法的时间复杂性为 2n2+2n+5 。
(1)首先,随着 n 的增大,2 n2 的增长比较大,而低阶部分增长相对较小。所以,
较低阶函数部分均可忽略不计。
(2)最高项 n2 的系数 2 也可忽略不计。这是因为如果 T=O( n2 ),那么输入尺寸
2020/11/3
图灵机(续)
例如:请用DIV3图灵机证明a=12(二进制1011)
2020/11/3
问题(problem)
(问题)定义:即需要回答的一般性提问:
它通常含有若干个参数。 对于一个问题进行描述应该包括两方面的内容:
必须对问题的所有给定参数给出一般性描述; 必须描述该问题的答案(或解)应该满足的性质。
当问题的所有参数都有了确定的取值时,我们称得到了 该问题的一个实例(instance)。
计算系统与网络安全
Computer System and Network Security
2020/11/3
电子科技大学 计算机科学与工程学院
计算复杂性基础
-古书《孟子·离娄上》有这样的记载: 淳于髡曰:男女授受不亲,礼與? 孟子曰:礼也。 曰:嫂溺则授之以手乎? 曰:嫂溺不授,是豺狼也。男女授受不亲,礼
2020/11/3
算法(algorithm)(续)
有关算法的几点注释:
算法总有输入和输出 算法输入大小一般用输入变量的长度(单位为位) 来表示
一般来说,算法用某种编程语言来实现的计算机程序 一般来说,我们仅仅关注解决问题最有效的算法
当一个变量n用二进制来表示时,其长度=log2n
2020/11/3
增加一位,算法的运行时间变为 4 倍;如果 T=O(2 n2 )那么输入尺寸增加一位算
法的运行时间也增加为四倍。
好处(:3)最后,这个给定算法的时间复杂性可以表示为 O(n2)。 使算法复杂性度量与处理器的运行速度和指令运行时间无关; 明确地揭示了输入的数据长度对算法复杂性的影响。
2020/11/3
问题与算法
问题:如何求解两个整数a和b的最大公约数?
参数:a和b 问题实例:a=20,b=30
算法:利用因子分解求a=20和b=30的最大公约 数
a=22×5 b=2×3×5 因此a和b 的最大公约数是2×5=10
2020/11/3
算法复杂性
(算法复杂度)定义:即度量该算法所需的计算 能力 ,包括: 时间复杂性T(time complexity); 空间复杂性S(space complexity); 信道带宽; 数据总量; ……
2020/11/3
算算法法复复杂性杂 (性续)
算法的分类及其运行时间
算法类型
常数算法
线性算法
多项式算法 二次多项式算 法 三次多项式算 法
指数算法
复杂性
运算次数 n=106
O(1) 1
O(n) 106
O(n2) 1012
O(n3) 1018
O(2n) 10301030
时间 1微秒 1秒 11.6天 32,000年 10301006年
(4)超多项式算法(superpolynomial Algorithm): 如果运行时间是,其中c是一个常数,而s(n)是关于n的大于常数而小于 线性的函数。
(5)指数算法(exponential Algorithm): 如果运行时间是 O(t f (n) ) ,其中t是大于1的常数,f(n)是关于n的多项式 函数。
2020/11/3
问题复杂性(续)
确定性图灵机。
确定性图灵机的输出结果只取决于输入和初始状态。 ▪ 因此,对于具有相同输入和初始状态,运行一个确 定性图灵机所得到的结果是完全相同的。
非确定性图灵机 :
能够进行猜测。 求解一个问题分两个阶段:猜测阶段和验证阶段。
2020/11/3
图灵机
图灵机包括一个有限状态控制单元、k(≥1)条纸 带(Tape)和k个读写头(Tapehead)。
例如:请用DIV3图灵机证明a=12(二进制1011)
能被3整除。
解:(续)
当前状态
纸带上的符号
下一步移动
下一个状态
0
q0(初态)
1


q0

q1
响铃或终止
0
有限状态控制
q1
1

单元
0
q2
1

读写头 q=q1

q2

q0
输出非整除信息

q1

q2
输出非整除信息
11 0 0 空
纸带
识别一个输入是否可以被3整除的图灵机示意图
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
(1)在 a=3k 的扫描后,图灵机处于状态 q0;如果在下一步扫描到 0(即 2a =2×a=2×3k=6k=3k’),图灵机必定仍处于状态 q0;如果下一步扫描到字 符 1(即 2a+1=3k’+1),图灵机必定从 q0 移动到 q1。
也;嫂溺授之以手,权也。 -虽然有“男女授受不亲”的原则存在,但嫂子落
水快淹死时,必须拉她、救她,这是“权”(变通), 否则,见死不救,就是豺狼。 -曰:「今天下溺矣,夫子之不援何也?」 曰:「天下溺援之以道;嫂溺援之以手。子欲手 援天下乎?」
2020/11/3
计算复杂性
为什么要学习计算复杂性?
2020/11/3
算法(algorithm)
定义(算法) :即求解某个问题的一系列具体步 骤(通常被理解为求解所需的通用计算程序)。
算法总是针对具体问题而言的,求解一个问题的算法通 常不止一个。
当某个算法能够回答一个问题的任何实例时,我们称该 算法能够回答这个问题。
当一个问题至少有一个能够回答该问题的算法时,我们 称该问题可解(resolvable),否则称该问题不可解 (unresolvable)。
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
(3)在 a=3k+2 的扫描后,图灵机处于状态 q2;如果在该点当下一步扫描到 0(即 2a=6k+4=3k’+1),图灵机必定从 q2 状态移动到 q1 状态;如果下一步 扫描到字符 1(即 2a+1=6k+5=3k’+2),图灵机将停留在 q2 状态。
图灵机是一种具有无限读、写存储带的有限状态
机,可以被当作一个实际可用的计算模型 。
有限状态控制 单元
读写头
2020/11/3
图灵机示意图
纸带1 纸wk.baidu.com2 纸带n
第2章 信息安全数学基础(计算复杂性) 算法复杂性 问题复杂性
2020/11/3
问题复杂性
图灵机分为两类:
确定性图灵机。 非确定性图灵机
算法复杂性(续)
算法常见复杂性分类
(1)常数算法(constant Algorithm): 如果运行时间是O (1),即该算法的复杂性不依赖于n。
(2)线性算法(linear Algorithm): 如果运行时间是O(n)。
(3)多项式算法(polynomial Algorithm): 如果运行时间是O(nm),其中m是一个常数。具有多项式复杂性的算法 族被称为多项式时间算法。
2020/11/3
算算法法复复杂性杂 (性续)
算法复杂度的增长速度
对任意常数,c,其中0 1 c,有:
1 ln ln n ln n exp lnnlnlnn n nc nlnn cn nn ccn
多项式
2020/11/3
亚指数
指数
算法复杂性(续)
研究问题的内在复杂性,即在图灵机上解决最难 的问题实例所需的最小时间和空间条件。
解:设该图灵机谓 DIV3
图灵机的组成:1 个有限状态控制单元、1 条纸带、1 个读写头。
输入用二进制表示,且在最后加一个“空”表示输入结束。
有限状态控制 单元
读写头 11 0 1 空
纸带
2020/11/3
识别一个输入是否可以被3整除的图灵机示意图
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
例如 a=11(即十进制数 3),则 b=a0=110(即十进制数 6),因此 b=2a。
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
不失一般性,可以假设图灵机扫描完 0 时处于状态 q0(初态);在完成扫描 输入串 1 时处于状态 q1;完成扫描输入串 2 时处于状态 q2。
2020/11/3
图灵机(续)
例如:请设计一个图灵机,用于证明某个非负整 数是否能被3整除。
如果图灵机的读写头一旦遇到特殊字符“空”,如果处于状态 q0,则图灵机响铃 并停止移动,其结果是输入可以被 3 整除(即可以识别输入 3k) 否则,图灵机没有合法移动,因此停止,其结果是该输入不能被 3 整除。
相关文档
最新文档