第三章对称密码体制
对称密码体制和非对称密码体制

对称密码体制和⾮对称密码体制⼀、对称加密 (Symmetric Key Encryption)对称加密是最快速、最简单的⼀种加密⽅式,加密(encryption)与解密(decryption)⽤的是同样的密钥(secret key)。
对称加密有很多种算法,由于它效率很⾼,所以被⼴泛使⽤在很多加密协议的核⼼当中。
⾃1977年美国颁布DES(Data Encryption Standard)密码算法作为美国数据加密标准以来,对称密码体制迅速发展,得到了世界各国的关注和普遍应⽤。
对称密码体制从⼯作⽅式上可以分为分组加密和序列密码两⼤类。
对称加密算法的优点:算法公开、计算量⼩、加密速度快、加密效率⾼。
对称加密算法的缺点:交易双⽅都使⽤同样钥匙,安全性得不到保证。
此外,每对⽤户每次使⽤对称加密算法时,都需要使⽤其他⼈不知道的惟⼀钥匙,这会使得发收信双⽅所拥有的钥匙数量呈⼏何级数增长,密钥管理成为⽤户的负担。
对称加密算法在分布式⽹络系统上使⽤较为困难,主要是因为密钥管理困难,使⽤成本较⾼。
⽽与公开密钥加密算法⽐起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使⽤范围有所缩⼩。
对称加密通常使⽤的是相对较⼩的密钥,⼀般⼩于256 bit。
因为密钥越⼤,加密越强,但加密与解密的过程越慢。
如果你只⽤1 bit来做这个密钥,那⿊客们可以先试着⽤0来解密,不⾏的话就再⽤1解;但如果你的密钥有1 MB⼤,⿊客们可能永远也⽆法破解,但加密和解密的过程要花费很长的时间。
密钥的⼤⼩既要照顾到安全性,也要照顾到效率,是⼀个trade-off。
分组密码:也叫块加密(block cyphers),⼀次加密明⽂中的⼀个块。
是将明⽂按⼀定的位长分组,明⽂组经过加密运算得到密⽂组,密⽂组经过解密运算(加密运算的逆运算),还原成明⽂组,有 ECB、CBC、CFB、OFB 四种⼯作模式。
序列密码:也叫流加密(stream cyphers),⼀次加密明⽂中的⼀个位。
对称密码体制

实例二:对压缩文档解密
• 任务描述:
李琳同学在电脑里备份了一份文档,当时 出于安全考虑,所以加了密码,时间久了,密 码不记得了。请帮李琳同学找回密码。
实例二:对压缩文档解密
• 任务分析:
WinRAR对文档的加密方式属于对称性加 密,即加密和解密的密码相同,这种文档的解 密相对来说比较简单,网上有很多专用工具, 可以实现密码的硬解。
推荐:RAR Password Unlocker
实例二:对压缩文档解密
• 操作步骤:
– (1)启动软件; – (2)打开加密的文件; – (3)单击“STRAT”按钮,开始解密; – (4)弹出结果对话框,找到密码。
实例三:Office文档加密
• 操作步骤:
– (1)启动word;
– (2)文件——另存为;
走进加密技术
对称密码体制
知识回顾
• 密码技术的发展经历了三个阶段
• 1949年之前 密码学是一门艺术 (古典密码学) • 1949~1975年 密码学成为科学 • 1976年以后 密码学的新方向
传 统 加 密 方 法
(现代密码学)
——公钥密码学
密码体制
• 密码体制也叫密码系统,是指能完整地解
决信息安全中的机密性、数据完整性、认
小结
对称密码体制 对称密码体制也称为单钥体制、私钥体制或对 称密码密钥体制、传统密码体制或常规密钥密码体 制。 主要特点是:加解密双方在加解密过程中使用 相同或可以推出本质上等同的密钥,即加密密钥与 解密密钥相同,基本原理如图所示。
– (3)文件类型为:2003-07文档; – (4)单击“工具”选择“常规选项”; – (5)设置文档打开密码,存盘。
实例四:Office文档解密
03、对称密码体制

