Android核心安全机制

[b][size=large]本文围绕以下六个部分展开: [/size][/b]

[b][size=large]一、安全概述[/size][/b]
[b][size=large]二、对称加密[/size][/b]
[b][size=large]三、非对称加密(公钥密码)[/size][/b]
[b][size=large]四、密钥交换[/size][/b]
[b][size=large]五、消息摘要[/size][/b]
[b][size=large]六、电子签名[/size][/b]


[b][size=large]一、安全概述[/size][/b]

[size=medium][b]1. 安全要解决什么问题?[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/6558/de380421-d90c-3bcb-b674-b846fbaaf290.png[/img][/align]


[size=medium][b]2. 密码术[/b][/size]

[size=medium]如:字母加密、藏头诗、倒写文等。[/size]

[size=medium]密码术是算法与密钥的分离。[/size]

[size=medium]密码学“潜规则”:算法是公开的,而密钥是私有的。[/size]
[size=medium]算法公开的目的:经过专家的论证,经历安全的检验,以及黑客若干年的尝试破解。[/size]


[b][size=large]二、对称加密[/size][/b]

[size=medium][b]1. 典型的加密模型[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/6658/22251cba-645b-3204-aaf6-a3a870c6d6d5.png[/img][/align]


[size=medium][b]2. 对称加密:[/b][/size]

[size=medium]加密端与解密端使用同一个密钥(key),这个key被称为shared key。[/size]


[size=medium][b]3. 三种算法模型[/b][/size]

[size=medium](1)置换加密[/size]

[size=medium]原始数据顺序不会改变,但对原始的每个/组数据用另一个/组数据去替换。如:凯撒密码。[/size]

[size=medium](2)转置加密[/size]

[size=medium]原始数据不会改变,但是对原始数据的顺序进行变换。[/size]

[size=medium](3)乘积密码[/size]

[size=medium]置换变换与转置变换一起使用,反复迭代。[/size]


[size=medium][b]4. DES:数据加密标准[/b][/size]

[size=medium]不是一个字母一个字母地变换,而是取64bit(1Byte=8bit)的数据作为一个基本的加密单元,经过19道工序(复用迭代乘积加密),然后出来56bit的密钥。[/size]

[size=medium]56bit已经被攻破,现已不够安全。因此,又出来三重DES,相当于DES做了三次转换。[/size]


[size=medium][b]5. AES:高级加密标准[/b][/size]

[size=medium]虽然用了很多数学算法,但是本质还是乘积密码。[/size]

[size=medium]它灵活性很强。输入是128bit,以128bit作为一个单元进行加密。它的密钥强度可以是128bit、192bit、256bit,非常灵活。[/size]

[size=medium]AES在对称加密领域应用最广。因为:接受不同强度的密钥,应用场景灵活;而且现在比较安全。[/size]


[size=medium][b]6. 应用场景[/b][/size]

[size=medium]双方通信保密、本地存储的数据加密等。[/size]


[size=medium]问题:在对称加密中,shared key如何进行交换?怎么存储才不会泄露出去?[/size]


[b][size=large]三、非对称加密(公钥密码)[/size][/b]

[size=medium][b]1. 非对称加密模型[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/6670/044ea3b3-aa55-3870-98f3-e03c690925e6.png[/img][/align]


[size=medium][b]2. 公钥(public key)和私钥(private key)[/b][/size]

[size=medium]公钥:非对称加密模型中,加密密钥K就是公钥。[/size]

[size=medium]私钥:非对称加密模型中,解密密钥K'就是私钥。[/size]

[size=medium]公钥和私钥是同时产生的。其中用于加密的密钥称为公钥,用于解密的密钥用于私钥。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/6672/b1f2fca6-7886-3140-9c48-6d85e9af2cf6.png[/img][/align]


[size=medium][b]3. 公钥算法的理论基石[/b][/size]

[size=medium](1)建立在分解大数的困难度。[/size]

[size=medium](2)建立在以大素数为模来计算离散对数的困难度。[/size]


[size=medium][b]4. RSA算法[/b][/size]

[size=medium]建立在分解大数的困难度。公钥/私钥长度至少为:1024bit,安全性非常好。[/size]


[b][size=large]四、密钥交换[/size][/b]

[size=medium][b]1. 对称加密优缺点:[/b][/size]

[size=medium]优点:高效。[/size]

[size=medium]缺点:密钥交换安全性的问题;不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域。[/size]


[size=medium][b]2. 非对称加密算法的优缺点:[/b][/size]

[size=medium]优点:安全性足够高;没有密钥交换的问题。[/size]

[size=medium]缺点:效率低,对于大数据加密很慢。[/size]


[size=medium][b]3. 实际的保密会话应用场景[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7210/3b482707-3e42-3515-a4e6-70d77f9003cf.png[/img][/align]

[size=medium][b]密钥交换方式一:利用公钥密码来交换会话密钥。[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7212/4a77480f-32fe-3739-96e4-19eb551840d5.png[/img][/align]

[size=medium][b]密钥交换方式二:Diffie-Hellman密钥交换协议。[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7214/3186aaaa-ced4-39e9-bfa9-436316bca41d.png[/img][/align]


[b][size=large]五、消息摘要[/size][/b]

[size=medium][b]1. HASH与散列函数的定义与特点[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7216/84dbd02b-7863-3fce-bbc5-486e4dd7f059.png[/img][/align]


[size=medium][b]2. 消息摘要和数字指纹[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7220/0d878eb3-3d0b-37e8-9a9a-9fef8b3cc526.png[/img][/align]


[size=medium][b]3. HASH的应用场景[/b][/size]

[size=medium][b](1)[/b]防篡改[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7222/a146bfbb-2e1d-308a-aaf6-84ce00116b8d.png[/img][/align]

[size=medium][b](2)[/b]防损坏[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7227/096d984b-e02f-35e7-800f-f58b6619b881.png[/img][/align]

[size=medium][b](3)[/b]认证[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7231/63c67e8b-b9ea-363c-a575-d6fc0516cfa5.png[/img][/align]


[size=medium][b]4. HMAC[/b][/size]

[size=medium]Hash-basedMessageAuthenticationCode,基于hash的消息鉴别码。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7234/06399469-0229-3466-bf48-e0c548a88204.png[/img][/align]


[b][size=large]六、电子签名[/size][/b]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7236/3622e02b-f934-3162-827e-b7b9e0d0a912.png[/img][/align]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7238/af4ea207-3e14-3a18-b08b-e306b98be090.png[/img][/align]

[size=medium]不是所有的公钥算法都支持私钥加密、公钥解密。如果支持的话,则该算法除了用来进行加密,还可以用于电子签名。如RSA。[/size]

[size=medium]私钥加密、公钥解密的目的:证明我现在加密的信息确实是我加密的,而不是别人伪造的。如果别人能用我的公钥进行解密,更加验证了:这确实是用我的私钥加密后的,否则别人是不可能用我的公钥解密的。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/7240/a0b2095c-0945-353b-b6fc-9aee56dada12.png[/img][/align]


[size=medium]整理时参考:极客学院 - [color=red]Android六种核心安全机制-加密、密钥、签名与证书[/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值