Presentation is loading. Please wait.

Presentation is loading. Please wait.

第2讲 密码学简介 苏兆品.

Similar presentations


Presentation on theme: "第2讲 密码学简介 苏兆品."— Presentation transcript:

1 第2讲 密码学简介 苏兆品

2 主要内容 1 加密技术 2 数字签名 3 密钥管理

3 1 加密技术 密码学的基本概念 传统密码学 对称密码学 公钥密码学

4 1.1 密码学的基本概念 密码体制 密码学中的安全 可能的攻击手段 现代密码学的基本原则

5 一 密码体制 1. 明文(Plaintext):须加密的消息或数据,是加密算法的输入。
2. 密文(Ciphertext):加密之后的数据,是加密算法的输出。 3. 密钥(Key):加密或解密的参数。不同的密钥,会有不同的输出结果。

6 一 密码体制(续) 4. 加密(Encryption):将明文变成密文的过程。C=EK (P) ,K是密钥,P是明文,C是密文,E是加密算法。 5. 解密(Decryption):将密文恢复成明文的过程。P=DK (C) ,D是解密算法。

7 一 密码体制(续) C=EK1(P) P=DK2(C) E D Alice Bob TRUDY (第三方,窃听者) (接收方) (发送方)
不安全的信道 TRUDY (第三方,窃听者) (接收方) (发送方) K1 K2 K1=k2, 对称密码体制 K1 k2,非对称密码体制

8 二 密码学中的安全 无论截获多少密文,都不能得到足够的信息唯一地决定明文。 在有限的资源内,不能通过系统分析的方法破解系统。
1. 无条件安全(Unconditional Secure) 无论截获多少密文,都不能得到足够的信息唯一地决定明文。 2. 计算上安全(Computationally Secure) 在有限的资源内,不能通过系统分析的方法破解系统。 3. 理论上安全(Perfect Secure) Shannon:加密密钥长度和明文一致,密钥只能用一次(one-time-pad,OPT,一次一密密码) 4. 实际上安全(Practical Secure) Shannon:给定一个n位的密文,必须有一个最小的工作时间来破解系统。这个时间为W(n)。当n趋于无穷时,w(n)w(∞)。当n大到一定程度,攻击者在合理的时间内无法破解此系统。

9 三 可能的攻击手段 密码分析学是在不知道密钥的情况下,恢复出明文的科学。密码分析也可以发现密码体制的弱点。 攻击的目的 获取密钥
常用的密码分析方法:

10 三 可能的攻击手段(续) Trudy仅能得到一份密文的拷贝。 Trudy不仅有一份密文的拷贝,还有对应的明文 1. 仅知道密文攻击
2. 已知明文攻击 Trudy不仅有一份密文的拷贝,还有对应的明文 3. 选择明文攻击 Trudy临时获取了加密的机器,她可以通过加密大量挑选出的明文,然后试着利用其产生的密文来推测密钥。 4. 选择密文攻击 Trudy临时获得了用来解密的机器,利用它去“解密”几个符号,并利用可能结果推测出密钥。

11 四 现代密码学的基本原则 设计加密系统时,总是假设密码算法是公开的,需要保密的是密钥。

12 1.2 传统密码学 移位密码 仿射密码 代换密码 置换密码

13 一 移位密码 加密算法 解密算法 代表算法 c = Ek(m) = (m + k) mod q
m = Dk(c) = (c - k) mod q 代表算法 恺撒密码;

14 例:(k=3) 明文 meet me after the party 密文 phhw ph diwhu wkh sduwb

15 二 仿射密码 加密算法 c = Ek(m) = (am + b) mod q 解密算法
m = Dk(c) = (c - b)/a mod q 密钥 K=(a, b)

16 二 仿射密码(续) 举例 三个密文数值为0、23和6,对应的密文是axg。 设密钥K= (7, 3), 明文hot
三个字母对应的数值是7、14和19。 分别加密如下:   (7×7 + 3) mod 26 = 52 mod 26 =0   (7×14 + 3) mod 26 = 101 mod 26 =23   (7×19 + 3) mod 26 =136 mod 26 =6 三个密文数值为0、23和6,对应的密文是axg。

17 三 单表代换密码 定义:密文是26个字母的任意置换,密钥是明文字母到密文字母的一个字母表. 缺点: 密钥 明文 i am a boy
密文 a f… 缺点: 不能抵抗明文统计特性的攻击 a b c d e f g h i j k z l x t w o

