密码学的计算复杂性理论基础-Read
合集下载
现代密码学第三讲(二):复杂性理论

算法复杂度的定义
定义 假设一个算法的计算复杂度为O(nt),其 中t为常数,n为输入问题的长度,则称这算 法的复杂度是多项式的。具有多项式时间复 杂度的算法为多项式时间算法.
函数g(n)=O(nt)表示存在常数c>0和n0>=0,对一切 n> n0均有|g(n)|<=c|nt| 成立,也就是说,当n足 够大时,g(n)存在上界.
7
算法复杂度的定义
时间(计算)复杂性:考虑算法的主要操作 步骤,计算执行中所需的总操作次数. 空间复杂性:执行过程中所需存储器的单元 数目. 数据复杂性:信息资源. 计算模型----确定性图灵机(有限带符号集合, 有限状态集,转换函数)(读写头,读写带) .
8
算法复杂度的定义
不同的编程语言,不同的编译器导致执行一 次操作的时间各不相同,为了方便不同算法 比较,通常假定所有计算机执行相同的一次 基本操作所需时间相同,而把算法中基本操 作执行的最大次数作为执行时间. 基本操作数量 运行时间= 机器速度
为NP完全的.
17
π ∈NP,都有π ∝ π ′ ,则称 π ′ 属于NPC类,或称
规约思想与NPC类 规约思想与NPC类 NPC
主要知识点小结
算法的复杂度定义及分类 密码算法的计算复杂度
作业
1 求冒泡排序法的计算复杂度, 该算法是否为多项 式的? 2 超递增背包问题:
设A=(a1,a2,…,an)是由n个不同的正整数构 j −1 n 成的n元组,且 a j > ∑ ai j = 2,L ,, i =1 S是另一已知的正整数。 求A的子集A’,使 ∑ a i = S. a ∈A ' (1) 给出该问题的求解算法; (2) 求算法的计算复杂度.
第2讲 密码学的复杂性理论基础

它通常含有若干个参数。
对于一个问题进行描述应该包括两方面的内容:必须对
问题的所有给定参数给出一般性描述;必须描述该问题 的答案(或解)应该满足的性质。
当问题的所有参数都有了确定的取值时,我们称得到了
该问题的一个实例(instance)。
算法(algorithm)
即求解某个问题的一系列具体步骤(通常被理解为求解所需
的通用计算程序)。
算法总是针对具体问题而言的,求解一个问题的算法通
常不止一个。
当某个算法能够回答一个问题的任何实例时,我们称该
算法能够回答这个问题。
当一个问题至少有一个能够回答该问题的算法时,我们
称该问题可解(resolvable),否则称该问题不可解 (unresolvable)。
算法复杂性
GMR模型; FFS模型。
非交互零知识证明 :用一个短随机串代替交互过程并实现 了零知识证明 。 20世纪80年代末,Blum等人进一步提出
成员(或定理)的非交互零知识证明系统;
知识(或身份)的非交互零知识证明系统。
交互图灵机
交互图灵机指的是一个具有一条只读输入带、一条工作带、 一条随机带、一条只读通信带和一条只写通信带的图灵机。 其中,随机带上包含一条无限长的随机比特序列,并且只能
2
12
11.6天
32,000年
宇宙年龄的10
2 3
301006
18
O (2 )
n
10
301 , 030
O(1) O(log
n) O(n) O(nlog 2
n) O(n ) O(n ) O(2 ) 2
n
问题复杂性
对于一个问题进行描述应该包括两方面的内容:必须对
问题的所有给定参数给出一般性描述;必须描述该问题 的答案(或解)应该满足的性质。
当问题的所有参数都有了确定的取值时,我们称得到了
该问题的一个实例(instance)。
算法(algorithm)
即求解某个问题的一系列具体步骤(通常被理解为求解所需
的通用计算程序)。
算法总是针对具体问题而言的,求解一个问题的算法通
常不止一个。
当某个算法能够回答一个问题的任何实例时,我们称该
算法能够回答这个问题。
当一个问题至少有一个能够回答该问题的算法时,我们
称该问题可解(resolvable),否则称该问题不可解 (unresolvable)。
算法复杂性
GMR模型; FFS模型。
非交互零知识证明 :用一个短随机串代替交互过程并实现 了零知识证明 。 20世纪80年代末,Blum等人进一步提出
成员(或定理)的非交互零知识证明系统;
知识(或身份)的非交互零知识证明系统。
交互图灵机
交互图灵机指的是一个具有一条只读输入带、一条工作带、 一条随机带、一条只读通信带和一条只写通信带的图灵机。 其中,随机带上包含一条无限长的随机比特序列,并且只能
2
12
11.6天
32,000年
宇宙年龄的10
2 3
301006
18
O (2 )
n
10
301 , 030
O(1) O(log
n) O(n) O(nlog 2
n) O(n ) O(n ) O(2 ) 2
n
问题复杂性
计算复杂性

