对称加密与非对称加密方法:利用RsaTest程序进行演示操作

对称加密与非对称加密方法

此篇文章参考于:https://blog.csdn.net/weixin_39190897/article/details/82229887
另外,进行加解密与签名验证的软件我已经上传至网盘:
https://pan.baidu.com/s/1QJoch8yxpqYXXkL_EoaxYw
通过软件进行实际操作,会对密码的加解密有更深入的理解

对称加密

。
对称加密方法较为简单,这也是我们平常所说的单钥加密方法,这种加密方法目前已经被破解,并不安全,在传送密文和密匙的过程中容易被攻击者截获。

接着打开软件我们可以看到**单钥加密方法(Cipher Algorithm)**有 DES(data encrypted standard) 等常见算法,操作软件即可了解简单的加密解密过程。

非对称加密算法

非对称加密算法主要引入公钥私钥的概念。
公钥和私钥是由两个随机数进行较为复杂的数学运算之后得出来的一对钥匙,下图中最为重要的三个参数 N, 加密指数e, 解密指数d都是由两个生成的随机数进行复杂的数学运算组成。其中:
公钥(e, N):用于 加密 签名验证
私钥 (d, N)用于 解密 产生签名
并且,私钥
只能放在自己主机手里只能有一把
公钥可以传送给别人可以有多把。
在这里插入图片描述

RSA加密算法

下面是RSA算法的基本流程图:
1.B将公钥发送给A;
2.A用B的公钥对明文进行加密;
3.A将密文传输给B;
4.B用自己的私钥对密文进行解密。

很明显,这种加解密方式也可能被黑客攻击,黑客可能会在一次传输公钥,一次传输密文的过程中都对其进行拦截,对其信息进行恶意修改,很明显不安全。
在这里插入图片描述
下面利用RsaTest软件进行演示操作RSA加密算法:
左图为发送方A , 右图为接收方B

  1. 首先B生成随机数,再通过随机数生成公钥和私钥;
    在这里插入图片描述
  2. 将B的公钥传送给A;
    在这里插入图片描述
  3. 将A要传输的明文输入框中,并进行加密操作
    在这里插入图片描述
  4. A将加密后的密文传输给B ,B用自己的私钥进行解密即可解出明文,再与A的明文进行对比,发现是一致的,数据传输成功!
    在这里插入图片描述

数字签名算法

在数字签名算法之前,我们先了解一下哈希值(或者说散列值),表示一个大小不定的文件可以用一个定长的序列来唯一表示。常见的哈希算法有 MD5(Message Digest 5), SHA(Secure Hash Algorithm) 算法等。可以将不同的文件用一个唯一的序列表示,软件中的是 Digest Base 16 或者 Digest Base 64。
在这里插入图片描述
下面是数字签名算法的的流程:

在这里插入图片描述
接着我们使用RSATest软件进行实际操作:

  1. 首先对发送方A生成公钥和私钥,将A的公钥发送给B;
    在这里插入图片描述

  2. A将消息输入框中,用自己的私钥进行签名;
    在这里插入图片描述

  3. B将A发送的明文用散列MD5码求散列并将之输入到消息框中,将A发送的签名放到签名框中,点击验证,程序会自动将签名A的公钥进行解密并与消息的MD5码值进行对比。若签名验证成功,则说明A的消息与签名在发送过程中都没有被黑客恶意修改;若验证失败,则说明接收到的消息并不安全,最好不要相信此条消息。
    在这里插入图片描述

PGP(pretty good privacy)加密算法

PGP加密方法是目前使用得最多的一种算法,是将数字签名算法RSA公钥算法进行结合的一种混合加密算法,其使用范围广泛且并没有被破解。

下面是 PGP算法的流程图:

在这里插入图片描述

接着,我们用RSATest软件对PGP加密方法进行操作:

  1. 此时,无论是发送方A还是接收方B,都需要生成自己的公钥和私钥因为之后需要进行公钥和私钥的交换,我们在这里将A、B的公钥和私钥都进行记录。

A:
公钥(e, N):
731832097 , 284142793281562804998145186552699923987077934968516545902991580995309159489518129543382201799117422075839397628246423211777355550771881381804394824717
私钥(d, N):
256226687335210023104899988151286486633890347312084184321297614178887396313360181188969505154708284114926767246123306981631174128181725381485760067553, 284142793281562804998145186552699923987077934968516545902991580995309159489518129543382201799117422075839397628246423211777355550771881381804394824717

B:
公钥(e, N):
899037263,
454907737572776510487088463663330529519556376023466242151864170847641989537885855670484669347979913575303371576364439699956206396714310703697480933873
私钥(d, N):
314096255991924230745732907884613055937735370155412296006756501838099551448727627522495180117550765728576279809685266889680600765416911818330110765439,
454907737572776510487088463663330529519556376023466242151864170847641989537885855670484669347979913575303371576364439699956206396714310703697480933873
在这里插入图片描述
2. 将A中明文求散列之后的MD5码放入消息中,并用A 的私钥对其进行数字签名。
在这里插入图片描述
3. 将A的签名复制到A的加解密栏中的明文栏中,再将B的公钥传送给A,在这里也就是复制过来,最后进行加密即可得到加密后的签名
在这里插入图片描述
4.之后也就是接收方B的验证操作,B收到A发送过来的加密的签名,用B的私钥进行解密得到签名
在这里插入图片描述
5.最后,将A传输给B的明文进行MD5码求散列,并输入(红箭头4),将A传输个B的公钥进行对签名验证,即可知消息是否正确。
(红箭头1,2表示A的公钥,3表示上一步中求得的签名)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值