18 四 多表代换密码(维吉尼亚密码) 密钥 加密算法: 解密算法: 这里的所有的运算都是在(mod 26)中进行的。
K=( k1,k2,…,km) 加密算法: Ek(x1,x2,…,xm)=(x1+k1,x2+k2,…,xm+km)=c 解密算法: Dk(y1,y2,…,ym)= (x1-k1,x2-k2,…,xm-km) =m 这里的所有的运算都是在(mod 26)中进行的。

19 四 多表代换密码(续) 密钥为: deceptive; 明文:wearediscoveredsaveyourself
密钥:deceptivedeceptivedeceptive 密文:zicvtwqngrzgvtwavzhcqyglmgj

20 五 置换技术 最简单的为栅栏技术 m e m a t r h p r y e t e f e t e a t
以对角线顺序写下明文,以行顺序读出 例: 明文:meet me after the party 深度为2的栅栏技术可写为: m e m a t r h p r y e t e f e t e a t 密文为:mematrhpryetefeteat

21 1.3 对称密码学 现代密码设计基本思想 单独用一种方法,容易被攻破。
混乱(confusion):即在加密变换过程中使明文、密钥及密文之间的关系复杂化。用于掩盖明文和密文间的关系。 散布(diffusion):即将每一位明文信息的变化尽可能地散布到多个输出的密文信息中,即改变一个明文尽可能多的改变多个密文,以便隐蔽明文信息的统计特性。 单独用一种方法,容易被攻破。

22 1.3 对称密码学(续) 对称密码学分类 流密码(序列密码) 块密码(分组密码) 每次一位地对明文进行操作和运算 流密码只依赖于混乱
一次若干位一组地对明文进行操作和运算 分组密码使用混乱和散步

23 1.3 对称密码学(续) 流密码 RC4 混沌密码 块密码-DES

24 一 RC4算法 设计者:Ron Rivest 设计时间:1987年 公开时间:1994 密钥:支持可变的密钥长度(通常为256位) 速度:快
原理: 初始化算法 伪随机子密码生成算法 设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。

25 一 RC4算法(续) 初始化算法 设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。

26 一 RC4算法(续) 伪随机子密码生成算法 设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。

27 应用: 分析 无线通信网络安全 存在部分弱密钥,在不到100万字节内就发生了完全的重复
使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥。

28 二 混沌密码 什么是混沌? 混沌(Chaos)是非线性动力系统中出现的一种确定性的、貌似无规则的运动,它不需要附加任何随机因素也可以出现类似随机的行为,即存在内在随机性,这种运动既非周期又不收敛,并且对初始值有极其敏感的依赖性。

29 特征: 类随机性: 初值敏感性 遍历性 由确定性方程产生的,初始状态决定混沌信号序列就可以精确地再生 长期不可预测性
举例:随机性实验--掷硬币 初值敏感性 失之毫厘,差之千里 遍历性

30 典型的混沌系统 Logistic映射 即虫口模型,它是目前研究非常广泛的一种混沌映射。
意义可解释为:在某一范围内单一种类的昆虫繁殖时,其子代数量远远大于其亲代数量,这样可以认为,在子代出生后,其亲代的数量可忽略不计。

31 设xn是某种昆虫第n年的个体数目,这个数目与年份有关,n只取整数值,第n+1年的数目为xn+1。
当0 <μ≤1时,序列会最终收敛于0。 当1<μ≤3时,定常解为0和1 1/μ,多次迭代后序列会收敛于这两个值中的一个。 当3<μ≤4时,系统由倍周期通向混沌。而且μ取值越接近4,混沌性越强。

32 Arnold变换 遍历理论 又被称为猫脸变换。 原理:Cat映射可以把图像中各像素点的位置进行置换,使其达到加密的目的 mod N
,因而在数字图像置乱中的应用是非常广泛的

33 当a=b=1,N=1时,Cat映射的方程可写为:

34 思想:拉伸和折叠。 Cat映射通过与矩阵C相乘使x、y都变大,相当于拉伸; 取模运算使x、y又折回单位矩形内,相当于折叠。
单位矩阵内的每一点唯一地变换到单位矩阵内的另一点。 Cat映射可以用于图像置乱加密,而且基于Arnold的Cat图像置乱也是目前研究最为广泛的一种置乱方案。

35

36 分析: 适合于图像信息的加密 周期性问题

37 课后阅读 A5序列密码算法 分析

38 三 DES算法 数据加密标准( Data Encryption Standard )
1976年被美国联邦政府的国家标准局确定为联邦资料处理标准,随后在国际上广泛流传开来。

