各位网友好,小编关注的话题,就是关于国外友情链接交换 bit的问题,为大家整理了2个问题国外友情链接交换 bit的解答内容来自网络整理。
skd如何连接蓝牙
蓝牙配对过程分为三个阶段:
第1阶段用来交换配对特征交并得到临时密钥TK。

第2阶段中会进行身份确认以及产生短期密钥STK。
第3阶段是设备绑定的过程,这期间会传输加密链路中使用到的LTK、IRK 以及 CSRK 等密钥,此阶段传输的数据是通过第一、二阶段的短期密钥进行加密传输的。

配对特征交换的是输入输出(IO)功能、认证需求(需不需要绑定以及防止MITM )、密钥大小(固定为128bit)。
配对特征交换时, 各自将自己的综合能力发送给对方设备,最后根据两个设备的能力最终选择那种方式实现 TK 值的共享。
当使用对称加密时,如何将密钥传递给对方?如果用非对称加密,加密时间过长怎么>办理/h2>
这个问题有点专业性,刚好我项目中这两种加密技术都使用过,对这两种加密方式有一定的理解。
可能有些小伙伴还不太清楚这两种加密方法,那在回答问题前,我们先搞懂清楚是对称加密和非对称加密。
对称加密
通常是采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
对称加密对内容的加解密需要使用相同的算法,对称加密速度快,一般用于消息发送方数据量比较大时使用。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥。
非对称加密
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。
公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
公钥与私钥是不相同的,并且只能公钥加密,私钥解密,所以称为非对称加密。
非对称加密算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,这样安全性就大了很多。
非对称加密算法核心就是质因数分解,大家感兴趣可以去搜索李永乐老师的讲解视频。
对称加密算法的>利用/strong>
对称加密算法加密速度快,非常适合对安全性要求不高的数据,而且支持大量数据一次性加密。
我们是在APP开发的,会从后台服务器获取数据,在这个数据传输的过程中会存在加密操作。
下面先介绍下对称加密算法在代码中的表现形式。
我是采用Java编程的,java里面已经封装好了对称加密代码库,所以我们直接调用就可以实现对称加密。
如图,SecretKeySpec类主要是负责密钥的实现算法,比如有AES、DES等算法,那我们一般使用AES算法。
Cipher类是负责具体的加解密工作,只需把密钥加密算法和加密内容传入,就能获得加解密好的字节数组。
在项目中,一般是用于对安全性不高,但数据量较大的接口做对称加密处理。我之前做过一个B端项目,里面有个业务中心需要获取大量的业务数据,那这个数据用的就是对称加密。
我还做过一个银行项目,里面除了登陆和修改密码的接口,其他的接口全用的对称加密。
非对称加密算法的>利用/strong>
通过X509EncodedKeySpec类获取标准的公钥,X509是密码学里公钥证书的格式标准,这里获取的公钥就是按照 X.509 标准进行编码的密钥的字节数组。
通过KeyFactory类获取加密算法类型,一般是RSA。
然后再用Cipher类进行加密。
非对称加密由于算法复杂,所以加密速度相对较慢,而且RSA算法只能支持加密128bit数据,其中还包括padding的11bit,所以实际上只能加密117bit的数据。
在APP端项目中,一般是针对安全性要求高,而且数据量小的接口。比如项目中的的登陆,涉及到账户密码的传输,可以用非对称加密。
对称加密时,如何将密钥传递给对方
直接通过网络传递,比如微信直接传递,这种方案一般是同一公司内部人员进行数据传递时使用,此种方案密钥泄漏的风险极高。
- 通过物理方式传递,比如银行的U盾,使用时插入U盾,读取里面的密钥,进行数据加解密传输,这种方案相对比较稳妥,物理方式存储密钥,一般不容易泄露,除非U盾丢失。
- 通过第三方分发密钥,A和B在在加解密通信前,先各自到第三方获取密钥。这种方案最为稳妥,双方都不知道实际密钥,而且下一次通信时密钥会重新获取。
- 通过非对称加密方式对密钥进行加密传输,这种方式也不错,我项目里面也有使用这种方案,通常是针对动态密钥的接口。
如果用非对称加密,加密时间过长怎么解决?
可以将加密内容截取,分段进行加解密。可以在加密前进行字符串长度判断,如果加密内容超过了117bit,就对半截取,依次下去。然后解密方在进行拼接显示。此种方案实现比较简单,但需要双方实现此逻辑。
- 可以将内容打包生成MD5值,然后将MD5值加密传递,解密方通过MD5值校验文件的真实性与正确性。此种方案虽然能解决加密时间过长问题,但是无法保护文件,一旦被抓包获取,就直接能看到内容,所以对网络安全没有绝对把握的话,不要使用此种方案。
总结
对称加密和非对称加密应用在生活的方方面面,比如我国古代的虎符,只有两半合成时才能调兵遣将,这也是对称加密的体现,今天我们以IT领域举例说明,在密钥传输中如何保证密钥的安全性,也给出了非对称加密时间过长的解决办法,但需要结合使用场景去选择解决方案。
在人性浮躁的社会,人人都缺乏安全感,加密显得格外重要!
我是非著名攻城狮,希望我的回答对你有用,感谢您的阅读与支持!
密码学中将加密分为对称加密和非对称加密。所谓对称不对称指的就是密钥(yuè),注意这个字的发音,常常容易读错。一段数据从明文到密文再到明文的过程,如果用的同一个密钥就是对称加密,用的两个密钥就是非对称加密,把非对称加密中从明文到密文使用的密钥称为公钥,从密文到明文使用的密钥称为私钥。
题主第一个问题本质上说的是密钥协商算法,最流行的就是DH协议了,全称Diffie-Hellman,一个非常简单的基于离散对数难题的算法,再往深了说,还有基于椭圆曲线上的离散对数难题的ECDHE密钥协商算法,DH算法的升级版。目前就应用在HTTPS中。感兴趣的童鞋用火狐访问下百度,点击链接前面的绿色的锁,查看详情,就能看到用的哪些算法:
题主第二个问题想问的应该是非对称加密目前的应用场景。非对称加密时间是比对称加密长的,而且不是一点半点,极端情况下,同一段数据慢上数千倍都有可能的。那么是否非对称加密算法就没有用武之地了呢?非也,我们可以不用非对称算法来加密数据。我们再回到上面图中的算法,你一眼应该就能看到一个熟悉的身影,RSA,典型的非对称加密算法。前面说了,ECDHE是用来交换密钥的,密钥是来自对称加密AES算法的128位密钥,RSA的作用是什么?
非对称算法的一个重大领域就是签名。你需要做的就是把非对称算法倒过来用。公钥加密,私钥解密,倒过来就是,私钥签名,公钥验证。RSA在我访问百度HTTPS中的作用就是,在ECDHE交换密钥过程中给服务器签名,通过我这边火狐浏览器进行公钥验证,从而完成了百度服务器的身份认证。
前面我为了大家的理解,一直没有说的是,其实DH或者ECDHE也属于非对称加密算法。于是非对称算法的另一个重大领域也呼之欲出,就是密钥协商。
到此,大家对国外友情链接交换 bit的解答时否满意,希望国外友情链接交换 bit的2解答对大家有用,如内容不符合请联系小编修改。