《密码学原理与实践第二版课件.ppt》由会员分享,可在线阅读,更多相关《密码学原理与实践第二版课件.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023/1/282023/1/28第第2章章 对称密钥密码体系对称密钥密码体系理解密码学的基本原理掌握DES加密算法了解A5和IDEA加密算法理解序列密码原理2023/1/282023/1/282.1 密码体制原理与分类密码体制原理与分类(I)加密加密解密解密明文明文P密文密文C明文明文P加密密钥加密密钥Ke解密密钥解密密钥KdC=E(Ke,P)P=D(Kd,E(Ke,P)对称密码体制对称密码体制(symmetric cryptosystem)-(symmetric cryptosystem)-单钥单钥加密密钥和解密密钥是相同的加密密钥和解密密钥是相同的非对称密码体制非对称密码体制(asym
2、metric cryptosystem)-(asymmetric cryptosystem)-公钥密码公钥密码加密密钥和解密密钥是成对出现加密密钥和解密密钥是成对出现加密过程和解密过程不同,使用的密钥也不同加密过程和解密过程不同,使用的密钥也不同2023/1/282023/1/28密码算法安全准则与分类密码算法安全准则与分类 密码的安全性原则密码的安全性原则 公开的密码算法才是安全的,保密的算法只在小范围内设公开的密码算法才是安全的,保密的算法只在小范围内设计和研究。计和研究。按照密钥使用方法分按照密钥使用方法分 对称密码算法对称密码算法(symmetric cipher)(symmetric
3、 cipher):又称传统密码算法:又称传统密码算法(conventional cipher)(conventional cipher)或秘密密钥算法、单密钥算法。或秘密密钥算法、单密钥算法。非对称密钥算法非对称密钥算法(asymmetric cipher)(asymmetric cipher),又称公开密钥,又称公开密钥算法算法(public-Key cipher)(public-Key cipher)。按照明文的处理方法分按照明文的处理方法分 分组密码分组密码(block cipher)(block cipher):将明文分成固定长度的组,:将明文分成固定长度的组,用同一密钥和算法对每一块
4、加密,输出也是固定长度用同一密钥和算法对每一块加密,输出也是固定长度的密文。的密文。流密码流密码(stream cipher)(stream cipher):又称序列密码,每次加密一位:又称序列密码,每次加密一位或一字节的明文。或一字节的明文。2023/1/282023/1/282.1.4 密码分析密码分析可破译密码可破译密码当给予足够的时间和计算资源的时候,破译者能当给予足够的时间和计算资源的时候,破译者能确定的加密算法。确定的加密算法。对可破译性的评估基于当前的技术。对可破译性的评估基于当前的技术。穷举攻击穷举攻击攻击者对一条密文尝试所有可能的密钥,直到得攻击者对一条密文尝试所有可能的密钥
5、,直到得到有意义的明文。到有意义的明文。KerckhoffKerckhoff原则原则:加密算法应建立在算法的公开不影:加密算法应建立在算法的公开不影响明文和密钥的安全的基础上。响明文和密钥的安全的基础上。这一原则得到普遍承认,成为判定密码强度的衡量标这一原则得到普遍承认,成为判定密码强度的衡量标准,实际上也成为古典密码和现代密码的分界线。准,实际上也成为古典密码和现代密码的分界线。2023/1/282023/1/28攻击类型攻击类型密码分析者已知的信息密码分析者已知的信息唯密文攻击唯密文攻击加密算法;要解密的密文加密算法;要解密的密文已知明文已知明文攻击攻击加密算法;要解密的密文;用加密算法;
6、要解密的密文;用(与待解密文与待解密文)同一同一密钥加密的多个明密文对密钥加密的多个明密文对选择明文选择明文攻击攻击加密算法;要解密的密文;分析者任选明文,并加密算法;要解密的密文;分析者任选明文,并用用(与待解密文与待解密文)同一密钥加密的密文同一密钥加密的密文选择密文选择密文攻击攻击加密算法;要解密的密文;分析者有目的选择密加密算法;要解密的密文;分析者有目的选择密文,并用文,并用(与待解密文与待解密文)同一密钥解密的对应明文同一密钥解密的对应明文选择文本选择文本攻击攻击加密算法;要解密的密文;分析者任选明文,并加密算法;要解密的密文;分析者任选明文,并用用(与待解密文与待解密文)同一密钥
7、加密的密文;分析者有同一密钥加密的密文;分析者有目的选择密文,并用目的选择密文,并用(与待解密文与待解密文)同一密钥解密同一密钥解密的对于明文的对于明文传统密码体制基于加密信息的攻击类型传统密码体制基于加密信息的攻击类型2023/1/282023/1/28密码的安全性与攻击复杂性密码的安全性与攻击复杂性无条件安全无条件安全(Unconditionally secure)(Unconditionally secure)无论破译者有多少密文无论破译者有多少密文,他也无法解出对应的明文他也无法解出对应的明文,即即使他解出了使他解出了,他也无法验证结果的正确性他也无法验证结果的正确性.一次一密一次一密
8、计算上安全的计算上安全的破译密码的代价超出密文信息的价值破译密码的代价超出密文信息的价值破译密码的时间超出密文信息的有效生命期破译密码的时间超出密文信息的有效生命期攻击复杂性:攻击复杂性:数据数据时间时间存储量存储量2023/1/282023/1/28古典密码古典密码古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。单表代替密码:单表代替密码:CaesarCaesar密码;密码;多表代替密码:多表代替密码:VigenereVigenere密码、密码、HillHill密码;密码;转轮密码:二战中的转轮密
9、码:二战中的EnigmaEnigma。2023/1/282023/1/28现代密码现代密码计算机的发展使得基于复杂计算的密码成为可能,密码学成为一门新的学科。对称密钥密码算法的发展:1977年DES正式成为标准1977年公钥密码(非对称密码)出现90年代逐步出现椭圆曲线等其他公钥算法一些新的密码技术,如,混沌密码、量子密码等2023/1/282023/1/28恺撒密码的破译分析一般的恺撒密码一般的恺撒密码加密:加密:c ci i=E(p=E(pi i)=(p)=(pi i+k)mod 26+k)mod 26解密:解密:p pi i=E(c=E(ci i)=(c)=(ci i-k)mod 26-
10、k)mod 26其中其中k k为密钥,为密钥,1 1 k k 25 25一般的恺撒密码的破译分析一般的恺撒密码的破译分析已知加密和解密算法已知加密和解密算法需要测试的密钥只有需要测试的密钥只有2525个个明文所用的语言是已知的,且其意义易于识别。明文所用的语言是已知的,且其意义易于识别。可以采用穷举攻击可以采用穷举攻击2023/1/282023/1/28代换密码代换密码substitution cipherA B C D E F G H I J K L M N O P Q R S T U V W X Y Zw o r d A B C E F G H I J K L M N P Q R S T
11、U V X Y Z2023/1/282023/1/28置换密码置换密码置换密码体制1.61.明文与密文字母不变,利用转换打乱明文字母 的位置和次序。存储空间与报文长度相关。2.完全保留字符的统计信息3.使用多轮加密可提高安全性2023/1/282023/1/282.2 数据加密标准(DES)2.2.1 DES算法算法 DES加加密密算算法法如如图图2-3所所示示,由由以以下下四四个个部部分组成。分组成。2023/1/282023/1/281.初始置换函数初始置换函数IP DES对对64位位明明文文分分组组进进行行操操作作。首首先先,64位位明明文文分分组组x经经过过一一个个初初始始置置换换函函
12、数数IP,产产生生64位位的的输输出出x0,再再将将分分组组x0分分成成左左半半部部分分L0和和右半部分右半部分R0,即:,即:x x0 0=IP(x)=L=IP(x)=L0 0R R0 0置换表如表2-1所示。此表顺序为从上到下,从左至右。如初始置换把明文的第58位换至第1位,把第50位换至第二位,以此类推。2023/1/282023/1/28表2-1 初始置换IP58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51
13、43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 72023/1/282023/1/28图2-5 DES加密算法2023/1/282023/1/28 2获取子密钥获取子密钥Ki DESDES加加密密算算法法的的密密钥钥长长度度为为5656位位,但但一一般般表表示示为为6464位位,其其中中,每每个个第第8 8位位用用于于奇奇偶偶校校验验。在在DESDES加加密密算算法法中中,将将用用户户提提供供的的6464位位初初始始密密钥钥经经过过一一系系列列的的处处理理得得到到K K1 1,K K2 2,K K1616,分分别别作作为为1
14、 11616轮轮运运算算的的1616个个子子密密钥钥。现在来看如何获得这现在来看如何获得这1616个子密钥。个子密钥。首首先先,将将6464位位密密钥钥去去掉掉8 8个个校校验验位位,用用密密钥钥置置换换PCPC 1 1置置换换剩剩下下的的5656位位密密钥钥;再再将将5656位位分分成成前前2828位位C C0 0和和后后2828位位D D0 0两两部部分分,即即PCPC 1(K1(K5656)=C)=C0 0D D0 0。密密钥钥置置换换PC-1PC-1如如表表2-22-2所示。所示。2023/1/282023/1/28表2-2 密钥置换PC157 49 41 33 25 17 91 58
15、 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4 2023/1/282023/1/28 接接接接下下下下来来来来,根根根根据据据据轮轮轮轮数数数数,这这这这两两两两部部部部分分分分分分分分别别别别循循循循环环环环左左左左移移移移1 1位位位位或或或或2 2位位位位。具具具具体体体体每每每每轮轮轮轮移移移移位位位位的的的的位位位位数数数数如如如如表表表表2-32-3所所所所示。示。示。示。
16、表2-3 每轮移动的位数 轮次轮次 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 14 15 16 位数位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 11 1 2 2 2 2 2 2 1 2 2 2 2 2 2 12023/1/282023/1/28 移移移移动动动动后后后后,将将将将两两两两部部部部分分分分合合合合并并并并成成成成5656位位位位后后后后通通通通过过过过压压压压缩缩缩缩置置置置换换换换PCPC 2 2后后后后得得得得到到到到4848位位位位子子子子密密密密钥钥钥钥,
17、即即即即K Ki i=PC-2=PC-2(C(Ci iD Di i)。压缩置换压缩置换压缩置换压缩置换如表如表如表如表2-42-4所示。所示。所示。所示。表2-4 压缩置换PC2 14 17 11 24 1 514 17 11 24 1 53 28 15 6 21 103 28 15 6 21 1023 19 12 4 26 823 19 12 4 26 816 7 27 20 13 216 7 27 20 13 241 52 31 37 47 5541 52 31 37 47 5530 40 51 45 33 4830 40 51 45 33 4844 49 39 56 34 5344 49
18、 39 56 34 5346 42 50 36 29 3246 42 50 36 29 329,18?9,18?2023/1/282023/1/28图2-6 子密钥产生 2023/1/282023/1/283 3密码函数密码函数密码函数密码函数F F1)1)函数函数函数函数F F的操作步骤的操作步骤的操作步骤的操作步骤 密密密密码码码码函函函函数数数数F F的的的的输输输输入入入入是是是是3232比比比比特特特特数数数数据据据据和和和和4848比比比比特特特特的子密钥,其操作步骤如图的子密钥,其操作步骤如图的子密钥,其操作步骤如图的子密钥,其操作步骤如图2-52-5所示。所示。所示。所示。(1
19、)(1)扩展置换扩展置换扩展置换扩展置换(E)(E)。将数据的右半部分。将数据的右半部分。将数据的右半部分。将数据的右半部分R Ri i从从从从3232位扩位扩位扩位扩展为展为展为展为4848位。位选择函数位。位选择函数位。位选择函数位。位选择函数(也称也称也称也称E E盒盒盒盒)如表如表如表如表2-52-5所示。所示。所示。所示。2023/1/282023/1/28图2-7 F(Ri,Ki)计算 2023/1/282023/1/28表2-5 扩展置换(E)32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20
20、 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 12023/1/282023/1/28(2)(2)异或。扩展后的异或。扩展后的4848位输出位输出E(RE(Ri i)与压缩后的与压缩后的4848位密钥位密钥K Ki i作异或运算。作异或运算。(3)S(3)S盒替代。将异或得到的盒替代。将异或得到的4848位结果分成八个位结果分成八个6 6位的块,每一块通过对应的一个位的块,每一块通过对应的一个S S盒产生一盒产生一个个4 4位的输出。八个位的输出。八个S S盒如表盒如表2-62-6所示。所示。2023/1/282023/1/28 S S盒
21、的具体置换过程为:某个盒的具体置换过程为:某个盒的具体置换过程为:某个盒的具体置换过程为:某个SiSi盒的盒的盒的盒的6 6位输入的第位输入的第位输入的第位输入的第1 1位和第位和第位和第位和第6 6位形成一个位形成一个位形成一个位形成一个2 2位的二进制位的二进制位的二进制位的二进制数数数数(从从从从0 03)3),对应表中的某一行对应表中的某一行对应表中的某一行对应表中的某一行;同时,输入;同时,输入;同时,输入;同时,输入的中间的中间的中间的中间4 4位构成位构成位构成位构成4 4位二进制数位二进制数位二进制数位二进制数(从从从从0 015)15)对应表对应表对应表对应表中的中的中的中的
22、某一列某一列某一列某一列(注意:行和列均从注意:行和列均从注意:行和列均从注意:行和列均从0 0开始计数开始计数开始计数开始计数)。例如,第例如,第例如,第例如,第8 8个个个个S S盒的输入为盒的输入为盒的输入为盒的输入为0 0010101011 1,前,前,前,前后后后后2 2位形成的二进制数为位形成的二进制数为位形成的二进制数为位形成的二进制数为0101,对应第,对应第,对应第,对应第8 8个个个个S S盒的盒的盒的盒的第第第第1 1行;中间行;中间行;中间行;中间4 4位为位为位为位为01010101,对应同一,对应同一,对应同一,对应同一S S盒的第盒的第盒的第盒的第5 5列。列。列
23、。列。从表从表从表从表2-62-6中可得中可得中可得中可得S S8 8盒的第盒的第盒的第盒的第1 1行第行第行第行第5 5列的数列的数列的数列的数为为为为3 3,于是就用,于是就用,于是就用,于是就用00110011代替原输入代替原输入代替原输入代替原输入001011001011。2023/1/282023/1/28表 2-6 S 盒 S1盒14 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 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7
24、 5 11 3 14 10 0 6 13S2盒15 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 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 92023/1/282023/1/28S3盒10 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 6 4 9 8 15 3 0 11 1 2 12 5 10 1
25、4 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12S4盒7 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 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14S5盒2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3
26、 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 32023/1/282023/1/28S6盒12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13S7盒4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12
27、 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12S8盒13 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 27 11 4 1 9 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 112023/1/282023/1/28 (4(4)P P盒盒置置换换。将将八八个个S S盒盒的的输输出出连连在在一一起起生生成成一一个个3232位位的的输输出出,输输出出结结果
28、果再再通通过过置置换换P P产产生生一一个个3232位位的的输输出出即即:F(RF(Ri i,K Ki i)。表表2-72-7为为P P盒置换。至此,密码函数盒置换。至此,密码函数F F的操作就完成了。的操作就完成了。最最最最后后后后,将将将将P P盒盒盒盒置置置置换换换换的的的的结结结结果果果果与与与与最最最最初初初初的的的的6464位位位位分分分分组组组组的的的的左左左左半半半半部部部部分分分分异异异异或或或或,然然然然后后后后左左左左、右右右右半半半半部部部部分分分分交交交交换换换换,接着开始下一轮计算。接着开始下一轮计算。接着开始下一轮计算。接着开始下一轮计算。2023/1/28202
29、3/1/28 表2-7 P盒置换 16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 252023/1/282023/1/28 2)2)函数函数函数函数F F的设计的设计的设计的设计 函函函函数数数数F F是是是是DESDES加加加加密密密密的的的的核核核核心心心心,它它它它依依依依赖赖赖赖于于于于S S盒盒盒盒的的的的设设设设计计计计。这这这这也也也也适适适适用用用用于于于于其其其其它它它它的的的的对对对对称称称称分分分分组组组组加加加加密密密密算算算算法法法法。下下下下面面面面我我我我们们
30、们们简简简简单单单单讨讨讨讨论论论论一一一一下下下下有有有有关关关关F F函函函函数数数数的的的的一一一一些些些些通通通通用用用用设计准则以及设计准则以及设计准则以及设计准则以及S S盒设计问题。盒设计问题。盒设计问题。盒设计问题。(1)F(1)F的设计准则的设计准则的设计准则的设计准则。函数。函数。函数。函数F F的基本功能就的基本功能就的基本功能就的基本功能就是是是是“扰乱扰乱扰乱扰乱(confusion)(confusion)”输入,因此,对于输入,因此,对于输入,因此,对于输入,因此,对于F F来来来来说,其非线性越高越好,也就是说,要恢复说,其非线性越高越好,也就是说,要恢复说,其非
31、线性越高越好,也就是说,要恢复说,其非线性越高越好,也就是说,要恢复F F所做的所做的所做的所做的“扰乱扰乱扰乱扰乱”操作越难越好。操作越难越好。操作越难越好。操作越难越好。2023/1/282023/1/28 其它的设计准则还包括严格其它的设计准则还包括严格其它的设计准则还包括严格其它的设计准则还包括严格雪崩准则雪崩准则雪崩准则雪崩准则(SAC)(SAC)和和和和比特独立准则比特独立准则比特独立准则比特独立准则(BIC)(BIC)。所谓所谓所谓所谓SACSAC,就是要求算法具有良好的雪崩效应,就是要求算法具有良好的雪崩效应,就是要求算法具有良好的雪崩效应,就是要求算法具有良好的雪崩效应,输入
32、输入输入输入当中的一个比特发生变化都应当使输出产生当中的一个比特发生变化都应当使输出产生当中的一个比特发生变化都应当使输出产生当中的一个比特发生变化都应当使输出产生”尽可能多尽可能多尽可能多尽可能多”的比特的比特的比特的比特变化变化变化变化。严格地说,就是当任何单个输入比特位严格地说,就是当任何单个输入比特位严格地说,就是当任何单个输入比特位严格地说,就是当任何单个输入比特位i i发生变换时,一发生变换时,一发生变换时,一发生变换时,一个个个个S S盒的第盒的第盒的第盒的第j j比特输出位发生变换的概率应为比特输出位发生变换的概率应为比特输出位发生变换的概率应为比特输出位发生变换的概率应为1/
33、21/2,且对任意的,且对任意的,且对任意的,且对任意的i,ji,j都都都都应成立。应成立。应成立。应成立。BICBIC的意思是当的意思是当的意思是当的意思是当单个输入比特位单个输入比特位单个输入比特位单个输入比特位i i发生变化时,输出比特发生变化时,输出比特发生变化时,输出比特发生变化时,输出比特位位位位j,kj,k的变化应当互相独立的变化应当互相独立的变化应当互相独立的变化应当互相独立,且对任意的,且对任意的,且对任意的,且对任意的i,j,ki,j,k均应成立。均应成立。均应成立。均应成立。SACSAC和和和和BICBIC可以有效的增强可以有效的增强可以有效的增强可以有效的增强F F函数
34、的函数的函数的函数的“扰乱扰乱扰乱扰乱”功能。功能。功能。功能。2023/1/282023/1/28 (2)(2)S S盒盒盒盒设设设设计计计计。S S盒盒盒盒的的的的设设设设计计计计在在在在对对对对称称称称分分分分组组组组密密密密码码码码研研研研究究究究领领领领域域域域中中中中起起起起着着着着举举举举足足足足轻轻轻轻重重重重的的的的作作作作用用用用。本本本本质质质质上上上上,S S盒盒盒盒的的的的作作作作用用用用就就就就是是是是对对对对输输输输入入入入向向向向量量量量进进进进行行行行处处处处理理理理,使使使使得得得得输输输输出出出出看看看看起起起起来来来来更更更更具具具具随随随随机机机机性性
35、性性,输输输输入入入入和和和和输输输输出出出出之之之之间间间间应应应应当当当当是是是是非线性的非线性的非线性的非线性的,很难用线性函数来逼近。,很难用线性函数来逼近。,很难用线性函数来逼近。,很难用线性函数来逼近。显显显显然然然然,S S盒盒盒盒的的的的尺尺尺尺寸寸寸寸是是是是一一一一个个个个很很很很重重重重要要要要的的的的特特特特性性性性。一一一一个个个个S S盒盒盒盒其其其其输输输输入入入入为为为为n n比比比比特特特特,输输输输出出出出为为为为mm比比比比特特特特。DESDES的的的的S S盒盒盒盒大大大大小小小小为为为为6 64 4。S S盒盒盒盒越越越越大大大大,就就就就越越越越容容
36、容容易易易易抵抵抵抵制制制制差差差差分和线性分和线性分和线性分和线性密码分析。密码分析。密码分析。密码分析。2023/1/282023/1/28Mister和和Adams提提出出了了很很多多的的S盒盒设设计计原原则则,其其中中包包括括要要求求S盒盒满满足足SAC和和BIC的的原原则则,以以及及S盒盒的的所所有有列列的的全全部部线线性性组组合合应应当当满满足足一一类类称称为为bent函函数数的的高高度度非非线性布尔函数的原则线性布尔函数的原则。Bent函函数数具具有有很很多多有有趣趣的的特特性性,其其中中,高高度度非非线线性性和和最最高高阶阶的的严严格格雪雪崩崩准准则则对对于于S盒的设计尤为重要
37、。盒的设计尤为重要。2023/1/282023/1/28 NybergNyberg提提提提出出出出了了了了以以以以下下下下几几几几种种种种S S盒盒盒盒的的的的设设设设计计计计和和和和实实实实践原则:践原则:践原则:践原则:随随随随机机机机性性性性:采采采采用用用用某某某某些些些些伪伪伪伪随随随随机机机机数数数数发发发发生生生生器器器器或或或或随随随随机数表格来产生机数表格来产生机数表格来产生机数表格来产生S S盒的各个项。盒的各个项。盒的各个项。盒的各个项。随随随随机机机机测测测测试试试试:随随随随机机机机选选选选择择择择S S盒盒盒盒各各各各个个个个项项项项,然然然然后后后后按照不同准则测
38、试其结果。按照不同准则测试其结果。按照不同准则测试其结果。按照不同准则测试其结果。数数数数学学学学构构构构造造造造:根根根根据据据据某某某某些些些些数数数数学学学学原原原原理理理理来来来来产产产产生生生生S S盒盒盒盒。其其其其好好好好处处处处就就就就是是是是可可可可以以以以根根根根据据据据数数数数学学学学上上上上的的的的严严严严格格格格证证证证明明明明来来来来抵抵抵抵御御御御差差差差分分分分和和和和线线线线性性性性密密密密码码码码分分分分析析析析,并并并并且且且且可可可可以以以以获获获获得得得得很很很很好好好好的的的的扩扩扩扩散散散散(Diffusion)(Diffusion)特性。特性。特
39、性。特性。2023/1/282023/1/28 4 4末置换函数末置换函数末置换函数末置换函数IPIP-1-1 末末置置换换是是初初始始置置换换的的逆逆变变换换。对对L0L0和和R0R0进进行行16161616轮轮轮轮相相相相同同同同的的的的运运运运算算算算后后后后,将将将将得得得得到到到到的的的的两两两两部部部部分分分分数数数数据据据据合合合合在在在在一一一一起起起起,经经经经过过过过一一一一个个个个末末末末置置置置换换换换函函函函数数数数就就就就可可可可得得得得到到到到64646464位的密文位的密文位的密文位的密文c c c c,即:,即:,即:,即:c=IPc=IPc=IPc=IP-1
40、-1-1-1(R(R(R(R16161616L L L L16161616)(16161616指指指指的的的的是是是是16161616轮)轮)轮)轮)表表2-82-8列出了该变换。列出了该变换。2023/1/282023/1/28表2-8 末 置 换IP-140 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 5
41、7 252023/1/282023/1/285 5总结总结根据上面所述,可以将根据上面所述,可以将DESDES算法归结如下:算法归结如下:子密钥生成:子密钥生成:C0D0=PCC0D0=PC 1(K)1(K)for 1=i=16 for 1=i=16 Ci=LSi(Ci1)Ci=LSi(Ci1)Di=LSi(Di1)Di=LSi(Di1)Ki=PC Ki=PC 2(CiDi)2(CiDi)2023/1/282023/1/28加密过程:L0R0=IP(x)for 1=i=16Li=Ri1Ri=Li1 XOR f(Ri1,Ki)c=IP1(R16L16)v2023/1/282023/1/28解密过
42、程:R16L16=IP(c)for 1=i=16Ri1=LiLi1=Ri XOR f(Li,Ki)x=IP1(L0R0)2023/1/282023/1/282.2.2三重DESDes密钥56bit太短,1998年EFF用25万美元的计算机破译三重DES密钥56*3=168bit2023/1/282023/1/282.3 IDEA算法国际数据加密算法,分组长度为64位的分组密码算法,密钥长度是128bit具体实现见P262023/1/282023/1/282.4 高级加密标准AES1997年美国国家标准与技术研究所要求:比三重DES快,安全性不低于3DESRijndael(荣代尔)代替/置换算法
43、2023/1/282023/1/282.5 序列密码(流密码)序列密码(流密码)流密码(流密码(stream cipherstream cipher)每次加密数据流的一位或一个字节每次加密数据流的一位或一个字节密钥由序列发生器生成用于加密和解密的密钥序列密钥由序列发生器生成用于加密和解密的密钥序列古典流密码:古典流密码:VigenereVigenere密码和密码和VernamVernam密码密码分组密码(分组密码(block cipherblock cipher)将明文分成一段一段,将一段明文作为一个分组进行将明文分成一段一段,将一段明文作为一个分组进行加密,每组分别在密钥的控制下变换成等长的
44、输出密加密,每组分别在密钥的控制下变换成等长的输出密文序列。文序列。如:如:We will meet this afternoon.We will meet this afternoon.以以5 5个字符为一个字符为一组,则得到明文分组:组,则得到明文分组:wewil lmeet thisa ftern wewil lmeet thisa ftern oonxxoonxx,其中不够一个分组的采用填充。,其中不够一个分组的采用填充。2023/1/282023/1/28流密码模型流密码模型密钥序列密钥序列密钥序列密钥序列明文明文明文明文解密解密加密加密密文密文加密:加密:ci=pi ki解密:解密:pi=ci ki密钥序列密钥序列发生器发生器密钥序列密钥序列发生器发生器流密码模型流密码模型2023/1/282023/1/28流密码和分组密码的比较流密码和分组密码的比较流密码优点:转换速度快;低错误扩散率优点:转换速度快;低错误扩散率缺点:低扩散率;易被恶意插入和篡改缺点:低扩散率;易被恶意插入和篡改分组密码优点:高扩散率;无法插入符号优点:高扩散率;无法插入符号缺点:加密速度慢;错误扩散缺点:加密速度慢;错误扩散2023/1/282023/1/28本章讨论与设计方向本章讨论与设计方向DES/AES算法实现与安全性分析Md5算法的原理与安全性分析