1、计算机网络安全技术 第四讲第四讲 密码学基础和加密技密码学基础和加密技术术24.1 项目提出 某高校期末考试前期,老师们忙着准备期末考试试题。根据学校要求,相同或相近专业的不同班级同一门课程要采用同一试巻,恰巧张老师和李老师任教同一门课程C语言程序设计。 于是两位老师商量,先由张老师准备好试题,再由李老师提出修改意见。张老师出好A、B卷试题及参考答案后,通过电子邮件的方式传给李老师,以便李老师提出修改意见,邮件主题为“期末考试试题(C语言程序设计)”。3 谁料,在期末考试当天,在考场上竟出现了与考试试题几乎一模一样的资料,监考老师马上意识到事件的严重性,考题已泄露!这是一起严重的教学事故。 可
2、是,考题的内容应该只有张老师和李老师知道,张老师和李老师也从来没有把考题的内容告诉过第三个人,那么考题的内容究竟是怎么泄露的呢?是哪个环节出现了问题?谁应该对这起教学事故负责?44.2 项目分析 学校成立了教学事故调查组,经调查发现,张老师发给李老师的电子邮件没有经过加密处理,是以明文的方式传送出去的,在传送过程中,被第三方截获,对方再利用网络嗅探软件(如Sniffer),就可以看到邮件的具体内容,所以考题泄露了。54.2 项目分析 因为考试试卷是属于机密资料,在通过电子邮件传送试卷时,一定要采取加密等保密措施,防止邮件内容被第三方所窃取或篡改。 由于电子邮件的发送是要通过不同的路由器进行转发
3、的,直到到达电子邮件目的主机,攻击者完全可以在电子邮件数据包经过这些路由器的时候把它们截取下来而不被我们发现。从技术上看,没有任何方法能够阻止攻击者截取电子邮件数据包,因为你不能确定你的邮件将会经过哪些路由器,更不能确定你的邮件在经过这些路由器的时候,是否会有人把它截获下来。 6 也就是说,没有任何办法可以阻止攻击者截获需要在网络上传输的数据包。这样的结论是让人失望而又无奈的。那么,惟一的办法就是让攻击者截获数据包后无法组装还原成原始文件。手段当然是加密。我们以一定的特别方式编码我们的邮件,只有拥有密匙才能够阅读,而对于攻击者,得到的只是一堆无用的乱码。 还有,一般只能对邮件的正文内容或附件内
4、容进行加密,而不能对邮件主题进行加密,所以邮件主题中不要出现敏感信息,如“期末考试试题”,这样极容易引起第三方的好奇和兴趣,导致对邮件内容的破解和攻击。4.2 项目分析 7 假如我们要发送的邮件中含有附件,那么可以使用WinZip、WinRAR等这些常用的文件压缩工具对其进行加密。可是如果要发送的邮件中只是一些简单的文字信息的话如何才能保护我们的邮件内容呢? 我们可以用A-Lock来加密文本内容的电子邮件,使用它加密后的邮件可以避免第三者偷阅,就算我们在发邮件的时候填错了收件人的地址,将邮件发到了陌生人的手中,那么对方看到的也只是一堆乱码,而无法辨认邮件的具体内容。 8 一、加密的方法 步骤1
5、 在电子邮件客户端或WEB页面中写好信件的内容后,用鼠标选择将要加密的信件内容使其反显(图1)。9 步骤2 单击托盘区的A-Lock图标,在出现的菜单中选择“Encrypt/Decrypt”(加密/解密)项(图2)。 10 弹出“A-Lock - Password for Encryption”窗口(图3),输入加密密码,注意,未注册的用户密码不能超过7位。更遗憾的是其极具特色的“Password Book”功能也无法使用。11 步骤3 单击“OK”按钮,完成选定文字的加密。此时,你可以看到刚才选定的文本已经变成一堆乱码了。只在信件抬头与结尾处有“”及“”的提示性文字,表示加密成功(图4)。1
6、2 二、解密的方法步骤1 收到使用A-Lock加密的邮件后,解密端也必须安装有A-Lock软件。使用鼠标选定加密的文字,就是从到的那一部分,使其反显。步骤2 单击系统托盘区的A-Lock图标,在出现的菜单中选择“Encrypt/Decrypt”(加密/解密)项,弹出“A-Lock - Password for Decryption”窗口,输入解密密码。步骤3 单击“OK”按钮,完成加密文字的解密。这时,解密后的文字会出现在A-Lock 自带的文本编辑器中,我们可以在此对解密后的文字进行各种编辑工作。134.3 相关知识点 4.3.1 密码学的基础知识 密码学(Cryptography)一词来自
7、于希腊语中的短语“secret writing (秘密地书写) ”,是研究数据的加密及其变换的学科。 它集数学、计算机科学、电子与通信等诸多学科于一身,它包括两个分支:密码编码学和密码分析学。 密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法。 密码分析学则与密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。14 进入20世纪80年代,随着计算机网络,特别是因特网的普及,密码学得到了广泛的重视。 如今,密码技术不仅服务于信息的加密和解密,还是身份认证、访问控制、数字签名等多种安全机制的基础。 加密技术包括密码算法设计、密码分析、
8、安全协议、身份认证、消息确认、数字签名、密钥管理、密钥托管等技术,是保障信息安全的核心技术。15 待加密的消息称为明文 (plaintext) ,它经过一个以密钥 (key) 为参数的函数变换,这个过程称为加密,输出的结果称为密文 (ciphertext) , 然后,密文被传送出去,往往由通信员或者无线电方式来传送。我们假设敌人或者入侵者听到了完整的密文,并且将密文精确地复制下来。 然而,与目标接收者不同的是,他不知道解密密钥是什么,所以他无法轻易地对密文进行解密。有时候入侵者不仅可以监听通信信道 (被动入侵者) ,而且还可以将消息记录下来并且在以后某个时候回放出来,或者插入他自己的消息,或者
9、在合法消息到达接收方之前对消息进行篡改 (主动入侵者) 。16 使用C = EK(P)来表示用密钥K加密明文P得到密文C, P = DK(C)代表用密钥K解密密文C得到明文P的过程。由此可得到: DK(EK(P) = P 表示先加密后再解密,明文将被恢复。 这种标记法中E是加密函数,D是解密函数。17 密码学的基本规则是,必须假定密码分析者知道加密和解密所使用的方法。即密码分析者知道图中加密方法E和解密方法D的所有工作细节。 184.3.2 对称密码技术 现代密码算法不再依赖算法的保密,而是把算法和密钥分开,其中,算法可以公开,而密钥是保密的,密码系统的安全性在于保持密钥的保密性。 如果加密密
10、钥和解密密钥相同,或可以从一个推出另一个,一般称其为对称密钥或单钥密码体制。 对称密码技术加密速度快,使用的加密算法简单,安全强度高,但是密钥的完全保密较难实现,此外大系统中密钥的管理难度也较大。191. 对称密码技术原理 20对称密码系统的安全性依赖于以下两个因素: 第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的; 第二,加密方法的安全性依赖于密钥的保密性,而不是算法的秘密性。对称密码系统可以以硬件或软件的形式实现,其算法实现速度很快,并得到了广泛的应用。对称加密算法的特点是算法公开,计算量小、加密速度快、加密效率高。不足之处是通信双方使用同一个密钥,安全性得不到
11、保证。此外,如果有n个用户相互之间进行保密通信,若每对用户使用不同的对称密钥,则密钥总数将达到n(n-1)/2个,当n值较大时,n(n-1)/2值会很大,这使得密钥的管理很难。常用的对称加密算法有DES、IDEA和AES等。21 对称密钥加密技术典型代表有:古典密码技术分组密码技术224.3.3 古典密码技术 古典密码技术主要有两大基本方法: 代替密码:就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。 置换密码 (又称易位密码) :明文的字母保持相同,但顺序被打乱了。23替代密码1. 恺撒(Caesar)密码 明文的字母按照字母顺序,依次向前递推相同的位
12、数,就可以得到加密的密文,而解密的过程正好和加密的过程相反。例如:密钥例如:密钥k=3,明文明文network security,密文密文qhwzrun vhfxulwb(将字母依次前移将字母依次前移3位,即位,即K=3) 例如:密钥例如:密钥k=-3,明文明文battle on Sunday, 密文密文yxqqib lk Prkaxv (将字母依次后移将字母依次后移3位,即位,即K=-3) K=3K=-324如果令26个字母分别对应于整数0025(用二位数表示),a=01,b=02,c=03,y=25,z=00,则凯撒加密方法实际上是进行了一次数学取模为26的同余运算,即 C = P + K
13、 (mod 26)其中P是对应的明文,C是与明文对应的密文数据,K是加密用的参数,又称密钥。如:battle on Sunday对应的明文数据序列为020120201205 1514 192114040125若取密钥K为5时,则密文数据序列070625251710 2019 24001909060425置换密码2. 滚桶密码263. 棋盘密码例如:明文battle on Sunday,密文121144443115034330434533141154 (其中0表示空格) 。 274. 圆盘密码284.3.4分组密码技术1. DES算法DES算法的发明人是IBM公司的W.Tuchman和C.Mey
14、er。美国商业部国家标准局 (NBS) 于1973年5月和1974年8月两次发布通告,公开征求用于计算机的加密算法,经评选,从一大批算法中采纳了IBM的LUCIFER方案。该算法于1976年11月被美国政府采用,随后被美国国家标准局和美国国家标准协会 (ANSl) 承认,并于1977年1月以数据加密标准DES(Data Encryption Standard)的名称正式向社会公布,并于1977年7月15日生效。29 数据分组长度为64位(8字节),密文分组长度也是64位。 密钥长度为64位,其中有效密钥长度为56位,其余8位作为奇偶校验(第8、16、24、32、40、48、56和64位) 。
15、DES的整个体制是公开的,系统的安全性主要依赖密钥的保密,其算法主要由初始置换IP、16轮迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器构成。56位DES加密算法的框图如图5-8所示。3031 DES算法是一种对称算法(单钥加密算法)、既可用于加密,也可用于解密。 解密的过程和加密时相似,但密钥使用顺序刚好相反。 对于DES加密,除了尝试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。 DES算法可以通过软件或硬件来实现。 32 自DES成为美国国家标准以来,已经有许多公司设计并推广了实现DES算法的产品,有的设计专用LSI器件或芯片,有的用现成的微处理器实现,有的只限于实现D
16、ES算法,有的则可以运行各种工作模式。 针对DES密钥短的问题,科学家又研制了三重DES(或称3DES),把密钥长度提高到112或168位。332. 三重DES算法 也称TDES算法。三重DES算法需要执行三次DES的加密。一般三重DES算法使用两个DES密钥或三个密钥,如果是使用两个密钥,则密钥K1和K3可以相同,K2却不能相同。其算法步骤为:发送端用密钥K1进行DES加密;发送端用密钥K2对上一结果进行DES解密;发送端用密钥K1对上一结果进行DES加密;接收方则相应地使用K1解密,K2加密,再使用K1解密 。K1EMK2DK3EK3DCK2EK1DMC三重三重DES的加密解密过程的加密解
17、密过程353. IDEA算法 国际数据加密算法IDEA是由瑞士科学者提出的,它在1990年正式公布并在之后得到增强。 IDEA算法是在DES算法的基础上发展而来的,类似于三重DES。 它也是对64位大小的数据块加密的分组加密算法,密钥长度为128位,它基于“相异代数群上的混合运算”思想设计算法,用硬件和软件实现都很容易,且比DES在实现上快很多。 IDEA自问世以来,已经历了大量的验证,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。 IDEA的密钥长度为128位,比DES多一倍,这么长的密钥在今后若干年内应该是安全的。IDEA算法也是通过一系列的加密轮回操作的,每轮中也使用压缩函数进行
18、变换,只是不使用移位置换。IDEA中使用的运算有: 异或 模216加法 模216+1乘法这三种运算彼此混合可产生很好的效果。运算时IDEA把数据分为四个子分组,每个16位。374. AES算法 密码学中的AES(Advanced Encryption Standard,高级加密标准)算法,又称Rijndael加密算法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年
19、,高级加密标准已然成为对称密钥加密中最流行的算法之一。38 AES的基本要求是,采用对称分组密码体制,密钥长度为128、192、256位,分组长度为128位,算法应易于各种硬件和软件实现。 在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三重DES。但是DES迟早要被AES代替。 AES加密算法演示程序。39 几种对称加密算法的比较 404.3.5 非对称密码技术 非对称密码技术也称为公钥密码技术,研究的基本工具不再像对称密码技术那样是代换和置换,而是数学函数。1976年斯坦福大学的W.Diffie和M.E.
20、Heilinan 提出了这种新型密码体制。 若加密密钥和解密密钥不相同,或从其中一个难以推出另一个,则称为非对称密码技术或双钥密码技术,也称为公钥密码技术。 非对称密码算法使用两个完全不同但又完全匹配的一对密钥公钥和私钥。公钥是可以公开的,而私钥是保密的。 它可以实现多个用户用公钥加密的消息只能由一个用户用私钥解读,或反过来,由一个用户用私钥加密的消息可被多个用户用公钥解读。其中前一种方式可用于在公共网络中实现保密通信;后一种方式可用于在认证系统中对消息进行数字签名。42非对称密钥密码体制的通信模型43 非对称加密算法的主要特点如下: 用加密密钥PK(公钥)对明文m加密后得到密文,再用解密密钥
21、SK(私钥)对密文解密,即可恢复出明文m,即 DSK( EPK( m ) ) m 加密密钥不能用来解密,即 DPK( EPK( m ) ) m; DSK( ESK( m ) ) m 用PK加密的信息只能用SK解密;用SK加密的信息只能用PK解密。 从已知的PK不可能推导出SK。 加密和解密的运算可对调,即 EPK( DSK( m ) ) m44 非对称密码体制大大简化了复杂的密钥分配管理问题,但非对称加密算法要比对称加密算法慢得多 (约差1000倍) 。 因此,在实际通信中,非对称密码体制主要用于认证 (比如数字签名、身份识别等) 和密钥管理等,而消息加密仍利用对称密码体制。 非对称密码体制的
22、杰出代表是RSA加密算法。 451. RSA算法RSA加密算法是1977年由罗纳德李维斯特(Ron Rivest)、阿迪萨莫尔(Adi Shamir)和伦纳德阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。从那时直到现在,RSA算法一直是最广为使用的非对称加密算法。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024
23、位的RSA密钥基本安全,2048位的密钥极其安全。ISO在1992年颁布的国际标准X.509中,将RSA算法正式纳入国际标准。1999年,美国参议院通过立法,规定电子数字签名与手写签名的文件、邮件在美国具有同等的法律效力。RSA算法的安全性建立在数论中“大数分解和素数检测”的理论基础上。46(1) RSA算法表述 首先选择两个大素数p和q (典型地应大于10100,且p和q是保密的) 。 计算n = pq和z = (p - 1) (q - 1) (z是保密的) 。 选择一个与z互素 (没有公因子) 的数d。 找到e,使其满足de (mod z) = 1。 公钥是由(e,n)对组成,而私钥是由(
24、d,n)对组成。 为了加密一个消息P,可计算C = Pe(mod n) 。为了解密C,只要计算P = Cd(mod n)即可。 47 举例:选择p = 3,q = 11 (实际中p、q为大质数) 。 则n = pq = 33,z =(p - 1)(q - 1)= 20。 因为7与20互素,可以选择d = 7。 使等式7e (mod 20) = 1成立的7e值有21、41、61、81、101所以选择e = 3。 对原始信息P加密:即计算密文C = P3(mod 33) ,使用公开密钥为 (3、33) 。 对加密信息C解密:即计算明文P = C7(mod 33) ,使用私有密钥为 (7、33) 。
25、 P = 2k 33,取k = 5,即用5bit表示一个信息,有32(=25)种表示。分别用其中的126表示26个英文字母AZ。 如明文为SUZANNE可表示为19 21 26 01 14 14 05。4849(2) RSA安全性分析RSA的保密性基于一个数学假设:对一个很大的合数进行质因数分解是不可能的。若RSA用到的两个质数足够大,可以保证使用目前的计算机无法分解。即RSA公开密钥密码体制的安全性取决于从公开密钥 (n, e) 计算出私有密钥 (n, d) 的困难程度。想要从公开密钥 (n, e) 算出d,只能分解整数n的因子,即从n找出它的两个质因数p和q,但大数分解是一个十分困难的问题
26、。RSA的安全性取决于模n分解的困难性,但数学上至今还未证明分解模就是攻击RSA的最佳方法。出于安全考虑,建议在RSA中使用1024位的n,对于重要场合n应该使用2048位。502. Diffie-Hellman算法 1976年,Diffie和Hellman首次提出了公开密钥算法的概念,也正是他们实现了第一个公开密钥算法Diffie-Hellman算法。 Diffie-Hellman算法的安全性源于在有限域上计算离散对数比计算指数更为困难。51 Diffie-Hellman算法的思路是:首先必须公布两个公开的整数n和g,n是大素数,g是模n的本原元。当Alice和Bob要作秘密通信时,则执行以
27、下步骤。 Alice秘密选取一个大的随机数x(xn),计算X = gx mod n,并且将X发送给Bob。 Bob秘密选取一个大的随机数y(yn),计算Y = gy mod n,并且将Y发送给Alice。 Alice计算k = Yx mod n。 Bob计算k= Xy mod n。 这里k和k都等于gxy mod n。因此k就是Alice和Bob独立计算的秘密密钥。52 从上面的分析可以看出,Diffie-Hellman算法仅限于密钥交换的用途,而不能用于加密或解密,因此该算法通常称为Diffie-Hellman密钥交换算法。 这种密钥交换的目的在于使两个用户安全地交换一个秘密密钥以便于以后的
28、报文加密。 其他的常用公开密钥算法还有DSA算法(数字签名算法)、ElGamal算法等。53 非对称加密和对称加密各有特点,适用于不同的场合 练习题1.下列属于对称密码技术典型代表的是( ) A.古典密码技术 B.IDEA C.RSA D.DES2.以下关于非对称密码体制说法不正确的是( )A.在一个非对称密码体制中,一般存在公钥和私钥两个密钥B.该体制中仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的C.该体制中仅根据密码算法和加密密钥来确定解密密钥在计算上是可行的D.该体制中的私钥可以用来进行数字签名3.IDEA使用的密钥长度为( )A.56 B.64 C.128 D.1564.在密码学中,需要被变换的原消息被称为( ) A.密文 B.加密算法 C.密码 D.明文5.按照加密密钥和解密密钥是否相同,密码算法可分为( )A.分组密码和序列密码 B.对称密码和非对称密码 C.基于密钥保密的算法和基于算法保密的算法D.古典密码和现代密码