39 DES的过程 64位明文 64位密钥 K1 K16 循环左移 64位密文 初始置换IP 置换选择PC-1 第一轮 置换选择PC-2 循环左移
第16轮 置换选择PC-2 循环左移 56 位的密钥以及附加的 8 位奇偶校验位 32位互换 逆初始置换IP-1 64位密文

40 DES的安全性 密钥长度不够(56位+8位奇偶校验) 存在弱密钥 S-box问题 不能抗差分分析 密钥为0,1时
若 k1=k2=…=k16 ,则 DESk(m)=DESk-1(m) S-box问题 S盒是不公开的,人们怀疑S盒的构造方法是否有弱点 不能抗差分分析 差分分析(differential cryptanalysis)是一种选择明文攻击,其基本思想是:通过分析特定明文差分对相对应密文差分影响来获得尽可能大的密钥。它可以用来攻击任何由迭代一个固定的轮函数的结构的密码以及很多分组密码(包括DES),它是由Biham和Shamir于1991年提出的选择明文攻击。

41 对称密码体制小结 规模复杂 进行安全通信前需要以安全方式进行密钥交换。 提供数据的机密性,不能用于认证。

42 1.4 公钥密码学 公钥密码体制 RSA算法 公钥密码和与对称密码的区别和应用场合?是否前者更加安全? 问题

43 一 公钥密码体制 每方均有2个密码 公钥 私钥 功能 保密 认证

44 一 公钥密码体制(续) 1、保密 加密:C=Ekub(P) 用接收方的公钥加密 解密:P=DKRb(C) 用自己的私钥解密 Trudy
Alice E D Bob 密钥对 C=Ekub(p) Kub p P=DkRb(c) KRb P=? kRb=? 1、保密 加密:C=Ekub(P) 用接收方的公钥加密 解密:P=DKRb(C) 用自己的私钥解密

45 一 公钥密码体制(续) 2、认证 签名: C=Ekra(P) 用自己的私钥签名 验证: P=DKua(C) 用发送方的公钥验证 Alice
密钥对 P C=Ekra(P) P=DKua(C) Bob kra kua

46 2.1.4.1 公钥密码体制(续) 3、既认证 又保密(先签名后加密) Alice E D 密钥对源 Bob kRa kua kub kRb
P C’=EkRa(P) C=DKua(C’) Bob kRa kua C=Ekub(C’) C’=DkRa(C) kub kRb 发送方:C=Ekub[Ekra(p)] 先用自己的私钥签名,再用接收方的公钥加密 接收方: P=Dkua[Dkrb(C)] 用自己的私钥解密,再用发送方的公钥验证

47 主要应用 加密/解密 数字签名 密钥管理

48 二 RSA算法 1、背景 1976年 Diffie和Hellman指出新的密码学方法(公钥体制)
定义1. 单向函数f,已知x 计算y=f(x)容易,但给定y,求x=f-1(y)非常难。 定义2. 单向陷门函数ft,已知x 计算y=f(x)容易。不知参数t的情况下,计算x=f-1(y)难,但知道t,计算x=f-1(y)易。

49 背景(续) 1978年, Rivest, Shamir 和 Adleman 提出。 基于“大数分解的素数检测”基础上。
已知大素数p和q,求n=p*q容易,但反过来,知道大数n,分解出素数p和q困难。

50 算法描述 密钥产生 选择p,q,使得p,q是素数,且p≠q 计算n=p×q 计算t=(p-1)×(q-1)
选择整数e,使得gcd(t,e)=1(1<e< t) 计算d,使得e*d=1 mod t 公钥 KU={e,n},私钥KR={d, p, q}

51 算法描述(续) 加密 C=C=Me mod N, 其中 0≤M<N 解密 M=Cd mod N

52 举例 找两个素数:p=47,q=59 n=p*q=2773 t=(p-1)*(q-1)=2668 取e=63,满足e<t并且e和t互素
计算d,使得e*d=1 mod t,d=847 公钥 KU={e=63,n=2773}, 私钥KR={d=847, p=47, q=59} 接下来我们来一个实践,看看实际的操作: 这样 用perl简单穷举可以获得满主 e*d%t ==1的数d: C:\Temp>perl -e "foreach $i ( ){ print($i),last if $i*63&68==1 }" 847 即d=847 最终我们获得关键的 n=2773 d=847 e=63

53 设消息M=244,对此进行认证,用私钥加密,公钥解密 加密:
c=M**d%n = 244**847 mod 2773=465 解密: m=c**e%n=465**63 mod 2773=244

54 2 数字签名 数字签名的概念 利用RSA密码实现数字签名 数字签名和认证有何区别和联系? 问题

