第三章数据加密技术.docx
- 文档编号:23019060
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:23
- 大小:148.99KB
第三章数据加密技术.docx
《第三章数据加密技术.docx》由会员分享,可在线阅读,更多相关《第三章数据加密技术.docx(23页珍藏版)》请在冰豆网上搜索。
第三章数据加密技术
第三章数据加密技术
第三章数据加密技术
学习内容要求
•数据加密技术基本概念
•密码算法概述
•DES算法
•RSA算法
1数据加密技术基本概念
1.1密码学
密码学的主要作用
提供机密性
鉴别:
消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。
完整性:
消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。
抗抵赖:
消息的发送者事后不可能虚假地否认他发送的消息。
1.2密码学专业术语
明文
信息的原始形式称为明文(plaintext)。
明文用M或P表示。
明文的形式可能是:
位序列、文本文件、位图、数字化语音序列、数字化视频图像等、对于计算机,明文指二进制数据。
密文
明文经过加密变换后的形式称为密文(ciphertext)。
密文用C表示。
对于计算机,密文是二进制数据。
加密
由明文变成密文的过程称为加密(enciphering)。
通常记作E。
加密函数E作用于M得到密文C。
可用数学公式表示:
E(M)=C
解密
由密文变成明文的过程称为解密(deciphering)。
通常记作D。
解密函数D作用于C得到明文M。
可用数学公式表示:
D(C)=M
加密和解密的过程可以表示为:
先加密再解密,原始明文将恢复。
故等式D(E(M))=M必须成立
算法
算法是用于加密和解密的数学函数。
如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。
受限制的算法流行于低密级的应用。
密钥
密钥是参与加密或解密变换的参数(key)。
通常用K表示。
通过引入密钥,算法的安全性依赖于密钥的安全性,而不是算法细节的安全性。
密钥的引入使得算法可以公开,或被分析,并使大量生产使用某一算法的产品成为可能。
引入密钥后,加密和解密的过程可以表示为:
加密函数为:
DK2(EK1(M))=M
并满足:
EK1(M)=C
解密函数为:
DK2(C)=M
密码体制
通常一个完整的密码体制包括如下五个要素:
M可能明文的有限集,称为明文空间。
C可能密文的有限集,称为密文空间。
K一切可能密钥的有限集,称为密钥空间。
E加密函数
D解密函数
对于密钥空间的任一密钥,有一个加密算法和相应的解密算法,使得加密函数EK:
M->C和解密函数DK:
C->M满足:
DK(EK(x))=x,这里x€M
1.3密码学的发展
第一阶段:
传统密码学主要加密对象是文字书信
第二阶段:
计算机密码学主要加密对象是二进制数据
2密码算法概述
2.1经典密码算法
2.1.1代替密码
代替密码就是明文中每一个字符被替换成密文中的另外一个字符。
接收者对密文进行逆替换就恢复明文。
简单代替密码多名码代替密码
多字母代替密码多表代替密码
■简单代替密码
明文的一个字符用相应的一个密文字符代替。
例:
凯撒(Caser)密码
将每一个明文字符用它右边的第3个字母代替。
简单代替密码由于使用从明文到密文的单一映射,所以明文字母的单字母出现频率与密文中相同。
■多名码代替密码
单个字符明文可以映射成密文的几个字符之一。
■多字母代替密码
字符块被成组加密。
■多表代替密码
由多个简单的代替密码构成。
它有多个单字母密钥,每一个密钥被用来加密一个明文字母。
2.1.2换位密码
在换位密码中,明文的字母保持相同,但顺序被打乱。
列换位法矩阵换位法
简单的纵行换位密码示例:
明文:
COMPUTERGRAPHICSMAYBESLOWBUTATLEASTEXPENSIVE
将明文以固定宽度水平写在图表纸上:
COMPUTERGR
APHICSMAYB
ESLOWBUTAT
LEASTEXPEN
SIVE
密文按垂直方向读出:
CAELSOPSEIMHLAVPIOSEUCWTTSBEEMUXRATPGYAERBTN
2.1.3一次一密乱码本
一次一密乱码本是一个大的不重复的真随机密钥字母集,这个密钥字母集被写在几张纸上,并被粘成一个乱码本。
发送者用乱码本中的每一密钥字母加密一个明文字符。
加密使用明文字符和一次一密乱码本密钥字符的模26加法。
若明文:
ONETIMEPAD乱码本的密钥序列是:
TBFRGFARFM
由:
(O+T)mod26=I
(N+B)mod26=P
(E+F)mod26=K…
则密文是:
IPKLPSFHGQ
一次一密密码体制的特点:
'每个密钥仅对一个消息使用一次
'密钥以随机方式产生。
'密钥长度等于明文长度。
'发送者和接收者必须完全同步。
'是唯一达到理论不可破译的密码体制。
对称算法又叫:
在大多数对称算法中,加密密钥和解密密钥是相同的。
对称算法中,加密密钥能够从解密密钥中推算出来,反之也成立。
2.2对称算法(symmetricalgorithm)
传统密码算法
秘密密钥算法
单密钥算法
对称算法的安全性依赖于密钥。
对称算法的加密和解密可表示为:
EK(M)=C
DK(C)=M
使用对称密码系统通信的过程可以描述如下:
1)Alice和Bob协商用同一密码系统。
2)Alice和Bob协商用同一密钥。
3)Alice用加密算法和选取的密钥加密明文,得到密文。
4)Alice发送密文给Bob。
5)Bob用同样的算法和密钥解密密文,然后读出明文。
对称密码算法存在的缺点:
1)通信双方事先必须约定密钥。
2)密钥必须秘密分配。
3)如果密钥泄密,攻击者可以冒充协议发送方,产生虚假加密消息。
4)对于一个完备的通信网,需要的密钥数量非常大。
3)不具备数字签名功能,不能保证消息的完整性和不可否认性。
2.3公开密钥算法(public-keyalgorithm)
公开密钥算法中,加密密钥不同于解密密钥,
并且解密密钥不能根据加密密钥计算出来。
在公开密钥算法中,加密密钥可以公开,即陌生者可以用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。
加密密钥叫公开密钥(public-key,简称公钥)
解密密钥叫私人密钥(private-key,简称私钥)
相应的加密过程可表示为:
EK(M)=C
用相应的私钥解密过程可表示为:
DK(C)=M
公开密钥算法广泛用于数字签名。
在数字签名中,用私钥加密,而用公钥解密。
公开密钥算法也叫非对称算法。
使用公开密码系统通信的过程可以描述如下:
1)Alice和Bob选用一个公开密码系统。
2)Bob将他的公开密钥传送给Alice。
3)Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
4)Bob用他的私人密钥解密Alice的密文。
公开密码体制具有如下优点:
1)密钥分发简单。
2)秘密保存的密钥量减少
3)在互不信任的通信双方之间,可以相互验证对方身份。
4)可以实现数字签名。
2.4混合密码系统
混合密码系统中,公开密钥密码用来保护和分发密钥。
这些会话密钥用在对称算法中,对通信消息进行保密。
使用混合密码系统的优势:
1)把公开密钥密码用于密钥分
2)公开密钥算法比对称算法慢。
配解决了对称密码系统的密钥管理问题。
使用混合密码系统进行加密通信的过程如下:
1)Bob将他的公开密钥发给A2)Alice产生随机会话密钥K,用Bob的公开密钥加密,并把加密的密钥EB(K)送给Bob。
lice。
3)Bob用他的私人密钥解密Alice的消息,恢复出会话密钥:
EB(EB(K))=K。
4)双方用同一会话密钥对他们的消息进行加密。
密码分析学是在不知道密码的情况下,恢复出明文的科学。
分组密码将明文分成固定长度的组,用同一密钥和算法对每一块加密。
现代计算机密码算法的典型分组长度为64位。
序列密码每次加密一位或一字节的明文,也可称为流密码。
2.6算法的安全性
2.6.1密码分析
密码分析的一个基本假设:
秘密必须全寓于密钥中。
即密码分析者了解加密算法的全部知识。
对密码进行分析的尝试称为攻击。
常用的密码分析攻击:
1)唯密文攻击(ciphertext-onlyattack)
密码分析者有一些消息的密文,这些消息都用同一加密算法加密。
密码分析者的任务是:
恢复尽可能多的明文,或能够推算出加密消息的密钥,以便可采用相同的密钥解出其他被加密的消息。
已知:
C1=EK(P1),C2=EK(P2),…,Ci=EK(Pi)
推导出:
P1,P2,…,Pi;或者K
2)已知明文攻击(known-plaintextattack)
密码分析者不仅有一些消息的密文,而且也知道这些消息的明文。
密码分析者的任务是:
用加密信息推算出加密消息的密钥,或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。
已知:
P1,C1=EK(P1),P2,C2=EK(P2),…,Pi,Ci=EK(Pi)
推导出:
密钥K;或者从Ci+1=EK(Pi+1)推导出Pi+1的算法。
3)选择明文攻击(chose-plaintextattack)
密码分析者不仅有一些消息的密文和明文,而且也可选择被加密的明文。
密码分析者的任务是:
推出加密消息的密钥,或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。
已知:
P1,C1=EK(P1),P2,C2=EK(P2),…,Pi,Ci=EK(Pi),其中P1,P2,…,Pi可以由密码分析者选择。
推导出:
密钥K;或者从Ci+1=EK(Pi+1)推导出Pi+1的算法。
选择明文攻击比已知明文攻击更有效。
因为密码分析者能够选择特定的明文块加密,那些块可能产生更多的关于密钥的信息。
4)自适应选择明文攻击(adaptive-chosen-plaintextattack)
密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。
自适应选择明文攻击是选择明文攻击的特殊情况。
在自适应选择明文攻击中,密码分析者可以选取较小的明文块,然后再基于第一块的结果选择另一明文块。
而在选择明文攻击中,密码分析者可以选取一大块被加密的明文。
5)选择密文攻击(chosen-ciphertextattack)
密码分析者可选择不同的被加密的密文,并可得到对应的解密的明文。
密码分析者的任务是:
推出加密消息的密钥。
已知:
C1,P1=DK(C1),C2,P2=DK(C2),…,Ci,Pi=DK(Ci),
推导出:
密钥K
选择密文攻击主要用于公开密钥算法。
6)软磨硬泡攻击(rubber-keyattack)
密码分析者通过威胁等手段,迫使密码知情人给出密钥。
2.6.2算法的安全性
根据被破译的难易程度,不同的密码算法具有不同的安全等级。
破译算法可以分为不同的类别,安全性递减的顺序为:
(1)全部破译(totalattack)。
密码分析者找出密钥K,这样DK(C)=P。
(2)全盘推导(globaldeduction)。
密码分析者找到一个代替算法A,在不知道密钥K的情况下,等价于DK(C)=P。
(3)实例(或局部)推导(instance(orlocal)deduction)。
密码分析者从截获的密文中找出明文。
(4)信息推导(informationdeduction)。
密码分析者获得一些有关密钥或明文的信息。
这些信息可能是密钥的几个位,有关明文格式的信息等。
如果不论密码分析者有多少密文,都没有足够的信息恢复出明文,那么这个算法就是无条件保密的。
只有一次一密乱码本才是不可破的。
'蛮力攻击:
只要简单地一个接一个地去试每种可能的密钥,并且检查所的明文是否有意义,就可破译除一次一密乱码本以外的所有其他密码系统。
所有其他密码系统在唯密文攻击中都是可破的
密码学更关心在计算上不可破译的密码系统。
如果一个算法用可得到的资源都不能破译,这个算法则被认为在计算上是安全的。
可用资源就是公开数据的分析整理。
可用不同方式衡量攻击方法的复杂性:
1)数据复杂性:
用作攻击输入所需的数据量。
2)处理复杂性:
完成攻击所需要的时间。
3)存储需求:
进行攻击所需要的存储量。
攻击的复杂性取三个因数的最小值。
一个算法的复杂性即运行它所需的计算能力。
复杂性用数量级表示。
如果算法的处理复杂性是2128,那么破译这个算法需要2128次运算。
假设有足够的计算速度完成每秒钟100万次运算,并且用100万个并行处理器完成这个任务,仍需花费1019年(宇宙年龄的10亿倍)以上才能找出密钥。
当攻击的复杂性是常数时,则破译算法的难度只取决于计算能力。
3DES算法
数据加密标准DES,DataEncryptionStandard
3.1DES背景
3.1.1标准的开发
1972年
美国国家标准局(NBS)拟订了一个旨在保护计算机和通信数据的计划。
开发一个单独的标准密码算法是该计划的一部分。
1973年5月15日
美国国家标准局(NBS)发布征集标准密码算法公告。
NBS确定了一系列设计准则:
'算法必须提供较高的安全性。
'算法必须完全确定且易于理解。
'算法的安全性必须依赖于密钥,而不应依赖于算法。
'算法必须对所有的用户都有效。
'算法必须适用于各种应用。
'用以实现算法的电子器件必须很经济。
'算法必须能有效使用。
'算法必须能验证。
'算法必须能出口。
1974年8月27日
美国国家标准局(NBS)第二次发布征集标准密码算法公告。
采纳候选算法,由IBM公司1970年初开发的一个算法基础上发展而成。
1975年NBS公布该算法细节。
1976年NBS成立专题小组评估提出的整个标准。
1976年11月23日采纳IBM公司的设计方案为联邦标准,并授权在非密级的政府通信中使用。
1977年1月15日FIPSPUB46(DES标准的正式文本)公布,并在六个月后生效。
1980年FIPSPUB81(DES工作方式)公布。
1981年公布FIPSPUB74(实现和使用DES的指南)
DES算法是第一个公布的NSA(美国国家安全局)执行算法。
3.1.2标准的采用
1981年美国国家标准研究所(ANSI)批准DES为私营部门的标准,并将其称为DEA。
1987年国际标准化组织(ISO)下属国际销售金融标准组在国际认证标准中使用DES。
其它
美国财政部制订政策,要求所有电子资金转账电文使用DES鉴别。
美国总务署负责制订联邦电信标准期间,发布了三个基于DES的标准。
3.2DES算法描述
1)分组加密算法:
以64位为分组。
64位一组的明文从算法一端输入,64位密文从另一端输出。
2)对称算法:
加密和解密用同一密钥。
3)有效密钥长度为56位。
密钥通常表示为64位数,但每个第8位用作奇偶校验,可以忽略。
4)代替和置换
DES算法只是两种加密技术的组合:
混乱和扩散。
先代替后置换。
5)易于实现
DES算法只是使用了标准的算术和逻辑运算,其作用的数最多也只有64位,因此用70年代末期的硬件技术很容易实现。
算法的重复特性使得它可以非常理想地用在一个专用芯片中。
DES算法的总体过程:
在初始置换IP后,
明文组被分为左右两部分,每部分32位,以L0,R0表示。
经过16轮运算(ƒ),将数据和密钥结合。
16轮后,左、右两部分连接在一起。
经过末置换(初始置换的逆置换)。
算法完成。
64位明文
初始置换和对应的末置换并不影响DES的安全性。
其主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中。
由于这种位方式的置换用软件实现很困难,很多DES的软件实现方式删去了初始置换和末置换。
这些新的算法安全性不比DES差,但并未遵循DES标准,故而不应叫做DES。
3.2.2迭代过程
经过初始置换后,进行16轮完全相同的运算。
这些运算被称为ƒ,在运算过程中数据与密钥结合。
+
ƒ
k1
L0
R0
L1=R0
R1=L0⊕ƒ(RO,K1)
函数ƒ的输出经过一个异或运算,和左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。
假设Li和Ri是第i次迭代结果的左半部分和右半部分,Ki是第i轮的48位密钥,则每一轮迭代过程可以表示为:
Ki48bit
Li-1(32bit)
Ri-1(32bit)
扩展置换E
S盒代替
P-盒置换
Ri(32bit)
Li(32bit)
⊕
⊕
Ri=Li-1⊕ƒ(Ri-1,Ki-1)
Li=Ri-1
32位
48位
48位
32位
32位
32位
函数ƒ由四步运算构成:
'密钥置换
'扩展置换
'S-盒代替
'P-盒置换
3.2.2.1密钥置换
DES算法由64位密钥产生16轮的48位子密钥。
在每一轮运算过程中,使用不同的子密钥。
每一轮子密钥生成过程可以表示为:
由于不考虑每个字节的第8位,DES的密钥由64位减至56位。
每个字节的第8位可作为奇偶校验以确保密钥不发生错误。
然后进行置换选择1,如表3-2所示。
。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 数据加密技术 第三 数据 加密 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)