数据加密标准(Data Encryption Standard,DES)是至 今为止使用 最为广泛的加密算法。
1974年8月27日, NBS开始第二次征集,IBM提交了算法LUCIFER ,该算法由IBM的工程师在1971~1972年研制。
1975年3月17日, NBS公开了全部细节1976年,NBS指派了两个
序列密码算法(stream cipher)
每次可加密一个比特戒一个字节 适合比如进程终端输入加密类的应用
对称密码体制
4
3.1 分组密码原理
分组密码
分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划
分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制 下发换成等长的输出数字(简称密文数字)序列。
构,如FEAL、Blowfish、RC5等。
对称密码体制
9
3.1.2 分组密码的一般结构
Feistel密码结构的设计动机
分组密码对n比特的明文分组迚行操作,产生出一个n比特的密文分
组,共有2n个丌同的明文分组,每一种都必须产生一个唯一的密文 分组,这种发换称为可逆的戒非奇异的。 可逆映射 00 01 10 11 11 10 00 01 丌可逆映射 00 01 10 11 11 10 01 01
对称密码体制Biblioteka 193.2.1 简化的DES
简化的DES
简化的DES(Simplified - DES)是一个供教学而非安全的加密算法, 它不DES的特性和结构类似,但是参数较少。 S - DES的加密算法以8bit的明文分组和10位的密钥作为输入,产生 8bit的明文分组做为输出。 加密算法涉及五个凼数:
对称密码体制

分组密码的工作模式
电码本模式(1/2) ECB (electronic codebook mode)
P1 K 加密
P2
K
加密
…K
Pn 加密
C1
C2
Cn
C1 K 解密
C2
K
解密
…K
Cn 解密
P1
P2
Pn
Ci = EK(Pi) Pi = DK(Ci)
对称密码体制
分组密码的工作模式
电码本模式(2/2) ECB特点
对称密码体制
分组密码的工作模式
密码反馈模式(2/6)
加密:Ci =Pi(EK(Si)的高j位) Si+1=(Si<<j)|Ci
V1
Shift register 64-j bit |j bit
64
Shift register 64-j bit |j bit
64
Cn-1 Shift register 64-j bit |j bit
对称密码体制
分组密码的工作模式
密码反馈模式(6/6) Pi=Ci(EK(Si)的高j位) 因为: Ci=Pi(EK(Si)的高j位)
则: Pi=Pi(EK(Si)的高j位) (EK(Si)的高j位) =Pi 0 = Pi
CFB的特点 ❖分组密码流密码 ❖没有已知的并行实现算法 ❖隐藏了明文模式 ❖需要共同的移位寄存器初始值V1 ❖对于不同的消息,V1必须唯一 ❖误差传递:一个单元损坏影响多个单元
对称密码体制
分组密码的工作模式
密码分组链接模式(3/3)
CBC特点 ❖没有已知的并行实现算法 ❖能隐藏明文的模式信息 ❖需要共同的初始化向量V1 ❖相同明文不同密文 ❖初始化向量V1可以用来改变第一块 ❖对明文的主动攻击是不容易的 ❖信息块不容易被替换、重排、删除、重放 ❖误差传递:密文块损坏两明文块损坏 ❖安全性好于ECB ❖适合于传输长度大于64位的报文,还可以进行用 户鉴别,是大多系统的标准如 SSL、IPSec
对称密钥密码体制

