在之前的文章中,我们讲到了对称密码,公钥密码,消息认证码和数字签名等密码学的技术,这些技术中都使用到了一个叫做密钥的东西。
那么到底什么是密钥呢?密钥就是一个key,通过这个key可以获得最终的明文。所以密钥其实是和明文等价的。
举个例子,保险箱里面放着十万美元,保险箱被锁住了,并且有一个钥匙。那么这个拥有钥匙的人和拥有了十万美元是等价的。
各种密钥总结之前的文章中,我们分别讲到了对称密码,公钥密码,消息认证码和数字签名这四种密码学技术。这里我们再来回顾一下。
对称密码
对称密码使用相同的密钥来进行明文的加密和解密。
公钥密码
消息认证码使用相同的密钥来对消息进行认证。
数字签名
数字签名使用不同的密钥来对消息进行签名和验证。
其中对称密码和公钥密码是直接对明文进行加密,从而用来保证消息的机密性。
而消息认证码和数字签名则是用来做消息的认证,其本身并不用作对明文的加密,主要来验证消息的合法性。
其他密钥分类上面的四种是按照加密方式和使用用途来分的,其实安装密钥的使用次数可以分为会话密钥和主密钥。
会话密钥是只用在一个会话中的密钥,用完之后就废弃不用了,而主密钥是固定的密钥,一直重复使用的密钥。
熟悉SSL/TLS协议的朋友肯定对这个比较熟悉,在这个协议中每次会话都会创建一个单独的密钥用来加密会话消息,也就是说每次会话都会创建一个会话密钥。
另外安装加密对象是内容还是密钥,我们可以分为加密消息的密钥(CEK)和加密密钥的密钥(KEK)。加密消息的密钥很好理解,之前的对称密钥和公钥密钥就是CEK。而加密密钥的密钥主要是为了减少密钥的保存个数。
密钥的管理我们主要从下面几个方面来讲解密钥的管理:
生成密钥生成密钥有两种方式,使用随机数和使用口令。
随机数一定要有不可被推断的特性,一般来说我们需要使用伪随机送生成器来生成。
java代码中我们通常会用到Random类,但是这个类是不能用来生成密钥的。我们可以使用java.security.SecureRandom来生成密码安全的随机数。
下面是SecureRandom的两种常用用法:
SecureRandom random = new SecureRandom(); byte bytes[] = new byte[20]; random.nextBytes(bytes);
byte seed[] = random.generateSeed(20);
除了随机数,另外一种方式就是口令了。
口令是人类可以记住的密码,为了保证口令生成的密钥不会被暴力破解,需要对口令加盐。
简单点说就是向口令添加一个随机数,然后对添加之后的数进行hash计算,计算出来的结果就可以当做密钥了。
配送密钥为了配送密钥我们可以采用事先共享密钥,使用密钥分配中心,使用公钥密码等方式。当然还可以采用其他的方式来配送。
更新密钥有的时候,为了保证密钥的安全,我们需要不定期的更新密钥,一般的做法就是使用当前的密钥作为一个基准值,通过特定的算法计算出新的密钥。
保存密钥学过区块链的应该都知道有个纸密钥的东西,实际上就是把密钥写在纸上进行保存。
当密钥太多的话,离线保存密钥也成了一个非常困难的工作。这时候就可以使用到密钥的密钥KEK。将这些密钥加密后保存。
这样加密后的密钥我们不用特别考虑其安全性,因为即使被窃取也无法还原之前的密钥。我们只需要保存加密这些密钥的密钥即可。
作废密钥作废密钥是个非常比较复杂的事情,因为密钥就是密钥,即使你把它删除,其他的人也可能持有它的备份。所以在设计的时候要充分考虑到密钥作废的情况。
之前的证书一文中,我们可以通过CRL列表来保存废弃的密钥。
欢迎关注我的公众号:程序那些事,更多精彩等着您!
更多内容请访问:flydean的博客 flydean.com
1、「墨子号」量子科学实验卫星有哪些先进之处?
“墨子号”是中国于2016年8月16日发射的一颗量子科学实验卫星,这是世界上第一颗量子科学实验卫星。墨子号升空时肩负着三大科学任务:星地间量子密钥传输;千公里级量子纠缠分发检验贝尔不等式;星地间量子隐形传态。墨子号升空大约1年后这三大任务就已圆满完成。

