公钥密码体制ppt

简介 相关

截图

公钥密码体制ppt

简介

这是公钥密码体制ppt,包括了公钥密码概述,公钥体制算法,公钥密码体制介绍,安全的公开密钥密码达到的功能,保护信息机密,实现不可否认功能等内容,欢迎点击下载。

公钥密码体制ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.

 第二讲    信息安全技术TAo红软基地

第2章  密码技术基础
第3章   对称密码体系
第4章  公钥密码体系
第5章  公钥基础设施PKI
第6章  信息隐藏技术
第四章  内容
4.1公钥密学概述
4.2 Diffie-Hellman 密钥交换算法
4.3  RSA算法
4.1  公钥密码概述
1976年,Diffie 和Hellmann提出了公开密钥密码体制(简称公钥体制),它的加密、解密密钥是不同的,也是不能(在有效的时间内)相互推导。所以,它可称为双钥密码体制。
公开密钥密码体制的产生,是密码学革命性的发展。一方面,为数据的保密性、完整性、真实性提供了有效方便的技术。另一方面,科学地解决了密码技术的瓶颈──密钥的分配问题。
公钥体制算法
第一个公钥体制是1977年由Rivest,Shamir,Adleman提出的,称为RSA公钥体制,其安全性是基于整数的因子分解的困难性。RSA公钥体制已得到了广泛的应用。
基于背包问题的Merkle-Hellman背包公钥体制
基于有限域上离散对数问题的ElGamal公钥体制
基于椭圆曲线的ECC密码体制
……
公钥密码体制介绍 
公钥密码体制加解密过程主要有以下几步 :
安全的公开密钥密码达到的功能
(1)简化密钥分配及管理问题 
 公钥体制用于数据加密时:
 用户将自己的公开(加密)密钥登记在一个公开密钥库或实时公开,秘密密钥则被严格保密。信源为了向信宿发送信息,去公开密钥库查找对方的公开密钥,或临时向对方索取公钥,将要发送的信息用这个公钥加密后在公开信道上发送给对方,对方收到信息(密文)后,则用自己的秘密(解密)密钥解密密文,读取信息。
可见,这里省去了从秘密信道传递密钥的过程。这是公钥体制的一大优点。 
(2)保护信息机密 
任何人均可将明文加密成密文,此后只有拥有解密密钥的人才能解密。
(3)实现不可否认功能 
公钥体制用于数字签名时:
信源为了他人能够验证自己发送的消息确实来自本人,他将自己的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与别人通信时,则用自己的加密密钥对消息加密──称为签名,将原消息与签名后的消息一起发送.
对方收到消息后,为了确定信源的真实性,用对方的解密密钥解密签名消息──称为(签名)验证,如果解密后的消息与原消息一致,则说明信源是真实的,可以接受,否则,拒绝接受。   
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B两个陌生人之间建立共享秘密密钥的公开密钥算法,称为Diffie-Hellman算法,它定义了公开密钥密码体制。它的目的是使得两个用户安全地交换一个密钥以便用于以后的报文加密,这个算法本身限于密钥交换的用途。许多商用产品都使用这种密钥交换技术。 
   在Diffie-Hellman密钥交换算法中的单向函数是模指数运算。它的逆过程是离散对数问题,其Diffie-Hellman算法的保密性基于求mod p解离散对数问题的困难。
离散对数
定义素数p的原元(原始根)为这样一个数,他能生成1~p-1所有数的一个数。现设a为p的原元,则
两两互不相同,构成一个1~p-1的全体数的一个排列。对于任意数b及素数p的原元a,可以找到一个唯一的指数 i,满足
则称指数i为以a为底、模p的b的离散对数。
1.基本原理
密钥交换过程
(1)选择一个素数P和它的一个原元a;
(2)通信方A选择自己的秘密密钥XA,并计算自己的公开密钥YA:
         YA=a XA mod P
(3)通信方B选择自己的秘密密钥XB,并计算自己的公开密钥YB:
         YB=a XB mod P
(4)通信双方A和B交换YA和YB;
(5)A独立计算会话密钥,B独立计算会话密钥KS;
(6)通信双方利用会话密钥KS进行通信。
2.交换示例
 为了计算简单,使用很小数字。设P=47和47的一个原元,a=3。
