• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

密码算法学习笔记01基础知识-公钥密码和混合密码系统

武飞扬头像
fen_fen
帮助1

来自书籍<图解密码技术 第三版.pdf>

密码算法基础知识-公钥密码和混合密码系统

一、公钥密码

公钥密码--用公钥加密,用私钥解密。

公钥密码无需向接收者配送用于解密的钥匙,只需向发送者配送加密的钥匙,解决了解密密钥配送的问题。公钥密码是密码学历史上最伟大的发明。

1.1投币寄物柜的使用办法

1、首先,将物品放入寄物柜中,然后投入硬币并拔出钥匙,就可以将寄物柜关闭了。

(只要有硬币,任何人都可以关闭寄物柜,但寄物柜一旦被关闭,再怎么投币也无法打开)

2、关闭后的寄物柜,没有钥匙是无法打开的。打开寄物柜需要使用钥匙,而不是硬币。

硬币是关闭寄物柜的密钥,钥匙是打开寄物柜的密钥。

1.2密钥配送问题

1、什么是密钥配送问题?

只要使用对称密码,一定会遇到密钥配送问题(Key distribution problem)。因为发送密文,也要发送解密用的密钥给接收者。否则无法解密,发送过程中,解密密钥就容易被窃听。密钥必须要发送,但又不能发送,这就是堆成密码的密钥配送问题。

2、解决密钥配送问题的方法有以下几种。

2.1、通过事先共享密钥来解决。

密码配送最简单的一种解决办法,就是事先用安全的方式将密钥交给对方,这成为密钥的事先共享。

2.2、通过密钥分配中心(Key Distribution Center,KDC)来解决。

当需要进行加密通信时,密钥分配中心会生成一个通信密钥,每个人只要和密钥分配中心事先共享密钥就可以了。

2.3、通过Diffie-Hellman密钥交换来解决。

发送者和接收者需要交换一些信息,根据交换的信息,双方可以各自生成相同的密钥。

2.4、通过公钥密码来解决。

在对称密码中,加密密钥和解密密钥是相同的。但在公钥密码中,加密密钥和解密密钥是不相同的,只要拥有加密密钥,任何人都可以进行加密,但只有接收者自己有解密密钥,可以进行解密。

对称密码的密钥配送问题,可以通过使用公钥密码来解决。

1.3、公钥密码

1、什么是公钥密码

公钥密码(public-key cryptography)中,密钥分为加密密钥和解密密钥两种。

发送者用加密密钥对消息进行加密,解咒这用解密密钥对密文进行解密。

加密密钥:是发送者加密使用的。

解密密钥:接收者解密使用的。

加密密钥和解密密钥的区别:

1)发送者只需要加密密钥,加密密钥被窃听者获取也没没问题

2)接收者只需要解密密钥,解密密钥不可以被窃听者获取

两种密钥的关系:

解密密钥从一开始是由接收者自己保管的,因此只要将加密密钥发给发送者就可以解决密钥配送问题,根本不需要配送解密密钥。

公钥密码中,加密密钥一般是公开的。正是由于加密密钥可以任意公开,因此该密钥被称为公钥。解密密钥是绝对不能公开的,这个密钥只能由你自己来使用,因此成为私钥(private key)。私钥不可以被别人知道,也不可以将它发送给别人。

公钥和私钥一个一个地对应的,一对公钥和私钥称为密钥对(key pair)。由公钥进行加密的密文,必须使用与该公钥配对的私钥才能够解密。

密钥对中的两个密钥之间具有非常密切的关系---数学上的关系--因此公钥和私钥是不能分开单独生成的。

公钥密码和私钥密码需要生成一个包括公钥和私钥的密钥对,其中公钥会被发送给别人,而私钥则供自己使用。

2、公钥密码的流程

公钥密码的通信流程,举例:Alice是发送者,Bob是接收者。窃听者Eve依然能够窃听到他们的通信内容。

通信过程是由接收者Bob来启动的。

1)Bob生成一个包含公钥和私钥的密钥对。

   私钥由Bob自行妥善保管。

2)Bob将自己的私钥发送给Alice。

   Bob的公钥被窃听者Eve截获也没关系。

   将公钥发送给Alice,表示Bob请Alice用这个公钥对消息进行加密并发送给他。

