版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、B密码编码学与网络平安密码编码学与网络平安电子工业出版社2006 - 2007B第3章 对称算法DES 3.1 分组密码算法原理 3.2 DES算法 3.3 DES强度 3.4 差分分析和线性分析 3.5 分组密码设计原理* 3.A DES in /etc/passwd* 3.B DES in OpenSSLB密码技术开展 1918,William F. Friedman,The Index of Coincidence and Its Applications in Cryptography 1949,Claude Shannon,The Communication Theory of Se
2、crecy Systems 1967,David Kahn,The Codebreakers 1970s,NBS/NIST,DES 90s, AES 1976,Diffie, Hellman,New Directory in Cryptography 1984,C.H. Bennett,Quantum Cryptography: Public Key Distribution and Coin Tossing 1985,N. Koblitz,Elliptic Curve Cryptosystem 2000,AESB3.1 分组密码算法原理 分组密码算法 Block Cipher 明文被分为固定
3、长度的块(即分组),对每个分组用相同的算法和密钥加解密 分组一般为n64比特,或更长 (Padding) 密文分组和明文分组同样长 对某个密钥可以构造一个明密文对照表 Codebook (Substitution Table) 所以分组的长得至少64比特才好 密钥空间2k 可逆映射个数(2n)!B序列密码算法(流密码算法) 流密码算法 Stream Cipher 每次可以加密一个比特 适合比方远程终端输入等应用 流密码可用伪随机数发生器实现 密钥做为随机数种子,产生密钥流keystream (不重复,或极大周期) XOR (plaintext,key-stream ) One-time Pad
4、B比较 根本区别 粒度 8字节分组 vs. 1比特或1字节 各自适应不同的应用数据格式 Padding 对相同的明文分组,总是输出相同的密文分组;而流密码却输出不同的密文比特 流密码一般快很多 分组密码多些,是主流 分组密码也可以用作流模式 平安性比照BBlock Cipher Principles0000 11100001 01000010 11010011 00010100 00100101 11110110 10110111 10001000 00111001 10101010 01101011 11001100 01011101 10011110 00001111 01110000 1
5、1100001 00110010 01000011 10000100 00010101 11000110 10100111 11111000 01111001 11011010 10011011 01101100 10111101 00101110 0000 乘积密码: 重复使用代替和置换,实现混乱和扩散。BFeistel(DES)加密框架 明文分组的长n2w 分左右两半L0 R0 密钥K产生子钥:Kk1,k2,kr r是轮数,比方16轮 是异或函数XOR p x x = p 函数F是散列混乱函数 可以是手工精心构造的查表函数BFeistel网络 BFeistel解密 BFeistel for
6、 Loop 加密计算序列L0左半 R0右半L1R0 R1L0 F(k1,R0)L2R1 R2L1 F(k2,R1)L3R3 R3L2 F(k3,R2)LiRi-1 RiLi-1 F(ki,Ri-1)LnRn-1 RnLn-1 F(kn,Rn-1)密文即Ln,Rn 解密计算B2轮解密举例 假设n2轮,C L2,R2加密明文半半L0+R0L1R0 R1L0 F(k1,R0)L2R1R2L1 F(k2,R1) 解密密文半半L2R2R1L2L1R2 F(k2,R1)R0L1L0R1 F(k1,R0)明文L0R0L1R2 F(k2,R1)L1 F(k2,R1) F(k2,R1)L1L0R1 F(k1,R
7、0)L0 F(k1,R0) F(k1,R0)L0BFeistel伪代码 明文明文m 长度长度n2t,记为,记为m0m1,每个长度为,每个长度为t 密钥密钥k 产生产生r个子密钥个子密钥k1,k2 ,.,kr 加密加密Em:for i=2 to r+1 do0, 1mimi-2 XOR f(mi-1, ki-1)i, i+1 - ki得密文得密文mr,mr+1r, r+1 Recent news in 1997 on Internet in a few months (Rocke,96days) in 1998 on dedicated h/w in a few days (DES II-2 E
8、FF, 56 hrs) in 1999 above combined in 22hrs 15 mins“Deep Crack by EFFB穷举(蛮力)攻击Cost/Time表 Key search machine unitexpected search time$ 100,00035 hours$ 1,000,0003.5 hours$10,000,00021 mins wiener93efficient.pdf A Brute Force Search of DES Keyspace :/pubs/des-key-crack/ 按照NIST的提议,98年以后DES不应继续使用 3DES、A
9、ES、RC5、IDEA 等B“Deep Crack Hardware Cracker Developed by theElectronic Frontier Foundation Cost US$210,000 $80,000 design $210,000 materials (chips, boards, chassis etc)BVLSI Chip Developed by AdvancedWireless Technologies 24 search units per chip 40 MHz 16 cycles per encryption 2.5 million keys/s Bo
10、ard contains 64 chips 6 cabinets holding 29 boardsBDeep Crack System 90 billion keys/s 37,000 search units c.f. Distributed Nets 34 billion keys/s Controlled by PC checks possible all ASCII candidate solutions from the search units Solved RSAs DES-III in 22 hours Jan 18, 1999B蛮力攻击对明文内容的要求* 问题:如何区分出来
11、?对给定的某个密文,任何一个密钥都可以解密出一个可能的明文,但是其中应该只有一个是正确的明文。必须事先知道明文的结构,比方已经知道这是文字文本、源程序图像、声音、压缩的?如果有两个密钥,解密出来的两个明文都有意义?可能性极小因为密钥空间2k - * * /etc/shadow passwd username:passwd:last:may:must:warn:expire:disable:reserved sample username:Npge08pfz4wuk:503:100:FN:/home/username:/bin/sh username:x:503:100:FN:/home/use
12、rname:/bin/sh 1/2 username:Npge08pfz4wuk:9479:0:10000: 2/2Bcrypt()函数 crypt #define _XOPEN_SOURCE #include char *crypt(const char *key, const char *salt); passwd space 128-32-7f = 95个可用字符 95n salt 两个字符,每个可从a-zA-Z0-9./中选出来,即有4096种不同取值 抵抗字典攻击中的预算值Bcrypt()描述 从passwd到key padding 形成8字符的组 每组产生56bits87的密钥 如
13、果多于1组,那么XOR累计 重复加密64比特0到25回 中间置换,受salt控制,计有4096种不同的置换 输出211字符 2字符是明码salt 11字符是编码后的DES的64bits输出密文Bcrypt() Fig BPasswd Cracker 基于字典的口令猜测攻击 字典的构造 普通字典 用户相关的词语 John the Ripper password cracker :/john/ L0phtCrack 更多平安工具 ://tools2.htmlBZip cracker sampleAdvanced ZIP Password Recovery statistic
14、s:Encrypted ZIP-file: sdjfks.zipTotal passwords: 2,091,362,752Total time: 6m 58s 725ms Average speed (passwords/s): 4,994,597Password for this file: 7uee23Password in HEX: 37 75 65 65 32 33B3.B DES in OpenSSL DES算法很复杂,实现起来非常琐碎,在性能和移植性上也难于友好,因此如果软件实现提倡使用开放源码的实现,如OpenSSL等。 OpenSSL是SSL/TLS协议的开放实现,其中也实现
15、了几十种密码算法。 OpenSSL部署广泛,使用OpenSSL中的DES非常便利。 OpenSSL的使用说明参见 “OpenSSL使用指南-BOpenSSL库结构图SSLssleay32.dll密码算法密码算法libeay32.dll应用程序应用程序(openssl.exe)对称:对称:DESAESRC4IDEA非对称:非对称:RSADHDSAECC散列:散列:MD5SHA1SHA256随机数等:随机数等:RANDBNBDES API 关于ECB和CBC模式 程序例如DES API in OpenSSL 主程序见备注行 int des_ecb_encrypt(input, output, schedule, enc) Demo_des.zipB关键术语 Key Terms avalanche effectblock cipher confusion Data Encryption Standard (DES) differential cryptanalysis diffusionFeiste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平均出资买房协议书
- 广告位合同解除协议
- 店面搬迁转租协议书
- 延期申请书协议书
- 建筑退界协议书
- 张鹏程离婚协议书
- 情侣醉酒签协议书
- 我的阅读协议书
- 房产改合同协议书
- 房子解除合同协议
- 雨课堂学堂在线学堂云《俄罗斯文化艺术赏析(北京联合大学 )》单元测试考核答案
- 校车驾驶员安全培训课件
- 《业务三板斧:定目标、抓过程、拿结果》阅读随笔
- 2025年国家开放大学《人体解剖生理学》期末考试复习试题及答案解析
- 2026社区工作者考试必考题库及答案(考点梳理)
- 江苏钢结构厂房加高施工方案
- 耕地复耕申请书范文
- 新能源材料与器件制备技术 课件 第7章:锂离子电池电解质材料
- DSP控制器原理及应用技术(第2版)-习题答案. 第2章 硬件基础
- 《房屋市政工程生产安全重大事故隐患判定标准(2024版)》解读
- 胃肠镜清洗流程课件
评论
0/150
提交评论