470 likes | 574 Views
第 3 章 公开密钥与数字签名. 公开密钥的诞生标志着现代密码学的诞生,它开拓出许多密码学新的研究领域比如签名、认证、密钥分配等。加密只是其应用之一。本章主要研究公钥加密方在保密与数字签名方面的应用。. 本章内容. 第 1 节 数学基础 第 2 节 公开密钥加密算法 RSA 第 3 节 数字签名算法 第 4 节 密钥分配算法 第 5 节 混合加密算法 第 6 节 密码学研究的若干前沿 . 小结.
E N D
第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 AssumptionsBACK
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
Prime Number 素数是这样一种数:大于1;它的因子只有1和它本身。 2是唯一的偶素数,其他素数均为奇数;素数是无限的。2365347734339和2756839-1都是素数。 判断一个数是不是素数是困难的。 BACK
最大公因数 (1) 两个数的公因(约)数; (2) 两个数的最大公因数; (3) 两个数互素:除了1以外没有共同的因子。 (4) 素数与它的倍数以外的任何数都是互素的。 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选定的一个标准算法,选择这个算法的主要要求与考虑因素包括:确保以最低的成本实现最有效的安全性和保密性;软件与硬件实现应当比较容易;应该不受专利的约束;签名函数与验证函数的效率应当比较高,应该能够在智能卡应用中有效地实现签名操作。在这些应用中签名操作应在计算能力适中的智能卡环境中进行,而验证过程可以在计算能力较强的环境中实现。
数字签名的研究热点 • 盲签名 • 群签名(团体签名) • 不可抵赖的数字签名 • 代理数字签名 • 失败终止签名 • 指定的确认人签名 BACK
密钥分配算法 前面我们在使用对称加密算法时,都假设Alice和Bob有一个共享的密钥,但我们回避了这样一个问题:如何使Alice和Bob共享一个密钥?这个问题不解决所有的对称密码算法都是空谈。这正是密钥分配要解决的问题。最初,密钥分配是通过面对面的协商来完成的、后来发展到由专人护送密钥。而这一切在以前都是可行的,在信息社会则远不能适应信息社会的需要。这就出现了密钥分配的研究课题。
Diffie-Hellman密钥交换算法 Diffie-Hellman密钥交换算法是第一个专门为密钥分配而设计的密码算法,在信息安全领域有重要的影响。该算法的数学基础就是离散对数假设。首先Alice和Bob通过公开信道协商一个的素数n和一个g. 其中g是模n的生成元。这两个整数不需要保密。 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