《电子商务安全与管理》2006年8月第三章现代加密技术与识别技术第一节密码学与加密技术古希腊的斯巴达人将一张皮革条缠绕包裹在某特定尺径的棍子上,再在皮革条上写上传递给他人的信息;而信息的接收者只需要有根同等尺径的棍子,将皮革条缠绕包裹到棍子上就可以读出原始信息。这样,如果不知道棍子的尺径,仅有皮革条将无法复原原始信息,所看到的只能是一些零乱无用的信息。这就是历史上记载的人类最早对信息进行加密的方法之一。密码是一门古老的技术,自从人类社会有了战争就出现了密码。密码学早在公元前400多年就已经产生,正如1967年DavidKahn所写的《破译者》一书中所说:“人类使用密码的历史几乎与使用文字的时间一样长”。1949年,香农发表了题为“保密系统的通信理论”一文,引起了密码学的一场革命。香农在这篇文章中把密码分析与设计建立在严格的理论推导基础上,从而使得密码学真正成为一门科学。第一节密码学与加密技术一般说来,信息主要有两种基本保护方法:一种是利用信息加密技术对明文实施各种变化,使它不为局外人所理解。另一种方法是信息隐藏技术,利用载体信息具有随机性的冗余部分,将重要信息嵌入载体信息之中。密码学(Cryptography)一词来源于古希腊语Kruptos(tohidden)+Graphein(towrite),包括密码编码学和密码分析学。计算机密码学是研究计算机信息加密、解密及其变换的新兴科学,也是数学、通信、网络和计算机的交叉学科。一、计算机密码学的概念(一)加密和解密的过程任何一个加密系统至少包括四个组成部分:未加密的报文(也称明文)、加密后的报文(也称密文)、加解密的设备或算法、加解密的密钥。图3.1密码技术中的加密和解密过程常规的对称密钥加密方法是:在使用它加密之前,把加密密码告诉对方。一、计算机密码学的概念(二)密码协议协议(protocol)是一系列包括双方或多方约定的步骤,设计它的目的是要完成双方或多方之间进行通信的任务。协议特点:1、协议中的每个人都必须了解协议,并且预先知道所要完成的步骤。2、协议中的每个人都必须同意并且遵循它。3、协议必须是清楚的,每一步必须明确定义,并且不会引起误解。4、协议必须是完整的,对每种可能的情况必须规定具体的动作。一、计算机密码学的概念密码协议(CryptographicProtocol)的目的也不仅仅是为了简单的秘密性。就像算法一样,证明它不安全比证明它是安全的要容易的多。密码协议的研究范围:包括网络安全协议的设计和分析,密钥管理协议的设计与分析,密钥托管协议的设计与分析,以及与它们相关领域的研究,如身份识别或信息认证、信息的完整性、秘密分享、零知识证明、有限状态机、模态逻辑、捆绑机制、密钥恢复等等。一、计算机密码学的概念(三)密码体制密码体制如果以密钥为标准,可将密码系统分为单钥密码(又称为对称密码或私钥密码)体制和双钥密码(又称为非对称密码或公钥密码)体制。单钥密码体制要求加密解密双方拥有相同的密钥。而双钥密码体制的加密解密双方拥有不相同的密钥,加密密钥和解密密钥是不能相互推导计算得出的。一、计算机密码学的概念在单钥体制下,加密密钥和解密密钥实质上是等同的。这种情况下,密钥必须经过安全的密钥信道由发送方传给接收方。或者说,此密码体制的安全性决定于密钥的安全。如果密钥泄露,则此密码系统便被攻破。最有影响的单钥密码是DES算法。单钥密码的优点是:安全性高。加解密速度快。缺点是:①随着网络规模的扩大,密钥的管理成为一个难点;②无法解决信息确认问题;③缺乏自动检测密钥泄露的能力。双钥密码体制是1976年W.Diffie和M.E.Heilinan提出的一种新型密码体制。在双钥体制下,加密密钥与解密密钥是不同的,此时不需要安全信道来传送密钥,而只需利用本地密钥发生器产生解密密钥即可。由于双钥密码体制的加密密钥和解密密钥不同,且能公开加密密钥,仅需保密解密密钥,所以双钥密码不存在密钥管理问题。双钥密码还有一个优点是可以拥有数字签名等新功能。最有名的双钥密码体系是RSA密码体制。双钥密码的缺点是算法一般比较复杂,加解密速度慢。一、计算机密码学的概念(四)商用密码管理条例1999年10月7日,我国颁布了《商用密码管理条例》,其中第四章和第五章对商用密码的使用及安全保密管理规定如下:第十四条任何单位或者个人只能使用经国家密码管理机构认可的商用密码产品,不得使用自行研制的或者境外生产的密码产品。第十五条境外组织或者个人在中国境内使用密码产品或者含有密码技术的设备,必须报经国家密码管理机构批准;但是,外国驻华外交代表机构、领事机构除外。第十六条商用密码产品的用户不得转让其使用的商用密码产品。商用密码产品发生故障,必须由国家密码管理机构指定的单位维修。报废、销售商用密码产品,应当向国家密码管理机构备案。第十七条商用密码产品的科研、生产,应当在符合安全、保密要求的环境中进行。销售、运输、保管商用密码产品,应当采取相应的安全措施。从事商用密码产品的科研、生产和销售以及使用商用密码产品的单位和人员,必须对所接触和掌握的商用密码技术承担保密义务。第十八条宣传、公开展览商用密码产品,必须事先报国家密码管理机构批准。第十九条任何单位和个人不得非法攻击商用密码,不得利用商用密码危害国家的安全和利益、危害社会治安或者进行其他违法犯罪活动。一、计算机密码学的概念(一)对称密码——DES(数据加密标准)算法DES(DataEncryptionStandard)是目前为止最成功和使用最广泛的对称密码方案。DES是一种采用分组方式的单钥密码算法。它的基本思想是:首先将明文(原文)分成相同长度的比特块,然后分别对每个比特块加密产生一串密文块。解密时,对每一个密文块进行解密得到相应的明文比特块,最后将所有收到的明文比特块合并起来即得到明文。DES的基本设计思想是通过循环和迭代,将简单的基本运算(左移、右移、模2加法等)和变换(选择函数、置换函数)构成数据流的非线性变换(加密变换或解密变换)。简单地说,DES算法是加密的两个基本技术——混乱和扩散的组合。二、对称密码与非对称密码的算法(一)对称密码——DES(数据加密标准)算法早期DES的具体的实现过程是:对二进制序列的明文,以8个8位的字节块为基本加密单元,每64位分成一组,使用8个7位的字节块(56位)密钥对这些明文进行16轮代换(即在明文分组上16次实施相同的置换加密),最后形成密文。解密运算相同,只是子密钥使用的顺序不同而已。DES运算如图3.2所示。二、对称密码与非对称密码的算法(一)对称密码——DES(数据加密标准)算法假设Bi是第i次迭代的结果,Li和Ri是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f实现代替、置换及密钥异或等运算的函数,那么每一轮就是:①Li=Ri-1②Ri=Li-1⊕f(Ri-1,Ki)DES除了密钥输入顺序之外,其加密和解密的步骤完全相同,从而在制作DES芯片时很容易达到标准化和通用化,非常适合现代通信的需要。现在DES可由软件和硬件实现。美国AT&T首先用LSI芯片实现了DES的全部工作模式,该产品称为数据加密处理机DEP。二、对称密码与非对称密码的算法(二)非对称密码——RSA算法非对称密码体制的最大特点是:每个用户的密钥由两个不同的部分组成,公开的加密密钥(公钥)和保密的解密密钥(私钥),而且即使算法公开,也很难从其中一个密钥推出另一个。这样任何人都可以使用其他用户的公开密钥来对数据加密,但是只有拥有解密密钥的用户才能对加过密的数据进行解密。RSA是公钥密码体制中最成功的一种。其他几种著名的公钥密码体制包括:基于大整数分解困难性的变形RSA的Rabin体制、基于离散对象的Diffie-Heman体制以及EIGamal体制等。二、对称密码与非对称密码的算法(二)非对称密码——RSA算法RSA算法的基本思想是:发送端将要发送的信息用接收端的公钥进行加密,数据传送到接收端后,接收端用自己的私钥来解密,只有密文和公钥是无法将密文解开的。非对称密码体制中采用的是一对密码,给别人用的叫公钥,给自己用的叫私钥。这两个密钥可以互相并且只为对方进行加解密,用公钥加密后的东西,只有私钥能解。二、对称密码与非对称密码的算法(二)非对称密码——RSA算法RSA算法最关键的思想是寻找一个“单向函数”,所谓“单向函数”是指不可逆函数。简单举例:先找出两个非常大的质数P和Q,算出N=(P×Q),找到一个小于N的E,使E和(P-1)×(Q-1)互质。算出数D,使D×E=1MOD(P-1)×(Q-1)。公钥为(E,N),私钥为(D,N)。用户可以销毁P和Q。由于RSA涉及到高次幂运算,所以实现的速度比较慢。二、对称密码与非对称密码的算法(二)非对称密码——RSA算法下面我们来看一个示例:首先我们把上述RSA算法排列成下面的步骤:①选择两个大质数P和Q,每个都大于10100;②计算N=P×Q和Z=(P-1)×(Q-1);③选择一个与Z有关的质数,令其为D;④找到一个小于N的E,使E满足E×D=1(模Z),D保密。二、对称密码与非对称密码的算法(二)非对称密码——RSA算法二、对称密码与非对称密码的算法表3.1RSA加密与解密过程实例(二)非对称密码——RSA算法二、对称密码与非对称密码的算法(1)RSA的安全性。这个问题依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,也没有证明破译RSA就一定需要作大数分解。(2)RSA的速度。由于RSA进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷,因此通常RSA用于数据量较小的信息加密。(3)RSA的攻击。RSA的攻击有三种:选择密文攻击——攻击者将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到想要的信息。公共模数攻击——若系统中共有一个模数,只是不同的人拥有不同的加密密钥和解密密钥,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。小指数攻击——有一种提高RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度也会有所提高。但这是不安全的。(二)非对称密码——RSA算法二、对称密码与非对称密码的算法(4)RSA的缺点①产生密钥很麻烦,受到素数生成技术的限制,因而难以做到一次一密。②分组长度太大。为保证安全性,n至少要600位(bit)以上,运算代价很高,尤其是速度较慢;且随着大数分解计算技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。RSA最大的缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。(三)对称和非对称密码体制的比较非对称密码体制与对称密码体制相比,有以下三个方面的优点。1、密码分发简单在对称密码体制中,加密方每次应用新的密钥,都要通过某种秘密渠道把密钥传送给解密方,在传递过程中密钥容易泄密。而非对称密码体制中的加密密钥和解密密钥是不同的,并且不能由加密密钥推断出解密密钥,从而加密密钥表可以像电话号码本一样公开。2、秘密保存的密钥减少在使用对称密码体制的网络通信中,如果任意两个用户通信都使用互不相同的密钥,N个人就要使用N(N-1)/2个密钥,密钥量大,难以管理。而采用非对称密码体制,每个成员只要秘密保存自己的解密密钥,N个通信成员只需要产生N对密钥。3、对等实体验证公钥密码体制可以容易地实现对称密码体制难以实现的签名验证机制。二、对称密码与非对称密码的算法二、对称密码与非对称密码的算法(三)对称和非对称密码体制的比较虽然非对称密码体制具有密钥易管理和易于实现签名验证机制,但是目前其加密速度则远远低于对称密码体制。在实际的保密系统设计中,往往综合应用上述两种密码体制。普遍采用的是双钥和单钥密码相结合的混合加密体制,即加解密时采用单钥密码,密钥传送则采用双钥密码。这样既解决了密钥管理的困难,又解决了加解