计算复杂性
计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。
和可计算性一样,复杂性总是对于一个特定的问题类来讨论的,它包括无穷多个个别问题,有大有小。
例如,对矩阵乘法这样一个问题类,相对地说,100阶矩阵相乘是个大问题,而二阶矩阵相乘就是个小问题。
可以把矩阵的阶n作为衡量问题大小的尺度。
又如在图论问题中,可以把图的顶点数n作为衡量问题大小的尺度。
一个问题在计算之前,总要用某种方式加以编码,这个编码的长度n就是衡量问题大小的尺度。
当给定一个算法以后,计算大小为n的问题所需要的时间、空间等就可以表示为n的函数。
这个函数就可作为该算法的时间或空间复杂性的度量。
严格地讲,是这个特定的问题类在某一特定计算模型中某一特定算法的复杂性之度量。
当要解决的问题越来越大时,时间、空间等资源耗费将以什么样的速率增长,即当n趋向于无穷大时,这个函数的性状如何,增长的阶是什么,这就是计算复杂性理论所要研究的主要问题。
信息安全导论5密码学数学基础

2024/4/3
13
3、模运算:对于某个固定模m的同余式可以象普通的等式那 样相加相减和相乘:
a(mod m)±b(mod m)=(a±b)(mod m)
a(mod m)*b(mod m)=a*b(mod m)
例:由同余式演算证明560-1是56的倍数,223-1是47的倍数。
解:
注意53=125≡13(mod56) 于是有56≡169≡1(mod56) 对同余式的两边同时升到10次幂, 即有56∣(560-1)。 其次, 注意26=64≡-30(mod47),
2024/4/3
5
互素与最大公约数
最大公约数(最大公因子):
若a,b,c∈Z,如果c∣a,c∣b,称c是a和b的公约数。正 整数d称为a和b的最大公约数(记d=gcd(a,b)或(a,b)) ,如 果它满足:
d是a和b的公约数。 对a和b的任何一个公约数c有c∣d。
等价的定义形式是:
gcd(a,b)=max{k: k∣a,k∣b} 若gcd(a,b)=1,称a与b是互素的。
2024/4/3
4
整除基本性质 a|a; b≠0,b | 0;
If a|b,b|c,then a|c;
if a|1, then a=±1; if a|b, and b|a,then a=±b; if b|g and b|h, then b|(mg+nh),for any integers m and n 注意: if a=0 mod n, then n|a
g c d ( a ,b ) = P 1 m in ( e 1 ,f1 )P 2 m in ( e 2 ,f2 )
P m in ( e t,ft) t
lc m ( a ,b ) = P 1 m a x ( e 1 ,f 1 ) P 2 m a x ( e 2 ,f2 )
第4章密码学的计算复杂性理论基础

