一、RSA算法加密简介
1、介绍
RSA加密算法是一种非对称加密
算法,加密的秘钥是由公钥和私钥两部分组成秘钥对,公钥
用来加密消息,私钥
用来对消息进行解密,公钥是公开的,私钥则是用户自己保留的,由于公钥是公开的,那么任何人只要获取到公钥,都可以使用公钥来加密发送伪造内容。
出于安全性考虑,在发送消息之前我们可以使用RSA
来签名,签名使用私钥来进行签名,使用公钥来进行验签,通过签名我们可以确保用户身份的唯一性,从而提高安全性
2、加密与签名的关系?
加密和签名都是为了安全性考虑,但略有不同。简单的说,加密
是为了防止信息被泄露,而签名
是为了防止信息被篡改。
(1) 加密
Task 1:Boss要给CoCo发送一条消息,分配保密的工作任务。
RSA的加密过程如下:
1.CoCo生成一对密钥(公钥和私钥),私钥不公开,CoCo自己保留。公钥为公开的,任何人可以获取。
2.CoCo传递自己的公钥给Boss,用CoCo的公钥对消息进行加密。
3.CoCo接收到Boss加密的消息,利用CoCo自己的私钥对消息进行解密。
在这个过程中,只有2次传递过程,第一次是CoCo传递公钥给Boss,第二次是Boss加密消息给CoCo,即使都被敌方截获,也没有危险性,因为只有CoCo的私钥才能对消息进行解密,防止了消息内容的泄露。
(2) 签名
Task 2:CoCo收到Boss发的消息后,需要进行回复“收到”。
RSA签名的过程如下:
1.CoCo生成一对密钥(公钥和私钥),私钥不公开,CoCo自己保留。公钥为公开的,任何人可以获取。
2.CoCo用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给Boss。
3.Boss收到消息后,在获取CoCo的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是CoCo回复的。
在这个过程中,只有2次传递过程,第一次是CoCo传递加签的消息和消息本身给Boss,第二次是Boss获取CoCo的公钥,即使都被敌方截获,也没有危险性,因为只有CoCo的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给Boss,防止了消息内容的篡改。
综合两个场景会发现,第一个场景虽然被截获的消息没