单向流程前向安全技术实现方法与流程

文档序号:12491044阅读:218来源:国知局
单向流程前向安全技术实现方法与流程

本发明涉及通信技术领域,尤其涉及一种单向流程前向安全技术实现方法。



背景技术:

前向安全技术就是密码领域的关键技术之一,所谓前向安全概念是就算在密码算法、系统参数及当前密钥都发生泄漏的严重情况下,也不会危害用户在该时间段以前的安全性,从而大大地降低了密钥泄露带来的危害。

目前国内专利中涉及前向安全机制的较少,主要方法还是在基于非对称密钥体制下,通过多次交互通的密钥协商的方式实现前向安全,密钥演化机制复杂,可实现性和可用性较差。

名称为一种基于身份的前向安全的数字签名方法、装置及系统的专利申请中,重点阐述了通过身份信息的提取、运算及签名过程,整个前向安全设计流程包括了多条交互,从密钥生成中心KGC发布系统公开参数,发送方收到后初始化公开参数,在注册请求中携带身份信息,获取对应的签名私钥,最后在发起具有前向安全能力的“业务消息M和签名”,该专利解决了前向安全,但交互较多流程复杂。名称为一种确保前向安全的方法、网络设备、用户设备和通信系统的专利申请中,重点阐述了用户设备与目标eNB的密钥协商过程,通过两个交互实现前向安全密钥的演化方法。而现有其它中国专利及公知技术中,更多侧重前向安全算法的研究。

总之,根据目前公开的专利及公知技术,都未解决移动通信(如短信)、卫星通信及微波散射等窄带移动互联网络的前向安全技术的通道资源、计算效率等问题。



技术实现要素:

鉴于上述的分析,本发明旨在提供一种单向流程前向安全技术实现方法,用以解决移动通信(如短信)、卫星通信及微波散射等窄带移动互联网络的前向安全技术的通道资源、计算效率等问题。

本发明的目的主要是通过以下技术方案实现的:

本发明提供了一种单向流程前向安全技术实现方法,包括:

在发送端和接收端分别预置有相同的密钥库,每组密钥数据中包含“组版本号+组密钥数据”,将版本号Cur_V与组号GID进行关联,组号GID与密钥存储位置一一对应;

发送端从其密钥库中按GID读取密钥数据,然后携带版本号Cur_V一起发起业务给接收端,同时更新该GID位置的密钥数据及版本号,其中发送端Cur_V=组版本号V_O;

接收端根据解析得到的版本号Cur_V进行计算得到GID,根据所述GID读取接收端对应位置的密钥数据,将读取的接收端的密钥数据中的组版本号V_T与接收到的版本号Cur_V进行比较,当确定二者相同时,业务相通,同时在业务完成后更新接收端所述GID对于位置的密钥数据及版本号。

进一步地,具体包括:

发送端从其密钥库中按GID读取密钥数据,然后携带版本号Cur_V一起发起业务给接收端,同时将“本组组版本号+组数N”作为当前组版本号,将本组组密钥数据作为哈希计算的输入,计算得到的组密钥数据,作为当前组密钥数据;以及并记录发送端当前版本号Cur_V=V_O+1。

进一步地,还包括:

在系统初始化时,用随机数填充发送端和接收端的密钥库,并分别设置版本号为0~N,作为种子密钥库,其中N为组数。

进一步地,具体包括:

接收端根据解析得到的版本号Cur_V以及已知的组数进行计算,根据计算得到的GID读取相应位置的组密钥数据,将读取的接收端的组密钥数据中的组版本号V_T与接收到的组版本号Cur_V进行比较,如果Cur_V=V_T,业务相通,同时在业务完成后接收端更新所述GID对于位置的密钥数据及版本号;否则进行失步纠错或通知发送端进行失步结错。

进一步地,接收端更新所述GID对于位置的密钥数据及版本号的过程具体包括:

