Android核心安全机制
程序员文章站
2022-07-04 11:35:40
...
本文围绕以下六个部分展开:
一、安全概述
二、对称加密
三、非对称加密(公钥密码)
四、密钥交换
五、消息摘要
六、电子签名
一、安全概述
1. 安全要解决什么问题?
2. 密码术
如:字母加密、藏头诗、倒写文等。
密码术是算法与密钥的分离。
密码学“潜规则”:算法是公开的,而密钥是私有的。
算法公开的目的:经过专家的论证,经历安全的检验,以及黑客若干年的尝试破解。
二、对称加密
1. 典型的加密模型
2. 对称加密:
加密端与解密端使用同一个密钥(key),这个key被称为shared key。
3. 三种算法模型
(1)置换加密
原始数据顺序不会改变,但对原始的每个/组数据用另一个/组数据去替换。如:凯撒密码。
(2)转置加密
原始数据不会改变,但是对原始数据的顺序进行变换。
(3)乘积密码
置换变换与转置变换一起使用,反复迭代。
4. DES:数据加密标准
不是一个字母一个字母地变换,而是取64bit(1Byte=8bit)的数据作为一个基本的加密单元,经过19道工序(复用迭代乘积加密),然后出来56bit的密钥。
56bit已经被攻破,现已不够安全。因此,又出来三重DES,相当于DES做了三次转换。
5. AES:高级加密标准
虽然用了很多数学算法,但是本质还是乘积密码。
它灵活性很强。输入是128bit,以128bit作为一个单元进行加密。它的密钥强度可以是128bit、192bit、256bit,非常灵活。
AES在对称加密领域应用最广。因为:接受不同强度的密钥,应用场景灵活;而且现在比较安全。
6. 应用场景
双方通信保密、本地存储的数据加密等。
问题:在对称加密中,shared key如何进行交换?怎么存储才不会泄露出去?
三、非对称加密(公钥密码)
1. 非对称加密模型
2. 公钥(public key)和私钥(private key)
公钥:非对称加密模型中,加密密钥K就是公钥。
私钥:非对称加密模型中,解密密钥K'就是私钥。
公钥和私钥是同时产生的。其中用于加密的密钥称为公钥,用于解密的密钥用于私钥。
3. 公钥算法的理论基石
(1)建立在分解大数的困难度。
(2)建立在以大素数为模来计算离散对数的困难度。
4. RSA算法
建立在分解大数的困难度。公钥/私钥长度至少为:1024bit,安全性非常好。
四、密钥交换
1. 对称加密优缺点:
优点:高效。
缺点:密钥交换安全性的问题;不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域。
2. 非对称加密算法的优缺点:
优点:安全性足够高;没有密钥交换的问题。
缺点:效率低,对于大数据加密很慢。
3. 实际的保密会话应用场景
密钥交换方式一:利用公钥密码来交换会话密钥。
密钥交换方式二:Diffie-Hellman密钥交换协议。
五、消息摘要
1. HASH与散列函数的定义与特点
2. 消息摘要和数字指纹
3. HASH的应用场景
(1)防篡改
(2)防损坏
(3)认证
4. HMAC
Hash-basedMessageAuthenticationCode,基于hash的消息鉴别码。
六、电子签名
不是所有的公钥算法都支持私钥加密、公钥解密。如果支持的话,则该算法除了用来进行加密,还可以用于电子签名。如RSA。
私钥加密、公钥解密的目的:证明我现在加密的信息确实是我加密的,而不是别人伪造的。如果别人能用我的公钥进行解密,更加验证了:这确实是用我的私钥加密后的,否则别人是不可能用我的公钥解密的。
整理时参考:极客学院 - Android六种核心安全机制-加密、密钥、签名与证书
一、安全概述
二、对称加密
三、非对称加密(公钥密码)
四、密钥交换
五、消息摘要
六、电子签名
一、安全概述
1. 安全要解决什么问题?
2. 密码术
如:字母加密、藏头诗、倒写文等。
密码术是算法与密钥的分离。
密码学“潜规则”:算法是公开的,而密钥是私有的。
算法公开的目的:经过专家的论证,经历安全的检验,以及黑客若干年的尝试破解。
二、对称加密
1. 典型的加密模型
2. 对称加密:
加密端与解密端使用同一个密钥(key),这个key被称为shared key。
3. 三种算法模型
(1)置换加密
原始数据顺序不会改变,但对原始的每个/组数据用另一个/组数据去替换。如:凯撒密码。
(2)转置加密
原始数据不会改变,但是对原始数据的顺序进行变换。
(3)乘积密码
置换变换与转置变换一起使用,反复迭代。
4. DES:数据加密标准
不是一个字母一个字母地变换,而是取64bit(1Byte=8bit)的数据作为一个基本的加密单元,经过19道工序(复用迭代乘积加密),然后出来56bit的密钥。
56bit已经被攻破,现已不够安全。因此,又出来三重DES,相当于DES做了三次转换。
5. AES:高级加密标准
虽然用了很多数学算法,但是本质还是乘积密码。
它灵活性很强。输入是128bit,以128bit作为一个单元进行加密。它的密钥强度可以是128bit、192bit、256bit,非常灵活。
AES在对称加密领域应用最广。因为:接受不同强度的密钥,应用场景灵活;而且现在比较安全。
6. 应用场景
双方通信保密、本地存储的数据加密等。
问题:在对称加密中,shared key如何进行交换?怎么存储才不会泄露出去?
三、非对称加密(公钥密码)
1. 非对称加密模型
2. 公钥(public key)和私钥(private key)
公钥:非对称加密模型中,加密密钥K就是公钥。
私钥:非对称加密模型中,解密密钥K'就是私钥。
公钥和私钥是同时产生的。其中用于加密的密钥称为公钥,用于解密的密钥用于私钥。
3. 公钥算法的理论基石
(1)建立在分解大数的困难度。
(2)建立在以大素数为模来计算离散对数的困难度。
4. RSA算法
建立在分解大数的困难度。公钥/私钥长度至少为:1024bit,安全性非常好。
四、密钥交换
1. 对称加密优缺点:
优点:高效。
缺点:密钥交换安全性的问题;不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域。
2. 非对称加密算法的优缺点:
优点:安全性足够高;没有密钥交换的问题。
缺点:效率低,对于大数据加密很慢。
3. 实际的保密会话应用场景
密钥交换方式一:利用公钥密码来交换会话密钥。
密钥交换方式二:Diffie-Hellman密钥交换协议。
五、消息摘要
1. HASH与散列函数的定义与特点
2. 消息摘要和数字指纹
3. HASH的应用场景
(1)防篡改
(2)防损坏
(3)认证
4. HMAC
Hash-basedMessageAuthenticationCode,基于hash的消息鉴别码。
六、电子签名
不是所有的公钥算法都支持私钥加密、公钥解密。如果支持的话,则该算法除了用来进行加密,还可以用于电子签名。如RSA。
私钥加密、公钥解密的目的:证明我现在加密的信息确实是我加密的,而不是别人伪造的。如果别人能用我的公钥进行解密,更加验证了:这确实是用我的私钥加密后的,否则别人是不可能用我的公钥解密的。
整理时参考:极客学院 - Android六种核心安全机制-加密、密钥、签名与证书