资源描述
网网络络安全安全课程安排课程安排周数:1-15周 课时:75课时考试方式:闭卷成绩:平时成绩40%+考试成绩60%课程安排课程安排平时成绩40分:考勤10分:第1次缺课扣2分;第2次扣2分,3次扣2分,3次以上考勤成绩0分;作业10分:三次不交此项为0分;期中测评15分;课堂表现5分。第 7 章密码技术学习目标学习目标通过本章的学习,能够通过本章的学习,能够了解密码与密码学的概念;了解现代密码技术的发展 和应用;知道典型的密码技术中的加密算法;知道密码技术的应用;了解如何进行数据加密。6 7.1 7.1 密码技术概述密码技术概述 7.2 7.2 密码技术的典型加密算法密码技术的典型加密算法 7.3 7.3 密码技术的应用密码技术的应用 7.4 7.4 应用实例应用实例6目录目录77.1 7.1 密码技术概述密码技术概述7.1.1 7.1.1 密码与密码学密码与密码学7.1.2 7.1.2 密码学的发展密码学的发展7.1.3 7.1.3 密码技术的应用领域密码技术的应用领域7.1.4 7.1.4 密码学的新概念和新技术密码学的新概念和新技术7目录目录87.1.17.1.1密码与密码学密码与密码学1 1密码的基本概念密码的基本概念8(1 1)密码)密码密密码码是按特定法则编成,用以对通信双方的信息进行明密变换的符号。换而言之,密码是隐蔽了真实内容的符号序列。密码的基础解释为,主要限定于个别人明白(如一则电文)的符号系统。如密码电报、密码式打字机。作为技术而言,密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。密码在中文里是“口令”(password)的通称。7.1 7.1 密码技术概述密码技术概述9(3 3)加密与加密方式)加密与加密方式加加密密是指将原始正常的信息(明文)使用某种规则(加密算法)变换为不被外人理解的非正常信息(密文)的过程,加密是防止有价值的信息被拦截和窃取。传传统统加加密密方方式式主要采用按字符逐位加密(称为流密码)与按字符分组加密(称为分组密码)。现现代代加加密密方方式式主要采用按比特加密,每次只加密一个比特(称为序列密码)与按比特序列分组加密,每次处理一个比特分组(称为分组密码)。(2 2)明文与密文)明文与密文明明文文是原始信息,即信息的原始形式。密密文文是明文经加密变换后的结果,即信息被加密处理后的形式。97.1 7.1 密码技术概述密码技术概述(4 4)加密算法)加密算法加加密密算算法法是进行明密变换的法则,即加密时使用的变换规则,复杂的规则可以用函数来表示并进行计算。加密算法的基本类型可以分为以下四种:换位:按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替:用一个或多个代替表将明文字母或数码等代替为密文;密本:用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱:用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种加密算法,既可单独使用,也可混合使用,以编制出各种复杂度很高的实用密码。107.1 7.1 密码技术概述密码技术概述(5 5)解密与解密算法)解密与解密算法解解密密是加密的逆过程,其目的是将密文破译为明文。解密是由某种解密算法实现的。解密算法是将密文恢复为明文的规则或变换函数。(6 6)密钥)密钥密密钥钥是一种专门信息,即参与的通讯双方在进行加密和解密的处理过程中需要掌握的专门信息,也是函数运算中使用的参数,它是为了有效控制加密和解密算法的实现。117.1 7.1 密码技术概述密码技术概述2 2 密码学密码学密密码码学学是以研究秘密通信为目的,即对所要传送的信息采取一种秘密保护,以防止第三者对信息的窃取。主要包含两部分内容:一是为保护自己的通信安全进行加密算法的设计和研究;二是为窃取对方情报而进行密码分析,即密码破译技术。127.1 7.1 密码技术概述密码技术概述13密码编码学 主要研究密码变化的客观规律,设计难以被敌方或对手攻破、只能被已方知道的以不同加密算法构成的安全密码体制,即怎样编码,采用什么样的密码体制以保证信息被安全地加密,是研究信息保密的科学和技术。密码分析学 主要研究密码变化的客观规律,设计难以被敌方或对手攻破、只能被已方知道的以不同加密算法构成的安全密码体制,即怎样编码,采用什么样的密码体制以保证信息被安全地加密,是研究信息保密的科学和技术。密码学作为一门学科,属于数学的一个分支,是密码编码学和密码分析学的统称。2 2 密码学密码学137.1 7.1 密码技术概述密码技术概述14 密密码码体体制制也叫密码系统,是指能完整地解决信息通信安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的系统。任何一种密码体制都包含5个要素:明文、密文、密钥、加密算法和解密算法。v 明文:是加密输入的原始信息,通常用 m或 p表示。v 密文:是加密处理后输出的信息,通常用 c表示。v 密钥:是参与密码变换的参数,通常用 k表示。v 加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用E表示。v 解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程,通常用D表示。3 3 密码体制密码体制147.1 7.1 密码技术概述密码技术概述3 3 密码体制密码体制 有实用意义的密码体制有实用意义的密码体制需要满足:p=Dp=D(KdKd,E E(KeKe,p p)函数,即用加密算法得到的密文总是能用一定的解密算法恢复出原始的明文来。而密文消息的获取同时依赖于初始明文和密钥的值,如图3-1所示。图7-1 秘密通信过程157.1 7.1 密码技术概述密码技术概述3 3 密码体制密码体制 其其过过程程可以表述为:若发送者要传送的明文p,在传送前,利用密钥K将p经加密算法变换为密文c由通信通道发给接收者,接收者根据密钥K利用解密算法变换将密文c变为明文p。从其过程可以看出,一个密码体制的安全性依赖于密钥K的个数和加密算法的复杂程度。167.1 7.1 密码技术概述密码技术概述对于一个实际可用的密码系统,需满足如下特性:对于一个实际可用的密码系统,需满足如下特性:每一个加密函数 E和每一个解密函数 D都能有效地计算。破译者取得密文后将不能在有效的时间或成本范围内破解出密钥或明文。一个密码系统是安全的必要条件:穷举密钥搜索是不可行的,因为密钥空间非常大。3 3 密码体制密码体制7.1 7.1 密码技术概述密码技术概述古代手工加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。7.1.27.1.2密码学的发展密码学的发展1 1 古代手工加密阶段古代手工加密阶段187.1 7.1 密码技术概述密码技术概述 公元前400年,斯巴达人发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。1 1 古代手工加密阶段古代手工加密阶段197.1 7.1 密码技术概述密码技术概述 古代的“兵符”就是用来传达信息的密令。据宋曾公亮、丁度等编撰的武经总要“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。连闯荡江湖的侠士和被压迫起义者都各自有一套秘密的黑道行话和地下联络的暗语。1 1 古代手工加密阶段古代手工加密阶段207.1 7.1 密码技术概述密码技术概述古典密码的加密方法一般是文字置换,通过手工或机械变换方式实现。古典密码系统已经初步体现出现代密码体制的雏形,它比古代手工加密方法复杂,其变化较小。古典密码的代表密码体制主要有:单表代换密码、多表代换密码及转轮密码。古典密码体制的主要特点是数据的安全基于算法的保密。在古典密码发展阶段,计算机的开山鼻祖图灵(ATuring)做出了重大贡献,下图3-2是他在二战期间在英国破译德军密码的基地。2 2 古典密码阶段古典密码阶段图图3-2 3-2 图灵在二战期间英国破译德军密码的基地图灵在二战期间英国破译德军密码的基地217.1 7.1 密码技术概述密码技术概述古古典典密密码码发发展展过过程程中中的的主主要要事事件件公元前公元前1 1世纪世纪著名的恺撒著名的恺撒(Caesar)(Caesar)密码被用于高卢战争中,这是一种简单易行的单密码被用于高卢战争中,这是一种简单易行的单字母代换密码。字母代换密码。公元公元9 9世纪世纪阿拉伯的密码学家阿尔阿拉伯的密码学家阿尔金迪提出解密的频度分析方法,通过分析计金迪提出解密的频度分析方法,通过分析计算密文字符出现的频率破译密码。算密文字符出现的频率破译密码。公元公元1616世纪世纪中期中期意大利的数学家卡尔达诺发明了卡尔达诺漏格板,覆盖在密文上,可意大利的数学家卡尔达诺发明了卡尔达诺漏格板,覆盖在密文上,可从漏格中读出明文,是较早的一种分置式密码从漏格中读出明文,是较早的一种分置式密码 1834 1834年年伦敦大家的实验物理学教授惠斯顿发明了电机,为密码通信能够采用伦敦大家的实验物理学教授惠斯顿发明了电机,为密码通信能够采用在线加密技术提供了前提条件。在线加密技术提供了前提条件。1914 1914年年在德俄交战过程中,德军破译了俄军的电文,从中得知重要情报,使在德俄交战过程中,德军破译了俄军的电文,从中得知重要情报,使德军取得全胜。这说明当时交战双方已使用电机开展了密码战。德军取得全胜。这说明当时交战双方已使用电机开展了密码战。1918 1918年年美国数学家吉尔伯特美国数学家吉尔伯特维那姆发明一次性便笺密码,它是一种理论上维那姆发明一次性便笺密码,它是一种理论上绝对无法破译的加密系统,被誉为密码编码学的圣杯。但产生和分发绝对无法破译的加密系统,被誉为密码编码学的圣杯。但产生和分发大量随机密钥的困难使它的实际应用受到很大限制,从另一方面来说大量随机密钥的困难使它的实际应用受到很大限制,从另一方面来说安全性也更加无法保证。安全性也更加无法保证。1920 1920年年美国电报电话公司的弗纳姆发明了弗纳姆密码,其原理是利用电传打美国电报电话公司的弗纳姆发明了弗纳姆密码,其原理是利用电传打字机的五单位码与密钥字母进行模字机的五单位码与密钥字母进行模2 2相加。这种密码体制第一次使加相加。这种密码体制第一次使加密和解密由电子电路,机器来实现,因而在近代密码学发展史上占有密和解密由电子电路,机器来实现,因而在近代密码学发展史上占有重要地位。重要地位。227.1 7.1 密码技术概述密码技术概述(1 1)秘密钥密码体制模型)秘密钥密码体制模型1949年香农在“保密系统的通信理论”中首先将信息论引入了密码,奠定了密码学的理论基础,从而使密码成为一门科学。该文利用数学方法对信息源、密钥源、接收和截获的密文进行了数学描述和定量分析,提出了通用的秘密钥密码体制模型。(2 2)数据加密标准)数据加密标准DESDES1975年1月15日,美国国家标准局颁布DES(Data Encryption Standard数据加密标准)为国家标准,并于1977年颁布其可用于非国家保密机关。该系统完全公开了加密、解密算法。此举突破了早期密码学的信息保密的单一目的,使得密码学得以在商业等民用领域的广泛应用。3 3 现代密码学现代密码学237.1 7.1 密码技术概述密码技术概述24(3 3)公钥密码体制)公钥密码体制1976年,美国密码学家迪菲和赫尔曼在一篇题为“密码学的新方向”一文中提出了一个崭新的思想,建立了著名的公钥密码体制,不仅加密算法本身可以公开,甚至加密用的密钥也可以公开。若存在这样的公钥体制,就可以将加密密钥像电话簿一样公开,任何用户当它想经其他用户传送加密信息时,就可以从这本密钥薄中查到该用户的公开密钥,用它来加密,而接收者能用只有它所具有的解密密钥得到明文。任何第三者不能获得明文。公钥密码体制的主要特点是数据的安全基于密钥而不是算法的保密。3 3 现代密码学现代密码学247.1 7.1 密码技术概述密码技术概述(4 4)认证体制)认证体制按照人们对密码的一般理解,密码是用于将信息加密而不易破译,但在现代密码学中,由于网络的应用,除了信息保密外,还有另一方面的要求,即信息安全体制还要能抵抗对手的主动攻击。所谓主动攻击指的是攻击者可以在信息通道中注入他自己伪造的消息,以骗取合法接收者的相信。主动攻击还可能窜改信息,也可能冒名顶替,这就产生了现代密码学中的认证体制。该体制的目的就是保证用户收到一个信息时,他能验证消息是否来自合法的发送者,同时还能验证该信息是否被窜改。在许多场合中,如电子汇款,能对抗主动攻击的认证体制甚至比信息保密还重要。3 3 现代密码学现代密码学7.1 7.1 密码技术概述密码技术概述(5 5)现代密码编码学的特点)现代密码编码学的特点现代密码编码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的是将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读;信息认证的目的在于信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。3 3 现代密码学现代密码学7.1 7.1 密码技术概述密码技术概述(6 6)现代密码分析学的特点)现代密码分析学的特点现代密码分析学与密码编码学不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。273 3 现代密码学现代密码学7.1 7.1 密码技术概述密码技术概述密密码码技技术术是在编码与破译的斗争实践中逐步发展起来的,从手工技术、机械技术到计算机技术,随着先进科学技术的应用,已成为一门综合性的尖端技术科学。7.1 7.1 密码技术概述密码技术概述具体来说密码技术主要应用于信息的保密、身份的确认、数据的完整性等领域。7.1.37.1.3密码技术的应用领域密码技术的应用领域 密码技术应用于通信线路上信息的保护。一方面,防止传输中的信息被非法窃听导致失密,另一方面,防止信息的内容被恶意攻击者非法地篡改。信息用密码技术加密处理后进行存储,保证只有掌握解密密钥的合法用户才能够存取数据,得到正确的明文。297.1 7.1 密码技术概述密码技术概述 密码技术可以用于识别通信双方的真实性。这种对存取数据和发来电文的对方的合法性进行确证的方法叫“验证”。不可否认性服务是对它包含对源和目的双方的证明,通常的情况下,不可否认服务是一种数字签名服务。除此之外,密码技术还广泛地应用于计算机网络安全领域的其它方面,例如以将密码技术应用在电子商务中;应用于增值税发票中;应用于银行支票鉴别;应用于个人移动通信中,大大增强了通信信息的保密性等等。307.1 7.1 密码技术概述密码技术概述密码协议,也称作安全协议,是使用密码技术的协议。参与密码协议的人可能是朋友和完全信任的人,也可能是敌人和互相完全不信任的人,相互之间不信任的各方能够在网络上完成这些协议。密码协议包含某种密码算法,但通常,协议的目的不仅仅是为了简单的秘密性。参与协议的各方可能为了计算一个数值想共享它们的秘密部分、共同产生随机系列、确定互相的身份、或者同时签署合同。在协议中使用密码的目的是防止或发现偷听者和欺骗。7.1.47.1.4密码学的新技术和新概念密码学的新技术和新概念1 1 密码协议密码协议317.1 7.1 密码技术概述密码技术概述20世纪80年代初,S.Goldwasser等人提出了零知识证明这一概念。从本质上讲,零知识证明是一种协议。零知识证明必须包括两个方面,一方为证明者,另一方为验证者。证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息。零知识证明目前在密码学中得到了广泛的应用,尤其是在认证协议、数字签名方面,人们利用数字签名设计出了大量优良的算法。2 2 零知识证明零知识证明327.1 7.1 密码技术概述密码技术概述 盲盲签签名名是指消息拥有者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术。其实现步骤为:其实现步骤为:3 3 盲签名盲签名33(3)消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。(2)而后让签名者对盲化的消息进行签名;(1)消息拥有者将消息盲化;7.1 7.1 密码技术概述密码技术概述 3 3 盲签名盲签名一个好的盲签名应该具有以下的性质:一个好的盲签名应该具有以下的性质:不可伪造性。不可抵赖性。盲性。不可跟踪性。34满足上面几条性质的盲签名,被认为是安全的。这四条性质既是设计盲签名所应遵循的标准,又是判断盲签名性能优劣的根据。盲签名因为具有盲性这一特点,可以有效保护所签署消息的具体内容,目前在电子商务和电子选举等领域有着广泛的应用。7.1 7.1 密码技术概述密码技术概述 发送者Alice向接收者Bob承诺一个比特b(如果是多个比特,即比特串t,则称为比特串承诺)。要求:在第1阶段(即承诺阶段)Alice向Bob承诺这个比特b,但是Bob无法知道b的信息;在第2阶段(即揭示阶段)Alice向Bob证实他在第1阶段承诺的确实是b,但是Alice无法欺骗Bob(即不能在第2阶段篡改b的值)。比比 特特 承承 诺诺(Bit(Bit Commitment,BC)Commitment,BC)是密码学中的重要基础协议,它可用于构建零知识证明、可验证秘密分享、硬币投掷等协议,同时和茫然传送一起构成安全双方计算的基础,是信息安全领域研究的热点。4 4 比特承诺比特承诺35基本思想基本思想7.1 7.1 密码技术概述密码技术概述一个比特承诺方案必须具备下列性质:一个比特承诺方案必须具备下列性质:正确性:如果张三和李四均诚实地执行协议,那么在揭示阶段李四将正确获得张三承诺的比特b。保密性:在揭示阶段之前李四不能获知b的信息。绑定性:在承诺阶段结束后,李四只能在揭示阶段获得唯一的b。367.1 7.1 密码技术概述密码技术概述量量子子密密码码技技术术是量子物理学和密码学相结合的一门新兴学科,它是利用量子物理学方法实现密码思想的一种新型密码体制,也是一种实现保密通信的新方法,它的最大优势是具有可证明安全性和可检测性。5 5 量子密码技术量子密码技术377.1 7.1 密码技术概述密码技术概述(1 1)量子密码技术的理论基础)量子密码技术的理论基础(2 2)量子密码最基本的原理)量子密码最基本的原理 量子密码技术的理论基础是量子力学,量子密码学利用物理学原理保护信息。量子密码最基本的原理是“量子纠缠”,即一个特殊的晶体将一个光子割裂成一对纠缠的光子。大多数量子密码通信利用的都是光子的偏振特性。(3 3)当前量子密码技术研究的核心内容)当前量子密码技术研究的核心内容 量子密码技术研究的核心内容是如何利用量子技术在量子通道上安全可靠地分配密钥。38 5 5 量子密码技术量子密码技术7.1 7.1 密码技术概述密码技术概述(4 4)量子密码技术的应用)量子密码技术的应用 量子密码技术的应用分为两类:一是利用量子计算机对传统密码体制的分析;二是利用单光子的测不准原理在光纤一级实现密钥管理和信息加密,即量子密码体制。(5 5)量子密码技术研究现状)量子密码技术研究现状 到目前为止,有关量子密码的成果虽然很多,但尚有许多问题有待于深入研究。比如,寻找新的可用量子效应以便提出更多高效的量子密钥分配协议,开发量子加密算法以便形成和完善量子加密理论,在诸如量子身份认证、量子签名等方面改进已有方案或推陈出新,还有研究量子攻击算法和量子密码协议的安全性分析等。397.1 7.1 密码技术概述密码技术概述 密密码码技技术术是对信息进行加密与解密的技术,加解密技术的核心是加密算法与解密算法,通称为加密算法。加密算法是实施具体加密的基础,它决定了加密的强度、运算量以及它的实用性。加加密密算算法法可以通过软件加密与硬件加密两种方式来实现。407.2 7.2 密码技术典型加密算法密码技术典型加密算法 代代换换就是将明文中的一个字母由其它字母、数字或符号替代的一种方法。在代换密码中常见的加密算法有:单表代换和多表代换。7.2.17.2.1古典密码算法古典密码算法 古典密码采用手工或机械操作实现加解密,实现起来相对简单。古典密码大体上可分为两类:代换密码与置换密码。单单表表代代换换就是明文的一个字符用相应的一个密文字符代替。加密过程中是从明文字母表到密文字母表的一一映射。它可以分为两类,分别为棋盘密码和凯撒密码。417.2 7.2 密码技术典型加密算法密码技术典型加密算法 1 1代换密码代换密码(1 1)单表代换)单表代换棋盘密码棋盘密码1 12 23 34 45 51 1a ab bc cd de e2 2f fg gh hijijk k3 3l lm mn no op p4 4q qr rs st tu u5 5v vw wx xy yz z棋盘密码是将26个字母放在55的方格里,i,j放在一个格子里,具体情况如表3.1所示。这样,每个字母就对应了由两个数构成的字符,是该字母所在行的标号,是列标号。如c对应13,s对应43等。如果接收到密文为棋盘密码43 15 13 45 42 15 32 15 43 43 11 22 15则对应的明文即为secure message。表表7.1 7.1 棋盘密码棋盘密码427.2 7.2 密码技术典型加密算法密码技术典型加密算法 凯撒密码是将英文字母向前推移k位。如k=5,则密文字母与明文有如下对应关系:如果收到密文为XJHZWJRJXXFLJ,则对应明文也为 secure message。此时,k就是密钥。为了传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对0,b对1,y对24,z对25。这样凯撒加密变换实际就是一个同余式:(2 2)单表代换)单表代换凯撒密码凯撒密码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 zF G H I J K L M N O P Q R S T U V W X Y Z A B C D E437.2 7.2 密码技术典型加密算法密码技术典型加密算法 为了提高凯撒密码的安全性,人们对凯撒密码进行了改进,选取k,b两个参数,其中要求k与26互素,明文与密文的对应规则为:c=km+b mod 26 447.2 7.2 密码技术典型加密算法密码技术典型加密算法c=m+k mod 26(m是明文字母对应的数,c是与明文对应的密文的数)若明文M为data security,密钥k=best,将明文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为 C=EELT TIUN SMLR多多表表代代换换是一一种多表式密码,即一个明文字母可以表示成多个密文字母,由法国密码学家维吉尼亚于1586年提出,因此通常称为维吉尼亚密码。其其原原理理:给出密钥K=k1k2kn,若明文为=m1m2mn,则对应的密文为例如例如 从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程度就越高。因为它对每个明文都采用了不同的密钥进行加密,也称为一次一密密码技术,它是一种理论上不可破译的密码技术。C=c1c2cn其中ci=(mi+ki)mod 26。457.2 7.2 密码技术典型加密算法密码技术典型加密算法置置换换密密码码是把明文中的字母或数字重新排列,字母或数字本身不变,但顺序被打乱了,位置发生了改变,这样所编成的密码称为,又称换位密码。置换只不过是一个简单的换位,每个置换都可以用一个置换矩阵Ek来表示。每个置换都有一个与之对应的逆置换Dk。2 2 置换密码置换密码明文:明文:zhe shi zhi huan mi mazhe shi zhi huan mi ma密文:密文:ami mna uhi hzih se hzami mna uhi hzih se hz例如例如 从上述的例子可以看出置换密码的特点是对明文L长字母组中的字母位置进行重新排列,而每个字母本身并不改变。这是一种倒序的置换密码,显然安全性很弱,很容易被破译。467.2 7.2 密码技术典型加密算法密码技术典型加密算法对对称称密密钥钥算算法法,即发送和接收数据的双方必须使用相同的密钥对明文进行加密和解密运算,加密密钥能够从解密密钥中推算出来,反过来也成立。通常说来,对称密钥算法简单高效,密钥简短,难以破译。但是,在网络环境下存在相应的不安全性。特点:加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数的对称算法中,加解密的密钥是相同的。安全性依赖于所持有密钥的安全性。477.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2048对称密钥算对称密钥算法法数据加密标准数据加密标准 3DES 3DES IDEA IDEA算法算法高级加密标准高级加密标准7.2 7.2.2.2 对称对称密钥算法密钥算法数据加密标准(Data Encryption Standard)是目前广泛采用的对称加密算法。采用分组密码的设计思想实现加解密2024/7/2049DES的加密过程:对64位明文分组进行初试置换。分左右两部分,分别经过16轮迭代。在进行循环移位与变换。最后进行逆变换得出密文。加密与解密使用相同的密钥,因而属于堆成密码体制。7.2 7.2.2.2 对称对称密钥算法密钥算法 DES算法将信息分成64比特的分组,并使用56比特长度的密钥。它对每一个分组使用一种复杂的变位组合、替换,再进行异或运算和其他一些过程,最后生成64比特的加密数据。对每一个分组进行19步处理,每一步的输7-3所示为DES算法的加密流程。图7-3 DES算法加密流程 DES DES算法算法流程流程507.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2051DES算法流程在加密前,现对整个明文进行分组,每个组常委64bit48bit的轮密钥ki,轮密钥是从用户输入的密钥k产生的。7.2 7.2.2.2 对称对称密钥算法密钥算法(2 2)加密算法的安全性)加密算法的安全性 DES算法的加密和解密密钥相同,属于一种对称加密技术。对称加密技术从本质上说都是使用替代密码和换位密码进行加密的。(3 3)DESDES的破译的破译 DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。但今天,只需二十万美元就可以制造一台破译DES的特殊的计算机,所以现在 DES 对要求“强壮”加密的场合已经不再适用了。527.2 7.2 密码技术典型加密算法密码技术典型加密算法2024/7/2053IP置换表和IP-逆置换表IP置换表 16位*4 IP-置换表 16位*458501234261810262544638302214657494133251791615345372921135605244362820124645648403224168595143352719113635547393123157408481656246432386461454226230364441252206028342421050185826397471555236331375451353216129353431151195927331419491757257.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2054Li-1(32比特)比特)Ri-1(32比特)比特)Li(32比特)比特)48比特寄存器比特寄存器选择扩展运算选择扩展运算E48比特寄存器比特寄存器子密钥子密钥Ki(48比特)比特)32比特寄存器比特寄存器选择压缩运算选择压缩运算S置换运算置换运算PRi(32比特)比特)Li=Ri-1f f函数函数f函数7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2055S盒的思想7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2056S盒变换例子:假设S1盒的6位输入是110100,其第1位和第6位组合为10,它对应S1盒的第二行;中间4位组合为1010,它对应S1盒的第10l0列。S1盒的第2行第10列的数是9(行和列的计数均从0开始而非1开始),9的二进制数为1001。1001即为输出,则1001就代替了110100.7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/20571441312151193106125907015741421311061211953941149136211151297310501512924917511314100613S17.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2058S S盒盒变变换换置换运算P 8个盒的32位输出再经过一个线性变换(使用P置换表),得32位输出。7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2059子密钥的生成过程轮密钥是从用户输入的密钥k产生。置换选择1C0D0LS2LS1C1D1LS1LS2LS16LS16D16置换选择2置换选择2k1k16在DES中每一轮迭代都使用了一个轮密钥。7.2 7.2.2.2 对称对称密钥算法密钥算法C162024/7/2060置换选择1输入64bit的密钥k(用户密钥56bit,奇偶校验8bit)经过一个置换(置换选择1)进行重排。置换结果(56位)别当做两个28bit的量C0与D0,C0是置换结果的前28位,D0而是置换结果的后28位。C0C057 49 41 33 25 17 57 49 41 33 25 17 9 91 58 50 42 34 1 58 50 42 34 26 1826 1810 2 59 51 43 10 2 59 51 43 35 2735 2719 11 3 60 52 19 11 3 60 52 44 3644 36D0D063 55 47 39 31 23 63 55 47 39 31 23 15157 62 54 46 38 7 62 54 46 38 30 2230 2214 6 61 53 45 14 6 61 53 45 37 2937 2921 13 5 28 20 21 13 5 28 20 12 412 4输入64位,置换结果56位7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2061LSi对Ci-1与Di-1进行循环左移,分别得到Ci与Di。循环的次数取决于ide值:如果i=1,2,9和16,循环左移的次数是1;否则循环左移的次数等于2。这些经过移位的值将作为下一个循环的输入。7.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2062置换选择2以Ci与Di作为另外一个固定的置换选择(置换选择2)的输入,所得到的置换结果即为第i轮迭代做需要的48位子密钥ki。输入56位,置换结果48位14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 327.2 7.2.2.2 对称对称密钥算法密钥算法2024/7/2063DES解密使用和加密相同的算法不同之处:密钥的次序不同,即:加密的密钥位为K1,K2,K3,K16。解密的密钥位为K16,K15,K14,K1。7.2 7.2.2.2 对称对称密钥算法密钥算法 3DES3DES又称Triple DES,是三重数据加密算法块密码的通称。是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。比起最初的DES,3DES更为安全。3DES是DES向AES过渡的加密算法,是DES的一个更安全的变形。2.3DES2.3DES具体实现方式具体实现方式 设设 Ek()Ek()和和 Dk()Dk()代代 表表DESDES算算法法的的加加密密和和解解密密过过程程,K K代代表表DESDES算算法法使使用用的的密密钥钥,P P代表明文,代表明文,C C代表密文,则代表密文,则3DES加 密 过 程 为:C=Ek3(Dk2(Ek1(P)3DES解 密 过 程 为:P=Dk1(EK2(Dk3(C)647.2 7.2 密码技术典型加密算法密码技术典型加密算法 IDEA是在1991年由瑞士联邦技术协会的Xuejia Lai和James Massey开发的。IDEA以64位的明文块进行分组,密匙长度为128位,主要采用3种运算:异或、模加、模乘。因为IDEA算法的密钥长度为128位,是DES密钥长度的两倍。它能够抵抗差分密码分析方法和相关密钥分析方法的攻击。科学家已证明IDEA算法在其8轮迭代的第4轮之后便不受差分密码分析的影响。假定穷举法攻击有效的话,那么即使设计一种每秒种可以试验10亿个密钥的专用芯片,并将10亿片这样的芯片用于此项工作,仍需1013年才能解决问题。目前,应当说IDEA是一种安全性好、效率高的分组密码算法。3 IDEA3 IDEA算法算法657.2 7.2.2.2 对称对称密钥算法密钥算法1997年9月,美国国家标准和技术研究所NIST征集AESAES(Advanced Encryption Standard)方案,以替代DES。4 4 高级加密标准高级加密标准667.2 7.2.2.2 对称对称密钥算法密钥算法能抵抗所有已知的攻击;在各种平台上易于实现,速度快;设计简单。分组密码算法,其分组长度和密钥长度相互独立,都可以改变设计原则:AESAES是一种区块加密标准,也是对称密钥加密中最流行的算法之一。基基本本要要求求:采用对称分组密码体制,加密数据块和密钥长度可以是128比特、192比特、256比特中的任意一个。密钥长度的最少支持为128、192、256,算法易于各种硬件和软件实现。4 4 高级加密标准高级加密标准加密过程加密过程 图图7-4 AES7-4 AES加密过程加密过程 677.2 7.2.2.2 对称对称密钥算法密钥算法公开密钥算法也称非对称密钥算法是现代密码学的最重要的成果。传统密码学重点研究如何保护敏感的通讯,这只是当今密码学主题研究的一个方面。当今密码学主题研究的另一个方面是如何对信息发送人的进行身份验证。公开密钥算法为这两方面的问题都给出了良好的解决方案。公开密钥算法的收信方和发信方使用的密钥互不相同,而且几乎不可能由加密密钥推导出解密密钥。公开密钥算法公开密钥算法687.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2069公开密码体制满足条件:加密与解密由不同的密钥完成;D(E(m)=m,即解密算法是加密算法的逆运算;只有掌握私钥的人才能计算出明文,也就是说任何第三方在截获密文和公钥,但是不知道私钥的情况下,很难计算出明文;E(D(m)=m,这一性质保证公钥密码系统可以实现“数字签名”功能。7.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2070基本通有信环境通信双方Alice,Bob两人需要在公开的网络环境中通信;Alice握有公钥Pa,私钥Ra;Bob握有公钥Pb,私钥Rb;假定:Alice和Bob通过公开渠道得到对方的公钥确实是真实的。7.2 7.2.3.3 非对称非对称密钥算法密钥算法AliceAliceBobBob公开密钥公开密钥PaPaPbPb私有密钥私有密钥RaRaRbRb对方的公钥对方的公钥PbPbPaPa通信双方的密钥持有状况2024/7/20717.2 7.2.3.3 非对称非对称密钥算法密钥算法保密通信服务(类似邮政服务)AliceAlice发送秘密消息给发送秘密消息给BobBobAlice用Bob的公钥对明文M加密,然后发送给Bob。C=E(M,Pb)Bob收到密文C之后,用自己的私钥成功解密密文。M=D(C,Rb)身份鉴别服务(类似签字或者签章)AliceAlice向向BobBob证实其身份证实其身份Alice用自己的私钥对明文m加密,然后发送给Bob。C=E(M,Ra)Bob收 到 密 文 C之 后,用Alice的公钥成功解密密文。M=D(C,Pa)2024/7/2072公开密码体制主要算法:RSA、背包算法、Elgamal、Rabin、DH算法等。他们的安全性全都基于复杂的数学难题。有三类系统算法目前被认为是安全有效的:7.2 7.2.3.3 非对称非对称密钥算法密钥算法大整数素因子分解系统(RSA)椭圆曲线离散对数系统(ECC)离散对数系统(DSA)RSARSA公公 开开 密密 钥钥 算算 法法 是 1977年 由 Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。它是当今最有影响力的公开密钥算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。目前,RSA被广泛应用于各种安全和认证领域,如Web服务器和浏览器信息安全、E-mail的安全和认证、对远程登录的安全保证和各种电子信用卡系统等。2 RSA2 RSA公开密钥算法公开密钥算法737.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2074欧拉函数所有模m和r同余的整数组成剩余类r 剩余类r中的每一个数和m互素的充要条件是r和m互素 和m互素的同余类数目用(m)表示,称m的Euler函数 当m是素数时,小于m的所有整数均与m互素,因此(m)=m-1对n=pq,p和q 是素数,(n)=(p)(q)=(p-1)(q-1)7.2 7.2.3.3 非对称非对称密钥算法密钥算法3 RSA3 RSA实现原理实现原理2024/7/2075欧拉函数举例欧拉函数举例 设p=2,q=5,那么 (10)=(2-1)*(5-1)=4 这4个模10的剩余类是:1,3,7,97.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2076 选两个保密的大素数p和q。计算n=pq。计算(n)=(p-1)(q-1),表示的是小于n并且与n互质的整数的个数,(n)是n的欧拉函数值。选一整数e,满足1e(n),且gcd(n),e)=1。计算d,满足d*e1 mod(n),即d是e在模(n)下的乘法逆元,因e与(n)互素,由模运算可知,它的乘法逆元一定存在。以e,n为公开钥,d,n为秘密钥。RSA(大素数)算法密钥的产生:7.2 7.2.3.3 非对称非对称密钥算法密钥算法4 RSA4 RSA算法的加密过程算法的加密过程2024/7/2077加密函数加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文分组m,作加密运算:c=me mod n解密函数对密文分组的解密运算为:m=cd mod nRSA的安全性是基于分解大整数的困难性假定7.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2078设 p=5,q=11,n=5*11=55;(n)=(5-1)(11-1)=40;选择e=3;公钥pk=3,gcd(3,40)=1;计算d,(d*e)mod 40=1;d=27(mod 40);私钥sk=27RSA算法举例7.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2079设:明文编码为:空格=00,A=01,B=02,Z=26,则明文为 HI=0809加密:C1=(08)3=512 17(mod55)C2=(09)3=729 14(mod55)N=14,Q=17,所以密文为NQ脱密:M1=Cd=(17)27 08(mod55)M2=Cd=(14)27 09(mod55)因此密文是HIRSA算法举例7.2 7.2.3.3 非对称非对称密钥算法密钥算法2024/7/2080 使用工具软件RSAEncrypter_sanPack,对文件的加密和解密;算法根据设置自动产生大素数p和q,并根据p和q的值产生模(n)、公钥(e)和密钥(d)7.2 7.2.3.3 非对称非对称密钥算法密钥算法5 RSA5 RSA算法案例算法案例6 6 公开密钥算法和对称密钥算法的比较公开密钥算法和对称密钥算法的比较对称密钥算法对称密钥算法公开密钥算法公开密钥算法密钥个数密钥个数1 1个个 2 2个个算法速度算法速度 较快较快较慢较慢算法对称性算法对称性对称,解密密钥可以从加密密对称,解密密钥可以从加密密钥中推算出来钥中推算出来 不对称,解密密钥不能从加密密钥中不对称,解密密钥不能从加密密钥中推算出来推算出来应用领域应用领域数据的加密和解密数据的加密和解密对数据进行数字签名、确认、鉴定、密对数据进行数字签名、确认、鉴定、密钥管理和数字封装等钥管理和数字封装等典型算法典型算法 DESDES、Triple-DESTriple-DES、RC2RC2、RC4RC4、IDEAIDEA和和SkipjackSkipjack等等Diffie-HellmanDiffie-Hellman、RSARSA、椭圆曲线加密等、椭圆曲线加密等一般要求一般要求 1 1、加密解密用相同密钥、加密解密用相同密钥 2 2、收发双方必须共享密钥、收发双方必须共享密钥1 1、加密解密算法相同,但使用不同密钥、加密解密算法相同,但使用不同密钥2 2、发送方拥有公钥,接收方拥有私钥、发送方拥有公钥,接收方拥有私钥安全性要求安全性要求 1 1、密钥必须保密、密钥必须保密 2 2、没有密钥,解密不可行、没有密钥,解密不可行1 1、解密密钥、解密密钥(私钥私钥)必须保密必须保密2 2、无私钥,解密不可行、无私钥,解密不可行3 3、知道算法和公钥以及若干密文不能确、知道算法和公钥以及若干密文不能确定私钥定私钥817.2 7.2 密码技术典型加密算法密码技术典型加密算法7.3.17.3.1消息认证消息认证827.7.3 3 密码技术应用密码技术应用在网络通信中,有些针对消息内的攻击方法:消息认证:对收到的消息进行验证,证明确实是来自声称的发送方,并且没有被修改过。如果在消息中加入时间及顺序信息,则可以完成对时间和顺序的认证。伪造消息篡改消息内容改变消息顺序消息重放或者延迟837.7.3.1 3.1 消息认证消息认证Message encryption用整个消息的密文作为认证标识。MAC(Message Authentication Code):一个公开函数,加上一个密钥产生一个固定长度的值作为认证标识。Hash function一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识。847.7.3.1 3.1 消息认证消息认证HashHash函数通用模型函数通用模型由Merkle于1989年提出u几乎被所有hash算法采用。具体做法:把原始消息M分成一些固定长度的块Yi。最后一块padding并使其包含消息M的长度。设定初始值CV0。压缩函数f,CVi=f(CVi-1,Yi-1)。最后一个CVi为hash值。857.7.3.1 3.1 消息认证消息认证MD5MD5(Message DigestMessage Digest)算法)算法1.输入的数据进行补位 补一个1然后补若干0使得数据位长度LEN对512求余的结果是448。即数据圹展至K*512+448位。2.用一个64位的数字表示数据的原始长度。数据长度100.00数据数据448位64位512位512位2024/7/20 863.初始化MD5参数四个32位整数(A,B,C,D)用来计算信息摘要,初始化使用的是十六进制表示的数字:A=0X01234567B=0X89abcdefC=0Xfedcba98D=0X765432104.数据压缩。7.7.3.1 3.1 消息认证消息认证2024/7/2087把输入的把输入的 128 128 位向量和位向量和 512512位的数据通过四轮计算,压位的数据通过四轮计算,压缩成缩成 128 128 位数据输出。位数据输出。上一次作为下一上一次作为下一次压缩的次压缩的 128 128 位位初始向量。初始向量。输出输出 128 128 位结果位结果 7.7.3.1 3.1 消息认证消息认证2024/7/20885.5.MD5MD5算法的应用算法的应用消息认证(完整性检验)消息认证(完整性检验)任何一个文件,无论是可执行程序、图像文件、临时文任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有件或者其他任何类型的文件,也不管它体积多大,都有且只有一个且只有一个独一无二的独一无二的MD5MD5信息值信息值。雪崩效应雪崩效应 如果这个文件被非常少量地修改,它的如果这个文件被非常少量地修改,它的MD5MD5值将随之值将随之发生较大地改变。发生较大地改变。校验方法校验方法 通过对比同一文件的通过对比同一文件的MD5MD5值,来校验这个文件是否被值,来校验这个文件是否被“篡改篡改”过。过。7.7.3.1 3.1 消息认证消息认证2024/7/20曹来成 89消息MD5摘要 消息 摘要消息 摘要摘要 MD5比较是否相同发送方接收方7.7.3.1 3.1 消息认证消息认证 数字签名类型数字签名类型使用对称密钥算法的数据签名 使用非对称密钥算法的数据签名使用报文摘要算法的数字签名907.7.3.2 3.2 数字签名数字签名(1)使用对称密钥算法的数据签名 由于这种方法是逐位进行签名的,所以只要有一位被改动过,接受方就得不到正确的数字签名,因此其安全性较好。其缺点是:签名太长,签名密钥及相应的验证信息不能重复使用,否则极不安全。91(2)使用报文摘要算法的数字签名 报文摘要是最主要的数字签名方法。该数字签名方法是将数字签名与要发送的信息紧密联系在一起,它更适合于电子商务活动。使用报文摘要算法进行数字签名的通用加密标准有:SHA-1,MD5等。7.7.3.2 3.2 数字签名数字签名92(3)使用非对称密钥算法的数据签名非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,使用公钥密码算法进行数字签名的加密标准有:RSA,DSA,Diffie-Hellman等。其签名和验证过程为:发送方首先用公开的单向函数对报文进行一次变换,得到数字签名,然后利用私有密钥对数字签名进行加密后,附在报文之后一同发出。接收方用发送方的分开密钥对数字签名进行解密交换,得到一个数字签名的明文。发送方的分钥可以由一个可信赖的技术管理机构,即认证中以(CA)发布。接收方将得到的明文通过单向函数进行计算,同样得到一个数字签名,再将两个数字签名进行对比。如果相同,则证明签名有效,否则无效。7.7.3.2 3.2 数字签名数字签名公钥密码体制实现数据签名的流程公钥密码体制实现数据签名的流程(1 1)A用其私钥加密文件,这便是签字过程;(2 2)A将加密的文件送到B;(3 3)B用A的公钥解开送来的文件。937.7.3.2 3.2 数字签名数字签名947.7.3.2 3.2 数字签名数字签名数字签名的实现数字签名的实现957.7.3.2 3.2 数字签名数字签名数字签名的创建过程数字签名的创建过程消息散列函数数字签名消息私有密钥散列结果数字签名送验证者只有私有密钥掌握者可签名数字时间戳可以算作数字签
展开阅读全文