接收端将“本组组版本号+组数N”作为当前组版本号,将本组组密钥数据作为哈希计算的输入,计算得到的组密钥数据,作为当前组密钥数据;以及记录接收端当前版本号Cur_V=V_T+1。

进一步地,进行失步纠错或通知发送端进行失步结错的过程具体包括:

如果Cur_V>V_T,且V_T=Cur_V-(i×N),i=[Cur_V/N],则将GID=(Cur_V mod N)位置的密钥取出来,并进行密钥更新至V_T=V_T+(i×N),KEY_T字段进行i次H运算,并记录接收方自身当前版本Cur_V=V_T+1;如果Cur_V<V_T,且V_T=Cur_V+(i×N),i=[Cur_V/N],则发送错误消息指发送端标识密钥失步,或者反向携带V_T发送消息至发送端,发送端进行自动校正;其中,[]表示取整,N为组数。

本发明还提供了一种单向流程前向安全技术实现方法,包括:

在发送端和接收端分别预置有相同的密钥库,每组密钥数据中包含“组版本号+组密钥数据”,将版本号Cur_V与组号GID进行关联,组号GID与密钥存储位置一一对应;同时中心侧预置有发送端和接收端的密钥库以及发送端和接收端的ID;

发送端从其密钥库中按GID读取密钥数据,然后携带版本号Cur_V_O、发送端和接收端的ID,发起业务给中心侧,同时更新该GID位置的密钥数据并记录当前版本号Cur_V_O=V_O+1;其中Cur_V_O=组版本号V_O;

中心侧根据解析得到的版本号Cur_V_O进行计算,根据发送端ID以及计算得到的GID读取相应密钥库相应位置的密钥数据,将接收端读取的密钥数据中的组版本号V_O_C与Cur_V_O进行比较,当确定二者相同时,业务相通,同时在业务完成后更新该GID位置的密钥数据及版本号;

中心侧根据接收端ID从相应密钥库中按GID读取密钥数据,然后携带版本号Cur_V_T发起业务给接收端,同时更新该GID位置的密钥数据并记录当前版本号Cur_V_T=V_T+1;

接收端根据解析得到的版本号Cur_V_T和已知的组号进行计算得到GID,根据所述GID读取相应位置的密钥数据,将读取的密钥数据中的组版本号V_T_C与Cur_V_T进行比较,当确定二者相同时,业务相通,同时在业务完成后更新该GID位置的密钥数据及版本号。

进一步地,具体包括:

发送端从其密钥库中按GID读取密钥数据,然后携带版本号Cur_V一起发起业务给接收端,同时将“本组组版本号+组数N”作为当前组版本号,将本组组密钥数据作为哈希计算的输入,计算得到的组密钥数据,作为当前组密钥数据;以及并记录发送端当前版本号Cur_V_O=V_O+1。

进一步地,具体包括:

中心侧根据解析得到的版本号Cur_V_O进行计算,根据发送端ID以及计算得到的GID读取相应密钥库相应位置的密钥数据,将接收端读取的密钥数据中的组版本号V_O_C与Cur_V_O进行比较,V_O_C=Cur_V_O,业务相通,同时在业务完成后更新该GID位置的密钥数据及版本号,否则进行失步纠错或通知发送端进行失步结错。

进一步地,进行失步纠错或通知发送端进行失步结错的过程具体包括:

如果Cur_V_O>V_O_C,且V_O_C=Cur_V-(i×N),i=[Cur_V/N],则将GID=(Cur_V mod N)位置的密钥取出来,并进行密钥更新至V_O_C=V_O_C+(i×N),KEY_T字段进行i次H运算,并记录接收方自身当前版本Cur_V_O=V_O_C+1;如果Cur_V_O<V_O_C,且V_O_C=Cur_V_O+(i×N),i=[Cur_V/N],则发送错误消息指发送端标识密钥失步,或者反向携带V_O_C发送消息至发送端,发送端进行自动校正;其中,[]表示取整,N为组数。

本发明有益效果如下:

