第4章-公钥密码算法课件.ppt
《第4章-公钥密码算法课件.ppt》由会员分享,可在线阅读,更多相关《第4章-公钥密码算法课件.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、公钥密码体制概述1976年Diffie和Hellman的“New directions in cryptography”导致了密码学上的一场革命,开创了公钥密码学的新纪元。他们首次证明了在发送端和接收端无密钥传输的保密通信是可能的。1977年Rivest,Shamir和Adleman提出了RSA公钥密码算法。90年代逐步出现椭圆曲线密码等其他公钥算法。n公钥公钥密码体制,又称为双钥双钥或非对称非对称密码体制密码系统有两个密钥,即加密密钥和解密密钥不同,从一个难于推出另一个。这两个密钥一个是公开的,一个是秘密的,分别称为公开密钥和私有密钥,公开密钥是对外公开的,即所有的人都可知,私有密钥是只有特
2、定的用户方能拥有。1公钥密码体制概述公钥密码体制与私钥密码体制的最大不同点就是:加密密钥和解密密钥不同,从一个难于推出另一个。在公钥密码体制中,将这两个不同的密钥区分为公开密钥PK(Public Key)和私有密钥SK(Secrete Key)。六个组成部分:明文、密文;公钥、私钥;加密算法、解密算法2公钥密码体制模型A加密B解密A加密B解密明文明文明文密文密文加密模型加密模型认证模型认证模型B的公钥B的私钥A的私钥A的公钥明文3公钥密码体制的特点加密和解密能力分开。可以实现多个用户加密的消息只能由一个用户解读(用于公共网络中实现保密通信)。可实现只能由一个用户加密消息而使多个用户可以解读(可
3、用于认证系统中对消息进行数字签字)。无需事先分配密钥。重要特点仅根据密码算法和加密密钥来确定解密密钥在计算上不可行。有些算法如RSA还具有:两个密钥中的任何一个都可用来加密,另一个用来解密。优点:能很好解决私钥加密中由于密钥数量过多导致的管理难和费用高等问题,也不用担心传输中的私钥泄漏,保密性能优于私钥加密。缺点:加密算法复杂,加密速度难以达到理想状态。4公钥密码体制依赖的基础传统的对称密码体制依赖的基础是替代和置换两种转换思想。与对称密码体制不同的是,公钥密码体制依赖的基础是数学上的某类问题的求解困难。经典的公钥密码算法RSA、椭圆曲线密码算法ECC等都是依赖某类数学问题的,它们共同的特点是
4、基于某个单向陷门函数。单向陷门函数 y=fk(x)是指同时满足下列条件的一类可逆函数:5公钥密码体制依赖的基础 函数是一一映射关系,也就是说,对于每个函数值y,只有唯一的一个原象x与之对应;给定x与关键参数k,函数y=fk(x)很容易计算;给定y,存在某个关键参数k,在未知k时,由y计算出x非常困难,即在未知k的条件下,逆函数x=f-1k(y)的计算相当复杂,实际上是不可行的;在已知k时,对给定的任何y,则逆函数x=f-1k(y)很容易计算;给定y和参数k,无法从函数y=fk(x)推导出影响其逆函数f-1的关键参数k。设计任何一种公钥密码方案,所要做的工作就是寻找这样的单向陷门函数,其中陷门信
5、息就是私钥,也就是上面所列举的关键参数k。6公钥密码系统的特征 根据密码系统的组成以及公钥密码体制自身的特点,一个公钥密码系统可以表示为:加密算法E、解密算法D、公钥/私钥(PK/SK)对、明文M、密文C六个元素,且各元素必须要满足以下条件:7公钥密码系统的特征 密钥。要满足两点要求:公钥/私钥(PK/SK)对容易产生,且私钥除了生成密钥的用户自己知道之外,其他任何人都不可知;已知公钥PK,无法计算出私钥SK,即公钥密码系统所要满足的基本条件之一是从公开密钥无法通过计算得到私有密钥。8公钥密码系统的特征 加密算法E。要满足两点要求:已知公钥PK,对任何明文M,由E计算出密文C非常容易,即C=E
6、PK(M)易计算,或者已知私钥SK,对任何信息M,由E计算数字签名也非常容易,即 C=ESK(M)易计算。解密算法D。要满足两点要求:已知私钥SK,对任何密文C,由D容易计算出明文M,或者已知公钥PK,对任何用SK所做的数字签名C,容易通过D计算,得到签名前的信息;但是已知公钥PK、密文C,以及解密算法D,无法由三者推导出明文M或者私钥SK。即由公钥、密文和解密算法,推导明文和解密密钥都是计算不可行的。一个设计良好的密码系统,加密算法E和解密算法D应该都是公开的,该原则同样适用于公钥密码系统,公钥密码系统中唯一需要保密的就是私钥SK。9公钥密码体制加解密过程 假设网络上的两个用户Alice和B
7、ob需要进行秘密通信,为了防止攻击者Eve窃听信息,Alice和Bob选择使用公钥密码体制加密传输的信息。Alice是信息的发送方;Bob是信息的接收方。10公钥密码体制加解密过程 Alice与Bob产生公钥/私钥对:PKA/SKA,PKB/SKB。Alice与Bob通过某种机制公布各自的公钥PKA与PKB,例如将公钥放到一个公共的服务器,供其他用户查询。Alice通过查询公共服务器获得Bob的公钥PKB。如果Alice欲给Bob发送报文M,他就用Bob的公钥PKB加密报文。已知待加密的明文M以及Bob的公钥PKB,Alice很容易通过加密算法E计算出密文,即 C=EPKB(M)。(4)接收方
8、Bob收到Alice发送的信息之后,使用自己的私钥SKB解密报文。已知密文C和私钥SKB,Bob很容易通过解密算法计算出明文M,即 M=DSKB(C)。假设攻击者Eve窃听到Alice发送的报文,虽然Eve可查询获得Bob的公钥PKB,但从PKB确定Bob的私钥SKB 在计算上是不可行的,因此Eve无法获知Bob的私钥 SKB;仅知道公开密钥和密文,无法计算出明文M。因此攻击者Eve无法得到Alice发给Bob的密码信息。11公钥密码体制公钥密码技术的主要价值是解决下列问题:1)密钥分发;2)大范围应用中,数据的保密性和完整性;3)实体鉴别;4)不可抵赖性;公钥密码体制的应用可分为3类:a)加
9、密/解密:发送方用接收方的公钥对消息加密。b)数字签名:发送方用其私钥对消息签名。签名可以对整条消息加密或对消息的一个小的数据块加密来产生,其中该小的数据块是整条消息的函数。c)密钥交换:通信双方交换会话密钥。有几种不同的方法可用于密钥交换,这些方法都使用了通信一方或双方的私钥。12公钥密码体制有些算法可用于上述三种应用,而其他一些算法则只适用其中一种或两种应用。算法加密/解密数字签名 密钥交换RSA是是是椭圆曲线密码是是是Diffie-Hellman否否是DSS否是否13公钥密码体制 自1976年提出公钥密码系统以来,密码专家们已设计出多种公钥密码算法,这些算法的共同点都是基于某类数学难题,
10、通过找到该类问题的某个单向陷门函数实现对数据的加密和解密。依据所依赖的数学难题类别划分,主要有以下3类系统:基于大整数因子分解问题的公钥系统,典型代表是RSA算法;基于有限域椭圆曲线离散对数问题的公钥系统,典型代表是ECC算法;基于有限域离散对数问题的公钥系统,典型算法是DSA。14若干较有影响的公钥加密算法RSA算法:基于大整数素因子分解问题,目前认为是安全的。Merkle-Hellman背包体制:基于子集和问题,已证明不安全。McEliece体制:基于余代数编码中的线性解码问题,目前认为是安全的。ElGamal体制:基于有限域上的离散对数问题,目前认为有一定安全性。Chor-Rivest背
11、包体制:基于子集和问题,目前认为是安全的。椭圆曲线密码:基于椭圆曲线上的离散对数问题,是对ElGamal体制的改进,目前认为是安全的。有限自动机密码:基于有限自动机的求逆问题,目前认为有一定安全性。15RSA算法1976年Deffie和Hellman提出公钥密码系统思想之后,1977年麻省理工学院的Ron Rivest、Adi Shamir和Len Adleman三位学者研制了RSA(Rivest-Shamir-Adleman)公钥密码方案,该方案于1978年首次发表,从那以后至今,RSA算法是被使用最多的公钥密码方案。16RSA算法依赖的数学问题RSA算法基于“大整数质因子分解”非常困难这一
12、数学难题,这里大整数通常有几百位长。RSA算法依赖以下几个数论定理:模运算的性质:正整数n是素数,集合Zn=0,1,2.,(n-1)表示小于n的所有非负整数集合,则对于集合Zn 中的每一个非零整数wZn,均存在一个z,满足公式 w z=1 mod n,我们称z是w的乘法逆元,且n是它们的模。17RSA算法依赖的数学问题 费马定理:如果p是素数,a是不能被p整除的正整数,则:ap-1 1 mod p例如:P=7,a=2,则27-1=26=64,64 mod 7=118RSA算法依赖的数学问题欧拉函数:正整数n的欧拉函数是指小于n且与n互素的正整数个数,通常记为(n)。对于任一素数p,显然有:(p
13、)p 1,例如:设p=3,小于3且与3互素的正整数为1,2,因此(3)=2;类似地,当p=7时,小于7且与7互素的正整数为1,2,3,4,5,6,因此(7)=6。假定有两个不同的素数p和q,n是p与q之积,即 n=p q,则有如下公式关系:(n)=(pq)=(p)(q)=(p-1)(q-1)例如:取n=21,(21)=(3)(7)=(3-1)(7-1)=2 6=12,其中这12个整数是1,2,4,5,8,10,11,13,16,17,19,20 。19RSA算法依赖的数学问题欧拉定理:任何两个互素的整数a和n,有如下关系:a(n)1 mod n 例如:a=3;n=8;由(3)欧拉函数的定义,(
14、8)=4;则a(n)=34=81=108+1 1 mod 8 1 mod n20RSA算法依赖的数学问题()欧几里德(Euclid)算法:该算法主要的思想是:用一个简单的方法确定两个正整数的最大公因子,并且如果这两个整数互素,通过扩展该算法能确定它们各自的乘法逆元。21欧几里德(Euclid)算法设,求和的最大公因子(,)以及(,)中的与。令r0=a,r1=n,利用辗转相除法可得:r0=r1q1+r2,0 r2 r1 r1=r2q2+r3,0 r3 r2 rm-2=rm-1qm-1+rm,0 rm rm-1 rm-1=rmqm+rm+1,rm+1 =0 (a,n)=(r0,r1)=(r1,r2
15、)=(rm-1,rm)=(rm,0)=rm.由上述关系式可以得到(,)中的与22欧几里德(Euclid)算法23欧几里德(Euclid)算法24欧几里德(Euclid)算法25欧几里德(Euclid)算法26RSA算法密钥产生过程 随机选择两个秘密的大素数 p与q,且p q=n。为了增强算法的安全性,避免攻击者通过数学攻击的方法找到n的欧拉函数(n),从而攻破RSA密码方案,RSA算法的设计者建议:1.p与q长度应该只差几个数字,这样对于1024位的密钥来说,p与q都应该约位于区间1075,10100内;2.p-1 与 q-1 都应有一个大的素因子;3.gcd(p-1,q-1)应该较小。另外,
16、已经证明,若 en 且 d160 时受到青睐。46Zp上的椭圆曲线 不是所有的椭圆曲线都适合加密。y2=x3+ax+b是一类可以用来加密的椭圆曲线,也是最简单的一类。把 y2=x3+ax+b 这条曲线定义在Zp上,x,y和系数都属于Zp。这里p为大于3的素数,a,b Zp,4a3+27b2 0 mod p。记Zp上满足该方程的整数对(x,y)和无穷远点O组成的集合为Ep(a,b)。则基于该集合可定义一个有限阿贝尔群(4a3+27b2 0 mod p 等价于x3+ax+b 无重复因子)。Zp上的椭圆曲线就是由集合Ep(a,b)中的点组成。47Zp上的椭圆曲线48Zp上的椭圆曲线运算 Ep(a,b
17、)上的加法运算与定义在实数域上的椭圆曲线中描述的代数方法是一致的。对任何点P,Q Ep(a,b):P+O=P若P=(xP,yP),则 P+(xP,-yP)=O。点(xP,-yP)是P的负元,记为-P。例如,对 E23(1,1)上的点P=(13,7),有-P=(13,-7),而-7 mod 23=16.因此,-P=(13,16),该点也在E23(1,1)上。49Zp上的椭圆曲线运算 若P=(xP,yP)和 Q=(xQ,yQ),且P-Q,则R=P+Q=(xR,yR)由下列规则确定:xR=(2-xP xQ)mod p yR=(xP xR)-yP)mod p,其中 乘法定义为重复相加。如4P=P+P+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 算法 课件
限制150内