现代密码学(清华大学出版社)课堂课件
合集下载
《现代密码学(第2版)杨波 01
保密通信系统的组成
明文消息空间M,密文消息空间C,密钥空间 K1和K2,在单钥体制下K1=K2=K,此时密钥K需 经安全的密钥信道由发送方传给接收方; 加密变换Ek1:M→C,其中k1∈K1,由加密器 完成; 解密变换Dk2:C→M,其中k2∈K2,由解密器 实现. 称总体(M,C,K1,K2,EK1,DK2)为保密通信系统.对 于给定明文消息m∈M,密钥k1∈K1,加密变 换将明文m变换为密文c,即 c=f(m,k )=E (m)m∈M,k ∈K
20世纪90年代,因特网爆炸性的发展把人类 带进了一个新的生存空间.因特网具有高度 分布,边界模糊,层次欠清,动态演化,而 用户又在其中扮演主角的特点,如何处理好 这一复杂而又巨大的系统的安全,成为信息 安全的主要问题.由于因特网的全球性,开 放性,无缝连通性,共享性,动态性发展, 使得任何人都可以自由地接入,其中有善者, 也有恶者.恶者会采用各种攻击手段进行破 坏活动.
如何产生满足保密要求的密钥以及如何将密 钥安全可靠地分配给通信双方是这类体制设 计和实现的主要课题. 密钥产生,分配,存储,销毁等问题,统称 为密钥管理.这是影响系统安全的关键因素. 单钥体制可用于数据加密,也可用于消息的 认证. 单钥体制有两种加密方式:
– 明文消息按字符(如二元数字)逐位地加密,称 之为流密码; – 将明文消息分组(含有多个字符),逐组地进行 加密,称之为分组密码.
在信息传输和处理系统中,除了预定的接收 者外,还有非授权者,他们通过各种办法 (如搭线窃听,电磁窃听,声音窃听等)来 窃取机密信息,称其为截收者. 截收者虽然不知道系统所用的密钥,但通过 分析可能从截获的密文推断出原来的明文或 密钥,这一过程称为密码分析,ห้องสมุดไป่ตู้事这一工 作的人称为密码分析员,研究如何从密文推 演出明文,密钥或解密算法的学问称为密码 分析学.
现代密码学课程ppt(完整版)
3
数字签名的基本概念
手写签名与数字签名的区别 手写签名是一种传统的确认方式,如写信、 手写签名是一种传统的确认方式,如写信、签订 协议、支付确认、批复文件等. 协议、支付确认、批复文件等
手写签名是所签文件的物理组成部分;数字签名必须与所签文件捆绑 在一起。 手写签名通过与标准签名比较或检查笔迹来验证,伪造签名比较容易; 数字签名是通过公开的验证算法来验证。好的数字签名算法应该伪造 签名十分困难。 手写签名不易复制;数字签名是一个二进制信息,十分容易复制,所 以必须防止数字签名重复使用。
16
一般数字签名算法一般数字签名算法-DSA
参数 p:满足2L-1<p<2L 的大素数,其中512≤L≤1024且 L是64的倍数. q:p-1的素因子,满足2159<q<2160 ,即q长为160 比特. g:g≡h(p-1)/q mod p,其中h是满足1<h<p-1且使 得h(p-1)/q mod p>1的任一整数. 用户秘密钥x(0<x<q的随机数或伪随机数); 用户的公开钥y:y≡gx mod p.
23
一般数字签名算法
基于离散对数问题的数字签名体制是数字签 基于离散对数问题 名体制中最为常用的一类,其中包括 ElGamal签名体制、DSA签名体制、Okamoto 签名体制等.
24
一般数字签名算法
离散对数签名体制 1) 参数和密钥生成 p:大素数;q:p-1或p-1的大素因子; g:g∈RZ*p,且gq≡1(mod p), g∈R Z*p表示g是从Z*p中随机选取的, Z*p=Zp-{0}; x:用户A的秘密钥,1<x<q; y:用户A的公开钥,y≡gx(mod p).
28
清华大学出版社 密码学PPT课件
✓ 二十世纪末的AES算法征集活动使密码学界又掀起了一次分组密码研究的 高潮。同时,在公钥密码领域,椭圆曲线密码体制由于其安全性高、计算 速度快等优点引起了人们的普遍关注和研究,并在公钥密码技术中取得重 大进展。
✓ 在密码应用方面,各种有实用价值的密码体制的快速实现受到高度重视, 许多密码标准、应用软件和产品被开发和应用,美国、德国、日本和我国 等许多国家已经颁布了数字签名法,使数字签名在电子商务和电子政务等
同时在公钥密码领域椭囿曲线密码体制由于其安全性高计算速度快等优点引起了人们的普遍关注和研究幵在公钥密码技术中叏得重在密码应用斱面各种有实用价值的密码体制的快速实现叐到高度重视许多密码标准应用软件和产品被开収和应用美国德国日本和我国等许多国家巫经颁布了数字签名法使数字签名在电子商务和电子政务等领域得到了法律的认可推劢了密码学研究和应用的収展
可以对用该密钥加密的任何新的消息进行解密。
④ 选择密文攻击(Chosen—ciphenext attack)
选择密文攻击是指密码分析者可以选择一些密文,并得到相应的明文
1.3.3 对密码系统的攻击
密码分析者破译或攻击密码的方法主要有穷举攻击法、统计分析法和数学分 析攻击法。
(1)穷举攻击法
穷举攻击法又称为强力或蛮力(Brute force)攻击。这种攻击方法是 对截获到的密文尝试遍历所有可能的密钥,直到获得了一种从密文到明文的 可理解的转换;或使用不变的密钥对所有可能的明文加密直到得到与截获到 的密文一致为止。
1.3.1密码学的主要任务(续)
③ 鉴别
这是一种与数据来源和身份鉴别有关的安全服务。鉴别服务包括对身份 的鉴别和对数据源的鉴别。对于一次通信,必须确信通信的对端是预期的实 体,这就涉及到身份的鉴别。
✓ 在密码应用方面,各种有实用价值的密码体制的快速实现受到高度重视, 许多密码标准、应用软件和产品被开发和应用,美国、德国、日本和我国 等许多国家已经颁布了数字签名法,使数字签名在电子商务和电子政务等
同时在公钥密码领域椭囿曲线密码体制由于其安全性高计算速度快等优点引起了人们的普遍关注和研究幵在公钥密码技术中叏得重在密码应用斱面各种有实用价值的密码体制的快速实现叐到高度重视许多密码标准应用软件和产品被开収和应用美国德国日本和我国等许多国家巫经颁布了数字签名法使数字签名在电子商务和电子政务等领域得到了法律的认可推劢了密码学研究和应用的収展
可以对用该密钥加密的任何新的消息进行解密。
④ 选择密文攻击(Chosen—ciphenext attack)
选择密文攻击是指密码分析者可以选择一些密文,并得到相应的明文
1.3.3 对密码系统的攻击
密码分析者破译或攻击密码的方法主要有穷举攻击法、统计分析法和数学分 析攻击法。
(1)穷举攻击法
穷举攻击法又称为强力或蛮力(Brute force)攻击。这种攻击方法是 对截获到的密文尝试遍历所有可能的密钥,直到获得了一种从密文到明文的 可理解的转换;或使用不变的密钥对所有可能的明文加密直到得到与截获到 的密文一致为止。
1.3.1密码学的主要任务(续)
③ 鉴别
这是一种与数据来源和身份鉴别有关的安全服务。鉴别服务包括对身份 的鉴别和对数据源的鉴别。对于一次通信,必须确信通信的对端是预期的实 体,这就涉及到身份的鉴别。
《现代密码学》散列函数与消息鉴别ppt课件
• SHA–1产生音讯摘要的过程类似MD5,如下图
填充位
L×512 bit= N×32 bit K bit
这一步为MD5的主循环,包括四轮。每个循环 都以当前的正在处置的512比特分组Yq和128比 特缓冲值ABCD为输入,然后更新缓冲内容。
3.MD5的输出
由A、B、C、D四个存放器的输出按低位字节在 前的顺序(即以A的低字节开场、D的高字节终 了)得到128位的音讯摘要。
• 单个512比特分组的MD5主循环处置:
对散列函数必需具有的性质的了解: 系统能够存在的伪造方式 伪造方式一:假设攻击者截获某一音讯摘要h,假
设H的逆函数H-1是易求的,可算出H-1(h)=m, 满足h=H(m)。为防止这一点,必需求求散列 函数H为单向的,即计算H的逆函数H-1在计算 上是不可行的。 伪造方式二:从一个有效签名(m,y)开场,此处y= sigk(H(m))。首先计算h=H(m),并企图找到一 个m’=m满足H(m’)=H(m)。假设做到这一点, 那么(m’,y)也将为有效签名。为防止这一点, 要求函数h具有弱抗冲突特性,即,对给定音 讯m,在计算上几乎找不到不同于m的m’ ∈ X 使H(m)=H(m’)。
(1)单向性:对任何给定的码h,寻觅m使得 H(m) = h在计算上是不可行的
(2)具有弱抗碰撞性〔week collision resistance〕 :对于任何给定的音讯m, 寻觅一个与m不同的音讯m’使得 H(m)=H(m’)在计算上不可行。
(3)具有强抗碰撞性〔 strong collision resistance 〕:寻觅恣意两个不同的音讯 m和m’使得使得H(m)=H(m’)在计算上不 可行。
对散列函数的生日攻击
• 假定其输出为m比特,那么寻觅一个音讯,使其散 列值与给定散列值一样那么需求计算2m次;而寻 觅两个音讯具有一样的散列值仅需求实验2m/2个 随机的音讯。
【学习课件】第01讲概述现代密码学教学
2021/7/13
2020112337二密码分析学加密算法安全的条件?无条件安全算法产生的密文不能唯一决定相相应明文只有一次一密的加密算法才是无条件安全?计算机安全破译密文的代价超过被加密信息的价值破译密文的时间超过信息的有用期2020112338三密码体制1密码体制的描述一个密码体制cryptosystem由四部分组成
2021/7/13
32
密码:是通信各方按约定的规则,为隐蔽消 息原形而生成的一组具有随机特性的特定符 号。
明文:被隐蔽的消息称作明文,通常用m 表示。
密文:隐蔽后的消息称作密文或密报,通 常用c表示。
2021/7/13
33
加密:将明文变换成密文的过程称作加密, 该过程表示为: cEk(m)。
解密:由密文恢复出明文的过程称作解密, 该过程表示为: mDk(c)
密电内容:德国将开始“无限制潜艇政策”,为了 阻止美国因此参战,德国建议墨西哥入侵美国,并 承诺帮助墨西哥从美国手中夺回得克萨斯、新墨西 哥和亚利桑那三州,德国将提供军事和资金援助。
1月25日电文内容转报美国总统
4月6日美国正式参战
1918年11月11日,第一次世界大战结束。
直接后果:美国参战,缩短了一战进程。
式颁布实施DES(数据加密标 准), 掀起了分组密码研究的高 潮。推动了分组密码的发展。
2021/7/13
29
3、《密码学的新方向》 1976年,Diffle和Hellman 发表了这篇文章,导致了 密码学上的一场革命,开 创了公钥密码研究的新纪 元。这篇文章的发表和 DES的颁布标志着现代密 码学的诞生,从此揭开了 商用密码研究的序幕。
2021/7/13
30
1Байду номын сангаас2、密码学基本概念
现代密码学第五讲流密码(二).ppt
h1 (x) = Q[x0 ] + Q[256 + x1 ] + Q[512 + x2 ] + Q[768 + x3 ] h2 (x) = P [x0 ] + P[256 + x1 ] + P[512 + x2 ] + P[768 + x3 ] 其中字节xg1f=.1(xx(xx3) )3和和|f2|hx(1xx20()x的||)分被x作1表别用||Q与标x0用σ记0,作x(xx为S中) 盒σ最13,2(高xg-)b2在字i(txS节,)H和Ax和0-h2最2,5(6xx低中1)被,字的表x节2作P和用用。作相x同S3盒。为。4个
P [j] = P [j] + g1 ( P [j - 3], P [j - 10],P [j - 511] ); si = h1 ( P [j - 12] ) ⊕ P [j]; } else { //在组内序号大于512时 Q[j] = Q[j] + g2 ( Q[j - 3], Q[j - 10] ,Q[j - 511] ); si = h2 ( Q[j - 12] ) ⊕ Q[j]; } end-if i = i + 1; } end-repeat
伪随机序列。 最大加密消息长度为264 Bytes,即16 TB,若消息
超过该长度,则需要更换密钥对剩下的消息进行 处理。
Rabbit
i时刻的内部状态(internal state)的
大小是513比特,包含
8个32比特的状态变量(state variables)
xj;i (j=0,1,…, 7) ;
8个32比特的计数变量(counter variables)
cj;I (j=0,1,…, 7) ;
P [j] = P [j] + g1 ( P [j - 3], P [j - 10],P [j - 511] ); si = h1 ( P [j - 12] ) ⊕ P [j]; } else { //在组内序号大于512时 Q[j] = Q[j] + g2 ( Q[j - 3], Q[j - 10] ,Q[j - 511] ); si = h2 ( Q[j - 12] ) ⊕ Q[j]; } end-if i = i + 1; } end-repeat
伪随机序列。 最大加密消息长度为264 Bytes,即16 TB,若消息
超过该长度,则需要更换密钥对剩下的消息进行 处理。
Rabbit
i时刻的内部状态(internal state)的
大小是513比特,包含
8个32比特的状态变量(state variables)
xj;i (j=0,1,…, 7) ;
8个32比特的计数变量(counter variables)
cj;I (j=0,1,…, 7) ;
(现代密码学课件)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与明文消息无关,密钥流将独立于明文。
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与明文消息无关,密钥流将独立于明文。
现代密码学课件--第9讲分组密码5
2019/2/27
13
差分密码分析(Differential cryptanalysis)
差分密码分析的基本思想是在要攻击的迭代密码系统 中找出某高概率差分来推算密钥。
一个i轮差分是一(, )对,其中是两个不同明文X和X’ 的差分,是密码第i轮输出Y(i)和Y’(i)之间的差分。 在给定明文的差分 X=条件下,第i轮出现一对输出 的差分为的条件概率称之为第i轮差分概率,以 P(Y(i)=|X=)表示。
对于 Markov 密码,第 i 差分概率就是第 i 阶转移概率矩 阵i中的元素(, )。
2019/2/27
14
r轮迭代密码的差分分析
寻求第 ( r-1) 轮差分 ( , ) 使概率 P(Y(r-1)=|X=) 的 值尽可能为最大。
随机地选择明文X,计算X’使X’与X之差分为,在密钥k 下对 X和 X’ 进行加密得 Y(r) 和Y’(r),寻求能使 Y(r-1)= 的所有可能的第 r轮密钥K(r),并对各子密钥 ki(r)计数,若 选定的X=,(X, X’)对在ki(r)下产生的(Y, Y’)满足Y(r- 1)=,就将相应ki(r)的计数增加1。 重复第 2 步,直到计数的某个或某几个子密钥 ki(r) 的值, 显著大于其它子密钥的计数值,这一子密钥或这一小的 子密钥集可作为对实际子密钥K(r)的分析结果。
6
2019/2/27
差分密码分析(Differential cryptanalysis)
差分密码分析是一种攻击迭代分组密码的选择明 文统计分析破译法。
它不是直接分析密文或密钥的统计相关性,而是 分析明文差分和密文差分之间的统计相关性。 给定一个r轮迭代密码,对已知n长明文对X和 X‘, 定义其差分为
现代密码学 第1讲
2020/6/16
10
系统穿透
未授权人对认证性(真实性Authenticity) 进行攻击,假冒合法人接入系统.
对文件进行窜改(窜改系统中数据内容,修正消息次序、时间、
延时和重放).
窃取机密信息. 非法使用资源等。
一般采取伪装、利用系统的薄弱环节、收 集情报等方式实现。
2020/6/16
11
违反授权原则
2020/6/16
8
Internet上的对抗与威胁
Internet一方面成为人们离不开的信息工具,同时也成为公开 的攻击对象目标。
网络的全球性、开放性、无缝连通性、共享性、动态性,使任 何人都可以自由地接入Internet,其中有善者,也有恶者。
恶意者时刻在试图穿透别人的系统,捣毁别人的信箱、散布破 坏性信息、倾泻信息拉圾。
2020/6/16
33
OSI的安全结构(一)安全业务
OSI的安全结构中划分6类安全业务
• 认证 • 接入控制 • 数据机密性 • 数据完整性 • 不可否认 • 匿名性业务。
2020/6/16
34
OSI的安全结构(一)安全业务
1. 同等实体认证业务(Peer Entity Authentication Service)
为应用进程提供了一种访问OSI环境的方法。应用层 协议标准描述了应用于某一特定的应用或一类应用的通信 功能。
(2) 表示层(第六层)。
提供了应用层实体或它们之间的通信中所使用的信息 表示。
(3) 会话层(第五层)。
为高层实体提供了组织和同步它们的会话,并管理它 们之间数据交换的方法。
2020/6/16
子科技大学出版社 4. 现代密码学――原理与实践,毛文波著,王继林
现代密码学清华大学出版社课堂课件ppt课件
•单击此处编辑母版标题样式 无条件安全 • 如果算法产生的密文不能给出唯一决定相应明 文的足够信息,无论截获多少密文,花费多少时 间都不能解密密文。 • 单击此处编辑母版副标题样式 • Shannon指出,仅当密钥至少和明文一样长时 达到无条件安全(即一次一密) • 计算安全 – 破译密文的代价超过被加密信息的价值 – 破译密文所花时间超过信息的有效期
1.1 信息的安全威胁
因特网的开放性和共享性,给人们提供了方便 也带来了危险。
图1.1 攻击类型分类
单击此处编辑母版标题样式
• 单击此处编辑母版副标题样式
图1.2 恶意程序分类
安全业务
安全业务指安全防护措施,有以下5种。 1. 保密业务 2. 认证业务 3. 完整性业务 4. 不可否认业务 5. 访问控制
• 2.1 流密码的基本概念 单击此处编辑母版标题样式 • 流密码 关键密钥流产生器 • •同步流密码 单击此处编辑母版副标题样式 • 自同步流密码 • 有限状态自动机 • 密钥流序列具有如下性质: 极大的周期、良好的统计特性、抗线性分析、抗 统计分析。 • 密钥流产生器:驱动部分和非线性组合部分
应用中对于分组码的要求 单击此处编辑母版标题样式
• 安全性
• 运行速度 • 单击此处编辑母版副标题样式 • 存储量(程序的长度、数据分组长度、高速缓存大 小) • 实现平台(硬、软件、芯片)
• 运行模式
称明文分组到密文分组的可逆变换为代换 单击此处编辑母版标题样式
• 设计的算法应满足下述要求: • 分组长度n要足够大,使分组代换字母表中的元素 • 单击此处编辑母版副标题样式 个数2n足够大,防止明文穷举攻击法奏效。 • 密钥量要足够大(即置换子集中的元素足够多), 尽可能消除弱密钥并使所有密钥同等地好,以防 止密钥穷举攻击奏效。 • 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆,没有简单的 关系可循,要能抗击各种已知的攻击。
现代密码学 第6章PPT课件
ρ2(i)=(1+5i) mod 16
ρ3(i)=(5+3i) mod 16
ρ4(i)=7i mod 16
2020/12/4
32
6.3.3 MD5的安全性
目前对MD5的攻击已取得以下结果: ① 对单轮MD5使用差分密码分析,可在合理的时间内 找出具有相同杂凑值的两个消息。但这种攻击还未能 成功地推广到4轮MD5。 ② 可找出一个消息分组和两个相关的链接变量(即缓
④ 以分组为单位对消息进行处理每一分组Yq(q=0,…,L-1) 都经一压缩函数HMD5处理。HMD5是算法的核心,其中又有 4轮处理过程,如图6.6所示。
⑤ 输出消息的L个分组都被处理完后,最后一个HMD5的输 出即为产生的消息摘要。
2020/12/4
26
图6.6 MD5的分组处理框图
2020/12/4
第4轮的输出再与第1轮的输入CVq相加,相加时 将CVq看作4个32比特的字,每个字与第4轮输出 的对应的字按模232相加,相加的结果即为压缩函 数HMD5的输出。(见175页表6.1)
2020/12/4
28
步骤③到步骤⑤的处理过程可总结如下:
CV0=IV;
CVq+1=CVq+RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]]
k>n,(2k-n个)可产生相同的MAC,敌手无法确定,还需 要在这2k-n个密钥中继续试验。 对消息认证码的穷举攻击代价大于攻击加密算法。 敌手有可能不直接攻击密钥,而伪造能够通过检验的 MAC和M。
2020/12/4
7
产生MAC函数应满足的要求
假定敌手知道函数C,不知道K
如果敌手得到M和CK(M),则构造一满足 CK(M’)= CK(M)的新消息在计算上不可行
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单击此处编辑母版标题样式
Golomb对伪随机周期序列提出了应满足的如下 个 对伪随机周期序列提出了应满足的如下3个 对伪随机周期序列提出了应满足的如下 随机性公设: 随机性公设: • 在序列的一个周期内,0与1的个数相差至多为 。 在序列的一个周期内, 与 的个数相差至多为 的个数相差至多为1。 ①单击此处编辑母版副标题样式 在序列的一个周期内,长为i的游程占游程总数的 ② 在序列的一个周期内,长为 的游程占游程总数的 1/2i (i=1,2,…),且在等长的游程中 的游程个数和 ,且在等长的游程中0的游程个数和 1的游程个数相等。 的游程个数相等。 的游程个数相等 异相自相关函数是一个常数。 ③ 异相自相关函数是一个常数。 大周期 易于计算 不可预测 2.5 m序列密码的破译 序列密码的破译
1.1 信息的安全威胁
因特网的开放性和共享性, 因特网的开放性和共享性,给人们提供了方便 也带来了危险。 也带来了危险。
图1.1 攻击类型分类
单击此处编辑母版标题样式
• 单击此处编辑母版副标题样式
图1.2 恶意程序分类
安全业务
安全业务指安全防护措施,有以下5种 安全业务指安全防护措施,有以下 种。 1. 保密业务 2. 认证业务 3. 完整性业务 4. 不可否认业务 5. 访问控制
3.4 分组密码的运行模式 单击此处编辑母版标题样式
• 电子码本(ECB) 电子码本( • 单击此处编辑母版副标题样式 密码分组链接( 密码分组链接(CBC) • • 密码反馈(CFB) 密码反馈( • 输出反馈(OFB) 输出反馈(
3.6 AES算法 算法——Rijndael 算法 单击此处编辑母版标题样式
已知明文攻击
选择明文攻击
选择密文攻击
对敌手攻击能力的假设
单击此处编辑母版标题样式
Kerckhoff 假设 假设敌手知道除使用的具体密钥 假设----假设敌手知道除使用的具体 假设敌手知道除使用的具体密钥 之外的一切信息,目的是恢复明文 目的是恢复明文! 之外的一切信息 目的是恢复明文 • 单击此处编辑母版副标题样式 即一切秘密蕴于密钥之中! 即一切秘密蕴于密钥之中 假设敌手知道: 假设敌手知道 (1) 所使用的密码体制 ; (2) 知道明文的概率分布规律 ; (3) 知道密钥的概率分布规律 ; (4) 知道所有的破译方法 !
第4章 公钥密码 章
4.1 密码学中一些常用的数学知识 4.2 公钥密码体制的基本概念 4.3 RSA算法 算法 4.4 背包密码体制 4.5 Rabin密码体制 密码体制 4.6 NTRU 公钥密码系统 4.7 椭圆曲线密码体制
4.1 密码学中一些常用的数学知识
单击此处编辑母版标题样式
• 素数和互素数 模运算
图2.7 常见的两种密钥流产生器
单击此处编辑母版标题样式
• 2.3 线性移位寄存器的一元多项式表示 LFSR的输出序列 m序列。 序列。 的输出序列 序列 单击此处编辑母版副标题样式 •• 序列有最大周期 特征多项式是本原多项式
2.2 线性反馈移位寄存器 线性反馈移位寄存器LFSR
2.4 m序列的伪随机性 序列的伪随机性
•三重 三重DES 三重
3.3 差分密码分析与线性密码分析 单击此处编辑母版标题样式
• 差分密码分析基本思想是:通过分析明文对的差 差分密码分析基本思想是 基本思想是: • 单击此处编辑母版副标题样式 值对密文对的差值的影响来恢复某些密钥比特。 值对密文对的差值的影响来恢复某些密钥比特。 • • 线性密码分析是对迭代密码的一种已知明文攻击, 线性密码分析是对迭代密码的一种已知明文攻击, 是对迭代密码的一种已知明文攻击 它利用的是密码算法中的“不平衡(有效) 它利用的是密码算法中的“不平衡(有效)的线 性逼近” 性逼近”。
3.1.2 扩散和混淆
Feistel加密结构 加密结构 单击此处编辑母版标题样式
Li = Ri −1 • 单击此处编辑母版副标题样式
Ri = Li −1 ⊕ F ( Ri −1 , K i )
• DES IDEA CAST
图3.3 Feistel网络示意图 网络示意图
3.2 数据加密标准
(data encryption standard, DES) ) 分组长度为64 分组长度为 bits (8 bytes) •密文分组长度也是 bits。 密文分组长度也是64 密文分组长度也是 。 •密钥长度为 密钥长度为64 bits,有8 bits奇偶校验,有效密钥 奇偶校验, 密钥长度为 , 奇偶校验 长度为56 长度为 bits。 。 •16轮 轮
• 设计的算法应满足下述要求: 设计的算法应满足下述要求: • 分组长度 要足够大,使分组代换字母表中的元素 分组长度n要足够大 要足够大, • 单击此处编辑母版副标题样式 个数2 足够大,防止明文穷举攻击法奏效。 明文穷举攻击法奏效 个数 n足够大,防止明文穷举攻击法奏效。 • 密钥量要足够大(即置换子集中的元素足够多), 密钥量要足够大(即置换子集中的元素足够多), 尽可能消除弱密钥并使所有密钥同等地好, 尽可能消除弱密钥并使所有密钥同等地好,以防 密钥穷举攻击奏效 奏效。 止密钥穷举攻击奏效。 • 由密钥确定置换的算法要足够复杂: 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆, 充分实现明文与密钥的扩散和混淆,没有简单的 关系可循,要能抗击各种已知的攻击。 关系可循,要能抗击各种已知的攻击。
• 2.1 流密码的基本概念 单击此处编辑母版标题样式 • 流密码 关键密钥流产生器 • •同步流密码 单击此处编辑母版副标题样式 • 自同步流密码 • 有限状态自动机 • 密钥流序列具有如下性质: 密钥流序列具有如下性质: 极大的周期、良好的统计特性、抗线性分析、 极大的周期、良好的统计特性、抗线性分析、抗 统计分析。 统计分析。 • 密钥流产生器:驱动部分和非线性组合部分 密钥流产生器:
1.4 几种古典密码
单击此处编辑母版标题样式
• 1 仿射变换
c = Ea ,b ( m ) = am + b(mod 26)
m = Da ,b (c ) = a −1 (c − b )(mod 26)
• 单击此处编辑母版副标题样式
2移位密码
单击此处编辑母版标题样式 第2章 流密码 章
2.1 流密码的基本概念 • 单击此处编辑母版副标题样式 2.2 线性反馈移位寄存器 2.3 线性移位寄存器的一元多项式表示 2.4 m序列的伪随机性 序列的伪随机性 2.5 m序列密码的破译 序列密码的破译 2.6 非线性序列
•单击此处编辑母版标题样式 7mod26 • 26=3×7+5 5=1 ×26-3×7 × - × • 7=1×5+2 2=1×7-1×5 × × - × • 单击此处编辑母版副标题样式 • 2=4×7 - 1×26 × × • 5=2×2+1 1=1×5 - 2×2 × × × • 1= 1×26-3×7-8×7+2×26 × - × × × • =3×26 - 11×7 × × • 7的乘法逆元:26 - 11=15 的乘法逆元: 的乘法逆元
2.6 非线性序列
密钥流生成器可分解为驱动子系统和非线性组 合子系统。 合子系统。 驱动子系统常用一个或多个线性反馈移位寄存 器来实现, 器来实现, 非线性组合子系统用非线性组合函数F来实现 来实现。 非线性组合子系统用非线性组合函数 来实现。
第3章 分组密码体制 章
3.1 分组密码概述 3.2 数据加密标准 3.3 差分密码分析与线性密码分析 3.4 分组密码的运行模式 3.5 IDEA 3.6 AES算法 算法——Rijndael 算法 习题
现代密码学
总 目 录
第1章 章 第2章 章 第3章 章 第4章 章 第5章 章 第6章 章 第7章 章 第8章 章 引言 流密码 分组密码体制 公钥密码 密钥分配与密钥管理 消息认证和杂凑算法 数字签字和密码协议 网络加密与认证
第1章 引言 章
1.1 信息安全面临的威胁 1.2 信息安全的模型 1.3 密码学基本概念
•单击此处编辑母版标题样式 加密和解密运算简单:
易于软件和硬件高速实现。 易于软件和硬件高速实现。
• 数据扩展: 数据扩展: • 单击此处编辑母版副标题样式 一般无数据扩展。 一般无数据扩展。 • 差错传播尽可能地小。
单击此处编辑母版标题样式
• 扩散和混淆是由 扩散和混淆是由Shannon提出的设计密码系统的两 提出的设计密码系统的两 个基本方法, 个基本方法,目的是抗击敌手对密码系统的统计分 析。 • 单击此处编辑母版副标题样式 • 所谓扩散,就是将明文的统计特性散布到密文中去 所谓扩散,就是将明文的统计特性散布到密文中去 扩散 明文的统计特性散布到密文 • 混淆是使密文和密钥之间的统计关系变得尽可能复 混淆是使密文和密钥之间的统计关系变得尽可能复 是使密文 以使敌手无法得到密钥。 杂,以使敌手无法得到密钥。
密码可能经受的攻击 单击此处编辑母版标题样式
攻击类型
惟密文攻击
攻击者拥有的资源
•
•加密算法 加密算法 单击此处编辑母版副标题样式 •截获的部分密文 截获的部分密文 •加密算法, 加密算法, 加密算法 •截获的部分密文和相应的明文 截获的部分密文和相应的明文 •加密算法 加密算法 •加密黑盒子,可加密任意明文得到相应的密文 加密黑盒子, 加密黑盒子 •加密算法 加密算法 •解密黑盒子,可解密任意密文得到相应的明文 解密黑盒子, 解密黑盒子
• Rijndael是一个迭代型分组密码,其分组长度和密钥长度 是一个迭代型分组密码, 是一个迭代型分组密码 都可变,各自可以独立地指定为128比特、192比特、256 比特、 比特 比特、 都可变,各自可以独立地指定为 比特 比特。 比特。 • 单击此处编辑母版副标题样式 Round (State, RoundKey) { ByteSub (State); ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey) }
Golomb对伪随机周期序列提出了应满足的如下 个 对伪随机周期序列提出了应满足的如下3个 对伪随机周期序列提出了应满足的如下 随机性公设: 随机性公设: • 在序列的一个周期内,0与1的个数相差至多为 。 在序列的一个周期内, 与 的个数相差至多为 的个数相差至多为1。 ①单击此处编辑母版副标题样式 在序列的一个周期内,长为i的游程占游程总数的 ② 在序列的一个周期内,长为 的游程占游程总数的 1/2i (i=1,2,…),且在等长的游程中 的游程个数和 ,且在等长的游程中0的游程个数和 1的游程个数相等。 的游程个数相等。 的游程个数相等 异相自相关函数是一个常数。 ③ 异相自相关函数是一个常数。 大周期 易于计算 不可预测 2.5 m序列密码的破译 序列密码的破译
1.1 信息的安全威胁
因特网的开放性和共享性, 因特网的开放性和共享性,给人们提供了方便 也带来了危险。 也带来了危险。
图1.1 攻击类型分类
单击此处编辑母版标题样式
• 单击此处编辑母版副标题样式
图1.2 恶意程序分类
安全业务
安全业务指安全防护措施,有以下5种 安全业务指安全防护措施,有以下 种。 1. 保密业务 2. 认证业务 3. 完整性业务 4. 不可否认业务 5. 访问控制
3.4 分组密码的运行模式 单击此处编辑母版标题样式
• 电子码本(ECB) 电子码本( • 单击此处编辑母版副标题样式 密码分组链接( 密码分组链接(CBC) • • 密码反馈(CFB) 密码反馈( • 输出反馈(OFB) 输出反馈(
3.6 AES算法 算法——Rijndael 算法 单击此处编辑母版标题样式
已知明文攻击
选择明文攻击
选择密文攻击
对敌手攻击能力的假设
单击此处编辑母版标题样式
Kerckhoff 假设 假设敌手知道除使用的具体密钥 假设----假设敌手知道除使用的具体 假设敌手知道除使用的具体密钥 之外的一切信息,目的是恢复明文 目的是恢复明文! 之外的一切信息 目的是恢复明文 • 单击此处编辑母版副标题样式 即一切秘密蕴于密钥之中! 即一切秘密蕴于密钥之中 假设敌手知道: 假设敌手知道 (1) 所使用的密码体制 ; (2) 知道明文的概率分布规律 ; (3) 知道密钥的概率分布规律 ; (4) 知道所有的破译方法 !
第4章 公钥密码 章
4.1 密码学中一些常用的数学知识 4.2 公钥密码体制的基本概念 4.3 RSA算法 算法 4.4 背包密码体制 4.5 Rabin密码体制 密码体制 4.6 NTRU 公钥密码系统 4.7 椭圆曲线密码体制
4.1 密码学中一些常用的数学知识
单击此处编辑母版标题样式
• 素数和互素数 模运算
图2.7 常见的两种密钥流产生器
单击此处编辑母版标题样式
• 2.3 线性移位寄存器的一元多项式表示 LFSR的输出序列 m序列。 序列。 的输出序列 序列 单击此处编辑母版副标题样式 •• 序列有最大周期 特征多项式是本原多项式
2.2 线性反馈移位寄存器 线性反馈移位寄存器LFSR
2.4 m序列的伪随机性 序列的伪随机性
•三重 三重DES 三重
3.3 差分密码分析与线性密码分析 单击此处编辑母版标题样式
• 差分密码分析基本思想是:通过分析明文对的差 差分密码分析基本思想是 基本思想是: • 单击此处编辑母版副标题样式 值对密文对的差值的影响来恢复某些密钥比特。 值对密文对的差值的影响来恢复某些密钥比特。 • • 线性密码分析是对迭代密码的一种已知明文攻击, 线性密码分析是对迭代密码的一种已知明文攻击, 是对迭代密码的一种已知明文攻击 它利用的是密码算法中的“不平衡(有效) 它利用的是密码算法中的“不平衡(有效)的线 性逼近” 性逼近”。
3.1.2 扩散和混淆
Feistel加密结构 加密结构 单击此处编辑母版标题样式
Li = Ri −1 • 单击此处编辑母版副标题样式
Ri = Li −1 ⊕ F ( Ri −1 , K i )
• DES IDEA CAST
图3.3 Feistel网络示意图 网络示意图
3.2 数据加密标准
(data encryption standard, DES) ) 分组长度为64 分组长度为 bits (8 bytes) •密文分组长度也是 bits。 密文分组长度也是64 密文分组长度也是 。 •密钥长度为 密钥长度为64 bits,有8 bits奇偶校验,有效密钥 奇偶校验, 密钥长度为 , 奇偶校验 长度为56 长度为 bits。 。 •16轮 轮
• 设计的算法应满足下述要求: 设计的算法应满足下述要求: • 分组长度 要足够大,使分组代换字母表中的元素 分组长度n要足够大 要足够大, • 单击此处编辑母版副标题样式 个数2 足够大,防止明文穷举攻击法奏效。 明文穷举攻击法奏效 个数 n足够大,防止明文穷举攻击法奏效。 • 密钥量要足够大(即置换子集中的元素足够多), 密钥量要足够大(即置换子集中的元素足够多), 尽可能消除弱密钥并使所有密钥同等地好, 尽可能消除弱密钥并使所有密钥同等地好,以防 密钥穷举攻击奏效 奏效。 止密钥穷举攻击奏效。 • 由密钥确定置换的算法要足够复杂: 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆, 充分实现明文与密钥的扩散和混淆,没有简单的 关系可循,要能抗击各种已知的攻击。 关系可循,要能抗击各种已知的攻击。
• 2.1 流密码的基本概念 单击此处编辑母版标题样式 • 流密码 关键密钥流产生器 • •同步流密码 单击此处编辑母版副标题样式 • 自同步流密码 • 有限状态自动机 • 密钥流序列具有如下性质: 密钥流序列具有如下性质: 极大的周期、良好的统计特性、抗线性分析、 极大的周期、良好的统计特性、抗线性分析、抗 统计分析。 统计分析。 • 密钥流产生器:驱动部分和非线性组合部分 密钥流产生器:
1.4 几种古典密码
单击此处编辑母版标题样式
• 1 仿射变换
c = Ea ,b ( m ) = am + b(mod 26)
m = Da ,b (c ) = a −1 (c − b )(mod 26)
• 单击此处编辑母版副标题样式
2移位密码
单击此处编辑母版标题样式 第2章 流密码 章
2.1 流密码的基本概念 • 单击此处编辑母版副标题样式 2.2 线性反馈移位寄存器 2.3 线性移位寄存器的一元多项式表示 2.4 m序列的伪随机性 序列的伪随机性 2.5 m序列密码的破译 序列密码的破译 2.6 非线性序列
•单击此处编辑母版标题样式 7mod26 • 26=3×7+5 5=1 ×26-3×7 × - × • 7=1×5+2 2=1×7-1×5 × × - × • 单击此处编辑母版副标题样式 • 2=4×7 - 1×26 × × • 5=2×2+1 1=1×5 - 2×2 × × × • 1= 1×26-3×7-8×7+2×26 × - × × × • =3×26 - 11×7 × × • 7的乘法逆元:26 - 11=15 的乘法逆元: 的乘法逆元
2.6 非线性序列
密钥流生成器可分解为驱动子系统和非线性组 合子系统。 合子系统。 驱动子系统常用一个或多个线性反馈移位寄存 器来实现, 器来实现, 非线性组合子系统用非线性组合函数F来实现 来实现。 非线性组合子系统用非线性组合函数 来实现。
第3章 分组密码体制 章
3.1 分组密码概述 3.2 数据加密标准 3.3 差分密码分析与线性密码分析 3.4 分组密码的运行模式 3.5 IDEA 3.6 AES算法 算法——Rijndael 算法 习题
现代密码学
总 目 录
第1章 章 第2章 章 第3章 章 第4章 章 第5章 章 第6章 章 第7章 章 第8章 章 引言 流密码 分组密码体制 公钥密码 密钥分配与密钥管理 消息认证和杂凑算法 数字签字和密码协议 网络加密与认证
第1章 引言 章
1.1 信息安全面临的威胁 1.2 信息安全的模型 1.3 密码学基本概念
•单击此处编辑母版标题样式 加密和解密运算简单:
易于软件和硬件高速实现。 易于软件和硬件高速实现。
• 数据扩展: 数据扩展: • 单击此处编辑母版副标题样式 一般无数据扩展。 一般无数据扩展。 • 差错传播尽可能地小。
单击此处编辑母版标题样式
• 扩散和混淆是由 扩散和混淆是由Shannon提出的设计密码系统的两 提出的设计密码系统的两 个基本方法, 个基本方法,目的是抗击敌手对密码系统的统计分 析。 • 单击此处编辑母版副标题样式 • 所谓扩散,就是将明文的统计特性散布到密文中去 所谓扩散,就是将明文的统计特性散布到密文中去 扩散 明文的统计特性散布到密文 • 混淆是使密文和密钥之间的统计关系变得尽可能复 混淆是使密文和密钥之间的统计关系变得尽可能复 是使密文 以使敌手无法得到密钥。 杂,以使敌手无法得到密钥。
密码可能经受的攻击 单击此处编辑母版标题样式
攻击类型
惟密文攻击
攻击者拥有的资源
•
•加密算法 加密算法 单击此处编辑母版副标题样式 •截获的部分密文 截获的部分密文 •加密算法, 加密算法, 加密算法 •截获的部分密文和相应的明文 截获的部分密文和相应的明文 •加密算法 加密算法 •加密黑盒子,可加密任意明文得到相应的密文 加密黑盒子, 加密黑盒子 •加密算法 加密算法 •解密黑盒子,可解密任意密文得到相应的明文 解密黑盒子, 解密黑盒子
• Rijndael是一个迭代型分组密码,其分组长度和密钥长度 是一个迭代型分组密码, 是一个迭代型分组密码 都可变,各自可以独立地指定为128比特、192比特、256 比特、 比特 比特、 都可变,各自可以独立地指定为 比特 比特。 比特。 • 单击此处编辑母版副标题样式 Round (State, RoundKey) { ByteSub (State); ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey) }