55 2.1 数字签名概念 日常生活中的签名,盖章 数字签名满足的条件 签名者事后不能抵赖自己的签名 任何其他人不能伪造签名
如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证来确认其真伪。

56 2.1 数字签名概念(续) 需要解决的问题 A如何在文件M上签名? B如何验证A的签名真伪? A如何鉴别别人伪造自己的签名?

57 数字签名过程

58 2.2 利用RSA密码实现数字签名 签名: SA=D(M,KdA) = (MdA) mod n 用自己的私钥签名
验证: E(SA,keA)= (MdA)eA mod n =M 用发送方的公钥验证 Alice E D 密钥对 P C=Ekra(P) P=DKua(C) Bob kra kua

59 RSA的选择密文攻击 M3=M1*M2 mod n S1=(M1) dA mod n S2= (M2) dA mod n
TRUDY要伪造A对M3的签名,容易找M1和M2,使得 M3=M1*M2 mod n 设法让A对M1和M2进行签名 S1=(M1) dA mod n S2= (M2) dA mod n TURDY可以伪造: (S1S2) mod n =((M1) dA (M2) dA ) mod n =(M3)dA mod n =S3 主要措施有两条 采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名 决不对陌生人送来的随机文档签名

60 RSA数字签名的应用 PGP(Pretty Good Privacy) 相当好的隐私,是PGP公司的加密和/或签名工具套件
加密:IDEA算法;签名: RSA 免费 PGP可以解释为Pretty Good Privacy(汉语翻译:相当好的隐私),是PGP公司的加密和/或签名工具套件,使用了有商业版权的IDEA算法并集成了有商业版权的PGPdisk工具,有别于开源的GPG(GnuPG)。PGP的主要开发者为菲利普·齐默曼(Philip R. Zimmermann)。齐默曼在志愿者的帮助下,突破政府的禁止,于1991年将PGP在因特网上免费发布。

61 3 密钥管理 密钥的重要性(不言而喻) 近代密码学的基本原则 主要内容 传统密码体制的密钥管理 公开密钥体制的密钥管理
按照近代密码学的观点,密码系统的安全应该只取决于密钥的安全,而不取决于对算法的保密。

62 3.1 密钥管理原则 密钥管理 一般来说,从密钥管理途径进行攻击比单纯破译密码算法的代价小得多。因此,引入密钥管理机制,进行有效的控制,对于提高网络及系统的安全性和抗攻击性非常重要 全程安全原则 密钥的产生、存储、分配、组织、使用、停用、变换、更新和销毁的全过程

63 3.1 密钥管理原则(续) 最小权利原则 指“应当只分发给用户进行某一事务处理所需的最小的密钥集合"。 包括2个含义:
一方面给予主体“必不可少”的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作; 另一方面,它只给予主体"必不可少"的特权,这就限制了每个主体所能进行的操作。 最小特权原则一方面给予主体"必不可少"的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;另一方面,它只给予主体"必不可少"的特权,这就限制了每个主体所能进行的操作。

64 3.1 密钥管理原则(续) 责任分离原则 密钥分级原则 一个密钥应当专职一个功能,不要让一个密钥兼任几种功能 主密钥,二级密钥,初级密钥
高级密钥保护低级密钥 好处:可减少保护密钥的数量,又可简化密钥的管理工作 最小特权原则一方面给予主体"必不可少"的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;另一方面,它只给予主体"必不可少"的特权,这就限制了每个主体所能进行的操作。

65 密钥更换原则 密钥应当有足够的长度 密码体制不同,密钥管理也不相同
密钥必修按时更新:即使是采用很强的密码算法,使用时间越长,攻击者获得的密文越多,破译密码的可能性越多 最理想的是一个密钥只使用一次(一次一密) 密钥应当有足够的长度 密码安全的必要条件是密钥有足够的长度。 密钥越长,密钥空间越大,破译的可能性越小 密码体制不同,密钥管理也不相同 传统密码体制与公开密码体制性质不同,密钥管理也不同

66 3.2 传统密码的密钥管理 1、密钥组织:将密钥分为三级: 初级密钥 二级密钥 主密钥 (高级密钥 ) 高级 密钥 二级密钥 初级密钥

67 我们称直接用于加解密数据(通信,文件)的密钥为初级密钥,记为K 。其中:
①初级密钥 我们称直接用于加解密数据(通信,文件)的密钥为初级密钥,记为K 。其中: 用于通信保密的初级密钥为初级通信密钥,并记为Kc 。 称用于保护会话的初级密钥为会话密钥(Session Key),记为Ks 。 称用于文件保密的初级密钥为初级文件密钥(File Key),记为Kf 。

