由区块链引发的密码技术讨论(四)公钥

本文详细介绍了公钥密码的概念、流程,并以RSA算法为例,阐述了密钥生成、加密解密过程,强调了其可靠性和现实中的破解难题。通过一个简单的RSA实现,帮助理解公钥密码在实际应用中的工作原理。
摘要由CSDN通过智能技术生成

第四章 公钥

回顾第一章的场景:

小强与小红加密约会后,他需要订餐,但是他与餐厅客服没有见过面,不可能事先约定好密钥,虽然小强也可以使用与小红的密钥加密,但是餐厅客服也不清楚小强与小红之间的密钥“1999111120000520”,那通过邮件把密钥发送给餐厅客服?不行,这样也会被窃听者小白获取到。所以密钥怎么给别人?何时给别人?这个就是密钥配送问题了,由于加密与解密使用的是相同的密钥,所以称为对称密码。如果与其他人通信均使用相同的密钥,那么这个密钥其实也就没有那么的保密了,所以现代密码技术引入一个解决密钥配送的方法,叫做公钥密码。

4.1 什么是公钥密码

密钥分为加密密钥和解密密钥两种,发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。加密密钥是任意公开的,因此加密密钥称为公钥,解密密钥绝对不能够公开,因此解密密钥称为私钥。同时,公钥和私钥是一对,由公钥进行加密的密文,必须使用该公钥对应的私钥才能够解密,也就是说公钥和私钥之间具有数学上非常密切的关系。

4.2 公钥密码的流程

公钥密钥的流程如下图:

1、接收者餐厅客服生成一对密钥,一个公钥,一个私钥,私钥必须保密,自己保管好;

2、接收者餐厅客服公布公钥,可以全世界公布,也可以谁要给谁,注意这里是餐厅客服的公钥,不是小强的公钥,也不是私钥;

3、发送者小强使用餐厅客服的公钥和算法(算法一般都是公开了)对“晚上6点,情侣套餐”这个信息进行加密;

4、发送者小强发送密文,就是发邮件;

5、接收者餐厅客服收到密文后,使用自己的私钥,即餐厅客服私钥和算法对密文进行解密。

以上就是基本的流程,与正常理解有点不同,最需注意的一点:谁接收,用其钥。

那算法是什么?密钥对是什么?能够通过公钥破解出私钥吗?接下来我们以最常见的公钥密钥算法RSA为例进行讨论。

4.3 RSA

1977年的一天,阳光明媚,普照大地,三位麻省理工学院的数学家罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起设计了一种算法,可以实现非对称加密,这个算法用他们三个人的名字命名,叫做RSA算法。直至今日,在公开密钥加密和电子商业中RSA被广泛使用。从提出到现今的四十多年里,经历了各种攻击的考验,逐渐为人们接受。

1、密钥对的生成过程

第一步:随机选择两个不相等的质数p和q,注意p和q越大,就越难破解。我们这里为了演示方便,选择p=17,q=19。

第二步:计算p和q的乘积n。

第三步:计算n的欧拉函数φ(n)。

上一章我们介绍了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值