密码学中有一种加密方法叫做 one time pad ,翻译过来叫做“一次性密码本”。因为这种密码最早就是真的写在一个本子上传递的,所以有了这个名字。这是一种安全度最高的加密方法,需要通信双方事先去沟通一个一次性的和被加密信息长度相等或者更长的秘钥。
什么是 one time pad
先来仔细看看什么是 one time pad 。
使用凯撒密文进行加密的时候,我们把信息的每一个字母都按照字母表移动相同的位数。移位数量可以取1到26的任意一个数。比如,我们想加密的信息是 alice ,这样其实总的密文的可能性也没有多少种,所以可以很容易用暴力搜索的形式找到信息。
但是使用 one time pad 的时候,每一个字母移动的位数是不同的,每一个字母的取值就有26种可能,这样可能生成的密文种类就是26的五次方,有一千多万种可能。这几个移动的位数组成的字符串,就是本次加密的秘钥,长度是跟密文一致的,或者说,它就是一个 one time pad 。
可以看到 one time pad 是非常安全的。
处理二进制信息
但是在互联网时代,人们看待信息不再是以字母为单位了,而是用0和1。下面看看如何用 one time pad 处理二进制形式的信息。
具体步骤是这样的。有一个若干二进制位的信息,我们需要一个跟它长度一样的秘钥。加密的时候,我们会认为信息就是一连串的二进制数,秘钥也是。加密的结果--密文,也是一样的,每一位都是对应的信息位和对应的秘钥位进行异或运算得到的结果。
异或是一种常见的逻辑运算。
局限性
one time pad 虽然是最强的加密方法,但是也有自己的局限性。
使用 one time pad 有两个最佳实践。第一,一个 one time pad 只用一次。第二,每个 one time pad 中的数据要保证真正的随机。
这意味着真正使用的时候,每次加密都需要重新生成并且再次发布给通信双方。互联网是一个不安全的环境,安全的发布 one time pad 其实是非常困难的,这就使得在很多的应用情形下是不能使用 one time pad 的。
总结
最后总结一下,one time pad 是一种最强的加密方式。通信双方需要事先共享一个一次性的,和信息长度相同或者更长的秘钥。
农业人工智能如何去实现新战略
阿里云AIoT停车服务引擎获2020首届中国城市停车数据应用赛第一名
详谈连接器之电流承载能力
反击!中国实施镓、锗等相关物实施出口管制
利用GPRS无线通信技术与通讯模块实现远程数据采集系统的设计
什么是One Time Pad加密方式
Arm将推出专用处理器,有何特点?
基于RTL综合策略的状态机优化方案
“OLED+” | 淘气三千问之 你问我答
ADSS光缆要怎样施工
元太科技宣布电子纸为全球首个获得国际暗天协会认证的显示技术
一种在线修改Xilinx FPGA嵌入式RAM比特流的方法
天玑 9200——技能满点,体验升级
鸡舍智能环境控制系统,智能化管理,升级智慧养殖场
业务下滑,LED移动照明企业涌向资本市场坚持多业务并举发展
手机来电提示器制作方案
追剧党必看!手机居然有这三个隐藏功能
国资委组建科技联合体,攻克芯片等卡脖子技术
无人机有效载荷70公斤 同时还具备着舰能力
短路测试器设计