本发明适用于多个实体之间有前向安全需求的场景,对相关领域通信安全设计具有较大的参考价值。本发明设计了单向流程的前向安全,且不涉及到非对称算法,其运算效率和传输效率均高于传统数字签名、在线协商方式。本发明具有自动校正机制,容错性高,可适用于多种复杂信道应用场景。本发明在发送端、接收端实现逻辑简单,易于实现。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为“端端之间无中心模式”中,“预置密钥库”结构及组成元素示意图;

图2为“端端之间无中心模式”应用模式和系统初始化流程示意图;

图3为“端与中心之间有中心模式”应用模式和系统初始化流程示意图;

图4为“端端之间无中心模式”中,密钥演化过程示意图;

图5为本发明实施例一的流程示意图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

本发明所提出的方案主要包括三部分内容:1、应用模式及系统初始化;2、密钥演化过程;3、自动校正设计。下面将分别对这三部分内容做详细说明。

1.应用模式及系统初始化

本发明中从通信实体和流程上将应用模式区分为“端端之间无中心模式”和“端与中心之间有中心模式”,端设备分为发送端和接收端,中心作为密钥演化中转站,称之为中心侧。

因为两个通信实体之间只有单向流程,实体之间的所有相关前向安全设计要素均只能在该单向流程中完成传输,综合考虑实际应用场景,在窄带通信中,受带宽和速率限制,尽可能减少线路传输字节数,因此需要通过密钥库预置方式实现发送端、接收端及中心侧的关键参数预置,具体设计如下:

根据发送端、接收端的存储空间能力,可设置预置密钥库的组数N,每组具有一个组号GID(如N=128组,则GID范围为0~127),而每组密钥中包含“组版本号V+组密钥数据Data”,在系统初始化时,用随机数填充该密钥库,并分别设置版本号为0~N,作为种子密钥库。如果是“端端之间无中心模式”,那么发送端和接收端需要预置同一套种子密钥库;如果是“端与中心之间有中心模式”,那么端设备分别预置各自的种子密钥库,中心侧预置所有端设备的种子密钥库。

“预置密钥库”结构及组成元素如图1所示。

“端端之间无中心模式”应用模式和系统初始化流程如图2所示。

“端与中心之间有中心模式”应用模式和系统初始化流程如图3所示。

2.密钥演化过程

本发明中,因只有单向流程且需一次业务一次更新的最高前向安全需求,因此本发明中设计了一个可循环使用的预置密钥库及一种密钥选取算法,实现密钥高效演化能力。

发送端、接收端、中心侧均已预置了种子密钥库,且任何两两通信实体之间均具备通信所需的共享种子密钥库,那么单向流程交互时还需要具备以下三方面能力才能实现前向安全需求:

1)准确选取组密钥数据的能力。为了满足尽可能减少带宽占用的实际需求,单向流程中仅需要传递版本号V,且版本号V随业务自动递增(即每次业务自动递增1)。本发明中,将版本号V与组号GID进行关联,即版本号V对应的密钥存储位置(V mod N)即为组号GID。因此接收端可通过版本号获取共享密钥的位置。

2)对已使用的密钥KEY1进行不可逆变换。前向安全需要解决已使用密钥不能通过当前或者未来密钥进行复原,即不会危害用户在该时间段以前的安全性。在本发明中,采用抗碰撞哈希算法H实现密钥不可逆变换,且以上一组已使用密钥作为输入,计算得到下一次密钥KEY2=H(KEY1),并保存到当前组号所在位置。

3)密钥演化

在密钥选取和密钥更新均已确定的情况下,重点就是密钥演化方案。在本发明中,密钥演化的关键主要依赖版本号V的递增及与GID的关联关系,结合不可逆密钥变换实现。当前版本被使用后,将当前版本号变为“当前版本+组数N”,如初始时组号GID=1的位置保存“组版本号V0+组密钥数据KEY0”,当这组密钥被使用后,组号GID=1的位置保存的内容变成“组版本号V128+组密钥数据Data128=H(KEY0)”,以此类推,前N次业务使用的密钥为0~N的种子密钥,轮转M轮组数使用完成后,在GID=0~N的位置内保存了组版本号为M*128~M*255的组密钥数据,即可无限演化下去。