墨子号的设计寿命只有2年,目前仍在超期服役。前不久利用墨子号发出的纠缠光子对,潘建伟等人在国际上首次实现了基于量子纠缠的千公里级量子密钥分发。今年5月份还曾在国际上首次实现了量子安全时间传递的原理性实验验证。这些成就的取得与中国拥有墨子号卫星有着密切关系。
如果在实验室或大气层、光导纤维中传输纠缠光子,量子纠缠的分发距离不会很长。到了太空自由空间中,光子的传输几乎不会受到任何阻碍,这是将量子纠缠发射装置送到太空的原因。

把量子纠缠发射装置、通讯装置等直接送进太空并不能像在地面上这样发挥作用,除了要克服太空高真空、高温、低温、强辐射等恶劣环境,还必须保证在地面上能够接收到来自墨子号卫星发射的信号。墨子号卫星没有送到地球卫星的同步轨道上,因为地球卫星的同步轨道高达3万5千多千米,在那样的高度几乎一直被太阳照射,发出的信号很容易受到太阳光的干扰。墨子号卫星距离地面的高度大约是500千米,在这样的高度卫星以接近第一宇宙速度的速度高速飞行,它发出的光子需要准确投到地面接收装置中,这需要非常高的对准精度。潘建伟和央视记者董倩对话时提到的看清木星轨道上的车牌,指的就是这种对准精度。另外潘建伟还提到看清月球上火柴发出的光,这指的是600万个光子衰减到只剩1个时也能够探测到。只有探测精度达到这种程度才能将量子卫星送进太空,并依靠卫星完成各种科学实验。日本曾经发射了一颗卫星也号称是量子通信卫星,但是它没有墨子号这样的精密技术,它并不是真正意义上的量子通信卫星。

相关阅读
猜你喜欢
- 10-20我的88星座手游1.0最新版
- 11-20我要看神奇的动物在哪里,神奇动物在哪里详细内容
- 11-22哪款奇迹手游比较好(奇迹觉醒后期最强职业)
- 09-27吃豆豆大作战v1.1.1.0安卓版
- 11-21怎样调整鼠标dpi「台式电脑鼠标dpi的调节方法台式电脑如何修改鼠标dpi」
- 08-07Dolphy(海豚跳跃)1.0.4安卓版是一款非常好玩的休闲类手游,在海豚跳跃游戏中,玩家需要控制角色在游戏中跳跃,并获取分数,简单的游戏玩法,趣味性的操作体验,还可以和好友对战,全新的海底探险之旅,
- 10-05GEREO(GODEATERRESONANTOPS)v1.0安卓版
- 09-20混迹官场安卓版v1.0手机版
- 11-25头顶百会具体位置图片(怎样按摩百会的准确位置图片)
- 11-25身份证扫描件要去打印店弄吗「教你一招把身份证扫描到手机上以后再也不用去打印店了」
- 11-25王者荣耀0元刷段位软件(战术机器人最新版)
- 11-25迷你世界猪怎么驯服(迷你世界野人怎么驯服-)
- 11-25微粒贷开通方法及流程「微粒贷开通步骤有几点要了解一下」
- 11-25吃鸡有没有电脑版(电脑玩的吃鸡叫什么名字)
- 11-25苹果系统玩魔兽,暴雪战网补丁问题
- 11-25密钥 密钥,一次性密钥
- 551℃浅浅女王梦h5手游安卓版是一款根据同名页游改编而成的角色扮演手机游戏,游戏继承页游的经典玩法,讲述了女王之梦中的故事,丰富的游戏系统,丰富的游戏剧情,让你享受一场梦幻之旅。
- 185℃三国点将录官方版v1.0.13安卓版
- 183℃RealMoto(真实骑手(RealRiders))安卓版
- 182℃剑武九天海量版v1.0
- 177℃HiddenCity神秘之城寻物历险v1.21.2101安卓版
- 169℃sallytowerv1.0.0安卓版
- 168℃BallsRace(云霄飞跃)1.0安卓版
- 165℃富甲萌国v1.0安卓版是一款极其热血的策略战争手机游戏,富甲萌国v1.0安卓版采用Q版游戏风格构建热血战争世界。丰富的职业、角色可供选择,特色技能随心搭配,更有丰富PVP玩法和特色剧情副本等你来挑战,