Transcript Chapter3
第3章 公开密钥与数字签名
公开密钥的诞生标志着现代密码学的诞
生,它开拓出许多密码学新的研究领域比
如签名、认证、密钥分配等。加密只是其
应用之一。本章主要研究公钥加密方在保
密与数字签名方面的应用。
本章内容
第1节 数学基础
第2节 公开密钥加密算法RSA
第3节 数字签名算法
第4节 密钥分配算法
第5节 混合加密算法
第6节 密码学研究的若干前沿
小结
本章讲述了公开密钥加密算法所用的数
学基础与RSA公开密钥加密算法,DSA数
字签名算法。所讲述的数学基础虽然在本
章中只有RSA和DSA两处用到,但这些基
础是现代密码学的基础,在有关的密码学
研究中非常重要,处处都能见到,所以必
须认证掌握。简单介绍了Diffie-Hellman密
钥交换算法、用RSA实现密钥交换,最后
介绍了混合密码系统。
作业题
1. 请你编一个因子分解的程序,程序要有计时
功能。用这个程序对下列三个数进行因子分
解,并记录分解三个数所用的时间。46631,
7836601,1981835783。
2. 选择n =3337, 加密密钥e =1019, 将陕西师范大
学用RSA公钥加密算法加密。(提示:将“陕
西师范大学”中的每个汉字都用区位码表示,
并加密相应的区位码)
3. 试证明DSA验证等式的正确性。
1 数学基础
(1) Module operation
(2) Prime number
(3) Great Common Divisor
(4) Inversing module operation
数学基础
(5) Fermat’s little theorem and Euclid
Function
(6) Factoring
(7) Discrete Logarithm
(8) Two Basic Assumptions
BACK
2. 公开密钥密码学
2.1 公开密钥密码学的历史与分类
2.2 RSA算法
2.3 公开密钥算法进行通信
2.4 公开密钥密码学的优势 BACK
RSA公开密钥算法
RSA (Ron Rivest, Adi Shamir, Leonard
Adleman) 公开密钥算法是公开密钥算法的
概念提出以后出现的第一个公开密钥算法,
它既能用于加密也能用于数字签名。在已经
提出的公开密钥算法中RSA算法是最容易理
解和实现的。RSA算法的数学基础是因子分
解假设。
RSA算法
RSA算法的原理非常简单,非常易于理解。但
计算起来却非常困难。通过三个精心选择的自然
数e、d 和 n进行加密和解密。加密过程为:
解密过程为:
下面主要研究如何选择自然数e、d 和 n。
BACK
BACK
模运算
BACK
Prime Number
素数是这样一种数:大于1;它的因
子只有1和它本身。
2是唯一的偶素数,其他素数均为奇
数;素数是无限的。2365347734339和
2756839-1都是素数。
判断一个数是不是素数是困难的。
BACK
最大公因数
(1) 两个数的公因(约)数;
(2) 两个数的最大公因数;
(3) 两个数互素:除了1以外没有共同
的因子。
(4) 素数与它的倍数以外的任何数都是
互素的。
BACK
求模逆元
BACK
费马小定理与欧拉函数
BACK
BACK
因子分解
对一个数进行因子分解就是将这个
数分解成若干素数的乘积。因子分解
是一个非常古老的问题,这个问题到
目前为止尚没有多项式时间算法。
目前的因子分解算法有:数域筛选
法;二次筛选法;椭圆曲线法;连分
式算法;试除法。
BACK
离散对数
BACK
两个基本假设
BACK
3. 数字签名算法
在文件上签名长期以来一直被用作身份
的证明,或者同意文件的内容。签名有如
下特征:(1)签名是可信的;(2)签名不
可伪造;(3)签名不可重用;(4)签名
文件是不可改变的;(5)签名是不可抵赖
的。主要的数字签名算法有RSA数字签名
和DSA数字签名。
用RSA进行数字签名
(1) Alice用她的私人密钥对文件加密,从
而对文件签名。
(2) Alice将签名与文件发送给Bob。
(3) Bob用Alice公钥解密,如果解密的结
果与传过来的文件完全相同,就表示
Alice确实对该文件进行过签名。
DSA算法
DSA算法是美国Digital Signature
Standard-DSS 中所规定的算法,这个
算法与相比有所不同:DSA只能用于签
名,不能用于加密与密钥分配;DSA比
RSA速度慢;DSA的密钥长度太短;
DSA选择过程没有公开等。但是最大的
优势在于DSA没有专利。美国政府不想
为数字签名算法支付专利费。
关于DSA
DSA是DSS选定的一个标准算法,选择这个
算法的主要要求与考虑因素包括:确保以最低
的成本实现最有效的安全性和保密性;软件与
硬件实现应当比较容易;应该不受专利的约束;
签名函数与验证函数的效率应当比较高,应该
能够在智能卡应用中有效地实现签名操作。在
这些应用中签名操作应在计算能力适中的智能
卡环境中进行,而验证过程可以在计算能力较
强的环境中实现。
算法所用到的参数
Alice对消息的签名过程
Bob对签名的验证过程
Bob进行下面的计算来验证签名
DSA的数学基础
DSA的数学基础
数字签名的研究热点
盲签名
群签名(团体签名)
不可抵赖的数字签名
代理数字签名
失败终止签名
指定的确认人签名
BACK
密钥分配算法
前面我们在使用对称加密算法时,都假设
Alice和Bob有一个共享的密钥,但我们回避了
这样一个问题:如何使Alice和Bob共享一个密
钥?这个问题不解决所有的对称密码算法都是
空谈。这正是密钥分配要解决的问题。最初,
密钥分配是通过面对面的协商来完成的、后来
发展到由专人护送密钥。而这一切在以前都是
可行的,在信息社会则远不能适应信息社会的
需要。这就出现了密钥分配的研究课题。
Diffie-Hellman密钥交换算法
Diffie-Hellman密钥交换算法是第一个
专门为密钥分配而设计的密码算法,在
信息安全领域有重要的影响。该算法的
数学基础就是离散对数假设。首先Alice
和Bob通过公开信道协商一个的素数n和
一个g. 其中g是模n的生成元。这两个整
数不需要保密。
Diffie-Hellman密钥交换协议如下:
Diffie-Hellman交换协议
RSA算法实现的密钥交换
因为在公开密钥算法中,Alice的公钥是公开
的,任何人都可以得到,所以当Bob需要和
Alice协商密钥时可以采用下面的协议:
(1) Bob从公钥数据库中找到Alice的公钥。
(2) Bob用Alice公钥加密选择的密钥k。
(3) Bob将经过加密的k发送给Alice。
(4) Alice用她自己的私有密钥解密k。
这样Alice和Bob就得到一个共享的密钥k.
BACK
用公开密码学加密通信
(1) Alice和Bob选用一个公开密码系统;
(2) Bob将她的公开密钥传送给Alice;
(3) Alice用Bob的公开密钥加密她的消息,
然后发送给Bob;
(4) Bob用他的私人密钥解密Alice的消息,
然后阅读消息。
BACK
公开密码学的优势与问题
优势:公开密钥算法很好地解决了密
钥分配问题;公开密钥算法既可以用于
加密也可以用于数字签名。
问题:公开密钥算法速度很低;公开
密钥算法对选择明文攻击很敏感。
BACK
密码学研究的若干前沿
Zero-knowledge proof
Bit commitment
Oblivious transfer
Secure multiparty computation
BACK
多方保密计算
数字世界的解决方案
数字世界的解决方案
混合密码系统
所谓混合密码系统就是利用公开密钥
算法进行密钥交换,用对称密码算法进行
实际数据的加密。这种系统克服了两者的
缺点,发挥了两者的优势。这是实际构建
加密通信系统时普遍被采用的方法。由此
还诞生了Public Key Infra-structure- PKI.
PKI已经成为国家的信息基础设施。
BACK