54
第第第第 第第第第第第

第十六章 计算机密码学

  • Upload
    yehudi

  • View
    124

  • Download
    2

Embed Size (px)

DESCRIPTION

第十六章 计算机密码学. 计算机密码学. 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印. 基础知识. 基本概念 算法和密钥 密码分析学 密码学历史. 基本概念. 密码学是研究加密和解密变换的科学 人们将可懂的文本称为明文,用“ M” 表示 将明文变换成的不可懂的文本称为密文 加密函数 E 作用于 M 得到密文 C, 用数学表示: E(M)=C 解密函数 D 作用于 C 产生 M D(C)=M 先加密后再解密消息,原始的明文将恢复出来, D(E(M))=M. 基础知识. - PowerPoint PPT Presentation

Citation preview

Page 1: 第十六章 计算机密码学

第十六章 计算机密码学

Page 2: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 3: 第十六章 计算机密码学

基础知识 基本概念 算法和密钥 密码分析学 密码学历史

Page 4: 第十六章 计算机密码学

基本概念 密码学是研究加密和解密变换的科学

– 人们将可懂的文本称为明文,用“ M” 表示– 将明文变换成的不可懂的文本称为密文– 加密函数 E 作用于 M 得到密文 C ,用数学表示:

• E ( M ) =C

– 解密函数 D 作用于 C 产生 M• D ( C ) =M

– 先加密后再解密消息,原始的明文将恢复出来,• D ( E ( M )) =M

Page 5: 第十六章 计算机密码学

基础知识 基本概念 算法和密钥 密码分析学 密码学历史

Page 6: 第十六章 计算机密码学

算法和密钥 受限制的算法

– 算法的保密性是基于保持算法的秘密 现代密码学

– 使用一个密钥的加 / 解密– EK ( M ) =C– DK ( C ) =M.– DK ( EK ( M )) =M

– 使用两个密钥的加 / 解密– EK1 ( M ) =C– DK2 ( C ) =M– DK2 ( EK1 ( M )) =M

加密 解密明文 密文原始明文

密钥 密钥

加密 解密明文 密文原始明文

加密密钥

解密密钥

Page 7: 第十六章 计算机密码学

算法和密钥 密码系统由算法、以及所有可能的明文、密文和密钥组成的。基于密钥的算法通常有两类:

– 对称算法• 对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立• EK ( M ) =C• DK ( C ) =M

– 公开密钥算法• 用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来• 加密密钥能够公开,即陌生者能用加密密钥加密信息,又叫公钥• 相应的解密密钥才能解密信息,叫做私钥。

Page 8: 第十六章 计算机密码学

基础知识 基本概念 算法和密钥 密码分析学 密码学历史

Page 9: 第十六章 计算机密码学

密码分析学 密码编码学的主要目的是保持明文(或密钥,或明文和密钥)的秘密以防止偷听者(也叫对手、攻击者、截取者、入侵者、敌手或干脆称为敌人)知晓 密码分析学是在不知道密钥的情况下。恢复出明文的科学。成功的密码分析能恢复出消息的明文或密钥。密码分析也可以发现密码体制的弱点

Page 10: 第十六章 计算机密码学

密码分析学 常用的密码分析攻击有七类,当然,每一类都假设密码分析者知道所用的加密算法的全部知识:

– 唯密文攻击– 已知明文攻击– 选择明文攻击– 自适应选择明文攻击– 选择密文攻击– 选择密钥攻击– 软磨硬泡 (Rubber-hose) 攻击

Page 11: 第十六章 计算机密码学

基础知识 基本概念 算法和密钥 密码分析学 密码学历史

Page 12: 第十六章 计算机密码学

密码学历史 密码是一门古老的技术,它已有几千年的历史,自从人类社会有了战争就出现了密码。 古代最著名的方法应该是凯撒大帝的 3个字母轮换表加密方法。 孙子兵法云:“兵者,诡道也。” 1975 年 3 月, IBM 公司公开发表了 DES数据加密标准 RSA 公钥密码算法

Page 13: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 14: 第十六章 计算机密码学

传统密码学之序列加密 传统密码学一般指的是序列加密、分组加密 传统密码学又称为对称密钥密码体制,其存在的最主要问题是:

– 由于加 / 解密双方都要使用相同的密钥,因此在发送、接收数据之前,必须完成密钥的分发。所以,密钥的分发便成了该加密体系中的最薄弱,也是风险最大的环节,所使用的手段均很难保障安全地完成此项工作。– 这样,密钥更新的周期加长,给他人破译密钥提供了机会

Page 15: 第十六章 计算机密码学

传统密码学之序列加密 单表加密 单表置换型加密算法的破解原理 多表置换

Page 16: 第十六章 计算机密码学

单表加密 明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。

– 简单代替密码– 多名码代替密码– 字母代替密码– 多表代替密码

建在 UNIX 系统上的简单的加密程序:– ROT13

Page 17: 第十六章 计算机密码学

