IOS密码学分论-对称加密&&非对称加密

总论:

对称加密和非对称加密是可逆的,基本的加解密的过程就是:

明文--加密--密文

密文--解密--明文

对称加密:

对称加密原理:加密和解密使用同一个秘钥,秘钥的保密工作很重要,所以秘钥要定期更换。

经典的算法:

DES:数据加密标准。(用的比较少,因为强度不够)

3DES:使用3个秘钥,对相同的数据执行三次加密,强度增强。

AES:高级加密标准,目前美国国家安全局使用的AES加密,苹果的钥匙串访问就是使用的AES加密。

非对称加密:

非对称加密原理:

用公钥加密,私钥解密

用私钥加密,公钥解密

应用场景:

在军事领域比较常见,P12证书,RSA做数字签名:

终端生成秘钥:openssl genrsa -out private.pem 512

终端生成公钥:openssl rsa -in private.pem -out public.pem -pubout

注意:

优点:安全

缺点:速度很慢所以RSA只能对小数据进行加密。

我们在给服务器传递数据的时候,为了防止传给后台的数据被窜改,所以用RSA做数字签名:

数字签名原理:


IOS密码学分论-对称加密&&非对称加密_第1张图片

客户端的数据报文进行md5运算,然后对md5值进行RSA加密,把数据报文和加密后的数据打包发送给服务器,服务器把密文进行解密,然后将数据报文进行md5运算,然后跟解密后的数据进行匹对,看数据是否被更改。

pkcs:

The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。

PKCS简介

到1999年底,PKCS已经公布了以下标准:

PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封[22]。

PKCS#3:定义Diffie-Hellman密钥交换协议[23]。

PKCS#5:描述一种利用从口令派生出来的安全密钥加密字符串的方法。使用MD2或MD5 从口令中派生密钥,并采用DES-CBC模式加密。主要用于加密从一个计算机传送到另一个计算机的私人密钥,不能用于加密消息[24]。

PKCS#6:描述了公钥证书的标准语法,主要描述X.509证书的扩展格式[25]。

PKCS#7:定义一种通用的消息语法,包括数字签名和加密等用于增强的加密机制,PKCS#7与PEM兼容,所以不需其他密码操作,就可以将加密的消息转换成PEM消息[26]。

PKCS#8:描述私有密钥信息格式,该信息包括公开密钥算法的私有密钥以及可选的属性集等[27]。

PKCS#9:定义一些用于PKCS#6证书扩展、PKCS#7数字签名和PKCS#8私钥加密信息的属性类型[28]。

PKCS#10:描述证书请求语法[29]。

PKCS#11:称为Cyptoki,定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备[30]。

PKCS#12:描述个人信息交换语法标准。描述了将用户公钥、私钥、证书和其他相关信息打包的语法[31]。

PKCS#13:椭圆曲线密码体制标准[32]。

PKCS#14:伪随机数生成标准。

PKCS#15:密码令牌信息格式标准[33]。

openssl默认生成的都是pem格式的证书。iOS 开发中是不可以使用pem证书,需要使用der证书。

因为RSA对大数据加密效率比较低,所以一般加密的方式采用使用对称加密对数据本身加密 ,使用RSA对key值的md5加密。

你可能感兴趣的:(IOS密码学分论-对称加密&&非对称加密)