工业互联网安全技术 课件 第3章 密码学基础_第1页
工业互联网安全技术 课件 第3章 密码学基础_第2页
工业互联网安全技术 课件 第3章 密码学基础_第3页
工业互联网安全技术 课件 第3章 密码学基础_第4页
工业互联网安全技术 课件 第3章 密码学基础_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工业互联网安全技术第3章密码学基础3.1密码学与密码系统3.2密码体制的分类3.3

数据完整性算法第1章绪论学习要求

知识要点能力要求密码学与密码系统(1)了解密码学的发展(2)掌握密码系统密码体制(1)熟悉AES对称密码体制的加密过程(2)熟悉RSA和ECC两种非对称加密体制的加密过程数据完整性(1)掌握散列算法、数字签名的目的(2)了解散列算法、数字签名的过程3.1.1密码学概述密码学概述在现实世界中存在许多种信息安全威胁,如窃听、伪造、篡改、抵赖和拒绝服务等,直接针对信息系统的保密性、完整性、可用性、认证性和不可否认性。经典的信息安全三要素为机密性、完整性和可用性,而随着时代的发展,信息安全的基本属性得到了扩展,包括5个基本属性,即机密性、完整性、可用性、认证性和不可否认性。3.1.1密码学概述密码学概述

密码学可分为密码编码学和密码分析学密码编码学研究安全性高的密码算法和协议,以对信息进行加密和认证。密码分析学则研究如何破译密码或伪造认证信息密码编码学和密码分析学是对立统一的,总是有新的密码编码方式出现以对抗新出现的密码分析方法,同时也总是有新的密码分析方法出现以破解改进了的密码编码方式,这一过程也推动了密码学的发展。3.1.1密码学概述密码学概述

从古典密码学发展到如今的现代密码学已有数千年的历史,其发展可分为三个阶段,古典密码学,近代密码学,现代密码学。古典密码学

古典密码学的核心手段主要有两种,即代换和置换。代换是将明文中的字符用其他字符代替。置换则是将明文中的字符顺序重新排列3.1.1密码学概述近代密码学近代密码学可以看作是现代密码学的一部分,发展时期大概可从18世纪末到20世纪中期,其中主要发展是在第二次世界大战时期。1918年,在第一次世界大战快要结束时,德国人亚瑟·谢尔比乌斯发明了恩尼格玛密码机,其采用的是多表代替的加密方式。3.1.2密码系统密码系统也称为密码体制,一个简单的密码系统模型如图。密码系统可由一个五元组(M,C,K,E,D)表示,该五元组的具体内容如下:明文:待传输的未加密数据,通常用M表示全体明文集合。密文:明文经加密得到的数据,通常用C表示全体密文集合。密钥:用以加密和解密的秘密参数,通常用K表示全体密钥集合。加密算法:使用加密密钥将明文转化为密文的规则,通常用E表示。解密算法:使用解密密钥将密文转化为明文的规则,通常用D表示。第3章密码学基础3.1密码学与密码系统3.2密码体制的分类3.3

数据完整性算法3.2.1对称密码体制对称密码体制如果一个密码体制的加密密钥和解密密钥相同,或者虽然不相同,但是可以由其中任意一个密钥很容易地推出另一个密钥,则称该密码体制为对称密码体制。其特点为:一是加密密钥和解密密钥相同,或本质相同;二是密钥必须严格保密。在对称加密体制中,加密算法和解密算法是公开的,加密信息的传递可以使用一个不安全的信道,但是传递密钥时必须提供一个安全可靠的信道,故其安全性主要取决于密钥的安全性。常用的对称密码算法有:数据加密标准(DES)、扩展的DES加密算法(二重和三重DES)和高级加密标准(AES)。

3.2.1对称密码体制对称密码体制数据加密标准DES

DES使用56位密钥,对64位数据分组进行加密,加密后密文长度也为64位,解密亦然。DES可以分成以下几个部分:初始IP置换、子密钥生成、f函数、16次迭代和末置换。3.2.1对称密码体制对称密码体制二重DES

DES存在密钥较短的问题,从而不能满足当前的安全要求。但为了利用DES的软件和硬件成果,从而提出了多重DES,实际中常用的是二重DES和三重DES,其中二重DES是多重DES的最简单形式。3.2.1对称密码体制对称密码体制三重DES

虽然二重DES采用两个密钥进行两次加密,但当遭到中途相遇攻击时,其密钥强度会退化到与DES相当的水平,为了解决这个问题,可以使用三重DES。三重DES有几种模式,最容易想到的是使用三个不同的密钥进行三次加密,但一种常用的三重DES模式为使用两个不同的密钥。3.2.1对称密码体制对称密码体制AES:高级加密标准

AES的输入输出分组数据长度均为128位,密钥长度可变,可设定位128位,196位和256位。AES加密算法中迭代轮数取决于密钥长度,若密钥长度位128位,则=10;若密钥长度为196位,则=12;若密钥长度为256位,则=14。AES算法包括密钥扩展、轮密钥加变换、S盒代替、行变换、列变换。3.2.1对称密码体制AES:高级加密标准S盒替换