A选择秘密密钥XA=8,B选择秘密密钥XB=10,各自计算其公开密钥。
(1)双方各自计算
用户A计算:YA=3 8mod 47=6561 mod 47=28 mod 47
用户B计算:YB=3 10mod 47= 59049 mod 47=17 mod 47
2.交换示例(续)
(2)交换YA和YB;
(3)交换密钥后,A、B分别计算共享的秘密会话密钥KA、KB:
用户A计算:  KA=YB XA  mod 47=178  mod 47=4  mod 47
用户B计算:  KB=YA XB mod 47=2810  mod 47=4  mod 47
   A和B双方独立地决定采用数据“4”作为会话密钥。 
特征与不足
特征:
(1)仅当需要时才产生密钥,减少储存时间,减少受攻击的机会;
(2)除对全局参数的约定外,密钥交换不需要事先存在的基础结构。
不足:
(1)没有通信双方身份的信息;
(2)计算是密集性的,容易受到阻塞性攻击;
(3)没办法防止重放攻击;
(4)容易受到中间人攻击。
4.3  RSA算法
1978年由Ron Rivest、AdiShamir和Len Adleman发明。
“A method for obtaining digital signatures and public key  cryptosystem”
是一种块加密算法。
明文和密文在0~n-1之间,n是一个正整数
应用最广泛的公钥密码算法
只有美国专利,且已于2000年9月到期
1.RSA算法要点
算法产生一对密钥,一个人可以用密钥对中的一个加密消息,另一个人则可以用密钥对中的另一个解密消息。同时,任何人都无法通过公钥确定私钥,也没有人能使用加密消息的密钥解密。只有密钥对中的另一把可以解密消息。
2.RSA算法描述
加密: C=Me mod N, where 0≤M<N
解密: M=Cd mod N 
公钥为(e,N), 私钥为(d,N)
必须满足以下条件:
计算Me和Cd是比较容易的
由e和N确定d是不可行的
3.RSA 密钥产生过程
随机选择两个互质大素数 p, q (p,q 必须保密)
计算 n=p.q
计算z =(p-1)(q-1) 
随机选择整数 e,使得1<e<z且gcd(e,z)=1 
计算d :d=e-1 mod z 且 0≤ d ≤ n 
公布公钥: KU={e,n} 
保存私钥: KR={d,n} 
4.RSA 的使用
发送方要加密明文M:
获得接收方的公钥 KU={e,N} 
计算: C=Me mod N, where 0≤M<N
接收方解密密文C:
 使用自己的私钥 KR={d,N} 
计算: M=Cd mod N 
注意:M必须比N小
5.RSA例1
①取两个质数p=11,q=13,p和q的乘积为n=p×q=143,算出另一个数z=(p-1)×(q-1)=120;
②再选取一个与z=120互质的数,例如e=7,则
    公开密钥=(n,e)=(143,7)。
③ 对于这个e值,可以算出其逆:d=103。
④ 因为e×d=7×103=721,满足e×d mod z =1;即721 mod 120=1成立。
    则秘密密钥=(n,d)=(143,103)。
6.RSA例2
张小姐需要发送机密信息(明文)m=85给李先生,她已经从公开媒体得到了李先生的公开密钥(n,e)=(143,7),于是她算出加密值:
  c= me mod n=857 mod 143=123,并发送给李先生。
李先生在收到密文c=123后,利用只有他自己知道的秘密密钥计算:m= cd mod n =123103 mod 143=85,所以,李先生可以得到张小姐发给他的真正的信息m=85,实现了解密。
7.RSA算法的安全性
      依赖于大数分解,但是否等同于大数分解一直未能证明。不管怎样,分解n是最显然的攻击方法。 1994年4月26日,美国各大媒体报道:由RSA发明人在17年前出的129位数字已被因子分解,并破解了附带的密语:
    The magic words are squeamish ossifrage.
     目前,已能分解140位十进制的大素数。因此,模数n必须选大一些。
      RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般只用于少量数据加密。
