Download presentation
Presentation is loading. Please wait.
1
现代密码学理论与实践 第7章用对称密码实现保密性
Fourth Edition by William Stallings Slides by 杨寿保 2012年10月 2019/5/3 现代密码学理论与实践-07
2
本章要点 链路加密中每个结点都需要一套加密设备,端到端加密只需在系统的两个终端执行加密和解密操作
即使通信数据都被加密,攻击者仍能通过流量分析来获取信息。有效的对付手段是对传输数据进行填充。 密钥分配为需要传输加密数据的通信双方提供传递密钥的功能,需要机制和协议保障密钥传输的安全性 主密钥不经常使用并长期存在,临时生成会话密钥并分发给通信双方 随机或伪随机数发生器数许多密码函数在实际应用中必备的能力,其原则是产生的比特串不能够被猜测。 2019/5/3 现代密码学理论与实践-07
3
第7章 用对称密码实现保密性 本章讨论加密逻辑功能所处的位置,使用加密防止通信量分析攻击的方法,密钥分配问题及随机数的产生。
7.1 密码功能的位置 安全隐患 从同一网上其他工作站发起的窃听 使用拨号进入局域网或服务器进行窃听 使用外部路由链接进入网络和窃听 在外部链路上对通信业务的监听和修改 2019/5/3 现代密码学理论与实践-07
4
7.1.2 链路加密与端到端加密 基本方法:链路加密与端到端加密 链路加密 端到端加密 加密是在每一条链路上独立发生的
意味着链路之间每次分组交换都必须被解密 要求的设备多,且需要成对的密钥 端到端加密 加密解密的过程在两端系统中进行 在两端需要加密装置,源主机与目的主机共享密钥 依然存在弱点: 不能对整个数据包加密,否则不能实现包的路由 如果只对数据加密,信息头保持明文,则传输过程又不安全了,因为可以有通信量分析攻击 2019/5/3 现代密码学理论与实践-07
5
链路加密与端到端加密 理想的是同时使用链路加密与端到端加密 端到端加密保证在整个路径上的数据安全和提供认证 链路加密防止通信流被监听和分析
2019/5/3 现代密码学理论与实践-07
6
两种加密策略的特点 2019/5/3 现代密码学理论与实践-07
7
加密函数的逻辑位置 可以在OSI参考模型的各个层次上设置加密功能 采用前端处理器FEP实现加密功能 链路加密可以在物理层和数据链路层
端到端加密可以在网络层、传输层、表示层和应用层 越往高层移,需要加密的信息量越少,参与的实体和密钥越多,加密越复杂,但是会更安全 采用前端处理器FEP实现加密功能 端系统用户进程和应用使用同一个密钥采用同一个加密方案 2019/5/3 现代密码学理论与实践-07
8
通信量分析 Traffic Analysis
通信量分析是监控通信双方的通信流 军事和商业环境下都有用 也可用于产生隐蔽信道 链路加密掩盖了头部细节 但是在网络中和端节点的额外通信量仍然是可见可读的 通信量填充可以进一步掩盖通信流信息 但是会带来连续的通信量 2019/5/3 现代密码学理论与实践-07
9
存储转发通信网络中的加密覆盖范围 将加密设备用于端到端协议,不能提供网络之间的服务,如电子邮件、电子数据交换和文件传输等。因此,端到端加密需要到应用层上进行。 2019/5/3 现代密码学理论与实践-07
10
不同加密策略的实现(1) 2019/5/3 现代密码学理论与实践-07
11
不同加密策略的实现(2) 2019/5/3 现代密码学理论与实践-07
12
7.2 传输保密性 可以从通信量分析攻击得到的信息类型 隐蔽信道问题(covert channel) 传输双方的标识 传输双方的联系频率
消息格式、消息长度,或者消息交换频繁程度可以暗示出消息的重要性 与传输双方的某些谈话相关的事件 隐蔽信道问题(covert channel) 隐蔽信道就是以一种通信设施设计者未设想的方式进行通信的方法,通常这个信道被用于以一种违反安全规定的方式传送信息。 2019/5/3 现代密码学理论与实践-07
13
7.2.1 链路加密方式 使用链路加密时分组首部要加密,因此可以减少通信量分析的机会,但攻击者仍有可能估算出网络上的通信量并观察到进入和离开每个端系统的通信量的大小。有效防范措施是通信量填充(traffic padding) 2019/5/3 现代密码学理论与实践-07
14
7.2.2 端到端加密的方法 端到端加密方式 端到端加密方式使信息防护者可以采用的措施更有限,例如应用层加密可以使攻击者确定哪些通信实体参与了通信过程;传输层加密仍会透露网络层地址和通信量模式。 解决办法是在传输层或应用层把所有数据单元都填充到一个统一的长度,以防止攻击者获得端用户之间交换的数据量信息,掩盖通信量模式。 2019/5/3 现代密码学理论与实践-07
15
7.3 密钥分配 密钥分发问题 密钥分发可以采用的多种方法 对称的加密机制要求双方一个秘密密钥 问题是如何安全保密地传递这个密钥
许多密码系统出问题多在密钥分发上 密钥分发可以采用的多种方法 密钥由A选择,并亲自交给B 第三方C选择密钥后亲自交给A和B 如果A和B以前或最近使用过某密钥,其中一方可以用它加密一个新密钥后再发送给另一方 A和B与第三方C均有秘密渠道,则C可以将密钥分别秘密发送给A和B 2019/5/3 现代密码学理论与实践-07
16
端到端加密所涉及的密钥分配任务的难度 N个结点需要的密钥数量是[N(N-1)]/2 1000个结点需要多达50万个密钥 2019/5/3
现代密码学理论与实践-07
17
密钥层次结构的使用 2019/5/3 现代密码学理论与实践-07
18
7.3.1 一种密钥分配方案 A和B各自拥有与KDC共享的主密钥KA和KB:
A向KDC发出请求,要求得到与B通信的会话密钥 KDC用KA加密传送给A如下内容: 一次性会话密钥KS 原始请求报文 用KB加密的要发给B的会话密钥KS和A的标识符IDA A得到会话密钥KS并将有关信息发给B A和B之间进行认证,并正式秘密通信 Nonces(临时交互号,或现时,可以是时间戳、计数器或随机数),主要用在认证协议中防范重放攻击 2019/5/3 现代密码学理论与实践-07
19
一种密钥分配过程:分配加认证 2019/5/3 现代密码学理论与实践-07
20
层次化密钥控制和会话密钥的使用寿命 分层式密钥的控制 会话密钥的生命期
建立一系列KDC,各个KDC之间存在层次关系,使得主密钥分配所涉及的工作量减至最小,因为大部分的主密钥都是由一个本地的KDC和它的本地实体共享的,并将出错或受到破坏的KDC的危害限制在它的本地区域 会话密钥的生命期 会话密钥更换越频繁就越安全 对于面向连接的协议,每次会话使用新的密钥 对于无连接的协议,每次交互使用新的密钥,或者每个固定时间或对于一定数量的交互使用一个给定的会话密钥 2019/5/3 现代密码学理论与实践-07
21
7.3.4 一种透明的密钥控制方案 2019/5/3 现代密码学理论与实践-07
22
7.3.5 分散式密钥的控制 要求每个端系统能够与所有潜在的伙伴以安全方式为了会话密钥分配的目的进行通信,因此对于一个有n个端系统的配置可能需要多达[n(n-1)]/2个主密钥 2019/5/3 现代密码学理论与实践-07
23
7.3.6 控制密钥的使用方式 因用途不同而定义的不同类型密钥 依据密钥特征限制密钥的使用方式 控制向量的方案 数据加密密钥 PIN加密密钥
文件加密密钥 依据密钥特征限制密钥的使用方式 给予每个密钥一个关联标记,如DES64位密钥中留作做奇偶校验的8位非密钥比特 1比特指示此密钥是主密钥还是会话密钥 1比特指示此密钥是否可以用于加密 1比特指示此密钥是否可以用于解密 其余比特留待将来使用 控制向量的方案 2019/5/3 现代密码学理论与实践-07
24
带控制向量的加密和解密 2019/5/3 现代密码学理论与实践-07
25
7.4 随机数的产生 随机数random numbers的用途 Nonces(临时交互号或现时,可以是时间戳、计数器或随机数)
用于相互鉴别authentication,以防重放攻击 会话密钥session keys的产生 产生公开密钥,如在RSA算法中产生密钥 一次一密密码中的密钥流 Nonces(临时交互号或现时,可以是时间戳、计数器或随机数) Statistically random(随机程度) uniform distribution, 均匀分布,每个数出现的频率应该近似相等 Independent,独立性,系列中的任意一个数都无法从其他数推测得到 Unpredictable (不可预测程度),基于前值不能推导出未来的随机数序列 2019/5/3 现代密码学理论与实践-07
26
随机数的来源 最好的来源是真实世界中的自然随机事件 可以找一个一般的但是随机的事件进行监控
一般需要特殊的硬件来实现,如衰变计数器,无线电噪声,声音噪声,二极管热噪声,漏电电容,闸流管等。 这些随机数源的问题是信号偏离或者信号的不均匀分布 所以在采样和使用时需要加以补偿 最好是只使用每个采样中最具噪声的位 还可以来自随机数出版物的内容,但是随机数有限,有些知名随机数用得太多太滥了 2019/5/3 现代密码学理论与实践-07
27
7.4.2 伪随机数产生器(PRNG) Pseudorandom Number Generators (PRNGs)
产生随机数的算法与技术 尽管不是完全随机,但是产生的伪随机数仍然可以通过某些随机性测试 2019/5/3 现代密码学理论与实践-07
28
7.4.3 线性拟合发生器 Linear Congruential Generator (线性同余)
m,模数,m>0 a,乘数,0<=a<=m c,增量,0<=c<=m X0,初始值或种子, 0<=X0<=m 通用迭代技术采用 Xn+1 = (aXn + c) mod m 给定恰当的参数,能够产生长的类随机序列 e.g. a=7, c=0, m=32, X0=1, 产生{7, 17, 23, 1, 7, ...}, 不满足随机性,因为周期是4 e.g. a=5, c=0, m=32, X0=1, 产生{1, 5, 25, 29, 17, 21, 9, 13, 1, ...}, 周期为8 2019/5/3 现代密码学理论与实践-07
29
随机数产生器的评价 必须产生完整周期full-period 产生的序列应该看起来是随机的 用32位算法实现容易
一种容易的实现是选择素数m,如 m=231-1,则有 xn+1 = (axn + c) mod (231-1),由此产生的随机数很少有通不过随机性测试的 如果给定的数值太小,攻击者可以重组随机数序列 2019/5/3 现代密码学理论与实践-07
30
7.4.4 用密码学方法生成随机数 循环加密 从一个主密钥产生会话密钥 Xi = EKm[i] 2019/5/3 现代密码学理论与实践-07
31
DES输出反馈模式和ANSI X9.17 PRNG生成随机数
Xi = EKm[Xi-1] ANSI X9.17 PRNG 采用日期/时间加“种子”作为输入,Triple-DES加密产生新的种子和随机数 2019/5/3 现代密码学理论与实践-07
32
7.4.5 Blum Blum Shub (BBS) Generator
基于公开密钥算法 首先选择两个大素数p和q,满足p≡q≡3 mod 4 设n=p.q, 选择随机数s,gcd(s, n)=1, 算法为: X0=s2 mod n for i=1 to ∞ xi=(xi-1)2 mod n Bi=xi mod 2 随机数系列不可预期,通过next-bit测试 安全性取决于合数N的因子分解 速度慢,因为要用到非常大的数 如果用来做加密就太慢了,但是适用于做密钥产生器 2019/5/3 现代密码学理论与实践-07
33
BBS产生器操作过程举例 2019/5/3 现代密码学理论与实践-07
34
7.4.6 真随机数发生器和偏差 真随机数发生器(TRNG)使用不可预测源来产生随机数,大多数通过物理噪声来实现,如离子辐射、闸流管、漏电容等。Intel开发出一种发大电阻两端电压产生的热噪声的芯片;Bell实验室利用硬盘读操作产生的辐射作为随机源;LavaRnd使用充满光源的CCD作为混沌源产生种子,用软件将种子加工成各种形式的真随机数。 这些随机数的随机性和精度都存在问题,设备笨拙。 一个真随机数发生器的输出有时会有偏差,比如1的个数比0多,或者反之。将一个比特串减少或消除偏差的方法称为消偏算法,如通过MD5或SHA-1等散列函数进行处理。 2019/5/3 现代密码学理论与实践-07
35
思考题与习题 第7章作业:7.4, 7.6, 7.8 Due: Oct. 23, 2012, 同第6章作业一起交
What is the difference between link and end-to-end encryption? What is the difference between a session key and a master key? What is the difference between statistical randomness and unpredictability? What is a nonce? What is traffic padding and its purpose? 第7章作业:7.4, 7.6, 7.8 Due: Oct. 23, 2012, 同第6章作业一起交 2019/5/3 现代密码学理论与实践-07
Similar presentations