目录
计算机安全技术概述 1
一、数据加密技术 2
1.加密的概念与基本方法 2
2.现代加密技术 4
二、数字摘要技术 9
1.数据的完整性 9
2.数字摘要原理 9
3.报文摘要算法MD5 10
4.安全散列算法SHA-1 11
5.数字摘要技术在电子商务中的应用 11
三、数字签名技术 12
1.数字签名概述 12
2.数字签名原理 12
四、数字证书 14
1.数字证书 14
2.公钥基础设施、证书机构和证书 16
五、数字信封技术 18
六、数字时间戳技术 19
一、数据加密技术
在当今互联网络蓬勃发展的信息化社会,信息是人们相互联系、相互协作的主要纽带,随之而来的,如何保护信息的安全,则成了一项重要的研究课题。人们普遍认为,使用加密技术是保护信息的最基本的方法,密码学技术是信息安全技术的核心,已被广泛应用到各类交互的信息中。
实质上,密码学不是现代社会才出现的概念,它的起源与发展要追溯到几千年前。密码学的雏形始于古希腊人,他们与敌人作战时,在战场上需要与同伴传递书写有“战争机密”的信件,为了防止信件会落到敌人手中从而泄漏了战略机密,聪明的古希腊战士采取了将信中的内容“加密”的手段,这样,信中所显示的内容就不是真实的要表达的战略内容。这种情况下,即使战争信件被敌人获取,敌人也很难得到信件中所包含的军事机密。尽管当时的加/解密方法非常简单,但是在当时没有任何计算环境的年代,依靠手工破译信中的内容也是一件很困难的事情。
随着时间的演进,密码学经历了“古典密码学”、“近代密码学”和“现代密码学”几个阶段。密码学又演化出两个分支:密码编码学和密码分析学。密码编码学主要研究密码方案的设计,即寻找对信息编码的方法从而实现隐藏信息的一门学问;密码分析学主要是从攻击者的角度来看问题,研究如何破解被隐藏信息的一门学问。两个分支是既相互对立,又相互依存的科学,一方面,密码编码学研究的是隐藏信息的方法,而密码分析学研究的是破解隐藏信息的方法;另一方面,正是密码分析学技术的存在与不断进步,为了不让隐藏信息被破解,密码编码学就需要研究更加完善的密码编码,从而促进密码编码学的发展,与此同时,新的密码的出现又使得攻击者需要寻找新密码分析突破点,故密码编码学也加速了密码分析学的发展。因此两者相辅相成,相互促进,正是密码编码学与密码分析学这种对立统一的关系,推动了密码学自身向前发展。
1.加密的概念与基本方法
(1)加密的概念
加密(Encryption)就是用基于数学算法的程序和加密的密钥对信息进行编码,生成别人难以理解的符号。研究加密的科学叫密码学(Cryptography)。密码学研究信息的加密方法,以便只有接收者和发送者才能复原信息。
加密的目的是对消息或信息进行伪装或改变。原始的、被伪装的消息称作明文p(plaintext),也称信源m(message);通过一个密钥k(key)和加密算法可将明文p变换成一种伪装的形式,称为密文c(cipher text);这种变换过程称为加密E(Encryption)。由密文c恢复出原明文p的过程称为解密D(Decryption)。密钥k的所有可能的取值范围叫做密钥空间。对明文进行加密所采用的一组规则,即加密程序的逻辑称作加密算法。消息传送后的预定对象称作接收者,他对密文进行解密时所采用的一组规则称作解密算法。加密和解密算法的操作通常都是在一组密钥(key)的控制下进行的,分别称作加密密钥和解密密钥。
对密码系统的攻击可分为被动攻击和主动攻击两种。被动攻击是指通过窃取密文试图了解明文或者密钥的内容;主动攻击是指篡改和伪造密文,以达到修改或者伪造明文的目的。被动攻击的主要方法有:通过窃听通信信道上传输的密文,对其进行分析,破译出明文或者密钥;攻击者拥有部分密文和对应的明文,试图找出密钥;攻击者能够选择地收集到任意出现的明文以及与之对应的密文,试图破译密钥。主动攻击的主要方法有:攻击者截取通信信道上传输的密文,然后对其篡改(如添加、删除某些内容)再发送;攻击者拦截传输的密文,并向接收者发送自己伪造的密文;攻击者发送曾经截取的密文,即重放以前的信息。
加密系统运作的示意图如图4-2所示:发送者的原始消息称作明文,通过一个密钥使用某种算法加密后,明文变换成外人无法理解的密文;通过传输信道如计算机网络,把密文送到接收者处。接受方需要使用密钥和解密算法把密文解密,恢复出原先的明文。
图4-2 加密系统运作的示意图
加密程序和加密算法对保护安全至关重要。在美国是由控制加密算法的发布。有些加密算法非常重要,美国甚至禁止公布其细节,也禁止出口这些算法。
加密消息的可破密性取决于加密所用密钥的长度,其单位是位(bit)。40bit的密钥是最低要求,更长的(如128bit)密钥能提供更高程度的加密保障。如果密钥足够长的话,加密信息实际上没有密钥是无法破解的。
(2)加密的方法
下面介绍一些利用密码技术实现加密的方法。替代密码法和转换密码法很简单,也非常容易用计算机处理,所以往往是其他加密方法的基础。
1)替代密码法
替代(permutation)密码法(或叫代换密码法)有单字母密码法和多字母密码法两种。
①单字母加密方法
这种方法是用一个字母代替另一个字母,用一组字母代替另一组字母。用来进行字母转换的方法很多。比如移位映射法、倒映射法、步长映射法等。三种单字母加密方法如下所示。
A)移位映射法:加密字母表,向后移动几个字母后,与原字母表对应。
原字母表 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
加密字母表 | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E |
B)倒映射法:加密字母表,用原字母表的倒排,与原字母表对应。
原字母表 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
加密字母表 | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A |
C)步长映射法:用原字母表(串接n次),每经过m个字符(步长m)提取一个字符,构成加密字母表,与原字母表对应。下面是步长m=3时对应的转换情况:
原字母表 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
加密字母表 | C | F | I | L | O | R | U | X | A | D | G | J | M | P | S | V | Y | B | E | H | K | N | Q | T | W | Z |
A | B | C | …… | X | Y | Z |
B | C | D | …… | Y | Z | A |
C | D | E | …… | Z | A | B |
…… | …… | …… | …… | …… | …… | |
X | Y | Z | …… | U | V | W |
Y | Z | A | …… | V | W | X |
Z | A | B | …… | W | X | Y |
人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由16世纪法国亨利三世王朝的布莱瑟·维吉尼亚发明的,其特点是将26个恺撒密表合成一个。
图4-3 维吉尼亚密表
维吉尼亚密码根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。以上面第一行代表明文字母,左面第一列代表密钥字母。例如采用密钥“YES”对如下明文加密:“HELLO WORLD”。
首先在原文上方重复书写密钥,明文一个字母为H,第一个密钥字母为Y,因此可以找到在密表第Y行第H列中的字母为F,则F为密文,后面的字母依此类推。加密过程如表4-1所示。
表4-1 对照表
密钥 | Y | E | S | Y | E | S | Y | E | S | Y |
明文 | H | E | L | L | O | W | O | R | L | D |
密文 | F | I | D | J | S | O | M | V | D | B |
历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。
表4-2 转换密码示例
2)转换密码法
t | h | e | e | b | |
u | s | i | n | e | s |
s | s | e | c | u | |
r | e | i | s | ||
v | e | r | y | i | |
m | p | o | r | t | a |
n | t |
把明文按密钥长度(本例是6),按原文顺序排列,结果如表4-2所示。
这样就形成了明文长度与密钥长度相同的新的明文格式。明文各列密钥中的各字母及其编号相对应。密钥字母编号按由小到大的顺序,把明文按列重新排列,就形成了密文,结果如下:“tusrvmnhs eepteis ro neiyr eecs t bsu ia”。把密文恢复成明文是不难处理的。
2.现代加密技术
20世纪40年代电子计算机技术的出现,特别是60年代末因特网的出现,给通信以及整个社会带来翻天覆地的巨大影响,也使密码学焕发了巨大的青春活力。因特网设计之初没有考虑网络通信中所涉及的安全性问题,但是随着因特网逐渐普及,其安全问题日益突出。为了安全传递信息,必须先要用加密技术处理信息。因特网技术的快速发展极大促进了近代密码学理论的研究与发展,加密理论得到完善,出现了新的加密方法和密码。
密码按不同的标准或方式可以分为多种形式,如果按密钥的数量和使用方式划分,密码可分为对称密码和非对称密码。
(1)对称密码
1)基本概念
对称密码是加密和解密使用单一的相同密钥的加密制度。对称密码也称常规密钥密码、单钥密码等。对称密码的加密和解密过程使用同一算法。通信时发送方和接受方必须相互交换密钥,当发送方需要发送信息给接受方时,发送方用自己的加密密钥对明文进行加密,而接受方在接收到密文后,用发送方的密钥进行解密得到明文。对称密码的原理如图4-4所示:
图4-4 对称密码示意图
从图4-4中对称密码示意图可知,双方交换数据的时候,还需要有一种非常安全的方法来传输密钥,否则密钥一旦被泄漏,不但加密失去了效果,而且泄漏密钥这一事实可能要等很长时间才会被发现,损失是很难估计的。
常见的单钥密码有流密码和分组密码两种加密法。流密码将明文中的元素(如字母等)逐个地加密。而分组密码是将明文中的元素分组,然后逐组地加密。分组密码中最有名的就是美国的数据加密标准DES和相应的公开加密。
2)数据加密标准DES
①DES算法的基本情况
数据加密标准DES(Data Encryption Standard)是密码学史上非常经典的一个对称密码。美国国家标准局为了能使部门进行信息处理时保证数据的安全,自1971年开始研究数据密码的标准化,并于1972年开始征集满足下列条件的密码方式:密码的规定明确而严谨;能通过破译密钥所需时间与计算量来表示它的安全性;安全性只依赖于密钥的安全性,不依赖算法的安全性。
征集的结果,国家标准局采用了IBM公司提出的研制方案。这个方案于1975年研制成功,是一种传统密码的加密算法,采用多次换位与替代相组合的处理方法。这种算法被美国国家标难局于1977年1月5日正式确定为美国的统一数据加密标难DES。国家标准局公开了DES的加密算法,批准用于非机密单位和商业上的保密通信,同时,IBM公司发布了同意免费使用该算法的声明。随后,在安全性相对要求不是太高的应用场合,DES成了被广泛使用的加密标准。
DES属于典型的分组密码,基本符合分组密码结构的特征。DES将明文信息按比特大小分组,密钥长度也是比特,但是实际使用过程中密钥长度是56比特,另外8比特用作奇偶校验位(即每个字节的最后一位用作奇偶校验)。比特的明文分组在密钥的作用下经过多次的置换和替代组合操作,最终形成攻击者难以破译的比特密文。
②DES算法的原理
DES算法的基本原理是前面所讲的置换和替代操作,但无论是单一的置换还是单一的替代,其安全系数都很低,攻击者通过统计分析等方法很容易攻破密码系统。因此,DES的设计者在加密过程中使用了置换和替代的多次组合过程,并且使用多轮循环加密来扰乱和扩散明文信息。
如图4-5所示,DES算法加解密的基本原理如下:加密过程中,输入bit的明文,首先经过初始矩阵IP置换,然后在56bit的输入密钥控制下,进行16轮迭代加密处理过程,最后通过简单的换位和逆置换算法,得到bit的输出密文;解密的过程与加密过程基本类似,同样需要进行16轮迭代解密处理过程,具体的解密处理过程与加密处理过程顺序完全一样,只是控制每一轮迭代的密钥 与加密过程中的密钥K正好相反,即加密过程的第1轮控制密钥 是解密过程的第16轮密钥 ,即 = ;而解密处理过程的第1轮控制密钥 是加密处理过程的第16轮密钥,即 = 。每一轮迭代过程中使用的密钥K或者K′是由56比特的原始密钥经过变换而得。
③DES算法的安全性
DES算法出现的时候使用的是56比特的密钥,其密钥空间是,大约有7.2×个密钥,如果使用最简单的穷举式攻击方法,一台每微秒(100万分之一秒)完成一次DES解密的机器将要花费μs,即要2284年时间才能完成密钥的搜索,这个代价在上世纪70年代DES密钥提出的时候,几乎是计算不可行的,所以很长一段时间以来,DES被广泛使用在安全级别要求不高的场合。
但是20世纪90年代以来,随着计算能力的提高以及分布式计算的使用,56位的DES算法安全强度越来越低。1997年3月,美国程序员Verser利用因特网的分布式计算,使用穷举法成功找到DES密钥,就表明破解56位的DES密钥已经成为事实,显然,从计算上讲,56位密钥的DES不能再认为是安全的。因此,人们自然而然想到通过增加DES算法密钥的长度来加强其安全性,三重DES加密算法应运而生。3DES算法的密钥扩展到了112bit或者168bit。原则上,当前通过穷举方法破译3DES算法在计算上是不可行的。
图4-5 DES算法基本原理
(2)非对称密码
1)非对称密码的基本概念
非对称密码与对称密码的最大不同点就是:加密密钥和解密密钥不同。在非对称密码中,需要将这两个不同的密钥区分为公开密钥(Public Key,简称PK)和私有密钥(Secrete Key,简称SK)。非对称密码也称作公钥密码、双钥密码。顾名思义,公开密钥就是该密钥信息可以告诉他人,属于公开性质的;私有密钥是指属于某个用户或者实体独自享有的信息,对他人来说该信息是保密的。PK与SK是成对出现的,换句话说,存在一个PK就必然有配对的SK;反过来类似,存在一个SK就存在对应的PK。公钥密码用其中一个密钥进行加密,则另外一个密钥就用于解密,比如PK用作加密时,SK就用于解密。
非对称加密机制的原理如图4-6所示,公钥和私钥是不同的,公钥可以公开地从接收方传送到发送方。使用的时候,发送方用接收方的公钥将信息加密,然后密文通过网络传送给接收方,接收方用自己的私钥将其解密,除了私钥拥有者以外,没有任何人能将其解密。
图4-6 非对称密码机制示意图
自1976年提出公钥密码系统想法以来,密码专家们已设计出多种公钥密码算法,这些密码算法的共同点都是基于某类数学难题,通过找到该类问题的某个单向陷门函数实现对数据的加密和解密。依据所依赖的数学难题类别来分,主要有以下三类系统:基于大整数因子分解问题的公钥系统,典型代表是RSA算法;基于有限域椭圆曲线离散对数问题的公钥系统,典型代表是ECC算法;基于有限域离散对数问题的公钥系统,典型算法是DSA。
2)RSA
①RSA算法的基本原理
1976年Deffie和Hellman提出公钥密码学思想之后,1977年麻省理工学院的Ron Rivest、Adi Shamir和Len Adleman三位学者研制了RSA(Rivest-Shamir-Adleman)公钥密码方案。该方案于1978年首次发表,自此至今,RSA算法是被使用最多的公钥密码方案。它既可用于加密,又可用于数字签名,易懂且易于实现,是目前仍然安全并且逐步被广泛应用的一种。国际上一些标准化组织(ISO,ITU及SWIFT等)均已接受RSA作为标准。Internet中采用的PGP(Pretty Good Privacy)也将RSA作为传送会话密钥和数字签名的标准算法。
RSA密码原理是地选取两个大素数p1和p2(各l00~200位十进制数字),计算:
n = p1×p2
其欧拉函数值为
z =(p1-1)(p2-1)
随机选一整数e(e与z为互质的数—称为公开指数),1≤e<z,(z,e)=1。因而在模z下,e有逆元:
d =(mod z)
即满足
(e×d)mod z =1
d称为秘密指数。
取公钥为(n,e);私钥为(n,d);而p1,p2不再需要,可以销毁。密文c从明文p和公钥(n,e)取得:
c = mod n
利用私钥(n,d)从密文c解密得明文p:
p = mod n
下面以对“hello”加密为例演示RSA加密解密的过程:
假设字母h的代码为8,相应的e、l、l、o分别为:5、12、12、15。
取p1=13,p2=19,则n = p1×p2=247,z =(p1-1)(p2-1)=216;
取e=7,则可以找到d=31满足(e×d)mod z =1。
相应的,公钥是(n,e)=(247,7);私钥是(n,d)=(247,31)
则加密、解密的过程如下表所示。需要注意的是,在实际使用中,p1和p2不是2位而是100位到200位的整数。
表4-3 RSA加密解密示例
加密过程
使用公钥(247,7) | 密文c = mod n | 解密过程 使用私钥(247,31) | ||||
原文 | 明文p | (近似值) | p =mod n | 原文 | ||
h | 8 | 2097152 | 122 | 4.75E+ | 8 | h |
e | 5 | 78125 | 73 | 5.79E+57 | 5 | e |
l | 12 | 35831808 | 12 | 2.84E+33 | 12 | l |
l | 12 | 35831808 | 12 | 2.84E+33 | 12 | l |
o | 15 | 170859375 | 2.69E+60 | 15 | o |
与对称密码相比,非对称密码也就是双钥密码有许多优点:第一,公开密钥的发布可在各种公开场合,它没有特殊的发布要求;第二,在多人之间进行保密信息传输所需的密钥组合数量很小。在N个人彼此之间传输保密信息,只需N对密钥,远远低于单钥加密系统需要的数量;第三,双钥密码可用于数字签名:将电子文档签名后再发给别人,而签名者无法否认。采用双钥技术,除签名者外,其他人无法以电子方式进行相同的签名,而且签名者事后也不能否认曾以电子方式签过的文档。至今还没有其他的方法可以实现电子商务中必须的数字签名。
RSA算法的安全性基于大整数因子分解的困难性,即给定大整数n,将n分解为两个素数因子p与q,在数学上已证明是难题,至今没有有效的方法予以解决。RSA密码方案的优点在于原理简单、易于使用,因此,许多使用公钥密码方案的系统都会选用RSA算法。随着技术的进步,大整数的分解算法和计算能力在不断提高,计算所需的硬件费用在不断下降。110位十进制数字早已能分解。Rivest等最初悬赏RSA-129(429bit),分解它所需的计算量为4600MIPS年(即以1000000次/s运算速度的计算机需时4600年)。RSA-129先后由43个国家600多人参加,用1600台计算机,通过Internet网,用时8个月,于1994年4月2日分解出两个因子。因此,以后要用RSA,需要采用足够大的整数。512bit(154位)、6bit(200位)、1024bit的RSA加密已有实用产品。
RSA的一个缺点是的性能比较低。因为算法中使用的模数n以及p与q都是大整数,因此无论是用硬件实现还是软件实现效率都比较低,其中硬件实现的效率是DES的1/1000,软件实现的效率是DES的1/100。由此可见,RSA不适用于对长的明文信息加密,它常常与对称密码结合使用,RSA用来加密通信双方的会话密钥,对称密码(如DES)用来加密传输的报文。实际应用中,在不影响安全性的前提条件下,为了提高加解密的运算速度,通常选择的加密密钥(即公钥)比较小。
随着计算机处理速度的提高以及分布式网络计算环境的产生,为了安全起见,RSA方案中要求模数n越来越大。当前,RSA密钥长度要求大于1024比特才有安全保障,在安全要求比较高的等部门,需要采用2048比特长的密钥。密钥长度的增加提高了安全性,但是进一步影响了算法的性能,RSA算法加解密的速度会越来越慢,对系统的要求较高,因此,在选择RSA密钥时,不能只考虑安全性,单纯地扩大RSA密钥长度,在系统的安全性和性能之间需要找到一个平衡点。
二、数字摘要技术
1.数据的完整性
(1)什么是数据的完整性
数据完整性(integrity)是指数据处于“一种未受损的状态”和“保持完整或未被分割的品质或状态”。保持数据完整性是指在有自然或人为干扰的条件下,网络系统保持发送方和接收方传送数据一致性的能力,是保护数据不被未授权者修改、建立、嵌入、删除及重复传送,或防止由于其他原因使原始数据被更改。在存储时,要防止非法篡改和防止网站上的信息被破坏;在传输过程中,如果接收端收到的信息与发送的信息完全一样,说明在传输过程中信息没有遭到破坏,具有完整性。
加密的信息在传输过程,虽能保证其机密性,但并不能保证不被修改。数据完整性和机密性从保护数据这个目的来说是紧密相连的两种要求。
(2)数据完整性被破坏会带来严重的后果
在电子商务环境下,大量商业数据在互联网上传递,数据完整性的破坏会带来严重的后果:
1)造成直接的经济损失。如价格、订单数量等被改变。
2)影响一个供应链上许多厂商的经济活动。为了大幅度的提高经营效率,创造出更高的利润,企业对企业(B to B)的电子商务可将不同制造商、供应商、批发商和零售商等商业贸易之间各自的生产管理、物料需求、销售管理、仓库管理和商业POS系统有机的结合起来。在运输行业,可以将货运、船运、空运、陆路运输、外轮代理公司、港口码头、仓库、保险公司等企业的应用系统联系在一起。因而,一个环节上数据完整性被破坏将使供应链上一连串厂商的经济活动受影响。
3)可能造成过不了“关”。有的电子商务是与海关、商检、卫检联系的,错误的数据将使一批货物挡在“关口”之外。
4)会牵涉到经济案件中。与税务、银行、保险等贸易链路相联的电子商务,则会因数据完整性被破坏牵连到漏税、诈骗等经济案件中。
5)造成电子商务经营的混乱与不信任。
(3)保证数据完整性的方法
从技术上说,散列函数(Hash Function)是实现数据完整性的主要手段。实际中也常常借助于纠错检错技术来保证消息的完整性。由散列函数计算出消息摘要,再把它附加到这条消息上,就可以判断此消息有没有被篡改。应用散列函数有几种基本方式。为了保证消息的完整性,除了使用散列函数外,还可能与加密及数字签名结合使用。
2.数字摘要原理
数字摘要,也称报文摘要(Message Digest),是指根据报文推导出来的能反应报文特征、且具有固定长度的特定信息。由明文推导出报文摘要是由散列函数完成的,散列函数类似于“数据结构”中所讲的哈希函数,输入变长的信息,该函数能够产生定长的输出,因此在网络安全中,有时直接称散列函数为Hash函数。
设H是散列函数,m是报文,h是报文摘要,则h=H(m)。m的长度远远大于h,一般来说,h的长度只有几百个比特,常见的报文摘要是128bit和160bit。因为输入的报文长度大于输出摘要的长度,因此会有不同的输入报文产生相同的报文摘要可能。但是根据报文摘要的定义,是不允许存在这种情况的,因为一旦发生,那么就有可能两个不同的原始报文产生相同的报文摘要,这样会导致攻击者修改后的报文与原报文产生相同的摘要,接收者将无法从报文摘要推断出该报文是否真实完整。
因此为避免上述情况,计算报文摘要的散列函数必须满足一定的要求:对于任意一个报文,不论其长度多少,都具有报文摘要,并且报文摘要值惟一;散列函数具有单向性,即该函数的逆过程非常难以求解,因此,散列函数通常也称为单向散列函数;报文摘要具有差错控制能力,报文中任意一个比特或者多个比特发生改动都会导致摘要发生变化,因此报文摘要通常也称为数字指纹,具有惟一性、不变性。
密码学经过多年的发展,数字摘要应用较多的经典散列算法包括MD5、SHA-1。
3.报文摘要算法MD5
(1)MD5算法概述
报文摘要算法(MD5:Message Digestalgorithm 5)是麻省理工学院的密码学专家R. Rivest教授设计的,Rivest也是公钥密码RSA算法的提出者之一。RSA的出现使得数字签名成为可能,但是RSA算法的计算效率低,在报文内容无需保密但需要验证的场合,该算法效率太低,大大影响系统的性能,在这种情况下,Rivest教授提出了报文摘要算法MD。
最早提出的MD不是现在的MD5,MD5是经过MD算法的几代发展,以及对其多次修改的基础上形成的。第一代MD算法因为用于商业化的安全产品,Rivest没有公开发表它,随后他提出了MD2算法,MD2的计算效率比同期出现的其他报文摘要算法低,于是,Rivest又将MD2改进为MD4,但是在使用中,MD4暴露出较多弱点,安全强度不高,最终,从安全的角度考虑,Rivest在MD4的基础上设计出报文摘要算法MD5。
(2)MD5算法的基本原理
MD5算法输入可以是任意长度的报文,输出是固定长度的128bit报文,该输出报文就是MD5报文摘要。与分组密码每次对固定长度的分组报文进行加解密类似,比如DES算法每次处理bit的报文,MD5也是按512bit分组处理输入的报文。
通常输入的报文不可能恰好是512bit的倍数,算法通过填充比特的办法来满足要求,使得最终的报文长度是512bit的倍数。填充后报文分为长度为512bit的若干分组,每次处理一个分组时,又将512bit信息划分为16个32bit子分组,算法通过设计的4个扰乱函数,经过一系列处理,最终输出4个32bit数据块,将这四部分数据连接在一起形成128bit的结果,该结果放置在4个寄存器中,作为下一个分组进行计算的输入参数。也就是说,各分组处理时输入参数是:512bit分组报文以及4个寄存器中存放的值。如此依次进行各分组的处理。当最后一个分组处理完成后,寄存器中存放的结果就是算法的计算结果,即所得的MD5报文摘要。
(3)MD5算法安全性分析
自从Rivest提出报文摘要算法MD5以来,由于MD5算法具有描述简单、易于实现的特点,被广泛用于各种数字签名以及报文验证。但是MD5算法是否真的具有很高强度的安全性,多年来该问题一直受到密码学研究人员的关注,实质上,MD5的安全性也是依赖于数学难题的计算不可行,这一点与公钥密码完全类似,在1991年MD5首度提出的时候,Rivest曾估计寻找具有相同摘要值的两个报文需要数量级的时间,因此,很长一段时间以来,MD5一度曾被认为是比较安全的。
但是2004年我国山东大学的王小云教授找到了破译MD5算法的方法,能在很短的时间内找出具有相同摘要的两个不同报文。MD5的破译表明许多曾经应用MD5的系统将不再具有安全性,假设使用MD5算法对电子合同做数字签名,MD5的破译表明当在网络上使用数字签名签署一份电子合同之后,还可以伪造出另外一份签名相同但是合同内容不同的电子合同,这样将无法辨认电子合同的真假性,给网络攻击者有可乘之机,因此也就意味着使用MD5算法的电子签名系统不再安全。除了MD5,王教授还指出另外3个知名的散列函数HAVAL-128、MD4和RIPEMD也能在短时间内破译。当前,安全散列算法SHA-1被认为是安全性比较高的散列算法。
4.安全散列算法SHA-1
由美国国家标准和技术协会提出的安全散列算法SHA-1,基于MD4算法模型设计。SHA-1算法对输入报文长度有,不能超过比特长度,输出的报文摘要是160比特。SHA-1与MD5两个散列算法都是从MD4的基础上发展而来的,因此报文摘要的计算过程非常相似,即将报文按512比特分组,每次处理一个分组,最后一个分组的输出就是所得报文摘要。
MD5算法中,每一个分组输出结果只有128比特,因此使用了4个寄存器,每个寄存器存放32比特的数据,由此类推,SHA-1算法每一分组输出结果是160比特,因此需要5个寄存器,寄存器的作用与MD5一样,即处理前,存放初始化参数;处理时,存放报文摘要的中间结果;处理后存放最终报文摘要值。
SHA-1中也定义了4个扰乱函数,算法的核心是在扰乱函数的作用下,利用四轮循环处理分组中的512比特报文。每一轮中,在一个扰乱函数的控制下,对512比特的16个子分组报文进行20步操作处理,最后存放在五个寄存器中的值便是计算得到的报文摘要。
SHA-1与MD5都是基于MD4算法模型设计的,两者算法结构类似,但是SHA-1的报文摘要比MD5多32比特,因此,其安全强度大大提高,另外,由于SHA-1的设计者没有公开设计标准,其密码分析的难度比MD5大。MD5算法与SHA-1的比较如表4-4所示。当前,还没有任何关于SHA-1算法发现报文冲突碰撞的报告,王小云教授等密码专家只是说明了SHA-0算法能够发现报文冲突。因此,在电子商务等安全强度要求比较高的环境,使用的散列算法大多选择SHA-1。
表4-4 MD5和SHA-1的比较
算法
比较 | MD5 | SHA-1 |
摘要长度 | 128bit | 160bit |
输入报文长度 | 1bit-无穷大 | 1bit-bit |
数据格式 | Little-endian | Big-endian |
分组长度 | 512bit | 512bit |
循环步骤 | 80 |
(1)报文完整性的验证
散列函数提供了输入报文与输出摘要之间的特殊的关系,对输入报文做的任何改变,其输出都会发生变化,因此在需要验证报文在传输时是否发生篡改的场合,可以通过验证报文散列函数的输出值是否发生变化,以代替对大量输入报文的验证。在电子商务中,报文的验证非常重要,例如,电子订单传递过程中,为了防止订单在传递过程中一些重要的数据被篡改,接收者在收到订单之后,必须要验证订单数据的完整性。
在计算报文摘要时,除了报文本身之外,需要附加通信双方所共享的信息,比如共享密钥,该密钥并不用来加密信息,而是在计算报文摘要时,作为一个附加的信息并置在报文的头部或尾部。共享密钥并不被传递。如果没有共享信息,则攻击者在截获并修改报文之后,因散列算法本身是公开的,他就可以重新计算报文摘要,附加在修改的报文后面,这样,接收者验证报文摘要时就无法区分报文是否完整,因此直接计算报文摘要是没有实际意义的。如果有共享信息,因为攻击者不知道共享密钥,所以他无法重新计算修改后的报文摘要,通信的接收方可以根据共享密钥以及收到的报文重新计算报文摘要,并与收到的报文摘要进行比较,从而验证报文的完整性。
(2)双向身份认证
使用数字摘要也可以用来验证身份。网上交易双方事先已经共享了各自的公开密钥。当需要进行身份验证时,他们分别向对方发送对方公开密钥的数字摘要。用收到的数字摘要和自己计算的数字摘要进行对比,就可以测算出对方是否是共享密钥的拥有者。通信双方的共享密钥不是直接传输,而是通过报文摘要的方式传给对方,根据计算报文摘要的散列函数的特征,网络上的攻击者从报文摘要推导出共享密钥的概率是非常小的。
(3)辅助计算报文的数字签名
为了保证报文的确是由所信任的发送方发送的,通常需要发送报文的一方在发送报文时附加电子签名信息,以便接收方能够验证,最简单的做法就是计算报文的数字签名,但是报文的内容通常都比较庞大,如果对整个报文计算数字签名,不但会影响发送与接收双方的性能效率,而且计算出来的签名也比较的大,占用的实际发送报文的比例很多。实际上这个签名只要能反应发送方的特征,同时又能反应报文的特性即可,附加在报文后面的签名占据整个报文的比例应该尽可能的小。报文摘要恰好能反应报文的特征,如果只对报文摘要计算数字签名,因为报文摘要具有固定的长度,且比较小,这样容易计算数字签名,且能满足电子商务应用的要求。
三、数字签名技术
签名在人们日常生活中随处可见,例如,银行办理账单、签收特快信件等场合,都需要当事人签名。无论在何时,为何事签名,签名的方式都是手工签名或者盖章,签名的目的也是一样的,表明自己已经做了或者已经认可某事,这样在日后遇到问题时能够找到相应的证据。
1.数字签名概述
在传统的商务活动中,为了保证交易过实可靠,通常有一份书面合同或者文件,交易双方达成协议后,负责人或者法人代表分别在合同上签名,然后双方保存带有签名的合同,以后遇到什么问题或者争议时,双方能够根据合同的条款行事,该合同具有法律效应,引起纠纷的时候可通过裁决。电子商务的交易环境是虚拟的网络世界,网络中存在更多不安全的因素,为了保证交易安全可靠,通常通信双方在交易之前,也需要签订电子合同或者文件,这些电子合同或文件是以网络报文的方式传递的,因此传统的手工签名或者盖章的方式是不可行的,必须寻找新的技术方案解决该问题,这就是采取电子签名的方式。电子签名起到与手工签名同等作用,目的是保证交易的安全性、真实性与不可抵赖性,电子签名需要以电子技术的手段来保证。
实现电子签名的技术手段有很多种,当前,在实际中普遍使用的是数字签名技术,数字签名是目前电子商务中技术最成熟,应用最广泛的一种电子签名方法。
2.数字签名原理
ISO对数字签名是这样定义的:数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(如接收者)伪造。通俗点讲,数字签名是指信息的发送者通过某种签名方法产生的别人无法伪造的一段“特殊报文”,该“特殊报文”就是签名,表明信息是由声称的发送方所发送的,且具有惟一性,他人不可仿造。数字签名与手工签名一样,签名主要起到认证、核准和生效的作用。
(1)数字签名功能
手工签名是确认书面文件真实可靠的一种手段,数字签名是确认电子商务中传输的电子文件如订单、合同真实可靠的一种手段。数字签名的功能主要体现在三点:
1)接收方能够确认报文的来源真实,即能够验证报文的确是由声称的发送方所发送的。例如,在传输电子订单时,为了防止有冒充的一方发送虚假的订单,必须要确保该订单来源可靠,从技术角度来看,若要验证订单不是冒充的第三者发送的,可以通过数字签名技术来实现。
2)发送方对自己发送的报文不能否认。在传统的交易过程中,偶尔会出现交易的某一方抵赖自己曾经所做的操作,如果出现这种现象,另一方可通过其留下的签名凭证反驳。同样,在电子商务交易时,要防止交易中出现抵赖行为,即否认自己发送过某报文,需要数字签名技术解决该问题。数字签名意味着保留发送方发送报文的证据,证实他已经发生了某种行为。
3)验证报文在传输过程中是否保持完整性。完整性表示报文在传输时未被破坏或者篡改,验证数字签名是否正确的同时,能够验证报文在传输过程中是否保持了完整性。
(2)数字签名系统构成
数字签名系统包括签名算法、验证算法、签名方、验证方和签名关键值。实际上,数字签名技术是密码学的另外一种应用,因此密码系统的5个元素就是数字签名系统的构成要素,其中签名算法对应加密算法、验证算法对应解密算法、签名方与验证方分别对应报文的发送方与接收方,签名关键值是指能够标志签名具有惟一性的关键因素,对应密码系统中的密钥。通常情况下,数字签名技术大多采用公钥密码技术实现,因为公钥密码系统中的私钥具有惟一性,可以唯一地标识签名。
在讲述密码算法时,着重强调的是利用密码学原理实现报文的加密与解密,完成报文的隐藏功能;数字签名同样需要利用密码系统的各种加解密算法,是密码学的另外一种应用。但是数字签名与报文加解密之间没有必然的联系,彼此是完全的,既可以对报文作数字签名,又可以对报文加密,两者同时进行;也可以任选其一,只签名不加密,或者只加密不签名。从某种程度上来说,要防止网络中的被动攻击(例如窃听)需要对报文加解密,要防止网络中的主动攻击(例如篡改)可以通过数字签名技术实现。
(3)公钥密码实现数字签名的原理
公钥密码中存在两个密钥:公钥和私钥,其中私钥是只为某个特定实体所拥有的,他人不可知,基于公钥密码的数字签名技术利用私钥的惟一特性。发送信息的签名方首先利用私钥对报文或者报文摘要进行加密,加密后得到的密文作为签名,连同相应的报文一起发送给接收方。接收方利用发送方的公钥对签名解密,并将得到结果与发送的报文或者报文摘要做比较,以确认签名的真实性。由于发送方的私钥不为他人所知,因此第三方无法伪造签名,私钥的惟一性保证了签名的惟一性,公钥是公开的,因此接收方只要知道发送方的公钥,就可以验证签名。为了保证公钥/私钥的可靠性,需要第三方仲裁机构参与,该仲裁结构具有公正合法性,以便发生问题或者争执时,提供相应的证据,做出裁决,例如认证中心(CA)。
如前面所述,数字签名通常不是直接对整个报文签名,通常是对报文摘要签名。具体的签名过程以及验证签名过程如图4-7所示。
图4-7 数字签名原理
四、数字证书
利用公钥密码实现的数字签名技术,为电子交易的顺利开展提供了保障。签名的信息主要是由用户的私钥决定,那么由此会产生另外一个问题,即用户的私钥是如何产生的。如果让用户自己生成,那么任何一个用户无论他是合法实体还是非法实体,都能产生自己的公钥和私钥。这样做的结果,一是无法区分用户是否合法以及真实的身份,二是用户完全可以否认自己拥有这个私钥。因此,要想让交易在公平公正的环境下进行,必须要有第三方仲裁机构参与,该机构可以为用户颁发“身份标志”,即数字证书,数字证书是所有参与电子交易用户的“身份证”,它将用户的身份与密钥绑定在一起。
1.数字证书
(1)数字证书概念
数字证书是标志网络用户身份信息的一系列数据,用来在网络通信中识别通信对象的身份。即要在Internet上解决“我是谁”的问题,就如同现实中每一个人都要拥有一张证明个人身份的身份证一样,以表明自己的身份。
数字证书是由权威公正的第三方机构即认证中心CA(Certification Authority)签发的,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。目前,最常用的数字证书是X.509证书。
(2)数字证书的类型
1)个人证书(客户证书)
这种证书证实客户(例如一个使用Netscape Navigator的个人)身份和密钥所有权。在某些情况下,服务器可能在建立SSL(SSL——提供网上购物的安全协议)连接时,要求客户证书来证实客户身份。为了取得个人证书,用户可向某一CA申请,CA经过审查后决定是否向用户颁发证书。
2)服务器证书(站点证书)
这种证书证实服务器的身份和公钥。当与客户建立SSL连接时,服务器将它的证书传送给客户。当客户收到证书后,客户检查证书是由哪家CA发行的,这家CA是否被客户所信任。如果客户不信任这家CA,浏览器会提示用户接受或拒绝这个证书。
在Internet Explorer里,用户可以选择接受某一站点的证书。如果用户接受该证书,这个站点的证书被存在用户电脑的数据库里。用户也可以通过浏览器查看这些证书。如图4-8和图4-9所示。
3)CA证书
这种证书证实CA身份和CA的签名密钥(签名密钥被用来签署它所发行的证书)。在Internet Explorer里,用户可以看到浏览器所接受的CA证书,并可以对它们进行导入、导出、删除等操作。如图4-10所示。
(3)数字证书的内容
证书的格式定义在ITU-T Rec.X.509标准里。根据这项标准,证书包括申请证书个人的信息和发行证书的CA信息。
证书由以下两部分组成:
1)证书数据的组成
①版本信息Version。用来区分X.509证书格式的版本;
②证书序列号Serial number。每一个由CA发行的证书必须有一个惟一的序列号,用于识别证书;
③CA所使用的签名算法Algorithm Identifier。CA的双钥加密算法;
④发证者的识别码Issuer Unique Identifier。发此证书的CA识别码;
⑤有效使用期限Period of Validity。本证书的有效起始日期和结束日期;
⑥证书主题名称;
⑦公钥信息Public key Information。此双钥加密的算法名称、公钥的位字符串表示(只适用于RSA加密);
⑧使用者Subject:此公钥的所有者;
⑨使用者识别码Subject Unique Identifier;
⑩额外的特别扩展信息。
2)发行证书的CA签名与签名算法
证书第二部分包括发行证书的CA签名和用来生成数字签名的签名算法。任何人收到证书后都能使用签名算法来验证证书是否是由CA的签名密钥签署的。
(4)数字证书的有效性
只有下列条件都为真时,证书才有效:
1)证书没有过期。所有的证书都有一个期限,可以检查证书的期限来决定证书是否有效。
2)密钥没有被修改。如果密钥被修改,就不应该再继续使用。密钥对应的证书就应当收回。
3)CA负责回收证书,并发行无效证书清单。证书必须不在CA发行的无效证书清单中。
(5)数字证书的使用
证书帮助证实个人身份。当把证书传送给某人,并将消息用自己的密钥加密,接收者就能用证书里的公钥来证实发送者的身份。
(6)数字证书的发行
传统的身份证明一般是通过检验“物理物品”的有效性来确认持有者的身份。这类“物理物品”可以是身份证、护照、工作证、信用卡、驾驶执照、徽章等,上面往往含有与个人真实身份相关的,易于识别的照片、指纹、视网膜等,并具有权威机构如机关、部或局等发证机构的盖章。
在电子商务中,要把传统的身份证书改用数字形式,以便在网络社会上使用。在电子商务中,信息业务是面向全球的,要求验证的对象集合也迅速加大,因而大大增加了身份验证的复杂性和实现的困难性。
证书由发证机构CA发行。这些机构负责在发行证书前证实个人身份和密钥所有权,负责数字证书的发行,如果由于它签发的证书造成不恰当的信任关系,该组织需要负责任。
完整的CA系统并不是只有一个认证中心,它是由多个认证中心共同组成的,各认证中心形成层次关系,最顶层的认证中心是根CA,下面级联多个子CA中心,各子CA中心同时又可携带下一层CA,这样形成一个树状CA结构。比如根CA可以是国家某部门设立的电子商务认证中心,其下一层是各省CA认证中心,各省根据具体情况还可以发展市级CA(如图4-11所示)。每一个CA中心都有属于自己的CA证书,根CA证书是由其自身颁发的,然后每一层CA只向其下一级CA颁发数字证书,并且不能越层颁发证书。例如下图所示,根CA向各省CA中心颁发数字证书,并不能给各城市CA中心颁发证书,最终用户的证书是由其所属市的CA所颁发的。
数字证书在保证电子商务安全中是不可缺少和不可替代的。它的使用面很广,重要的安全电子交易协议(SET)、电子邮件安全协议(Secure MINE)都以数字证书为基础。
2.公钥基础设施、证书机构和证书
本部分内容除了介绍公钥基础设施、认证系统的概念外,还简介几个我国电子商务认证中心网站,以便读者参考应用。
(1)公钥基础设施
数字证书能够标识通信对象的身份,但是除了颁发数字证书之外,还需要管理数字证书,例如当用户的数字证书丢失之后的处理。平时,公民身份证丢失了,需要到当地的办理挂失、补办等手续。同样,对于网络上的数字证书也需要有一套完整的管理机构,这就是公钥基础设施(Public Key Infrastructure,PKI)。
发展电子商务的重要基础之一是在推广公钥密码的同时,建立相应的公钥基础设施,从技术上和法律上来支持有关业务:如多证书机构、不同证书、不同的证实链、不同管理协议等。
1)PKI的组成
一般来说,PKI系统必须具有权威认证中心CA、注册机构RA、数字证书库、密钥备份及恢复系统、证书撤销系统等基本构成部分。
①认证中心(Certificate Authority,CA)。CA是PKI的核心组件,它必须具备权威性、公正性的特征。CA负责签发证书、验证证书、管理已颁发证书,以及制定和具体步骤来验证、识别用户身份。
②数字证书注册审批机构(Registry Authority,RA)。RA系统是CA系统的延伸,它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。
③数字证书库。证书库必须使用某种稳定可靠的、规模可扩充的在线资料库,以便用户能找到安全通信需要的证书信息或证书撤消信息。实现证书库的方式有多种,包括X.500、轻量级目录访问协议(Light Directory Access Protocol,LDAP)、Web服务器、FTP服务器等。大型的企业级PKI一般使用X.500目录服务和轻量级目录访问协议LDAP。
④密钥备份及恢复系统。如果用户丢失了用于解密数据的密钥,则数据将无法被解密,这将造成合法数据丢失。为避免这种情况的发生,PKI提供备份与恢复密钥的机制。
⑤证书撤销系统。证书撤销处理系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样,证书有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。被撤消的证书存放在证书撤消列表(Certificate Revocation List,CRL)。PKI端实体及PKI管理操作关系如图4-12所示。
2)PKI的主要功能
PKI最主要的作用就是颁发证书、撤销证书、创建和发布CRL、存储和检索证书及CRL以及密钥生存周期的管理。
①发布证书。用户申请证书并通过验证之后,证书管理中心需要为该用户创建证书,并用自己的私钥签名数字证书,以保证证书在传递、存储过程中如果被篡改就会被发现。具体创建的证书信息内容与格式类似于上面所讲的X.509v3证书。CA创建证书之后,发布证书包括将证书返回给申请者,同时将证书存入数字证书库。
②撤销证书。当证书中的认可事实发生变化时,发布者就必须以某种机制撤销以前发出的,但现在已不再有效的证书。这种情况是经常存在的,如公司的雇员辞职或更改了名字,私钥被泄漏,则原来发给他的证书必须被撤销,另外,用户自己丢失了私钥,也需要主动向CA汇报撤销他的证书。
③密钥的生存周期管理。密钥是用来加密和验证的关键元素,密钥管理涉及:密钥的更新,即每隔固定的一段时间更新或者在用户的实时请求下更新密钥;备份密钥,即为了防止密钥丢失造成加密信息不能还原,CA、RA或专门的密钥备份系统需要做密钥备份,以便在用户需要时恢复密钥;归档密钥,如当一个公司的雇员辞职时,网络管理员一方面要使该加密密钥无效,不能再用它加密信息,另一方面为了访问以前加密的文件等信息需要保留该密钥。
(2)证书的
证书由一组规定组成,用以指明证书用于特定社团或具有相同安全要求的应用类型。证书由发证机构和证书用户共同认可,并且要作为对象标识符进行注册,并公开发布。对象标识符在通信协议中进行传递,作为使用该证书的标识。
公钥基础设施可以设计成支持不同的证书,以满足不同应用、不同需求和不同可信赖模型,个人持有的证书可按一种或几种发放。
(3)我国电子商务认证中心
随着电子商务在我国的发展,我国也出现了很多相应的电子商务认证中心,并开展一定的业务。这些电子商务认证中心数量众多,运作的规范性还有待提高。2005年以来,我国相继出台了包括《电子认证服务管理办法》、《电子认证服务密码管理办法》和《电子认证业务规则规范(试行)》等一批配套的规章规范,从制度上有力的保障了电子商务认证行业的发展。我国的电子商务认证中心主要有两种类型,一种是企业、机构为提高自身业务运作的安全性而建立的认证中心。这类CA证书的发放范围比较小,如各商业银行的CA中心,它们只对自己的储户发放证书,目的是提高自身网上银行的安全性。另一种就是面向社会公众提供服务的认证中心。这类认证中心在我国比较有影响力的有以下几家:
1)中国金融认证中心(CFCA)(www.cfca.com.cn)。
提供的产品和服务包括:个人证书、企业证书、Web Server证书、手机证书、安全电子邮件证书、VPN证书;RA建设;SSL 安全代理软件;时间戳服务;安全电子印章;动态口令平台;全球服务器证书(SSL证书);反欺诈全球服务器证书(EV SSL证书)等。
2)北京数字证书认证中心(www.bjca.org.cn)
提供的产品和服务包括:个人数字证书、单位数字证书、全球服务器证书、代码签名证书、信天行数字证书、PKI建设解决方案、多应用系统单点登录、网上银行安全解决方案、网上报税安全解决方案、安全服务和CA中心运营咨询等。
3)上海电子商务CA认证中心(www.sheca.com)
提供的产品和服务包括:个人证书、单位证书、服务器证书、代码签名证书、和VPN证书等。
4)广东省电子商务认证中心(www.cnca.net)
提供的产品和服务包括:全球服务器证书、个人证书、单位证书、服务器证书、安全电子邮件证书和代码签名证书等。
5)北京国富安电子商务安全认证有限公司(www.gfapki.com.cn)
提供的产品和服务包括:全球化数字证书;安全CA认证系统建设、维护、管理、运营、电子政务和电子商务的计算机安全系列产品、整体安全平台;网上银行、网上证券、安全VPN、办公自动化安全系统、Web系统信息安全、企业专用证书服务管理系统的建设及解决方案;特殊专用计算机(如公司高层领导PC、财务PC等)安全产品;安全网络系统评估、集成、咨询、设计、建设和服务等。
6)天威诚信数字认证中心(www.itrus.com.cn)
提供的产品和服务包括:电子签名信任服务、安全电子公文服务、可信身份认证服务、安全电子邮件服务、个人证书、企业证书和设备证书等。
五、数字信封技术
数字信封技术用来保证数据在传输过程中的安全。传统的对称加密方法的算法运算效率高,但是密钥不适合通过公共网络传递;而公开密钥加密算法的密钥传递简单,但是公开密钥加密算法的运算效率低,并要求被加密的信息块长度要小于密钥的长度。数字信封技术将传统的对称加密方法与公钥密码系统结合起来。
数字信封技术结合了两种加密技术的优点,克服了对称加密方法中密钥分发困难,以及公钥密码系统中加密所需时间较长的缺点。数字信封技术利用了对称加密方法的高效性与公钥密码系统的灵活性。保证了信息在传输过程中的安全性。图4-13给出了数字信封的工作原理。
在数字信封技术中,信息主要通过对称加密机制进行加密和解密,但对称加密机制需要双方共享密钥(K)。直接进行密钥的传输无法保证安全性,所以使用非对称加密机制加密这个密钥并传输。具体过程如下:
①信息接收方首先共享自己的非对称加密机制的公开密钥(PK)给信息发送方;
②信息发送方用这个公开密钥(PK)加密对称加密机制的密钥(K),然后把关于密钥的密文传给接收方;
③接收方受到密文后用自己的私有密钥(SK)解密,非对称加密/解密过程结束。接收方这次解密的结果是双方共享的对称加密机制的密钥(K);
④发送方把真正要传输的消息的明文用对称加密机制的密钥(K)加密,并把密文传给接收方;
⑤接收方使用刚才得到的密钥(K)解密,得到的是消息的明文。
六、数字时间戳技术
在电子交易中,需要对交易文件的日期和时间信息采取安全措施,而数字时间戳服务DTS(Digital Time-Stamp Service)就能为电子文件发表时间提供安全保护。数字时间戳服务是网上安全服务项目,由专门机构提供,数字时间戳是一个经加密后形成的证书文件,它包含三个部分:相联系文件的摘要;DTS机构收到文件的日期和时间;DTS机构的数字签名。
数字时间戳产生的过程为:用户首先将需要加数字时间戳的文件用Hash编码加密形成消息摘要,然后将该摘要发送到DTS机构,该机构对收到的文件摘要加入日期和时间信息后,再对该文件加密 (数字签名),然后送回用户。要注意的是,书面签署文件的时间是由当事人自己填写的,而数字时间戳则不然,它是由第三方——认证单位,数字时间戳服务机构加上的,以其收到文件的时间为依据。因此,时间戳还可以扩展应用到作为科学发明、商标注册、专利登记、文学出版等事项的时间认证上。
在版权纠纷中,谁能提供著作的最早拷贝,谁就会赢得这场官司。在电子商务时代,如何对文件加盖不可篡改的数字时戳是一项重要的安全技术。数字时戳应当保证:数据文件加盖的时戳与存储数据的物理媒体无关,即时戳信息与物理媒体的性;对已加盖时戳的文件不能做丝毫改动——时戳的完整性;要想对某个文件加盖与当前日期和时间不同的时戳是不可能的,即认证性。