防泄漏一次一密通信方法及装置与流程

专利2024-10-07  13


本发明涉及加密通信和网络安全技术领域,尤其涉及防泄漏一次一密通信方法及装置。



背景技术:

为了保障通信的机密性,一次一密被证明是具有绝对安全意义的通信加密手段,一次一密密码最早由majorjosephmauborgne和at&t公司的gilbertvernam在1917年所发明。

在使用一次一密方式进行加密通信时,需要满足以下几个条件,才能保证通信的绝对安全:

(1)密钥必须是真正的随机序列;

(2)密钥长度至少与明文一样长;

(3)每个密钥仅对一个消息使用一次,不可重复使用;

(4)密钥在传输过程中不能泄露。

对应地,一次性密码本(onetimepad)是一种典型的的一次一密通信方式。一次性密码本系统框图如图1所示。密码本a、b上写有相同的随机数序列,作为通信密钥。事先将密码本a、b以某种方式分发(可以机械运输)给通信双方,假定通信双方分别设为alice和bob。一次性密码本的最大优势在于,即使攻击者通过暴力破解等方法获得了真正的密钥,也无法判断解码出来的是不是正确的明文,因此一次性密码本理论上可以保证密文无法被攻击者破译。

而在实际应用中,一次性密码本存在着以下几个问题:

一是密钥随机性问题,在一次一密系统中,需要生成大量的随机数作为密钥。根据密码安全的条件,每个密钥只能使用一次,所以用作密钥的随机数不能是通过计算机程序生成的伪随机数,而必须是无重复性的真正随机序列。目前大多采用硬件的方式产生真正的随机数序列,硬件随机数生成器(hardwarerandomnumbergenerator,hrng)通常基于一些微观的物理现象,例如热噪声和光电效应。然而这些基于物理现象的随机数生成装置一般比较复杂,实现较为困难。

二是密钥泄露问题,该问题具体可分为两个方面:

(1)密码本的分发和保存:一次性密码本需要以安全的方式分发给通信双方,并且在通信过程中必须保证密码本的安全,不能发生密钥泄露。另外,由于密码本上的密钥长度≥明文长度,传递、保存密码本和明文的难度相当。因此,如果存在一种可以保证密码本数据安全的方法,则可以直接用此方法传输明文,无需加密。

(2)密钥难以彻底销毁:在实际使用过程中,可以使用u盘、移动硬盘、dvd-r等存储设备存储密钥,每次使用一段密钥后需要及时销毁这段密钥数据。然而,目前很多存储设备删除数据时并不是直接擦除相应位置的数据,而是先对该部分数据打上一个待擦除的标签,禁止用户访问;当用户向对应的存储位置写入新的数据时,再用新数据覆盖原有数据。因此,如果使用一般的存储介质作为密码本存储密钥,会面临数据恢复的风险。即攻击者可以使用逻辑层或物理层的数据恢复技术,将密码本上已使用的密钥恢复出来,从而造成密钥泄露。

三是鉴权问题,该问题具体也可分为两个方面:

(1)对消息的鉴权:传统的一次一密通信不提供消息身份认证功能,即bob无法鉴别收到的消息是否来自alice,以及消息内容是否被篡改过。如图2所示,假设alice对包含“明天下午三点见面”这句话的明文进行加密,传输的密文c被eve截获,如果eve事先知道alice发送消息中的部分明文信息,就能够通过明文和密文反推出对应位置的密钥k,然后利用该密钥加密自己修改过的明文(如“明天下午五点见面”),将新的密文c’发送给bob,从而欺骗bob。

(2)对密码本的鉴权:在实际使用过程中,一次一密通信面临的另外一个问题是对密码本的鉴权认证。攻击者可能同时对通信双方的密码本进行“调包”,即eve用自己伪造的密码本替换了alice和bob的密码本a,b,然后窃听alice和bob之间的通信。此时如果alice和bob不对密码本进行鉴权认证,就会使用eve提供的假密码本继续通信,而eve可以根据已知的密钥顺利解密。

