2022年2022年计算机安全技术概述 .pdf
计算机安全技术概述目录计算机安全技术概述 . 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 页,共 20 页 - - - - - - - - - 一、数据加密技术在当今互联网络蓬勃发展的信息化社会,信息是人们相互联系、相互协作的主要纽带,随之而来的, 如何保护信息的安全,则成了一项重要的研究课题。人们普遍认为,使用加密技术是保护信息的最基本的方法,密码学技术是信息安全技术的核心,已被广泛应用到各类交互的信息中。实质上, 密码学不是现代社会才出现的概念,它的起源与发展要追溯到几千年前。密码学的雏形始于古希腊人,他们与敌人作战时,在战场上需要与同伴传递书写有“战争机密”的信件, 为了防止信件会落到敌人手中从而泄漏了战略机密,聪明的古希腊战士采取了将信中的内容“加密”的手段,这样,信中所显示的内容就不是真实的要表达的战略内容。这种情况下, 即使战争信件被敌人获取,敌人也很难得到信件中所包含的军事机密。尽管当时的加/解密方法非常简单,但是在当时没有任何计算环境的年代,依靠手工破译信中的内容也是一件很困难的事情。随着时间的演进,密码学经历了“古典密码学”、 “近代密码学”和“现代密码学”几个阶段。 密码学又演化出两个分支:密码编码学和密码分析学。密码编码学主要研究密码方案的设计, 即寻找对信息编码的方法从而实现隐藏信息的一门学问;密码分析学主要是从攻击者的角度来看问题,研究如何破解被隐藏信息的一门学问。两个分支是既相互对立,又相互依存的科学, 一方面, 密码编码学研究的是隐藏信息的方法,而密码分析学研究的是破解隐藏信息的方法; 另一方面, 正是密码分析学技术的存在与不断进步,为了不让隐藏信息被破解,密码编码学就需要研究更加完善的密码编码体制,从而促进密码编码学的发展,与此同时,新的密码体制的出现又使得攻击者需要寻找新密码分析突破点,故密码编码学也加速了密码分析学的发展。因此两者相辅相成,相互促进, 正是密码编码学与密码分析学这种对立统一的关系,推动了密码学自身向前发展。1加密的概念与基本方法(1)加密的概念加密( Encryption )就是用基于数学算法的程序和加密的密钥对信息进行编码,生成别人难以理解的符号。研究加密的科学叫密码学(Cryptography ) 。密码学研究信息的加密方法,以便只有接收者和发送者才能复原信息。加密的目的是对消息或信息进行伪装或改变。原始的、被伪装的消息称作明文p(plaintext ) ,也称信源m(message) ;通过一个密钥k(key)和加密算法可将明文p 变换成一种伪装的形式,称为密文c(cipher text) ;这种变换过程称为加密E(Encryption ) 。由密文 c 恢复出原明文p 的过程称为解密D(Decryption ) 。密钥 k 的所有可能的取值范围叫做密钥空间。 对明文进行加密所采用的一组规则,即加密程序的逻辑称作加密算法。消息传送后的预定对象称作接收者,他对密文进行解密时所采用的一组规则称作解密算法。加密和解密算法的操作通常都是在一组密钥( key)的控制下进行的,分别称作加密密钥和解密密钥。对密码系统的攻击可分为被动攻击和主动攻击两种。被动攻击是指通过窃取密文试图了解明文或者密钥的内容;主动攻击是指篡改和伪造密文,以达到修改或者伪造明文的目的。被动攻击的主要方法有:通过窃听通信信道上传输的密文,对其进行分析, 破译出明文或者密钥; 攻击者拥有部分密文和对应的明文,试图找出密钥; 攻击者能够选择地收集到任意出现的明文以及与之对应的密文,试图破译密钥。主动攻击的主要方法有:攻击者截取通信信道上传输的密文,然后对其篡改 (如添加、 删除某些内容)再发送; 攻击者拦截传输的密文,并向接收者发送自己伪造的密文;攻击者发送曾经截取的密文,即重放以前的信息。加密系统运作的示意图如图4-2 所示: 发送者的原始消息称作明文,通过一个密钥使用某种算法加密后,明文变换成外人无法理解的密文;通过传输信道如计算机网络,把密文送名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 到接收者处。接受方需要使用密钥和解密算法把密文解密,恢复出原先的明文。密钥明文密文加密算法密文明文解密算法发送方接收方密钥被动攻击主动攻击图4-2 加密系统运作的示意图加密程序和加密算法对保护安全至关重要。在美国是由国家安全局控制加密算法的发布。有些加密算法非常重要,美国政府甚至禁止公布其细节,也禁止出口这些算法。加密消息的可破密性取决于加密所用密钥的长度,其单位是位(bit) 。40bit 的密钥是最低要求,更长的(如128bit)密钥能提供更高程度的加密保障。如果密钥足够长的话,加密信息实际上没有密钥是无法破解的。(2)加密的方法下面介绍一些利用密码技术实现加密的方法。替代密码法和转换密码法很简单,也非常容易用计算机处理,所以往往是其他加密方法的基础。1)替代密码法替代( permutation)密码法(或叫代换密码法)有单字母密码法和多字母密码法两种。单字母加密方法这种方法是用一个字母代替另一个字母,用一组字母代替另一组字母。用来进行字母转换的方法很多。 比如移位映射法、倒映射法、 步长映射法等。 三种单字母加密方法如下所示。A)移位映射法:加密字母表,向后移动几个字母后,与原字母表对应。原来的字符: A,B,C,D ,, W,X ,Y,Z 转换为加密字符:F,G,H,I,, B,C,D,E。著名的古典密码体制之一恺撒密码就是运用移位映射法实现加密的典型例子。B)倒映射法:加密字母表,用原字母表的倒排,与原字母表对应。原来的字符: A,B,C,D,, W,X, Y, Z 转换为加密字符:Z, Y,X, W,, 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 加密字母表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 原字母表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 加密字母表ZYXWVUTSRQPONMLKJIHGFEDCBA原字母表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名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 在单字母替代方法中,密钥是对应于全部26 个英文字母的字符串。而多字母加密方法的密钥是一个简短且便于记忆的词或短语。 比如维吉尼亚密码,它设有一个含有26 个凯撒字母的方阵,如图4-3 所示。人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由 16 世纪法国亨利三世王朝的布莱瑟维吉尼亚发明的,其特点是将26 个恺撒密表合成一个。维吉尼亚密码根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。以上面第一行代表明文字母,左面第一列代表密钥字母。例如采用密钥“ 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 最后得到的密文为:FIDJSOMVDB 。历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。2)转换密码法在替代密码加密法中,原文的顺序没有被改变,而是通过各种字母映射关系把原文伪装了。转换密码法不是对字母进行映射转换,而是重新安排原文字的顺序。例如先把原文顺序排列,按密钥长度分行,再按列的顺序转为一行,就为密文。举例如下,对下列一段文字进行加密,明文(原文)如下:“the ebusiness secure is very important”把明文按密钥长度(本例是6) ,按原文顺序排列,结果如表 4-2 所示。这样就形成了明文长度与密钥长度相同的新的明文格式。明文各列密钥中的各字母及其编号相对应。密钥字母编号按由小到大的顺序,把明文按列重新排列,就形成了密文,结果如下:“tusrvmnhs eepteis ro neiyr eecs t bsu ia” 。把密文恢复成明文是不难处理的。2现代加密技术20 世纪 40 年代电子计算机技术的出现,特别是60 年代末因特网的出现,给通信以及整个社会带来翻天覆地的巨大影响,也使密码学焕发了巨大的青春活力。因特网设计之初没有考虑网络通信中所涉及的安全性问题,但是随着因特网逐渐普及,其安全问题日益突出。为了安全传递信息,必须先要用加密技术处理信息。因特网技术的快速发展极大促进了近代密码学理论的研究与发展,加密理论得到完善,出现了新的加密方法和密码体制。密码体制按不同的标准或方式可以分为多种形式,如果按密钥的数量和使用方式划分,密码体制可分为对称密码体制和非对称密码体制。(1)对称密码体制1)基本概念对称密码体制是加密和解密使用单一的相同密钥的加密制度。对称密码体制也称常规密C D E Z AB X Y Z UVWY Z AVWXZ ABWXYt 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 图 4-3 维吉尼亚密表表 4-2 转换密码示例名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 钥密码体制、 单钥密码体制等。对称密码体制的加密和解密过程使用同一算法。通信时发送方和接受方必须相互交换密钥,当发送方需要发送信息给接受方时,发送方用自己的加密密钥对明文进行加密,而接受方在接收到密文后,用发送方的密钥进行解密得到明文。对称密码体制的原理如图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 将明文信息按 64 比特大小分组,密钥长度也是64 比特,但是实际使用过程中密钥长度是56 比特,另外 8 比特用作奇偶校验位(即每个字节的最后一位用作奇偶校验)。64 比特的明文分组在密钥的作用下经过多次的置换和替代组合操作,最终形成攻击者难以破译的64 比特密文。DES 算法的原理DES 算法的基本原理是前面所讲的置换和替代操作,但无论是单一的置换还是单一的替代,其安全系数都很低,攻击者通过统计分析等方法很容易攻破密码系统。因此,DES的设计者在加密过程中使用了置换和替代的多次组合过程,并且使用多轮循环加密来扰乱和扩散明文信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 如图 4-5 所示, DES 算法加解密的基本原理如下:加密过程中,输入64bit 的明文,首先经过初始矩阵IP 置换,然后在56bit 的输入密钥控制下,进行16 轮迭代加密处理过程,最后通过简单的换位和逆置换算法,得到64bit 的输出密文;解密的过程与加密过程基本类似,同样需要进行16 轮迭代解密处理过程,具体的解密处理过程与加密处理过程顺序完全一样,只是控制每一轮迭代的密钥与加密过程中的密钥K 正好相反,即加密过程的第1轮控制密钥是解密过程的第16 轮密钥,即= ;而解密处理过程的第1 轮控制密钥是加密处理过程的第16 轮密钥,即= 。每一轮迭代过程中使用的密钥K 或者 K是由 56 比特的原始密钥经过变换而得。DES 算法的安全性DES 算法出现的时候使用的是56 比特的密钥,其密钥空间是562,大约有7.21610个密钥,如果使用最简单的穷举式攻击方法,一台每微秒(100 万分之一秒)完成一次DES解密的机器将要花费562 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)非对称密码体制的基本概念输入 64bit 明文 p 初始置换 IP 第 1 轮加密处理第 2 轮加密处理第 16轮加密处理32bit 左右换位逆初始置换IP-1输出 64bit 密文 c 输出 64bit 明文 p 逆初始置换IP-132bit 左右换位第 16轮解密处理第 2 轮解密处理第 1 轮解密处理初始置换IP 输入 64bit 密文 c 56bit 密钥 k 加密过程解密过程初始置换循环左移密钥置换处理循环左移密钥置换处理循环左移密钥置换处理k1k2k16k1k15k16K1K16K1K16K1K1K16K名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 非对称密码体制与对称密码体制的最大不同点就是:加密密钥和解密密钥不同。在非对称密码体制中, 需要将这两个不同的密钥区分为公开密钥(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(各 l00200 位十进制数字) ,计算:n = p1 p2 其欧拉函数值为z =(p1-1) ( p2-1)随机选一整数e(e 与 z 为互质的数称为公开指数),1ez, ( z,e)=1。因而在模z 下, e 有逆元:d = 1e(mod z)即满足(ed) mod z =1 d 称为秘密指数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 取公钥为( n,e) ;私钥为( n, d) ;而 p1,p2 不再需要,可以销毁。密文c 从明文p和公钥( n,e)取得:c = epmod n 利用私钥( n,d)从密文 c 解密得明文p:p = dcmod 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 满足( ed) mod z =1。相应的,公钥是(n, e)=(247,7) ;私钥是( n,d)=(247,31)则加密、解密的过程如下表所示。需要注意的是,在实际使用中,p1 和 p2 不是 2 位而是 100 位到 200 位的整数。表 4-3 RSA 加密解密示例加密过程使用公钥( 247,7)密文 c =epmod n 解密过程使用私钥( 247,31)原文明文 p epdc(近似值)p =dcmod n 原文h 8 2097152 122 4.75E+648 h e 5 78125 73 5.79E+575 e l 12 3583180812 2.84E+3312 l l 12 3583180812 2.84E+3312 l o 15 17085937589 2.69E+6015 o RSA 算法的特点与对称密码体制相比,非对称密码体制也就是双钥密码体制有许多优点:第一,公开密钥的发布可在各种公开场合,它没有特殊的发布要求;第二,在多人之间进行保密信息传输所需的密钥组合数量很小。在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 位) 、664bit(200 位) 、1024bit 的 RSA 加密已有实用产品。RSA 的一个缺点是的性能比较低。因为算法中使用的模数n 以及 p 与 q 都是大整数,因此无论是用硬件实现还是软件实现效率都比较低,其中硬件实现的效率是DES 的 1/1000,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 软件实现的效率是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) , 是指根据报文推导出来的能反应报文特征、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 且具有固定长度的特定信息。由明文推导出报文摘要是由散列函数完成的,散列函数类似于“数据结构” 中所讲的哈希函数,输入变长的信息,该函数能够产生定长的输出,因此在网络安全中,有时直接称散列函数为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算法每次处理64bit 的报文, 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 曾估计寻找具有相同摘要值的两个报文需要642数量级的时间,因此,很长一段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 时间以来, MD5 一度曾被认为是比较安全的。但是 2004 年我国山东大学的王小云教授找到了破译MD5 算法的方法,能在很短的时间内找出具有相同摘要的两个不同报文。MD5 的破译表明许多曾经应用MD5 的系统将不再具有安全性, 假设使用MD5 算法对电子合同做数字签名,MD5 的破译表明当在网络上使用数字签名签署一份电子合同之后,还可以伪造出另外一份签名相同但是合同内容不同的电子合同, 这样将无法辨认电子合同的真假性,给网络攻击者有可乘之机,因此也就意味着使用MD5 算法的电子签名系统不再安全。除了MD5 ,王教授还指出另外3 个知名的散列函数HAVAL-128 、MD4 和 RIPEMD 也能在短时间内破译。当前,安全散列算法SHA-1 被认为是安全性比较高的散列算法。4安全散列算法SHA-1 由美国国家标准和技术协会提出的安全散列算法SHA-1 ,基于MD4算法模型设计。SHA-1 算法对输入报文长度有限制,不能超过642比特长度,输出的报文摘要是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-642bit 数据格式Little-endian Big-endian 分组长度512bit 512bit 循环步骤64 80 5数字摘要技术在电子商务中的应用(1)报文完整性的验证散列函数提供了输入报文与输出摘要之间的特殊的关系,对输入报文做的任何改变,其输出都会发生变化,因此在需要验证报文在传输时是否发生篡改的场合,可以通过验证报文散列函数的输出值是否发生变化,以代替对大量输入报文的验证。在电子商务中, 报文的验证非常重要, 例如, 电子订单传递过程中,为了防止订单在传递过程中一些重要的数据被篡名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - 改,接收者在收到订单之后,必须要验证订单数据的完整性。在计算报文摘要时,除了报文本身之外,需要附加通信双方所共享的信息,比如共享密钥,该密钥并不用来加密信息,而是在计算报文摘要时,作为一个附加的信息并置在报文的头部或尾部。共享密钥并不被传递。如果没有共享信息,则攻击者在截获并修改报文之后,因散列算法本身是公开的,他就可以重新计算报文摘要,附加在修改的报文后面,这样, 接收者验证报文摘要时就无法区分报文是否完整,因此直接计算报文摘要是没有实际意义的。如果有共享信息,因为攻击者不知道共享密钥,所以他无法重新计算修改后的报文摘要,通信的接收方可以根据共享密钥以及收到的报文重新计算报文摘要,并与收到的报文摘要进行比较,从