*
r
• 定义 4.14 称一个多项式时间概率算法M可解 一个语言L的成员识别问题,若对任一输入数 据 x 0,1*,有 (1)若 x L,则 Prb( x) 1 2 / 3 (2)若 x L ,则 Prb( x) 0 2 / 3 称一个语言L的成员识别问题属于BPP类,若 存在一个可解该问题的多项式时间概率算法。 所有BPP类问题构成的集记作BPP。
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。 1. 1)带中所用字符集B,通常可设 B 0,1, ,其中 表示空。 2)读写头所处的可能状态集S,其中包含一个初始状态 和若干个停机状态 。 s0 TS 3)读写头所处状态的转移函数 ,它是读写头现在所处状 态s和所读字符b的函数,表示为 。 :SB S 4)读写头动作的指令函数 ,它也是读写头现在所处状态 s 和所读字符b的函数,表示为 ,其中 :S B B l , r l代替 r b, 且都不属于B。若 ,则读写头写字符 ' ' (s, b) b B b 且保持原位不动。若 ,则原字符b保持不变, (s, b) l (或r ) 读写头向左(或向右)移动一个小方格。 2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字 符记作t(i),磁带表示为函数 。
K ( x) K ( x)
K ( x)
K ( x)
f M (n) maxK ( x)
x; x n
• 定义 4.6 设f(n)和g(n)为两个正整数函数, nn n0 c使当 若存在正整数 和常数 时 有 f (n) cg(n),则记作 f (n) ( g (n)) ; 若 f (n) ( g (n)) , g (n) ( f (n)) ,则记作
r
• 定义 4.14 称一个多项式时间概率算法M可解 一个语言L的成员识别问题,若对任一输入数 据 x 0,1*,有 (1)若 x L,则 Prb( x) 1 2 / 3 (2)若 x L ,则 Prb( x) 0 2 / 3 称一个语言L的成员识别问题属于BPP类,若 存在一个可解该问题的多项式时间概率算法。 所有BPP类问题构成的集记作BPP。
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。 1. 1)带中所用字符集B,通常可设 B 0,1, ,其中 表示空。 2)读写头所处的可能状态集S,其中包含一个初始状态 和若干个停机状态 。 s0 TS 3)读写头所处状态的转移函数 ,它是读写头现在所处状 态s和所读字符b的函数,表示为 。 :SB S 4)读写头动作的指令函数 ,它也是读写头现在所处状态 s 和所读字符b的函数,表示为 ,其中 :S B B l , r l代替 r b, 且都不属于B。若 ,则读写头写字符 ' ' (s, b) b B b 且保持原位不动。若 ,则原字符b保持不变, (s, b) l (或r ) 读写头向左(或向右)移动一个小方格。 2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字 符记作t(i),磁带表示为函数 。
K ( x) K ( x)
K ( x)
K ( x)
f M (n) maxK ( x)
x; x n
• 定义 4.6 设f(n)和g(n)为两个正整数函数, nn n0 c使当 若存在正整数 和常数 时 有 f (n) cg(n),则记作 f (n) ( g (n)) ; 若 f (n) ( g (n)) , g (n) ( f (n)) ,则记作
密码学的计算复杂性理论

从前,有一个酷爱数学的年轻国王向邻国一位聪明美丽的公主求婚。 公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王 能在一天之内求出答案,公主便接受他的求婚。国王回去后立即开始逐个 数地进行计算,他从早到晚,共算了三万多个数,最终还是没有结果。国 王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很 快就验证了这个数确能除尽48 770 428 433 377 171。公主说:“我再给你 一次机会,如果还求不出,将来你只好做我的证婚人了。”国王立即回国, 并向时任宰相的大数学家求教,大数学家在仔细地思考后认为这个数为17 位,则最小的一个真因子不会超过9位,于是他给国王出了一个主意:按自 然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立 即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即 上报,赏金万两。最后,国王用这个办法求婚成功。
– 当将一个问题分解到多个处理器上解决时,由于算法中不可避 免地存在必须串行执行的操作,从而大大地限制了并行计算机 系统的加速能力。
•设f为求解某个问题的计算存在的必须串行执行的操作占整 个最计大算 的的 加百 速分 能比 力,,则p为处理器的数目,Sp为并行计算机系统
设f=1%,p→,则Sp=100。(阿达尔定律) 串行执行操作仅占全部操作1%,解题速度最多也只能提高 一百倍。 对难解性问题而言,提高计算机系统的速度是远远不够的, 而降低算法复杂度的数量级才是最关键的问题。
读写头
状态 控制器 q
图灵在1936年提出了著名的图灵机模型(计算模型): ▪图灵机由一个无限长的带子(被划分成均匀的方格) 、一个磁带读/写头 和一个有限状态控制器组成。 ▪在每一步计算中,图灵机从磁带上读出一个符号,并由有限状态控制器决 定是否在当前的磁带区上写入不同的符号,然后决定是否需要将磁带读/写 头向前或向后移动一位。 当前的计算机,在理论上都是可以被图灵机模拟的,其原理和图灵机是相同 的,甚至还包含了存储程序的思想。
计算理论计算复杂性ppt课件