针对上述问题,需要提出新的针对一次一密通信的处理方法。



技术实现要素:

本发明提供防泄漏一次一密通信方法及装置,用以解决现有技术中密钥在传送过程中容易泄露,以及密码本容易被篡改或伪造的缺陷。

第一方面,本发明提供防泄漏一次一密通信方法,包括:

发送方将从密码本中按照主动读取方式读取的的一次性密钥和待发送明文通过预设加密算法生成密文;

将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;

接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;

通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

进一步,所述发送方将从密码本中按照主动读取方式读取一次性密钥和待发送明文通过预设加密算法生成密文,之前还包括:

用户和密码本之间进行双向身份验证;

待认证通过后,所述用户正常使用密码本。进一步,所述发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文,之后还包括:

所述发送方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

进一步,所述接收方通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文,之后还包括:

所述接收方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

进一步,所述双向身份鉴权认证具体包括:

用户通过预设输入信息启动认证过程;

密码本验证用户输入的所述预设输入信息,若所述预设输入信息与所述用户注册时的录入信息一致,则判定所述用户认证成功,并向可信鉴权服务器发送鉴权请求,否则向所述用户发送报错信息,终止认证;

所述可信鉴权服务器向所述密码本发送待签名数据;

所述密码本向所述用户提示触发认证,待收到所述用户的确认信息后,所述密码本使用私钥对所述待签名数据进行签名,将签名后的数据返回至所述鉴权服务器;

所述可信鉴权服务器使用公钥验证所述密码本返回的已签名数据,若验证通过,则向所述用户发送确认消息,否则向所述用户发送密码本认证失败信息;

若所述用户对所述密码本的认证失败次数超过第一预设阈值,则所述用户将所述密码本列入黑名单,不再向所述密码本发送鉴权请求;

若所述密码本对所述用户的认证失败次数超过第二预设阈值,则所述密码本启动自毁程序,将内部数据自动擦除,防止密码本内数据受到进一步攻击;

若所述用户超过预设时间间隔没有使用密码本,则自动触发认证流程。

进一步,所述主动读取方式具体为;

当通信双方采用全双工方式时,第一发送方从所述密码本开头位置按照位置序号从小到大读取待使用的密钥作为加密密钥,第二发送方从所述密码本末尾位置按照位置序号从大到小读取待使用的密钥作为加密密钥;

对应地,所述被动读取方式具体为;

当通信双方采用全双工方式时,第一接收方和第二接收方根据对方发来的密钥位置范围在所述密码本上读取待使用的密钥作为解密密钥。

进一步,所述主动读取方式和所述被动读取方式还包括:

当通信双方中任一方的所述密码本上的未使用区域小于第一阈值时,立即向对方发出第一告警消息,此后通信双方发送的消息长度不超过所述第一阈值的一半;

当通信双方中任一方的所述密码本上的未使用区域小于第二阈值时,立即向对方发出第二告警消息,并终止使用所述密码本以及将剩余数据进行擦除;

其中,所述第二阈值小于所述第一阈值。

第二方面,本发明还提供防泄漏一次一密通信装置,包括:

第一加密模块,用于发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;

第二加密模块,用于将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;

第一解密模块,用于接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;

第二解密模块,用于通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述防泄漏一次一密通信方法的步骤。

第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述防泄漏一次一密通信方法的步骤。

本发明提供的防泄漏一次一密通信方法及装置,通过采用一次性读写的密钥进行加解密,解决了一次性密码本在实际使用过程中面临的密钥泄露、密钥难以彻底销毁问题;通过引入主动、被动两种读取密钥的方式,保证每段密钥只对一个消息使用一次,解决了一次性密钥被重复使用的问题。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术提供的一次性密码本系统框图;

图2是现有技术提供的一次性密码本的鉴权问题;

图3是本发明提供的防泄漏一次一密通信方法的流程示意图;

图4是本发明提供的防泄漏一次一密系统框架图;

