Android笔记-对称与非对称加密及DH密钥交换

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android笔记-对称与非对称加密及DH密钥交换相关的知识,希望对你有一定的参考价值。

对称加密算法

AES:Advanced Encryption Standard,高级加密标准。

算法逻辑是这样的:

    加密:C = E(K, P)    其中P为明文,K为密钥,C为密文;

    解密:P = D(K, C)    其中C为密文,K为密钥,P为明文;

加密解密使用同一个密钥,用同样的方式还原明文;

优点

    1.加密效率高;

    2.计算量小;

    3.使用方便。

缺点:

    1.双方需要协商密钥,一旦密钥泄漏则机密系统崩塌;

    2.密钥维护和更新困难。

非对称加密算法

RSA:是一种公开密钥体制;

RSA算法可靠性基础:

    1.大质数相乘计算很容易;

    2.对极大整数做因数分解很困难,如1111 * 3331 = 3700741,但是3700741 = ? * ?就很多了。

优点:

    1.公钥可可以开放;

    2.密钥方便管理;

    3.安全性高。

缺点:

    1.性能差,加密时间长;

    2.使用相对复杂。

密钥交换算法DH

DH:Diffie-Hellman,是一种保存共享KEY安全的穿越不安全网络的方法;

    1.不需要保证信道安全;

    2.计算公式可完全公开;

    3.双方不需要指定对方的私钥;

    4.可协商出一个其他人都不知道的密钥;

关键词: PubKey:公钥(可公开)、PriKey:私钥(不公开)、Secret:密钥(加密用)

如这样的场景,客户端(A)和服务端(B)进行通信。

公钥公式:A|B = g exp (a|b) % p

私钥公式:s = B|A exp(a|b) %p

上面的公式都可以公开到互联网

比如公开的g=11,p=29

私钥是不会公开的,都是自己用的,A的私钥为4,B的私钥为6。

A的公钥:(11 ^ 4) mod 29 = 25

B的公钥:(11 ^ 6) mod 29 = 9

A拿B的公钥算密钥:s = (9 ^ 4) mod 29 = 7

B拿A的公钥算密钥:s = (25 ^ 6) mod 29 = 7

这样大家都知道是7了,就用这个密钥作为对称加密的密钥。

注意:

1.实际过程中,这个数据是比较大的复杂的,不存在计算这么简单的情况;

2.如果C(黑客)想从网络中获取(不考虑破解等因素)是算不出其密钥的,因为密钥都是通过自己的私钥和对方的公钥计算的,黑客是拿不到A和B的私钥的,所以无法解密。

以上是关于Android笔记-对称与非对称加密及DH密钥交换的主要内容,如果未能解决你的问题,请参考以下文章

对称加密与非对称加密

openssl 非对称加密算法RSA命令详解

对称加密与非对称加密

对称加密与非对称加密

对称密钥与非对称密钥

对称密钥与非对称密钥