《第2章 密码学基础(2.1-2.3).ppt》由会员分享,可在线阅读,更多相关《第2章 密码学基础(2.1-2.3).ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 密码学基础主要内容主要内容2.1 密码学基础知识(密码学基础知识(密码体系结构及关键概念密码体系结构及关键概念)2.2 古典替换密码(古典替换密码(仿射密码仿射密码)2.3 对称密钥密码(对称密钥密码(DES)2.4 公开密钥密码(公开密钥密码(RSA)2.5 消息认证(消息认证(认证函数、数字签名认证函数、数字签名)2.6 密码学新进展密码学新进展2.1 密码学基础知识密码学基础知识 意义意义解决数据的机密性、完整性、不可否认性以及身份识别等解决数据的机密性、完整性、不可否认性以及身份识别等问题均需要问题均需要以密码为基础以密码为基础,密码技术是保障信息安全的密码技术是保障信息安全的
2、核心基础。核心基础。研究内容研究内容密码学以研究秘密通信为目的,即研究对信息采用何种秘密码学以研究秘密通信为目的,即研究对信息采用何种秘密的变换以防止第三方窃取,包括密的变换以防止第三方窃取,包括密码编码学密码编码学和和密码分析密码分析学学两部分。两部分。n密码编码学密码编码学:研究如何编码,采用什么样的密码体制保证:研究如何编码,采用什么样的密码体制保证 信息被安全加密。信息被安全加密。n密码分析学密码分析学:破译密文,在未知密钥的情况下推演出铭文:破译密文,在未知密钥的情况下推演出铭文 和密钥的技术。和密钥的技术。2.1.2 密码体制密码体制未经过加密的原始消息称为未经过加密的原始消息称为
3、明文明文m(Plain Text)。伪装消息以隐藏它的内容的过程称为伪装消息以隐藏它的内容的过程称为加密加密E(Encrypt)加密后的消息,即经过伪装后的明文称为加密后的消息,即经过伪装后的明文称为密文密文c(Cipher Text)把密文转变为明文的过程称为把密文转变为明文的过程称为解密解密D(Decrypt)。确切地描述了加密变换和解密变换的具体规则确切地描述了加密变换和解密变换的具体规则加密算法加密算法对明文进行加密时所使对明文进行加密时所使用的规则的描述用的规则的描述E(m)E(m)解密算法解密算法对密文进行还原时所使对密文进行还原时所使用的规则的描述用的规则的描述D(c)D(c)密
4、钥密钥:加密和解密算法的操作在称为密钥(:加密和解密算法的操作在称为密钥(k k)的元素)的元素控制下进行。控制下进行。加密通信模型加密通信模型加密的过程:加密的过程:c=Ec=Ekeke(m)(m)解密的过程:解密的过程:m=Dm=Dkdkd(c)(c)完整密码体制要包括如下五个要素完整密码体制要包括如下五个要素:nM M是是可能明文的有限集可能明文的有限集称为明文空间;称为明文空间;nC C是是可能密文的有限集可能密文的有限集称为密文空间;称为密文空间;nK K是是一切可能密钥构成的有限集一切可能密钥构成的有限集称为密钥空间;称为密钥空间;nE E为加密算法,对于为加密算法,对于任一密钥任
5、一密钥,都能够,都能够有效地计算有效地计算;nD D为解密算法,对于为解密算法,对于任一密钥任一密钥,都能够,都能够有效地计算有效地计算。密码体系必须满足如下特性:密码体系必须满足如下特性:n加密算法加密算法(E(Ek k:M-C)M-C)和解密算法和解密算法(D(Dk k:C-M)C-M)满足满足:D Dk k(E(Ek k(x)=x(x)=x,这里这里x xM M;n破译者不能在破译者不能在有效的时间有效的时间内破解出密钥内破解出密钥k k或明文或明文x x。密码学的柯克霍夫准则密码学的柯克霍夫准则“一切秘密寓于密钥之中一切秘密寓于密钥之中”1883年荷兰密码学家年荷兰密码学家A.Kerc
6、hoff(18351903)就就给出了密码学的一个基本原则给出了密码学的一个基本原则:密码的安全必须完全寓于密码的安全必须完全寓于密钥之中。尽管密码学家们大都同意这一看法密钥之中。尽管密码学家们大都同意这一看法,但直到制但直到制定定DES时才首次认真地遵循这一原则。时才首次认真地遵循这一原则。2.1.3 密码的分类密码的分类密码学发展历史密码学发展历史p 古代加密方法(古代加密方法(手工手工阶段)阶段)公元前公元前440440年古希腊战争的隐写术年古希腊战争的隐写术斯巴达人公元前斯巴达人公元前400400年应用的年应用的ScytaleScytale加密工具加密工具古代藏头诗古代藏头诗p 古典密
7、码(古典密码(机械机械阶段)阶段)古罗马古罗马CaesarCaesar密码密码单表加密单表加密EnigmaEnigma转轮密码转轮密码p 近代密码(近代密码(计算机计算机阶段)阶段)19491949年年Claude Shanon Claude Shanon“秘密体制的通信理论秘密体制的通信理论”19761976年年W.DiffieW.Diffie和和M.HellmanM.Hellman提出公钥密码思想提出公钥密码思想19781978年年RSARSA公钥密码体制出现公钥密码体制出现依据密码体制的特点以及出现的时间分类:依据密码体制的特点以及出现的时间分类:古典替换密码古典替换密码:一般是文字替换
8、,使用手工或机械变换:一般是文字替换,使用手工或机械变换的方式实现。的方式实现。对称密钥密码对称密钥密码:加密密钥:加密密钥解密密钥解密密钥公开密钥密码公开密钥密码:加密密钥:加密密钥解密密钥解密密钥依据处理数据的类型依据处理数据的类型分组密码分组密码:将明文分成若干固定长度的组,用同一加密:将明文分成若干固定长度的组,用同一加密算法对每一个明文分组进行加密,输出等长的密文组。算法对每一个明文分组进行加密,输出等长的密文组。序列密码序列密码:流密码,加密时一次处理一个元素。:流密码,加密时一次处理一个元素。依据密码分析形式依据密码分析形式密码分析(密码攻击)密码分析(密码攻击)n攻击者在攻击者
9、在不知道密钥不知道密钥的情况下,对密文进行分析,试图获的情况下,对密文进行分析,试图获得机密信息(明文或密钥)。得机密信息(明文或密钥)。n密码编码与密码分析是共生的、密码编码与密码分析是共生的、互逆互逆的,两者解决问题的的,两者解决问题的途径有很多差别。途径有很多差别。密码编码设计是利用密码编码设计是利用数学数学基础构造密码。基础构造密码。密码分析出了依靠数学、工程背景、语言学等知识外,还靠经验、密码分析出了依靠数学、工程背景、语言学等知识外,还靠经验、测试、眼力、运气、直觉判断能力等。测试、眼力、运气、直觉判断能力等。n根据密码分析者对明文、密文等数据资源所掌握的程度,根据密码分析者对明文
10、、密文等数据资源所掌握的程度,将密码分析攻击划分为不同的形式:将密码分析攻击划分为不同的形式:密码攻击分类密码攻击分类攻击类型攻击类型攻击者拥有的资源攻击者拥有的资源唯密文攻击唯密文攻击n加密算法加密算法n截获的部分密文截获的部分密文已知明文攻击已知明文攻击n加密算法加密算法n截获的部分密文和相应的明文截获的部分密文和相应的明文选择明文攻击选择明文攻击n加密算法加密算法n加密黑盒子,可加密任意明文得到相应加密黑盒子,可加密任意明文得到相应的密文的密文选择密文攻击选择密文攻击n加密算法加密算法n解密黑盒子,可解密任意密文得到相应解密黑盒子,可解密任意密文得到相应的明文的明文被动攻击和主动攻击被动
11、攻击和主动攻击n被动攻击被动攻击:攻击者可以用搭线窃听等方式直接获得未经加:攻击者可以用搭线窃听等方式直接获得未经加密的明文或者加密后的密文,并分析得知明文。密的明文或者加密后的密文,并分析得知明文。(不破坏(不破坏原始信息)原始信息)n主动攻击主动攻击:攻击者采用删除、更改、增添、重放、伪造等:攻击者采用删除、更改、增添、重放、伪造等手段主动向系统注入假消息。手段主动向系统注入假消息。密码攻击的方法密码攻击的方法n穷举分析法穷举分析法对截获的密文依次用各种密钥试译,直到得到有意义对截获的密文依次用各种密钥试译,直到得到有意义的明文;的明文;密钥不变情况下,对所有可能的明文加密直到得到与密钥不
12、变情况下,对所有可能的明文加密直到得到与截获的密文一致为止(完全试凑法)。截获的密文一致为止(完全试凑法)。理论上会成功,但实际中不可行。理论上会成功,但实际中不可行。n数学分析法数学分析法 利用一个或几个已知量(密文或明文利用一个或几个已知量(密文或明文-密文对)用数学密文对)用数学关系式求解未知量(密钥)。关系式求解未知量(密钥)。n统计分析法统计分析法 对截获的密文进行统计分析,找出规律,并与明文的对截获的密文进行统计分析,找出规律,并与明文的统计规律进行对照比较,从中提取对应关系。统计规律进行对照比较,从中提取对应关系。2.2 古典替换密码古典替换密码2.2.1 简单代替密码简单代替密
13、码n指将明文字母表指将明文字母表M M中的每个字母用密文字母表中的每个字母用密文字母表C C中的相中的相应字母来代替应字母来代替n例如:移位密码、乘数密码、仿射密码等。例如:移位密码、乘数密码、仿射密码等。移位密码移位密码n具体算法是将字母表的字母右移具体算法是将字母表的字母右移k k个位置,并对字母个位置,并对字母表长度作模运算。表长度作模运算。每一个字母具有两个属性,本身代表的含义,可计算的位置每一个字母具有两个属性,本身代表的含义,可计算的位置序列值:序列值:加密函数:加密函数:E Ek k(m)=(m+k)mod q(m)=(m+k)mod q;解密函数:解密函数:D Dk k(c)=
14、(c(c)=(ck)mod qk)mod q;凯撒凯撒Caesar密码密码n凯撒密码体系的数学表示:凯撒密码体系的数学表示:M=C=M=C=有序字母表有序字母表,q=26q=26,k=3k=3。其中其中q q 为有序字母表的元素个数,本例采用英文字母表,为有序字母表的元素个数,本例采用英文字母表,q=26q=26。加密函数:加密函数:E Ek k(m)=(m+3)mod 26(m)=(m+3)mod 26;解密函数:解密函数:D Dk k(c)=(c(c)=(c3)mod 263)mod 26;使用凯撒密码对明文字符串逐位加密结果如下:使用凯撒密码对明文字符串逐位加密结果如下:n明文信息明文信
15、息 M=meet me after the toga partyn密文信息密文信息 C=phhw ph diwho wkh wrjd sduwb 字母字母abcdef.xyz位置序列值位置序列值012345.232425思考思考:(c-3)有没有负数的有没有负数的可能?如果是负数该怎么可能?如果是负数该怎么计算?计算?(加法逆元加法逆元)加法逆元加法逆元n概念:概念:对于对于x x,如果,如果(x+y)mod z=0,(x+y)mod z=0,则则y y为为x x关于模关于模z z的的加法逆元。加法逆元。n解密函数:解密函数:D Dk k(c)=(c(c)=(c3)mod 263)mod 26
16、;若若c-30,c-30,假设假设c-3c-3的值为的值为-x-x,那么,那么(-x)(-x)即为即为x x关于模关于模2626的加法逆的加法逆元。根据加法逆元的特点求元。根据加法逆元的特点求:(x+y)mod26=0 y=26-x(x+y)mod26=0 y=26-x例如:例如:假设假设c=1c=1(即密文字符为(即密文字符为b b),),解密后明文解密后明文m=m=(-2)mod26-2)mod26=26-2=24(=26-2=24(即明文字符为即明文字符为y y)。)。乘数密码乘数密码将明文字母串将明文字母串逐位乘以密钥逐位乘以密钥k并进行模运算。并进行模运算。数学表达式数学表达式:Ek
17、(m)=km mod q,gcd(k,q)=1(表示(表示k与与q的最大公因子为的最大公因子为1,二者互素),二者互素)算法描述:算法描述:nM=C=字母表字母表,q=26;nK=k整数集整数集|0k26,gcd(k,26)=1;nEk(m)=km mod q。nDk(c)=k-1c mod q,其中,其中k-1为为k在模在模q下的乘法逆元下的乘法逆元。密钥取值与乘法逆元密钥取值与乘法逆元n乘数密码的乘数密码的密钥密钥k与与26互素互素时,加密变换才是一一映射的。时,加密变换才是一一映射的。k k的选择有的选择有1111种:种:3 3、5 5、7 7、9 9、1111、1515、1717、19
18、19、2121、2323、2525。K K取取1 1时没有意义。时没有意义。nk-1为为k在模在模q下的乘法逆元。下的乘法逆元。其定义为其定义为k k-1-1k mod q=1k mod q=1可采用扩展的欧几里德算法。欧几里德算法又称辗转相可采用扩展的欧几里德算法。欧几里德算法又称辗转相除法,用于计算两个整数除法,用于计算两个整数a a和和b b的最大公约数。的最大公约数。求解乘法逆元的方法求解乘法逆元的方法扩展的欧几里得算法扩展的欧几里得算法:求求d关于模关于模f的乘法逆元的乘法逆元d-1,即,即 dd-1 mod f=1(X1,X2,X3)=(1,0,f);(Y1,Y2,Y3)=(0,1
19、,d)if(Y3=0)then return d-1=null /无逆元无逆元 if(Y3=1)then return d-1=Y2 /Y2为逆元为逆元 Q=X3 div Y3/整除整除(T1,T2,T3)=(X1-QY1,X2-QY2,X3-QY3)(X1,X2,X3)=(Y1,Y2,Y3)(Y1,Y2,Y3)=(T1,T2,T3)Goto 例如:例如:k=7,求解求解7-1(7关于模关于模26的乘法逆元)的乘法逆元)循环次数循环次数QX1X2X3Y1Y2Y3初值初值无无1026017130171-35211-35-14232-1423-111 -11-11即为求得的结果,是即为求得的结果,
20、是1111关于模关于模2626的加法逆元,即的加法逆元,即1515。验证:验证:加密算法:加密算法:E Ek k(m)=k(m)=km mod qm mod q 解密算法:解密算法:D Dk k(c)=k(c)=k-1-1c mod qc mod q若密钥若密钥k=7k=7,m=3(m=3(明文字符为明文字符为d d),则加密后,则加密后c=3c=37mod26=21(7mod26=21(v v)解密时:已知解密时:已知c=21c=21,求解,求解m=7m=7-1-121mod26=1521mod26=1521mod26=321mod26=3仿射密码仿射密码可以看作是可以看作是移位密码和乘数密
21、码的结合移位密码和乘数密码的结合。n密码体制描述如下:密码体制描述如下:M=C=Z/(26);q=26;K=k1,k2Z|0 k1,k226,gcd(k1,26)=1;Ek(m)=(k1m+k2)mod q;Dk(c)=k1-1(c-k2)mod q,其中,其中k1-1为为k1在模在模q下的乘法下的乘法逆元。逆元。nK1=1时,相当于移位密码;时,相当于移位密码;nk2=0时,相当于乘数密码。时,相当于乘数密码。n当当K1、k2同时为同时为(1,0)无效。无效。放射密码示例放射密码示例1设设k(5,3),注意到),注意到5-1 mod 26=21,加密函数:加密函数:nEk(x)=5x+3(m
22、od 26),解密函数:解密函数:nDk(y)=21(y-3)mod 26=21y 11(mod 26)。加密明文加密明文“yes”的加密与解密过程如下:的加密与解密过程如下:放射密码示例放射密码示例2模运算的性质模运算的性质(a+b)mod n=(a mod n)+(b mod n)mod n(a-b)mod n=(a mod n)-(b mod n)mod n基于统计的密码分析基于统计的密码分析n单表代替密码的加密是从明文字母到密文字母的单表代替密码的加密是从明文字母到密文字母的一一映射一一映射n攻击者统计密文中字母的攻击者统计密文中字母的使用频度使用频度,比较正常英文字母的,比较正常英文
23、字母的使用频度,进行使用频度,进行匹配分析匹配分析。n如果密文信息足够长,很容易对单表代替密码进行破译。如果密文信息足够长,很容易对单表代替密码进行破译。2.2.2 多表代替密码多表代替密码多表代替密码是以多表代替密码是以一系列代替表一系列代替表依次对明文消息的字依次对明文消息的字母进行代替的加密方法。母进行代替的加密方法。多表代替密码使用从明文字母到密文字母的多表代替密码使用从明文字母到密文字母的多个映射多个映射来隐藏单字母出现的频率分布。来隐藏单字母出现的频率分布。每个映射是简单代替密码中的每个映射是简单代替密码中的一对一一对一映射映射n若映射系列是非周期的无限序列,则相应的密码称若映射系
24、列是非周期的无限序列,则相应的密码称为非周期多表代替密码。为非周期多表代替密码。非周期多表代替密码非周期多表代替密码n对每个明文字母都采用不同的代替表对每个明文字母都采用不同的代替表(或密钥或密钥)进行进行加密,称作加密,称作一次一密密码一次一密密码。维吉尼亚维吉尼亚Vigenere密码密码维吉尼亚维吉尼亚Vigenre密码密码n是以是以移位代替移位代替为基础的周期多表代替密码。为基础的周期多表代替密码。n加密时每一个密钥被用来加密加密时每一个密钥被用来加密一个明文一个明文字母,当所有字母,当所有密钥使用完后,密钥又密钥使用完后,密钥又重新循环重新循环使用。使用。维吉尼亚维吉尼亚Vigenre
25、密码算法如下:密码算法如下:nE Ek k(m)=C(m)=C1 1 C C2 2 C Cn n,其中,其中C Ci i=(m=(mi i+k+ki i)mod 26)mod 26;n密钥密钥K K可以通过周期性反复使用以至无穷。可以通过周期性反复使用以至无穷。维吉尼亚维吉尼亚Vigenere密码举例密码举例(6,20,13)qqcyrnukgukn对称密钥密码算法,又称单密钥密码算法、传统密对称密钥密码算法,又称单密钥密码算法、传统密码算法。码算法。通信双方共享密钥,即通信双方共享密钥,即k ke e=k=kd d 常用的算法:常用的算法:DESDES、RC5RC5、AESAES等等n优点优
26、点加密加密速度快速度快,便于硬件实现和大规模生产,便于硬件实现和大规模生产n缺点缺点密钥分配密钥分配:通信安全取决于密钥的机密性,密钥必须:通信安全取决于密钥的机密性,密钥必须通过保密的信道通过保密的信道密钥个数密钥个数:n(n-1)/2n(n-1)/2无法用来签名和抗抵赖(无第三方公证时)无法用来签名和抗抵赖(无第三方公证时)2.3 对称密钥密码对称密钥密码对称密钥密码模型对称密钥密码模型序列密码:序列密码:通过伪随机数发生器产生性能优良的通过伪随机数发生器产生性能优良的伪随机序列伪随机序列(密钥流密钥流),用该序列对明文消息,用该序列对明文消息逐位加密逐位加密,得到密文序列;解,得到密文序
27、列;解密亦然。密亦然。2.3.1 对称密钥密码加密模式对称密钥密码加密模式从从工作方式工作方式上可分为:分组密码、序列密码上可分为:分组密码、序列密码序列密码的基本原理序列密码的基本原理n 消息流消息流:m=m0m1m2.mi,其中其中mi Mn 密文流密文流:c=c0c1c2.ci=Ek0(m0)Ek1(m1).Eki(mi),ci Cn 密钥流密钥流:k0k1k2.kin 加法流密码加法流密码:ci=Eki(mi)=mi kin分组密码分组密码原理原理加密加密:将明文分成若干固定长度的组,用同一密钥、:将明文分成若干固定长度的组,用同一密钥、算法逐组加密,输出等长密文分组。算法逐组加密,输
28、出等长密文分组。解密解密:将密文分成等长的组,采用同一密钥和算法逐:将密文分成等长的组,采用同一密钥和算法逐组解密,输出明文。组解密,输出明文。分组密码模型分组密码模型n通常明文空间和密文空间是相同的。通常明文空间和密文空间是相同的。n这种密码实质上是字长为这种密码实质上是字长为n的数字序列的的数字序列的代换密码代换密码。nm:明文长度明文长度 n:密文长度,通常密文长度,通常m=n若若mnmnmn,则为有,则为有数据压缩数据压缩的分组密码的分组密码分组密码算法应满足的要求分组密码算法应满足的要求n分组长度分组长度要足够大要足够大 防止明文穷举攻击法奏效,至少为防止明文穷举攻击法奏效,至少为6
29、464位。位。n密钥量密钥量要足够大要足够大 尽可能消除弱密钥并使所有密钥同等好,防止密钥穷举攻击。尽可能消除弱密钥并使所有密钥同等好,防止密钥穷举攻击。n由密钥确定由密钥确定置换的算法置换的算法要足够复杂要足够复杂 充分实现明文与密钥的扩散和混淆,没有简单的关系可循,抗充分实现明文与密钥的扩散和混淆,没有简单的关系可循,抗击各种已知的攻击。击各种已知的攻击。n加密解密加密解密运算运算简单简单(不等于算法简单不等于算法简单)易于软件和硬件高速实现易于软件和硬件高速实现n差错差错传播尽可能小传播尽可能小扩散:扩散:尽可能使明文结构分布到较长的尽可能使明文结构分布到较长的密文上,以防利用统计方法攻
30、击。密文上,以防利用统计方法攻击。混淆:混淆:使明文与密文的关系更加错使明文与密文的关系更加错综复杂,以防以数学分析为主的攻综复杂,以防以数学分析为主的攻击法。击法。2.3.2 数据加密标准数据加密标准DESn背景背景发明人:发明人:美国美国IBMIBM公司公司W.TuchmanW.Tuchman和和C.Meyer 1971-1972C.Meyer 1971-1972年研制成功。年研制成功。基础基础:19671967年美国年美国Horst FeistelHorst Feistel提出的理论。提出的理论。产生产生:美国国家标准局美国国家标准局(NBS)1973(NBS)1973年年5 5月月-1
31、974-1974年年8 8月两次月两次发布公告,公开征求用于电子计算机的加密算法,经评发布公告,公开征求用于电子计算机的加密算法,经评选采纳了选采纳了IBMIBM的的LUCIFERLUCIFER方案。方案。标准化标准化:DESDES算法算法19751975年年3 3月公开发表,月公开发表,19771977年年1 1月月1515日日由由NBSNBS颁布为数据加密标准,于颁布为数据加密标准,于19771977年年7 7月月1515日生效。日生效。DES算法特点算法特点DESDES是一种用是一种用5656位密钥加密位密钥加密6464位数据的方法,密文长度也是位数据的方法,密文长度也是6464位。位。
32、nDESDES算法是分组加密算法,以算法是分组加密算法,以6464位进行分组。位进行分组。nDESDES算法是对称密钥算法,加密和解密用同一密钥。算法是对称密钥算法,加密和解密用同一密钥。nDESDES算法的有效密钥长度为算法的有效密钥长度为5656位。位。n换位和置换。换位和置换。n易于实现。易于实现。S-DES加密算法加密算法(简化的简化的DES)nS-DES是由美国圣达卡拉大学的是由美国圣达卡拉大学的Edward Schaeffer教授提出教授提出的,主要用于教学,其设计思想和性质与的,主要用于教学,其设计思想和性质与DES一致,有关函一致,有关函数变换相对简化,具体参数要小得多。数变换
33、相对简化,具体参数要小得多。n相关知识相关知识置换置换:“ABCDEFGH”做一下做一下”82641753置换的结果就是置换的结果就是”HBFDAGEC”循环移位:循环移位:“ABCDEFGH”循环左移循环左移2位结果就是位结果就是”CDEFG HAB”S盒替代选择盒替代选择:输入的四位数输入的四位数”ABCD”在在S S盒中找第盒中找第ADAD行行BCBC列的数字作为输出。比如列的数字作为输出。比如01010101输入输入S0S0盒的话就是第盒的话就是第1(01)1(01)行第行第2(10)2(10)列,输出为列,输出为1 1即即01,01,再比如再比如10011001输入输入S0S0的话的
34、话就是第就是第3(11)3(11)行第行第0(00)0(00)列列,输出为输出为3 3即即1111按位异或按位异或:11001010=011011001010=0110S-DES的体制的体制n输入输入为一个为一个8位的二进制明位的二进制明文组和一个文组和一个10位的二进制位的二进制密钥,密钥,输出输出为为8位二进制密位二进制密文组;文组;n解密与加密基本一致。解密与加密基本一致。n加密加密:IP-1(fk2(SW(fk1(IP(明明文文)n解密解密:IP-1(fk1(SW(fk2(IP(密密文文)n算法安全性算法安全性:依赖于双方共:依赖于双方共享的享的10位密钥,经过变换位密钥,经过变换生成
35、生成2个个8位密钥,分别用位密钥,分别用于加、解密的不通过阶段。于加、解密的不通过阶段。S-DES的密钥产生的密钥产生n置换函数:置换函数:P10=(3,5,2,7,4,10,1,9,8,6)n循环左移函数循环左移函数LSnP8=(6,3,7,4,8,5,10,9)P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)循环左移循环左移1位,结果被两位,结果被两次使用,分别产生次使用,分别产生k1,k2思考:思考:若初始密钥若初始密钥k0为为(1010000010),产生的两个子密钥,产生的两个子密钥k1,k2分别
36、为多少?分别为多少?(k1:10100100 k2:01000011)S-DES的加密变换过程的加密变换过程nIP=(2,6,3,1,4,8,5,7)nIP-1=(4,1,3,5,7,2,8,6)nE/P=(4,1,2,3,2,3,4,1)n“”:按位异或运算;按位异或运算;nP4=(2,4,3,1)nS盒函数盒函数S0S0和和S1S1为两个盒子函数,将输入作为两个盒子函数,将输入作为索引行列号查表,得到相应的系为索引行列号查表,得到相应的系数作为输出数作为输出。nSW:将左将左4位和右位和右4位交换。位交换。S盒函数盒函数nS盒函数按下述规则运算:盒函数按下述规则运算:输入的输入的第第1 1
37、位和第位和第4 4位二进制数合并位二进制数合并为一个两位二进制数,作为一个两位二进制数,作为为S S盒的行号索引盒的行号索引i i;将将第第2 2位和第位和第3 3位同样合并位同样合并为一个两位二进制数,作为为一个两位二进制数,作为S S盒的列盒的列号索引号索引j j,由(由(i i,j j)确定)确定S S盒矩阵中的一个系数。盒矩阵中的一个系数。此系数以两位二进制数形式作为此系数以两位二进制数形式作为S S盒的输出。盒的输出。例如例如:nL L=(l l0 0,l,l1 1,l,l2 2,l,l3 3)=(0 0,1 1,0 0,0 0),(),(i i,j j)=(0,20,2)n在在S0
38、S0中确定系数中确定系数3 3,则,则S0S0的输出为的输出为1111。DES加密流程图加密流程图子密钥的产生子密钥的产生函数函数f的内部流程的内部流程DES的安全问题的安全问题n1977年,耗资两千万美元建成一个专门计算机用于年,耗资两千万美元建成一个专门计算机用于DES的的破译,需要破译,需要12个小时的破解才能得到结果。个小时的破解才能得到结果。n1994年世界密码大会,年世界密码大会,M.Matsui提出线性分析方法,利提出线性分析方法,利用用243个已知明文,成功破译个已知明文,成功破译DES,n1997年首届年首届“向向DES挑战挑战”的竞技赛。罗克的竞技赛。罗克维瑟用了维瑟用了9
39、6天时间破解了用天时间破解了用DES加密的一段信息。加密的一段信息。n2000年年1月月19日,电子边疆基金会组织日,电子边疆基金会组织25万美元的万美元的DES解解密机以密机以22.5小时成功破解小时成功破解DES加密算法。加密算法。nDES的最近一次评估是在的最近一次评估是在1994年,同时决定年,同时决定1998年年12月月以后,以后,DES将不再作为联邦加密标准将不再作为联邦加密标准。DES的变形的变形3DES由于由于DES的的密钥长度密钥长度相对于穷举攻击过短,因此一般使用多相对于穷举攻击过短,因此一般使用多重重DES进行加密,常见的是进行加密,常见的是三重三重DES。将将6464位
40、的明文组以位的明文组以3 3个个5656位的密钥分别在位的密钥分别在3 3个个DESDES系统加密处系统加密处理后,产生理后,产生6464位的密文分组,将密钥长度有原来的位的密文分组,将密钥长度有原来的5656位扩增位扩增到到168168位,大大增强其安全性。位,大大增强其安全性。2.3.3 分组密码的工作模式分组密码的工作模式n电子编码本模式电子编码本模式(ECB):用):用相同的密钥相同的密钥分别对明文分别对明文分组加密。分组加密。ECB模式特点模式特点模式模式简单有效,主要用于内容较短且随机的报文的加密传递简单有效,主要用于内容较短且随机的报文的加密传递各组的加密独立于其它分组,可以实现
41、各组的加密独立于其它分组,可以实现并行处理并行处理不能隐藏不能隐藏明文的模式明文的模式信息(统计规律、结构规律)信息(统计规律、结构规律)相同的明文得出相同的密文相同的明文得出相同的密文同样信息多次出现造成统计分析攻击同样信息多次出现造成统计分析攻击对明文的对明文的主动攻击主动攻击 信息块可以被替换、重排、删除、重放信息块可以被替换、重排、删除、重放误差传递较小误差传递较小:密文块损坏只会影响其对应的明文解密:密文块损坏只会影响其对应的明文解密明文:明文:张三队长昨晚抓住张三队长昨晚抓住3名窃贼名窃贼密文:密文:c1=DES(张三队长)(张三队长)c2=DES(昨晚抓住昨晚抓住)c3=DES(
42、3名窃贼名窃贼)若将若将c1及及c3的顺序对调,则解密后?的顺序对调,则解密后?ECB替换攻击替换攻击n例如:例如:假设银行的汇款业务报文模式如下:假设银行的汇款业务报文模式如下:攻击者通过截取报文统计分析,得到账户信息所对应的分组攻击者通过截取报文统计分析,得到账户信息所对应的分组为第为第5-125-12组,替换为自己的账户,即可实现攻击。组,替换为自己的账户,即可实现攻击。密码分组链接模式(密码分组链接模式(CBC)加密算法的输入是加密算法的输入是上一个密文组上一个密文组和和下一个明文组下一个明文组的的异或异或收发双方共享收发双方共享IV和和Key加密:加密:ci=Ek(mi ci-1)i
43、=1,2,3.解密:解密:mi=Ek-1(ci)ci-1 i=1,2,3.CBC的特点的特点n优点优点:相同明文块产生不同密文块,相同明文块产生不同密文块,隐蔽隐蔽明文的数据模式。明文的数据模式。密文块之间联系紧密,某一密文块被破坏,解密不出密文块之间联系紧密,某一密文块被破坏,解密不出有意义的明文块,在一定程度上有意义的明文块,在一定程度上防止防止分组重放、插入、分组重放、插入、删除等攻击。删除等攻击。n缺点缺点:加密易导致加密易导致错误传播错误传播,任何一个明文或密文分组出错,任何一个明文或密文分组出错都会导致其后的密文分组出错。都会导致其后的密文分组出错。解密时,如果某密文块解密时,如果
44、某密文块ci出错,则该组明文出错,则该组明文mi及下一组及下一组 明文明文mi+1会出错,其余组不受影响。会出错,其余组不受影响。加密不能加密不能并行并行处理,解密可以。处理,解密可以。密码反馈模式密码反馈模式(CFB)适用于适用于待加密的消息需待加密的消息需要按照字符、比特处理,要按照字符、比特处理,需要共同的需要共同的IV值。值。优点:优点:隐藏明文模式隐藏明文模式缺点:缺点:加密明文发生错误加密明文发生错误时,错误会传播。时,错误会传播。解密时,一个密文解密时,一个密文块损坏会影响两个明块损坏会影响两个明文块无法解密还原。文块无法解密还原。无并行实现的算法。无并行实现的算法。输出反馈模式输出反馈模式(OFB)与与CFB类似,但反馈类似,但反馈的内容是的内容是DES的输出的输出而不是密文。而不是密文。优点:优点:错误传播小错误传播小隐藏明文模式隐藏明文模式缺点:缺点:不能并行实现不能并行实现安全性较安全性较CFB差差