现代密码学第三讲(二)(必修和选修)

合集下载

现代密码学第三讲(一):密码学的信息论基础

现代密码学第三讲(一):密码学的信息论基础
H (X | Y) p( yi ) H (X | y j ) p( yi ) p( xi | y j ) log2 p( xi | y j )
j 1 j 1 i 1
12
m
m
n
熵和无条件保密
若将X视为一个系统的输入空间,Y视为系统 的输出空间,在通信中,通常将条件熵 H(X|Y)称作含糊度,X和Y之间的平均互信 息定义为: I(X,Y)=H(X)-H(X|Y) 它表示X熵减少量。
分组密码设计思想
P= p1 p2 p3 p4 p5
E: pi^ki = ci D: ci^ki = pi 已知明密文比特:pi^ci = ki
K=
k1 k2 k3 k4 k5
C=
c1 c2 c3 c4 c5
密钥不可重复使用
分组密码设计思想
事例:珍珠港事件
日本人偷袭珍珠港得手以后,山本五十六又制订了中途岛作战计划。 美军太平洋舰队新任司令尼米兹的手里有一个密码破译小组,虽然有 些情报还不能够完全破译,但是这个小组发现当日军开始向中途岛进 发的时候,在日军来往的电报中,经常出现的“AF”这两个字母,究竟 指什么?一时难以敲定。初步的判断,这可能是日军下一步要进攻的 目标,但是究竟是哪呢?也有人猜出来是中途岛,但是不能确定。 美军情报官让中途岛的美军,给太平洋舰队的总部发一份电报,内容 是 “本岛淡水设备发生故障。” 日军截获并破译了这封电报,同时向 它的司令部大本营报告。美军截获日军法网大本营的电报 “AF很可能 缺少淡水。” 于是确认了美军的判断——AF就是中途岛。 推论得到证实以后,太平洋舰队司令官尼米兹将军命令整个舰队严阵 以待,6月4日中途岛大战爆发,美军以损失一艘航空母舰的代价,一 举击沉了日本四艘航空母舰,而且都全是它的重型航空母舰,使日本 的联合舰队,遭受了空前的灭顶之灾。

现代密码学精讲PPT课件

现代密码学精讲PPT课件
3
2.1.1 什么是密码学(续)
发送者 Alice
明文m 加密器 Ek
密文c 公 共 信道
密钥k
密钥源
安全 信道
图 2.1 Shannon保密系统
分析者 Eve
解密器 明文m Dk
密钥k
接收者 Bob
4
2.1.1 什么是密码学(续)
通信中的参与者 (1) 发送者(Alice): 在双方交互中合法的信息发 送实体。 (2) 接收者(Bob):在双方交互中合法的信息接收 实体。 (3) 分析者(Eve):破坏通信接收和发送双方正常 安全通信的其他实体。可以采取被动攻击和主动 攻击的手段。 信道 (1) 信道:从一个实体向另一个实体传递信息的 通路。 (2) 安全信道:分析者没有能力对其上的信息进 行阅读、删除、修改、添加的信道。 (3) 公共信道:分析者可以任意对其上的信息进 行阅读、删除、修改、添加的信道。
定义2 一个加密方案可以被破译是指,第三方在 没有事先得到密钥对(e, d)的情况下,可以在适当 的时间里系统地从密文恢复出相对应的明文。 # 适当的时间由被保护数据生命周期来确定。
12
2.1.4 现代密码学主要技术(续)
私钥加密 定义3 一个由加密函数集{Ee: eK}和解密函数集{Dd: dK}组成加密方案,每一个相关联的密钥对(e, d) , 如果知道了e在计算上很容易确定d,知道了d在计算 上很容易确定e,那么,就是私钥加密方案。 # 私钥加密需要一条安全信道来建立密钥对。
2.1.4 现代密码学主要技术(续)
公钥加密实例
A1
Ee(m1)=c1
e
c1
e
A2
Ee(m2)=c2
c2
Dd(c1)=m1 Dd(c2)=m2

现代密码学_第三讲 密码学基本知识

现代密码学_第三讲 密码学基本知识

