给小姐姐写信理解对称加密、非对称加密和数字签名

引言

  某一天你认识了一个小姐姐,她没有给你联系方式,你只知道她的上班地址和姓名,回到家中你日思夜想,非常想念这位小姐姐,于是你就开始给她写信,那么写信有哪些问题?
  我在给她写信的时候,中间有一个邪恶的邮递员(超邪恶 )他总想把我和小姐姐拆了,我们在讨论信息传送安全的问题,需要注意那些问题呢
    1.消息可能会被伪造(邪恶的邮递员用我的口吻给小姐姐写一封信:你一点也不漂亮,然后小姐姐从此再也不理我了
    2.消息可能被修改(邪恶的邮递员在我的信中随便改动)
    3.消息可能被监听(小姐姐能够成功看到信息,但是邮递员也看到了,他就可以通过一些信息对我进行诈骗、勒索)
在这里插入图片描述
  那么怎么解决这个问题?

对称加密算法

  于是你想到了在消息上面进行加密,你可以提前给小姐姐说好,我写的消息每个字母都会往后移动三位,比如你写 abc 那么它的实际内容就是 def,这样邮递员就看不懂我们写的什么内容了,这就是对称加密算法:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法,就是你写信的时候不会写实际内容,而是写的实际内容加密后的内容,然后小姐姐通过你的加密方法反解出真实的内容。
在这里插入图片描述
常见的对称加密算法及对比
  1、DES 已破解,不再安全,基本没有企业在用了是对称加密算法的基石,具有学习价值密钥长度56(JDK)、56/64(BC)
  2、DESede(三重DES)早于AES出现来替代DES计算密钥时间太长、加密效率不高,所以也基本上不用密钥长度112/168(JDK)、128/192(BC)
  3、AES最常用的对称加密算法密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好)实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组)密钥长度128/192/256,其中192与256需要配置无政策限制权限文件(JDK6)填充模式最常用的两种PKCS5Padding和PKCS7Padding,其中后者只有BC独有。
  4、IDEA常用的电子邮件加密算法工作模式只有ECB密钥长度128位
  5、PBE综合了消息摘要算法和对称加密算法,最常见的是PBEWithMD5AndDES工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了

非对称加密算法

但是邮递员可以对我们的内容进行修改,虽然我读不懂,但是就是想要搞你!!!!(就很棒),还有一个问题就是你如何让小姐姐知道你的加密方法,显然是不可能通过写信的方式告诉小姐姐,那么你就可以通过非对称加密来进行传输信息,非对称加密有一个口诀:公钥加密私钥解,私钥加密公钥解
在这里插入图片描述
A0通过公钥加密变成A1,A1通过私钥解密就可以还原A0

那么我怎么和小姐姐通信?我们可以先写一封信告诉小姐姐你的公钥是多少,小姐姐告诉了我她的公钥,我通过她的公钥进行加密我的信,然后小姐姐通过她的私钥就可以拿到我所写信的真实内容。
在这里插入图片描述
这就成功解决了被监听的问题,但是还是不能解决被伪造了问题,因为邮递员也拿到了小姐姐的公钥,他也可以通过这个公钥给小姐姐发送信息,说我每天都在撩其他小姐姐
之前说过,公钥加密私钥解,私钥加密公钥解,我可以先写一封信告诉小姐姐我的公钥是xx,然后小姐姐说好的我知道了,然后我通过我的私钥进行加密,然后发送给小姐姐,小姐姐也能正常的看到信息,因为邮递员没有我的私钥所以就避免了伪造,但是邮递员能知道我的公钥,那么他也能读取我的内容,好像单纯考非对称加密也解决不了问题。在这里插入图片描述
聪明的你可能想到了你已经学过了对称加密算法
1.先给小姐姐写信问她的公钥
2.小姐姐告诉了你的公钥
3.使用公钥将对称加密算法psk进行加密(假设是:123456),并告诉小姐姐我们接下来要使用对称加密算法了
4.由于邮递员没有小姐姐的密钥,所以他看不到我写的内容,一旦我和小姐姐都有了psk的密钥,我们就可以通信了,这就有效的防止了监听、伪造、修改的所有问题。
在这里插入图片描述
当然还有一个最重要的问题还没有解决,就是如何确定写信的人是我,或者收信的人是小姐姐勒?
在这里插入图片描述
万一收信的是一个大胡子猛男怎么办,这就涉及到数字签名,聪明的你知道吗hhh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值