((x1)x2(x3)) (x2(x3)x4x5) ((x4)x5) • 合取范式cnf (conjunctive normal form)
3cnf: 每个子句文字数不大于3, 2cnf: 每个子句文字数不大于2
可满足问题SAT
• 可满足性问题: SAT = { <> | 是可满足的布尔公式 }
• 思想: 将字符串对应到布尔公式 利用接受的形式定义.
• 过程: 任取ANP, 设N是A的nk时间NTM. w(|w|=n), N接受w
N有长度小于nk的接受格局序列 能填好N在w上的画面(一个nknk表格) f(w)可满足 • 结论: SAT是NP完全的
N接受w能填好N在w上的画面
# q0 w0 w1 … wn #
2)若0,1都在带上,重复以下步骤. O(n)
3) 检查带上0,1总数的奇偶性,
若是奇数,就拒绝.
O(n) log n
4) 再次扫描带,
第1个0开始,隔1个0删除1个0; O(n)
第1个1开始,隔1个1删除1个1.
总时间:
5)若带上同时没有0和1,则接受. O(n) O(nlogn)
否则拒绝.”
{0k1k|k0}TIME(nlogn)
快速验证
HP = {<G,s,t>|G是包含从s到t的 哈密顿路径的有向图}
CLIQUE={<G,k>|G是有k团的无向图} 目前没有快速算法,但其成员是可以快速验证的. 注意:HP的补可能不是可以快速验证的. 快速验证的特点: 1. 只需要对语言中的串能快速验证. 2. 验证需要借助额外的信息:证书,身份证.
• 二元可满足性问题: 2SAT = { <> | 是可满足的2cnf }
3cnf: 每个子句文字数不大于3, 2cnf: 每个子句文字数不大于2
可满足问题SAT
• 可满足性问题: SAT = { <> | 是可满足的布尔公式 }
• 思想: 将字符串对应到布尔公式 利用接受的形式定义.
• 过程: 任取ANP, 设N是A的nk时间NTM. w(|w|=n), N接受w
N有长度小于nk的接受格局序列 能填好N在w上的画面(一个nknk表格) f(w)可满足 • 结论: SAT是NP完全的
N接受w能填好N在w上的画面
# q0 w0 w1 … wn #
2)若0,1都在带上,重复以下步骤. O(n)
3) 检查带上0,1总数的奇偶性,
若是奇数,就拒绝.
O(n) log n
4) 再次扫描带,
第1个0开始,隔1个0删除1个0; O(n)
第1个1开始,隔1个1删除1个1.
总时间:
5)若带上同时没有0和1,则接受. O(n) O(nlogn)
否则拒绝.”
{0k1k|k0}TIME(nlogn)
快速验证
HP = {<G,s,t>|G是包含从s到t的 哈密顿路径的有向图}
CLIQUE={<G,k>|G是有k团的无向图} 目前没有快速算法,但其成员是可以快速验证的. 注意:HP的补可能不是可以快速验证的. 快速验证的特点: 1. 只需要对语言中的串能快速验证. 2. 验证需要借助额外的信息:证书,身份证.
• 二元可满足性问题: 2SAT = { <> | 是可满足的2cnf }
公钥密码体系和算法-Read

