




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第2 2章章密码学概论密码学概论2 2.1 2.1 密码学的基本概念密码学的基本概念 2.2 2.2 古典密码体制古典密码体制 2.3 2.3 对称密码体制对称密码体制 2.4 2.4 非对称密码体制非对称密码体制 2.5 2.5 密钥管理密钥管理 2.6 2.6 软件与硬件加密技术软件与硬件加密技术 本章主要内容:本章主要内容:32.1 1 密码学的基本概念密码学的基本概念密码学密码学: : 密码学是关于加密和解密变换的一门科学,是密码学是关于加密和解密变换的一门科学,是保护数据和信息的有力武器。密码技术已经从早期的保护数据和信息的有力武器。密码技术已经从早期的军事和外交领域逐步延伸到金
2、融、交通、经济、科学、军事和外交领域逐步延伸到金融、交通、经济、科学、技术、信息、社会生活等各个方面,成为现代社会中技术、信息、社会生活等各个方面,成为现代社会中保护信息的重要方法。保护信息的重要方法。 4明文明文(plaintext): 被用来加密被用来加密的消息的消息密文密文(ciphertext): 明文明文经经变换变换形形成成的的隐蔽形式隐蔽形式加密加密 (encryption) : 从明文到密文的变换过程从明文到密文的变换过程解密解密 (decryption) : 从密文恢复到明文的过程从密文恢复到明文的过程。5密钥密钥( (key):key): 变换函数所用的一个控制参数变换函数所
3、用的一个控制参数;加密密钥加密密钥: : 与加密算法一起操作的密钥与加密算法一起操作的密钥;解密密钥解密密钥: : 与解密算法一起操作的密钥与解密算法一起操作的密钥;6明文明文明文明文密文密文加密算法加密算法解密算法解密算法密钥密钥密钥密钥加密和解密算法的操作通常都是在一组密钥的控加密和解密算法的操作通常都是在一组密钥的控制下进行的制下进行的, ,分别称为分别称为加密密钥加密密钥(Encryption Key) (Encryption Key) 和解密密钥和解密密钥(Decryption Key).(Decryption Key).加解密过程加解密过程:7明文明文M明文明文M密文密文C加密算法
4、加密算法E解密算法解密算法D密钥密钥k1密钥密钥k2加解密过程加解密过程: M=D(k2, E(k1, M)8注意:注意: 密码算法的保密性是基于保持密钥的秘密,不是密码算法的保密性是基于保持密钥的秘密,不是基于保持加解密算法的秘密。(密钥的安全性)基于保持加解密算法的秘密。(密钥的安全性) 现代密码学所使用的算法都是基于保持密钥的秘现代密码学所使用的算法都是基于保持密钥的秘密!密码算法可以公开。密!密码算法可以公开。9密钥分类:密钥分类: 基本密钥基本密钥(base key)。用于启动和控制某种用于启动和控制某种算法结构的密钥产生器,产生用于加密数据的密算法结构的密钥产生器,产生用于加密数据
5、的密钥流。钥流。 会话密钥会话密钥(session key)。两个用户在一次两个用户在一次通话或交换数据时采用的密钥,例如:数据加密通话或交换数据时采用的密钥,例如:数据加密密钥、文件加密密钥等。密钥、文件加密密钥等。 密钥加密密钥密钥加密密钥(key encrypting key)。对密对密钥进行加密时采用的密钥。钥进行加密时采用的密钥。 主密钥主密钥(host master key)。对密钥加密密对密钥加密密钥进行加密的密钥。钥进行加密的密钥。10密码分析密码分析( (破译、密码攻击破译、密码攻击) ): 密钥未知情况下进行的解密推演过程。密钥未知情况下进行的解密推演过程。 只需要保持密钥
6、的安全性,这使得密码算法可以只需要保持密钥的安全性,这使得密码算法可以公开,当然也就可以被分析和攻击。公开,当然也就可以被分析和攻击。11常用的密码分析常用的密码分析(密码攻击密码攻击)方法方法v唯密文攻击唯密文攻击(Ciphertext-only attack)(Ciphertext-only attack): 密码分析者拥有一些消息的密文,这些消息都密码分析者拥有一些消息的密文,这些消息都是用同样的加密算法来加密的。密码分析者的任务是用同样的加密算法来加密的。密码分析者的任务是尽可能多地恢复出明文来。当然,最好能够得到是尽可能多地恢复出明文来。当然,最好能够得到加密消息所使用的密钥,以便利
7、用该密钥尽可能多加密消息所使用的密钥,以便利用该密钥尽可能多地去解读其他的密文。地去解读其他的密文。12v已知明文攻击已知明文攻击(Known-plaintext attack)(Known-plaintext attack): 密码分析者不仅拥有一些消息的密文,而且还密码分析者不仅拥有一些消息的密文,而且还拥有这些密文对应的明文。密码分析者的任务就是拥有这些密文对应的明文。密码分析者的任务就是根据这些明文和密文的对应关系来推出加密密钥或根据这些明文和密文的对应关系来推出加密密钥或者推导出一个算法,使得该算法可以对用同一密钥者推导出一个算法,使得该算法可以对用同一密钥加密的任何消息进行解密。加
8、密的任何消息进行解密。13v选择明文攻击选择明文攻击(Chosen-plaintext attack)(Chosen-plaintext attack):分析者不仅拥有一些消息的密文和相应的明文,而分析者不仅拥有一些消息的密文和相应的明文,而且他们还可以进行有选择地加密明文。密码分析者且他们还可以进行有选择地加密明文。密码分析者可以选择特定的明文块,这些明文块可能会产生更可以选择特定的明文块,这些明文块可能会产生更多关于密钥的信息。分析者的任务就是推导用于加多关于密钥的信息。分析者的任务就是推导用于加密的密钥或者产生一个算法,使得该算法可以对用密的密钥或者产生一个算法,使得该算法可以对用同一密
9、钥加密得到的任何密文进行解密。同一密钥加密得到的任何密文进行解密。14v选择密文攻击选择密文攻击(Chosen-ciphertext attack)(Chosen-ciphertext attack): 密码分析者能够选择不同的密文,而且能够得密码分析者能够选择不同的密文,而且能够得到与之对应的明文。有时我们将选择明文攻击和选到与之对应的明文。有时我们将选择明文攻击和选择密文攻击一起称作选择文本攻击择密文攻击一起称作选择文本攻击(Chosen-text (Chosen-text attack)attack) 上述四种攻击目的是推导出加解密所使用的密钥。上述四种攻击目的是推导出加解密所使用的密钥
10、。15 衡量密码攻击的复杂度有两个方面:衡量密码攻击的复杂度有两个方面: 数据复杂度和处理复杂度数据复杂度和处理复杂度。 数据复杂度是指为了实施攻击所需输入的数据量。数据复杂度是指为了实施攻击所需输入的数据量。 而处理复杂度是指处理这些数据所需的计算量。而处理复杂度是指处理这些数据所需的计算量。 16 采用了密码体制的系统称为密码系统,密码系统是采用了密码体制的系统称为密码系统,密码系统是各种攻击的目标各种攻击的目标。非授权者、恶意攻击者通过各种办法。非授权者、恶意攻击者通过各种办法来窃取机密信息。例如:网络侦察、数据流分析、软件来窃取机密信息。例如:网络侦察、数据流分析、软件跟踪、搭线窃听、
11、电磁窃听等。跟踪、搭线窃听、电磁窃听等。 在一定的情况下,不知道密钥,仍然可能入侵密码在一定的情况下,不知道密钥,仍然可能入侵密码系统。对一个密码系统采取截获密文,经过分析推断出系统。对一个密码系统采取截获密文,经过分析推断出明文的攻击称为明文的攻击称为被动攻击被动攻击。而主动向系统串扰,采用删。而主动向系统串扰,采用删除、增添、更改、伪造等手段向系统注入假信息的攻击除、增添、更改、伪造等手段向系统注入假信息的攻击称为称为主动攻击主动攻击。密码系统密码系统17 古典密码体制有很多古典密码体制有很多,如如:恺撒加密法、维吉尼亚加恺撒加密法、维吉尼亚加密法、栅栏加密法、密法、栅栏加密法、ENIGM
12、A加密机等。在密级要求不加密机等。在密级要求不高的场合,这些密码体制仍然得到了广泛的应用。高的场合,这些密码体制仍然得到了广泛的应用。2.2 2.2 古典密码体制古典密码体制18 它是一种古典替换密码,名称源于古罗马的凯撒大帝。它是一种古典替换密码,名称源于古罗马的凯撒大帝。假设明文仅含有英文字母,以查码表方式进行一对一替假设明文仅含有英文字母,以查码表方式进行一对一替换。换。恺撒加密法恺撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ131415161718192021222324251
13、9 加密:加密:C=M+n (mod 26) 解密解密:M=C-n (mod 26) 密钥:密钥:n (0-25) 若若n=0,相当于没有加密相当于没有加密恺撒加密法恺撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242520 明文:明文:this is caesar cipher 密钥密钥:n=2 (C=M+n (mod 26) 密文:密文:vjku ku ecguct ekrjgt恺撒加密法恺撒加密法(Caesar cipher)(Caes
14、ar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242521密码分析密码分析()加解密算法已知()加解密算法已知()可能尝试的密钥只有()可能尝试的密钥只有26个个在计算机帮助下轻而易举得到明文在计算机帮助下轻而易举得到明文恺撒加密法恺撒加密法(Caesar cipher)(Caesar cipher)ABCDE FGHIJKLM0123456789101112NOPQRSTUVWXYZ1314151617181920212223242522 维吉尼亚密码是一种以移位代换为基础的周期代换密码,
15、为维吉尼亚密码是一种以移位代换为基础的周期代换密码,为18581858年法国密码学家维吉尼亚提出。年法国密码学家维吉尼亚提出。 首先构造一个维吉尼亚方阵:它的基本阵列是首先构造一个维吉尼亚方阵:它的基本阵列是2626行行2626列的方列的方阵阵. .方阵的第一行是按正常顺序排列的字母表方阵的第一行是按正常顺序排列的字母表, ,第二行是第一行左第二行是第一行左移循环移循环1 1位得到的位得到的, ,依此类推依此类推, ,得到其余各行得到其余各行. .然后在基本方阵的最然后在基本方阵的最上方附加一行上方附加一行, ,最左侧附加一列最左侧附加一列, ,分别依序写上分别依序写上a a到到z26z26个
16、字母个字母, ,表表的第一行与附加列上的的字母的第一行与附加列上的的字母a a相对应相对应, ,表的第二行与附加列上的表的第二行与附加列上的字母字母b b相对应相对应.最后一行与附加列上的字母最后一行与附加列上的字母z z相对应相对应. .如果把上面如果把上面的附加行看作是明文序列,则下面的的附加行看作是明文序列,则下面的2626行就分别构成了左移行就分别构成了左移0 0位,位,1 1位,位,2 2位位,2525位的位的2626个单表代换加同余密码的密文序列。加密个单表代换加同余密码的密文序列。加密时,按照密钥字的指示,决定采用哪一个单表。时,按照密钥字的指示,决定采用哪一个单表。 维吉尼亚加
17、密法(维吉尼亚加密法(Vigenere cipherVigenere cipher)23AABCDEFG HIJ.Y ZBBCDEFG HIJK.ZACCDEFG HIJKL.A BDDEFG HIJKLM .B CEEFG HIJKLM NC DFFG HIJKLM NOD EG G HIJKLM NO PE FHHIJKLM NO PQFGZZABCDEFG HI.X Y A B C D E F G H I J Y Z2425维吉尼亚密码例子:维吉尼亚密码例子:密钥字密钥字 encryptionencryptione 明明 文:文:publickeydistributionpublicke
18、ydistribution密密 文:文:thdcgrdmmqmfvrgqnbwbrthdcgrdmmqmfvrgqnbwbr由于密钥字比明文短,所以要重复书写密钥字,以得与由于密钥字比明文短,所以要重复书写密钥字,以得与明文等长的密钥序列。明文等长的密钥序列。 26Vigenre cipher-破译依然保留了字符频率某些统计信息依然保留了字符频率某些统计信息重码分析法:间距是密钥长度整数倍的相同子串有重码分析法:间距是密钥长度整数倍的相同子串有相同密文,反过来,密文中两个相同的子串对应的相同密文,反过来,密文中两个相同的子串对应的明文相同的可能性很大。明文相同的可能性很大。栅栏加密法栅栏加密法
19、(rail fence cipher)(rail fence cipher)与凯撒加密和维吉尼亚加密不同:变换加密。按锯齿与凯撒加密和维吉尼亚加密不同:变换加密。按锯齿形写在不同行然后重新排列。形写在不同行然后重新排列。27 明文:明文:this is an example of rail fence cipher t i i a e a p e f a l e c c p e h s s n x m l o r i f n e i h r 密文:密文:tiiaeapefaleccpehssnxmlorifneihr28变换密码的关键思想变换密码的关键思想 按一定规则写出明文,按另一规则读出密
20、文。按一定规则写出明文,按另一规则读出密文。 密钥:用于读密文的方法和写明文的方法密钥:用于读密文的方法和写明文的方法这类加密算法在今天已基本废弃不用。这类加密算法在今天已基本废弃不用。EnigmaEnigma加密机加密机德国发明,用于二战初期,后德国发明,用于二战初期,后被破译。被破译。2930一次一密密码一次一密密码v一次一密密码,由一次一密密码,由AT&TAT&T公司的公司的Gilbert VernamGilbert Vernam在在19171917年提出。发方和收方各保存一份一次一密乱码年提出。发方和收方各保存一份一次一密乱码本,它是一个大的不重复的真随机密钥字母集。发本,它是一个大的
21、不重复的真随机密钥字母集。发方用乱码本中的某一页密钥加密明文。加密方法:方用乱码本中的某一页密钥加密明文。加密方法:明文字符和乱码本密钥字符的模明文字符和乱码本密钥字符的模2626加法。加法。v每个密钥仅对一个消息使用一次。发方对所发的消每个密钥仅对一个消息使用一次。发方对所发的消息加密,然后销毁乱码本中用过的一页。收方有一息加密,然后销毁乱码本中用过的一页。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符,然后销毁乱码本中用过的去解密密文的每个字符,然后销毁乱码本中用过的一页。一页。312.3 2.3 对称密钥体制对称密钥体
22、制 按照加密解密使用的密钥是否相同按照加密解密使用的密钥是否相同, ,可以将可以将密码体制分为对称密码体制和非对称密码体制。密码体制分为对称密码体制和非对称密码体制。 对称密码体制对称密码体制: :加密密钥和解密密钥相同,加密密钥和解密密钥相同,也叫私钥体制(单钥体制)。也叫私钥体制(单钥体制)。 非对称密码体制非对称密码体制: :加密密钥和解密密钥不同,加密密钥和解密密钥不同,也叫公钥体制(双钥体制)。也叫公钥体制(双钥体制)。 对称密码体制有很多,如:对称密码体制有很多,如:DESDES数据加密标数据加密标准、准、IDEAIDEA密码算法、高级加密标准(密码算法、高级加密标准(AESAES
23、)等。)等。 32 双钥密码体制双钥密码体制 也称也称非对称密码体制非对称密码体制,其加密密钥与解密密钥不,其加密密钥与解密密钥不相同,从一个很难得出另一个。采用双密钥体制的相同,从一个很难得出另一个。采用双密钥体制的每个用户都有一对选定的密钥,其中一个是秘密的,每个用户都有一对选定的密钥,其中一个是秘密的,而另一个则可以公开,并可以象电话号码一样注册而另一个则可以公开,并可以象电话号码一样注册公布。因此,双钥密码体制也被称为公布。因此,双钥密码体制也被称为公钥体制公钥体制( (public key system)public key system)。 33公钥体制公钥体制特点特点: 加密和解
24、密能力分开,可实现多个用户加密的信息加密和解密能力分开,可实现多个用户加密的信息只能由一个用户解读(多对一),或者一个用户加密的只能由一个用户解读(多对一),或者一个用户加密的信息可以由多个用户解读(一对多)。信息可以由多个用户解读(一对多)。 前者可以用于公共网络中实现保密通信,后者可用前者可以用于公共网络中实现保密通信,后者可用于认证系统中对信息进行数字签名。由于该体制大大减于认证系统中对信息进行数字签名。由于该体制大大减少了多用户之间通信所需的密钥数,方便了密钥管理,少了多用户之间通信所需的密钥数,方便了密钥管理,这种体制特别适合多用户通信网络。这种体制特别适合多用户通信网络。34公钥体
25、制公钥体制特点特点:大部分是分组密码,只有概率密码体制属于大部分是分组密码,只有概率密码体制属于流密码流密码 每次对一块数据加密每次对一块数据加密 数字签名数字签名, ,身份认证身份认证 RSA,ECC,ElGamalRSA,ECC,ElGamal 加密解密速度慢加密解密速度慢35 按照每次加密的数据量大小,可以分为流密码体制和按照每次加密的数据量大小,可以分为流密码体制和分组密码体制。分组密码体制。流密码流密码(stream cipher) : 又称又称序列密码序列密码.序列密码每次加密一位或一字节的明序列密码每次加密一位或一字节的明文。即文。即对明文按字符逐位加密对明文按字符逐位加密分分组
26、密码组密码(block cipher): 将明文分成固定长度的组,用同一密钥和算法对每将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。一块加密,输出也是固定长度的密文。 36分组密码的一般设计原理分组密码的一般设计原理v分组密码是将明文消息编码表示后的数字(简分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为称明文数字)序列,划分成长度为n n的组(可的组(可看成长度为看成长度为n n的矢量),每组分别在密钥的控的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)制下变换成等长的输出数字(简称密文数字)序列,序列, 37 几个概
27、念:几个概念: 1 1)没有一种密码系统是无懈可击的,仅仅是)没有一种密码系统是无懈可击的,仅仅是 一个时间一个时间/ /空间复杂性问题。空间复杂性问题。 2 2)有多种密码体制,每一种体制又派生出多)有多种密码体制,每一种体制又派生出多 种算法,需要针对性折衷。种算法,需要针对性折衷。 3 3)加密程度可以根据应用安全的级别来定,)加密程度可以根据应用安全的级别来定, 一个系统可以有多种加密方式。一个系统可以有多种加密方式。 4 4)加密程度越高,算法越复杂,会降低系统)加密程度越高,算法越复杂,会降低系统 性能,需要实际性折衷。性能,需要实际性折衷。381)有很多)有很多密码密码体系体系,
28、各自产生的背景不同,各自产生的背景不同, 要要 了解他们各自适合的领域和范围。了解他们各自适合的领域和范围。2)每一种密码体系都有其优势和不足,扬)每一种密码体系都有其优势和不足,扬 长避短。长避短。3)每种密码体系算法是公开的,需要用的)每种密码体系算法是公开的,需要用的 时候可以知道到什么地方去查找这种标时候可以知道到什么地方去查找这种标 准化文本?知道如何使用。准化文本?知道如何使用。4)了解如何使用加密、解密工具。)了解如何使用加密、解密工具。如何对待密码体系?如何对待密码体系?39如何对待密码体系?如何对待密码体系?5)了解其如何产生?解决什么问题?优势)了解其如何产生?解决什么问题
29、?优势 和不足在哪里?还有什么问题没有解决?和不足在哪里?还有什么问题没有解决? 我们能不能解决?怎样解决?我们能不能解决?怎样解决?6)我们能够做的事:)我们能够做的事: 改进已有的算法,加深加密深度,提高加解改进已有的算法,加深加密深度,提高加解密速度,增强应用灵活性,检测和评估加解密的密速度,增强应用灵活性,检测和评估加解密的程度,发明新的加密解密算法和硬件。程度,发明新的加密解密算法和硬件。40 在所有分组密码中,数据加密标准(在所有分组密码中,数据加密标准(DES)可谓是)可谓是最著名的了。最著名的了。 DES密码是一种数据加密标准密码是一种数据加密标准,1977年正式公布,年正式公
30、布,供非机要部门的保密通信使用,是唯一由美国政府颁布供非机要部门的保密通信使用,是唯一由美国政府颁布的公开加密算法。的公开加密算法。 DES密码在过去密码在过去20年被正式作为国际标准采用,但年被正式作为国际标准采用,但业界认为其业界认为其56位密钥太短,而且其基本设计原理,如各位密钥太短,而且其基本设计原理,如各种不同排列选择、置换、叠代次数等没有清楚的说明,种不同排列选择、置换、叠代次数等没有清楚的说明,存在系统隐蔽陷阱的可能。存在系统隐蔽陷阱的可能。DESDES数据加密标准(数据加密标准(Data Encryption StandardData Encryption Standard)4
31、1 DES DES是一种对二进制数据进行加密的算法。数据是一种对二进制数据进行加密的算法。数据分组长为分组长为6464位,密钥长也为位,密钥长也为6464位。使用位。使用6464位密钥对位密钥对6464位的数据块进行加密,并对位的数据块进行加密,并对6464位的数据块进行位的数据块进行1616轮编轮编码。经过码。经过1616轮的迭代、乘积变换、压缩变换等,输出轮的迭代、乘积变换、压缩变换等,输出密文也为密文也为 6464位。位。DESDES算法的安全性完全依赖于其所用算法的安全性完全依赖于其所用的密钥。的密钥。42 目前,目前,DESDES密码体制已经从密码体制已经从5656位单一位单一DES
32、,DES,发展为发展为112112位的位的Double DESDouble DES,以及,以及Triple DESTriple DES和更多重的和更多重的DESDES,使加密程度和密码本身安全性得以大大提高,使加密程度和密码本身安全性得以大大提高。 43明文明文64 bit码码初始变换初始变换轮乘积变换轮乘积变换逆初始变换逆初始变换密文密文bit码码输出输出算法:算法:44输入64位比特明文IP置换表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置换表输出64位比特密文从图中可以看出,从图中可以看出,DES加密需要四个关键点:加密需要四个关键
33、点:1、IP置换表和置换表和IP-1逆置换逆置换表。表。2、函数、函数f。3、子密、子密钥钥Ki。4、S盒的工作原盒的工作原理。理。45 初始变换将初始变换将6464位数据按下表变换(位数据按下表变换(IPIP) 取得取得6464位的数据,如果数据长度不足位的数据,如果数据长度不足6464位,应该将其位,应该将其扩展为扩展为6464位(例如补零)位(例如补零)Initial Permutation (IP)Initial Permutation (IP)58 50 42 34 26 18 10 258 50 42 34 26 18 10 260 52 44 36 28 20 12 460 52
34、 44 36 28 20 12 462 54 46 38 30 22 14 662 54 46 38 30 22 14 664 56 48 40 32 24 16 864 56 48 40 32 24 16 857 49 41 33 25 17 9 157 49 41 33 25 17 9 159 51 43 35 27 19 11 359 51 43 35 27 19 11 361 53 45 37 29 21 13 561 53 45 37 29 21 13 563 55 47 39 31 23 15 763 55 47 39 31 23 15 746将输入的第将输入的第5858位换到第位
35、换到第1 1位,位,第第5050位换到第位换到第2 2位,位,.,依此类推,最后一位是原来的第依此类推,最后一位是原来的第7 7位。位。L0L0、R0R0则是换位输出后的两部分,则是换位输出后的两部分,L0L0是输出的左是输出的左3232位,位,R0 R0 是右是右3232位,位,例:设置换前的输入值为例:设置换前的输入值为D1D2D3.D64D1D2D3.D64,则经过,则经过初始置换后的结果为:初始置换后的结果为:L0=D58D50.D8L0=D58D50.D8; R0=D57D49.D7R0=D57D49.D7。47v进行进行1616轮迭代运算轮迭代运算 每轮都经过每轮都经过5 5步:密
36、钥变换、扩展置换、步:密钥变换、扩展置换、S S盒替换、盒替换、P P盒替换以及异或与交换。盒替换以及异或与交换。(1 1)密钥变换(生成每轮的子密钥)密钥变换(生成每轮的子密钥)48v取得取得6464位的密钥,每个第位的密钥,每个第8 8位作为奇偶校验位。位作为奇偶校验位。v舍弃舍弃6464位密钥中的奇偶校验位,根据下表(位密钥中的奇偶校验位,根据下表(PC-1PC-1)进行密钥变换得到进行密钥变换得到5656位的密钥,在变换中,奇偶校位的密钥,在变换中,奇偶校验位已被舍弃。验位已被舍弃。 49Permuted Choice 1 (PC-1)Permuted Choice 1 (PC-1)5
37、7 49 41 33 25 17 9 1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 258 50 42 34 26 18 10 259 51 43 35 27 19 11 3 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 429 21
38、13 5 28 20 12 450将变换后的密钥分为两个部分将变换后的密钥分为两个部分: : 开始的开始的2828位称为位称为C0C0, 最后的最后的2828位称为位称为D0D0。51v同时将同时将CICI、DIDI左移左移1 1位或位或2 2位,根据位,根据I I值决定循值决定循环左移的位数。见下表环左移的位数。见下表vI I: v1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16v左移位数:左移位数: v1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 11 1 2 2 2 2
39、2 2 1 2 2 2 2 2 2 152将将CIDICIDI作为一个整体按下表(作为一个整体按下表(PC-2PC-2)变换,得到)变换,得到4848位的位的KIKI ( (去掉去掉9 9、1818、2222、2525、3535、3838、4343、54)54)Permuted Choice 2 (PC-2)Permuted Choice 2 (PC-2)14 17 11 24 1 5 3 28 15 6 21 1014 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 223 19 12 4 26 8 16 7 27 20 1
40、3 241 52 31 37 47 55 30 40 51 45 33 4841 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 3244 49 39 56 34 53 46 42 50 36 29 3253v进行进行1616轮迭代运算轮迭代运算 每轮都经过每轮都经过5 5步:密钥变换、步:密钥变换、扩展置换扩展置换、S S盒替盒替换、换、P P盒替换以及异或与交换。盒替换以及异或与交换。54方法:选择运算方法:选择运算 将将3232位的位的RIRI按下表(按下表(E E)扩展为)扩展为4848位,输入位,输入3
41、232位数位数据,产生据,产生4848位输出然后将位输出然后将4848位子密钥和位子密钥和4848位的右明文位的右明文进行异或运算,将结果送入下一步。进行异或运算,将结果送入下一步。Expansion (E)Expansion (E)32 32 1 2 1 2 3 3 4 4 5 5 4 4 5 5 6 6 7 7 8 98 98 8 9 10 9 10 1111 12 13 1212 13 121313 1414 1515 16 1716 171616 1717 1818 1919 2020 21 20 21 20 2121 22 22 23 23 24 24 25252424 2525 2
42、626 2727 2828 29 28 29 28 2929 30 30 3131 32 32 1 1(2 2)扩展置换(对右明文)扩展置换(对右明文R R(I I)55输入64位比特明文IP置换表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置换表输出64位比特密文从图中可以看出,从图中可以看出,DES加密需要四个关键点:加密需要四个关键点:1、IP置换表和置换表和IP-1逆置换逆置换表。表。2、函数、函数f。3、子密、子密钥钥Ki。4、S盒的工作原盒的工作原理。理。56v进行进行1616轮迭代运算轮迭代运算 每轮都经过每轮都经过5 5步:
43、密钥变换、扩展置换、步:密钥变换、扩展置换、S S盒替盒替换换、P P盒替换以及异或与交换。盒替换以及异或与交换。57(3) S(3) S盒替换(核心部分)盒替换(核心部分)vS1S1、S2S2.S8.S8为选择函数,其功能是将为选择函数,其功能是将bitbit数据变数据变为为bit bit 数据数据 设设S S盒的盒的6 6位输入为位输入为b b1 1b b2 2b b3 3b b4 4b b5 5b b6 6, ,取取b b1 1b b6 6作为行数,作为行数,取取b b2 2b b3 3b b4 4b b5 5作为列数,交叉处的数字为输出。作为列数,交叉处的数字为输出。如:如:S1S1盒
44、中,若输入为盒中,若输入为101000,101000,那么输出为第二行第那么输出为第二行第四列的数字四列的数字4 4,用二进制表示就是,用二进制表示就是0100.0100.58S1S1盒盒14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 714 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 80 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 04 1 14 8 13 6 2 11 15
45、 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 1315 12 8 2 4 9 1 7 5 11 3 14 10 0 6 1359S2S215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 1015 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 53 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 150 14 7 11 10 4 13 1
46、 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 913 8 10 1 3 15 4 2 11 6 7 12 0 5 14 960S3S310 0 9 14 6 3 15 5 1 13 12 7 11 4 2 810 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 713 6 4 9 8 15 3 0
47、 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 121 10 13 0 6 9 8 7 4 15 14 3 11 5 2 1261S4S47 13 14 3 0 6 9 10 1 2 8 5 11 12 4 157 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 913 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 410 6 9 0 12 11
48、7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 143 15 0 6 10 1 13 8 9 4 5 11 12 7 2 1462v63S8S813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 713 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 21 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 87 11 4 1 9
49、 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 112 1 14 7 4 10 8 13 15 12 9 0 3 5 6 1164例:以为例说明例:以为例说明v在中,共有行数据,、在中,共有行数据,、v每行有列,、每行有列,、1414、1515列列v现输入现输入101100101100, 则行则行=10=10,列,列=0110=0110,坐标为(,坐标为(2 2,6 6)查表查表S1S1为为2 2,以,以4 4位二进制表示为:位二进制表示为:0010001065v进行进行1616轮迭代运算轮迭代运算 每轮都经过每轮都经
50、过5 5步:密钥变换、扩展置换、步:密钥变换、扩展置换、S S盒替盒替换、换、P P盒替换盒替换以及异或与交换。以及异或与交换。66(4 4)P P盒置换盒置换对对8 8个个S S盒的共盒的共3232位输出按下表(位输出按下表(P P)变换)变换. .16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 1016 7 20 21 29 12 28 17 1 15 23 26 5 18 31 102 8 24 14 32 27 3 9 19 13 30 6 22 11 4 252 8 24 14 32 27 3 9 19 13 30 6 22 11 4 2567v进
51、行进行1616轮迭代运算轮迭代运算 每轮都经过每轮都经过5 5步:密钥变换、扩展置换、步:密钥变换、扩展置换、S S盒替盒替换、换、P P盒替换以及盒替换以及异或与交换异或与交换。68(5)(5)异或和交换(每轮输出)异或和交换(每轮输出)v将左明文将左明文L0L0同第四步的结果进行异或运算形成新明同第四步的结果进行异或运算形成新明文(下轮的)文(下轮的)R1R1,将右明文,将右明文R0R0作为下轮的作为下轮的L1L1。 v如此反复,进行如此反复,进行1616轮的迭代。轮的迭代。 RI=P XOR LI-1 RI=P XOR LI-1。 LI=RI-1 LI=RI-1 得到得到R16R16和和
52、L16L16。69输入64位比特明文IP置换表L0R0Li = Ri-1 Ri = Lif(Ri-1,Ki)(i=1,2,16)迭代16次IP逆置换表输出64位比特密文从图中可以看出,从图中可以看出,DES加密需要四个关键点:加密需要四个关键点:1、IP置换表和置换表和IP-1逆置换逆置换表。表。2、函数、函数f。3、子密、子密钥钥Ki。4、S盒的工作原盒的工作原理。理。703 3 最后置换最后置换 IPIP-1-1v组合变换后的组合变换后的R16L16R16L16,按下表进行最后置换得到最终密文,按下表进行最后置换得到最终密文40 8 48 16 56 24 64 32 39 7 47 15
53、 55 23 63 3140 8 48 16 56 24 64 32 39 7 47 15 55 23 63 3138 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2938 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2936 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2736 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2734 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 34 2 42 10 50 18 5
54、8 26 33 1 41 9 49 17 57 25 71 DESDES的解密过程与加密过程几乎一样,唯一不的解密过程与加密过程几乎一样,唯一不同的是子密钥的使用顺序,正好相反。同的是子密钥的使用顺序,正好相反。 加密过程中子密钥的使用顺序是加密过程中子密钥的使用顺序是K1,K2K1,K2,K16K16,而在解密过程中子密钥的使用顺序是,而在解密过程中子密钥的使用顺序是K16K16,k15,K1k15,K1。72 DESDES用软件进行解码需要用很长时间,而用硬件用软件进行解码需要用很长时间,而用硬件解码速度非常快,但幸运的是当时大多数黑客并没解码速度非常快,但幸运的是当时大多数黑客并没有足够
55、的设备制造出这种硬件设备。有足够的设备制造出这种硬件设备。 在在19771977年,人们估计要耗资两千万美元才能年,人们估计要耗资两千万美元才能建成一个专门计算机用于建成一个专门计算机用于DESDES的解密,而且需要的解密,而且需要1212个个小时的破解才能得到结果。所以,当时小时的破解才能得到结果。所以,当时DESDES被认为是被认为是一种十分强壮的加密方法。一种十分强壮的加密方法。73 19971997年开始,年开始,RSARSA公司发起了一个称作公司发起了一个称作“向向DESDES挑挑战战”的竞技赛。的竞技赛。19971997年年1 1月,用了月,用了9696天时间,成功地天时间,成功地
56、破解了用破解了用DESDES加密的一段信息;加密的一段信息; 一年之后,在第二届赛事上,这一记录一年之后,在第二届赛事上,这一记录4141天天 ;19981998年年7 7月,月,“第第2-22-2届届DESDES挑战赛(挑战赛(DES Challenge DES Challenge II-2II-2)” ” 把破解把破解DESDES的时间缩短到了只需的时间缩短到了只需5656个小时;个小时; “ “第三届第三届DESDES挑战赛(挑战赛(DES Challenge IIIDES Challenge III)”把破解把破解DESDES的时间缩短到了只需的时间缩短到了只需22.522.5小时小时
57、 。74lDDESDDES 解决其密钥长度问题的方法,即采用二重解决其密钥长度问题的方法,即采用二重DESDES。这。这种方法用两个密钥对明文进行二次加密。种方法用两个密钥对明文进行二次加密。 假设两个密钥是假设两个密钥是K1K1和和K2K2,其算法的步骤:,其算法的步骤:1. 1. 用密钥用密钥K1K1进行进行DESDES加密。加密。2. 2. 用用K2K2对步骤对步骤1 1的结果进行的结果进行DESDES加密。加密。 解密正好相反解密正好相反优点:优点:112112位密钥长度,很位密钥长度,很“强壮强壮”的加密方式的加密方式缺点:花费原来二倍时间缺点:花费原来二倍时间75lTDES TDE
58、S 解决其密钥长度问题的方法,即采用三重解决其密钥长度问题的方法,即采用三重DESDES。这。这种方法用两个密钥对明文进行三次加密,假设两个密种方法用两个密钥对明文进行三次加密,假设两个密钥是钥是K1K1和和K2K2,其算法的步骤:,其算法的步骤:1. 1. 用密钥用密钥K1K1进行进行DESDES加密。加密。2. 2. 用用K2K2对步骤对步骤1 1的结果进行的结果进行DESDES解密。解密。 3. 3. 对步骤对步骤2 2的结果使用密钥的结果使用密钥K1K1进行进行DESDES加密加密优点:优点:112112位密钥长度,很位密钥长度,很“强壮强壮”的加密方式的加密方式缺点:花费原来三倍时间
59、缺点:花费原来三倍时间7677IDEAIDEA密码算法密码算法(International Data (International Data Encryption Algorithm) Encryption Algorithm) IDEA IDEA是以是以64-bit64-bit的明文块进行分组,密钥是的明文块进行分组,密钥是128-128-bitbit长。此算法可用于加密和解密。长。此算法可用于加密和解密。IDEAIDEA用了混乱和用了混乱和扩散等操作,算法背后的设计思想是扩散等操作,算法背后的设计思想是“在不同的代数在不同的代数组中的混合运算组中的混合运算”。主要有三种运算:异或、模加、。
60、主要有三种运算:异或、模加、模乘,容易用软件和硬件来实现。模乘,容易用软件和硬件来实现。IDEAIDEA的速度:现在的速度:现在IDEAIDEA的软件实现同的软件实现同DESDES的速度一样的速度一样块。块。78其它密码算法其它密码算法 随着现代计算机能力的飞速发展,人们感觉到:随着现代计算机能力的飞速发展,人们感觉到:密钥长度是密钥长度是5656位的位的在强大的计算能力攻势下已在强大的计算能力攻势下已经不够安全。经不够安全。高级加密标准高级加密标准(,),采用采用128位密钥和位密钥和128位的分组长度。位的分组长度。,等。,等。792.4 2.4 非对称密码体制(公钥体制)非对称密码体制(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥梁工程设计考题及答案
- 幼儿园数学智慧点滴试题及答案
- 家具设计中如何实现艺术性与功能性的结合试题及答案
- 盐湖提锂技术成本降低与产能快速扩张可行性研究报告
- 绿色环保产业发展资金申请报告:环保产业技术创新与产业化
- 电动汽车安全技术的现状与发展前景探讨试题及答案
- 新安全工程师施工安全考点试题及答案
- 未来科技背景下的大学物理考试试题及答案
- 2025特岗教师招聘教学能力测试题目及答案
- 2025南航招聘空姐面试试题及答案
- 静脉导管常见并发症临床护理实践指南
- 围手术期血糖管理专家共识
- 上肢肘腕关节松动术
- 2024年3月昆明市高三语文三诊一模考试卷附答案解析
- (高清版)DZT 0419.3-2022 矿产资源潜力评价规范(1:250 000)第3部分:成矿规律研究
- 科学道德与学术规范知识试题及答案
- 将健康社区纳入社区发展规划
- 痛风科普讲座课件
- 心肌梗死的早期识别与紧急处理
- 国开【形考】《管理英语(3)》形成性考核1-8答案
- 2023学年完整公开课版用户思维
评论
0/150
提交评论