




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、B第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 Secrecy Systems 1967,David Kahn,The Codeb
2、reakers 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 明文被分为固定长度的块(即分组),对每个分组用相同的算法和密钥加解密 分组一般为n64比
3、特,或更长 (Padding) 密文分组和明文分组同样长 对某个密钥可以构造一个明密文对照表 Codebook (Substitution Table) 所以分组的长得至少64比特才好 密钥空间2k 可逆映射个数(2n)!B序列密码算法(流密码算法) 流密码算法 Stream Cipher 每次可以加密一个比特 适合比如远程终端输入等应用 流密码可用伪随机数发生器实现 密钥做为随机数种子,产生密钥流keystream (不重复,或极大周期) XOR (plaintext,key-stream ) One-time PadB比较 基本区别 粒度 8字节分组 vs. 1比特或1字节 各自适应不同的
4、应用数据格式各自适应不同的应用数据格式 Padding 对相同的明文分组,总是输出相同的密文分组;对相同的明文分组,总是输出相同的密文分组;而流密码却输出不同的密文比特而流密码却输出不同的密文比特 流密码一般快很多 分组密码多些,是主流 分组密码也可以用作流模式 安全性对比BBlock Cipher Principles0000 11100001 01000010 11010011 00010100 00100101 11110110 10110111 10001000 00111001 10101010 01101011 11001100 01011101 10011110 00001111
5、 01110000 11100001 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轮 是异或函数XORp x x = p 函数F是散列混乱函数可以是手工精心构造的查表函数BFeistel网络 BFeistel解密 BFei
6、stel for Loop 加密计算序列L0左半 R0右半L1R0 R1L0 F(k1,R0)L2R1R2L1 F(k2,R1)L3R3R3L2 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)L1L
7、0R1 F(k1,R0)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+1)r, r+1 Recent news in 1997 on Internet in a few months (Rocke,96days) in 1998 on dedicated h/w in a few day
8、s (DES II-2 EFF, 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 Keyspacehttp:/ 按照NIST的提议,98年以后DES不应继续使用 3DES、AES
9、、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 Boa
10、rd 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:
12、FN:/home/username:/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字符的组 每组产生56b
13、its87的密钥 如果多于1组,则XOR累计 重复加密64比特0到25回 中间置换,受salt控制,计有4096种不同的置换 输出211字符 2字符是明码salt 11字符是编码后的DES的64bits输出密文Bcrypt() Fig BPasswd Cracker 基于字典的口令猜测攻击 字典的构造 普通字典 用户相关的词语 John the Ripper password cracker http:/ http:/ L0phtCrack /wiki/L0phtCrack 更多安全工具 /tools2.htmlB
14、Zip cracker sampleAdvanced ZIP Password Recovery statistics: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算法很复杂,实现起来非常琐碎,在性能和移植性上也难于友好,因
15、此如果软件实现提倡使用开放源码的实现,如OpenSSL等。 OpenSSL是SSL/TLS协议的开放实现,其中也实现了几十种密码算法。 OpenSSL部署广泛,使用OpenSSL中的DES非常便利。 OpenSSL的使用说明参见 “OpenSSL使用指南-x.xx.doc”BOpenSSL库结构图SSL(ssleay32.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 diffusionFe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年商标模板项目市场调查研究报告
- 2025年佛像雕塑项目市场调查研究报告
- 智能温控桑拿房控制系统行业深度调研及发展战略咨询报告
- 熟食冻干产品企业制定与实施新质生产力战略研究报告
- 智能汽车安全系统行业深度调研及发展战略咨询报告
- 物流大数据分析仓储布局企业制定与实施新质生产力战略研究报告
- 熟食即食包装产品行业跨境出海战略研究报告
- 智能商标注册助手企业制定与实施新质生产力战略研究报告
- 智能扫地机器人静音设计行业深度调研及发展战略咨询报告
- 保管物买卖合同范例
- JB-T 4088.1-2022 日用管状电热元件 第1部分:通用要求
- RLC串联电路暂态研究
- 《实数》单元作业设计
- 围手术期血糖的管理专家讲座
- 干湿法脱硫运行经济成本对比(自动计算)
- 运输与配送管理选择题复习题库
- 线性代数矩阵
- S22天天高速安庆至潜山段(凉亭至月山)环境影响报告书
- 某厂蒸汽管道安装吹扫及试运行方案
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 安徽金轩科技有限公司 年产60万吨硫磺制酸项目环境影响报告书
评论
0/150
提交评论