散列函数的一般结构
Y0
IV= CV0 b nY1ຫໍສະໝຸດ b f n CV1 f n
Y L -1
b n CVL-1 f n CVL
IV = 初值 CV= 链接变量 Yi = 第 i 个输入块 f = 压缩算法
L = 输入的块数 n = 散列码长度 b = 输入块长
散列算法
• 大多数重要散列算法遵循以上结构。... • 报文摘要算法 MD5 (Message Digest 5) MD5是麻省理工学院的 Ron Rivest 提出,被广 泛使用。它产生128位散列值。 • 安全散列算法 SHA-1 (Secure Hash Algorithm-1) SHA是由美国国家标准和技术局NIST提出, 1993年公布,1995年发布了修订版,称SHA-1。 它产生160位散列值。
RSA的速度 • • • • • 已经制造出许多实现RSA加密的芯片。 硬件实现时,RSA大约比DES慢1000倍。 软件实现时,RSA大约比DES慢100倍。 这些数字会随技术发展而变化。 但RSA的速度将永远不会达到对称密钥 密码算法的速度。 • 公钥密码和对称密钥密码各有所长,各 有所用。
RSA的安全性
么难...。1977年RSA的三位发明者在<科学美国人>印 一密码,悬赏100美元破译,公钥是129位十进制数。 1994年4月一个通过Internet合作小组8个月后破译。...
其它公钥密码算法
• 安全使用 RSA 所要求的密钥长度近年已增加 到1024位, 这对使用 RSA 的应用增加了处理开 销。 • 1985年N.Koblitz和Miller提出将椭圆曲线用于 密码算法, 椭圆曲线密码系统 ECC (Elliptic Curve Cryptography)的前景看好。 • ECC 的主要优点是它似乎用位数少得多的密钥 (160)取得和 RSA(1024) 相等的安全性,因此减 少了处理开销,加密系统运算更快。 • ECC 比 RSA 等算法都难于解释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
别表示该时刻读写头所处状态,磁带和读写头所扫描的 小方格坐标,t(i)为读写头在该时刻所读字符。
4. 一个图灵机的计算程序(算法)是一个形的有限或无限
序列(s0 ,t0 ,i0 ), (s1,t1,i1), (s2 ,t2 ,i2 ), ,其中(s0 ,t0 ,i0 )为图灵机在初
始时刻的形,即 数据(字)x B*
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。
1. 1)带中所用字符集B,通常可设 B 0,1,,其中 表示空。
第4章 密码学的计算复杂性 理论基础
4.1 问题与算法的复杂性
• 4.1.1 问题与语言
– 例4.1 . 整数的因子分解问题。
– 例4.2 . 背包问题。
实际应用中的绝大多数问题都可直接或 间接地转化为判定问题。
• 定义4.1 B*的任一子集L称为一个B-语言(或
简称语言)。语言L中的字称为语言L的成员。 • 定义4.2 设一个语言L B*已给定。语言L成员
的识别问题可描述为:任给 x B(* 参数),问 是否x是L语言的成员(是否 x L)? • 定义4.3 设D (I, I 为) 一个问题,B为一个字符 集。从I到 B*中的一个映射c,满足条件c(I ) c(I ) (空集),称为问题D的一个B-编码。若c为
D的一个编码,集 L(D,c) c( ); I c(I ) 称为
b tk (i) tk1 (i)
i ik1 i ik1
(4.3)
若若((sskk11,,ttkk11((iikk11))))
l r
则tk tk1, ik ik1 1 则tk tk1, ik ik1 1
若存在形 (sk ,tk ,ik ) 使 sk T ,则计算在时刻 K min( k; sk T ) 终止,同时停机,称 (tk ,ik ) 或 tk (ik ) 为计算的输出结果,K 称为图灵机(算法)的运行(计算)时间。否则计算将 不终止,不停机,直到无限。
(n)
(
p(n))
,所有P类问题构成
• 定义4.9 一个语言L的成员识别问题属于NP类,若存
在一个 0,1* 0,1*的子集 RL (x, y) (称为一个布尔关系)
及一个正多项式p(n)满足下列两个条件:
1)RL 的成员识别问题属于P类;
给s 0为出初,始通状常态存,放t0为在初1 始x磁小带方,格它中由,输其入
它形小(sk方,tk格,ik 中), k 为 1空,2,字由符下 面,的通递常推i0 式 1给。出图。灵机在k时刻的
若(sk1, tk1 (ik1 )) b B 则ik ik1
sk (sk1 , tk1 (ik1 ))
• 定义 4.5 称一个图灵机 M可解一个语言
L 的成员识别问题,若对任一输入数
据 x 0,1*,M在有限时刻 K(x)停机,且M
的输出 ,若 。否则 。 tK(x) (iK(x) ) 1
xL
t K (x) (iK (x) ) 0
图灵机的计算复杂性定义为
f
M
(n)
maxK
x; x n
(
x)
• 定义 4.6 设f(n)和g(c使当 时n n0 有 f (n) cg(n),则记作 f (n) (g(n)) ;
若 f (n) (g(n)) , g(n) ( f (n)) ,则记作
f (n) Θ (g(n))
• 定义4.7 设 fM (n)和 fM ' (n)为图灵机M和 M '的 计算复杂性,若 fM (n) ( fM' (n)),则称算法 M ' 不比算法M有效;若 fM (n) ( fM' (n)) ,则称算 法M和M '是等效的;若存在正整数d, fM (n) (nd ),则称M为多项式时间算法,按 密码学中的传统观念,认为多项式时间 算法为有效算法;若 fM (n) (2logn ) ,则称M 为亚指数时间算法;若 fM (n) , (2n )或(10n )
2)读写头所处的可能状态集S,其中包含一个初始状态
和若干个停机状态
。
s0
3)读写头所处状态T的转S 移函数 ,它是读写头现在所处状
态s和所读字符b的函数,表示为
。
4)读写头动作的指令函数 ,它也: S是读B 写S头现在所处状态s
和所读字符b的函数,表示为
,其中
且都不属于B。若
: S, B则读B 写l,头r 写字符 l代替r b,
D的一个c-语言。
• 引理4.1 若c为D的一个编码,则求解问题D和 求解语言 L(D,c)的成员识别问题是等价的,即
问题D的任一例子 I,其答案与语言L(D,c)的
成员识别问题的例子的答案 c( )是相同的。
• 一个合理编码还应满足下列两个基本要求:
1) 编码是容易实现的;
2) 求解问题的任一例子的计算复杂性(通常 用计算时间来表示)与的长有某种正比关系。
则称M为指数时间算法。亚指数和指数 时间算法也被称为超多项式时间算法, 被认为不是有效算法。
4.2 问题的计算复杂性分类
• 4.2.1 P,NP,NP完全类问题
• 定义4.8 一个语言L的成员识别问题属于P类,若存在
一个可解该问题的图灵机M和一个正多项式 p(n),使
M的计算复杂性 的集记作P。
fM
且保持原位不动。若(s,b) b' B
,则原字符b保持b ' 不变,
读写头向左(或向右)移动(s一,b)个 l小(或方r) 格。
2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字
符记作t(i),磁带表示为函数
。
t : Z (整数集) B
3. 图灵机在某一时刻的形是指一个三元组(s, t, i),它们分
4. 一个图灵机的计算程序(算法)是一个形的有限或无限
序列(s0 ,t0 ,i0 ), (s1,t1,i1), (s2 ,t2 ,i2 ), ,其中(s0 ,t0 ,i0 )为图灵机在初
始时刻的形,即 数据(字)x B*
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。
1. 1)带中所用字符集B,通常可设 B 0,1,,其中 表示空。
第4章 密码学的计算复杂性 理论基础
4.1 问题与算法的复杂性
• 4.1.1 问题与语言
– 例4.1 . 整数的因子分解问题。
– 例4.2 . 背包问题。
实际应用中的绝大多数问题都可直接或 间接地转化为判定问题。
• 定义4.1 B*的任一子集L称为一个B-语言(或
简称语言)。语言L中的字称为语言L的成员。 • 定义4.2 设一个语言L B*已给定。语言L成员
的识别问题可描述为:任给 x B(* 参数),问 是否x是L语言的成员(是否 x L)? • 定义4.3 设D (I, I 为) 一个问题,B为一个字符 集。从I到 B*中的一个映射c,满足条件c(I ) c(I ) (空集),称为问题D的一个B-编码。若c为
D的一个编码,集 L(D,c) c( ); I c(I ) 称为
b tk (i) tk1 (i)
i ik1 i ik1
(4.3)
若若((sskk11,,ttkk11((iikk11))))
l r
则tk tk1, ik ik1 1 则tk tk1, ik ik1 1
若存在形 (sk ,tk ,ik ) 使 sk T ,则计算在时刻 K min( k; sk T ) 终止,同时停机,称 (tk ,ik ) 或 tk (ik ) 为计算的输出结果,K 称为图灵机(算法)的运行(计算)时间。否则计算将 不终止,不停机,直到无限。
(n)
(
p(n))
,所有P类问题构成
• 定义4.9 一个语言L的成员识别问题属于NP类,若存
在一个 0,1* 0,1*的子集 RL (x, y) (称为一个布尔关系)
及一个正多项式p(n)满足下列两个条件:
1)RL 的成员识别问题属于P类;
给s 0为出初,始通状常态存,放t0为在初1 始x磁小带方,格它中由,输其入
它形小(sk方,tk格,ik 中), k 为 1空,2,字由符下 面,的通递常推i0 式 1给。出图。灵机在k时刻的
若(sk1, tk1 (ik1 )) b B 则ik ik1
sk (sk1 , tk1 (ik1 ))
• 定义 4.5 称一个图灵机 M可解一个语言
L 的成员识别问题,若对任一输入数
据 x 0,1*,M在有限时刻 K(x)停机,且M
的输出 ,若 。否则 。 tK(x) (iK(x) ) 1
xL
t K (x) (iK (x) ) 0
图灵机的计算复杂性定义为
f
M
(n)
maxK
x; x n
(
x)
• 定义 4.6 设f(n)和g(c使当 时n n0 有 f (n) cg(n),则记作 f (n) (g(n)) ;
若 f (n) (g(n)) , g(n) ( f (n)) ,则记作
f (n) Θ (g(n))
• 定义4.7 设 fM (n)和 fM ' (n)为图灵机M和 M '的 计算复杂性,若 fM (n) ( fM' (n)),则称算法 M ' 不比算法M有效;若 fM (n) ( fM' (n)) ,则称算 法M和M '是等效的;若存在正整数d, fM (n) (nd ),则称M为多项式时间算法,按 密码学中的传统观念,认为多项式时间 算法为有效算法;若 fM (n) (2logn ) ,则称M 为亚指数时间算法;若 fM (n) , (2n )或(10n )
2)读写头所处的可能状态集S,其中包含一个初始状态
和若干个停机状态
。
s0
3)读写头所处状态T的转S 移函数 ,它是读写头现在所处状
态s和所读字符b的函数,表示为
。
4)读写头动作的指令函数 ,它也: S是读B 写S头现在所处状态s
和所读字符b的函数,表示为
,其中
且都不属于B。若
: S, B则读B 写l,头r 写字符 l代替r b,
D的一个c-语言。
• 引理4.1 若c为D的一个编码,则求解问题D和 求解语言 L(D,c)的成员识别问题是等价的,即
问题D的任一例子 I,其答案与语言L(D,c)的
成员识别问题的例子的答案 c( )是相同的。
• 一个合理编码还应满足下列两个基本要求:
1) 编码是容易实现的;
2) 求解问题的任一例子的计算复杂性(通常 用计算时间来表示)与的长有某种正比关系。
则称M为指数时间算法。亚指数和指数 时间算法也被称为超多项式时间算法, 被认为不是有效算法。
4.2 问题的计算复杂性分类
• 4.2.1 P,NP,NP完全类问题
• 定义4.8 一个语言L的成员识别问题属于P类,若存在
一个可解该问题的图灵机M和一个正多项式 p(n),使
M的计算复杂性 的集记作P。
fM
且保持原位不动。若(s,b) b' B
,则原字符b保持b ' 不变,
读写头向左(或向右)移动(s一,b)个 l小(或方r) 格。
2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字
符记作t(i),磁带表示为函数
。
t : Z (整数集) B
3. 图灵机在某一时刻的形是指一个三元组(s, t, i),它们分