8.RSA算法的脆弱性
不能证明RSA密码破译等同于大数因子分解
速度问题:增大p•q将使开销指数级增长
至少有9个明文,加密后不变,即me mod n=m
普通用户难于选择p、q。对p、q的基本要求:
p、q不相同,即不要太接近,又不能差别太大
p-1、q-1都有大素数因子,增加猜测φ(r) 难度
gcd( p-1,q-1)应当小
RSA算法的脆弱性(续)
4)p、q选择不当,则变换周期性、封闭性而泄密
   例:p=17,q=11,e=7,则n=187。
            设m=123,则
           C1=1237 mod 187=183
           C2=1837 mod 187=72
           C3=727 mod 187=30
           C4=307 mod 187=123
        明文m经过4次加密,恢复成明文。
总之,RSA对用户要求太苛刻,密钥不能常更换。
9.RSA算法的攻击方法
(1)选择密文攻击
(2)过小加密指数e
(3) RSA的公共模数攻击
(4)RSA的计时攻击法
10.  RSA的实用性
公开密钥密码体制有优点,但它的运算量大,计算复杂。 
结合对称密钥密码体制使用
RSA算法在互联网的许多方面得以广泛应用。
基于RSA算法的公钥加密系统具有数据加密、数字签名(Digital Signature)、信息源识别及密钥交换等功能。
11. RSA算法的优缺点
优点
密钥空间大
缺点 
1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
2)速度太慢。RSA速度比DES慢得多,无论是软件还是硬件实现,速度一直是RSA的缺陷。
3)为保证安全性,n 至少也要 600 bits以上,且还在增加。在运算上要付出代价。 
12. RSA算法和DES算法比较 
比较1      在加密、解密的处理效率方面,DES算法优于RSA算法。因为DES密钥的长度只有56比特,可以利用软件和硬件实现高速处理;RSA算法需要进行诸如200比特整数的乘幂和求模等多倍字长的处理,处理速度明显慢于DES算法。 
续(1)
比较2      在密钥的管理方面,RSA算法比DES算法更加优越。因为RSA算法可采用公开形式分配加密密钥,对加密密钥的更新也很容易,并且对不同的通信对象,只需对自己的解密密钥保密即可;DES算法要求通信前对密钥进行秘密分配,密钥的更换困难,对不同的通信对象,DES需产生和保管不同的密钥。
续(2)
比较3     在安全性方面,DES算法和RSA算法的安全性都较好,还没有在短时间内破译它们的有效的方法。
比较4      在签名和认证方面,DES算法从原理上不可能实现数字签名和身份认证,但RSA算法能够容易地进行数字签名和身份认证。 
13.  基于DES和RSA的加密方案
设发送方为A(加密密钥为Kea,解密密钥为Kda),接收方为B(加密密钥为Keb,解密密钥为Kdb)。
具体实现步骤:   (1)发送方A生成用于DES加密的密钥K,为了提高数据的安全性,每一个密钥K只用一次。     (2)发送方从密钥服务器中获取接收方的RSA的公开加密密钥Keb,并用Keb加密DES的密钥K形成密文Ck。 
续(1)
  (3)发送方A生成需要签名的信息,并用自己的RSA的解密密钥Kda和Keb共同形成数字签名。      (4)发送方用K加密明文和签名的信息,然后连同Ck一起形成密文C发往接收方。      (5)接收方接收到C后,先用自己的解密密钥Kdb解密出C中的DES密钥K,再利用K解密出明文和签名信息。  
续(2)
     (6)接收方用发送方的公开密钥Kea和自己的解密密钥Kdb对签名信息进行身份认证,然后对签名信息作适当处理后(例如填写自己的标识号等),再形成自己的数字签名信息发往发送方。         (7)发送、接收双方均删除DES密钥K。 
