信息加密技术(信息安全与对抗教研室)苏京霞2005.4信息加密技术简介内容1.密码学基本概念2.DES加密算法3.RSA加密算法4.数字签名一般密码系统处理某种方法公开信道伪信息破译者处理一定方法发送方接收方信息信息(明文)(密文)(密钥)加密解密(明文)1.替换加密古典加密算法明文中每个字符被替换成密文中的另外一个字符明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ例:明文:THISISAFILE密文:EFGHIJKLMNOPQRSTUVWXYZABCD密文:XMNWNWEKNPI把明文中的字符重新排列,字符本身不变例:明文:Thisisafile.密钥:121110987654321长度为4密文:.elifasisihT每个密钥仅对一个消息使用一次2.置换加密3.一次一密密码学基本概念1.密码学2.明文3.密文4.解密5.密码6.加密7.密钥8.密码编码学9.密码分析学10.密码体制是研究秘密通信的学问使消息保密的科学和技术研究如何破译密码的科学和技术待加密的信息称为明文加密后的信息称为密文是由使用密码的用户选取的随机数从密文恢复明文的过程称为解密用于加密和解密的数学函数将明文变成密文的过程称为加密完成加密和解密的算法密码分析学是在不知道密钥的情况下,恢复出明文的科学攻击:1.唯密文攻击2.已知明文攻击3.选择文攻击目的:恢复明文、密钥及发现密码体制的弱点分析者知道一些截获的密文,并且试图恢复尽可能多的明文分析者不仅知道一些明文―密文对,并试图推导出加密密钥或算法分析者对明文(或密文)有选择或控制的能力。他可以选择一些他认为最容易破解的明文―密文对而对密码系统加以攻击密码体制组成:1.明文信息空间M(全体明文的集合)2.密文信息空间C(全体密文的集合)3.密钥空间K(全体密钥的集合K=(Ke,Kd))4.加密算法E:5.解密算法D:CM),(1dKCfM-分类:按执行的操作方式分替换密码置换密码按密钥数量分对称密钥密码(单钥密码)非对称密钥密码(公钥密码)按明文处理方式流密码(序列密码)分组密码),(eKMfCMC典型密码系统明文M加密器E加密密钥Ke公开信道密文(M)ECeK破译者解密器D解密密钥Kd明文)(dCDMK发送方接收方数据加密标准DES算法分析DES概述DES的构成算法主要步骤安全性一、DES概述M、C、K二进制数64位明文(密文)块64位密钥算法置换模2加乘积变换二、DES的构成计算密钥表,将64位密钥转换为16个子密钥模2加法运算加密函数,包括乘积变换中的选择函数和置换运算码组移位初始置换逆初始置换三、DES算法主要步骤64位码明文输入初始置换乘积变换逆初始置换64位码密文输出乘积变换k1+f1516RL),(16151516KRfLR),(1001KRfLRL0R0L1=R0L15=R14),(15141515KRfLR组码移位kik16+f),(16151516KRfLR1516RLf初始置换(IP)先将输入的明文按下图所示进行变换。然后将变换后的数据分左右两组,每组32位长。明文输入(64位)置换后结果(64位)L0(32位)58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置换R0(32位)f函数1iiRLLi-1Ri-1扩展置换S-盒替换P-盒置换密钥移位移位压缩置换密钥Ki),(11iiiiKRfLR置换选择157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124CiDi置换选择21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932扩展置换1234567891011121314151617181920212223241234567891011121314151632483212345456789891011121312131415161716171819202120212223242524252627282928293031321E选位表密钥计算在64位密钥中,由于不考虑每个字节的第8位(校验位),DES密钥由64位减至56位。将这56位密钥分解成16个48位的子密钥,每个子密钥控制一次迭代过程。每个子密钥参与加密或解密运算过程,从而直接影响到加密或解密变换的结果。密钥(56位)密钥(64位)置换选择1循环左移密钥(56位)置换选择2密钥(48位)密钥计算逻辑64位密钥置换选择1C0(28位)D0(28位)循环左移循环左移C1D1置换选择2K1(48位)(56位)循环左移循环左移C16D16(56位)置换选择2(48位)K16循环左移表迭代次数循环左移位数迭代次数循环左移位数123456781122222291011121314151612222221S-盒压缩后的密钥与扩展分组异或以后,将48位的结果平均送入8个S-盒中,进行替换运算,总输出为32位。每个S-盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S-盒的输入为6位,将最左与最右2位取出当S-盒的行数,剩余的4位取出当S-盒的列数。这样就可从S-盒中选出一个数来,这个数是一个4位的二进制码。例:输入数据为011001最左与最右两位数为:01剩余的4位数为:1100取S-盒中(1,12)中数为:9011001S-盒1001对应S-盒中第1行对应S-盒中第12列输出为1001选择函数S-盒模2加法结果(48位)S1S2S3S5S6S7S4S8选择函数的结果(32位)012345678910111213141501231441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S1P-盒置换S-盒替换运算后的32位输出,输入到P-盒进行置换。该置换把每输入位映射到输出位,任一位不能被映射两次,也不能被略去。选择函数的输出(32位)加密函数的结果(32位)1672021291228171152326518311028241432273919133062211425置换P逆初始置换逆初始置换是初始置换的逆过程。经过16轮迭代运算后,左右两部分合在一起经过逆初始置换后,终于得到了密文。置换码组(64位)密文(64位)40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725逆初始置换四、DES算法的安全性1.64位密钥短采用三重DES。E(E(E(m,k1),k2),K1)2.弱密钥在DES所有密钥中,有几个特别的密钥,变换后任意一周期的密钥都是相同的,会降低DES的安全性使用者一定要避免。0101010101010101(校验位)000000000000001F1F1F1F1F1F1F1F0000000FFFFFFFE0E0E0E0E0E0E0E0FFFFFFF0000000FEFEFEFEFEFEFEFEFFFFFFFFFFFFFF3.半弱密钥这些密钥只产生2个不同的子密钥。01FE01FE01FE01FEFE01FE01FE01FE0101E001E001F101F1E001E001F101F1014.S-盒可能隐含有陷门S-盒的设计者并没公开算法设计的原理和所有的技术细节,专家认为S-盒可能隐含有陷门。有人论证采用56位密钥,DES可以已知明文攻击下通过穷举搜索被破译。5.攻击:差分攻击、线性攻击、相关密钥攻击等。公钥密码体制RSA的算法分析RSA概述RSA算法是1977年,Rivest,Shamir和Adleman联合提出一种基于数论中欧拉定理的公钥密码系统,简称RSA公钥系统。它的安全性是基于大数因子分解,即它的保密强度是建立在计算复杂性基础上的。一个150位左右的合数,即使采用现在的巨型电子计算机进行因子分解,其运算量也是相当巨大的。对于公钥密码体制,任何人都可以使用其他用户的公开密钥来对数据进行加密,但是只有拥有秘密密钥的用户才能对加密的数据进行解密。公钥密码体制的加密密钥是公开的,而解密密钥是保密的。Data公钥密码技术简介加密的数据在网络上进行传输2DataB用A的公钥(n,e)对数据进行加密。13A783A78BAA公开自己的公钥(n,e))(modnmce3A78A用自己的私钥(d)对数据进行解密3Data)(modncmdRSA描述p和q是素数(秘密的)n=p×q(公开密钥)(非秘密的)(n)=(p-1)(q-1)(秘密的)e是公开密钥(加密密钥)(非秘密的)d是秘密密钥(解密密钥)(秘密的)m是明文(秘密的)c是密文(非秘密的)加密算法:c=E(m)≡me(modn)解密算法:m=D(c)≡cd(modn)e满足条件:e和(p-1)(q-1)互素,即(e,(n))=1d满足条件:ed≡1mod(p-1)(q-1)RSA密钥产生1.随机选择两素数p和q(长度在100位左右)2.计算公开模数:n=p×q3.计算秘密的欧拉指示函数:(n)=(p-1)(q-1)4.选择随机数e(即加密密钥),使之与(n)互素即gcd(e,(n))=15.计算解密密钥d=e-1mod(n)6.公布整数n和加密密钥e,并将d秘密保存为其秘密密钥。p和q可以毁去不用,以增加其安全性。RSA加解密过程设B欲将明文m秘密传送给A1.B在公开档案库中找出A的公开密钥E(e,n)。2.将m分组为m=m1m2…mr并将其数字化。3.B对每一分组执行加密操作:c=me(modn)4.B将c传送给A。5.A收到密文c后,利用其私有密钥d,执行解密操作:m=cd(modn)RSA例题假设现在有A方和B方需要秘密通信,B方欲将明文“publickeyencryptions”加密后发送给A方。一、A方建立一密钥系统1.先取两个素数(保密):p=43,q=592.计算公开模数:n=q×p=43×59=2539(n)=(p-1)(q-1)=42×58=24363.随机选取加密密钥(公钥):e=13要求gcd(e,(n))=14.计算解密密钥(私钥):d=e-1(mod(n))=9375.将加密密钥n,e公开,将d保密,p、q和(n)可以毁去不用,以增加其安全性。RSA例题二、B方加密1.B在公开档案库中找出A的公开密钥E(e,n)。2.先将m分组为m=m1m2…mr。即将明文m=publickeyencryptions按两字一组分块为:publickeyencryptions3.将明文数字化:按英文字母顺序设a=00,b=01,c=02,…,y=24,z=25,以此将明数字化为15200111080210042404130217241519081414184.利用A的加密密钥e和n,利用公式c=me(modn)对每组明文加密,得到如下密文:00951648141012991365137923332132175112895.将密文发送给A方。三、A方解密A方将用解密密钥d和利用公式m=ed(modn),对接收到的密文进行解密。解密后可得到明文m。RSA参数的选择1.P与q必须为强素数2.P与q的差必须很大(差几个位以上)3.p-1与q-1的最大公因子应很小4.e不可以太小5.d的长度不得小于N长度的1/4DES与RSA的比较1.处理效率方面:DES优于RSA