3)Alice用 Bob的公钥对消息进行加密

   加密后的消息只有用Bob的私钥才能够解密。

   虽然Alice拥有Bob的公钥,但用Bob的公钥是无法对密文进行解密的

4)Alice将密文发送给Bob

   密文被窃听者Eve截获也没关系。Eve可能有用Bob的公钥,但是用Bob的公钥是无法进行解密的。

5)Bob用自己的私钥对密文进行解密

Alice和Bob之间传输的信息只有两个:Bob的公钥以及用Bob公钥加密的密文。由于Bob的私钥没有出现在通信内容中,因此窃听者Eve无法对密文进行解密。

以下是书中的图解:

学新通

窃听者Eve可能拥有Bob的公钥,但是Bob的公钥只是加密密钥,而不是解密密钥,因此窃听者Eve就无法完成解密操作。

1.4、RSA算法

RSA是一种公钥密码算法,它的名字由开发者Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的(Rivest-Shamir-Adleman)。

RSA算法可以被用于公钥密码和数字签名。

1、RSA加密

明文、密钥和密文都是数字。RSA加密用下列公式表示:

密文=明文E次方 mod N (RSA加密)

表示:RSA密文是明文的E次方求mod N的结果。

也就是将明文和自己做E次乘法,然后将其结果除以N求余数,这个余数就是密文。

这里面,E和N是RSA加密的密钥,E和N的组合就是公钥。

E是加密(Encryption)的首字母,N是数字(Number)的首字母。公钥是{E,N},将E和N用括号括起来。

2、RSA解密

明文、密钥和密文都是数字。RSA解密用下列公式表示:

明文=密文的D次方 mod N (RSA解密)

表示:密文的数字的D次方求mod N就可以得到明文。

也就是密文和自己做D次乘法,再对其结果除以N求余数,就可以得到明文。

这里解密使用的数字N和加密使用的数字N是相同的。数字D和数字N组合起来就是RSA的解密密钥,因此D和N的组合就是私钥。

D是解密(Decryption)的首字母,N是数字(Number)的首字母。

RSA算法,加密和解密的形式是相同的。加密是求"E次方的mod N",解密是"D次方的mod N"

作为解密密钥的D,和数字E有着相当紧密的联系。

RSA的加密和解密

密钥对

公钥

数E和数N

私钥

数D和数N

加密

密文=明文E次方 mod N   (明文的E次方除以N的余数)

解密

明文=密文的D次方 mod N     (密文的D次方除以N的余数)

由于N是公钥的一部分,是公开的,因此单独将D称为私钥也是可以的。

学新通

3、生成密钥对

由于E和N是公钥,D和N是私钥,因此求E、D和N这三个数就是生成密钥对。RSA密钥对的生成步骤如下:

1)求N

2)求L(L是仅再生成密钥对的过程中使用的数)

3)求E

4)求D

RSA密钥对的生成公式和图如下:

学新通

 公钥算法可以解决密钥配送问题,但无法解决中间人攻击问题。

小结:

使用公钥密码能够解决密钥配送问题。公钥密码是密码学届的一项革命性的发明,现代计算机和互联网中所使用的密码技术都得益于公钥密码。

对称密码通过将明文转换城复杂的形式来保证其机密性,相对的,公钥密码则是给予数据上困难的问题来保证机密性的。例如RSA就利用了大整数的质因数分解问题的困难度。因此,对称密码和公钥密码源于两种根本不同的思路。

即使有了公钥密码,对称密码也不会消失,公钥密码的运行速度远远低于对称密码,因此在一般的通信过程中,往往会配合使用这两种密码,既使用对称密码提高处理速度,用公钥密码解决密钥配送问题。这样的方式称为混合密码系统。

参考书籍:图解密码技术(第三版),第五章 公钥密码 P124-P162

二、混合密码系统

混合密码系统:用对称密码提高速度,用公钥密码保护会话密码

混合密码系统用对称密码来加密明文,用公钥密码来加密密码中所使用的密钥。通过使用混合密码系统,就能够在通信中将对称密码和公钥密码的优势结合起来。

2.1、对称密码和公钥密码

通过使用对称密码,能够在通信中确保机密性,但在实际中运用对称密码,就必须解决密钥配送问题。

公钥密码可以解决密钥配送问题。