68 说明: 初级密钥可通过硬件或软件方式自动产生,也可由用户自己提供。
初级通信密钥和初级会话密钥原则上采用一个密钥只使用一次的“一次一密”方式。 初级通信密钥的生存周期很短。 初级文件密钥与其所保护的文件有一样长的生存周期。 初级密钥必须受更高一级的密钥保护,直到它们的生存周期结束为止。

69 ②二级密钥 二级密钥(Secondary Key)用于保护初级密钥,记作KN ,这里N表示节点,源于它在网络中的地位。
当二级密钥用于保护初级通信密钥时称为二级通信密钥,记为KNC。 当二级密钥用于保护初级文件密钥时称为二级文件密钥,记为KNF。

70 二级密钥可经专职密钥安装人员批准,由系统自动产生。
可由专职密钥安装人员提供。 二级密钥的生存周期一般较长,它在较长的时间内保持不变。 二级密钥必须接受更高级的密钥的保护。

71 ③主密钥 主密钥(Master Key)是密钥管理方案中的最高级密钥,记作KM 。 主密钥用于对二级密钥和初级密钥进行保护。
主密钥由密钥专职人员随机产生,并妥善安装。 主密钥的生存周期很长。

72 2、密钥产生 对密钥的一个基本要求是要具有良好的随机性:长周期性、非线性、等概性以及不可预测性等。
一个真正的随机序列是不可再现的。任何人都不能再次产生它(真随机) 高效地产生高质量的真随机序列,并不是一件容易的事。

73 ①主密钥的产生 主密钥应当是高质量的真随机序列。真随机数应该从自然界的随机现象中提取。
基于力学噪声源:利用硬币、骰子等抛散落地的随机性产生密钥。例如,用1表示硬币的正面,用0表示硬币的反面,选取一定数量随机地抛撒并纪录其落地后的状态,便产生出二进制的密钥。这种方法效率低,而且随机性较差。 基于电子学噪声源:利用电子方法对噪声器件(如真空管、稳压二极管等)的噪声进行放大、整形处理后产生密钥随机序列 基于混沌理论:混沌理论的方法,不仅可以产生噪声,而且噪声序列的随机性好,产生效率高 通常利用硬币、骰子等抛散落地的随机性产生密钥。例如,用1表示硬币的正面,用0表示硬币的反面,选取一定数量随机地抛撒并纪录其落地后的状态,便产生出二进制的密钥。这种方法效率低,而且随机性较差。 这种方法利用电子方法对噪声器件(如真空管、稳压二极管等)的噪声进行放大、整形处理后产生密钥随机序列。根据噪声迭代的原理将电子器件的内部噪声放大,形成频率随机变化的信号,在外界采样信号CLK 的控制下,对此信号进行采样锁存,然后输出信号为“0”、“1”随机的数字序列。 在混沌现象中,只要初始条件稍有不同,其结果就大相径庭,难以预测,而且在有些情况下,反映这类现象的数学模型又是十分简单,甚至一维非线性迭代函数就能显示出这种混沌特性。因此利用混沌理论的方法,不仅可以产生噪声,而且噪声序列的随机性好,产生效率高。

74 ②二级密钥的产生 两种方法: 第一种方法:可以象产生主密钥那样产生真随机的二级密钥。
在主密钥产生后,可借助于主密钥和一个强的密码算法来产生二级密钥。 第二种方法:用产生主密钥的方法产生两个真随机数RN1,RN2,再产生一个随机数RN3,然后分别以它们为密钥对一个序数进行四层加密,最后产生出二级密钥KN 。 KN=E(E(E(E(i,RN1),RN2),RN1),RN3) 要想根据序数 i预测出密钥KN,必须同时知道两个真随机数RN1,RN2和一个随机数RN3,这是极困难的。

75 ③初密钥的产生 为了安全和简便,通常总是把随机数直接视为受高级密钥加密过的初级密钥: RD=E(Ks,KM)或 RD=E(Kf,KM),
RD=E(Ks,KNC)或 RD=E(Kf,KNF)。 使用初级密钥时,用高级密钥将随机数RN解密: Ks=D(RD,KM)或 Kf=D(RD,KM), Ks=D(RD,KNC)或 Kf=D(RD,KNF) 好处:安全,一产生就是密文。 方便

76 ④伪随机数的产生 二级密钥和初级密钥的产生都需要伪随机数。 一般采用基于强密码算法的产生方法(DES,AES)
伪随机性:长周期,均匀分布,独立性,非线性 一般采用基于强密码算法的产生方法(DES,AES) ANSI X9.17(基于3DES)