Pr[ p]Pr[c | p] { k : p d ( c )} Pr[ p | c] Pr[k ]Pr[ p d k (c)] Pr[c] { k :cC ( k )}
k
Pr[ p ]

Pr[ k ]
密 钥
Pr[c | p ]
解密算法
{k : p d k ( c )}
Pr( y
j 1
m
j
) 1
16
密码体制组成部分熵的基本关系
设(P,C,K,E,D)是一个密码体制,那么,
H(K|C)=H(K)+H(P)-H(C) 证明:首先,有H(K,P,C)=H(C|K,P)+H(K,P)。因为密钥和明 文唯一决定密文,所以,H(C|K,P)=0。又K和P是统计独立的,
所以,H(K,P)=H(P)+H(K)。 可得, H(K,P,C)=H(K,P)=H(P)+H(K) 。 同样,密钥和密文唯一决定明文,得H(P|K,C)=0,因此有
H(K,P,C)=H(K,C)。 所以,H(K|C)=H(K,C)-H(C) =H(K,P,C)-H(C) =H(K)+H(P)-H(C)
可得, H(K|C)= H(K)+ H(P) - H(C) ≈ 0.46
18
相关性(举例)
猜字母。假设收到便条“I lo_e you”,请问残缺的字母应 该是什么?在英语中符合lo_e结构的所有单词,其部分如下:
lobe lode loge lone lope lore lose love
17
举例说明(续)
根据题意,易得:
假设P={a,b}满足Pr[a]=1/4,Pr[b]=3/4。设 K={k1,k2,k3} 满足Pr[k1]=1/2, Pr[k2]=1/4, Pr[k3]=1/4。设C={1,2,3,4},加密函数定义 为ek1(a)=1, ek1(b)=2, ek2(a)=2, ek2(b)=3, ek3(a)=3, ek3(b)=4。

《现代密码学》教学大纲

《现代密码学》教学大纲

动、答疑模块。
六、考核方式
闭卷笔试,课程作业、实验成绩、课堂表现、考勤。
七、成绩评定方法
期末笔试成绩占 80%,平时成绩占 20%(根据课程作业、实验成绩、课堂表现、
考勤等)。
八、主要参考书籍
1.谷利泽,郑世慧,杨义先. 现代密码学教程. 北京邮电大学出版社,2015.3
(教材)。
2.B. Schneier. Applied cryptograghy second edition: protocols, algorithms, and
题;
1.2 具有扎实的专业基础理论,包括信息论与编码、密码学原理、信息
目标 5 安全数学基础、计算机网络技术等,能够用其解决信息安全相关领域
H
的复杂工程问题;
4.5 能正确采集、整理实验和模拟数据,对实验及模拟结果进行关联、 M
建模、分析处理,获取果进行关联、 H
source code in C. NewYork: John Wiley & Sons, 1996. 中译本: 吴世忠, 祝世雄, 张文
政译。
3.马春光. 现代密码学教程, 哈尔滨工程大学自编讲义。
大纲编写者:方贤进,xjfang@, /~xjfang/crypto/
一、教学目标
通过本课程的理论教学及实验训练,使学生具备以下知识和能力:
目标 1:掌握密码学与信息安全的关系、信息安全的目标(5 要素);掌握现代
密码学的研究内容与体系结构;掌握保密系统的模型及安全性、认证系统的模型及
安全性。
目标 2:掌握古典密码体制中的两种方法:置换密码与代换密码;掌握古典密
码分析方法,能使用“拟重合指数法”对“多表代换加密”实行“唯密文攻击”。

现代密码学第二讲(必修):古典密码学

现代密码学第二讲(必修):古典密码学