第三,流密码能较好地隐藏明文的统计特征等。
流密码的原理
❖ 在流密码中,明文按一定长度分组后被表示成一个序列,并 称为明文流,序列中的一项称为一个明文字。加密时,先由 主密钥产生一个密钥流序列,该序列的每一项和明文字具有 相同的比特长度,称为一个密钥字。然后依次把明文流和密 钥流中的对应项输入加密函数,产生相应的密文字,由密文 字构成密文流输出。即 设明文流为:M=m1 m2…mi… 密钥流为:K=k1 k2…ki… 则加密为:C=c1 c2…ci…=Ek1(m1)Ek2(m2)…Eki(mi)… 解密为:M=m1 m2…mi…=Dk1(c1)Dk2(c2)…Dki(ci)…
同步流密码中,消息的发送者和接收者必须同步才能做到正确 地加密解密,即双方使用相同的密钥,并用其对同一位置进行 操作。一旦由于密文字符在传输过程中被插入或删除而破坏了 这种同步性,那么解密工作将失败。否则,需要在密码系统中 采用能够建立密钥流同步的辅助性方法。
分解后的同步流密码
பைடு நூலகம்
密钥流生成器
❖ 密钥流生成器设计中,在考虑安全性要求的前提下还应考虑 以下两个因素: 密钥k易于分配、保管、更换简单; 易于实现,快速。
密钥发生器 种子 k
明文流 m i
明文流m i 加密算法E
密钥流 k i 密钥流 发生器
密文流 c i
安全通道 密钥 k
解密算法D
密钥流 发生器
明文流m i
密钥流 k i
图1 同步流密码模型
内部状态 输出函数
内部状态 输出函数
密钥发生器 种子 k
k
密码体制的分类方法

密码体制是指用于保护信息安全的加密和解密方法。
根据不同的分类标准,可以将密码体制分为以下几类:
对称密码体制(Symmetric Cryptography):也称为私钥密码体制,加密和解密使用相同的密钥。
常见的对称密码算法有DES、AES和IDEA等。
对称密码体制具有加密速度快的优点,但需要确保密钥的安全性。
公钥密码体制(Public Key Cryptography):也称为非对称密码体制,加密和解密使用不同的密钥,其中一个密钥是公开的,称为公钥,另一个密钥是私有的,称为私钥。
常见的公钥密码算法有RSA、Diffie-Hellman和椭圆曲线密码等。
公钥密码体制具有密钥分发方便的优点,但加密和解密速度较慢。
哈希函数(Hash Function):哈希函数是一种将任意长度的输入数据转换为固定长度的输出数据的算法。
常见的哈希函数有MD5、SHA-1和SHA-256等。
哈希函数主要用于数据完整性校验和数字签名等应用。
数字签名(Digital Signature):数字签名是一种用于验证数据的真实性、完整性和来源的密码技术。
它使用私钥对数据进行加密,生成数字签名,然后使用公钥对数字签名进行解密和验证。
随机数生成(Random Number Generation):随机数生成是密码体制中重要的组成部分,用于生成安全的密钥和初始化向量。
随机数生成器应具有高度随机性和不可预测性。
这些分类方法是根据密码体制的核心原理和使用方式进行的。
不同类型的密码体制在不同的应用场景中具有各自的优势和适用性。
在实际应用中,常常根据具体需求选择合适的密码体制进行数据保护和安全通信。
第3章 密码技术概述

目录
3.1 密码术及发展 3.2 数据保密通信模型 3.3 对称密码体制 3.4 公钥密码体制 3.5 数字签名 3.6 消息完整性保护 3.7 认证 3.8 计算复杂理论 3.9 密码分析
3.2 数据保密通信模型
如何在开放网络中保密传输数据?
目录
3.1 密码术及发展 公钥密码体制 3.5 数字签名 3.6 消息完整性保护 3.7 认证 3.8 计算复杂理论 3.9 密码分析
3.3 对称密码体制
如何使用相同的密钥加/解密数据?
Symmetric Cryptography
?
3.3 对称密码体制
古典密码原理简单,容易遭受统计分析攻击。
3.1 密码术及发展
现代密码
1863年普鲁士人卡西斯基著《密码和破译技术》, 1883年法国人克尔克霍夫所著《军事密码学》; 20世纪初,产生了最初的可以实用的机械式和电动式密 码机,同时出现了商业密码机公司和市场; 第二次世界大战德国的Enigma转轮密码机,堪称机械式 古典密码的巅峰之作。 1949年美国人香农(C.Shannon)发表论文《保密系统的 通信理论》标志现代密码学的诞生。
3.1 密码术及发展
古典密码
北宋曾公亮、丁度等编撰《武经总要》“字验”; 公元前405年,斯巴达将领来山得使用了原始的错乱密码; 公元前一世纪,古罗马皇帝凯撒曾使用有序单表代替密码;
古典密码使用的基本方法
置换加密法:将字母的顺序重新排列。 替换加密法:将一组字母用其它字母或符号代替。
3.2 数据保密通信模型
密码技术、密码体制与密码算法
密码技术是利用密码体制实现信息安全保护的技术; 密码体制是使用特定密码算法实现信息安全保护的具
网络信息安全第三章-1