3.自动校正设计

前向安全作为密码技术,可靠性和可用性要求是十分严谨的,在本发明中,因涉及密钥的变换和版本的迭代,因此可靠性和可用性设计上重点考虑了密钥演化自动校正设计。特别是对于非实时性传输,可能存在接收端不在线的情况导致发送端进行版本增加,接收端版本不变;或者发送端因某种原因导致版本为正常增加,而接收端收到不匹配版本的情况,因此为提高方案可用性,需增加自动校正设计。设发送端当前保存的版本号为Cur_V,在进行交互时,发送方将自身的Cur_V发送至接收端,接收端按照(Cur_V mod N)计算得到密钥在密钥库中的存储位置,并取出对应密钥的“组密钥版本V_T+组密钥数据KEY”,当Cur_V=V_T则表示版本是同步,可正常使用,当Cur_V=V_T-(i×N)(i表示密钥库轮换次数,N为组数)则表示接收端版本失步,接收端可通过i次H运算,将组密钥版本和组密钥数据进行自动纠错,从而达到密钥同步;当Cur_V=V_T+(i×N)(i表示密钥库轮换次数,N为组数)则表示发送端版本失步,则可通知发送端通过i次H运算,达到密钥同步状态。

另外,当存在中心侧时,可指定所有发送端/接收端在开机时进行一次或者定期的密钥校正,以保证系统正常运转。

实施例一

为使本发明的目的和技术方案更加清楚,以下将基于上文提出的方法,按照端端无中心模式下的实际流程场景给出单向流程前向安全交互的具体实例工作流程。

如图5所示,图5为本发明实施例一的流程示意图,本场景中共有发送端、接收端两类设备,主要包括如下步骤:

步骤501:在发送端和接收端分别预置有相同的密钥库;

设置密钥库组数N=128,组号GID为0~127,发送端的初始化密钥库为Data_O(格式为:组版本号V_O+组密钥数据KEY_O),接收端的初始化密钥库为Data_T(格式为:组版本号V_T+组密钥数据KEY_T)。两者当前版本皆为0,记为Cur_V=0。

步骤502:发送端从其密钥库中按GID读取密钥数据,然后携带版本号Cur_V一起发起业务给接收端,同时更新该GID位置的密钥数据及版本号;

具体的说就是,发送端从初始使用时,读取GID=0位置的密钥数据,得到(V_O=0,KEY_O=RDATA0),记录发送端Cur_V=V_O。携带Cur_V信息发起业务成功后,将GID=0位置的密钥数据变更为(V_O,KEY_O)=(0+128,H(RDATA0)),保存到GID=0的位置上,并记录当前版本Cur_V=V_O+1。

步骤503:接收端根据解析得到的版本号Cur_V进行计算得到GID,根据所述GID读取接收端对应位置的密钥数据;

具体的说就是,接收端接收到业务数据,解析得到发送端消息中携带的版本信息Cur_V=0,计算对应组位置(Cur_V mod 128)=0,即从GID=0的位置获取密钥数据(V_T=0,KEY_T=RDATA0);

步骤504:将读取的接收端的密钥数据中的组版本号V_T与接收到的版本号Cur_V进行比较:如果Cur_V=V_T,执行步骤505;如果Cur_V>V_T,且V_T=Cur_V-(i×128),i=[Cur_V/128]([]表示取整),执行步骤506;如果Cur_V<V_T,且V_T=Cur_V+(i×128),i=[Cur/128]([]表示取整),执行步骤507;

步骤505:Cur_V=V_T,即密钥是同步的,因此业务相通。业务完成后将GID=0位置的密钥数据变更为(V_T,KEY_T)=(0+128,H(RDATA0)),保存到GID=0的位置上,并记录接收方自身当前版本Cur_V=V_T+1;依次类推,组密钥版本号和密钥数据同步进行演化,且不可逆。其中,密钥演化过程图4所示。

