基于动态密钥的数据通信方法、发送端和接收端的制作方法

文档序号:7868997阅读:253来源:国知局
专利名称:基于动态密钥的数据通信方法、发送端和接收端的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种基于动态密钥的数据通信方法、发送端和接收端。
背景技术
会话密钥是用于加密一定时间或者长度的通信内容的密钥。该密钥需要定期更换,以提高安全性。密钥的前向安全性是指即使T时刻的会话密钥被监听者攻破,T时刻之前的会话密钥仍然是安全的。密钥的后向安全性是指,即使T时刻的会话密钥被监听者攻破,T时刻之后的会话密钥仍然是安全的。
现有技术中,对于密钥的管理方法,不能同时保证密钥的前向和后向安全性,且有些密钥的更换方法计算量较大,实现较为复杂。发明内容
本发明要解决的技术问题在于针对现有技术中会话密钥的更换方法计算量大,实现复杂,且不能同时保证密钥的前向和后向安全的缺陷,提供一种能同时保证密钥的前向和后向安全性,且计算量小,实现简单的基于动态密钥的数据通信方法、发送端和接收端。
本发明解决其技术问题所采用的技术方案是
提供一种基于动态密钥的数据通信方法,包括以下步骤
发送端生成用来加密通信数据的会话密钥Ks,Ks=Hs (Kl) XOR Ht (K2);其中,S+T=n, S、T和η均为整数,S为所述发送端中计数器的数值,其初始值为1,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,所述发送端与接收端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥;H为杂凑函数, Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算;
所述发送端采用所述会话密钥Ks对所述通信数据进行加密;
所述发送端将加密后的通信数据发送给接收端。
本发明所述的方法中,每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值I,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
本发明所述的方法中,Kl和Κ2为将密钥种子K分成的长度相等的两个部分。
本发明解决其技术问题所采用的另一技术方案是
提供一种基于动态密钥的数据通信方法,包括以下步骤
接收端接收 发送端发送的通信数据;
所述接收端生成用来解密所述通信数据的会话密钥Ks,Ks=Hs(Kl)XORHt(K2);其中,S+T=n, S、T和η均为整数,S为所述接收端中计数器的数值,其初始值为1,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,所述接收端与所述发送端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥;H 为杂凑函数,Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算;
所述接收端采用所述会话密钥Ks对所述通信数据进行解密。
本发明所述的方法中,还包括步骤
每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值I,其中 η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
本发明所述的方法中,Kl和Κ2为将密钥种子K分成的长度相等的两个部分。
本发明解决其技术问题所采用的第三技术方案是
提供一种基于动态密钥的发送端,包括
计数器,用于在该发送端与接收端每进行一次会话时,计数器的数值加1,其初始值为I ;
会话密钥生成单元,用于生成用来加密通信数据的会话密钥Ks,Ks=Hs(Kl)XOR Ht (K2);其中,S+T=n, S、T和η均为整数,S为所述计数器的数值,η为所述计数器的最大值, η大于密钥种子K的生命周期中发送端和接收端会话的总次数;X0R为异或运算;K1和K2 为将密钥种子K分成的长度相等的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2) 表示用函数H对K2进行T次迭代运算;
加密单元,用于采用所述会话密钥Ks对所述通信数据进行加密;
发送单元,用于将加密后的通信数据发送给接收端。
本发明所述的发送端中,该发送端还包括密钥种子更换单元,用于每隔预设时间, 该预设时间为密钥种子K的生命周期,所述接收端与所 述发送端更换一次所述密钥种子K, 更换所述密钥种子K后,所述计数器的数值重置为初始值1,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
本发明解决其技术问题所采用的第四技术方案是
提供一种基于动态密钥的接收端,包括
接收单元,用于接收发送端发送的通信数据;
计数器,用于在该发送端与接收端每进行一次会话时,计数器的数值加1,其初始值为I ;
会话密钥生成单元,用于生成用来解密所述通信数据的会话密钥Ks,Ks=Hs(Kl) XOR Ht(K2);其中,S+T=n,S、T和η均为整数,S为所述计数器的数值,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数;X0R为异或运算;K1 和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算;
解密单元,用于采用所述会话密钥Ks对所述通信数据进行解密。
本发明所述的接收端中,该接收端还包括密钥种子更换单元,用于每隔预设时间, 该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K, 更换所述密钥种子K后,所述计数器的数值重置为初始值1,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
本发明产生的有益效果是本发明的数据通信中,会话密钥Ks=Hs (Kl)XORHt(Κ2), H为杂凑函数,具有单向性,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht(Κ2)表示用函数H对Κ2进行T次迭代运算;由本发明产生密钥的方法可知,前一个使用过的会话密钥是 Hs^1 (Kl)XOR Ητ+1 (Κ2),由于 H 的单向性,Hs-1 (Kl)无法从 Hs (Kl)得到,故 rf—1 (Kl) XOR Ητ+1 (K2) 很难得到,故具有前向安全性;由本发明产生密钥的方法可知,下一个将使用的会话密钥是 Hs+1 (Kl)XORHt-1 (Κ2),由于 H 的单向性,Ητ_1 (Κ2)无法从 ΗΤ(Κ2)得到,故 Hs+1 (Kl)XORiT1 (Κ2) 很难得到,故具有后向安全性。另外本发明中动态密钥产生的方法计算量小,实现简单,属于轻量级方案。