置换密码
练习: 明文: nice work
X1234 Pi(x) 2 4 1 3
求密文和逆置换。
思考: 当明文 字符不 是4的整 数倍怎 么办?
置换密码
已知多对明文和密文,可以推导置换表(即 密钥);
穷举攻击:已知密文,明文为有意义字符, 至多尝试m! 个,可以恢复明文
分组为m,至多有m!个置换
helloeveryone惟密文攻击维吉尼亚密码由m个移位密码构成移位密码不改变字符的分布故若能确定m则可以找到每个移位密码的位移量k若用给定的m个密钥表周期地对明文字母加密则当明文中有两个相同字母组长度大于3在明文序列中间隔的字母数为m的倍数时这两个明文字母组对应的密文字母组必相同
《现代密码学》第二讲
数学描述: 用数字表示每个字母:
abcdefghijk l mn o p q r s t u v w x y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
c = E(p) = (p + k) mod (26) p = D(c) = (c – k) mod (26)
穷举攻击:已知密文,且明文为有意义字符 ,至多尝试25次,可以恢复明文.
仿射密码(Affine Cipher)
移位密码的扩展
明文p ∈Z26,密文c ∈Z26 , 密钥k=(a,b) ∈ Z’26× Z26 且gcd(a,26)=1.
加密:
c = E(p) = (a × p + b) mod 26
解密:
p = D(c) = (c – b) × a-1mod 26
仿射密码
例:令密钥k=(7,3), 且gcd(7,26)=1.

杨波,_《现代密码学(第2版)》第三章 3.1-3.4节

杨波,_《现代密码学(第2版)》第三章 3.1-3.4节

图3.1 分组密码框图
通常取m=n。 。 通常取 若m>n,则为有数据扩展的分组密码; ,则为有数据扩展的分组密码; 若m<n,则为有数据压缩的分组密码。 ,则为有数据压缩的分组密码。
设计的算法应满足下述要求: 设计的算法应满足下述要求: 分组长度n要足够大 要足够大, ① 分组长度 要足够大,使分组代换字母表中的元素 个数2 足够大,防止明文穷举攻击法奏效。 个数 n足够大,防止明文穷举攻击法奏效。 DES、IDEA、FEAL和LOKI等分组密码都采用 、 等分组密码都采用n=64, 、 和 等分组密码都采用 , 在生日攻击下用232组密文成功概率为1/2,同时要求 在生日攻击下用 组密文成功概率为 , 存贮, 232×64b=215MB存贮,故采用穷举攻击是不现实的。 存贮 故采用穷举攻击是不现实的。
• 如将分组 化分为子段,每段长为 、16或者 。 如将分组n化分为子段 每段长为8、 或者 化分为子段, 或者32。 • 软件实现时,应选用简单的运算,使作用于子段上 软件实现时,应选用简单的运算, 的密码运算易于以标准处理器的基本运算,如加、 的密码运算易于以标准处理器的基本运算,如加、 移位等实现, 乘、移位等实现,避免用以软件难于实现的逐比特 置换。 置换。 • 为了便于硬件实现,加密和解密过程之间的差别应 为了便于硬件实现, 仅在于由秘密密钥所生成的密钥表不同而已。这样, 由秘密密钥所生成的密钥表不同而已 仅在于由秘密密钥所生成的密钥表不同而已。这样, 加密和解密就可用同一器件实现。 加密和解密就可用同一器件实现。 • 设计的算法采用规则的模块结构,如多轮迭代等, 设计的算法采用规则的模块结构,如多轮迭代等, 以便于软件和VLSI快速实现。 快速实现。 以便于软件和 快速实现
数据扩展尽可能地小。一般无数据扩展, ⑤ 数据扩展尽可能地小。一般无数据扩展,在采用同 态置换和随机化加密技术时可引入数据扩展。 态置换和随机化加密技术时可引入数据扩展。 差错传播尽可能地小。 ⑥ 差错传播尽可能地小。

现代密码学 第3讲DES

