第十六章 计算机密码学
计算机密码学
?基础知识
?传统密码学之序列加密
?传统密码学之分组加密
?公钥密码
?密钥管理
?概率加密
?密码技术
?信息隐藏与水印
基础知识
?基本概念
?算法和密钥
?密码分析学
?密码学历史
基本概念
? 密码学是研究加密和解密变换的科学
– 人们将可懂的文本称为明文,用,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系统上的简单的加密程序,
– 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上的匿名连接
作业
?设计对单表置换加密算法的辅助解密工