iOS开发系列-iOS签名机制

概述

想要了解iOS的签名机制需要有一定密码学有一定的了解。下面依次介绍的数据的加密、单向散列函数、数字签名、证书、iOS签名机制。

数据加密解密

在网络通信中想要防止数据被攻击者拦截,我们通常对我们的数据进行加密(通过密钥对发送的消息根据加密算法生成密文),如果传输的信息被拦截,攻击者获取到的是密文。

根据密钥的使用方法,可以将密码分为2中

  • 对称密码
  • 公钥密码(非对称密码)

对称密码

在对称密码中,加密、解密使用的相同的密钥。常见的对称密码算法DES、3DES、AES。

DES

  • DES是一种将64bit明文加密成64bit密文的对称密码算法,密钥长度是56bit
  • 由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代(反复)
  • 目前已经可以在短时间内被破解,所以不建议使用

3DES

  • 3DES,将DES重复3次所得到的一种密码算法,也叫做3重DES。
  • 目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题

AES

  • 取代DES成为新标准的一种对称密码算法
  • 目前AES,已经逐步取代DES、3DES,成为首选的对称密码算法

由于对称密钥加密会遇到密钥配送问题。如果发送者在发送密钥的过程中被拦截发送的加密的密文也能被拦截者解密。为了解决对称加密密钥配送问题就出现了新的加密方式-非对称加密。

公钥密码

在公钥密码中

  • 加密密钥,一般是公开的,因此该密钥称为公钥(public key)
  • 解密密钥,由消息接收者自己保管的,不能公开,因此也称为私钥(private key)
  • 公钥和私钥是一 一对应的,是不能单独生成的,一对公钥和密钥统称为密钥对(key pair)
  • 由公钥加密的密文,必须使用与该公钥对应的私钥才能解密
  • 由私钥加密的密文,必须使用与该私钥对应的公钥才能解密

公钥密码解决对称密码加密遇到的配送问题

  • 由消息的接收者,生成一对公钥、私钥
  • 将公钥发给消息的发送者
  • 消息的发送者使用公钥加密消息

目前使用最广泛的公钥密码算法是RSA。RSA的名字有3位开发者,即Ron Rivest、Adi Shamir、Leonard Adleman的姓氏首字母组成。

公钥密码算法虽然解决了密钥配送问题,但是他们生的算法加密速度比公钥密钥加密较慢,不适合加密信息量加大的数据。为了解决这个问题我们使用-混合密码系统

混合密码系统

混合密码系统利用了公钥密码+对称密码,利用两者的优势的加密方式。

加密步骤

  • 首先为本次通信随机生成的临时密钥,作为对称密码的密钥,用于加密消息,提高速度
  • 消息发送者要拥有消息接收者的公钥
  • 用消息接收者的公钥,加密会话密钥
  • 将前2步生成的加密结果,一并发给消息接收者

消息的接受者拿到加密的会话密钥用自己的私钥解密获取到机密的会话密钥,在利用会话密钥使用对称加密方式解密出明文消息。

猜你喜欢

转载自www.cnblogs.com/CoderHong/p/9221340.html
今日推荐