现代密码学 第3讲DES
明文分组到密文分组的可逆变换明文和密文的分组长都为n比特则明文的每一个分组都有2585042342618106052443628201262544638302214645648403224165749413325175951433527191161534537292113635547393123154816562464323947155523633138461454226230374513532161293644125220602835431151195927344210501858263349175725初始置换前后初始置换ip逆初始置换ip1置换permutationdes为例20205411将明文及密钥的影响尽可能迅速地散布到较多输出的密文中使比特01均匀分布使明文密钥和密文之间的关系复杂化分组密码设计思想
密钥k=(k0, k1,…, kt-1 )
明文 x=(x0, x1,…, xn-1)
密文 x=(y0, y1,…, ym-1)
明文 x=(x0, x1,…, xn-1)
加密算法
解密算法
通常取xi,yi∈GF(2), 主要讨论二元情况
2020/3/24
5
分组密码概述
通常取n=m。
DES
明文分组长度 64
2
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3
15 12 8 2 4 9 1 7 5 11 2 14 10 0 6 13
2020/3/24
25
S盒
对每个Si盒的 6比特输入中
✓第1个和第6个比特形成一个2位二进制数,用来选 择Si的4个代换中的一个(行)。 ✓中间4位用来选择列。
✓美国已决定1998年12月以后将不再使用DES。

2017年最新北京邮电大学北邮精品课程-现代密码学课件合集.pdf

2017年最新北京邮电大学北邮精品课程-现代密码学课件合集.pdf

1绪论《现代密码学》第一讲课程信息课程名称:现代密码学(必修课,考试) 共16周任课教师:杨义先郑世慧时间/地点:周二上午10:10 -12:00 教3楼417学生:2008211317 2008211318 2008211319 2008211320考核方式:平时+期中考试30%-40%期末考试60%-70%作业:前一周作业,下一周上课前交齐作业题目、作业提交及相关课程信息见“网络教学””精品课程“网站/buxdmmx请先注册,然后进行相关操作参考书目⏹现代密码学教程,谷利泽等,北邮出版社,2009⏹现代密码学基础,章照止,北邮出版社,2004⏹现代密码学,杨波,清华大学出版社,2004参考书目⏹密码学原理与实践,(加)Douglas R.Stinson著,冯登国译,电子工业出版社, 2003.⏹密码编码学与网络安全——原理与实践,(美) Stallings,W.著,孟庆树等译,电子工业出版社,2006.⏹应用密码学-协议、算法与C源程序,Burce等,机械工业出版社,2002.⏹现代密码学理论与实践,Wenbo Mao著,王继林译,电子工业出版社,2004.⏹应用密码学手册, Alfred Menezes著,胡磊译,电子工业出版社,2005⏹密码学基础,O.Goldreich著,杨义先等译,人民邮电出版社,2003.⏹高级加密标准(AES)算法—Rijndael的设计,John Daemen,Vincent Rijndael著;谷大武等译,清华大学出版社,2003.注意事项⏹《现代密码学》是信息安全专业重要的专业基础课,理论性强,难度大,请大家用功学习。

⏹北邮《现代密码学》是国家级精品课程,希望师生共同努力,将该门课程建设得更好!⏹欢迎学有余力的同学参与信息安全中心的相关课题研究!本讲主要内容⏹密码学的目的⏹密码学的历史⏹现代密码学的分类⏹《现代密码学》课程讲授主要内容密码学的目的中国古代的保密例1:汉代泥封古时的官、私文书和书信往来大都写在竹简或木牍上,这些简牍书信,在传递过程中需要保密就得封缄起来。

现代密码学(第三章)

