加密和签名

目录

1.加密和签名的过程分别为:

2.加密和签名的区别:

签名的作用

3.为什么在使用非对称加密算法时,正确的使用方法是公钥加密,私钥解密。


以非对称加密RSA为例,包含非对称秘钥:私钥和公钥。

1.加密和签名的过程分别为:

公钥加密,私钥解密

私钥签名,公钥验签

2.加密和签名的区别:

       加密:对明文加密,只有用指定的密钥才能解密,防止数据被窃取,泄漏

       签名:对明文签名,通过指定的密钥来验证签名,防止数据被篡改

误解不要把签名也理解成加密(虽然本质上仍然是加密,但签名的目的不同,技术实现也有所不同)。不要认为只要签名了,数据就不出被泄漏了。这是一个很大的误解。

签名的作用

签名的作用不是防泄密,而是防篡改。举例说明:

        你经常给你的女朋友写信,里面有绵绵情话,有个快递员很坏,喜欢偷拆看别人的信,看完后再放回去。有一天,你发现你给女朋友写信的内容被曝光了,你意识到肯定是有人偷看了你写的信,于是你决定对信件内容进行加密,你采取了一套加密算法,如明文I love you,会被转化为密文:324678967702。你把解密的密钥给了女友,这样只有她能解密信件内容,这样快递员即使偷看了信,也不知道里面写的是啥。目的就达到了。

        但是这个快递员真的很坏,他心怀不满,他说你不是不让我看你的信的内容吗?那么我就把你的信件给改了,比如,把I love you的密文:324678967702给改成1234567890,你女朋友收到信后,解密出1234567890的结果可能是:你欠我的一万块钱什么时候还。你女朋友很生气的问你,你信里都写的啥呀,莫名其妙的。你意识到,信件的内容肯定是被篡改了。因此要防止别人篡改,你又有了新的想法:对信息内容追加签名。

        你每次写完信,除了对信件内容进行加密外,还会针对信件明文生成一个签名(一般不会对明文直接签名,先会用对明文进行哈希得到摘要,然后对摘要进行加密,这个密文就叫签名),这套算法会保证:只要信件明文有任何改动,生成的签名都是不一样的

        这样就做到了防篡改。因为,你的女友收到信件其实包含两个密文一个是明文加密后的内容,称之为密文另一个是明文摘要加密后的内容,称之为签名。她收到你的信后,先要进行验签操作,即先用私钥解密密文,得到解密后的明文。那这个明文与原来的明文一致吗?她用同样的算法对收到明文做哈希,得到的摘要记为摘要2。然后再用公钥解密签名,得到摘要1如果摘要2与摘要1相同,那么就说明信件明文或密文没有被篡改如果两个摘要不同,那么她马上明白,密文不可信,被篡改过,即验签不通过

        这里用到的签名算法使得:1.任何人不能篡改内容,只要篡改了,签名就会不同,验签就会失败。2.不能伪造签名(中间人在篡改内容后,用自己私钥伪造一个签名),因为同样会验签失败。
而且用来做签名的密钥是一对非对称密钥,公私钥是成对的,用私钥生成的签名,只有用对应的公钥才能验签通过。

        至此就理解了:签名与加密完全是两个概念,也不是必须一起都实现才安全,要根据需求而定。例如,我传输了一个下单信息:买一杯奶茶,这个信息并不是什么机密,但是要防止被人篡改改成:买2杯可乐,所以只需要对内容做签名防篡改就可以了,并不需要加密。

3.为什么在使用非对称加密算法时,正确的使用方法是公钥加密,私钥解密。

在加密场景下,私钥和公钥的关系,相当于钥匙和锁的关系。

         私钥=钥匙公钥=锁。私钥只有一把自己保存,而公钥锁可以复制很多把。

        当要传输隐私数据时,就给对方一把锁,让对方把重要的隐私数据锁起来,传给你,然后你用私钥解锁。因为私钥在你手上,所以只有你能解锁。

        而公钥之所以叫公钥,意思是可以公开给任何人。任何人拿到一把锁都是没有意义,所以对锁的定义就是去锁住重要的东西,用钥匙才能打开锁,即用公钥去加密重要信息,用私钥去解密,而不能用私钥加密,公钥解密。(注意,是在加密场景下,不能用私钥加密,公钥解密。而签名的场景正好相反,是私钥加密,公钥解密。不过通常会说成私钥加签,公钥验签)。无论如何,永远要记住,私钥代表着你身份和权力,要保护好私钥。

       综上所述,对于签名,一定是私钥签名,公钥验签。毕竟私钥才能代表你的身份,你签名的文件,可以分发给任何人,也就是说任何人都需要拿到公钥来验证签名。如果反过来就不行了,任何拿到公钥的人都可以冒充你进行签名,那可是不行的。

参考文献:

接口安全:谈谈加密与签名的区别_加密和签名的区别-CSDN博客

深入理解加密和签名的区别-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值