图5是本发明提供的用户和密码本之间的双向鉴权系统示意图;

图6是本发明提供的双向身份验证流程图;

图7是本发明提供的鉴权过程的触发机制流程图;

图8是本发明提供的主动、被动密钥读取方式示意图;

图9是本发明提供的防泄漏一次一密通信装置的结构示意图;

图10是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有技术的不足,本发明提出防泄漏一次一密通信方法,如图3所示,包括:

s1,发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;

s2,将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;

s3,接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;

s4,通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

具体地,本发明通过设计一套电子装置,解决一次一密通信系统中的密钥泄露、密钥难以彻底销毁等问题,如图4所示,该装置由写入模块、配对的防泄漏一次性密码本模块组成,防泄漏一次性密码本可以工作于写入、加密、解密三种模式。

首先是写入模式:本系统中,通信双方分别持有一个密码本,两个密码本存储相同的随机数序列作为通信密钥。密码本设计为便携的硬件电子装置,如具有usb接口的小型移动硬盘。该装置包括一次性写入电路、大容量存储器、一次性读出电路、擦除电路等部件。此处,不妨设定发送方为alice,持有密码本a;接收方为bob,持有密码本b。

其次是加密模式:发送方alice每次发送消息时,需要根据待发送明文的长度和密码本a的可用区域,确定本次使用的密码本位置范围。例如:alice之前已经使用了密码本a的第0~1000bit,本次需要发送的明文长度为100bit,则alice可以选取密码本a上第1001~1100bit的随机序列,作为本次通信的密钥。发送方alice通过一次性读出电路读出本次通信的密钥后,使用密钥与明文进行加密运算(如:异或运算),得到密文,之后通过擦除电路销毁擦除对应位置范围的密钥数据。发送方alice将密文和本次使用的密码本位置范围打包发送,通过公开信道传输到接收方bob。

最后是解密模式,接收方bob收到的消息格式为<位置范围;密文>,bob读出密码本b上对应位置范围内的数据,将其作为密钥,使用密钥和密文进行解密运算(如:异或运算)得到明文,之后bob通过擦除电路销毁擦除对应位置范围的密钥数据。

本发明通过使用一次性读写电路,从根本上解决了一次性密码本的密钥泄露问题,密钥数据只能进行一次性的写入和读出,可以保证密钥在使用后被完全擦除,现有的数据恢复技术无法恢复出已使用的密钥;对于在使用过程中发生密钥泄露的情况,如果攻击者窃取了密码本,读取其中的密钥数据,则合法用户再次使用密码本时,不能再次读出被窃取的密钥数据;此外用户会发现密码本的可用位置范围发生变化,从而将发现密码本被窃取。

例如,当alice已经使用了密码本a的0~1000bit时,eve窃取了密码本并读出1001~2000bit的密钥数据,则alice下次通信时只能读取密码本中2000bit之后的密钥数据,不会使用被eve窃取的密钥。

基于上述实施例,该方法步骤s1之前还包括:

用户和密码本之间进行双向身份验证;待认证通过后,所述用户正常使用密码本。

具体地,上述实施例通过使用一次性写入、擦除电路,保证了密码本内数据只能被读取一次,从而解决了密码本数据泄露的问题,本发明实施例针对鉴权问题,设计了一套双向鉴权机制,实现用户和密码本之间的双向身份认证,具体包括两个方面:

(1)密码本认证用户:密码本和用户个人绑定,只有用户本人有权使用密码本,每次使用前,密码本需要验证用户身份;

(2)用户认证密码本:用户每次使用密码本之前,需要验证密码本的真伪,防止密码本被伪造、调换。

基于上述任一实施例,该方法中步骤s1之后还包括:

所述发送方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

其中,该方法中步骤s4之后还包括:

所述接收方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

具体地,由于本发明使用了一次性读写电路,从根本上解决了一次性密码本的密钥泄露问题,在加密和解密后,分别将密钥进行物理上的完全擦除,该密钥被擦除后,对应的位置范围也是不可重复使用的,使得现有的数据恢复技术无法恢复出已使用的密钥。