现代密码学(第三章)
2020101721计算部件计算部件的组合spn即替换臵换网络多轮迭代与轮函数2020101722分组密码的设计者总是在安全性与简洁性之间回旋因此一般的设计方法都是用一些简单的计算部件通过组合成为复杂的能抵抗各种攻击的加密函密码设计者希望这些计算部件的安全性功能互补而不是相互抵消
第三章:分组密码
一、分组密码的基本概念 二、分组密码DES 三、分组密码IDEA 四、分组密码Rijndael 五、分组密码SAFER+
2015-4-17 28
一、分组密码的基本概念
L(0) k F R(0)
‘+’
L’
R’
L(1)
2015-4-17
R(1)
29
一、分组密码的基本概念
Feistel网络的结构特点 定义 变换f称为对合变换(或称为自反变换),如 果其反变换还是f。(对任何x满足f(f(x))=x) 我们看到, Feistel网络的第(1)步是对合变换; Feistel网络的第(2)步也是对合变换; Feistel网络本身不是对合变换。 Feistel网络的这种结构使它能够组合成安全强度高 的分组密码算法。
2015-4-17 26
一、分组密码的基本概念
因此有以下的结论:输入/输出长度比较小的高 度非线性函数仅仅实现高度非线性,混淆和 扩散功能可以由其它的线性计算部件来完成。 输入/输出长度比较小的,用输入/输出真值表来 计算的,仅仅实现高度非线性功能的计算部 件称为S盒。 现有的大多数S盒是公开的,即是一个单表代 换部件。 一少部分S盒是由密钥控制的,即是一个多表 代换部件。
一、分组密码的基本概念
Eve的一种办法是穷举搜索密钥的所有可能值。 (密钥z长度为j,共有2j个可能值)为了抵抗穷举 搜索,密钥的长度j不能太小。当然密钥长度也不 能太大,否则加解密的计算量就会很大。当前常 用的密钥长度为64或128或256。 Eve的另一种办法是充分利用加解密算法(E,D) 的弱点。如果某一组明文/密文对(m,c)使得 方程m=D(c, z)特别容易解出z,m就称为一个弱明 文,z就称为一个弱密钥。

(现代密码学课件)02序列密码

(现代密码学课件)02序列密码
(现代密码学课件)02序列密码
2
一、二进制与位运算
二进制表示 字符编码 常用位运算 位运算练习
3
二进制表示
在现代密码算法中,我们通常需要将明文 用二进制的明文流来表示,然后再对二进 制的明文流加密。
任何十进制数字都可以用二进制数字表示 练习:将自己的学号的后三位用二进制数
字表示(后面的练习还需要用到)
输 出 时刻 状 态
4321
18
0 0 0 1 0 0
9 10 11 12 0 1101 1110 1111 0111 0011 0001
输出
1 0 1 0 1 1 1 1
33
LFSR 练习
设3级 LFSR 的递归函数为ai+3=ai+2+ai,初 始状态为 (a1,a2,a3)=(1,0,1)。求输出序列和 周期,并画出LFSR的示意图。
ai+n
c1
c2
ai+n-1 xn
ai+n-2 xn-1
cn-1
cn
ai+1
ai
ai-1, …, a1
x2
x1
31
线性反馈移位寄存器例子
例子:n=4的LFSR。输出序列满足ai+4=ai+1+ai。初始 状态(a1,a2,a3,a4)为1000。序列的周期为15=24-1。
ai+4 ai+3
ai+2
优点:具有自同步能力,强化了其抗统计分析 的能力
缺点:有n位长的差错传播。
11
同步流密码
同步流密码SSC (Synchronous Stream Cipher):
i与明文消息无关,密钥流将独立于明文。

现代密码学(清华大学出版社)课堂课件

现代密码学(清华大学出版社)课堂课件
密钥流生成器可分解为驱动子系统和非线性组 合子系统。
驱动子系统常用一个或多个线性反馈移位寄存 器来实现,
非线性组合子系统用非线性组合函数F来实现。
第3章 分组密码体制
3.1 分组密码概述 3.2 数据加密标准 3.3 差分密码分析与线性密码分析 3.4 分组密码的运行模式 3.5 IDEA 3.6 AES算法——Rijndael 习题
• •
2流单.1密击流码此密处码编的基辑本母概版念标题样式
关键密钥流产生器
• •同单步击流此密处码编辑母版副标题样式 • 自同步流密码
• 有限状态自动机
• 密钥流序列具有如下性质:
极大的周期、良好的统计特性、抗线性分析、抗 统计分析。
• 密钥流产生器:驱动部分和非线性组合部分
图2.7 常见的两种密钥流产生器
•单无击条此件处安编全辑母版标题样式
• 如果算法产生的密文不能给出唯一决定相应明 文的足够信息,无论截获多少密文,花费多少时
• 单间击都此不处能编解辑密母密版文副。标题样式 • Shannon指出,仅当密钥至少和明文一样长时
达到无条件安全(即一次一密)
• 计算安全
– 破译密文的代价超过被加密信息的价值
(data encryption standard, DES)
应单用击中此对处于编分辑组母码版的标要题求样式
• 安全性
•• 单运击行此速处度编辑母版副标题样式 • 存储量(程序的长度、数据分组长度、高速缓存大
小)
• 实现平台(硬、软件、芯片)
• 运行模式
称单明击文此分处组编到辑密母文版分标组题的样可式逆变换为代换
• 设计的算法应满足下述要求:
• 分组长度n要足够大,使分组代换字母表中的元素 • 单个击数此2n处足编够辑大母,版防副止标明题文样穷式举攻击法奏效。

