公钥密码体制

对称密码算法中存在的问题

  在对称加密算法中,在进行加密解密时,通信双方必须共享同一个密钥,而这个共享的密钥随着时间的推进或者是某种原因需要进行更新。

1、密钥更新共享的方式

  密钥更新共享的方式有以下几种类型:
(1)A 选择密钥并手工传递给 B
   在这样的一个情境中,A 和 B都是确实存在且可信的。而在互联网环境中,A 和 B 之间要建立信任关系,会很困难。

(2)第三方 C 选择密钥分别手工传递给 A , B
  在复杂的互联网环境中,C 如何将密钥安全的分发给 A和B,要保证其安全性也很困难。

(3)用 A , B 原有共享密钥传送新密钥
  这是一种相对安全的方式,但是互联网环境中需要A和B要有一份复杂的密钥交换协议,才可以实现新密钥的共享。

(4)与 A , B 分别有共享密钥的第三方 C 传送新密钥给 A 和(或) B
  此过程也需要一份复杂的密钥交换协议来确保C能够将密钥安全的分发给 A 和 B。

2、密钥管理的困难性

  除了密钥的更新问题困难以外,还有对密钥管理的问题仍然存在。在对称密码算法中必须要对密钥进行管理,但是对密钥的管理又十分的困难。
(1)密钥管理量的困难

  • 例如:

  N 个用户集需要 N(N-1)/2 个共享密钥,当用户量增大时,密钥空间急剧增大。

  • n = 100 时, C(100,2) = 4,995
  • n = 5000时, C(5000,2) = 12,497,500

(2)数字签名的问题
  传统加密算法无法实现抗抵赖的需求。在对称加密算法中,共享的密钥是通信双方都知道的 ,所以无法使用共享的密钥来对对方的身份进行确认。
  由于以上的种种问题,所以提出了公钥密码算法。

公钥密码

  公钥密码又称为双钥密码和非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出。

1、公钥密码

公钥密码算法的两个密钥
  加密算法包括两个密钥:一个公开(公钥);一个保密(私钥) 。所以在公钥密码体制中,每个用户拥有两个密钥,公钥用于公开,私钥用于本地保存。
  在公钥密码体制中,其加密与解密由不同的密钥完成的。如果使用公钥进行加密,就可以使用私钥进行解密,同理使用私钥进行加密,就可以通过公钥进行解密。

  • 加密: m–>c : c = EK(m)
  • 解密: c–>m : m = DB© = DB(EK(m))

   知道加密算法,从加密密钥得到解密密钥在计算上是不可行的 。因为公钥需要公布,算法也要公布,如果知道另一个密钥,则不能保证算法的安全性。
   两个密钥中任何一个都可以用作加密而另一个用作解密(不是必须的) 。

  • m = DB(EK(m)) = EK(DB(m))
2、数字签名

   使用私钥进行加密,在公钥密码体制中是比较特殊的。因为公钥是公开的,如果用户使用私钥进行加密,公钥在网上进行传递,那么所有的用户在得到公钥之后都能对加密的信息进行解密。
   一般来说,用户用私钥进行加密,信息都不具备保密性,所以使用私钥进行加密,目的不是保证信息的机密性,而是用于对用户的身份进行认证,这种使用私钥进行加密的过程称之为数字签名。

3、公钥密码体制中的加密过程

(1)公钥密码的应用过程–加密

  • 用户拥有密钥对( k,k’ )
  • 公钥k公开,私钥k’保密
  • Alice–>Bob:c=EkB( m )
  • Bob:Dk’B( c ) = Dk’B( EkB( m ) ) = m

   Alice要向Bob传递一条信息,就需要使用公钥K对信息进行加密。Bob 得到加密信息后可以使用私钥进行解密,得到明文。

(2)公钥密码的应用过程–认证

  • 用户拥有密钥对( k,k’ )
  • 公钥k公开,私钥k’保密
  • Alice–>Bob:c=Ek’A( m )
  • Bob:DKA( c )=DkA( EkA( m ) ) = m

   Alice要向Bob证明自己的身份,因此,使用私钥来对消息进行签名(加密),Bob得到Alice所发送来的信息,从网上找到Alice的公钥,对其进行解密,可以还原出明文。这样一个过程,Bob可以简单地对Alice进行认证。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值