基于上述任一实施例,所述双向身份鉴权认证具体包括:

用户通过预设输入信息启动认证过程;

密码本验证所述预设输入信息,若所述预设输入信息与所述用户注册时的录入信息一致,则判定所述用户认证成功,并向鉴权服务器发送鉴权请求,否则向所述用户发送报错信息,终止认证;

所述鉴权服务器向所述密码本发送待签名数据;

所述密码本向所述用户提示触发认证,待收到所述用户的确认信息后,所述密码本使用私钥对所述待签名数据进行签名,将签名后的数据返回至所述鉴权服务器;

所述鉴权服务器使用公钥验证所述密码本返回的已签名数据,若验证通过,则向所述用户发送确认消息,否则向所述用户发送密码本认证失败信息。

若所述用户对所述密码本的认证失败次数超过第一预设阈值,则所述用户将所述密码本列入黑名单,不再向所述密码本发送鉴权请求;

若所述密码本对所述用户的认证失败次数超过第二预设阈值,则所述密码本启动自毁程序,将内部数据自动擦除,防止密码本内数据受到进一步攻击。

若所述用户超过预设时间间隔没有使用密码本,则自动触发认证流程。

具体地,本发明提出的双向身份鉴权认证方案如图5所示,其中密码本负责对用户进行身份验证;用户对密码本的验证借助一个安全、可信的鉴权服务器实现。

在首次使用密码本之前,用户需要进行注册。用户可以使用预设输入信息,例如传统的“用户名-密码”方式注册,也可以录入指纹、语音、虹膜和面部特征等个人信息,这些个人信息存储在密码本本地的安全区域,与用作密钥的随机数序列分开存储,从而保证用户个人数据的安全性。注册成功后,密码本为用户产生一对非对称密钥,其中私钥存储在密码本本地,公钥发送给远端的鉴权服务器。

用户每次使用密码本之前,都需要进行双向身份验证,该过程如图6所示,双向身份验证的具体过程如下:

(1)用户输入用户名、密码,或通过指纹、语音等其它方式启动认证过程;

(2)密码本验证用户的输入信息,若与用户注册时录入的信息一致,则告知用户认证成功,并向鉴权服务器发送鉴权请求;否则向用户发送报错信息,终止认证过程;

(3)鉴权服务器向密码本发送一段待签名的数据(challenge消息);

(4)密码本提示用户触发认证,在收到用户确认后,密码本使用私钥对challenge消息进行签名,将签名后的数据返回给鉴权服务器;

(5)鉴权服务器使用公钥验证密码本发来的响应,若验证通过,则向用户发送确认信息,告知用户“密码本验证通过”;否则向用户发送认证出错信息。

如果双向身份认证中的任一方向出现错误,在发送错误信息的同时,还可以请求重新认证。多次认证出错时,可以采取以下措施:

一是用户对密码本的认证:如果密码本多次认证失败,则用户的设备可以将该密码本列入黑名单,不再向其发送鉴权请求;

二是密码本对用户的认证:如果用户多次认证失败,则密码本可以启动自毁程序,自动擦除内部所有数据,防止密码本受到进一步攻击。

可以理解的是,在发送方每次需要使用密码本时,需要先进行双向鉴权认证,验证密码本的真实性;如果用户长时间没有使用密码本,也要定期触发双向鉴权认证,这样如果密码本被调换,可以确保尽早发现。该认证过程的触发机制如图7所示,在实际运用中,可以根据实际需求,适当选择鉴权时间间隔t0。

本发明针对密码本可能被伪造、调换的问题,设计了用户-密码本双向鉴权机制,实现了用户和密码本之间的双向身份认证,通过指纹、密码等方式实现对用户身份的认证;通过引入鉴权服务器,使用非对称密钥签名,实现对密码本的认证;如果密码本被伪造或调换,则鉴权服务器会直接向用户发送错误信息,提醒用户密码本身份异常。