现代密码学第3讲:复杂性理论

现代密码学第3讲:复杂性理论

10 T(n)=n2 0.0001s T(n)=2n 0.001s
30 0.0009s 17.9月
50
60
0.0025s 0.0036s
35.7年 366世纪
14
密码算法的计算安全性
当问题输入长度足够大,分析密码体制的算
法的复杂度较大,可能的计算能力下,在保
密的期间内可以保证算法不被攻破,这就是
密码体制的计算安全性思想。
问题的定义及分类
问题:描述参量陈述解答应当满足的性质 (称为询问). 参量为具体数值时,称为问题的一个实例.
判定问题:回答只有Yes或No. 计算问题:从其可行解集合中搜索出最优解.
算法复杂度的定义
例 设x是小于100的某个整数,问x是否是素 数?
解答一:取2~ x 的所有整数,依次试除x,若存 在某个整数可以整除x,则程序停止,输出x为合 数,否则输出x为素数.
注:分分 制 复析析 的 杂密 算 度方码 法 函法体 的 数是无穷无尽的,类似于预 力解计 增计 长决算 速问能 度题的算
法,目前不存在非多项式时间的分析方法,将来
可能存在,即算法将来可能不堪一击. 如差分分
析出现。。。
输入长度
密码算法的计算安全性
密码系统设计:
合法用户——易 (多项式)
攻击者 ——难(非多项式)
空间复杂性:执行过程中所需存储器的单元 数目.
数据复杂性:信息资源. 计算模型----确定性图灵机(有限带符号集合,
有限状态集,转换函数)(读写头,读写 带).
8
算法复杂度的定义
不同的编程语言,不同的编译器导致执行一 次操作的时间各不相同,为了方便不同算法 比较,通常假定所有计算机执行相同的一次 基本操作所需时间相同,而把算法中基本操 作执行的最大次数作为执行时间. 基本操作数量 运行时间= 机器速度

现代密码学PPT课件

现代密码学PPT课件