77 ANSI X9.17 密钥产生的过程 对于128位和192位密钥,可以通过上法生成几个64位的密钥后,串接起来即可 时间戳 随机
密钥(64bit) 是一个秘密的64位种子,对于128位和192位密钥,可以通过上法生成几个64位的密钥后,串接起来就可以 V0是一个秘密的64bit种子 对于128位和192位密钥,可以通过上法生成几个64位的密钥后,串接起来即可

78 2、密钥分配 密钥分配自古以来就是密钥管理中重要而薄弱的环节。 过去,密钥的分配主要采用人工分配。
现在,应当利用计算机网络实现密钥分配的自动化。

79 ①主密钥的分配 一般采用人工分配主密钥,由专职密钥分配人员分配并由专职安装人员妥善安装。

80 ②二级密钥的分配 由专职密钥分配人员分配并由专职安装人员安装。虽然这种人工分配和安装的方法很安全,但是效率低。
另一种方法是直接利用已经分配安装的主密钥对二级密钥进行加密保护,并利用计算机网络自动传输分配。两种方案:

81 方案1 产生KNC 网络信道 C=E(KNC,KM) KNC =D(C,KM) C 二级通信密钥 主密钥KM 主密钥KM 发端 收端

82 方案2 网络信道 产生RN RN RN KNC =D(RN,KM) KNC =D(RN,KM) 主密钥KM 主密钥KM 发端 收端

83 ③初级密钥的分配 通常总是把一个随机数直接视为是二级密钥)加密过的初级密钥,这样初级密钥一产生便成为密文形式。
发端直接把密文形式的初级密钥通过计算机网络传给收方,收端用高级密钥解密便获得初级密钥。

84 网络信道 RN KN KN KC=D(RN,KN) KC=D(RN,KN) KC KC 发端 收端 产生随机数RN 接受随机数RN 二 级
KN KN KC=D(RN,KN) KC=D(RN,KN) KC KC 发端 收端

85 3、密钥的存储 密钥的安全存储就是要确保密钥在存储状态下的秘密性、真实性和完整性。 安全可靠的存储介质是密钥安全存储的物质条件,
安全严密的访问控制是密钥安全存储的管理条件。 密钥安全存储的原则是不允许密钥以明文形式出现在密钥管理设备之外。 密钥的存储形态有以下几种: 明文形态:明文形式的密钥。 密文形态:被密钥加密密钥加密过的密钥。 分量形态:密钥分量不是密钥本身,而是用于产生密钥的部分参数。

86 ①主密钥的存储 主密钥是最高级的密钥,所以它只能以明文形态存储,否则便不能工作。
要求存储器必须是高度安全的,物理上是安全的,而且逻辑上也是安全的。 通常是将其存储在专用密码装置中。

87 ②二级密钥的存储 二级密钥可以以明文形态存储,也可以以密文形态存储。 如果以明文形态存储,则要求存储器必须是高度安全的。
如果以密文形态存储,则对存储器的要求可适当降低。 通常采用以高级密钥加密的形式存储二级密钥。这样可减少明文形态密钥的数量,便于管理。

88 ③初级密钥的存储 初级文件密钥和初级会话密钥是两种性质不同的初级密钥,因此其存储方式也不相同。
初级文件密钥的生命周期与受保护的文件的生命周期一样长。因此初级文件密钥需要妥善的存储。一般采用密文形态存储,通常采用以二级文件密钥加密的形式存储初级文件密钥。 初级会话密钥按“一次一密”的方式工作,使用时动态产生,使用完毕后即销毁,生命周期很短。因此,初级会话密钥的存储空间是工作存储器,应当确保工作存储器的安全。

89 3.3 公开密码体制的密钥管理 与传统密钥的区别 传统密码体制只有一个密钥,加密钥等于解密钥,故密钥的秘密性、真实性和完整性都必须保护。
公开密码体制中密钥有两个,加密钥不等于解密钥,加密钥可以公开 加密钥(公钥)的完整性和真实性要严格保护(为什么?) 解密钥(私钥)的秘密性,完整性和真实性都要保护

90 一 公开密码体制的密钥产生 传统密码体制的密钥本质是一个随机数,故对随机性的要求较高
公开密钥密码体制本质是一个单向陷门函数,是建立在数学难题基础上的,密钥必须满足该数学难题的要求 单向陷门函数是有一个陷门的一类特殊单向函数。它首先是一个单向函数,在一个方向上易于计算而反方向却难于计算。但是,如果知道那个秘密陷门,则也能很容易在另一个方向计算这个函数。即已知x,易于计算f(x),而已知f(x),却难于计算x。然而,一旦给出f(x)和一些秘密信息y,就很容易计算x。在公开密钥密码中,计算f(x)相当于加密,陷门y相当于私有密钥,而利用陷门y求f(x)中的x则相当于解密。

