1 / 51

第一部分 密码学

第一部分 密码学. 四川大学 曾雪梅 zengxm@scu.edu.cn 课件下载: http://imc.scu.edu.cn/zengxm/course/. 密码学简介. 密码学 : 以研究秘密通信为目的,研究对传输信息采取何种秘密的变换,以防止第三者对信息的截取。 密码编制学 —— 研究把信息(明文)变换成没有密钥不能解密或很难解密的密文的方法 密码分析学 —— 研究分析破译密码的方法 四组人用到了密码学:军事人员、外交人员、写日记者、情侣. 经典密码学、现代密码学. 凯撒密码. 保密系统模型. 搭线信道 (被动攻击). 搭线信道 (主动攻击).

tracey
Download Presentation

第一部分 密码学

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一部分 密码学 四川大学 曾雪梅 zengxm@scu.edu.cn 课件下载:http://imc.scu.edu.cn/zengxm/course/

  2. 密码学简介 • 密码学:以研究秘密通信为目的,研究对传输信息采取何种秘密的变换,以防止第三者对信息的截取。 • 密码编制学——研究把信息(明文)变换成没有密钥不能解密或很难解密的密文的方法 • 密码分析学——研究分析破译密码的方法 • 四组人用到了密码学:军事人员、外交人员、写日记者、情侣

  3. 经典密码学、现代密码学 凯撒密码

  4. 保密系统模型 搭线信道 (被动攻击) 搭线信道 (主动攻击) m` 密码分析员 (窃听者) 非法接入者 c m 信源 M m 加密器 C=EK1(M) 解密器 M=Dk2(C) c 接收者 信道 k1 k2 密钥源 k1 密钥源 k2 密钥信道 K1=k2: 单钥,对称密码体制 K1≠k2: 双钥,非对称密码体制

  5. 第二章 对称加密和消息机密性

  6. 主要内容 • 对称加密原理 • 对称加密算法 • 密码块的操作模式 • 加密设备的位置 • 密钥分配

  7. 2.1 对称加密原理 • 对称加密也称为常规加密、密钥或单密钥加密 • 加密方案的五个组成部分(图2.1): • 明文(Plaintext) • 加密算法(Encryption algorithm) • 密钥(Secret Key) • 密文(Ciphertext) • 解密算法(Decryption algorithm)

  8. 保密密钥K 保密密钥K 加密 传输密文C 解密 明文 明文M Alice Bob 2.1 对称加密原理(2) 加密过程: C=EK(M) 解密过程: M=DK(C)

  9. 对称加密的两个安全要求: • 需要强大的加密算法 • 用安全的方式获得保密密钥的副本 • 安全性依赖密钥的保密,而不是加密算法的保密(Kerckoff原则)

  10. 2.1.1 密码系统 • 三个独立的因素: • 用于从明文到密文转换的操作类型 • 取代(替换)、置换(重新排序) • 所使用密钥的数目 • 对称 (单个密钥) • 非对称 (双密钥加密, or 公钥加密) • 处理明文的方法 • 分块加密(block cipher) • 流密码(stream cipher) • A5、RC-4、PKZIP

  11. 2.1.2 密码分析 • 密码分析:试图发现明文或密钥的过程

  12. 2.1.2 密码分析(2) • 蛮力攻击: • 尝试任何可能的密钥,直到能够将密文正确解释为明文为止

  13. 2.1.2 密码分析(3) • 加密方案是计算上安全的(computationally secure) • 破译密文的成本超过了加密信息本身的成本 • 破译密文所要的时间超过了信息的有效期 • 理论安全,或无条件安全: • 攻击者无论截获多少密文,都无法得到足够的信息来唯一地决定明文。 • Shannon用理论证明:欲达理论安全,加密密钥长度必须大于等于明文长度,密钥只用一次,用完即丢,即一次一密,One-time Pad,不实用。

  14. 2.1.3 Feistel 密码结构 在1973, IBM公司的 Horst Feistel描述了大部分对称的对称密码算法所具有的结构,包括DES. Fesitel网络的实现依赖下列参数和设计特征的选择: • 块大小:块越大意味着越安全 • 密钥大小:密钥越大越安全 • 循环次数:多个循环可以提供更多的安全性 • 子密钥产生算法:算法越复杂,密码分析难度就越困难. • 快速软件加密/解密:要考虑算法执行的速度 • 分析的容易性:算法表示简洁清晰,更易于对加密技术的缺陷进行分析

  15. 2.1.3 Feistel 密码结构(3) • Fesitel密码的解密过程 • 实质上与加密过程相同 • 使用密文作为算法的输入,按照相反的顺序使用子密钥Ki

  16. 2.2 对称加密算法 • 分块加密 p26 • 按照固定大小处理明文输入,而且每个明文块产生相同的密文块 • 数据加密标准(DES)、三重DES(3DES)、高级加密标准(AES)

  17. 2.2.1 数据加密标准 • 数据加密标准Data Encryption Standard (DES) • 最广泛使用的加密框架 • 也称为数据加密算法 Data Encryption Algorithm (DEA) • DES is a block cipher • 明文是64位块 • 密钥长度为56位

  18. 64位明文 64位密钥 初始置换 置换选择1 K1 第1轮 置换选择2 循环左移 K2 第2轮 置换选择2 循环左移 K16 第16轮 置换选择2 循环左移 32位互换 图:DES整体解决方案 逆初始置换 64位密文 子密钥的产生

  19. 初始置换IP 和逆置换IP-1 输入为In[], 输出为Out[] Table[64] = {58, 50, 42, 34, 26, …….23, 15, 7}; for(int i=0; i<len; ++i) Out[i] = In[ Table[i]-1 ];

  20. DES算法的单次循环

  21. 加密函数F 32位 扩展置换 48位 48位子密钥

  22. 扩展置换和置换函数

  23. S盒计算 • S1 输入二进制数组中的第1和第6两位所组成的二进制数值代表选中的行号,其余4位所组成的二进制数值代表选中的列号,而选中的行和列的交点处的数字便是选择函数的输出 例子: S1的输入为:101011 第1位和第6位组成11=(3)10,表示选中S1标号为3的那行 其余4位组成0101=(5)10,表示选中S1标号为5的那列 所以,S1的输出为:1001

  24. 子密钥的产生 • 64比特的密钥K,经过PC-1后,生成56比特的串。 • 该比特串分为长度相等的比特串C0和D0。然后C0和D0分别循环左移1位,得到C1和D1。C1和D1合并起来生成C1D1。C1D1经过PC-2变换后即生成48比特的K1

  25. 子密钥的产生(2)

  26. DES • 每次迭代的处理公式: • Li= Ri-1 • Ri = Li-1 F(Ri-1, Ki) • DES强度的关注点: • 算法 • 密钥的长度 (56-bits) 对付蛮力攻击的方法:使用较长的密钥

  27. DES解密 • DES解密和加密使用同一算法,但子密钥的使用顺序要倒过来,即使用K16,K15,….K1. • 解密时把64位密文当作明文输入 • 数学描述: • Ri-1=Li • Li-1=Ri f(Li,Ki)

  28. DES的雪崩效应 • 雪崩效应 明文或密钥的一比特的变化,引起密文许多比特的改变。如果变化太小,就可能找到一种方法减小有待搜索的明文和密文空间的大小。 -如果用同样密钥加密只差一比特的两个明文: 3次循环以后密文有21个比特不同,16次循环后有34个比特不同 -如果用只差一比特的两个密钥加密同样明文: 3次循环以后密文有14个比特不同,16次循环后有35个比特不同

  29. DES的强度 • 56-bit 密钥有256 = 72,057,584,037,927,936 ≈ 7.2亿亿之多 • 蛮力搜索( brute force search ) 似乎很困难,20世纪70年代估计要1000-2000年 • 技术进步使穷举搜索成为可能 • 1997年1月29日,RSA公司发起破译RC4、RC5、MD2、MD5,以及DES的活动,破译DES奖励10000美金。明文是:Strong cryptography makes the world a safer place. 结果仅搜索了24.6%的密钥空间便得到结果,耗时96天。 • 1998年在一台专用机上(EFF)只要三天时间即可 • 1999年在超级计算机上只要22小时!

  30. 图2.5 破译密码的时间 (106 decryptions/µs)

  31. 2.2.2 三重DEA • 使用三个密钥并执行三次DES算法 (加密-解密-加密) • C = 密文 • P = 明文 • EK[X] = 使用密钥K加密X • DK[Y] = 使用密钥K解密Y • 有效密钥长度为 168 bits C = EK3[DK2[EK1[P]]] P= DK1[EK2[DK3[C]]]

  32. 2.2.2 三重DEA(2)

  33. 2.2.2 三重DEA(3) • 三重DES的第二阶段并没有密码学方面的意义,惟一好处是使得3DES用户能解密原先单个DES用户加密的数据,即: K1=K2=K3 • FIPS46-3允许使用两个密钥,即K1=K3,这样所提供的密钥长度为112位 C = EK1[DK1[EK1[P]]]=Ek1[P]

  34. 2.2.3高级加密标准(AES) • 1997年NIST宣布征集AES算法 • 要求: 与三重DES比,要快且至少一样安全,分组128位,密钥128/192/256位 • 评价准则:安全,计算有效性,内存需求,硬件和软件的适用性以及灵活性 • 1998年确定第一轮15个候选者 • 1999年确定第二轮五个候选者: MARS, RC6, Rijndael, Serpent, Twofish • 2001年11月Rijndael作为被提议的AES算法

  35. 2.2.4 流密码和RC4 密钥K 密钥K 伪随机字节产生器 (密钥流产生器) 伪随机字节产生器 (密钥流产生器) 明文 字节流 M 明文 字节流 M 密文 字节流 C 11001100 01101100 10100000 01101100 10100000 11001100

  36. RC4算法 • Ron Rivest, 1987年设计的流密码 • WEP和WiFi协议使用RC4 • 过程 • 初始化 • 初始排序 • 流产生

  37. 2.3 密码块的操作模式 • 电子密码本(electronic codebook,ECB): 明文分成相同长度的明文块(64位),使用同一个密钥对每个明文块进行加密 • 结果: 同样的明文块在消息中多次出现的话,它产生的密文总是相同的 对较长的消息来说,ECB方法并不安全!

  38. 2.3 密码块的操作模式(2) • 密码分块链接模式 (CBC) • 加密算法的输入是当前明文块与前一个密文块异或操作的结果. • 不会暴露64位的重复块 当Pi中发生错误时,将影响后续所有的密文块,加密错误传播无界; 当Ci-1中发生错误时,只影响Pi-1和Pi,不影响其它明文块,错误传播有界;

  39. 2.3.1密码分块链接模式(2) • 初始化矢量IV • IV对发送方和接收方都是已知的 • IV和密钥都要受到保护: 可以通过其他密码方式(如ECB)对IV进行加密 • 对手可以修改IV值,改变接收方收到的数据 (撇号表示取反)

  40. 2.3.2 密码反馈方式(CFB) • 通过使用CFB模式,可以将任何块密码转换成流密码。 • 流密码特点: • 不需要将信息填充以分成块 • 可以进行实时操作 流密码的一个重要优点:密文与明文的长度是相同的

  41. C1=P1 SS(E(IV)) P1=C1 SS(E(IV)) Ci=Pi SS(E(Ci-1)) Pi=Ci SS(E(Ci-1)) 当Pi中发生错误时,将影响后续所有的密文块,加密错误传播无界; 当Ci-1中发生错误时,只影响Pi-1和Pi,不影响其它明文块,错误传播有界;

  42. 2.4 加密设备的位置 • 链路加密: • 需要大量的加密设备 • 能够提供高度的安全性 • 数据包在每个交换机上都需要解密 • 端到端加密 • 源端加密、目的端解密 • 负载(用户数据)加密 • 报文头以明文方式传输 • 高安全性:链路加密和端到端加密都需要 (见图 2-9)

  43. 2.5 密钥分配 • A选择密钥,然后物理地传递给B. • 第三方选择密钥,然后物理地传递给A和B. • 如果A和B已使用密钥,一方可用旧密钥加密新密钥,在传送给对方. • 如果A和B与第三方C都有加密连接,则C可以通过对A和B的加密连接将密钥传送给A和B.

  44. 2.5 密钥分配(2) • 会话密钥: • 数据采取一次性的会话密钥加密,会话结束后,密钥失效 • 永久密钥: • 为分配会话密钥,在两个实体之间使用的永久密钥

More Related