S盒为一个16×16的矩阵,其功能是完成一个字节到另一个字节的映射,这种变换是非线性的。要描述S盒非常简单,但它其实是一个复杂的代数结构。S盒的输入为1个字节8位,按照高4位为行,低4位为列在S盒中查取对应的数据作为输出,显然,输出也为1个字节8位。S盒替换表3.2.1对称密码体制AES:高级加密标准行移位

行移位的输入是一个4×4的矩阵,每一个元素代表一个字节,故输入为16个字节。对于每一次行移位,都有第一行不变,第二行循环左移一个元素,第三行循环左移两个元素,第三行循环左移三个元素。3.2.1对称密码体制AES:高级加密标准列混合

与行移位相同,列混合的输入也是一个4×4的矩阵。列混合的操作如图所示。与一般的矩阵相乘不同,此时的乘法和加法是定义在有限域GF(28),考虑一种简单的运算说明。3.2.1对称密码体制AES:高级加密标准密钥扩展

输入的密钥长度为128位,先将密钥按列分为四组,每组4个字节,分别为W0,W1,W2,W3。接下来需要扩充40个新列,以递归方式产生。3.2.1对称密码体制加密模式电子密码本模式(ECB)首先将明文按一定的位长进行分组,如果最后一个分组长度小于指定位长,则按相应规则填充,得到明文分组(以下明文分组方法相同),再对每个明文分组使用相同的密钥分别加密。ECB加密模式加密过程简单,且能够并行处理。但ECB加密模式存在一个严重的问题,即如果明文分组相同,则加密后的密文分组也相同,进而可以找到明文分组的规律,存在一定的风险。3.2.1对称密码体制加密模式密码分组链模式(CBC)

明文分组与前一个密文分组进行异或运算后,再使用相同密钥加密,如果当前明文分组为第一个明文分组,则与初始化向量进行异或运算,因此每个密文分组都依赖于它前面的所有密文分组。CBC的加密和解密如图3-11所示。CBC加密模式没有EBC加密模式的问题,无法直接从密文分组找出明文分组的规律,并且对于相同的明文,使用不同的初始化向量也会得到不同的密文。但是CBC加密模式的加密过程不能并行处理,使得加密速度较慢。3.2.1对称密码体制加密模式密码反馈模式(CFB)

对前一个密文分组加密,加密后的结果再与明文分组进行异或运算,如果当前没有前一个密文分组,则用初始化向量加密,再与明文分组进行异或运算。与CBC加密模式相同,每个密文分组都依赖于它前面的所有密文分组。特点与CBC加密模式相似,可以隐藏明文的规律,但不可并行加密。3.2.1对称密码体制加密模式输出反馈模式(OFB)

对初始化向量进行若干次加密,每次加密后与相应的明文分组进行异或运算。OFB加密模式的密文分组不会影响下一个密文分组,故不会进行错误传播,但每次应使用不同的初始向量,避免“已知明文”攻击。3.2.1对称密码体制加密模式计时器模式(CTR)

与OFB加密模式类似,CTR加密模式对一个递增的加密计数器加密,加密后的结果与明文分组进行异或运算。CTR加密模式的每个明文分组的加密是独立的,进而可以并行处理,并且在保证计数器长时间内不产生重复值的情况下,对于相同的明文分组,加密后的密文分组不同。3.2.2非对称密码体制非对称密码体制与对称密码体制相反,非对称密码体制的加密密钥和解密密钥不同,并且很难由加密密钥推出解密密钥。加密密钥可以公开,称为公钥,而解密密钥只能为私人拥有,称为私钥。接下来以RSA和ECC为例介绍非对称密码体制算法。

3.2.2

非对称密码体制

3.2.2

非对称密码体制

椭圆曲线图像3.2.2

非对称密码体制非对称密码体制ECC对于加法,如图椭圆曲线为例,点A和B在椭圆曲线上,现要计算A+B,则需要先作过A和B的直线,在大多数情况下,过A和B的直线都会与椭圆曲线相交于第三点T,再作T关于X轴对称的点得到C,根据对称性,C也在椭圆曲线上。此时即得到A+B的值C,记为。对于这种形式的加法定义,T的存在很重要,加法操作需要这样一个点。在椭圆曲线上求A+B3.2.2

非对称密码体制非对称密码体制ECC如图,A和B重合为一个点,此时需要在点A处作切线,同样地与椭圆曲线相交于第三点T,再作关于X轴对称的点得到C,即为结果,记为A+A=C。与普通运算法则相同,实际上A+A=C=2A,这个过程也叫做点的自累,这是椭圆曲线乘法的基础,当不断累加这个过程,实际上就是在进行椭圆曲线的乘法。在椭圆曲线上求A+B3.2.2

非对称密码体制非对称密码体制ECC此时继续计算3A,由于,与前述加法过程计算相同,显然作过A和2A的直线与椭圆曲线相交于第三点,再关于X轴对称即可得,如图所示。

接下来介绍ECC的具体流程如下:在椭圆曲线上求A+B

3.2.2

非对称密码体制

第3章密码学基础3.1密码学与密码系统3.2密码体制的分类3.3