单表置换型加密算法破解原理 单表置换密码是对明文的所有字母都用一个固定的明文字母表到密文字母表的映射。 破解单表置换加密算法主要利用语言的内在的规律性。 完全可以推测下面的给出了各字母出现的概率:

– a 0.0856 g 0.0199 m 0.0249 s 0.0607 y 0.1999– b 0.0139 h 0.0528 n 0.0707 t 0.1045 z 0.0008– c 0.0279 i 0.0627 o 0.0797 u 0.0249– d 0.0378 j 0.0013 p 0.0199 v 0.0092– e 0.1304 k 0.0420 q 0.0012 w 0.0149– f 0.0289 l 0.0339 r 0.0677x 0.0017

Page 18: 第十六章 计算机密码学

多表置换 多表代替密码由 Leon Battista 在 1568 年发明,在美国南北战争期间由联军使用 多表代替密码有多个单字母密钥,每一个密钥被用来加密一个明文字母。第一个密钥加密明文的第一个字母,第二个密钥加密明文的第二个字母等等。在所有的密钥用完后,密钥又再循环使用

Page 19: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 20: 第十六章 计算机密码学

传统密码学之分组加密 DES 加密 IDEA 密码系统 前苏联国家标准( NSSU ) 斯奈尔( B.Schneier )密码 TEA 密码

Page 21: 第十六章 计算机密码学

DES 加密 DES 是美国国家标准局于 1977 年公布的

由 IBM 公司研制的加密算法,并把它作为非机要部门使用的数据加密标准。

Page 22: 第十六章 计算机密码学

密码反馈模式

Page 23: 第十六章 计算机密码学

IDEA 密码系统 IDEA(International Data Encryption

Algorithm) 算法是近年来出现得分组密码新的算法,由中国学者朱学嘉博士和著名密码学家 James Massey 于 1990 年联合提出,后经修改于 1992 年最后完成 . 有许多科研单位和军事部门对 IDEA进行攻击,但还没有见到成功的报道 . 是一种很有希望的密码体制 .

Page 24: 第十六章 计算机密码学

前苏联国家标准( NSSU ) NSSU 是 National Standard of Soviet

Union 的缩写,是前苏联政府公布供保密通信使用的国家标准。

Page 25: 第十六章 计算机密码学

斯奈尔( B.Schneier )密码 斯奈尔密码的最大特点是密钥长度可变。它是明文为 64比特的分组密码,算法包括密钥膨胀和加密两个部分。 斯奈尔密码需要数量很大的子密钥,在加密之前计算出来。全过程需要迭代 521次,将所得结果存储起来供加密使用,避免重复计算。

Page 26: 第十六章 计算机密码学

TEA 密码 TEA 是 Tiny Encryption Algorithm 的缩写。特点是:

– 加密速度极快– 高速高效– 但是抗差分攻击能力差。

Page 27: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 28: 第十六章 计算机密码学

公钥密码 背包公钥密码系统 RSA 公钥密码 其他公钥加密算法

Page 29: 第十六章 计算机密码学

背包公钥密码系统 背包问题 MH背包公钥密码 伽罗瓦( Galois )域上的背包公钥密码 Diffie-Hellman 密钥交换算法

Page 30: 第十六章 计算机密码学

RSA 公钥密码 RSA 公钥密码系统是由 Rivest , Shamir 和 Adleman联合提出的,它的基础是数论的欧拉定理,它的安全性依赖于大数的因数分解的困难性。

– 欧拉定理– RSA 加密算法

• RSA 加密算法的过程是 • 1) 取两个素数 p 和 q (保密)• 2) 计算 n=pq( 公开 ) , ϕ(n)= ( p-1 ) (q-1) (保密) • 3)随机选取整数 e ,满足 gcd(e , ϕ(n))=1( 公开 ) • 4) 计算 d ,满足 de≡1(mod ϕ(n))( 保密 ) • 利用 RSA 加密第一步需要将明文数字化,并取长度小于 log2n位的数字做明文块。 • 加密算法 c=E(m) ≡me(mod n) • 解密算法 D(c) ≡cd(mod n)

– RSA 安全性

Page 31: 第十六章 计算机密码学

其他公钥加密算法 勒宾( Rabin )密码 科尔 - 列维斯特( Chor-Rivest )背包公钥密码系统 麦克黎斯( McEliece )公钥密码 椭圆曲线公钥密码 MH背包公钥的 Shamir 攻击 L3 算法 Lagarias-Odlyzko-Brickell 攻击 混合密码

Page 32: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 33: 第十六章 计算机密码学

密钥管理 会话密钥和交换密钥 密钥交换 传统加密的密钥交换和鉴别 密钥生成 密钥的基础结构 存储密钥和撤回密钥 数字签名( Digital Signatures )

Page 34: 第十六章 计算机密码学

会话密钥和交换密钥 会话密钥和交换密钥是有区别的

• 定义 . 交换密钥就是通信过程中,与主体联系的加密密钥。会话密钥只是与通信过程本身相关的加密密钥。 会话密钥可以预防向前搜索 交换密钥是与主体相关的密钥。

