一次一密密码简介

        一次一密密码(one-time pad)最先是由Major Joseph Mauborgne和AT&T公司的Gilbert Vernam在1917年发明的。原理简单,使用便捷,其安全原理是基于信息传递,双方的密钥是随机变化的,每次通信双方传递的明文都使用同一条临时随机密钥和对称算法进行加密后方可在线路上传递。由于密钥一次一变,且没法猜想,这就保证了线路传递数据的绝对安全。即便拥有再大的破解计算能力,在没有密钥的前提下对线路截取的密文也是无能为力的。算法

        这套方案在当时的背景下,仍是比较完美的解决了线路数据传递的安全问题。但也一样存在着不可忽略的问题,即通信双方密钥同步问题。这点很好理解,早先的一次一密密码的实现,须要通信双方保存一个相同的密码集,每一个密码集中拥有N条随机密钥,每次通信顺序使用其中的密钥。但双方的密码集中相同序号的密钥必须是彻底同样的,不然密文没法被正确还原。因此一旦其中一个密码集泄露,那这套加密系统天然就被破解了。这就致使密码集的维护成本极高,且存在安全风险。编程

        时至今日,基于对称加密算法实现的安全方案,不论加密算法自身的安全强度多高,但最核心安全的依然是密钥安全存储与使用,一次一密密码技术在现今使用的很是普遍。不管是银联加密系统,仍是远程视频加密等应用都会涉及到。这其中的关键技术就是密钥的下发与安全存储和销毁。下发过程是多种多样的,但多数使用了密文方式进行密钥更新。安全

        下面简述一种应用方法。A、B双方在已创建互信机制的前提下,分别应用LKT硬件加密芯片存储一条线路保护密钥KEY_pro。每次通信以前,A利用加密芯片产生N字节随机数做为数据加密密钥KEY_en并存储于RAM之中,在加密芯片内部经KEY_pro加密后生成密文C1,A将C1发送给B后,经加密芯片内部的KEY_pro解密还原出KEY_en并存储于加密芯片RAM中。每次A、B双方正式通信前,都通过上述操做完成密钥同步,而后利用KEY_en对通信数据加密传递,这就实现了一次一密码的安全方案,同时解决了密钥存储维护的难题。之因此这样说,是由于加密芯片自身具备高安全等级,可有效防止暴力破解等数据破解方式,保证内部数据存储与运行安全。线路传递数据的加解密都在芯片内部完成,保证线路安全。最主要的是加密算法可灵活选择,利用LKT加密芯片的可编程特色,可以自由切换加密密钥和加密算法,让一次一密,一次多密或者屡次多密的应用都变成可能,打开了嵌入式应用开发人员的思惟模式,让安全变得更贴近应用。加密

 

参考文献:视频

Applied Cryptography protocols,Algorithms,and Source Code in C Second Edition(美)Brucc Schncic著 吴世忠 祝世雄 张文政 等译(11-12)ci

相关文章
相关标签/搜索