第 3 章 加密与识别技术
第 3 章 加密与识别技术. 学习目标 1.了解现代密码学的主要内容 2.熟悉密码体制与常用的加密算法 3. 掌握对称密码算法的原理与种类 4. 理解单向函数的原理与作用 5. 了解公钥密码体制的概念与内容. 3.1 密码学基础. 1. 密码学的发展 1) 密码的重要作用 密码是一门古老的技术。人类有记载的通信密码始于公元前 400 年。古希腊人是置换密码的发明者。 1881 年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。
第 3 章 加密与识别技术
E N D
Presentation Transcript
第3章 加密与识别技术 • 学习目标 1.了解现代密码学的主要内容 2.熟悉密码体制与常用的加密算法 3. 掌握对称密码算法的原理与种类 4. 理解单向函数的原理与作用 5. 了解公钥密码体制的概念与内容
3.1 密码学基础 1.密码学的发展 1)密码的重要作用 • 密码是一门古老的技术。人类有记载的通信密码始于公元前400年。古希腊人是置换密码的发明者。1881年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。 • 在第二次世界大战初期,德国军方启用“恩尼格玛”密码机,盟军对德军加密的信息有好几年一筹莫展,“恩尼格玛”密码机似乎是不可破的。但是经过盟军密码分析学家的不懈努力,“恩尼格玛”密码机被攻破,盟军掌握了德军的许多机密,而德国军方却对此一无所知。 • 太平洋战争中,美军破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,导致了太平洋战争的决定性转折,而且不久还击毙了山本五十六。相反轴心国中,只有德国是在第二次世界大战的初期在密码破译方面取得过辉煌的战绩。因此,我们可以说,密码学在战争中起着非常重要的作用。
1.密码学的发展 1)现代密码学的内容(36) (1)密码体制与密码学 (2)编码密码学 (3)密码分析学 (4)现代密码技术
3.1 密码学基础 2.密码学与密码体制 • 密码学(cryptology)是研究如何实现秘密通信的科学,包括两个分支,即密码编码学和密码分析学。密码编码学(cryptography)是通过信息进行编码实现信息保密性;而密码分析学(cryptanalysis)是研究加密消息的破译以获取信息。 1)基本术语 (1)信源——消息的发送处。 (2)信宿——消息的目的地。 (3)明文——没有加密的消息。 (4)密文——加密后的消息。 (5)信道——传递消息的通道
2)密码体制概述(37) • 3)密码体制原理 (1)单一密码体制 (2)双钥密码体制 • 4)密码体制模型(39)
3.1 密码学基础 3.密文分析与加密算法 1)密码分析攻击 • 密码分析学是研究分析破译密码的学问,它是在未知密钥的前提下,恢复出密文中隐藏的明文信息。成功的密码分析能恢复出明文或密钥,并发现密码体制的弱点。 • 对密码进行分析的过程称为攻击,可能的攻击方法是对所有的密钥进行穷举搜索,但如前所述,由于密钥的体制决定了这是不可行的。因此必须依赖对密文进行各种统计分析方法来完成攻击。
2)安全密码 • 3)常用加密算法 (1)对称算法 (2)公开密钥算法
常用的密码攻击方法 (1)唯密码攻击 (2)已知明文攻击 (3)选择明文攻击 (4)选择密文攻击
3.1 密码学基础 4.传统密码学 1)棋盘密码 2)移位法 3)恺撒密码 4)Vigenère密码 5)普莱费尔加密算法 6)一次一密密码
2)移位法 • 明文输入矩阵: • 密文输入矩阵
3)古典加密系统——凯撒密码 • 凯撒用如下方法来伪装他发给将领们的信息:用D来代替A,用E来代替B,用F来代替C,在字母表中如此类推。因此,如果凯撒想告诉他的将领们“ATTACK AT DOWN”,那么他发出的信息将是“DWWDFN DW GRZQ”。敌人或许会在传递过程中得到这条作息,但不解其义。 • 最初的信息叫明文,经过伪装后的信息称为密文。 • 格式特点:密码=n密码空间={1,2,……}
4)Vigenere密码 • 这是一种多表代换密码(41-42)
6)一次一密密码 • AT&T公司的Gilbert Vernam在1917年提出。
3.2对称密码算法 1.分组密码算法DES • DES是英文Data Encryption Standard(数据加密标准)的缩写,由IBM公司在70年代推出,后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)1977年1月以数据加密标准DES的名称正式向社会公布,于1977年7月15日生效。
1)DES特征: • DES使用56位加密,每次对64位输入数据块进行加密,加密过程包括16轮编码。在每一轮编码中,DES从56位密码中产生一个48位临时密钥,并用这个密钥进行这一轮的加密和解密。解密过程完全是加密过程的逆过程。
2)DES安全性能: • 为了破解一个DES密钥必须尝试2的56次方计算,但由于CPU的速度和平等处理技术的快速发展,破解DES密钥是可行的,因此为了保证算法的安全性,必须增加密码的长度。
3)DES加密功能的改进及优缺点 • 为了不要修改标准但还可以实现更安全的加密,就使用三次DES加密(解密)过程EDE(Encrypt Decrypt Encrypt),步骤如下:1、对输入的64位数据块用密码K1进行加密;2、对上一步输出用密码K2进行解密;3、最后再用K1进行加密。由于三重DES使用了两个56位密码,相当于一个112位密钥所以它实现了增加密钥的长度,使得密钥更难以被破解,但它的加密解密速度要比DES慢三倍。
3.2对称密码算法 2. 3DES算法 • DES的最大缺陷是密钥较短。为了增加密钥的长度,人们建议将一种分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密,通常把这种技术称为多重加密技术。 • 3DES,记为TDES,使用三倍DES的密钥长度的密钥,执行3次DES算法,密钥为192bit(有效长度为168bit),设密钥为k1,k2,k3,则: • 加密: C=Ek3[Dk2 [Ek1(P)]] • 解密: P=Dk1[Ek2 [Dk3(C)]] • 其中,P是明文,C是密文,E是加密算法,D是解密算法。 • 当取:k1=k2=k3=k时,TDES则还原为普通DES。 • 当取k1=k3时, • 加密: C=Ek1[Dk2 [Ek1(P)]] • 解密: P=Dk1[Ek2 [Dk1(C)]] • 这时TDES的密钥长度为128bit(有效长度为112bit) • 因为TDES的基础算法是DES具有相同的对抗密码分析能力,同时,168bit长度的密钥又能有效地抵抗穷举攻击。缺点是解密速度比DES慢。
3.2对称密码算法 3. 序列密码算法A5 • A5在1989年开发成功,用于GSM系统的序列密码算法,它用于对从电话到基站连接的加密,而基站之间的固网信息没有加密。先后开发的三个版本称A5/1、A5/2、A5/3。如果没有特别声明,通常所说的A5是指A5/1。关于GSM的加密问题,一些人认为会因为密码的问题阻碍手机的推广。另一些人则认为A5太弱,不能抵抗一些国家情报机构的窃听。A5的特点是效率高,适合在硬件上高效实现。
4.国际数据加密(International DATA Encryption Algorithm, IDEA ) • 开发者:瑞士联邦工程学院开发并于1990年正式推出。产品的接受性:这是目前国际普遍通用的加密算法,由于1990年推出时,美国的法律禁止在未得到政府许可证的情况下出口加密技术,所以宏观世界就成为国际通用的加密算法。特征:IDEA使用的密码为128位,它也是对64位数据进行多轮加密,每一轮都是用“压码”技术从128位密钥中产生临时密钥。功能:其使用密钥比DES算法长得多,并且它在软件和硬件实现的加密速度都很快。
5.CBC(Cipher Block Chaining,密码块链技术)OFM(Output Feedback Mode,输出反馈模式)CFM(Cipher feedback Mode,密码反馈模式) • 这三种技术都使用了反馈循环,即前面的数据块的加密结果以某种形式迭加到下一数据块密文中。
6.AES(Advanced Encryption Standard)标准 • 开发商:NIST(美国国家标准技术局)特征:每次可对128位数据块进行加密,并支持128位、192位、256位密钥。
7.Kerberos技术(基于对称加密) • 发明人:MIT(麻省理工) • 功能:可以满足每一用户只需要维护一个密钥就可以和任意一个用户进行安全的通信,为了这个目的,kerberos建立一个安全密钥分布中心(key distribution center,KDC)。每一个用户使用自己的安全密钥与KDC进行保密通信。如果一个用户想跟另一个用户进行保密通信时,它会向KDC申请一个临时密钥,这个临时密钥只被使用在本次通信中。KDC在收到请求后,生成一个临时密钥并用安全通信,把这个密钥传给要与之通信的相应用户。 • 缺点:它只适用于一大批都属于同一个机构的用户群,由于不经一事 联网络本身是一个很庞大、并无中心的网络,在这种情况下,建立一个KDC中心几乎是不可能的,所以kerberos在现实应用中还有很大的限制。
3.3公开密钥加密方法 • 产生原因:为克服对称加密方法在两个不同的地方的用户的密码颁发问题。 • Standford大学的Whitefield Diffie & Martin Hellman在1975年提出的Diffie-Hellman密钥交换算法。但这一算法还不是一个完整的加密算法,它只是提出一种理论模型。
3.3公钥密码算法 1.公钥密码算法产生的背景 • 单钥密码的主要问题有两点:第一,密钥量问题。在单密钥密码系统中,每一对通信者需要一对密钥,当用户增加时,必然会带来密钥量的成倍增加,因此在网络通信中,大量密钥的产生、存放和分配将是一个难以解决的问题。第二,密钥分发问题。单钥密码系统中,加密的安全性完全依赖于对密钥的保护,但由于通信双方使用的是相同的密钥,因此,密钥的交流、分发和告知是一个不容易解决的问题。
1、基础: • 数学基础:a=rA mod P (已知素数P与整数r互素,设A为任一整数)数学知识表明,没有一个数学公式可以直接计算出A来满足上式,为了找到一个A,必须从1到P-1的所有可能进行搜索,因此如果P为一个很大的素数,r为一个素数满足r1,r2,……rP-1模式都各不相同,那么,从P,r和a计算出A在实际上是不可能的。
上述公式中的P,r是完全公开的数字,两个用户分别生成两个随机数A、B,并不告诉对方,接着它们分别计算:上述公式中的P,r是完全公开的数字,两个用户分别生成两个随机数A、B,并不告诉对方,接着它们分别计算: a=rA mod P和 b=rB mod P,
第一个用户把a传给第二个用户,第二个用户也把b传给第一个用户,这样:第一个用户只知道A、b以及公开的P和r,可以计算出:第一个用户把a传给第二个用户,第二个用户也把b传给第一个用户,这样:第一个用户只知道A、b以及公开的P和r,可以计算出: bA mod P=rAB mod P第二个用户只知道B、a以及公开的P和r,可以计算出: aB mod P=rAB mod P(这里的A、B就可以用作为传统对称加密算法中的安全密钥。)
上述中a,b在网上明文传输,但上述的数学基础表明从a和b是不能得到A和B的,所以第三者尽管能够窃听到a,b也没有办法计算出:上述中a,b在网上明文传输,但上述的数学基础表明从a和b是不能得到A和B的,所以第三者尽管能够窃听到a,b也没有办法计算出: rAB mod P 同时,即使第一个用户收到了b,但他也没有办法计算出B,因此,虽然可以进行安全通信,但他们都不知道对方到底是谁,也就是说,Diffie-Hellman算法只保密不鉴别。
3.3公钥密码算法 2. RSA算法 • 1978年,美国麻省理工学院(MIT)的研究小组成员:李维斯特(Rivest)、沙米尔(Shamir)、艾德曼(Adleman)提出了一种基于公钥密码体制的优秀加密算法——RSA算法。RSA算法是一种分组密码体制算法,它的保密强度是建立在具有大素数因子的合数上的,其因子分解是困难的,是否是NP问题尚未确定。 • RSA算法得到了世界上的最广泛的应用,ISO在1992年颁布的国际标准X.509中将RSA算法正式纳入国际标准。1999年美国参议院已通过了立法,规定电子数字签名与手写签名的文件、邮件在美国具有同等的法律效力。
RSA算法研制的最初目的是解决DES算法密钥的分发困难的问题,而实际结果不但很好地解决了这个难题,还可以利用RSA算法来完成对消息的数字签名以防止对发送消息的抵赖;同时还可以利用数字签名发现攻击者对消息的非法篡改,以保护数据信息的完整性,为公用网络上信息的加密和鉴别提供了一种基本的方法。RSA算法是被研究的最广泛的公钥算法,普遍认为其是目前最优秀的公钥方案之一。RSA算法研制的最初目的是解决DES算法密钥的分发困难的问题,而实际结果不但很好地解决了这个难题,还可以利用RSA算法来完成对消息的数字签名以防止对发送消息的抵赖;同时还可以利用数字签名发现攻击者对消息的非法篡改,以保护数据信息的完整性,为公用网络上信息的加密和鉴别提供了一种基本的方法。RSA算法是被研究的最广泛的公钥算法,普遍认为其是目前最优秀的公钥方案之一。 • RSA算法的保密强度随其密钥长度增加而增加,但是,密钥越长,其加密所耗的时间也越长。因此,要根据所保护信息的敏感程度与攻击者破解所花费的代价来综合考虑。尤其对于商业信息领域更是如此。
数学基础公式: • 假设有三个数n,d和e有如下特性,对任意一个数介于1和n-1之间,有:(Me)d mod n=M那么,n和e就形成了公开密钥,n和d形成了私有密钥,对一个数M(相当于明文)进行加密的过程为:M’=Me mod n对被加密的M’(相当于密文)进行解密听过程为:M=(m’)d mod n和上述讨论同样道理,只知道n,e和M’而不知道d是没有办法得出M的。
RSA机密性能: • 上述公式表明,在RSA算法中,如果用公开密钥进行加密,只能用私有密钥进行解密。在理论上,公开密钥加密技术可以保证数据在一方传到另一方的机密性。
RSA鉴别功能: • 在RSA算法中,如果用私有密钥进行加密,可以用公开密钥进行解密。这个算法RSA算法具有鉴别能力,他用自己的私有密钥进行加密。任何一个人都可以用相应的公开密钥对数据解密,并鉴别数据是否属于他的。
保密过程 • 公开密钥 私有密钥 明文 密文 明文 加密 传输 解密
鉴别过程 • 私有密钥 公开密钥 明文 密文 明文 加密 传输 解密
3.3公钥密码算法 3. RSA算法的评估 • 公钥加密算法中使用最广泛的是RSA算法。目前,该算法已经在互联网的许多方面得以广泛应用,包括在安全接口层(SSL)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,RSA加密系统还可以应用于智能IC卡和网络安全产品。
3、消息摘要函数 • 主要产品:最著名的有Ron Rivest(RSA中的R)写的可生成物128位的MDS和由美国国家标准和技术协会开发的可生成160位的SHA(Secure Hash Algorithm) • 特征:消息摘要函数将任意长的输入串映射成一个定长的、较短的输出串。一个消息摘要函数f:x→Y是一个单向散列函数。 • 功能:消息摘要函数由于使用单向散列函数,其特点是,只要改变输入消息的任何一位,甚至只改一位,输出的摘要就会发生很大的变化,这些摘要其实可以看成输入消息的数字指纹。
4、数字签名1)数字签名的含义 • 数字签名是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
2)数字签名的功能 • 在传统的商业系统中,通常都利用书面文件的亲笔签名或印章来规定契约性的责任,在电子商务中,传送的文件是通过电子签名证明当事人身份与数据真实性的.数据加密是保护数据的最基本方法,但也只能防止第三者获得真实数据。电子签名则可以解决否认、伪造、篡改及冒充等问题,具体要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。
5、数字证书(公钥证书): • 数字证书就是网络通讯中标志通讯各方身份信息的一系列数据,其作用类似于现实生活中的身份证。它是由一个权威机构发行的,人们可以在交往中用它来识别对方的身份。数字证书的格式一般采用X.509国际标准。
一个标准的X.509数字证书包含以下一些内容: 1) 证书的版本信息; 2) 证书的序列号,每个证书都有一个唯一的证书序列号; 3) 证书所使用的签名算法; 4) 证书的发行机构名称,命名规则一般采用X.400格式; 5) 证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2649; 6) 证书所有人的名称,命名规则一般采用X.400格式; 7) 证书所有人的公开密钥; 8) 证书发行者对证书的签名。
6)CA认证中心(Certification Authority) • CA可以发行数字证书,CA创建的证书上有自己的签名,用户使用的公开密钥可以证实证书的内容是否有效。
7)公钥基础设施(public key infrastructures,PKI) • 1、PKI是一个综合的管理机构,其中CA认证中心是PKI的核心。2、交叉认证(桥认证):就是一个认证中心与其他认证中心结成依赖联盟,互相承认对方的认证权威。3、IC卡与PKI:与软件认证相比,IC卡较为安全、可靠,与生物测定智能卡相比,IC卡显得便宜,适用,因此IC认证卡成为目前较好接受的形式。4、PKI的具体应用(略)
本章小结 • 互联网络的迅速普及使人们逐渐将它作为传送信息的主要渠道,而对于关系到单位和个人利益的敏感信息必须经过加密之后才可以在网上传送,因此现代密码学得到迅速发展。本章主要介绍现代密码学的概念和主要内容,包括常用的密码体制与加密算法,重点讨论了形式多样的对称密码算法原理和算法过程、公钥密码体制产生的背景、其算法原理和实现过程,最后对RSA算法给出了客观的评估
复习思考题 1.现代密码学主要包括哪些方面的内容? 2.试说明密码体制的基本原理。 3.什么是密文攻击,有哪些常用的密文攻击方法? 4. 说明对称密码算法的原理。 5. 什么是单向函数,说明其原理与作用。 6.简述公钥密码体制的思想。 7. 说明RSA算法的原理。