Page 35: 第十六章 计算机密码学

密钥交换 交换密钥的目的是为了使得通信双方使用共享密钥,可以秘密的跟对方通信 加密系统和加密协议都是公开的。唯一秘密的数据就是被密钥加密过的数据。

Page 36: 第十六章 计算机密码学

传统加密的密钥交换和鉴别 Kerberos 中的鉴别 公开密钥的密钥交换和鉴别

Page 37: 第十六章 计算机密码学

密钥生成 定义 1. 一个密码学随机数字序列( sequence of

cryptographically random numbers )是一连串的数字 n1 , n2 …, 就像此类任意的正整数 k ,观测者不可以预测 nk ,甚至已经知道了 n1 …, , nk-1 。

定义 2. 一个密码学伪随机数字序列( sequence of cryptographically pseudo-random numbers )是一个数字序列,用来模拟密码学随机数字序列,但是是由算法生成的。

定义 3. 一个强混合函数是这样一个函数,它有两个或者更多的输入产生一个输出,它的每一位都依赖于一些非线形函数输入的全部位。

Page 38: 第十六章 计算机密码学

密钥的基础结构 Merkle 的树型鉴别模式 证书签名链 X.5.09: 证明签名链 PGP证书签名链

Page 39: 第十六章 计算机密码学

存储密钥和撤回密钥 密钥存储 密钥契约 密钥契据系统和 clipper chip Yaksha 安全系统 其他方法 密钥撤回

Page 40: 第十六章 计算机密码学

数字签名( Digital Signatures ) 数字签名是这样一个构造,同时将来源和消息的内容,以一种可以证明的方式鉴别给一个无私的第三方。 传统数字签名 公开密钥数字签名

– RSA 数字签名– El Gamal 数签名

Page 41: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 42: 第十六章 计算机密码学

概率加密 上面介绍的公钥体制都是确定型公钥体制。所谓确定型公钥体制是指任一明文的密钥都是由公钥唯一确定的。 这种确定型公钥体制有较大的缺陷。 例如:

• 股票市场的“买进”与“抛出”是非常有价值的信息,某人可以用某些大户的加密函数 D ,对这些有价值的信息预先加密并保存,则他一旦获得某些大户的密文后,就可以直接在所存储的密文中进行查找,从而求得相应的明文,获得有价值的信息 1982 年 Goldwasser 、 Micali提出了概率加密算法

Page 43: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 44: 第十六章 计算机密码学

密码技术 问题 流加密技术和块加密技术

Page 45: 第十六章 计算机密码学

问题 预先计算可能的消息 无序的块 统计规律

Page 46: 第十六章 计算机密码学

流加密技术和块加密技术 定义 11-1 : E 是一个加密算法, Ek(b) 是消息 b 用密钥 k 加密后的值。现有一个消息: m=b1b2… ,其中, bi 是固定长度的。那么,块加密技术就定义为 Ek (m)=Ek(b1)Ek(b2)…

– 举例: DES 是一种块加密技术。它把消息分成 64bit 的小块,用相同的 56bit 的密钥对每一个块进行加密。 定义 11-2 : E 为一加密算法, Ek(b) 是消息 b 用密钥 k 加密后的值。有一个消息: m=b1b2… ,其中, bi 是固定长度的。 K=k1k2…那么流加密技术就是 Ek (m)=Ek(b1)Ek(b2)… 如果流加密技术中的流 k重复自身,它就是周期加密技术。

– 举例: Vigenere 加密技术是一种流加密技术。 bi 是消息的一个字符,ki 是密钥的一个字符。因为该密钥是有限的长度,所以它是周期的,且密钥可以比消息短,密钥重复出现。

Page 47: 第十六章 计算机密码学

流加密技术和块加密技术 流加密技术

– 同步流加密技术– 自同步流加密技术

块加密技术 网络和密码系统

Page 48: 第十六章 计算机密码学

计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印

Page 49: 第十六章 计算机密码学

信息隐藏与水印 历史上的隐写术 版权保护中的几种信息隐藏技术 数字水印技术 保密通信中的几种信息隐藏技术

Page 50: 第十六章 计算机密码学

历史上的隐写术 隐写术一词来源于希腊语,其对应的英文意思是“ Covered writing” 。 隐写术的应用实例可以追溯到非常久远的年代

Page 51: 第十六章 计算机密码学

版权保护中几种信息隐藏技术 数据锁定 隐匿标记 数字水印

Page 52: 第十六章 计算机密码学

数字水印技术 水印类似于隐写术,但不完全是同一码事 数字水印技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中,但不影响原内容的价值,并不能被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的信息,可以达到确认内容创建者、购买者,或者是否真实完整。

Page 53: 第十六章 计算机密码学

保密通信中几种信息隐藏技术 数字签名中的阈下信道 Internet上的匿名连接

Page 54: 第十六章 计算机密码学

作业 设计对单表置换加密算法的辅助解密工具