密码学基本概念密码学基本概念密码学(cryptology)是研究密码编制、密码分析和密钥管理的一门综合性应用科学。1密编学1、密码编码学密码:是通信各方按约定的规则,为隐蔽消息原形而生成的一组具有随机特性的特定符号是进原形而生成的组具有随机特性的特定符号,是进行明密变换的主要保密手段。明文:被隐蔽的消息称作明文,通常用m表示。明文被隐蔽的消息称作明文通常用表示密文隐蔽的消息称作密文或密报通常用表密文:隐蔽后的消息称作密文或密报,通常用c表示。2加密:将明文变换成密文的过程称为加密,该过程表示为:)(mEc=过程表示为:)(mEck=脱密:合法用户由密文恢复出明文的过程称为脱密,该过程表示为:)(cDmk=脱密,该过程表示为:)(cDmk密钥:控制或参与密码变换的可变参数称为密钥,分为加密密钥和脱密密钥。分为加密密钥和脱密密钥。32、密码分析学密码分析学(1)唯密文攻击:密码分析者有一个或更多的用同一个密钥加密的密文,通过对这些截获的密文进行分析得出明文或密钥。得出明文或密钥(2)已知明文攻击:除待解的密文外,密码分析者(2)已知明文攻击:除待解的密文外,密码分析者有一些明文和用同一个密钥加密这些明文所对应的密文(3)选择明文攻击:密码分析者可选择对密码分析有密文。(3)选择明文攻击:密码分析者可选择对密码分析有利的密文所对应的明文,这些密文与待解的密文是用同个密钥加密得来的4一个密钥加密得来的。密码体制1、密码体制的描述个密码体制(tt)由四部分组一个密码体制(cryptosystem)由四部分组成:明文空间(M),密文空间(C),密钥空间密算法包括加密变换脱密变间(K)和密码算法(包括加密变换:Ek;脱密变换Dk)。换k52、密码体制应当满足的要求(1)系统即使达不到理论上是不可破的,也应当是计算上保密的。(2)系统的保密性不依赖于对加密体制或算法的保密而依赖于密钥的保密,而依赖于密钥。(3)加密算法和脱密算法适用于密钥空间中的(3)加密算法和脱密算法适用于密钥空间中的所有元素。所有元素(4)系统既易于实现又便于使用。63密码体制的分类3、密码体制的分类(1)根据密钥的特点,把密码体制分为传统和公钥密码体制两种公钥密码体制两种。(2)按对明文消息加密方式的不同,又可将密(2)按对明文消息加密方式的不同,又可将密码体制分为分组密码和序列密码两种。7密码学能够解决的问题4、密码学能够解决的问题信息系统的安全与保密问题1)信息系统的安全与保密问题2)电子商务、电子政务中的安全和保密问题)3)银行系统、证券系统、保险系统等的安全问题4)商品、票据、信用卡等的防伪与审核问题4)商品、票据、信用卡等的防伪与审核问题85典型的密码算法5、典型的密码算法序列密码序列密码:RC4、A5、E0;分组密码:AES、DES、IDEA;公钥密码:RSA、ECC;HASH函数:MD5、SHA-1;9DESDES分组密码算法分组密码算法DESDES分组密码算法分组密码算法((DataEncipherStandardDataEncipherStandard))DES算法概述圈函数圈函数密钥生成算法密钥生成算法10一、DES算法概述DES算法是迭代型分组密码算法。基本参数基本参数::●●分组长度:64比特●●密钥长度64比特●●密钥长度:64比特●●有效密钥长度:56比特●●迭代圈数:16圈每圈子密钥长度48比特●●每圈子密钥长度:48比特11m1m2……m64……初始置换Round1K1DES迭代::1算法加密代16圈::加密流程框图圈Round16K16框图逆初始置换C1C2……C6412m1m2……m64L0R01264……初始置换FK1初始置换RoundR迭代:Round1L1R1代16圈::圈Round16L15R15K逆初始置换FK16C1C2……C64L16R1613DES加密框图初始置换初始置换和逆初始置换逆初始置换初始置换初始置换输入和输出数据比特的序号序号从左向右左向右编排为12364和逆初始置换逆初始置换初始置换IP逆初始置换IP-1输入和输出数据比特的序号序号从左向右左向右编排为1,2,3,…,64初始置换IP585042342618102逆初始置换IP40848165624643258503680605244362820124625446383022146397471555236331386461454226230645648403224168574941332517915951433527191133754513532161293644412522060283534311511959275951433527191136153453729211356355473931231573534311511959273424210501858263314194917572563554739312315714m1m2……m64……初始换初始置换迭Round1K1迭代16:::16圈Round16K16逆初始置换1616CCC逆初始置换15DES加密框图C1C2……C64二圈函数二圈函数DESDES算法的第算法的第ii圈加密结构图圈加密结构图DESDES算法的第算法的第ii((i=1,2,i=1,2,……,15),15)圈加密结构图圈加密结构图圈变换的数学描述如下:L(32位)R(32位)圈变换的数学描述如下:Li=Ri1Feistel模型Li-1(32位)Ri-1(32位)FKiLiRi-1Feistel模型Ri=Li-1F(Ri-1,Ki)LiRiii1(i-1,i)16DES算法的F函数a1a2…a321Ea’1a’2…a’48k1k2…k48⊕S1S8S2S7S6S4S3S52P317①扩展变换----E盒扩展E盒的作用:是将输入的32比特数据扩展为48比特数据1234567832123454567899101112131415164567898910111213121314151617131415161718192021222324121314151617161718192021202122232425扩展21222324252627282930313220212223242524252627282928293031321293031322829303132118②压缩替代变换----S盒S盒作用:是将输入的48比特数据压缩为32比特数据。48比特盒作用是将输入的比特数据压缩为比特数据48比特SSSSSSSSS1S8S2S7S6S4S3S532比特1900010203040506070809101112131415输出列012314041301021511080310061205090007001507041402130110061211090503080401140813060211151209070310050015120802040901070511031410000613行S18315120802040901070511031410000613012315010814061103040907021312000510031304071502081412000110060911050014071110041301050812060903021513081001031504021106071200051409S28个6每个S盒有4行,记为第0123行313081001031504021106071200051409012310000914060315050113120711040208130700090304061002080514121115011306040908150300110102120510140701101300060908070415140311050212S36进0,1,2,3行。16列记为第0,1,2,…,15301101300060908070415140311050212012307131403000609100102080511120415130811050615000304070212011014091006090012110713150103140502080403150006100113080904051112070214002120401071011060805031513001409S44出0,1,2,…,15列。012302120401071011060805031513001409141102120407130105001510030908060402011110130708150912050603001411081207011402130615000910040503012011015090206080013030414070511S5出S盒实际上每个S盒是012312011015090206080013030414070511101504020712090506011314001103080914150502081203070004100113110604030212090515101114010706000813004110214150008130312090705100601S6盒个S盒是一个4行代替表。123130011070409011014030512021508060104111312030714101506080005090206111308010410070905001514020312011302080406151101100903140500120701151308100307041205061100140902S7代替表。20123011513081003070412050611001409020711040109121402000610131503050802011407041008131512090003050611S8查表方法:以S6为例b1b1b6b2b3b4bb5b6b2b3b4b5b1b2b3b4b5b6行:b1b6=112=3S6盒3行9列即1100112列:b2b3b4b5=10012=9值:14=1110221S6(1100112)=11102即:③移位变换----P盒将S盒变换后的32比特数据再进行P盒置换,置换后得到的比特即为函数的输出后得到的32比特即为F函数的输出P1672021DES的P盒的设计特点2912281711523265183110(1)P盒的各输入块的4个比特都分配到不同的输出块之中5183110282414322739到不同的输出块之中(2)P盒的各输出块的4个比特都来19133062211425(2)P盒的各输出块的4个比特都来自不同的输入块22例1:已知DES分组密码算法第一圈的输入为L83D67FEBR97A4F8EDL0=83D67FEB16,R0=97A4F8ED16子密钥为K1=38127AD67B4516,求第一圈的加密结果。解:第一圈的圈函数L0R0KFK1LR23L1R1例1:已知DES分组密码算法第一圈的输入为L0=83D67FEB16,R0=97A4F8ED16子密钥为K1=C4127AD42B4516,116求第一圈的加密结果。解:第一圈的圈函数83D67FEB1697A4F8ED16C4127AD42B45FC4127AD42B4516??24??1)、输入的右半部分R0是:97A4F8ED3221aaa…97A4F8ED16=10010111101001001111100011101101kkkaaa′′′E111110001110110121011111101000010014821kkk⊕4821aaa……2)、经E盒扩展后为1100101011111101000010010111111100010111010110112S1S8S2S7S6S4S35SS5110010P3)、第一圈的子密钥K1是C4127AD42B4516=110001000001001001111010