91 公开密钥密码的密钥产生(续) RSA 密码体制(回忆) 秘密钥 p, q, d, 公开钥 n, e 要求 p和q至少有512位
e和d不能太小

92 二 公开密码体制的密钥分配 如果公钥的真实性和完整性受到危害,则基于公钥的各种应用的安全将受到危害。
和传统密码一样,公开密码体制也需要进行密钥分配。但是,公钥密码的密钥分配与传统密码体制的密钥分配有着本质的差别。 对于私钥:分配时必须确保秘密性、真实性和完整性。 对于公钥:公开的,因此不需确保秘密性,却必须确保真实性和完整性,绝对不允许攻击者替换或篡改用户的公钥。 如果公钥的真实性和完整性受到危害,则基于公钥的各种应用的安全将受到危害。

93 A KeA B KeB C KeC 攻击者C篡改PKDB C冒充A欺骗B的攻击方法:
①攻击者C在PKDB中用自己的公钥KeC替换用户A的公钥KeA 。 ②C用自己的解密钥签名一个消息冒充A发给B。 ③B验证签名:因为此时PKDB中A的公开钥已经替换为C的公开钥,故验证为真。 于是B以为攻击者C就是A。 结果导致: ④若B要发送加密的消息给A,则B要用A的公开钥进行加密,但A的公开钥已被换成C的公开钥,因此B实际上是用C的公开钥进行了加密。 ⑤C从网络上截获B发给A的密文。由于这密文实际上是用C的公开钥加密的,所有C可以解密。A反而不能正确解密。 签名:用私钥加密,公钥解密 PKDB:公共密钥数据库

94 上述攻击成功的原因: ①对存入PKDB的公开钥没有采取保护措施,致使公钥被替换而不能发现;
②存入PKDB的公钥与用户的标识符之间没有绑定关系,致使A的公钥替换成C的公钥后不能发现,公钥与用户的标识符之间的对应关系被破坏。 采用数字签名技术可以克服上述两个弱点,确保公开钥的安全分配。--公钥证书

95 公钥证书PKC(Public Key Certificate)
公钥与用户的标识符之间的对应关系 公钥证书PKC(Public Key Certificate) 简单公钥证书示意图 主体身份信息 主体的公钥 CA的信息 其它信息 CA的签名 签名 公钥证书 CA的私钥 PKC是一种包含持证主体标识、持证主体公钥等信息,并由可信任的签证机构(CA)签署的信息集合。 公钥证书主要用于确保公钥及其与用户绑定关系的安全。这个公钥就是证书所标识的那个主体的合法的公钥。 公钥证书的持证主体可以是人、设备、组织机构或其它主体。 公钥证书能以明文的形式进行存储和分配。 PKC:公开钥与用户的标识符之间的对应关系 日常生活中有许多使用证书的例子,例如汽车驾照。驾照由可信的公安机关签发,以标识驾驶员的驾驶资格。由于有公安机关的签章,任何人都可以验证驾照的真实性。又由于驾照上印有驾驶员的照片,从而实现驾驶员与驾照之间的严格绑定。 问题:如何验证证书真伪?

96 使用公钥证书的主要好处是: ①用户只要获得其它用户的证书,就可以获得其它用户的公钥。 ②用户只要获得CA的公钥,就可以安全地认证其它用户的公钥。 ③因此公钥证书为公钥的分发奠定了基础,成为公钥密码在大型网络系统中应用的关键技术。 这就是电子政务、电子商务等大型网络应用系统都采用公钥证书技术的原因。

97 X.509版本3的证书结构 版本号 证书序列号 签名算法标识符 颁发者的名称 有效期(不早于/不晚于) 主体名称 主体的公钥信息
颁发者唯一标识符(可选) 主体唯一标识符(可选) 扩展项(可选) 颁发者的签名 版本:标识不同版本的证书; 序列号:标识证书唯一性的整数; 签名算法标识符:标识签名算法及参数; 颁发者名字:创建和签名该证书的CA的X.500名字; 有效期:两个日期组成:起始时间和结束时间; 主体名:证书提及的用户名; 主体的公钥信息:主体的公钥及这个密钥使用算法的标识符,和算法的相关参数; 颁发者的唯一标识符:可选的唯一字串用于证实CA,如果该X.500名字已经被其它实体使用。 主体的唯一标识符:可选的唯一字串用于证实主体,如果该X.500名字已经被其它实体使用。 扩展:扩展字段,在第三版使用。 签名:CA密钥加密的其它所有字段的散列值。 扩展类型 关键/非关键 扩展字段值 扩展类型 关键/非关键 扩展字段值 …… …… …… 扩展类型 关键/非关键 扩展字段值

