第十六章 计算机密码学
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
基础知识 基本概念 算法和密钥 密码分析学 密码学历史
基本概念 密码学是研究加密和解密变换的科学 人们将可懂的文本称为明文,用“M”表示 将明文变换成的不可懂的文本称为密文 加密函数E作用于M得到密文C,用数学表示: E(M)=C 解密函数D作用于C产生M D(C)=M 先加密后再解密消息,原始的明文将恢复出来, D(E(M))=M
基础知识 基本概念 算法和密钥 密码分析学 密码学历史
算法和密钥 受限制的算法 现代密码学 算法的保密性是基于保持算法的秘密 使用一个密钥的加/解密 使用两个密钥的加/解密 EK(M)=C DK(C)=M. DK(EK(M))=M 使用两个密钥的加/解密 EK1(M)=C DK2(C)=M DK2 (EK1(M))=M
算法和密钥 密码系统由算法、以及所有可能的明文、密文和密钥组成的。基于密钥的算法通常有两类: 对称算法 公开密钥算法 对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立 EK(M)=C DK(C)=M 公开密钥算法 用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来 加密密钥能够公开,即陌生者能用加密密钥加密信息,又叫公钥 相应的解密密钥才能解密信息,叫做私钥。
基础知识 基本概念 算法和密钥 密码分析学 密码学历史
密码分析学 密码编码学的主要目的是保持明文(或密钥,或明文和密钥)的秘密以防止偷听者(也叫对手、攻击者、截取者、入侵者、敌手或干脆称为敌人)知晓 密码分析学是在不知道密钥的情况下。恢复出明文的科学。成功的密码分析能恢复出消息的明文或密钥。密码分析也可以发现密码体制的弱点
密码分析学 常用的密码分析攻击有七类,当然,每一类都假设密码分析者知道所用的加密算法的全部知识: 唯密文攻击 已知明文攻击 选择明文攻击 自适应选择明文攻击 选择密文攻击 选择密钥攻击 软磨硬泡(Rubber-hose)攻击
基础知识 基本概念 算法和密钥 密码分析学 密码学历史
密码学历史 密码是一门古老的技术,它已有几千年的历史,自从人类社会有了战争就出现了密码。 古代最著名的方法应该是凯撒大帝的3个字母轮换表加密方法。 孙子兵法云:“兵者,诡道也。” 1975年3月,IBM公司公开发表了DES数据加密标准 RSA公钥密码算法
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
传统密码学之序列加密 传统密码学一般指的是序列加密、分组加密 传统密码学又称为对称密钥密码体制,其存在的最主要问题是: 由于加/解密双方都要使用相同的密钥,因此在发送、接收数据之前,必须完成密钥的分发。所以,密钥的分发便成了该加密体系中的最薄弱,也是风险最大的环节,所使用的手段均很难保障安全地完成此项工作。 这样,密钥更新的周期加长,给他人破译密钥提供了机会
传统密码学之序列加密 单表加密 单表置换型加密算法的破解原理 多表置换
单表加密 明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。 建在UNIX系统上的简单的加密程序: 简单代替密码 多名码代替密码 字母代替密码 多表代替密码 建在UNIX系统上的简单的加密程序: ROT13
单表置换型加密算法破解原理 单表置换密码是对明文的所有字母都用一个固定的明文字母表到密文字母表的映射。 破解单表置换加密算法主要利用语言的内在的规律性。 完全可以推测下面的给出了各字母出现的概率: 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.0677 x 0.0017
多表置换 多表代替密码由Leon Battista在1568年发明,在美国南北战争期间由联军使用 多表代替密码有多个单字母密钥,每一个密钥被用来加密一个明文字母。第一个密钥加密明文的第一个字母,第二个密钥加密明文的第二个字母等等。在所有的密钥用完后,密钥又再循环使用
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
传统密码学之分组加密 DES加密 IDEA密码系统 前苏联国家标准(NSSU) 斯奈尔(B.Schneier)密码 TEA密码
DES加密 DES是美国国家标准局于1977年公布的由IBM公司研制的加密算法,并把它作为非机要部门使用的数据加密标准。
密码反馈模式
IDEA密码系统 IDEA(International Data Encryption Algorithm)算法是近年来出现得分组密码新的算法,由中国学者朱学嘉博士和著名密码学家James Massey于1990年联合提出,后经修改于1992年最后完成. 有许多科研单位和军事部门对IDEA进行攻击,但还没有见到成功的报道.是一种很有希望的密码体制.
前苏联国家标准(NSSU) NSSU是National Standard of Soviet Union的缩写,是前苏联政府公布供保密通信使用的国家标准。
斯奈尔(B.Schneier)密码 斯奈尔密码的最大特点是密钥长度可变。它是明文为64比特的分组密码,算法包括密钥膨胀和加密两个部分。 斯奈尔密码需要数量很大的子密钥,在加密之前计算出来。全过程需要迭代521次,将所得结果存储起来供加密使用,避免重复计算。
TEA密码 TEA是Tiny Encryption Algorithm的缩写。特点是: 加密速度极快 高速高效 但是抗差分攻击能力差。
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
公钥密码 背包公钥密码系统 RSA公钥密码 其他公钥加密算法
背包公钥密码系统 背包问题 MH背包公钥密码 伽罗瓦(Galois)域上的背包公钥密码 Diffie-Hellman密钥交换算法
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安全性
其他公钥加密算法 勒宾(Rabin)密码 科尔-列维斯特(Chor-Rivest)背包公钥密码系统 麦克黎斯(McEliece)公钥密码 椭圆曲线公钥密码 MH背包公钥的Shamir攻击 L3算法 Lagarias-Odlyzko-Brickell攻击 混合密码
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
密钥管理 会话密钥和交换密钥 密钥交换 传统加密的密钥交换和鉴别 密钥生成 密钥的基础结构 存储密钥和撤回密钥 数字签名(Digital Signatures)
会话密钥和交换密钥 会话密钥和交换密钥是有区别的 会话密钥可以预防向前搜索 交换密钥是与主体相关的密钥。 定义. 交换密钥就是通信过程中,与主体联系的加密密钥。会话密钥只是与通信过程本身相关的加密密钥。 会话密钥可以预防向前搜索 交换密钥是与主体相关的密钥。
密钥交换 交换密钥的目的是为了使得通信双方使用共享密钥,可以秘密的跟对方通信 加密系统和加密协议都是公开的。唯一秘密的数据就是被密钥加密过的数据。
传统加密的密钥交换和鉴别 Kerberos中的鉴别 公开密钥的密钥交换和鉴别
密钥生成 定义1. 一个密码学随机数字序列(sequence of cryptographically random numbers)是一连串的数字n1,n2,…就像此类任意的正整数k,观测者不可以预测nk,甚至已经知道了n1,…,nk-1。 定义2. 一个密码学伪随机数字序列(sequence of cryptographically pseudo-random numbers)是一个数字序列,用来模拟密码学随机数字序列,但是是由算法生成的。 定义3.一个强混合函数是这样一个函数,它有两个或者更多的输入产生一个输出,它的每一位都依赖于一些非线形函数输入的全部位。
密钥的基础结构 Merkle的树型鉴别模式 证书签名链 X.5.09: 证明签名链 PGP证书签名链
存储密钥和撤回密钥 密钥存储 密钥契约 密钥契据系统和clipper chip Yaksha安全系统 其他方法 密钥撤回
数字签名(Digital Signatures) 数字签名是这样一个构造,同时将来源和消息的内容,以一种可以证明的方式鉴别给一个无私的第三方。 传统数字签名 公开密钥数字签名 RSA数字签名 El Gamal 数签名
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
概率加密 上面介绍的公钥体制都是确定型公钥体制。所谓确定型公钥体制是指任一明文的密钥都是由公钥唯一确定的。 这种确定型公钥体制有较大的缺陷。 例如: 股票市场的“买进”与“抛出”是非常有价值的信息,某人可以用某些大户的加密函数D,对这些有价值的信息预先加密并保存,则他一旦获得某些大户的密文后,就可以直接在所存储的密文中进行查找,从而求得相应的明文,获得有价值的信息 1982年Goldwasser、Micali提出了概率加密算法
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
密码技术 问题 流加密技术和块加密技术
问题 预先计算可能的消息 无序的块 统计规律
流加密技术和块加密技术 定义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是密钥的一个字符。因为该密钥是有限的长度,所以它是周期的,且密钥可以比消息短,密钥重复出现。
流加密技术和块加密技术 流加密技术 同步流加密技术 自同步流加密技术 块加密技术 网络和密码系统
计算机密码学 基础知识 传统密码学之序列加密 传统密码学之分组加密 公钥密码 密钥管理 概率加密 密码技术 信息隐藏与水印
信息隐藏与水印 历史上的隐写术 版权保护中的几种信息隐藏技术 数字水印技术 保密通信中的几种信息隐藏技术
历史上的隐写术 隐写术一词来源于希腊语,其对应的英文意思是“Covered writing”。 隐写术的应用实例可以追溯到非常久远的年代
版权保护中几种信息隐藏技术 数据锁定 隐匿标记 数字水印
数字水印技术 水印类似于隐写术,但不完全是同一码事 数字水印技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中,但不影响原内容的价值,并不能被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的信息,可以达到确认内容创建者、购买者,或者是否真实完整。
保密通信中几种信息隐藏技术 数字签名中的阈下信道 Internet上的匿名连接
作业 设计对单表置换加密算法的辅助解密工具