基于上述任一实施例,所述主动读取方式具体为;

当通信双方采用全双工方式时,第一发送方从所述密码本开头位置按照位置序号从小到大读取待使用的密钥作为加密密钥,第二发送方从所述密码本末尾位置按照位置序号从大到小读取待使用的密钥作为加密密钥;

对应地,所述被动读取方式具体为;

当通信双方采用全双工方式时,第一接收方和第二接收方根据对方发来的密钥位置范围在所述密码本上读取待使用的密钥作为解密密钥。

所述主动读取方式和所述被动读取方式还包括:

当通信双方中任一方的所述密码本上的未使用区域小于第一阈值时,立即向对方发出第一告警消息,此后通信双方发送的消息长度不超过所述第一阈值的一半;

当通信双方中任一方的所述密码本上的未使用区域小于第二阈值时,立即向对方发出第二告警消息,并终止使用所述密码本以及将剩余数据进行擦除;

其中,所述第二阈值小于所述第一阈值。

具体地,在使用一次一密时,从密码本读出的每一段密钥只能对同一条消息使用一次。如果通信双方按照相同的顺序从前到后读取密码本,则一种可能的情况是:alice读取密码本a上[x0,x1]范围的密钥,加密消息ma,发送给bob;bob在收到消息ma之前,读取密码本b上[x0,x2]范围的密钥,加密消息mb,发送给alice。该种情况下,密码本上[x0,min(x1,x2)]范围的密钥被使用两次,分别加密不同的消息,违反了“一次一密”的原则。

因此,为了避免上述密钥重复使用的情况,且支持全双工通信,需要设计一种读取密钥的规则,让通信双方按照不同的顺序读取密钥数据。如图8所示,用户读取密钥分为以下两种模式:

(1)主动读取:

通信双方事先约定好,当需要向对方发送消息时,一方(设为alice)按位置序号从小到大的顺序,从密码本0位置处开始读取密码本,作为加密密钥;另一方(设为bob)按位置序号从大到小的顺序,从密码本最末尾开始读取密码本,作为加密密钥;

(2)被动读取:

当收到另一方的消息,需要解密时,根据对方发来的位置范围读取密钥,用于解密。

此处,为确保密码本在可用存储范围即将耗尽时的安全,本发明还提出如下交互方案:

当通信双方中任意一方的密码本上的未使用区域长度小于某一阈值l1时,立即向对方发出warning消息,提醒对方密码本可用范围即将用尽;此后,通信双方每次发送的消息长度不能超过0.5*l1;

当通信双方中任意一方的密码本未使用区域长度小于另一个阈值l2(l2<l1)时,终止使用该密码本并擦除剩余数据,同时向对方发送warning消息,提醒对方密码本已作废。

下面对本发明提供的防泄漏一次一密通信装置进行描述,下文描述的防泄漏一次一密通信装置与上文描述的防泄漏一次一密通信方法可相互对应参照。

图9是本发明提供的防泄漏一次一密通信装置的结构示意图,如图9所示,包括:第一加密模块91、第二加密模块92、第一解密模块93和第二解密模块94;其中:

第一加密模块91用于发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;第二加密模块92用于将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;第一解密模块93用于接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;第二解密模块94用于通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

本发明通过采用一次读写的密钥进行加解密,解决了一次性密码本在实际使用过程中面临的密钥泄露问题。

