安卓手机密钥怎么交换
⑴ 简要介绍DH密钥交换算法
姓名:朱睿琦
学号:15180288015
参考:https://ke..com/item/Diffie-Hellman/9827194?fr=aladdin
http://blog.csdn.net/fw0124/article/details/8462373
【嵌牛导读】:随着互联网络的高速发展,计算机运算能力的提升,对信息的保密也有了更近一步的要求——不仅信息要保密,密钥也要保密。DH(Diffie-Hellman)算法就提供了使密钥安全通过不安全网络的方法。
【嵌牛鼻子】:DH算法,密钥,网络信息安全
【嵌牛提问】:DH算法是用来保护什么在网络中的通信安全?DH密钥交换的基本原理是什么?
【嵌牛正文】:(1)、算法描述
离散对数的概念:
原根 :如果 a 是素数 p 的一个原根,那么数值:
a mod p , a^ 2 mod p ,…, a^( p-1) mod p
是各不相同的整数,且以某种排列方式组成了从 1 到 p-1 的所有整数。
离散对数 :如果对于一个整数 b 和素数 p 的一个原根 a ,可以找到一个唯一的指数 i ,使得:
b =( a的i次方) mod p 其中 0 ≦ i ≦ p-1
那么指数 i 称为 b 的以 a 为基数的模p的离散对数。
Diffie-Hellman算法的有效性依赖于计算离散对数的难度,其含义是:当已知大素数 p 和它的一个原根 a 后,对给定的 b ,要计算 i ,被认为是很困难的,而给定 i 计算 b 却相对容易。
Diffie-Hellman算法:
假如用户A和用户B希望交换一个密钥。
取素数 p 和整数 a , a 是 p 的一个原根,公开 a 和p。
A选择随机数XA< p ,并计算YA= a^ XA mod p。
B选择随机数XB< p ,并计算YB= a^ XB mod p。
每一方都将X保密而将Y公开让另一方得到。
A计算密钥的方式是:K=(YB) ^XA mod p
B计算密钥的方式是:K=(YA) ^XB mod p
证明:
(YB)^ XA mod p = ( a^ XB mod p )^ XA mod p
= ( a^ XB)^ XA mod p = ( a^ XA) ^XB mod p (<-- 密钥即为 a^(XA*XB) mod p )
=( a^ XA mod p )^ XB mod p = (YA) ^XB mod p
由于XA和XB是保密的,而第三方只有 p 、 a 、YB、YA可以利用,只有通过取离散对数来确定密钥,但对于大的素数 p ,计算离散对数是十分困难的。
例子:
假如用户Alice和用户Bob希望交换一个密钥。
取一个素数 p =97和97的一个原根 a =5。
Alice和Bob分别选择秘密密钥XA=36和XB=58,并计算各自的公开密钥:
YA= a^ XA mod p =5^36 mod 97=50
YB= a^ XB mod p =5^58 mod 97=44
Alice和Bob交换了公开密钥之后,计算共享密钥如下:
Alice:K=(YB) ^XA mod p =44^36 mod 97=75
Bob:K=(YA) ^XB mod p =50^58 mod 97=75
(2)、安全性
当然,为了使这个例子变得安全,必须使用非常大的XA, XB 以及 p , 否则可以实验所有的可能取值。(总共有最多97个这样的值, 就算XA和XB很大也无济于事)。
如果 p 是一个至少 300 位的质数,并且XA和XB至少有100位长, 那么即使使用全人类所有的计算资源和当今最好的算法也不可能从a, p 和a^(XA*XB) mod p 中计算出 XA*XB。
这个问题就是着名的离散对数问题。注意g则不需要很大, 并且在一般的实践中通常是2或者5。
在最初的描述中,迪菲-赫尔曼密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人攻击。
一个中间人在信道的中央进行两次迪菲-赫尔曼密钥交换,一次和Alice另一次和Bob,就能够成功的向Alice假装自己是Bob,反之亦然。
而攻击者可以解密(读取和存储)任何一个人的信息并重新加密信息,然后传递给另一个人。因此通常都需要一个能够验证通讯双方身份的机制来防止这类攻击。
有很多种安全身份验证解决方案使用到了迪菲-赫尔曼密钥交换。例如当Alice和Bob共有一个公钥基础设施时,他们可以将他们的返回密钥进行签名。
⑵ 安卓手机可以用网络密钥联网吗
可以。
密钥是网络创建者设置的联网密码。比如别人的一个无线路由,为防止其他人随便使用而设置的一个密码。只能找网络创建者获取。网络密钥通常采用公钥加密,公用密钥加密技术使用不对称的密钥来加密和解密,每对密钥包含一个公钥和一个私钥,公钥是公开,而且广泛分布的,而私钥从来不公开,只有自己知道。
⑶ https怎么安全交换密钥
网络找了一些资料,希望对你有帮助:
对称密钥算法非常适合于快速并安全地加密数据。但其缺点是,发件人和收件人必须在交换数据之前先交换机密密钥。结合使用加密数据的对称密钥算法与交换机密密钥的公钥算法可产生一种既快速又灵活的解决方案。
基于公钥的密钥交换步骤如下:
发件人获得收件人的公钥。
发件人创建一个随机机密密钥(在对称密钥加密中使用的单个密钥)。
发件人使用机密密钥和对称密钥算法将明文数据转换为暗文数据。
发件人使用收件人的公钥将机密密钥转换为暗文机密密钥。
发件人将暗文数据和暗文机密密钥一起发给收件人。
收件人使用其私钥将暗文机密密钥转换为明文。
收件人使用明文机密密钥将暗文数据转换为明文数据。
同样,这些步骤是由启用 PKI 的应用程序(如 Microsoft Outlook)来完成的,并且对用户来说是透明的。
⑷ 华为手机的密钥怎样设置
你好!很高兴为您解答
1 在华为荣耀3C手机上找到设置选项,点击设置进入常用手机设置的界面。
2 按系统默认的常用设置里,点击解锁样式。可以看到没有设置密码的时候系统默认是不锁屏的。
3 点击解锁样式,然后选择样式中最后三个其中一种方式来设置密码,这里就以图案的方式来作为手机的密码。
4 系统会提示绘制解锁图案,注意图案必须至少有4点以上
5 绘制图案后后点击最下方的继续按钮,系统会再次确认刚才绘制的图案
6 再次绘第一次的图案后,点下面的确认键就可以了。弹出设置备用PIN码的对话框,这样做的好处是防止图案密码忘记后可以用备用PIN码打开手机。
7 输入至少4个字符的PIN,点下方的继续后,再次确认刚才的动作,这样密码就设置成功了。
希望的我回答可以帮助到您!
⑸ 安卓怎么跟苹果互传
1、Send Anywhere是一个跨平台文件互传应用,支持在安卓、苹果、Windows等系统中快传。
2、以安卓和苹果手机互传视频为例,在两个设备中安装Send Anywhere APP,在安卓手机中打开并选择需要发送给苹果手机的视频;
3、点击发送,等待APP生成6位数字密钥;然后在苹果手机中打开Send Anywhere APP,在左侧选项栏中点击接收,然后点击输入密钥;
4、完成后苹果手机就可以直接接收来自安卓手机发送的视频文件,传输完成后可以直接打开(需要苹果手机支持该视频文件格式)
⑹ 共享秘密密钥交换(高分悬赏)
你好!
(1)
A用户的公钥是
:a^Xb
(mod
97)
=
5^58
(mod
97)
=
44
B用户的公钥是
:a^Xa
(mod
97)
=
5^36
(mod
97)
=
50
(2)
共享密钥是:a^(Xa*Xb)
(mod
19)
=
13^(35)
(mod
19)
=
3
这是基本的diffie-hellman交换协议。
祝好!
回答者:
月冷霜飞
回答的很好呀,自己看看就知道了,不明白的看书!!
希望对你有所帮助,望采纳。
⑺ 网络通信中如何安全交换密钥
单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的但它把整个网络的安全性能全部托付于其中的单个安全单元,而单个网络安全单元又,YdpBoX
⑻ 通信双方如何交换密钥
Bluetooth?
⑼ Android-DH 秘钥交换
DH 是 Whitfield Diffie 和 Martin Hellman 在1976年共同发明的一种秘钥交换算法。主要用于在不安全的网络上客户端和服务端通过交换公钥,生成一个相同的秘钥,并将该秘钥作为对称加密算法的秘钥,达到使对称加密算法的秘钥可以动态修改的目的。这样便提高了数据在网络上传输的安全性。
DH 总共包含四个部分,分别是:质数原根对、公钥、私钥和秘钥。
1. 客户端和服务端使用相同的质数原根对:P=23 和 G=5,这是秘钥交换的必须条件。
2. 服务端生成随机整数 A = 6,并将 A 作为私钥,使用公钥计算公式:
公钥 = G 的 A 次方 取余 P,等于 Math.pow(5,6) % 23,服务端的公钥为: 8。
3. 客户端生成随机整数 B = 7,并将 B 作为私钥,使用公钥计算公式:
公钥 = G 的 B 次方 取余 P,等于 Math.pow(5,7) % 23,客户端的公钥为: 17。
4. 服务端用客户端的公钥生成秘钥,使用秘钥计算公式:
秘钥 = 17 的 A 次方 取余 P,等于 Math.pow(17,6) % 23,服务端的秘钥为: 12。
5. 客户端用服务端的公钥生成秘钥,使用秘钥计算公式:
秘钥 = 8 的 B 次方 取余 P,等于 Math.pow(8,7) % 23,客户端的秘钥为: 12。
客户端和服务端通过交换公钥,生成了相同的秘钥。
⑽ Android加密算法总结
1.概念:
Base64是一种用64个字符(+/)来表示二进制数据的方法,只是一种编码方式,所以不建议使用Base64来进行加密数据。
2.由来:
为什么会有Base64编码呢?因为计算机中数据是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。在网络上交换数据时,比如图片二进制流的每个字节不可能全部都是可见字符,所以就传送不了。最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送,把不可打印的字符也能用可打印字符来表示,所以就先把数据先做一个Base64编码,统统变成可见字符,降低错误率。
3.示例:
加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。
1.DES
DES全称为Data Encryption Standard,即数据加密标准,是一种使用 密钥加密 的块算法。
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
2.3DES
3DES(或称为Triple DES)是三重 数据加密算法 (TDEA,Triple Data Encryption Algorithm)块密码的通称。是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。
3.AES
AES全称Advanced Encryption Standard,即高级加密标准,当今最流行的对称加密算法之一,是DES的替代者。支持三种长度的密钥:128位,192位,256位。
AES算法是把明文拆分成一个个独立的明文块,每一个明文块长128bit。这些明文块经过AES加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密结果。
但是这里涉及到一个问题:假如一段明文长度是192bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding):
AES的工作模式,体现在把明文块加密成密文块的处理过程中。
加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。
1.SHA
安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法,且若输入的消息不同,它们对应到不同字符串的机率很高。
SHA分为SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512五种算法,后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。
2.RSA
RSA算法1978年出现,是第一个既能用于数据加密也能用于数字签名的算法,易于理解和操作。
RSA基于一个数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可提供给任何人使用,私钥则为自己所有,供解密之用。
3.MD5
MD5信息摘要算法 (英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。具有如下优点:
XOR:异或加密,既将某个字符或者数值 x 与一个数值 m 进行异或运算得到 y ,则再用 y 与 m 进行异或运算就可还原为 x。
使用场景:
(1)两个变量的互换(不借助第三个变量);
(2)数据的简单加密解密。