安全交易加密技术
- 时间:2017-05-24 08:57:06 来源: 责任编辑:admin
长沙环境保护职业技术学院
|
|
5.1 数据加密概述
|
|
5.3 计算机密码学数据加密技术
|
5.4 加密技术的应用
|
5.5 安全加密软件PGP使用
|
|
|
|
1.了解加密技术对电子商务交易的重要性,掌握加密技术中所涉及的各种基本概念;
|
2.理解对称加密和非对称加密技术的工作流程及两者的区别;
|
3.基本理解对称加密技术和非对称加密技术的综合使用;
|
4.能够使用Openssl软件进行加密,使用PGP软件收、发加密和数字签名的电子邮件。
|
|
|
|
Openssl软件进行加密,使用PGP软件收、发加密和数字签名的电子邮件
|
教学方法与手段特色:
|
|
|
|
|
第5章 数据加密技术
5.1 数据加密概述
密码学是一门古老而深奥的学科,对一般人来说是非常陌生的。长期以来,只在很小的范围内使用,如军事、外交、情报等部门。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。
随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向。
1.密码学的发展
(1)加密的历史
密码学的历史比较悠久,在四千年前,古埃及人就开始使用密码来保密传递消息。
(2) 密码学的发展
两千多年前,罗马国王Julius Caesare(恺撒)就开始使用目前称为“恺撒密码”的密码系统。但是密码技术直到本20世纪40年代以后才有重大突破和发展。
特别是20世纪70年代后期,由于计算机、电子通信的广泛使用,现代密码学得到了空前的发展。
两个方面:传统方法的计算机密码学
两个方向
公用密钥密码RSA
传统方法的计算机密码体制——数据加密标准DES
2、密码学类型
密码学主要有三类型
对称密码学
非对称密码学
网际网路上的密码学
①对称密码学
现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值,密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,加解密函数表达为:
EK (M )=C
DK (C )=M
DK (EK (M ))=M ,如图5-1 所示。
②非对称密码学
有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,加密和解密的函数表达式为:
EK1 (M )=C
DK2 (C )=M
函数必须具有的特性是,DK2 (EK1 (M ))=M ,如图5-2 所示。
3、密码的作用
5.1.2 数据加密
1、为什么要进行加密
因特网是危险的,而且这种危险是TCP/IP协议所固有的,一些基于TCP/IP的服务也是极不安全的,另一方面,因特网把全世界连在了一起,走向因特网就意味着走向了世界。为了使因特网变得安全和充分利用其商业价值,人们选择了数据加密和基于加密技术的身份认证。所以在互联网上进行加密显得尤为重要。
数据加密:把数据和信息(明文)转换为不可辨识的形式(密文),使不应了解该数据和信息的不能识别和理解。
明文:未经过加密处理的有意义的报文。用M(Message,消息)或P(Plaintext,明文)表示;它可能是比特流、文本文件、位图、数字化的语音流或者数字化的视频图像等。
密文:经过加密处理后的无意义的报文。用C(Cipher)表示,也是二进制数据,有时和M一样大,有时稍大。通过压缩和加密的结合,C有可能比P小些(记C)
加密:由明文变成密文的过程(记为E)。加密通常是由加密算法来实现的。加密函数E作用于M得到密文C,用数学公式表示为:E(M)=C。
解密:由密文还原成明文的过程(记为D),解密通常是由解密算法来实现的。解密函数D作用于C产生M,用数据公式表示为:D(C)=M。
密钥:为了有效地控制加密和解密算法的实现,在其处理过程中要有通信双方掌握的专门信息参与,这种专门信息称为密钥(key,记为K)。
先加密后再解密消息,原始的明文将恢复出来,D(E(M))=M必须成立。
5.1.2 数据加密
任何加密系统至少包括四个方面:
明文
密文
加密解密设备或算法
加密解密的密钥
任何加密系统应满足的基本要求
(1)密码系统是容易使用的
(2)加、解密换必须对所有密钥均有效。
(3)密码系统的安全性仅仅依赖密钥的保密,而与算法无关。
数据加密常用的算法:
(1)传统密钥加密算法
(2)对称密钥加密算法
(3)公开密钥加密算法
5.2传统密码技术
密码技术通过信息的变换或编码,将机密的敏感信息变换成黑客难以读,乱码型文字,以此达到两个目的:
其一,使不知道如何解密的黑客不可能从其截获的乱码中得到任何有意义的信息;
其二,使黑容不可能伪造任何乱码型的信息。
一般把要加密的报文(称为明文,P),按照以密钥(key)为参数的函数进行变换,通过加密过程而产生的输出称为密文(C)或密码文件。
密码技术:把设计密码的技术(加密技术)和破译密码的技术(密码分析)总加密算法和解密算法是在密钥的控制下进行的,加密和解密过程中使用的密钥分别称为
传统的加密方法,其密钥是由简单的字符串组成的,它可以选择许多加密形式中的一种。只要有必要,就可以经常改变密钥。因此,这种基本加密模型是稳定的,是人所共知的,它的好处就在于可以秘密而又方便地变换密钥,从而达到保密的目的。
传统的加密方法可以分为两大类:替代密码、换位密码。
5.2.1替代密码
代替密码:是用一组密文字母来代替一组明文字母以隐藏明文,但保持明文字母的位置不变。
四种类型
简单代替密码 ☆
多名码代替密码
多表代替密码 ☆
字母代替密码
1) 简单代替密码
凯撒密码是最古老的替代密码,以英文26个字母为例,它用D表示a,用E表示b,用F表示c,…,用C表示z,密文字母相对明文字母循环左移了3位,因此,又称为循环移位密码。这种映射关系表示为如下函数:
F(a)=(a十k)mod n
其中:a表示明文字母,n为字符集中字母个数,k为密钥。
凯撒密码映射表
假设k=3,则明文P=COMPUTER SYSTEMS可加密为:
f(C)=(2+3)mod 26=5=F
f(O)=(14+3)mod 26=17=R ……
f(S)=(18+3)mod 26=21=V
所以密文C=Ek(P) =FRPSXWHUVBVWHPV
由前表可知,由密文C恢复明文非常容易。显然,只要知道密钥K,就可构造一张映射表。其加密和解密均可根据此映射表进行。
凯撤密码的优点是:
密钥简单易记
缺点:
密码文与明码文的对应关系过于简单,故安全性很差。
2)多名码代替密码
原理同单表代替密码,不同是一个明文字会可映射成多个密文字符
3) 多表替代密码
周期替代密码是一种常用的多表替代密码,又称费杰尔密码。循环的使用有限个字母来实现替代。
采用的算法:
f(a)=(a+Bi) mod n (i = 1,2,3 …n)
加密过程:
以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密文。
解密过程:
以密钥字母选择行,从中找到密码文字母,密码文字母所在列的列名即为明码文字母。
费杰尔密码表
4)字母代替密码
对字母成组进行替换
5.2.3 换位密码
换位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了,换位密码是靠重新安排字母的次序,而不是隐藏他们。
最简单的例子是:把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录,如:
明文: computer systems
密文: smetsys retupmoc
例:密钥:megabuck, 明文iamagraduate
5.3 计算机密码学数据加密技术
基于密钥的算法通常有两类:
对称算法:对称算法有时又叫传统密码算法,加密密钥能够从解密密钥中推算出来,反过来也成立。
公开密钥算法(非对称算法)。
5.3.1对称加密技术
对称加密根据对明文加密方式的不同可分为两类:
一是分组密码(block cipher): 将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。
其特点是每次用相同密钥对同一明文加密将得到相同密码,一般为64bit ,易于软件实现。
二是流密码(stream cipher) ,又称序列密码,序列密码每次加密一位或一字节的明文。
其特点是每次对相同的明文比特或字节加密都会得到不同的密文比特或字节,易于硬件实现。
1. DES数据加密标准
DES是美国国家标准局于1977年公布的由IBM公司研制的加密算法,并把它作为非机要部门使用的数据加密标准。
DES是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。
DES是一个对称算法:
加密和解密用的是同一算法。密钥的长度为56位。(密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略。)密钥可以是任意的56位的数,且可在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们。所有的保密性依赖于密钥。
1. DES数据加密标准
在首次通信前,双方必须通过除网络以外的另外途径传递统一的密钥。
当通信对象增多时,需要相应数量的密钥。
一般不能提供信息完整性的鉴别
对称加密是建立在共同保守秘密的基础之上的,在管理和分发密钥过程中,任何一方的泄密都会造成密钥的失效,存在着潜在的危险和复杂的管理难度。
1)加密过程
DES有16轮,这意味着要在明文分组上16次实施相同的组合技术 。
2)算法概要
DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。
2)算法概要
然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完成了。
在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,便实现了DES的16轮运算。
2)算法概要
DES加密过程
DES算法将输入的明文分为64位的数据分组, 使用64位的密钥进行变换,每个64 位明文分组数据经过初始置换、16次迭代和逆初始置换3个主要阶段,最后输出得到64位密文。
DES加密算法过程:初始置换IP、16次迭代过程、逆置换。
3)DES解密
在经过所有的代替、置换、异或和循环移动之后,获得了这样一个非常有用的性质:加密和解密可使用相同的算法。
DES使得用相同的函数来加密或解密每个分组成为可能,二者的唯一不同之处是密钥的次序相反。这就是说,如果各轮的加密密钥分别是K1,K2,K3…,K16那么解密密钥就是K16,K15,K14……,K1。为各轮产生密钥的算法也是循环的。密钥向右移动,每次移动个数为0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1。
4)三重DES
三重DES方法需要执行三次常规的DES加密步骤,但最常用的三重DES算法中仅仅用两个56位DES密钥。设这两个密钥为K1和K2,其算法的步骤是:
(1 )用密钥K1 进行DES 加密;
(2 )用步骤(1 )的结果使用密钥K2 进行DES 解密;
(3 )用步骤(2 )的结果使用密钥K1 进行DES 加密。
4)三重DES
三重DES方法需要执行三次常规的DES加密步骤,但最常用的三重DES算法中仅仅用两个56位DES密钥。设这两个密钥为K1和K2,其算法的步骤是:
(1)用密钥K1进行DES加密;
(2)用步骤(1)的结果使用密钥K2进行DES解密;
(3)用步骤(2)的结果使用密钥K1进行DES加密。
这个过程称为 EDE,因为它是由加密——解密——加密(Encrypt Decrypt Encrypt)步骤组成的。在EDE中,中间步骤是解密,所以,可以使K1=K2来用三重DES方法执行常规的 DES加密。
缺点:化费时间
优点:更安全
2. 国际数据加密算法
国际数据加密算法(International Data Encryption Algorithm)IDEA与DES一样,也是一种使用一个密钥对64位数据块进行加密的常规共享密钥加密算法。同样的密钥用于将64位的密文数据块恢复成原始的64位明文数据块。IDEA使用128位(16字节)密钥进行操作,这么长的密钥被认为即使在多年后仍是有效的。
IDEA算法通过一系列的加密轮次进行操作,每轮都使用从完整的加密密钥中生成的一个子密钥,使用一个称为“压码”的函数在每轮中对数据位进行编码。与DES不同的是IDEA不使用置换。
5.3.2 非对称加密技术
公用密钥/私有密钥密码学又称公用密钥密码,它是通过两个数字互相互补的密码,绕过了排列共享的问题,这两个密钥一个是大家都知道的叫做公用密钥,而另一个只有拥有者才知道叫做私有密钥,这两种密钥合在一起称这密钥对,即公用密钥和私有密钥组成一对。
公用密钥可公开,任何人都可用此密钥对信息加密将其传送给私钥拥有者
如果某一信息用公用密钥加密,则必须用私有密钥解密,这就是实现保密的方法。
若某一信息用私有密钥加密,则必须用公用密钥解密,这就是实现验证的方法。(签名)
公用密钥系统最流行的例子是美国麻省理工学院开发的RSA系统,另一系统叫做Diffie-Hellman。
5.3.2 非对称密钥加密技术
1. RSA算法的简介
RSA算法是最著名的公开密码体制。基于大数分解的难度。其公开密钥和私人密钥是一对大素数的函数,从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。
RSA算法过程:首先是设计密钥,然后是对消息加密,最后是对密文解密。
1.RSA算法的简介
1)找两个非常大的质数P和Q,越大越安全并且要相近。计算:n = P×Q(公开)
2)随机选择加密密钥e(公开),e与(P-1)×(Q-1)互质,利用Euclid算法计算解密密钥D
3)计算出数值D(不公开),满足下面性质:D=e-1 mod( (P-1)×(Q-1))
其中n和D也要互质。数e和n是公钥,D是私钥。两个素数P和Q不再需要,应该丢弃,但不要让任何人知道。
得到的两组数(n,e) 和 (n,d) 分别被称为公开密钥和秘密密钥,或简称公钥和私钥。
1.RSA算法的简介
加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2,...,mi,每个分组mi的长度相同(位数不够可在高位补0)且小于n的长度,加密后的密文C将由相同长度的分组Ci组成。对应的密文是:
Ci = mi^e mod ( n ) ( a )
解密时作如下计算:
mi = Ci^d mod ( n ) ( b )
RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性和 m信息量较大等因素,一般是先作 HASH 运算。
例:设两个素数p=47,q=71,则
n=pq=3337 (P-1)×(Q-1)=46×70=3220
随机选取e,如79,它与(P-1)×(Q-1)=3220无公因子,则
d=79-1 mod 3220=1019
公开e和n,将d保密,丢弃p和q
如:加密消息M=6882326879666683
首先将其分成小的分组,在此例中,可取分组的长度为3位(n为4位数)。这个消息将分成6个分组
m1=688
m2=232
m3=687
m4=966
m5=668
m6=003
例:
已知RSA密码体制的公开密码为n=55,e=7,试加密明文m=10,通过求解P、Q和D破译这种密码体制。设截获到密码文C=35,求出它对应的明码文。
解:d=e-1 mod ((p-1)*(q-1))
N=p*q
2.安全性
RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。目前,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击。
3. RSA的速度
进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。
4.RSA优缺点
优点
RSA 算法是第一个能同时用于加密和数字签名 的算法,也易于理解和操作。
RSA 是被研究得最广泛的公钥算法,普遍认为是目前最优秀的公钥方案之一。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。
4.RSA优缺点
它特别符合计算机网络环境。
对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。
RSA 算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。
缺点
产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
速度太慢
5. RSA特点
(1)密钥配发十分方便
(2)RSA加密原理基于单向函数,非法接收者利用公用密钥不可能在有限时间内推算出秘密密钥
(3)RSA在用户确认和实现数字签名方面优于现有的其他加密机制。
RSA 要求每一个用户拥有自己的一对密钥:
公开的加密密钥(公钥),用以加密明文;
保密的解密密钥(私钥),用于解密密文。
5.3.3对称与非对称加密体制对比
DES与RSA
由于DES算法容易实现、安全性好且速度快,一般利用DES算法实现大量数据的加密,而RSA的保密性好,消除了用户交换密钥的需要,但加密和解密花费时间长、速度慢,但密钥管理方便,一般用于对DES密钥加密。
5.4.加密技术的应用
5.4.1 信息摘要
在密码学中,使用信息摘要(Message Digest,MD)来确保信息完整性。
信息摘要又称信息鉴别码(MAC,Message Authenticator Code)
信息摘要方法也称安全Hash编码法,是由单向加密算法Hash函数对一则消息进行计算得到的、对应一则消息的一个散列值(Hash值),有固定的长度 。
5.4.1信息摘要
单向算法概念是公开密钥密码的中心。
单向函数概念是一类计算起来相对容易,但求逆却非常困难的函数
特点:
正向计算容易,求逆相当困难
已知:xàf(x) 已知f(x)àx
例:打碎花瓶
单向函数不能用作加密,用单向函数加密的信息是毫无用处的,无人能解开它,但是一些特殊的单向函数对加密却很有用
5.4.1 信息摘要
HASH(哈希)函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长度的字符串(又称HASH值)。
单向Hash函数有:
压缩函数、缩短函数、消息摘要、指纹、密码校验和
信息完整性校验DIC、操作检验码MDC
HASH函数主要解决以下两个问题:
在某一特定的时间内,无法查找经HASH操作后生成特定HASH值的原报文;
也无法查找两个经HASH操作后生成相同HASH值的不同报文
这样在数字签名中就可以解决验证签名和用户身份验证、不可抵赖性的问题。单向HASH函数用于产生信息摘要。
5.4.2 数字信封技术
数字信封是用加密技术来保证只有规定的特定收信人才能阅读信的内容。在数字信封中,信息发送方采用对称密钥来加密信息,然后将此对称密钥用接收方的公开密钥来加密(这部分称为数字信封)之后,将它和信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开信息。
电子商务中密钥使用
对称和非对称综合使用
5.4.3数字签名技术
为什么电子交易中使用数字签名
散列算法是公开的,任何人都可中途拦截交易文件,更改或替换文件内容后生成消息摘要,再与更改或替换的文件一同发送,接收者会发现消息摘要完全匹配而无法防止欺诈的发生。所以还需要对所收到的信息的真实性进行确认。
2.数字签名的含义与原理
1)消息认证技术
2)身份认证技术
3)数字签名的功能
2.数字签名(Digital Signature)的原理
① 被发送文件用安全Hash编码法SHA(Secure Hash Algorithm)编码加密产生128bit的数字摘要;
② 发送方用自己的私用密钥对摘要再加密,这就形成了数字签名;
③ 将原文和加密的摘要同时传给对方;
④ 对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要;
⑤ 将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。如两者一致,则说明传送过程中信息没有被破坏或篡改过。否则不然。
数字签名
Êý×ÖÇ©ÃûÔÀíʾÒâͼ
消息摘要+加密à 数字签名
实现可靠性
要实现保密—— 加密
要实现完整性—— 消息摘要
要实现不可否认性—— 数字签名
例:
交易中采购方向供应商发送经加密和数字签名的订单,说明加密技术和数字签名技术的完整应用。
电子交易信息安全传递过程示意图
5.5安全加密软件PGP 的使用
PGP(Pretty Good Privacy)是一个基于RSA密钥加密体系的供大众使用的加密软件。它不但可以对用户的邮件保密,以防止非授权者阅读,还能对邮件加上数字签名让收信人确信邮件未被第三者篡改,让人们可以安全地通信。
PGP采用了审慎的密钥管理,一种RSA和传统加密的综合算法,用于数字签名的信息摘要算法,加密前压缩等。
由于PGP功能强,速度快,而且源代码全免费,因此,PGP成为最流行的公用密钥加密软件包之一。
1.PGP原理
PGP是基于RAS算法:“大质数不可能因数分解假设”的公用密钥体系。简单地说,就是两个很大的质数,一个公开给世人,另一个不告诉任何人,前者称为“公用密钥”,后者称为“私有密钥”。这两个密钥相互补充,就是说公用密钥的密文可以用私有密钥来解密,反之也然。
2.公用密钥的传送
对PGP来说,公用密钥本来就是公开的,不存在有没有防偷窃的问题,但公用密钥在发布中仍然存在安全性问题,其中最大的漏洞是公用密钥被篡改。
PGP的解决方案采用前面介绍的“证明权威”,每个由其签字的公用密钥都被视为是真的。这样的“权威”适合由非个人控制组织或政府机构充当。
3.私有密钥管理
私有密钥相对于公用密钥而言不存在被篡改的问题,但却存在泄露的问题。对此,PGP的办法是让用户为随机生成的RSA私有密钥指定一个口令,只有通过给出口令才能将私有密钥释放出来使用。用口令加密私有密钥的方法加密程序与PGP本身是一样的。所以,私有密钥的安全性问题实际上首先是对用户口令的保密。
5.5.2 PGP安装
如果本站所转载内容不慎侵犯了您的权益,请与我们联系mail:admin#zuixu.com,我们将会及时处理。如转载本站内容,请注明来源:爱军考网