1.3 密码学基本概念
1.3.1 保密通信系统
通信双方采用保密通信系统可以隐蔽和保护需要发 送的消息,使未授权者不能提取信息。发送方将要 发送的消息称为明文,明文被变换成看似无意义的 随机消息,称为密文,这种变换过程称为加密;其 逆过程,即由密文恢复出原明文的过程称为解密。 对明文进行加密操作的人员称为加密员或密码员。 密码员对明文进行加密时所采用的一组规则称为加 密算法。
② 系统的保密性不依赖于对加密体制或算法的保密, 而依赖于密钥。这是著名的Kerckhoff原则。
③ 加密和解密算法适用于所有密钥空间中的元素。
④ 系统便于实现和使用。
1.3.2 密码体制分类
密码体制从原理上可分为两大类,即单钥体制和双 钥体制。
1.1.3 安全业务
安全业务指安全防护措施,有以下5种。 1. 保密业务
保护数据以防被动攻击。保护方式可根据保护范围 的大小分为若干级,其中最高级保护可在一定时间 范围内保护两个用户之间传输的所有数据,低级保 护包括对单个消息的保护或对一个消息中某个特定 域的保护。保密业务还包括对业务流实施的保密, 防止敌手进行业务流分析以获得通信的信源、信宿、 次数、消息长度和其他信息。
20世纪90年代,因特网爆炸性的发展把人类带进了 一个新的生存空间。因特网具有高度分布、边界模 糊、层次欠清、动态演化,而用户又在其中扮演主 角的特点,如何处理好这一复杂而又巨大的系统的 安全,成为信息安全的主要问题。由于因特网的全 球性、开放性、无缝连通性、共享性、动态性发展, 使得任何人都可以自由地接入,其中有善者,也有 恶者。恶者会采用各种攻击手段进行破坏活动。信 息安全面临的攻击可能会来自独立的犯罪者、有组 织的犯罪集团和国家情报机构。对信息的攻击具有 以下新特点: 无边界性、突发性、蔓延性和隐蔽性。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
复杂性理论
《现代密码学》第三讲
上讲内容回顾
Shannon通信保密系统 熵和无条件保密
分组密码的设计思想
本章主要内容
问题的定义及分类
算法复杂度定义及分类 P问题和NP问题
规约思想与NPC类
密码算法的计算安全性
1 设A=(a 1,a 2,…,a n )是由n 个不同的正整数构成的n 元组,S 是另一已知的正整数. A 称为背包向量,S 称为背包容积. 求A
中元素集合A’,使.2 设背包向量A=(1,2,5,10,20,50,100), 背包容积为177,求向量,使得.'i
i a A a S ∈=∑7{0,1}X ∈71
177i i i x a ==∑
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/ln 100, 存储空间: 100/ln 100
x ⎢⎥⎣⎦x ⎢⎥⎣⎦
8
算法复杂度的定义
时间(计算)复杂性:考虑算法的主要操作步骤,计算执行中所需的总操作次数. 空间复杂性:执行过程中所需存储器的单元数目.
数据复杂性:信息资源.
计算模型----确定性图灵机(有限带符号集合,有限状态集,转换函数)(读写头,读写带).
算法复杂度的定义
不同的编程语言,不同的编译器导致执行一次操作的时间各不相同,为了方便不同算法比较,通常假定所有计算机执行相同的一次基本操作所需时间相同,而把算法中基本操作执行的最大次数作为执行时间.
基本操作数量
运行时间=
机器速度
10算法复杂度的定义
定义
假设一个算法的计算复杂度为O(n t ),其
中t 为常数,n 为输入问题的长度,则称这算法的复杂度是多项式的。

具有多项式时间复杂度的算法为多项式时间算法.
函数g(n )=O(n t )表示存在常数c>0和n 0>=0,对一切n > n 0均有|g(n )|<=c|n t | 成立,也就是说,当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函数的示意图
例. 设问题输入长度为n,在一个每秒钟运行百万次
的计算机上的运行时间如下:
10305060
T(n)=n20.0001s0.0009s0.0025s0.0036s
T(n)=2n0.001s17.9月35.7年366世纪
14
当问题输入长度足够大,分析密码体制的算法的复杂度较大,可能的计算能力下,在保密的期间内可以保证算法不被攻破,这就是密码体制的计算安全性思想。

注:分析方法是无穷无尽的,类似于解决问题的算法,目前不存在非多项式时间的分析方法,将来可能存在,即算法将来可能不堪一击. 如差分分析出现。

16
密码系统设计:
合法用户——易(多项式)攻击者——难(非多项式)注:计算模型----图灵机
量子计算机出现导致分解因子问题容易,从而RSA 等密码系统不再安全,缘由是计算模型不同.非多项式时间问题多项式问题
17
定义判定问题,. 若存在的解法
S1,那么通过调用S1(作为子程序),可以在多项式时间内解问题,则称可多项式规约至“∝”
定义若判定问题∈NP ,对每个判定问题∈NP ,都有∝,则称属于NPC 类,或称为NP 完全的.
1π2π
1π2π1
π2π2π1πππ′π′π′π
主要知识点小结
算法的复杂度定义及分类 密码算法的计算复杂度
20作业
1 求冒泡排序法的计算复杂度, 该算法是否为多项式的?
2 超递增背包问题:
设A=(a
1,a 2,…,a n )是由n 个不同的正整数构
成的n 元组,且,S 是另一已知的正整数。

求A 的子集A’,使.
(1) 给出该问题的求解算法;(2) 求算法的计算复杂度.
11
2,,j j i i a a j n
−=>=∑L
'
i i a A a S ∈=∑
21THE END
!。

相关文档
最新文档