98 3.4公钥基础设施PKI 公钥证书是PKI中最基础的组成部分。
公开密钥基础设施提供一系列支持公开密钥密码应用(加密与解密、签名与验证签名)的基础服务。 公钥证书是PKI中最基础的组成部分。 此外,PKI还包括签发证书的机构(CA),注册登记证书的机构(RA),存储和发布证书的目录,密钥管理,时间戳服务,管理证书的各种软件和硬件设备,证书管理与应用的各种政策和法律,以及证书的使用者。所有这些共同构成了PKI。 本质上,PKI是一种标准的公钥密码体制的密钥管理平台。

99 1、签证机构CA 在PKI中,CA负责签发证书、管理和撤销证书。CA严格遵循证书策略机构所制定的策略签发证书。CA是所有注册用户所信赖的权威机构。 CA在给用户签发证书时要加上自己的签名,以确保证书信息的真实性。为了方便用户对证书的验证,CA也给自己签发证书。这样,整个公钥的分配都通过证书形式进行。 对于大范围的应用,一个CA是远远不够的,往往需要许多CA。 例如对于某一行业,国家建立一个最高级的CA,称为根CA。 每个省建立一个省CA,每个地市也都可以建立CA,甚至一个企业也可以建立自己的CA。 不同的CA服务于不同的范围,履行不同的职责

100 2、注册机构RA 接收证书申请人的注册信息,并对其合法性进行认证; 批准或拒绝证书的申请; 批准或拒绝恢复密钥的申请;
RA(Registration Authority)是专门负责受理用户申请证书的机构。根据分工,RA并不签发证书,而是负责对证书申请人的合法性进行认证,并决定是批准或拒绝证书申请。 RA的主要功能如下: 接收证书申请人的注册信息,并对其合法性进行认证; 批准或拒绝证书的申请; 批准或拒绝恢复密钥的申请; 批准或拒绝撤销证书的申请; 对于一个小范围的系统,由CA兼管RA的职能是可以的。但随着用户的增多,CA与RA应当职责分开。 申请注册有不同的方式,有在线的方式和离线的方式。在INTERNET环境中可以WEB浏览器方式进行在线注册。注册的过程是用户与CA建立信任关系的一个重要步骤。

101 3、证书的签发 经过RA的注册批准后,便可向CA申请签发证书。与注册方式一样,向CA申请签发证书可以在线申请,也可以离线申请。特别是在INTERNET环境中可以WEB浏览器方式在线申请签发证书,越来越受到欢迎。 CA签发证书的过程如下: 用户向CA提交RA的注册批准信息及自己的身份等信息(或由RA向CA提交); CA验证所提交信息的正确性和真实性; CA为用户产生密钥(或由用户自己产生并提供密钥),并进行备份; CA生成证书,并施加签名; 将证书的一个副本交给用户,并存档入库。

102 4、证书目录 为了方便证书的查询和使用,CA采用证书目录的方式集中存储和管理证书。通常采用建立目录服务器证书库的方式为用户提供证书服务。
证书目录也是非保密的。

103 5、证书的认证 证书认证主要包括以下内容: ① 验证证书上的CA签名是否正确。 ② 验证证书内容的真实性和完整性。
③ 验证证书是否处在有效期内(由证书里的时间参数来限定有效期)。 ④ 验证证书是否被撤销或冻结; ⑤ 验证证书的使用方式是否与证书策略和使用限制相一致。

104 6、证书的撤销 每个证书都有一个有效使用期限,有效使用期限的长短由CA的政策决定。有效使用期限到期的证书应当撤销。
证书的公钥所对应的私钥泄露,或证书的持证人死亡,证书的持证人严重违反证书管理的规章制度等情况下也要撤销证书。 和证书的签发一样,证书的撤销也是一个复杂的过程。证书的撤销要经过申请、批准、撤销三个过程。

105 7、信任模型 对于大范围的PKI(如一个行业或一个地区,甚至一个国家。),一个CA也是不现实的,往往需要许多CA。
证书用户、证书主体、各个CA之间的证书认证关系称为PKI的信任模型。 人们已经提出了树(层次)模型、森林模型等多种信任模型。


Download ppt "第2讲 密码学简介 苏兆品."

Similar presentations


Ads by Google