图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(communicationsinterface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行防泄漏一次一密通信方法,该方法包括:发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的防泄漏一次一密通信方法,该方法包括:发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的防泄漏一次一密通信方法,该方法包括:发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以部署在单个节点,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


技术特征:

1.防泄漏一次一密通信方法,其特征在于,包括:

发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;

将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;

接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;

通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

2.根据权利要求1所述的防泄漏一次一密通信方法,其特征在于,所述发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文,之前还包括:

用户和密码本之间进行双向身份验证;待认证通过后,所述用户正常使用密码本。

3.根据权利要求1或2所述的防泄漏一次一密通信方法,其特征在于,所述发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文,之后还包括:

所述发送方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

4.根据权利要求1所述的防泄漏一次一密通信方法,其特征在于,所述通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文,之后还包括:

所述接收方通过擦除电路将所述密码本位置范围对应的密钥数据进行擦除销毁,所述密码本位置范围为不可重复使用的地址范围。

5.根据权利要求2所述的防泄漏一次一密通信方法,其特征在于,所述双向身份鉴权认证具体包括:

用户通过输入预设的用户名密码,或通过扫描指纹、声纹等方式启动认证过程;

密码本验证用户输入的所述预设输入信息,若所述预设输入信息与所述用户注册时的录入信息一致,则判定所述用户认证成功,并向可信鉴权服务器发送鉴权请求,否则向所述用户发送报错信息,终止认证;

所述可信鉴权服务器向所述密码本发送待签名数据;

所述密码本向所述用户提示触发认证,待收到所述用户的确认信息后,所述密码本使用私钥对所述待签名数据进行签名,将签名后的数据返回至所述鉴权服务器;

所述可信鉴权服务器使用公钥验证所述密码本返回的已签名数据,若验证通过,则向所述用户发送确认消息,否则向所述用户发送密码本认证失败信息;

若所述用户对所述密码本的认证失败次数超过第一预设阈值,则所述用户将所述密码本列入黑名单,不再向所述密码本发送鉴权请求;

若所述密码本对所述用户的认证失败次数超过第二预设阈值,则所述密码本启动自毁程序,将内部数据自动擦除,防止密码本内数据受到进一步攻击;

若所述用户超过预设时间间隔没有使用密码本,则自动触发认证流程。

6.根据权利要求1所述的防泄漏一次一密通信方法,其特征在于,所述主动读取方式具体为;

当通信双方采用全双工方式时,第一发送方从所述密码本开头位置按照位置序号从小到大读取待使用的密钥作为加密密钥,第二发送方从所述密码本末尾位置按照位置序号从大到小读取待使用的密钥作为加密密钥;

对应地,所述被动读取方式具体为;

当通信双方采用全双工方式时,第一接收方和第二接收方根据对方发来的密钥位置范围在所述密码本上读取待使用的密钥作为解密密钥。

7.根据权利要求6所述的防泄漏一次一密通信方法,其特征在于,所述主动读取方式和所述被动读取方式还包括:

当通信双方中任一方的所述密码本上的未使用区域小于第一阈值时,立即向对方发出第一告警消息,此后通信双方发送的消息长度不超过所述第一阈值的一半;

当通信双方中任一方的所述密码本上的未使用区域小于第二阈值时,立即向对方发出第二告警消息,并终止使用所述密码本以及将剩余数据进行擦除;

其中,所述第二阈值小于所述第一阈值。

8.防泄漏一次一密通信装置,其特征在于,包括:

第一加密模块,用于发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;

第二加密模块,用于将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;

第一解密模块,用于接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;

第二解密模块,用于通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。

9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述防泄漏一次一密通信方法的步骤。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述防泄漏一次一密通信方法的步骤。

技术总结
本发明提供防泄漏一次一密通信方法及装置,包括:发送方将从密码本中按照主动读取方式读取的一次性密钥和待发送明文通过预设加密算法生成密文;将所述密文和所述一次性密钥对应的密码本位置范围打包后,通过公共信道传送至接收方;接收方根据所述密码本位置范围,以被动读取的方式从所述密码本中读取解密密钥;通过预设解密算法将所述解密密钥和所述密文进行解密运算,得到接收明文。本发明通过采用一次读写的密钥进行加解密,解决了一次性密码本在实际使用过程中面临的密钥泄露、密钥难以彻底销毁问题;通过引入主动、被动两种读取密钥的方式,保证每段密钥只对一个消息使用一次,解决了一次性密钥被重复使用的问题。

技术研发人员:葛宁;姜宇
受保护的技术使用者:清华大学
技术研发日:2020.12.03
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-21627.html