792dbf39eebe38c63be8ef09262761c4.ppt
- Количество слайдов: 186
信息安全导论 第 02章 密码技术 王昭顺 zhswang@sohu. com
第 02章 信息安全核心-密码技术 n n n n 基本术语 对称密码体制 公钥密码体制 完整性校验 数字签名技术 密钥管理 秘密密钥分配 公钥密码体制的密钥分配和公钥证书 2
关于密码 n n n 密码学是研究与信息安全相关的基本属性(如机 密性、完整性、实体鉴别、抗否认等)的数学理论。 密码并不是提供安全的单一的手段,而是一组技 术。 密码的基本目标: –机密性 –数据完整性 –鉴别 –抗否认性 n 基本的密码 具: 加解密、散列函数、数字签名 3
密码学简介 n 由密码编码学和密码分析学构成。 n 密码编码: n 明密转换类型: n n n 替代:明文中的元素映射成另一元素。 置换:明文中的元素被重新排列。 密钥数量: 单密钥 / 双密钥 明文处理方式: 分组(块)/ 序列(流) 密码分析: n n n 唯密文攻击 已知明文攻击 选择明文攻击/自适应选择明文攻击 选择密文攻击 选择文本攻击 4
密码分析类型 5
安全性 n 无条件安全(Unconditionally secure) n n 可证明安全 n n 无论破译者有多少密文, 他也无法解出对应的明文; 即使他解出了,他也无法验证结果的正确性。 加密方案产生的密文不足以唯一决定对应的明文。 Shannon指出,仅当密钥至少和明文一样长时达到无 条件安全(即一次一密) 。 若一个密码体制的攻击相当于解决一个公认的难题 计算安全(Computationally secure) n n 破译密文的代价超过被加密信息的价值。 破译密文所花时间超过信息的有效期。 6
攻击的复杂性分析 § 数据复杂性(data complexity) 用作攻击输入所需要的数据 § 处理复杂性(processing complexity) 完成攻击所需要的时间 § 存储需求(storage requirement) 进行攻击所需要的数据量 7
密码保密 n 按照保密的内容分: n 受限制的(restricted)算法: 数据的保密性基于对算法的保密 n 基于密钥(key-based)的算法: 数据的保密性基于对密钥的保密。 8
密码分析基本方法 n 穷举法(Exhaustive Attack ), 又称为强力法(Bruteforce) n n n 对截获的密文依次用各种可能的密钥破译。 对所有可能的明文加密直到与截获的密文一致为止。 分析法 n n 系统分析法(统计分析法): 利用明文的统计规律 确定性分析法 9
Kerckhoff原则 n 1883年Kerchoffs第一次明确提出了编码的原则: 加密算法应建立在算法的公开不影响明文和密钥的安全 的基础上。 n 这一原则已得到普遍承认,成为判定密码强度的 衡量标准,实际上也成为古典密码和现代密码的 分界线。 10
密码学的起源和发展 n 密码学发展的三个阶段: n n n 1949年之前密码学是一门艺术 1949~ 1975年密码学成为科学 1976年以后密码学的新方向——公钥密码学 11
1949年之前的古典密码 n 古典密码(classical cryptography) n n n 密码学还不是科学, 而是艺术。 出现一些密码算法和加密设备密码算法的基本 手段(substitution & permutation)出现, 针对字符进行替代(替换)或置换(换位)。 简单的密码分析手段出现 12
密码学的起源 n 隐写术(steganography) 通过隐藏消息的存在来保护消息 a. 隐形墨水 b. 字符格式的变化 c. 图形图像 13
20世纪早期密码机 14
密码学的发展 n 1949~ 1975年: 计算机使得基于复杂计算的密码成为可能: n n n 1949年Shannon的“The Communication Theory of Secret Systems” 1967年David Kahn的《The Codebreakers》 1971 -73年IBM Watson实验室的Horst Feistel等的几篇术报告: n n Smith, J. L. , The Design of Lucifer, A Cryptographic Device for Data Communication, 1971 Smith, J. L. , …, An Expremental Application of Cryptogrphy to a remotely Accessed Data System, Aug. 1972 Feistel, H. , Cryptography and Computer Privacy, May 1973 数据的安全基于密钥而不是算法的保密 15
密码学的发展 n 1976年以后: 1976年Diffie & Hellman 的“New Directions in Cryptography”提出了非对称密钥密码。 n 1977年Rivest, Shamir & Adleman 提出了RSA公钥算法。 n 90年代逐步出现椭圆曲线等其他公钥算法。 公钥密码使得发送端和接收端无密钥传输的保密通信成 为可能。 n n 16
密码学的发展 n 1976年以后:对称密钥密码算法进一步发展 n n 1977年DES正式成为标准。 80年代出现“过渡性”的“post DES”算法, 如: IDEA, RCx, CAST等 90年代对称密钥密码进一步成熟Rijndael, RC 6, MARS, Twofish, Serpent等出现。 2001年Rijndael成为DES的替代者。 17
关于密码的一些教训 n 声称你的算法是“不可攻破的” n 多次使用一次性密码本 没有使用最好的可用算法 没有正确的实现算法 在产品里放置了后门 n n n 18
密码体制(1) 19
密码体制(2) n n 一个密码体制的典型应用是提供机密性。 除古典加密体制外有两类现代密码体制: 对称密码体制(私钥密码体制/秘密密码体制) 公钥密码体制(非对称密码体制) 20
对称密码的两个基本运算 n 替代(Substitution ) n 明文的字母由其他字母或数字或符号所代替。 置换(Permutation) 通过执行对明文字母的某种置换,取得一种类型完全 不同的映射。 21
* 古典加密体制-替代技术(1) n 凯撒密码: n n n 算法描述: 将字母表中的每个字母用其后的第三个字母代替。 C=E(P) =(P+3)mod 26 P = D(C) = (P-3)mod 26 当然,也可以将3 换为 1-25间的任一个数K。 攻击手段: 1. 算法简单,密钥K的数量仅为 25个,强力攻击(穷举攻击) 2. 明文单词构造有规律,可以根据字母频率分析攻击。 改进: 1. 变换方法可以采用 26字母的任意排列,使得可用密钥数量 剧增。 26!= 4*1026 2. 使用多字母组合。 22
英语文本中字母的频率统计 23
* 古典加密体制-替代技术(2) n Hill 密码: m个连续的明文字母用m个密文字母代替,该代替由m 个线性方程决定。这里假设m=3: C 1 = ( k 11 p 1 + k 12 p 2 + k 13 p 3 ) mod 26 C 2 = ( k 21 p 1 + k 22 p 2 + k 23 p 3 ) mod 26 C 3 = ( k 31 p 1 + k 32 p 2 + k 33 p 3 ) mod 26 即: C 1 k 12 k 13 p 1 C 2 = k 21 k 22 k 23 p 2 或 C=KP C 3 k 31 k 32 k 33 p 3 n 优点:完全隐藏了单字母的频率。 n 缺点: 如果得到m个明密对,则可以计算出K,从而破密。 24
* 古典加密体制-替代技术(3) n 异或加密: Ci= Pi ⊕ki Pi = Ci ⊕ki n 如果密钥的长度与明文的长度一致,则达到最大强度, 称为一次一密。 25
* 古典加密体制-置换技术 n 通过执行对明文字母的某种置换,取得一种类型完全不 同的映射。 n n 以一个矩阵形式逐行写出消息,再逐列读出该消息, 并以行的顺序排列。列的阶(列的读出顺序)成为该 算法的密钥。 轮转机: 通过多个转子,完成字母的多次转换。 26
置换技术实例(1) n 置换密码把明文按行写入, 按列读出 密钥表明列的读出顺序 key: 3 4 2 1 5 6 7 plaintext: a t t a c k p o s t p o n e d u n t i l t w o a mx y z n ciphertext: TTNAAPTMTSUOAODWCOIXKNLYP ETZ 使用多轮加密可提高安全性 27
置换技术实例(2) n n 多次置换,减少结构性排列,不易于重构。 key: 3 4 2 1 5 6 7 plaintext: t tnaapt mtsuoao dwco. Ixk n l ypetz ciphertext: NSCYAUOPTTWLTMDNAOIEPAXTTOKZ 28
轮转机Rotor machine 29
安全密码的特性 n Shannon特性(1949) n n n 所需的保密程度决定了用于加密和解密过程的相应的 作量 密钥的组或加密算法应该不受其复杂性的影响 处理的实现应尽可能简单 编码中的错误不应传播及影响后面的消息 加密后正文的尺寸(密文尺寸)不应大于明文的尺寸 30
对称密码体制 n n n 对称密码体制的特征是用于加密和解密的密钥是一样的 或相互容易推出的。 对称密码体制又分为两种,即序列(流)密码和分组密 码。在序列密码中,将明文消息按字符逐位加密;在分 组密码中,将明文消息分组(每组含有多个字符)逐组 地进行加密。 典型的算法代表是DES、IDEA、RC 2、RC 4 、AES等。 31
对称密码算法 明文 加密算法 加密密钥 加密过程 Ø Ø Ø 密文 解密算法 还原的明文 解密密钥 解密过程 加密算法和解密算法是公开的,协议安全的。 加密密钥和解密密钥是同一个密钥,称对称密钥。 加密算法足够强大,仅依靠密文不可能译出明文。 安全性依赖于密钥的安全性,而不是算法安全性。 密钥的安全性包括:密钥空间、随机性、保密性。 算法符号描述: EK(M)=C , DK(C)=M 32
分组密码的一般设计原理 n 分组密码是将明文消息编码表示后的数字(简称明文数 字)序列,划分成长度为n的组(可看成长度为n的矢量) ,每组分别在密钥的控制下变换成等长的输出数字(简 称密文数字)序列, 33
两个基本设计方法 Shannon称之为理想密码系统中,密文的所有统计特性都 与所使用的密钥独立。 n Diffusion(扩散) n n n 小扰动的影响波及到全局。 密文没有统计特征,明文一位影响密文的多位。增加密文 与明文之间关系的复杂性。 Confusion(混乱) n n 强调密钥的作用。 增加密钥与密文之间关系的复杂性 34
实现的设计原则 软件实现的要求:使用子块和简单的运算 密码运算在子块上进行,要求子块的长度能自然地 适应软件编程,如8、16、32比特等;应尽量避免按比 特置换,在子块上所进行的密码运算尽量采用易于软件 实现的运算;最好是用标准处理器所具有的一些基本指 令,如加法、乘法、移位等。 硬件实现的要求: 加密和解密的相似性,即加密和解密过程的不同应 仅仅在密钥使用方式上,以便采用同样的器件来实现加 密和解密,以节省费用和体积;尽量采用标准的组件结 构,以便能适应于在超大规模集成电路中实现。 n 35
对称密码算法类型 n 分组密码 在明文分组和密文分组上进行运算----通常分组长为 64 bits,有 时更长。相同的明文和相同的密钥得到相同的密文。 明文 p 1 p 2 p 3 密文 c 1 c 2 c 3 n p 4 c 4 p 5 c 5 pn cn 序列密码 作用在明文和密文的数据序列的1 bit 或 1 byte 上。 明文 密文 36
分组密码 作模式 n n 电子密码本(ECB)模式 直接使用基本的分组密码模式,缺点是: 在给定密钥的情况下, 相同的明文总是产生相同的密文。 密码分组链接(CBC)模式 在加密当前的一个分组之前,先将上一次加密的结果与当前的 明文组进行异或,然后再加密,如此形成一个密文链。 密码反馈(CFB)模式 先将明文流分成若干个k比特的字符(1<=k<=n,n表示分组 长度) ,每个字符所对应的密文可以通过该字符和一个密钥字符相 异或获得,该密钥字符是通过加密密文的前k个比特来获得的。开始 阶段,将一个n比特的初始向量(IV)放在密文的地方。 输出反馈(OFB)模式 用分组密码产生一个随机密钥流,将此密钥流和明文流进行异 或,可得密文流。它也需要一个初始向量IV。 IV未必需要保密,但一般以加密形式被交换,并经常更换。 37
电子密码本ECB 38
ECB的特点 n n n 简单和有效 可以并行实现 不能隐藏明文的模式信息 相同明文生成相同密文,同样信息多次出现造成泄漏 对明文的主动攻击是可能的 信息块可被替换、重排、删除、重放 误差传递:密文块损坏 仅对应明文块损坏 适合于传输短信息 39
密码分组链接CBC 40
CBC的特点 n n 没有已知的并行实现算法 能隐藏明文的模式信息 需要共同的初始化向量IV 相同明文生成不同密文 初始化向量IV可以用来改变第一块 n 对明文的主动攻击是不容易的 信息块不容易被替换、重排、删除、重放 误差传递:密文块损坏 两明文块损坏 n n 安全性好于ECB 适合于传输长度大于64位的报文,还可以进行用户鉴别, 是大多系统的标准如 SSL、IPSec 41
密码反馈CFB n CFB: 分组密码 流密码 n 假定:Si 为移位寄存器, 传输单位为jbit 加密: Ci =Pi (EK(Si)的高j位) Si+1=(Si<<j)|Ci 解密: Pi=Ci (EK(Si)的高j位) Si+1=(Si<<j)|Ci 42
密码反馈CFB加密 Ci =Pi (EK(Si)的高j位) ; Si+1=(Si<<j)|Ci 43
密码反馈CFB解密 Pi=Ci (EK(Si)的高j位); Si+1=(Si<<j)|Ci 44
CFB的特点 n n n 分组密码 流密码 没有已知的并行实现算法 隐藏了明文模式 需要共同的移位寄存器初始值IV 对于不同的消息,IV必须唯一 误差传递:一个单元损坏影响多个单元 45
输出反馈OFB n OFB: 分组密码 流密码 n 假定:Si 为移位寄存器, 传输单位为jbit 加密: Ci =Pi (EK(Si)的高j位) Si+1=(Si<<j)|(EK(Si)的高j位) 解密: Pi=Ci (EK(Si)的高j位) Si+1=(Si<<j)|(EK(Si)的高j位) 46
输出反馈OFB加密 Ci =Pi (EK(Si)的高j位); Si+1=(Si<<j)|(EK(Si)的高j位) 47
输出反馈OFB解密 Pi=Ci (EK(Si)的高j位); Si+1=(Si<<j)|(EK(Si)的高j位) 48
0 FB的特点 n n n n 分组密码 流密码 没有已知的并行实现算法 隐藏了明文模式 需要共同的移位寄存器初始值IV 对于不同的消息,IV必须唯一 误差传递:一个单元损坏只影响对应单元 对明文的主动攻击是可能的 信息块可被替换、重排、删除、重放 安全性较CFB差 49
DES对称算法的产生背景(1) n 1973年 5月15日, NBS开始公开征集标准加密算法, 并公布 了它的设计要求: ① 算法必须提供高度的安全性 ② 算法必须有详细的说明, 并易于理解 ③ 算法的安全性取决于密钥, 不依赖于算法 ④ 算法适用于所有用户 ⑤ 算法适用于不同应用场合 ⑥ 算法必须高效、经济 ⑦ 算法必须能被证实有效 ⑧ 算法必须是可出口的 50
DES对称算法的产生(2) n n n n 1974年 8月27日, 美国国家标准局(NBS)开始第二次征集, IBM提交了算法LUCIFER,该算法由IBM的 程师W. Tuchman 和 C. Meyer在 1971~1972年研制。 1975年 3月17日, NBS公开了全部细节。 1976年, NBS指派了两个小组进行评价。 1976年 11月23日,采纳为联邦标准,批准用于非军事场合 的各种政府机构。 1977年 1月15日, “数据加密标准”FIPS PUB 46发布, 同年 7 月15日开始生效。 该标准规定每五年审查一次,计划十年后采用新标准。 最近的一次评估是在 1994年 1月,已决定 1998年 12月以后, DES将不再作为联邦加密标准。 51
DES算法的应用 n n n 美国国家安全局NSA(National Security Agency)参与了 美国国家标准局制定数据加密标准的过程。NBS接受了 NSA的某些建议,对算法做了修改,并将密钥长度从 LUCIFER方案中的128位压缩到 56位 1979年,美国银行协会批准使用DES 1980年,DES成为美国标准化协会(ANSI)标准 1980年,美国国家标准局(NBS)赞同DES作为私人使用 的标准, 称之为DEA(ANSI X. 392)。 1983年,国际化标准组织ISO赞同DES作为国际标准,称 之为DEA-1。 1984年 2月,ISO成立的数据加密技术委员会(SC 20)在 DES基础上制定数据加密的国际标准 作。 52
DES 算法 n n n 分组加密算法:明文和密文为 64位分组长度 对称算法:加密和解密除密钥编排不同外,使用同一算法 密钥长度: 56位,但每个第 8位为奇偶校验位,可忽略 密钥可为任意的56位数,但存在弱密钥,容易避开 采用混乱和扩散的组合,每个组合先替代后置换,共 16轮 只使用了标准的算术和逻辑运算,易于实现 53
DES加(解)密过程 输入 64比特明文数据 初始置换IP 在密钥控制下 16轮迭代 交换左右 32比特 初始逆置换IP-1 输出 64比特密文数据 54
DES算法一般描述 64 bits plain text 56 bits key 置换选择 1 初始置换IP 48 bits 第 1轮 第 2轮 第 16轮 K 1 K 2 K 16 置换选择 2 循环左移 32 bits 对换 逆初始置换IP-1 64 bits cipher text 55
DES的一轮迭代 S盒替代 56
DES加密过程 n 令i表示迭代次数, 表示逐位模 2求和,f为加密函数 57
DES解密过程 n 令i表示迭代次数, 表示逐位模 2求和,f为加密函数 58
初始置换IP和初始逆置换IP— 1 59
IP和IP-1 IP IP— 1 60
扩展置换E-盒-32位扩展到 48位 扩展 61
压缩替代S-盒-48位压缩到 32位 共 8个S盒 62
8个S盒 S-盒 1 S-盒 5 S-盒 2 S-盒 6 S-盒 3 S-盒 7 S-盒 4 S-盒 8 第 0和第 5位作为行号,第 1~4位作为列号。 63
S-盒的构造 n n n DES中其它算法都是线性的,而S-盒运算则是非线性的 S-盒不易于分析,它提供了更好的安全性 所以S-盒是算法的关键所在 64
置换p-盒的构造 65
p-盒的构造准则 n n P置换的目的是提供雪崩效应 明文或密钥的一点小的变动都引起密文的较大变化 66
密钥置换算法的构造准则 n n n n 设计目标:子密钥的统计独立性和灵活性 实现简单 速度 不存在简单关系:( 给定两个有某种关系的种子密钥, 能预 测它们轮子密钥之间的关系) 种子密钥的所有比特对每个子密钥比特的影响大致相同 从一些子密钥比特获得其他的子密钥比特在计算上是难的 没有弱密钥 67
子密钥的产生 68
对DES的讨论 n n n 弱密钥/半弱密钥/互补密钥:减少子密钥数量 DES的破译:差分密码分析/线性密码分析较有效 密钥长度的争论 1998年EFF制造的25万元密钥搜索机可在 56 h穷举破译。 1999年 10万台计算机协同在 22: 15内穷举破译。 n n DES的轮数:恰好 16轮只有穷举法最有效。 S-盒( F函数)的设计原理未知 除S盒外的设计全是线性的. S盒的安全性至关重要。猜测可能 有陷门,但一直未被证明。 69
弱密钥 n n 初始密钥被分成两部分,每部分都单独做移位。如果每 一部分的每一位都是 0或都是 1,则每一圈的子密钥都相 同。这样的密钥被称为弱密钥。 DES存在 4个弱密钥 70
半弱密钥 n n 有些成对的密钥会将明文加密成相同的密文,即一对密 钥中的一个能用来解密由另一个密钥加密的消息,这种 密钥称作半弱密钥。这些密钥不是产生 16个不同的子密 钥,而是产生两种不同的子密钥,每一种出现 8次。 半弱密钥: EK 1 = EK 2,至少有12个半弱密钥 71
半半弱密钥 n n 还有些密钥只产生四种子密钥,每种出现四次。 这种密钥称为半半弱密钥。共 48个。 72
2/ 3 -DES算法 n 2-DES 加密形式有两个阶段和两个密钥。 C=Ek 2(Ek 1( P)) P = Dk 1(Dk 2( C)) 似乎可以找到一个K 3,产生单次加密(K 1, K 2)的效果,但理论 证明,两次使用DES对应的映射不等价于一个单次的DES加密。 n 两个密钥的3-DES: C=Ek 1( Dk 2( Ek 1( P))) n 三个密钥的3-DES: C=Ek 3( Dk 2( Ek 1( P))) 73
两重DES 74
三重DES 75
破译代价举例 q 以著名的DES算法为例,根据计算机处理能力,进行密钥长度和破译时间 的对比: 密钥长度 (bit) 密钥数量 每微秒加密1次 破译所需时间 每微秒加密100万次破 译所需时间 32 232 =4. 3*109 231 us=35. 8 mins 2. 15 us 56 256 =7. 2*1016 255 us=1142 years 10. 01 hours 128 2128 =3. 4*1038 2127 us=5. 4* 1024 years 5. 4* 1018 years 26字符 26!= 4*1026 2*1026 us=6. 4* 1012 years 6. 4* 106 years 76
IDEA对称算法 n 瑞士联邦理 学院的Xuejia Lai和James Massey 研制的对称分组密 码。密钥长度 128 bits,64 bits 分组。 77
高级加密标准(AES) n n n 1997年 4月15日NIST发起征集AES的活动(要求算法分组长 度 128比特,密钥长度 128/ 192/ 256比特)。 1998年 8月20日第一次AES候选大会,公布了15个候选算法。 1999年 3月22日举行了第二次AES候选大会,选出 5个候选算 法。 2000年 4月25日举行了第三次AES候选大会。 2000年 10月2日公布Rijndael算法作为候选算法。 比利时的Joan Daemen, Vincent Rijmen 设计的 Rijndael 算 法:是一个迭代分组密码,块长为: 128、192、256 bits, 密钥长度为 128、192、256 bits,相应的轮数为 10/ 12/ 14。 78
AES描述 n n x state 16字节明文变成 4*4矩阵 Add. Round. Key(即state XOR Round. Key) 轮密钥异或 对前Nr-1轮操作 S: Sub. Bytes state矩阵的每元素字节进行S盒代换 P: Shift. Rows state矩阵每行逐次循环左移 Mix. Columns state矩阵每列进行置换 Add. Round. Key state矩阵与轮密钥异或 最后1轮 S: Sub. Bytes P: Shift. Rows Add. Round. Key state y 79
80
AES round 81
Pseudo Code for the Cipher 82
Key Expansion (以 128 bits为例) n n 128 bits 16 bytes 4 words 扩展至 ↓ subkey in w[0… 43] n n n 初始Add. Round. Key w[0, 1, 2, 3] 9轮循环 w[4, 5, 6, 7]…w[36, 37, 38, 39] 最后1轮 w[40, 41, 42, 43] 83
Key. Expansion() 84
AES state n x 128 bits, 16 bytes → state 4× 4 bytes x 0 x 4 x 8 x 12 S 0, 0 S 0, 1 S 0, 2 S 0, 3 x 1 x 5 x 9 x 13 S 1, 0 S 1, 1 S 1, 2 S 1, 3 x 2 x 6 x 10 x 14 S 2, 0 S 2, 1 S 2, 2 S 2, 3 x 7 x 11 x 15 S 3, 0 S 3, 1 S 3, 2 S 3, 3 85
Add. Round. Key n XOR 86
代换 πs n πs:{0, 1}8 对state中的每个字节XY /*16进制*/ πs(XY) = SBox(X, Y) /*S盒的X行Y列*/ n S盒的设计 n n n GF 28的概念 计算S盒元素的Sub. Bytes函数 n 求逆 87
GF(28) n n n 一个字节B决定一个域元素b(x) B=b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 b(x)=b 7 x 7+b 6 x 6+b 5 x 5+b 4 x 4+b 3 x 3+b 2 x 2+b 1 x 1+b 0 x 0 运算 加法:模 2的加法 乘法:模M(x)乘法 在AES中M(x)=x 8+x 4+x 3+x+1 乘法逆元素 n a(x)b(x)≡ 1 mod M(x),则a(x)、b(x)互逆 n 求逆 88
计算S盒元素 n n n 输入 A=a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 a(x) 求逆 b(x) b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 仿射变换: b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 n = 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 a 0 a 1 a 2 b 3 + a 4 a 5 a 6 a 7 1 1 0 0 0 1 1 0 输出字节b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0=B 89
AES S-Box x/y n n n n 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 63 CA B 7 04 09 53 D 0 51 CD 60 E 7 BA 70 E 1 8 C 1 7 C 82 FD C 7 83 D 1 EF A 3 0 C 81 32 C 8 78 3 E F 8 A 1 2 77 C 9 93 23 2 C 00 AA 40 13 4 F 3 A 37 25 B 5 98 89 3 7 B 7 D 26 C 3 1 A ED FB 8 F EC DC 0 A 6 D 2 E 66 11 0 D 4 F 2 FA 36 18 1 B 20 43 92 5 F 22 49 8 D 1 C 48 69 BF 5 6 B 59 3 F 96 6 E FC 4 D 9 D 97 2 A 06 D 5 A 6 03 D 9 E 6 6 6 F 47 F 7 05 5 A B 1 33 38 44 90 24 4 E B 4 F 6 8 E 42 7 C 5 F 0 CC 9 A A 0 5 B 85 F 5 17 88 5 C A 9 C 6 0 E 94 68 8 30 AD 34 07 52 6 A 45 BC C 4 46 C 2 6 C E 8 61 9 B 41 9 01 D 4 A 5 12 3 B CB F 9 B 6 A 7 EE D 3 56 DD 35 1 E 99 A 67 A 2 E 5 80 D 6 BE 02 DA 7 E B 8 AC F 4 74 57 87 2 D B 2 B AF F 1 E 2 B 3 39 7 F 21 3 D 14 62 EA 1 F B 9 E 9 0 F C FE 9 C 71 EB 29 4 A 50 10 64 DE 91 65 4 B 86 CE B 0 D D 7 A 4 D 8 27 E 3 4 C 3 C FF 5 D 5 E 95 7 A BD C 1 55 54 E AB 72 31 B 2 2 F 58 9 F F 3 19 0 B E 4 AE 8 B 1 D 28 BB F 76 C 0 15 75 84 CF A 8 D 2 73 DB 79 08 8 A 9 E DF 16 90
AES S-Box(逆) x/y n n n n 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 52 7 C 54 08 72 6 C 90 D 0 3 A 96 47 FC 1 F 60 A 0 17 1 09 E 3 7 B 2 E F 8 70 D 8 2 C 91 AC F 1 56 DD 51 E 0 2 B 2 6 A 39 94 A 1 F 6 48 AB 1 E 11 74 1 A 3 E A 8 7 F 3 B 04 3 D 5 82 32 66 64 50 00 8 F 41 22 71 4 B 33 A 9 4 D 7 E 4 30 9 B A 6 28 86 FD 8 C CA 4 F E 7 1 D C 6 88 19 AE BA 5 36 2 F C 2 D 9 68 ED BC 3 F 67 AD 29 D 2 07 B 5 2 A 77 6 A 5 FF 23 24 98 B 9 D 3 0 F DC 35 C 5 79 C 7 4 A F 5 D 6 7 38 87 3 D B 2 16 DA 0 A 02 EA 85 89 20 31 0 D B 0 26 8 BF 34 EE 76 D 4 5 E F 7 C 1 97 E 2 6 F 9 A B 1 2 D C 8 E 1 9 40 8 E 4 C 5 B A 4 15 E 4 AF F 2 F 9 B 7 DB 12 E 5 EB 69 A A 3 43 95 A 2 5 C 46 58 BD CF 37 62 C 0 10 7 A BB 14 B 9 E 44 0 B 49 CC 57 05 03 CE E 8 0 E FE 59 9 F 3 C 63 C 81 C 4 42 6 D 5 D A 7 B 8 01 F 0 1 C AA 78 27 93 83 55 D F 3 DE FA 8 B 65 8 D B 3 13 B 4 75 18 CD 80 C 9 53 21 E D 7 E 9 C 3 D 1 B 6 9 D 45 8 A E 6 DF BE 5 A EC 9 C 99 0 C F FB CB 4 E 25 92 84 06 6 B 73 6 E 1 B F 4 5 F EF 61 7 D 91
Sub. Bytes() Figure 92
Shift. Rows() 93
Mix. Columns() n 加法为模 2加法 n (XOR) 94
AES 解密 95
其他对称加密算法 n n n RC 2: Ron Rivest 研制, 64 bits 分组,密钥长度从8到 1024 bits. RC 4: Ron Rivest 研制序列密码, 可变密钥长度。 RC 5: Ron Rivest 研制,32、64、128 bits 分组, 密钥长度从0到 2040 bits. Blowfish:Bruce Schneier 研制,64 bits 分组,密钥长度可变,最 大 448 bits. CAST-128:Carlisle Adams 和Stafford Tavares 研制, 64 bits 分组, 密钥长度从 40 bits 到 128 bits. 对称算法特点: n n n 可变密钥长度:增强抗攻击能力。 可变明密文长度:提高密码强度。 混合操作:算术/布尔操作。 数据或密钥的循环移位:提供好的扰乱和扩散效果。 可变循环次数: 96
分组密码的典型攻击方法 n n n 强力攻击: 最可靠的攻击办法 差分密码分析: 最有效的攻击 通过分析明文对的差值对密文对的差值的影响来恢 复某些密钥比特. 线性密码分析: 本质上是一种已知明文攻击方法, 通过寻找一个给定 密码算法的有效的线性近似表达式来破译密码系统。 插值攻击方法 密钥相关攻击 97
对称加密应用-保密通信 n n 链路加密: 易受攻击的通信链路两端都装备一个加密设备。共 享一条链路的每对节点应共享同一密钥,每段链路应使 用不同的密钥。报文在分组交换节点设备都需要被解密 和加密一次,使得报文可以路由。但是报文在每个分组 交换节点设备处容易受到攻击。 端到端加密: 端系统完成数据的加密和解密,加密形式的数据被 原封不动的从源端系统发送,穿过网络,到达目的端系 统。源端系统和目的端系统共享一个密钥。 98
链路加密/端端加密特征比较 链路加密 在发送主机上报文是暴露的 在中间节点上报文是暴露的 由发送主机应用 对用户是透明的 主机维护加密设备 所有用户用一个设施 可以由硬件完成 所有或没有报文被加密 节点之间都需要一个密钥 提供主机鉴别 端端加密 在发送主机上报文是加密的 在中间节点上报文是加密的 由发送进程应用 用户应用加密 用户决定算法 用户选择加密方案 软件实现 对每个报文由用户决定选择是 否加密 每个用户对需要一个密钥 提供用户鉴别 99
对称密钥分配问题 n 多种方法(对AB来说): 一个密钥由A选定,通过物理的方式传递给B。 n 一个第三方选定密钥,然后物理的传递给A和B。 n 如果AB曾经使用过一个密钥,一方可以使用旧密钥加密新密钥 并传递给另一方。 n 如果AB都有一个到第三方C的加密连接,C就可以用加密形式把 密钥传递给AB。 最后一种方法得到普遍应用。即设立密钥分配中心(KDC)。 n KDC A B 100
公钥密码体制 n n n n n 由Diffie 和Hellman 于1976年首次提出。 有两个不同的密钥,将加密功能和解密功能分开。 一个密钥称作私钥,秘密保存;另一个密钥称作公钥,不需要保密 两个相关的密钥中任何一个都可以用于加密而让另外一个用作解密。 公开钥密码算法基于数学函数,而不是基于替代和置换。 给定公钥,要确定出私钥,在计算上是不可行的。 可以简化密钥的管理,并且可以通过公开系统来分配密钥。 安全性大都基于数学难题:大整数因子分解/离散对数 用途: n n n 加解密 数字签名 密钥交换 101
加密模型和认证模型 B的公钥 明文 A 加密 B的私钥 密文 B 解密 加密模型 A的私钥 明文 明文 A 加密 A的公钥 密文 B 解密 明文 认证模型 102
数字签名 n 有些公钥算法具有数字签名功能,如RSA算法、DSA算法 实际应用中,需要HASH函数的结合。 模式: SSK(M)=S , VPK(M,S)=true 或 false 利用 ESK(M)=C , DPK(C)=M 103
公钥算法和对称钥算法区别(1) n 对称加密的优点 n n n 速度快, 处理量大,适用于对应用数据的直接加密。 加密密钥长度相对较短, 如40比特---256比特。 除了加密,还可构造各种加密体制,如产生伪随机数,HASH函 数等。 历史悠久。 对称加密的缺点 n n n 密钥在双方都要一致、保密,传递较难。 大型网络中密钥量大,难以管理,一般需要TTP(KDC)。 密钥需要经常更换。 104
公钥算法和对称钥算法区别(2) n 公钥加密的优点 n n n 只有秘密钥保密,公开钥公开。 网络上密钥管理只需要一个功能性TTP,而不是一个绝对安全 的TTP , 不 需在线,可以离线。 密钥生命周期相对较长。 许多公钥方案可以产生数字签名机制。 在大型网络上,所需的密钥相对较少。 公钥加密的缺点 n n 速度慢,处理量少,适用于密钥交换。 密钥长度相对较长。 安全性没有得到理论证明。 历史较短。 105
用于密钥交换的Diffie-Hellman公钥算法 n n n 1976年第一个发表的公开密钥算法。 用于两个用户安全的交换一个密钥以便于以后的报文加密。 该算法的有效性依赖于计算离散对数的难度。 106
离散对数概念 n n n 如果a是素数p的原根,那么 a mod p, a 2 mod p, , … , ap-1 mod p, 是各不相同的整数并 且以某种排列方式组成从1 到p-1的所有整数。 对一个整数b和素数p的一个原根a, 可以找到一个唯一的 指数i,使得: b= ai mod p ( 0<= i <=(p-1) ) 指数 i 称为 b 的以 a 为基数的模 p 的离散对数或者指数。 如果已知b和a, p, 而p 是一个大素数,计算i是不可行的。 107
单向陷门函数 n n 满足下列条件的函数f: (1) 给定x,计算y=f(x)是容易的 (2) 给定y, 计算x使y=f(x)是困难的 (3) 存在z,已知z 时, 对给定的任何y,若相应的x存 在,则计算x使y=f(x)是容易的 所谓计算x= f-1(Y)困难是指计算上相当复杂,已无实际意 义 108
单向陷门函数说明 n n 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门 性,z 称为陷门信息 当用陷门函数f作为加密函数时,可将f公开,这相当于公 开加密密钥,此时加密密钥便称为公开钥,记为Pk f函数的设计者将z保密,用作解密密钥,此时z称为秘密 钥匙,记为Sk。由于设计者拥有Sk,他自然可以解出x=f -1(y) 单向陷门函数的第(2)条性质表明窃听者由截获的密文 y=f(x)推测x是不可行的 109
DH算法描述 用户A和用户B希望交换一个密钥: 1)公开参数: 一个素数q 和一个q 的原根a。 2)用户A选择随机数x<q,计算X= ax mod q, 并将X传递给B; 3)用户B选择随机数y<q,计算Y= ay mod q, 并将Y传递给A; 4)A计算:K 1=Yx mod q =(ay mod q)x mod q= axy mod q; 5)B计算:K 2=Xy mod q =(ax mod q)y mod q= axy mod q; 6)显然K 1=K 2=K ; 7)K即是用户A和用户B产生的交换密钥。 Ø 算法安全性基于离散对数的计算难度。 要求出k, 必须计算出x和y. 对X,要计算出x, 难度相当于计算离散对数。 对Y,要计算出y, 难度相当于计算离散对数。 110
Euler 函数 n n n 所有模m和r同余的整数组成剩余类[r]中的每一个数和m互素的充要条件是r和m互素的同余类数目用φ(m)表示,称m的Euler函数 当m是素数时,小于m的所有整数均与m互素,因此 φ(m)=m-1 对n=pq, p和q 是素数,φ(n)=φ(p)φ(q)=(p-1)(q-1) 111
Euler 函数举例 设p=3, q=5, 那么 φ(15)=(3 -1)*(5 -1)=8 这 8个模 15的剩余类是: {1,2,4,7,8,11,13,14} 112
RSA 体制 n 是一个可逆的公钥密码体制,由Rivest、Shamir、Adleman三位密码 学家 1978年发明。基于大整数因子分解的困难性。 n 密钥生成:首先选取两个大素数p和q,计算n=pq. 随机选取加密密 钥e, 使e和(p-1)(q-1)互素 , 用欧几里得扩展算法计算解密密钥d, 以满足 : ed=1 mod (p-1)(q-1), 即 d= e-1 mod (p-1)(q-1); 公钥为 (e, n),私钥为 (d, n)。 n n 加密运算: C = Me mod n 解密运算: M = Cd mod n = (Me )d mod n = Med mod n = Mk(p-1)(q-1)+1 mod n =M*Mk(p-1)(q-1) mod n (根据欧拉定理) = M mod n 113
RSA算法安全性分析 n n n 密码分析者攻击RSA体制的关键点在于如何分解n 若分解成功使n=pq,则可以算出φ(n)=(p-1)(q-1),然 后由公开的e,解出秘密的d 若使RSA安全,p与q必为足够大的素数,使分析者没有 办法在多项式时间内将n分解出来 114
RSA算法的安全性分析 n n 建议选择p和q大约是 100位的十进制素数 模n的长度要求至少是 512比特 EDI攻击标准使用的RSA算法中规定n的长度为 512至 1024 比特位之间,但必须是 128的倍数 国际数字签名标准ISO/IEC 9796中规定n的长度位512比 特位 115
RSA算法的安全性分析 为了抵抗现有的整数分解算法,对RSA模n的素因子p 和q还有如下要求: (1) |p-q|很大,通常 p和q的长度相同; (2) p-1 和q-1分别含有大素因子p 1和q 1 (3) P 1 -1和q 1 -1分别含有大素因子p 2和q 2 (4) p+1和q+1分别含有大素因子p 3和q 3 116
RSA算法的安全性分析 n n 为了提高加密速度,通常取e为特定的小整数 如EDI国际标准中规定 e= 216+1 ISO/IEC 9796中甚至允许取e= 3 这时加密速度一般比解密速度快 10倍以上 117
El. Gamal公钥密码体制 n n n 1985年, El. Gamal设计,即用于数字签名,又用于加密,安全性基 于计算离散对数的困难性。 密钥产生:首先选择一个素数p,两个随机数g和x(<p),计算 y=gx mod p,公开密钥为y、g、p(gp可由一组用户共享),私有 密钥为x。 签名过程(对消息M):择随机数k(与p-1互素),计算a=gk mod p 由M=(xa+kb)mod (p-1)求出b,则签名为a和b,K保密。 验证签名过程: 验证 ya ab mod p= g. M mod p 加密过程:择随机数k(与p-1互素)。并a= gk mod p, b= yk M mod p a和b是密文对。(密文为明文两倍) 解密过程:解密a、b时,计算M=b/ ax mod p 118
椭圆曲线公钥密码体制 n 1985年,Koblitz和Miller分别将椭圆曲线用于公钥密码体 制设计。在有限域上实现了已存在的公钥密码体制。椭 圆曲线上的离散对数的计算要比有限域上的离散对数的 计算更困难,能设计出密钥更短的公约密码体制。标准 为IEEE P 1363。 119
几种常见的误解 n 公开密钥加密比对称密钥加密更安全。 安全程度基于密钥长度和计算 作量。 二者并不比对方优越。 公开钥算法天生具有更大的危险性。 n 公开密钥加密是一个使得常规加密已经过时的通用技术。 公开钥算法因速度问题更适合密钥交换。 实际应用是公开钥算法和对称钥算法的结合。 n 对于密钥分配,公开钥算法对比对称算法变得非常简单。 对称钥密钥分配是比较复杂,但是公开钥算法存在如何保证一 个问题,即如何确认一个公开钥与其拥有者的对应问题。 120
网络通信的攻击威胁 n n n n 泄露:把消息内容发布给任何人或没有合法密钥的进程 流量分析:发现通信双方之间信息流的结构模式,可以 用来确定连接的频率、持续时间长度;还可以发现报文 数量和长度等 伪装:从一个假冒信息源向网络中插入消息 内容篡改:消息内容被插入、删除、变换、修改 顺序修改:插入、删除或重组消息序列 时间修改:消息延迟或重放 否认:接受者否认收到消息;发送者否认发送过消息 121
鉴别和认证 鉴别:authentication 真伪性 (1) 用来验证发送的数据, 特别是一个信息的完整性的过程 (2) 在用户开始使用系统时对其身份进行的确认 n 认证:Certification 资格审查 计算安全学用语, 指为了鉴定一个计算机系统或网络的设 计和它提供的手段在多大程度上能满足预定的安全要求而进 行的技术评估 n 122
鉴别的目的 n n 信源识别:验证信息的发送者是真正的,而不是冒充的 验证信息的完整性,在传送或存储过程中未被篡改,重 放或延迟等 鉴别模型 123
鉴别系统的组成 鉴别编码器和鉴别译码器可抽象为鉴别函数 n 一个安全的鉴别系统,需满足 (1)指定的接收者能够检验和证实消息的合法性、真实性 和完整性 (2)消息的发送者和接收者不能抵赖 (3)除了合法的消息发送者,其它人不能伪造合法的消息 n 鉴别函数分类 n n n 消息加密:整个消息的密文作为认证标识 消息鉴别码(MAC):公开函数+密钥产生一个固定长度的 值作为认证标识 散列函数Hash:一个公开函数将任意长度的消息映射到 一个固定长度的哈希值,作为认证标识 124
对称加密-保密和鉴别 A与B共享密钥k A:Ek(M) B B:Dk(M),查看M是否 为有意义的明文 n n 提供保密:仅A和B共享k 提供一定程度的鉴别: n n 仅来自A 传输中不会被更改 需要某种结构和冗余 不提供签名 n n 接收人可以伪造报文 发送人可以伪造报文 125
公钥加密-保密性 n n 提供保密: n 仅B有KRb能解密k 不提供鉴别: n 任何一方均可以使用仅KUb加密 报文而假称它是发自A的 126
公钥加密-鉴别和签名 127
公钥加密-保密、鉴别和签名 n n KRa提供能鉴别和签名 KUb可提供保密性 128
消息鉴别码 n n 使用一个密钥生成一个固定大小的小数据块,并加入到 消息中,称MAC(Data Authentication Code), 或密码 校验和(cryptographic checksum) 1、接收者可以确信消息M未被改变 2、接收者可以确信消息来自所声称的发送者 3、如果消息中包含顺序码(如HDLC, X. 25, TCP),则接 收者可以保证消息的正常顺序 MAC函数类似于加密函数,但不需要可逆性。因此在数 学上比加密算法被攻击的弱点要少 129
消息鉴别一般封装机制 n 一般封装机制: 接收者 发送者 消息 消息 密 钥 产生附件 附件 消息 附件 产生附件 所期望附件 实际收到附件 密钥 如果二者 一样,则 认为消息 是完整的 130
(cont. ) n 使用对称分组密码产生附件的过程: 加密 加密 ⊕ m 1 消息 加密 ⊕ m 2 m 3 加密 ⊕ … mt 附件 m=m 1 m 2 m 3…mt 131
消息鉴别 MAC=Ck(M);k为A和B的共享密钥 A B:M||Ck(M) n 提供鉴别 n 仅A和B的共享密钥k 132
消息鉴别与保密(鉴别与明文连接) MAC=Ck 1(M);k 1为A和B的共享密钥 A B:Ek 2[M||Ck 1(M)] n 提供鉴别 n 仅A和B的共享密钥k 1 n 提供保密 n 仅A和B的共享密钥k 2 133
消息鉴别与保密(鉴别与密文连接) A B:Ek 2[M||Ck 1(Ek 2(M))] n 提供鉴别 n 仅A和B的共享密钥k 1 n 提供保密 n 仅A和B的共享密钥k 2 134
消息鉴别 VS 常规加密 n n n 保密性与真实性是两个不同的概念 信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大) 鉴别函数与保密函数的分离能提供功能上的灵活性 某些信息只需要真实性, 不需要保密性 – 广播的信息难以使用加密(信息量大) – 网络管理信息等只需要真实性 – 政府/权威部门的公告 135
HASH 函数(散列算法) n n n 功能 n 输入为任意长度的消息M,输出为一个固定长度的散列值,称为 消息摘要(Message Digest) 。又称为:哈希函数、数字指纹( Digital finger print)、压缩(Compression)函数等。 特征 n 函数必须是真正单向的。 n 是消息M的所有位的函数,并提供错误检测能力:消息中的任何 一位或多位的变化都将导致该散列值的变化。 n 构造两个不同的消息将它们映射为同一个消息的摘要必须是计算 上不可行的,即HASH碰撞率极低。 n 一般HASH函数不需要密钥。包含密钥的HASH函数,用来提供数据 源认证和数据完整性校验时,叫做MAC(Data Authentication Code)码。 作用 在数字签名中用于提高数字签名的有效性、破坏某些数据结构 和分离保密与签名、认证、数据完整性检测和加密。 136
(cont. ) n 使用HASH函数产生附件的过程: 消息 HASH函数 消息 附件 137
散列函数基本用法(1) A B:Ek[M||H(M)] n 提供鉴别 n 加密保护H(M) n 提供保密 n 仅A和B的共享密钥k 138
散列函数基本用法(2) A B:M||Ek[H(M)] n 提供鉴别 n 加密保护H(M) 139
散列函数基本用法(3) n 提供鉴别和数字签名 n 加密保护H(M) n 仅A能生成EKRa[H(M)] 140
散列函数基本用法(4) A B:Ek [M||Ek. Ra[H(M)]] n 提供鉴别和数字签名 n 提供保密 n 仅A和B的共享密钥k 141
散列函数基本用法(5) A B:M||[H(M||S)] n 提供鉴别 n 仅A和B的共享密钥S 142
散列函数基本用法(6) A B:Ek [M||H(M||S)] n 提供鉴别 n 仅A和B的共享S n 提供保密 n 仅A和B的共享密钥k 143
典型的HASH函数 n n MD 2:散列值长度为 128 bits. MD 5:散列值长度为 128 bits. SHA 1:散列值长度为 160 bits. RIPEMD-160:散列值长度为 160 bits. 144
Hash小结 n n n n Hash函数把变长信息映射到定长信息 Hash函数不具备可逆性 Hash函数速度较快 Hash函数与对称密钥加密算法有某种相似性 对Hash函数的密码分析比对称密钥密码更困难 Hash函数可用于消息摘要 Hash函数可用于数字签名 145
报文鉴别的局限性 n n 用于保护通信双方免受第三方攻击 无法防止通信双方的相互攻击 n n n 信宿方伪造报文 信源方否认已发送的报文 引入数字签名,是笔迹签名的模拟 146
数字签名的性质 n 传统签名的基本特点 n n n 能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证 数字签名是传统签名的数字化 n n 能与所签文件“绑定” 签名者不能否认自己的签名 容易被自动验证 签名不能被伪造 147
数字签名的性质 n n n 必须能够验证作者及其签名的日期时间 必须能够认证签名时刻的内容 签名必须能够由第三方验证,以解决争议 148
数字签名的设计要求 n n n 签名必须是依赖于被签名信息的一个位串模板 签名必须使用某些对发送者是唯一的信息,以防止双方 的伪造与否认 必须相对容易生成该数字签名 必须相对容易识别和验证该数字签名 伪造该数字签名在计算复杂性意义上具有不可行性,既 包括对一个已有的数字签名构造新的消息,也包括对一 个给定消息伪造一个数字签名 在存储器中保存一个数字签名副本是现实可行的 149
数字签名分类 n 签名方式 n n n 安全性 n n n 直接数字签名direct digital signature 仲裁数字签名arbitrated digital signature 无条件安全的数字签名 计算上安全的数字签名 可签名次数 n n 一次性的数字签名 多次性的数字签名 150
直接数字签名 (1) A B:EKRa (M) n 提供了鉴别和签名 n n 只有A具有KRa进行加密 传输中没有被篡改 需要某些格式信息冗余 度 任何第三方可以用KUa验 证签名 (1’) A B:EKUb [EKRa (M)] n 提供了保密(KUb)、鉴 别和签名(KRa) (2) A B:M||EKRa [H(M)] n 提供了鉴别和数字签名 n H(M)受到密码算法的保 护 n 只有A能生成EKRa [H(M)] (2’) A B:EK[M||EKRa [H(M)]] n 提供了保密、鉴别和数字签 名 151
直接数字签名的缺点 n n 验证模式依赖于发送方的保密密钥 – 发送方要抵赖发送某一消息时,可能会声称其私有密 钥丢失或被窃,从而他人伪造了他的签名 – 通常需要采用与私有密钥安全性相关的行政管理控制 手段来制止或至少是削弱这种情况,但威胁在某种程度 上依然存在 – 改进的方式例如可以要求被签名的信息包含一个时间 戳(日期与时间),并要求将已暴露的密钥报告给一个 授权中心 X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的 签名及晚于或等于时间T的时间戳 152
仲裁数字签名 n n 引入仲裁者 – 所有从发送方X到接收方Y的签名消息首先送到仲裁者A – A将消息及其签名进行一系列测试,以检查其来源和内容 – A将消息加上日期并与已被仲裁者验证通过的指示一起发 给Y 仲裁者在这一类签名模式中扮演敏感和关键的角色 – 所有的参与者必须极大地相信这一仲裁机制 作正常 153
仲裁数字签名-单密钥加密方式 1 数字签名 154
仲裁数字签名-单密钥加密方式 155
仲裁数字签名-单密钥加密方式 2 156
仲裁数字签名-双密钥加密方式 157
数字签名算法 n n n 普通数字签名算法 – EIGamal – RSA – DSS/DSA 群签名算法 盲签名算法 158
实用数字签名技术 n 用于证实消息的真实来源,并可以解决消息发送者和解 收者之间的争端。使用HASH函数的数字签名方案: 发送者 接收者 消息 消息 HASH函数 消息 附件 实际摘要 摘要 秘密 密钥 加密 HASH函数 解密 期望摘要 如果二者 一样,则 签名验证 通过 附件 159
美国数字签名标准(DSS-DSA) n n DSA签名算法,是El. Gamal公钥密码体制的一种变形。安全性完全依 赖于计算离散对数的困难性。 算法描述: 参数:p是从512到 1024(64倍数)的素数; q是 160位长且与p-1互素 的因子; g=h(p-1)/q mod p (h是小于p-1且满足h(p-1)/q mod p 大于1的 任意数) ; x是小于q的数,y=gx mod p. 令算法使用一个单向散列 函数H(m) (pqg 公开,私有密钥为x,公开密钥为y). 签名过程:产生一个小于q的随机数k. 计算: r=(gk mod p) mod q , s=(k-1(H(m)+xr)) mod q (r, s)即为签名. 验证签名:w=s-1 mod q , u 1=(H(m)×w) mod q , u 2=(rw) mod q v=(gu 1 × yu 2 mod p) mod q , v=r 则签名验证有效。 160
密钥管理 n n 密码技术一般都依赖于密钥; 密钥管理是一个复杂的课题,是保证安全性的关键点。 密钥都有生存期。即授权使用该密钥的周期。 一个密钥主要经历以下阶段: 密钥产生(可能需要登记); 密钥分配; 启用密钥/停用密钥; 替换密钥/更新密钥; 撤销密钥; 销毁密钥; 161
密钥长度 n 决定密钥长度需要考虑多方面的因素: n 数据价值有多大? n 数据要多长的安全期? n 攻击者的资源情况怎样? n 选择比需要的密钥长度更长的密钥。 162
不同安全需求的密钥长度 信息类型 时间 最小密钥 长度 战场军 事信息 产 品发 布、合并、利 率 贸 易秘密 氢弹 秘密 间谍 的身份 个人隐 私 外交秘密 数分钟 /小 时 几天/ 几 周 几十年 >40年 >50年 >65年 56 -64 bits 112 bits 128 bits 至少 128 bits 163
硬件穷举攻击对称密钥的平均时间估计( 1995年) 代价 (美元) 密钥长 度(比特) 40 56 64 80 112 128 2秒 35 小时 1年 70, 000年 1014年 1019年 1 M 0. 2 秒 3. 5 小时 37年 7000 年 1013年 1018年 10 M 0. 02 秒 21 分钟 4天 700 年 1012年 1017 年 100 M 2 毫秒 2 分钟 9 小时 70 年 1011 年 1016 年 1 G 0. 2 毫秒 13 秒 1 小时 7年 1010 年 1015 年 10 G 0. 02毫秒 1秒 5. 4分钟 245天 109 年 1014 年 100 G 2 微秒 0. 1 秒 32秒 24天 108 年 1013 年 1 T 0. 2 微秒 0. 01 秒 3秒 2. 4天 107 年 1012 年 10 T 0. 02 微秒 1毫秒 0. 3秒 6 小时 106 年 1011 年 100 K 164
攻击难度相当的对称密钥密码和公钥密码的密钥 长度(位) 对 称密 钥 密码 的密钥 长度 公钥 密码 的密钥 长度 56 bits 384 bits 64 bits 512 bits 80 bits 768 bits 112 bit 1792 bit s 128 bit s 2304 bit 165
密钥生成 n n 尽量避免容易记忆的安全性差的密钥: n 如用户的姓名、简写字母、帐户姓名和其他 有关的个人信息等; n 字典攻击。 最好的密钥还是随机密钥,但不容易记忆。 166
伪随机数生成器 n n n 线性同余算法。 基于密码算法的随机数生成器 n 循环加密; n DES的输出反馈(OFB)模式; n ANSI X 9. 17密钥生成器。 BBS(Blum-Shub)生成器。 167
密钥分配 n 解决两个主要问题: n n 引进自动密钥分配机制,减轻负担,提高系统的效率; 尽可能减少系统中驻留的密钥量,提高安全性。 典型的两类自动密钥分配途径: n 集中式分配方案:利用网络中的密钥分配中心 KDC (key distribution center)来集中管理系统中 的密钥,密钥分配中心接收系统中用户的请求, 为用户提供安全地分配密钥的服务。 n 分布式分配方案 :指网络中各主机具有相同的地 位,它们之间的密钥分配取决于它们自己的协商, 不受任何其他方面的限制。 通常采取两种方案的混合:主机采用分布式方式分配 密钥,而主机对于终端或它所属的通信子网中的密钥 可采用集中方式分配。 168
秘密密钥的分配 n 基于对称密码体制的密钥分配 建立 KKM 密钥中心 (手 ) 建立 KKM (手 ) 建立 KK(在线) B A 建立 KD(在线) KKM: 主密钥 KK:密钥加密密钥 KD: 数据密钥 密钥中心结构 169
密钥分配实例 n 假定两个用户A、B分别与密钥分配中心有一个共享的主 密钥KA和KB,A希望与B建立一个逻辑连接,并希望有 一个一次性会话密钥来保护该连接上的数据传送 : 前提: • 用户A、B必须信任KDC 170
KDC的分层 如果网络中的用户数目非常多且地域分布非常广 ,可采用 分层结构 : n 在每个小范围(如一个LAN或一个建筑物)内建立一 个本地KDC,负责该范围内的密钥分配; n 如果两个不同范围的用户想获得共享密钥,需要通过 各自的本地KDC,并由两个本地KDC经过一个全局 KDC完成密钥分配。这样就建立了两层KDC结构。 好处: n 可减少主密钥的分布,因为大多数主密钥是在本地 KDC和本地用户之间共享; n 可将虚假KDC的危害限制到一个局部区域内。 171
分布式密钥分配 n n n 1.A向B发出建立会话密钥的请求和一个一次性随 机数 。 2.B用与A共享的主密钥 对应答的消息加密, 并发送给A。应答的消息中有B 选取的会话密钥、B 的身份、 和另一个一次性随机数 。 3.A使用新建立的会话密钥 对 加密后返 回给B。 172
秘密密钥的分配(cont. ) n n 基于公钥密码体制的密钥分配 公钥密码体制便于密钥管理,特别适合大型网 络中的密钥管理。 密钥分配基本方法: AB希望利用RSA算法建立一个数据密钥: 1. A获得B的公钥; 2. A随机的生成一个对称密钥K,并将 K用B的公钥加密后发送给B; 3. B解密获得密钥K; 173
简单使用公钥加密 算法建立会话密钥 具有保密性和认证 性的密钥分配 174
Diffie-Hellman的密钥交换方法 175
公钥密码体制的密钥分配和公钥证书 n 公钥分配不需要机密性,但需要完整性(不允许替代假冒)。一 般采用公钥数字证书方式分配。 n 公钥数字证书 是一个数据结构,它将某一成员的识别符和其公钥值通过某一可 信成员的数字签名有效的捆绑在一起。该可信成员一般称为认证中 心CA(Certificate Authority)。 176
公钥证书产生过程 177
网上用户身份识别问题的思考 n 在网上实际安全应用中,采用对称算法和公钥算 法的结合实现数据的加密,存在问题是: n n n 如何安全获得对方的公钥? 也就是如何确保你得到的一 个公钥就一定是对方的公钥? 我们希望将对方的公钥与对方的身份信息有效捆绑, 从 而确信公钥与身份的一一对应。 实现的技术就是数字证书技术。 178
数字证书的基本概念 n n 我们使用数字证书来鉴别用户的身份,其技术原理是采 用数字签名技术。 通过一个可信的第三方机构,审核用户的身份信息和公 钥信息,然后进行数字签名,则其他用户就可以用该可 信的第三方机构的公钥进行签名验证。从而确保用户的 身份信息和公钥信息的一一对应。 由用户身份信息、用户公钥信息以及可信第三方机构所 作的签名构成一个用户的身份数字证书。 该可信的第三方机构,一般称为数字证书认证中心CA( Certificate Authority)。 179
公钥数字证书 n 证书类型 n n n X. 509公钥证书(非SET证书/SET证书) 简单PKI(SPKI)证书 PGP证书 属性证书 代理证书等 我们一般讲的数字证书是指非SET X. 509公钥证书。 标准 参见 :IETF PKI X 509 作组制定的协议子集 RFC 2459。 180
X. 509公钥证书 181
证书验证 n 证书验证主要是完成证书有效性的检验,包括: n n n 是否是可信CA的签名(包括CA证书路径处理)。 证书是否有良好的完整性,即签名验证是否正确。 证书是否在有效期内。 证书的使用方式是否符合证书策略和限制。 证书是否被注销。 182
数字证书的应用 n 通过某种安全协议,用户数字证书得以交换,根据证书的种类(签 名证书或加密证书),使用其中的公钥加密、交换密钥或验证签名等。 KD 会话密钥交换举例: A B (KD:会话密钥, PK:证书中的公钥) --- A: 随机产生KD; 用B的证书中的PK加密KD,产生密钥交换报文CIPHER; 将CIPHER传送给B; --- B: 用自己的私钥解密CIPHER, 得到KD; ---AB: 以后A和B就可以用对称算法使用KD作为对称密钥加密和解 密信息,而网络上传输的是密文。 183
认证机构(CA) n n n CA是指在某一个安全域中实现安全域用户数字证书全方位管理的权威的第 三方的认证机构。 一个CA认证机构在组成上一般包括一个CA核心认证机构和多个在地理上 具有不同分布的注册机构RA(Register Authority), RA 的主要目的是分担 CA的一定功能以增强可扩展性并降低运营成本。 CA的功能 政策制订、密钥管理、证书管理、黑名单管理、目录管理、系统维护 n 等。 RA的功能 n n 作为初始化的一部分,建立并确定个体的身份; 代表终端用户启动和CA的认证过程; 生成代表用户的密钥资料; 执行一定的密钥/证书生命周期管理功能(如证书撤销/密钥 恢复等); 184
185
密钥和证书管理 n 密钥/证书生命周期管理大体经历三个阶段: 1. 初始化阶段 终端实体注册 /密钥对产生/证书创建和密钥/证书下发 证书分发 /密钥备份 2. 颁发阶段 证书检索/证书验证/密钥恢复/密钥更新 3. 取消阶段 证书过期/证书撤销 /密钥历史/密钥档案 186
792dbf39eebe38c63be8ef09262761c4.ppt