第三章数据加密技术.docx

上传人:b****1 文档编号:23019060 上传时间:2023-04-30 格式:DOCX 页数:23 大小:148.99KB
下载 相关 举报
第三章数据加密技术.docx_第1页
第1页 / 共23页
第三章数据加密技术.docx_第2页
第2页 / 共23页
第三章数据加密技术.docx_第3页
第3页 / 共23页
第三章数据加密技术.docx_第4页
第4页 / 共23页
第三章数据加密技术.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第三章数据加密技术.docx

《第三章数据加密技术.docx》由会员分享,可在线阅读,更多相关《第三章数据加密技术.docx(23页珍藏版)》请在冰豆网上搜索。

第三章数据加密技术.docx

第三章数据加密技术

第三章数据加密技术

第三章数据加密技术

学习内容要求

•数据加密技术基本概念

•密码算法概述

•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模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1