思考题
1 . 对称密码体制和非对称密码体制各有何优缺点?
2. 在使用RSA公钥中如果截取了发送给其他用户的密文C=10,若此用户的公钥为e=5,n=35,请问明文的内容是什么?
3. 已知有明文public key encryptions,先将明文以2个字母为组分成10块,如果利用英文字母表的顺序,即a=00,b=01…,将明文数据化。现在令p=53,q=58,请计算得出RSA的加密密文。
4. 试简要比较DES算法和RSA算法的优缺点。
5.假定A和B要用RSA方法进行一次保密又认证的通信。A的公钥是(nA, eA) =(33, 7), B的公钥是(nB, eB)=(15, 5)。
   (a) A和B的秘密密钥dA和dB各是什么?
   (b)A送消息m=2给B,保密又认证,密文C是什么?
   (c)B如何从C解得m? 
6.用Diffie-Hellman密钥交换方法在Alice和Bob之间建立一个会话密钥。Alice向Bob送去(p, α, αxA) = (719, 3, 191),Bob以543回答。Alice的秘密xA为16,求他们之间形成的会话密钥。
结束
选择密文攻击
由于RSA密文是通过公开渠道传播的,攻击者可以获取密文。
假设攻击者为H,密文收件人为T,H得到了发往T的一份密文c,他想不通过分解质因数的方法得到明文m。
换句话说,H需要 m = c^d 。
 为了恢复 m,H找一个随机数 r , r < n,当然他有T的公匙(e,n)。
他计算:     x=r^e % n (用 T 的公匙加密 r)     y=x*c % n (将临时密文x与c相乘)     t=r^-1 % n
A 知道RSA具有下面的一个特性:     如果 x=r^e % n,那么 r=x^d % n   因此他想办法让T对 y 用T自己的私匙签名(实际上就是把 y 解密了),然后将结 果 u=y^d % n 寄回给A。A只要简单地计算:     m = t*u % n
  上面结论的推导是这样的:     t*u % n = (r^-1)*(y^d) & n           = (r^-1)*(x^d)(c^d) % n           = (c^d) % n           = m   要防止这种攻击的办法就是不要对外来的随机信息签名,或者只对信息的MD5特征 值签名。在这里就很容易明白为什么要强调MD5的单向性了,因为MD5的结果是不能预定的,就是说A难以凑出一份刚好能产生 y 这样的MD5特征值的明文来让T签名。
过小的加密指数 e
e 是一个小数并不降低RSA的安全性。从计算速度考虑,e 越小越好。
可是,当明文也是一个很小的数时就会出现问题。例如取 e=3 ,而且明文 m比 n 的三次方根要小,那么密文 c = m^e % n 就会等于 m^3。这样只要对密文开三次方就可以得到明文。
RSA的公共模数攻击
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。
最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:     C1 = P^e1 mod n      C2 = P^e2 mod n      攻击者知道n、e1、e2、C1和C2,就能得到P。因为e1和e2互质,故用Euclidean算法能找到r和s,满足:r * e1 + s * e2 = 1 。
RSA的计时攻击法
由 Paul Kocher 发表的。大家可以发现,RSA的基本 运算是乘方取模,这种运算的特点是耗费时间精确取决于乘方次数。这样如果 A 能够监 视到RSA解密的过程,并对它计时,他就能算出d来。
解决方法:打破计算时间与操作数的关系,在计算前后作一些变换,是计算时间与操作数无关。
其他对RSA的攻击法
公共模数攻击:
它是指几个用户公用一个模数 n ,各自 有自己的 e 和 d,在几个用户之间公用 n 会使攻击者能够不用分解 n 而恢复明文。
阻塞性攻击
向攻击目标发送大量无用数据包和电子邮件或输送破坏性程序,使其阻塞、过载而崩溃的攻击手段。
重放攻击
攻击者尽管不了解通信协议的格式和内容,但只要能够对线路上的数据包进行窃听,就可以将收到的数据包再度发给接收方,导致接收方的信息系统无法正常的工作,或者造成数据错误。
中间人攻击
中间人攻击(man-in-the-middle attack)是指通过第三方进行网络攻击,以达到欺骗被攻击系统、反跟踪、保护攻击者或者组织大规模攻击的目的。
中间人攻击类似于身份欺骗,被利用作为中间人的的主机称为Remote Host(黑客取其谐音称之为“肉鸡”)。网络上的大量的计算机被黑客通过这样的方式控制,将造成巨大的损失,这样的主机也称做僵尸主机。

展开

同类推荐

热门PPT

相关PPT