公钥密码有两个很大的问题

1)公钥密码的处理速度远远低于对称密码。

2)公钥密码难以抵御中间人攻击。

对称密码可以解决公钥密码的问题1,问题2则需要对公钥进行认证。

2.2、混合密码系统

混合密码系统(hybrid cryptosystem)是将对称密码和公钥密码的优势相结合的方法。一般情况下,将两种不同的方式相结合的做法就称为混合(hybrid)。

混合密码系统中会先用快速的对称密码来对消息进行加密,这样消息就被转换为了密文,从而也就保证了消息的机密性。密钥的机密性可以用公钥密码来进行加密。由于对称密码的密钥一般比消息短,因此公钥密码的速度可以忽略了。

混合密码系统的本质:两步密码机制:将消息通过对称密码来加密,将加密消息时使用的密钥通过公钥密码来加密。

混合密码系统的组成机制

1)用对称密码加密消息

2)通过伪随机数生成器生成对称密码加密中使用的会话密钥

3)用公钥密码加密会话密钥

4)从混合密码系统外部赋予公钥密码加密时使用的密钥

混合密码系统运用了为随机数生成器,对称密码和公钥密码这三种密码技术。正是通过这三种密码技术的结合,才创造出了一种兼具对称密码和公钥密码优点的密码方式。

学新通

2.2.1、加密

学新通

1、明文、密钥、密文

最上边的消息:混合密码系统中的明文

最左边的接收者的公钥:混合密码系统中的密钥

最下方的“用公钥密码加密的会话密钥”和“用对称密码加密的消息”就是混合密码系统中的密文。

2、加密消息和加密会话密钥

加密消息:使用对称密码算法

加密会话密钥:使用公钥密码算法,公钥密码加密所使用的密钥是接收者的公钥。

会话密钥(session key)是指为本次通信而生成的临时密钥。它一般是通过为随机数生成器产生的。伪随机数生成器所产生的会话密钥同时也会被传递给右半部分,作为对称密码的密钥使用。

通过公钥密码对会话密钥进行加密,公钥密码加密所使用的密钥是接收者的公钥。

会话密钥是对称密码的密钥,同时也是公钥密码的明文。

2.2.2解密

学新通

1、分离

混合密码系统的密文是由"用公钥密码加密的会话密钥"和"用对称密码加密的消息"组成而成的,因此我们首先需要将两者分离。只要发送者和接收者事先约定好密文的结构,将两者分离的操作就很容易完成。

2、解密会话密钥

会话密钥可以用公钥密码进行解密,为此对我们就需要解密密钥,也就是接收者的私钥。除了持有私钥的人以外,其他人都不能够解密会话密钥。

解密后的会话密钥将被用作解密消息的密钥。

3、解密消息

消息可以使用对称密码进行解密,解密的密钥就是杠杆用公钥密码解密的会话密钥。

2.3混合密码系统的好处

混合密码系统解决了公钥密码速度慢的问题,并通过公钥密码解决了对称密码的密钥配送问题。

著名的密码软件PGP、以及网络上的密码通信使用的SSL/TLS都运用了混合密码系统。

2.4怎么才是高强度的混合密码系统?

混合密码系统运用了伪随机数生成器、对称密码和公钥密码,因此其中每一项技术要素的强度都必须很高。

2.4.1伪随机数生成器

混合密码系统种,伪随机数生成器产生会话密码。如果伪随机数生成器的算法很差,生成的会话密码就有可能被攻击者推测出来。

2.4.2对称密码

混合密码系统中,对称密码被用于加密消息。我们需要使用高强度的对称密码算法,并确保密钥具有足够的长度。需要使用合适的分组密码模式。

2.4.3公钥密码

混合密码算法中,公钥密码被用于加密会话的密钥,需要高强度的公钥密码算法,并确保密钥具有足够的长度。

混合密码运用了对称密码和会话密码两种密码方式,无论其中任何一方的密钥过短,都可能遭到集中攻击。因此对称密码和公钥密码的长度必须具备同等的强度。考虑到长期运用的情况,公钥密码要强度高于对称密码,因为公钥密码是保护会话密钥的,如果破译了,所有的会话密钥都被破译了。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgegfee
系列文章
更多 icon
同类精品
更多 icon
继续加载