步骤506:Cur_V>V_T,且V_T=Cur_V-(i×128),i=[Cur_V/128]([]表示取整)。则先将GID=(Cur_V mod 128)位置的密钥取出来,并进行密钥更新至V_T=V_T+(i×128),KEY_T字段进行i次H运算,并记录接收方自身当前版本Cur_V=V_T+1。

步骤507:Cur_V<V_T,且V_T=Cur_V+(i×128),i=[Cur/128]([]表示取整),则发送错误消息指发送端标识密钥失步,或者反向携带V_T发送消息至发送端,发送端进行自动校正。

实施例二

为使本发明的目的和技术方案更加清楚,以下将基于上文提出的方法,按照有中心模式下的实际流程场景给出单向流程前向安全交互的具体实例工作流程。

本场景中共有发送端、中心侧、接收端三类设备,设置密钥库组数N=128,组号GID为0~127,发送端(ID=1)的初始化密钥库为Data_O(格式为:组版本号V_O+组密钥数据KEY_O),并记录发送端当前版本Cur_V_O=0;接收端(ID=2)的初始化密钥库为Data_T(格式为:组版本号V_T+组密钥数据KEY_T),并记录接收端当前版本Cur_V_T=0;中心侧保存发送端和接收端的密钥库及当前初始版本信息为(ID=1,V_O_C=0,KEY_O_C),(ID=2,V_T_C=0,KEY_T_C)。

发送端从初始使用时,读取GID=0位置的密钥数据,得到(V_O=0,KEY_O=RDATA0),记录发送端Cur_V_O=V_O。携带Cur_V_O信息发起业务到中心侧成功后,将GID=0位置的密钥数据变更为(V_O,KEY_O)=(0+128,H(RDATA0)),保存到GID=0的位置上,并记录当前版本Cur_V_O=V_O+1;

当中心侧接收到发送端的业务数据,解析得到发送端消息中携带的身份ID=1,版本信息Cur_V_O=0;中心侧根据ID=1找到对应发送端的密钥库,并根据(Cur_V_O mod 128)=GID=0,即从ID=1,GID=0的位置获取中心侧存储的ID=1的用户的密钥数据(V_O_C=0,KEY_O_C=RDATA0),比较Cur_V_O=V_O_C,即密钥是同步的,因此业务相通。业务完成后将GID=0位置的密钥数据变更为(V_O_C,KEY_O_C)=(0+128,H(RDATA0)),保存到GID=0的位置上,并记录发送端当前版本号Cur_V_O=V_O+1。发送方与中心侧密钥失步情况,校正方法同实施例一;

中心侧根据发送端消息中携带的接收端信息得到接收端身份为ID=2的用户,中心侧根据ID=2找到对应的发送端的密钥库及版本信息V_T_C=0,此时中心侧类似于端端无中心方式下的发送端,后续流程同实例一,具体不再赘述。

根据上文论述,端端无中心模式及有中心模式在前向安全设计上,依据密钥的同步演化、抗碰撞哈希算法H及对前一组数据的关联计算,仅需要一个单向流程即可实现单流程前向安全能力。

综上所述,本发明实施例提供了一种单向流程前向安全技术实现方法,具体如下技术效果:

利用预置密钥库、循环演化机制及抗碰撞哈希算法等技术解决移动通信、卫星通信等窄带应用环境下的前向安全机制。

此机制有别于传统的数字签名方法,在不降低安全性的前提下,采用此方法可以提高运算性能、传输性能。

较之传统多流程交互协商,具有更高的效率且不降低安全性。通过预置的密钥库、组数、组密钥版本号、当前版本号等信息,实现快速判断并实现密钥使用及密钥更新。

通过自动校正机制,解决发送端、接收端密钥演化不同步问题。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在它们的范围内包括这样的过程、设备、手段、方法或者步骤。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1