n 1
r 0
n 1
gcd( a , b ) r n
例:利用Euclid 算法求gcd(1694,917)
1694 917 1 777
917 777 1 140
777 140 5 77
140 77 1 63
77 631 14 63 14 4 7
公钥密码体制的基本原理
对称密码体制的缺点
• 密钥必须秘密地分配 • 如果密钥被损害了,攻击者就能解密所有消息,并可以假
装是其中一方。
• 密钥分配和管理
传统密钥管理两两分别用一对密钥时,则当用户量增大时密钥空
间急剧增大如: n=100 时C(100,2)=4,995 n=5000时C(5000,2)=12,497,500
• 计算Ø (n)=(p-1)(q-1)
• 选择e , 使它成为是Ø (n)的一个互质数
• 确定d , 使得d*e=1mod Ø (n),并且d< Ø (n)
d为私钥,e为公钥,p、q不再需要,丢弃。
RSA算法描述
2.加密
(1) 把m分成等长数据块m1、m2、…、mi 2s≤n,s要尽可能的大。 (2) 对应的密文是
困难的。
欧几里(Euclid )算法
gcd(a, b) ?
a bq r
1 1 2 1
用于求两个数 的最大公约数
1
0r b 0r r
2 3 1
b rq r
1 2 3
2
r rq r
3
0r r
2
r r q r
n2 n 1 n
n
0r r
n
n 1
r rq r
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两个基本设计方法
Shannon称之为理想密码系统,密文的所有统计特性 都与所使用的密钥独立。 • 扩散(Diffusion):明文的统计结构被扩散消失到 密文的统计特性中,使得明文和密文之间的统计关系 尽量复杂。使得明文的每个比特影响到密文许多比特 的取值,即每个密文比特被许多明文比特影响。 • 混乱(confusion):使得密文的统计特性与密钥的 取值之间的关系尽量复杂。 •扩散和混淆的目的都是为了挫败推出密钥的尝试, 从而抗统计分析。
= Ri⊕F(Li,Ki)
7
2. SP网络结构是分组密码的另一种重要结构, AES等重要算法采用的是此结构。
8
DES(Data Encryption Standard )是迄今为止使用最为广泛的加 密算法。 DES的产生-i • 1973年5月13日, NBS(美国国家标准局)开始公开征集标准加密算 法,并公布了它的设计要求: (1)算法必须提供高度的安全性; (2)算法必须有详细的说明,并易于理解; (3)算法的安全性取决于密钥,不依赖于算法;
• 1976年,NBS指派了两个小组进行评价
• 1976年11月23日,采纳为联邦标准,批准用于非军 事场合的各种政府机构 • 1977年1月15日,被正式批准为美国联邦信息处理标 准,即FIPS PUB 46,同年7月15日开始生效。
10
DES的应用
• 1979年,美国银行协会批准使用 • 1980年,美国国家标准局赞同DES作为私人使用的标 准,称之为DEA(ANSI X.392) • 1983年,国际化标准组织ISO赞同DES作为国际标准, 称之为DEA-1 • 该标准规定每五年审查一次,计划十年后采用新标准
AES背景-ii
• 1998年8月12日,在首届AES会议上指定了15 个候选算法。
• 1999年3月22日第二次AES会议上,将候选名 单减少为5 个, 这5 个算法是RC6 , Rijndael , SERPENT,Twofish和MARS。 • 2000年4月13日,第三次AES会议上,对这5 个候选算法的各种分析结果进行了讨论。 • 2000年10月2日,NIST宣布了获胜者— Rijndael算法, 2001 年11 月出版了最终标准 33 FIPSPUB197。
x1 xm
分组密码
k
无记忆元件
y1
x1
k
…
内部记忆元件
y1
ym
流密码
2
分组密码对不同的组采用同样的密钥k进 行加/解密。设密文组为y=y1y2•••ym,则对明 文组x=x1x2 ••• xm用密钥k加密可得到 y=ek(x1)ek(x2) ••• ek(xm)。
流密码的基本思想是利用密钥k产生一个 密钥流z=z0z1 •••,并使用如下规则加密明文 串x=x0 x1 x2 ••• ,y=y0y1y2•••= ez0(x0)ez1(x1) ez2(x2)••• 。密钥流由密钥流发生器f产生。 分组密码与流密码的区别就在于记忆性。
12
13
1.初始置换IP和初始逆置换IP—1
14
2. 迭代变换
15
迭代变换是DES算法的核心部分,每 轮开始时将输入的64bit数据分成左、右 长度相等的两部分,右半部分原封不动地 作为本轮输出的64bit数据的左半部分, 同时对右半部分进行一系列的变换,即用 轮函数F作用右半部分,然后将所得结果 与输入数据的左半部分进行逐位异或,最 后将所得数据作为本轮输出的64bit数据 的右半部分。 轮函数F由选择扩展运算E、与子密钥 的异或运算、选择压缩运算S和置换P组成。
3
3.1.1
分组密码设计原理
分组密码是将明文消息编码表示后的数字(简 称明文数字)序列x0,x1,… ,划分成长度为n的组 x=(x0,x1,…,xn-1),每组分别在密钥 k=(k0,k1,…,km-1) 的控制下变换成等长的输出数字(简称密文数字) 序列y=(y0,y1,…,yn-1) 。
4
分组密码的算法应满足如下安全性和软/硬件实现的 要求: (1)分组长度足够大,防止明文被穷举攻击。如 n=64bit (DES) ,新的标准n=128bit (AES) (2)密钥空间足够大,从而防止穷举密钥攻击。同时, 密钥又不能太长,以利于密钥管理,DES采用56bit 有效密钥,现在不够长,今后采用128bit是足够安 全的。 (3)由密钥确定的算法要足够复杂,充分实现明文与 密文的扩散和混淆,没有简单的关系可循。 (4)软件实现的要求:尽量使用适合编程的子块和简 单的运算 (5)硬件实现的要求:加密和解密应具有相似性。
双重DES易 受中途攻击
P=DK1(DK2(C))
30
2.三重DES(以被广泛采用)
优点:能对付中途攻击。密钥长度为168bit
31
3.3 高级加密标准AES
AES背景-i
• 1997年4月15日,(美国)国家标准技术研究所 ( NIST ) 发起征集高级加密标准( Advanced Encryption Standard)AES的活动,活动目的是确定一 个非保密的、可以公开技术细节的、全球免费使用的分 组密码算法,作为新的数据加密标准。 • 1997年9月12日,美国联邦登记处公布了正式征集AES 候选算法的通告。作为进入AES候选过程的一个条件,开 发者承诺放弃被选中算法的知识产权。 对AES的基本要求是:比三重DES快、至少与三重DES一样 安全、数据分组长度为128比特、密钥长度为 32 128/192/256比特。
16
17
(1) 选择扩展运算
将输入的32bit数据扩展为48bit的输出数据,变换表如 下:
可以看出1、4、5、8、9、12、13、16、17、20、21、 18 24、25、28、29、32这16个位置上的数据被读了两次。
(2)与子密钥的异或运算
与子密钥的异或运算:将选择扩展运算的48 bit数据与子密钥Ki(48 bit)进行异或运算。 (后面详述)
23
(4)置换P
24
25
26
3.2.2 DES问题讨论
1.S盒的安全问题
有人认为s盒可能存在陷门,但至今没有迹象表明s盒中 存在陷门。
2.密钥长度
• 关于DES算法的另一个最有争议的问题就是担心实际 56比特的密钥长度不足以抵御穷举式攻击,因为密钥量 只有256≈1017个。 • 早在1977年,Diffie和Hellman已建议制造一个每秒能 测试100万个密钥的VLSI芯片。每秒测试100万个密钥 的机器大约需要一天就可以搜索整个密钥空间。他们估 计制造这样的机器大约需要2000万美元。 27
40
3.4.1 电码本模式(ECB)
电子密码本ECB
Ci = EK (Pi ) Pi = DK (Ci )
41
ECB的特点
ECB用于短数据(如加密密钥)是非常理想,长消息不够安全
简单、有效 可以并行实现 不能隐藏明文的模式信息
第三章
3.1 3.2 3.3
对称密码体制
分组密码原理 数据加密标准(DES) 高级加密标准(AES)
3.4
分组密码的工作模式
1
3.1
分组密码原理
对称密码体制根据对明文加密方式的不同分为 分组密码和流密码。 分组密码:按一定长度(如64bit,128bit)对 明文进行分组,然后以组为单位采用同样的密 钥进行加/解密; 流密码:不进行分组,而是按位进行加/解密
分组密码的工作模式:就是以该分组密码为基础构造 的一个密码系统。
电子密码本 密码分组链接 密码反馈 输出反馈
ECB (electronic codebook mode) CBC (cipher block chaining) CFB (cipher feedback) OFB (output feedback)
• 1998年7月电子前沿基金会(EFF)使用一 台25万美元的电脑在56小时内破译了56比特密 钥的DES。 • 1999年1月RSA数据安全会议期间,电子前 沿基金会用22小时15分钟就宣告破解了一个 DES的密钥。
29
3.2.3 DES的变形 1.两重DES
双重DES 密钥长度 为112bit, 密码强度 似乎增强 了一倍, 但问题并 非如此。 C=EK2(EK1(P))
6
3.1.2
分组密码的一般结构
分组密码的一般结构可以分为两种:Feistel网络 结构和SP网络结构。 1. Feistel网络结构 Feistel网络结构如图所示:DES采用的是Feistel网络 结构
加密: Li = Ri-1; Ri = Li-1⊕F(Ri-1,Ki) •解密: Ri-1 = Li,Li-1 = Ri⊕F(Ri-1,Ki)
Nk=6 Nk=8
12 14
12 14
14 14
35
SP网络结构
在这种密码的每一轮中,轮输入首先被一个由子密钥控 制的可逆函数S作用,然后再对所得结果用置换(或可逆 线性变换)P作用。S和P分别被称为混乱层和扩散层,主 要起混乱和扩散作用。
36
AES算法结构-i
• AES算法的轮变换中没有Feistel结构,轮变换是由三
19
(3)选择压缩运算
将输入的48bit数据从左至右分成8组,每组6bit。然后输入8个S 盒,每个S盒为一非线性代换,有4bit输出,如图所示:
20
21
22
S-Box
• 对每个盒,6比特输入中的第1和第6比特组成
的二进制数确定的行,中间4位二进制数用来 确定的列。相应行、列位置的十进制数的4位 二进制数表示作为输出。例如的输入为101001, 则行数和列数的二进制表示分别是11和0100, 即表中3行和表中4列,表中3行和表中4列的十 进制数为3,用4位二进制数表示为0011,所以 的输出为0011。
3.2