iOS的签名与证书机制(一):加密解密

2019-03-13  本文已影响0人  Calabash_Boy

完整文章列表:
iOS的签名与证书机制(一):加密解密
iOS的签名与证书机制(二):单向散列函数
iOS的签名与证书机制(三):数字签名与证书
iOS的签名与证书机制(四):iOS的签名

我们在真机调试和打包的时候配置正确的证书才能运行App,那么可能有小伙伴要问了:
1.什么是证书?签名证书有什么区别?
2.为什么安装一个App需要安装证书呢?
3.iOS在配置证书的时候.cer文件以及.mobileprovision文件到底是个啥?
4.为什么...

高能高能!.gif
要回答上面的问题,我们需要按照下面的知识体系来学习:
学习流程.png
为了保护小伙伴的眼睛和膀胱,我会分4篇文章慢慢讲述;
来,坐下品一品小弟的茶.

加密解密

先看一个网上广为流传的例子:

窃听.png
对的,你们的悄悄话就这样被无情的窃听,如果涉及到了银行存款,婆媳不和,小三住址啊等等,简直让人头大; 头大.jpeg
这可咋办?
防止窃听.png
哎呦不错喔!我们可以通过加密解密的手段来防止被窃听,加密解密需要秘钥,我们在这里不深入介绍密码学,只引入足够我们学习该知识体系使用的知识;密钥我们在这里暂时理解为一段天知地知你知我知的字符串;
加密的时候我们需要一把密钥,解密的时候也需要一把密钥(敲黑板:划重点了!!),
根据密钥使用的方法,可以将密码分为两类

我们先来看看对称密码:


对称密码.png

我们怎么通过密钥来给明文加密呢?

1. 对称密码算法

这不就已经解决问题了么?非也!
如果使用的是对称密码,一定会遇到密钥配送的问题,我的密钥该怎么发送给小花,小芳们,才能让她们解密我的信息呢?
邮箱?微信?还是飞过去,一个个用悄悄话说?
都避免不了在这个过程中密钥被拦截:

密钥配送问题.png
这样的话,你们的小情话还是会被监听,这可如何是好?!

2. 公钥密码(非对称加密)

对比上面的对称密码,公钥密码也可以称作非对称加密,那么有聪明的小伙伴已经猜到了,加密跟解密使用的密钥不一样,所以称之为非对称:


公钥密码.png

正是因为公钥密码的这些特性,公钥随意公开,不怕被窃取,只要保证消息接受者的私钥是安全的,那么就可以安全通信,也解决了密钥配送的问题.

公钥密码流程.png
消息的两端,一个是消息发送者,一个是消息接受者,请小伙伴先记住这两个角色,方便后面的签名理解;
这里的密钥对是由消息接受者生成的,为了保证我收到的消息是安全的;
对称密码有DES,AES等算法,公钥密码对应的算法是RSA,也是最广泛的公钥密码算法;
RSA,截取的是三位开发者的姓氏首字母:Ron Rivest、Adi Shamir、Leonard Adleman;
RSA算法强度复杂,从1978年公布于世,经过无数的攻击验证,被证明是最优秀的公钥方案之一,凡事两面看,算法复杂保证了数据安全,但是加密与解密消耗的时间就会相对增加,因此在效率上不如对称密码的算法;

讲完了两种密码系统,我们来总结一下各自的优缺点:
对称密码:不能解决密钥配送的问题,加密解密的速度快;
公钥密码:解决密钥配送问题,加密解密的速度慢;
哎呀呀,两个都很优秀呢,要选哪个呢?
小孩子才做选择题,大人是我都要!,接下来我们介绍鱼和熊掌兼得之法:混合密码系统(Hybrid Cryptosystem).

3. 混合密码系统(Hybrid Cryptosystem)

名之为混合,也正是因为这个系统同时采取了对称密码与公钥密码,利用其各自的优势做其擅长的工作;


混合密码系统的加密.png

当然,前提是消息的发送者要有消息接受者的公钥;
加密的步骤如图所示:

  1. 消息发送者生成会话密钥,作为对称密码的密钥;
  2. 用生成的会话密钥对明文信息进行加密;
  3. 用消息接受者的公钥对会话密钥加密;
  4. 把两部分信息组合到一起发送给消息接受者;

对于消息接受者,收到消息后进行解密的步骤与之相反;


混合密码系统的解密.png

这就是整个混合密码系统的流程,网络上的SSL/TLS都采用了混合密码系统;

第一章的内容先到这里,可以保证你的小情话安全传输;


令人愉悦.jpeg

修整一下,下一章我们开始单行散列函数的学习;

上一篇下一篇

猜你喜欢

热点阅读