个人随笔
目录
小明怎样才能安全的发一条短信给小王而不被窃取不被篡改?
2021-06-16 23:09:07

背景

是这样的,小明和小王是商业合作伙伴,一个去了深圳一个去了背北京,现在他们之间要发短信商讨商业计划,小明想要告知小王他的想法,但是又怕短信内容被监听,并且还担心短信内容被篡改,那怎么办呢?

解决办法

这里就需要用到签名和加密的技术了,那怎么用呢?首先我们先来理解下什么是Hash,什么是对称加密,什么是非对称加密?

Hash

Hash就是生成摘要,比如小明要发一段内容,然后对这段内容进行Hash就生成了这一段内容的摘要,摘要是比较锻的一串序列,常用的算法用法MD5,SHA256。

对称加密

对称加密就是相同的密钥,然后对一段内容进行加密,也可以对之进行解密,优点是速度快,常用的算法有:AES和ChaCha20。

非对称加密

字面意思理解就是密钥不相同,会有一个密钥对,公钥和私钥,公钥加密可以用私钥解密,反之私钥加密也可以用公钥解密,常用的算法有RSA、ECC。

解决办法

好了,上面了解了摘要算法,对称解密和非对称加密,那么我们用这个就可以实现安全保密传输啦,鉴于非对称加密速度比较慢,所以我们这里不要直接用非对称加密加密短信内容,应该要用对称加密来加密,然后非对称加密加密对称加密的密钥(好吧,有点绕!).

  • 1)、小明和小王在去北京深圳之前先交换了彼此的公钥。
  • 2)、这里有短信内容、摘要算法SHA256、私钥(明)、公钥(明)、私钥(王)、公钥(王)
  • 3)、首先小明编辑好了短信内容,然后生成一个对称密钥,用该对称密钥加密短信内容生成密文
  • 4)、小明用小王的公钥对该对称密钥进行加密生成加密后的对称密钥,然后把加密后的对称密钥跟密文一起生成一个摘要
  • 5)、小明用自己的私钥对摘要进行签名
  • 6)、把第3,4,5步骤生成的密文、加密后的对称密钥、签名打包成一个数字信封发送给小王。

当小王接受到该数字信封后,首先会对密文和加密后的对称密钥用相同的散列函数生成摘要,然后用小明的公钥对签名进行解密,看是否跟摘要相同,若相同表明这个是小明发过来的信息,绝对不会被别人串改(除非小明的私钥被人知道了),然后小王用私钥对加密后的对称密钥进行解密获得对称密钥,再用对称密钥解密密文得到原信息。

完美,因为有对信息进行签名,所以保障了不会被篡改,又对信息进行了对称加密,保证了信息不会被泄露,就算被拦截了,没有小王的私钥也不知道解密密钥是啥。

那有人可能会说,要是小王和小明没有见过面,那么怎么交换公钥呢?这个就只能靠证书认证机构(CA)了,必进做不到对公钥又进行加密签名,这样子就无限循环了~

 246

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2