下面将结合附图及实施例对本发明作进一步说明,附图中
图1是本发明实施例发送端基于动态密钥的数据通信方法的流程图2是本发明实施例基于动态密钥的发送端的结构示意图3是本发明实施例接收端基于动态密钥的数据通信方法的流程图4是本发明实施例基于动态密钥的接收端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例基于动态密钥的数据通信方法,包括以下步骤
S101、发送端生成用来加密通信数据的会话密钥Ks,Ks=Hs (KI)XORHt(K2);其中, S+T=n, S、T和η均为整数,S为发送端中计数器的数值,其初始值为I。η为计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,发送端与接收端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分。一般而言,K的长度为偶数,在本发明的一个实施例中,Kl和K2为将密钥种子K分成的长度相等的两个部分。密钥种子K为接收端和发送端预先约定的共享密钥;H为杂凑函数, Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算;
发送端加密发送一次通讯数据,接收端接收该通讯数据进行解密,此过程可以视为一次会话,发送端和接收端均设有计数器,且初始值相等,均为I。每进行一次会话后两个计数器的数值均加I。
第一次通信使用的会话密钥是K1=H(Kl)XOR Hn^ (K2),第二次使用的会话密钥是K2=H2 (Kl) XOR Hn_2(K2),以此类推,通信双方在第S次使用的会话密钥是Ks=Hs (Kl) XORHn_s (K2),其中 Hn(K2)表示计算 H(K2) η 次,记为 Hn(Κ2),例如 H2 (Κ2) =H(H(Κ2)),H3 (Κ2) =H(H (Η(Κ2))),依次类推。
在本发明的其他实施例中,作为等同变换,会话密钥Ks也可以为 Ks=Hs(Kl) I IHt(Κ2),即将Hs(Kl) ^ΡΗΤ(Κ2)串起来后作为会话密钥。
S102、发送端采用会话密钥Ks对通信数据进行加密;
S103、发送端将加密后的通信数据发送给接收端。
本发明的一个实施例中,为了防止他人破译密钥种子K,每隔预设时间,该预设时间为密钥种子K的生命周期,如24小时、48小时等,可以理解的是,该预设时间可以根据需要设置,此处仅用于举例说明,并不用于限定预设时间。接收端与发送端更换一次密钥种子 K,更换密钥种子K后,计数器的数值清零,其中η为不小于更换密钥种子K之前接收端与发送端的会话次数。如果更换密钥种子K之前会话的次数为m,则η可为一个大于m的最小整数。
由于杂凑函数H具有单向性,如一杂凑函数Y=H (X),从X计算Y是容易的,但知道Y,推知X是困难的。Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht(K2)表示用函数H对K2进行T次迭代运算;由本发明产生密钥的方法可知,前一个使用过的会话密钥是 Hs^1 (Kl)XOR Ητ+1 (K2),由于 H 的单向性,Hs-1 (Kl)无法从 Hs (Kl)得到,故 rf—1 (Kl) XOR Ητ+1 (K2) 很难得到,故具有前向安全性;由本发明产生密钥的方法可知,下一个将使用的会话密钥是 Hs+1 (KI)XORHt-1 (Κ2),由于 H 的单向性,Ht-1 (Κ2)无法从 ΗΤ(Κ2)得到,故 Hs+1 (Kl)XOR 旷1 (Κ2) 很难得到,故具有后向安全性。
又由密钥种子K在预设时间后会进行更换,使攻击者不易获得,加强了数据传输的安全性;另外本发明中动态密钥产生的方法计算量小,实现简单,属于轻量级方案。
本发明实施例基于动态密钥的发送端,用于实现如图1所示的基于动态密钥的数据通信方法。如图2所示,发送端包括
计数器21,用于在该发送端与接收端每进行一次会话时,计数器的数值加1,其初始值为I ;在接收端也设有一计数器,发送端发送一次加密数据,则该端的计数器的数值加 1,接收端接收数据解密一次,则该端的计数器的数值也加1,从而保证完成一次会话后,两个计数器的数值统一,以保证发送端和接收端根据计数器的数值所产生的会话密钥是相同的。
会话密钥生成单元22,用于生成用来加密通信数据的会话密钥Ks,Ks=Hs(Kl)XOR Ht (K2);其中,S+T=n, S、T和η均为整数,S为计数器的数值,η为计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分。一般而言,K的长度为偶数,在本发明的一个实施例中,Kl和K2 为将密钥种子K分成的长度相等的两个部分。密钥种子K为接收端和发送端预先约定的共享密钥;H为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht(K2)表示用函数H 对K2进行T次迭代运算;
加密单元23,用于采用会话密钥Ks对通信数据进行加密;
发送单元24,用于将加密后的通信数据发送给接收端。
在本发明的一个实施例中,如图2所示,该发送端还包括密钥种子更换单元25,用于每隔预设时间,该预设时间为密钥种子K的生命周期,接收端与发送端更换一次密钥种子K,更换密钥种子K后,计数器的数值清零,其中η为不小于更换密钥种子K之前接收端与发送端的会话次数。
本发明实施例基于动态密钥的数据通信方法,如图3所示,包括以下步骤
S301、接收端接收发送端发送的通信数据;
S302、接收端生成用来解密通信数据的会话密钥Ks,Ks=Hs (KI)XORHt(Κ2);其中, S+T=n, S、T和η均为整数,S为接收端中计数器的数值,其初始值为1,η为计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,接收端与发送端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分。一般而言,K的长度为偶数,在本发明的一个实施例中,Kl和K2为将密钥种子K分成的长度相等的两个部分。密钥种子K为接收端和发送端预先约定的共享密钥;H为杂凑函数, Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算;
S303、接收端采用会话密钥Ks对通信数据进行解密。
本发明的一个实施例中,还包括步骤
每隔预设时间,接收端与发送端更换一次密钥种子K,更换密钥种子K后,计数器的数值清零,其中η为不小于更换密钥种子K之前接收端与发送端的会话次数。
如图4所示,本发明实施例基于动态密钥的接收端,用于实现如图3所示的基于动态密钥的数据通信方法。如图4所示,接收端包括
接收单元41,用于接收发送端发送的通信数据;
计数器42,用于在该发送端与接收端每进行一次会话时,计数器的数值加1,其初始值为I ;
会话密钥生成单元43,用于生成用来解密通信数据的会话密钥Ks,Ks=Hs(Kl)XOR Ht (K2);其中,S+T=n, S、T和η均为整数,S为计数器的数值,η为计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分。一般而言,K的长度为偶数,在本发明的一个实施例中,Kl和K2 为将密钥种子K分成的长度相等的两个部分。密钥种子K为接收端和发送端预先约定的共享密钥;H为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht(K2)表示用函数H 对K2进行T次迭代运算;
解密单元44,用于采用会话密钥Ks对通信数据进行解密。
在本发明的一个实施例中,该接收端还包括密钥种子更换单元45,用于每隔预设时间,接收端与发送端更换一次密钥种子K,更换密钥种子K后,计数器的数值清零,其中η 为不小于更换密钥种子K之前接收端与发送端的会话次数。
可以理解的是,发送端可以向多 个接收端发送加密数据,一个接收端也可以接收多个发送端发送的加密数据,此时需要在相互通信的发送端和接收端之间设置相同的密钥种子,相同的杂凑函数,以及各自维护一个计数器,每进行一次会话后,计数器的数值均需要改变。
发送端和接收端也可以设置在同一终端中,由一个终端完成发送和接收功能,即在同一终端可以进行加密和解密。
本发明可以实现会话密钥的前向和后向安全性,从而保证安全的数据通信,且本发明会话密钥的动态变换计算量小,实现简单。可运用在多个通信领域,如点对点通信,组通信,多播通信,广播通信,以及各种应用领域,如物联网等。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换, 例如,Ks=Hs(KI) I |ht(K2)等,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种基于动态密钥的数据通信方法,其特征在于,包括以下步骤 发送端生成用来加密通信数据的会话密钥Ks,Ks=Hs(Kl) XOR Ht(K2);其中,S+T=n,S、T和η均为整数,S为所述发送端中计数器的数值,其初始值为1,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,所述发送端与接收端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥;H为杂凑函数,Hs(Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算; 所述发送端采用所述会话密钥Ks对所述通信数据进行加密; 所述发送端将加密后的通信数据发送给接收端。
2.根据权利要求1所述的方法,其特征在于,每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值1,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
3.根据权利要求1所述的方法,其特征在于,Kl和Κ2为将密钥种子K分成的长度相等的两个部分。
4.一种基于动态密钥的数据通信方法,其特征在于,包括以下步骤 接收端接收发送端发送的通信数据; 所述接收端生成用来解密所述通信数据的会话密钥Ks,Ks=Hs(Kl) XOR Ht(K2);其中,S+T=n, S、T和η均为整数,S为所述接收端中计数器的数值,其初始值为1,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数,所述接收端与所述发送端每进行一次会话,则计数器的数值加I ;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥;H为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算; 所述接收端采用所述会话密钥Ks对所述通信数据进行解密。
5.根据权利要求4所述的方法,其特征在于,还包括步骤 每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值I,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
6.根据权利要求4所述的方法,其特征在于,Kl和Κ2为将密钥种子K分成的长度相等的两个部分。
7.一种基于动态密钥的发送端,其特征在于,包括 计数器,用于在该发送端与接收端每进行一次会话时,计数器的数值加1,其初始值为I; 会话密钥生成单元,用于生成用来加密通信数据的会话密钥Ks,Ks=Hs(Kl) XORHt (K2);其中,S+T=n, S、T和η均为整数,S为所述计数器的数值,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数;X0R为异或运算;K1和K2为将密钥种子K分成的长度相等的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥;H为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算; 加密单元,用于采用所述会话密钥Ks对所述通信数据进行加密; 发送单元,用于将加密后的通信数据发送给接收端。
8.根据权利要求7所述的发送端,其特征在于,该发送端还包括密钥种子更换单元,用于每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值I,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
9.一种基于动态密钥的接收端,其特征在于,包括 接收单元,用于接收发送端发送的通信数据; 计数器,用于在该发送端与接收端每进行一次会话时,计数器的数值加I其初始值为I; 会话密钥生成单元,用于生成用来解密所述通信数据的会话密钥Ks,Ks=Hs(Kl) XORHt (K2);其中,S+T=n, S、T和η均为整数,S为所述计数器的数值,η为所述计数器的最大值,η大于密钥种子K的生命周期中发送端和接收端会话的总次数;X0R为异或运算;K1和K2为将密钥种子K分成的两个部分,所述密钥种子K为所述接收端和所述发送端预先约定的共享密钥为杂凑函数,Hs (Kl)表示用函数H对Kl进行S次迭代运算,Ht (K2)表示用函数H对K2进行T次迭代运算; 解密单元,用于采用所述会话密钥Ks对所述通信数据进行解密。
10.根据权利要求9所述的接收端,其特征在于,该接收端还包括密钥种子更换单元,用于每隔预设时间,该预设时间为密钥种子K的生命周期,所述接收端与所述发送端更换一次所述密钥种子K,更换所述密钥种子K后,所述计数器的数值重置为初始值1,其中η为不小于更换所述密钥种子K之前所述接收端与所述发送端的会话次数。
全文摘要
本发明公开了一种基于动态密钥的数据通信方法、发送端和接收端,其中发送端的方法包括以下步骤发送端生成用来加密通信数据的会话密钥Ks,Ks=HS(K1)XORHT(K2);其中,S为发送端中计数器的数值,其初始值为1,S+T=n,发送端与接收端每进行一次会话,则计数器的数值加1;K1和K2为将密钥种子K分成的长度相等的两个部分,密钥种子K为接收端和发送端预先约定的共享密钥;发送端采用会话密钥Ks对通信数据进行加密;发送端将加密后的通信数据发送给接收端。本发明可以实现会话密钥的前向和后向安全性,从而保证安全的数据通信,且本发明会话密钥的动态变换计算量小,实现简单。
文档编号H04L9/08GK103036675SQ20121054626
公开日2013年4月10日 申请日期2012年12月14日 优先权日2012年12月14日
发明者任伟 申请人:中国地质大学(武汉)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1