数据完整性算法3.3.1散列算法散列算法散列算法也称散列函数、hash函数,散列算法是一种将任意长度的输入m变换成固定长度的输出H(m)的不可逆单向函数,输出H(m)就是散列值。对于散列算法,其应当具有以下几点性质:对于任意的输入m,能够产生较短的输出H(m),并且输入的散列计算是容易的。输出对输入必须具有敏感性,即输入数据的任一点改变都会带来输出的改变。虽然存在两个不同的报文x和y使得H(x)=H(y),但找到这样的两个报文在计算上是不可能的。不能由输出H(m)反求出m。

3.3.1散列算法散列算法散列算法不是加密算法,但在密码学中有广泛应用。散列算法在数字签名中发挥了重要作用。数字签名通常使用非对称加密,并且由于消息的散列值通常比消息本身短得多,因此对消息的散列值进行数字签名比直接对消息本身进行数字签名高效得多。散列算法用于消息鉴别码(messageauthenticationcode,MAC),即判断消息在发送途中是否被修改。考虑Alice向Bob发送消息m,此时有密钥k只有他们两人知道。Alice使用散列算法得到散列值H(m+k)后将(m,H(m+k))一起发送给Bob,Bob收到后使用同样的散列算法计算m+k的散列值,如果二者的散列值相同,则消息未被修改;否则消息被修改了。

3.3.1散列算法散列算法下面介绍两种广泛使用的散列算法MD5和SHA–1

MD5为了克服MD4的缺陷和增强安全性,RSA算法的作者之一Rivest对MD4进行了改进,得到了MD5。MD5和MD4设计思想相似,但MD5更复杂。MD5获得一个任意长度的信息后产生一个128位的信息摘要。其算法原理如下:MD5首先对信息进行填充,然后以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过一系列处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后即得到128位散列值。3.3.1散列算法

MD5

填充(数据预处理)数据长度的一致性有利于数据处理,故首先对输入数据m进行填充,使得填充后数据长度对512取余的结果为448,即填充后数据长度为位,K为大于零的整数。具体填充操作是:输入数据m后面先补一个1,然后一直补0直到满足长度要求。值得注意的是即使输入数据m的长度对512取余的结果已经是448,也要进行填充操作,此时补一个1和511个0。填充完成后再级联一个64位数据(输入数据m的长度的二进制表示)。此时,数据的长度是512的整数倍。3.3.1散列算法

MD5

初始向量

MD5指定了4个32位的初始值a、b、c、d作为寄存器中最初的数据,用16进制表示,分别为:a=01234567,b=89abcdef,c=fedcba98,d=76543210。这4个值共128位,形成MD5的初始向量,即作为最初的输入用于第一次主循环。3.3.1散列算法

MD5

主循环先将4个初始值放入另外4个寄存器A、B、C、D中,以便执行最后的模加运算,然后开始第一次主循环。将填充后数据按512位分组,则主循环的次数即为分组数,且每一次主循环的输入为相应的512位分组。每一次主循环包括四轮,四轮中只有一个函数不同,其余均相同。每一轮又包括16次操作,将512位的分组分为16个字,每个字32位,则16次操作的输入为这16个字。MD5一次主循环过程MD5每一轮过程3.3.1散列算法散列算法

SHA-11993年美国国家标准技术研究所发布了安全散列标准SHA0,但很快就被撤回了,并于1995年发布了修改版SHA-1。SHA-1在设计上与MD5类似,但SHA-1生成的消息摘要长度为160位,抗穷举搜索能力更强。SHA-1的填充方式和消息分组与MD5几乎相同,每个主循环也是包括四轮,但每轮进行20次操作,包括非线性运算、移位和加法运算,此时的操作与MD5有一些区别。3.3.1散列算法

3.3.2

数字签名数字签名在日常生活中,手写签名是需要的并且被广泛使用的。随着计算机网络的发展,大量电子文本代替了传统的纸质文本,那么一种发挥和手写签名相同功能的数字签名也应运而生。数字签名作为一种对手写签名的模仿,其应当有以下三点特征:

身份验证:数字签名可以被确认,即接受签名的一方能验证签名

数据完整性:除了签名者,其他人不能对数据进行更改

不可否认性:签名者事后不能否认自己所做的签名,即使其想否认自己的签名,公正的第三方也能做出正确的判断。3.3.2

数字签名数字签名其他人不能伪造数字签名,这意味着签名者有一个只有其自己知道的秘密,另一方面,数字签名需要被验证,并且此验证是公开的。通过前面对非对称加密的介绍可以发现,其满足这两方面的要求,一把钥匙是签名者自己知道的秘密,另一把钥匙用于公开的验证,实际上也确实是采用非对称加密进行数字签名。数字签名的原理并不复杂,其一次签名和验证过程如下:假设有签名者用户A和验证者用户B。数据首先被使用散列算法生成固定长度的摘要,签名者再使用其私钥对摘要进行加密得到,此即为签名过程。随后签名者将和一起发送给验证者B。验证者B收到签名者发送的数据后,对使用同样散列算法生成摘要,再与使用公钥解密数据后的数据进行对比,若两者相同,则验证成功,签名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论