一种基于spinal码的物理层加密解密方法及系统
技术领域
1.本发明涉及通信安全技术领域,具体涉及一种基于spinal码的物理层加密解密方法及系统。
背景技术:2.现行的通信安全防护的技术手段主要是在网络层、传输层以及应用层等上层对数据进行加密,几种较为常见的传输加密主要包括端到端的私钥加密和公钥加密、基于链路的ssl、ssh等方式以及口令身份认证,现有的传输加密技术具有以下缺点1)无法有效地保护数据传输在物理层的安全2)通常会将传输与加密作为相对独立的模块进行整合,这样会一定程度上增加整个通信系统的复杂度。
技术实现要素:3.针对现有技术中的缺陷,本发明提供一种基于spinal码的物理层加密解密方法及系统。
4.一方面,一种基于spinal码的物理层加密解密方法,包括以下内容:
5.获取初始消息序列和密钥,其中,所述密钥包括长度v比特的密钥kv长度lk比特的密钥
6.对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;
7.将所述密钥kv作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;
8.获取所述目标无码率传输符号,将密钥kv作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。
9.优选地,所述对所述初始消息序列进行分块,得到消息序列分块包括:
10.将所述初始消息序列按照预设spinal码分块参数进行分割,得到长度为k比特的消息序列块。
11.优选地,所述对所述密钥进行分块,得到密钥分块包括:
12.若lk是k的整数倍,则将密钥分割为若干个长度k比特的密钥分块;
13.若lk不是k的整数倍,则对密钥进行补零,将补零后的密钥分割为若干个长度k比特的密钥分块。
14.优选地,所述将所述密钥分块插入所述消息序列分块中,得到预处理消息序列的方法包括:
15.利用整体插入法将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;
16.或利用分割插入法将所述密钥分块插入所述消息序列分块中,得到预处理消息序
列。
17.优选地,所述将所述密钥kv作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号包括:
18.将所述密钥kv作为spinal编码的状态初值;
19.基于所述状态初值、所述预处理消息序列以及预设hash函数进行spinal编码,得到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;
20.对所述目标状态值进行映射,生成目标无码率传输符号。
21.优选地,所述目标状态值进行映射,生成目标无码率传输符号包括:
22.将所述目标状态值作为预设随机数生成器的种子,生成伪随机数序列;
23.将所述伪随机数序列映射为目标无码率传输符号。
24.优选地,所述获取所述目标无码率传输符号,将密钥kv作为译码树的根节点对所述目标无码率传输符号进行译码包括:
25.将密钥kv作为译码树的根节点对所述目标无码率传输符号开始译码;
26.将密钥kv作为译码树的根节点对所述目标无码率传输符号开始译码;
27.若译码树扩展至根节点,则根据最大似然译码准则选取路径度量最优化的节点,从该节点到根节点的路径除去密钥分块所对应节点的路径,得到初始消息序列,其中,所述密钥分块所对应节点的路径为确定路径;
28.若译码树扩展至消息序列分块所对应的节点,则按照预设译码算法扩展译码。
29.另一方面,一种基于spinal码的物理层加密解密系统,包括:
30.第一加密单元,用于获取初始消息序列和密钥,其中,所述密钥包括长度v比特的密钥kv长度lk比特的密钥
31.第二加密单元,用于对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;
32.第三加密单元,将所述密钥kv作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;
33.解密单元,用于获取所述目标无码率传输符号,将密钥kv作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。
34.优选地,所述第三加密单元具体用于:
35.将所述密钥kv作为spinal编码的状态初值;
36.基于所述状态初值、所述预处理消息序列以及预设hash函数进行spinal编码,得到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;
37.对所述目标状态值进行映射,生成目标无码率传输符号。
38.本发明的有益效果体现在:
39.1)虽然增加了编码序列,但密钥分块部分所得状态值并不需要进行映射,因此本发明仅会在编码加密和译码解密时分别增加次哈希函数运算,而窃听者的破译复杂度则会随着密钥和消息序列长度的增加呈指数级增长,本发明实现了以较低的代价获得较高的安全性能;
40.2)不同于其他加密方案,密钥的复杂度不会随其长度而固定。在本发明中,密钥和
消息序列实现了深度耦合,较短的密钥长度即可表现出较大的实际密钥复杂度,在保护消息序列的同时也保护了密钥;
41.3)灵活度高,理论上可以根据具体场景实现任意密钥复杂度的调节,且密钥的分割方式、插入方式以及插入位置均可以进行设计或随机变化,能够进一步增加破译复杂度;
42.4)无码率符号传输是具有无码率传输特性的,因此,在其传输过程中有很强的信道自适应性,能够根据不同信道情况调节传输码率;
43.5)本发明在传输的符号数据与明文消息序列传输的符号数目相同,且并未改变其他加密解密参数,因此理论上并不会对信息传输的效率造成影响,经过仿真分析确实如此。
附图说明
44.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
45.图1为本发明提供的一种基于spinal码的物理层加密解密方法流程示意图;
46.图2为本发明的加密过程示意图;
47.图3为本发明的解密过程示意图;
48.图4为spinal码编码结构示意图;
49.图5为spinal码译码结构示意图;
50.图6为直接将密钥作用于已生成的状态值的结构示意图;
51.图7为本发明提供的一种基于spinal码的物理层加密解密系统的系统框图。
具体实施方式
52.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
53.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
54.为了更好地理解本发明的技术方案,下面对本发明涉及的spinal码的基本原理进行详细阐述。
55.spinal码是perry等人在2012年提出的一种无速率信道编码。作为一种无速率码,spinal码在信道中传输时,会不断以pass为单元发送编码符号,直到译码端译码成功或传输超时。spinal码的编码结构如图4所示;
56.spinal码在进行编码时,会将n比特消息序列进行分块,每个分块k比特,通过状态初值s0与状态迭代函数sj=h(mj,s
j-1
),1≤j≤n/k(h表示哈希函数),得到每个分块i所对应的状态值si。再将各状态值作为随机数生成器rng(random number generator)的种子不断产生固定长度为c比特的序列,并将这个序列映射为编码符号x
i,l
,其中1≤i≤n/k,l表示当前符号所在的pass序号,编码端按照pass顺序发送编码符号,直至译码端译码成功或发送超时
57.由spinal码的编码结构可知,spinal码的编码核心为哈希函数,且有着很强的连
续结构,因此,在进行译码时通常以译码树为基本译码结构进行极大似然译码,spinal码的译码结构如图5所示。
58.由上述可知,spinal码具有一定的安全特征,主要包括以下几个方面:
59.1)哈希函数的安全性:哈希函数作为安全领域的重要分支,具有极强的单向性和灵敏性。作为spinal码的编码核心,很大程度上保证了spinal码编码的安全性;
60.2)编码结构的安全性:spinal码的连续状态迭代结构是一类merkle-damgard迭代结构,而该结构作为一种哈希函数生成的重要方法,具有很强的抗碰撞性及抗原像攻击性;
61.3)无码率传输的安全性:作为一种无码率码,当接收方累积足够的符号则能够进行准确译码,而窃听方通常无法获得足够的信息,一定程度上体现了spinal码的安全性;
62.4)spinal码码符号的随机性:随着消息序列长度的增加,spinal码的符号间的自相关性会逐步减小,因此其编码符号应具有一定的随机性。在对spinal码的码符号进行nist随机性测试后,也进一步证明了其随机性。而随机性也反映了spinal码所具有的安全性。
63.如图1-3所示,在上述阐述的基础上,本发明实施例提出了一种基于spinal码的物理层加密解密方法,所示方法包括以下步骤:
64.步骤一:获取初始消息序列和密钥k,其中,所述密钥k包括长度v比特的密钥kv长度lk比特的密钥
65.具体的,所述初始消息序列为合法发送方需要发送的明文数据,所述密钥为合法发送方通过合法信道提取合法发送方和合法接收方公知的密钥。
66.步骤二:对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;
67.在本发明实施例中,对初始消息序列进行分块的方法为:将所述初始消息序列按照预设spinal码分块参数进行分割,得到长度为k比特的消息序列块。
68.对所述密钥进行分块方法为:若lk是k的整数倍,则将密钥分割为若干个长度k比特的密钥分块;若lk不是k的整数倍,则对密钥进行补零,将补零后的密钥分割为若干个长度k比特的密钥分块。
69.进一步的,本实施例将所述密钥分块插入消息序列分块的方法有两种,分别为整体插入法和分割插入法,且均为随机插入。
70.步骤三:将所述密钥kv作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;
71.在spinal码的编码参数中,哈希函数和随机数生成器rng一般情况是固定不变的,如果利用密钥对其进行处理显然有一定复杂性,且可能收效甚微。因此,本发明以密钥对状态值进行处理,这样密钥可以与spinal码的编码结构充分耦合,加密方式也更加多样化,且密钥也会受到迭代结构的保护。
72.值得注意的是,直接将密钥作用于已生成的状态值,会导致spinal码的连续结构断裂,如图6所示,因此,本发明实施例从与状态值密切相关的消息序列分块入手,以实现对状态值的影响。
73.具体的,将所述密钥kv替换预设的状态初值作为spinal编码的新状态初值;基于
新状态初值、预处理消息序列以及预设hash函数进行spinal编码,得到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;对所述目标状态值进行映射,生成目标无码率传输符号。
74.进一步的,所述目标状态值进行映射,生成目标无码率传输符号包括:将所述目标状态值作为预设随机数生成器的种子,生成伪随机数序列;将所述伪随机数序列映射为目标无码率传输符号;
75.可知,在实际的加密过程中,本技术仅对插入密钥分块后的初始消息序列对应的消息序列分块的状态值进行映射,减少了计算量。
76.步骤四:获取所述目标无码率传输符号,将密钥kv作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。
77.具体的,接收方接收发送方发送的目标无码率符号,根据kerckhoffs准则,密钥、密钥的构成以及密钥分块的插入位置是合法收发双方均已知的信息,那么在合法接收端按译码树进行译码时,密钥的各部分在译码树的深度以及所代表的节点或路径是完全已知的。如图6所示,分割插入的解密过程同理。具体过程可表述如下:
78.①
用k的前v比特替代状态初值s0得到新的状态初值s0′
,以s0′
作为译码树的根节点开始译码;
79.②
当译码树扩展至密钥分块插入位置时,密钥分块序列为确定路径,因此只需根据当前节点计算后续状态值;
80.③
当译码树扩展至原始消息序列位置时,则按照某种译码算法正常扩展译码;
81.④
当译码树扩展至根节点时,根据最大似然译码准则选取路径度量值最优的节点,从该节点到根节点的路径除去密钥分块序列即为最终解密结果。
82.综上所述,本发明实施例提供了一种基于spinal码的物理层加密解密方法,该方法在信道编码层面实现了数据流加密,能够很好的保护物理层传输的安全;同时,该方法没有在传输系统外部另行增加安全模块,在实现一定加密效果的同时,极大程度减少了整个安全传输系统的复杂度。
83.如图7所示,在本发明的另一实施例中还提供了一种基于spinal码的物理层加密解密系统,包括:
84.第一加密单元,用于获取初始消息序列和密钥,其中,所述密钥包括长度v比特的密钥kv长度lk比特的密钥
85.第二加密单元,用于对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;
86.第三加密单元,将所述密钥kv作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;
87.解密单元,用于获取所述目标无码率传输符号,将密钥kv作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。
88.优选地,所述第三加密单元具体用于:
89.将所述密钥kv作为spinal编码的状态初值;
90.基于所述状态初值、所述预处理消息序列以及预设hash函数进行spinal编码,得
到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;
91.对所述目标状态值进行映射,生成目标无码率传输符号。
92.本发明实施例所提供的一种基于spinal码的物理层加密解密系统与上述实施例所提供的一种基于spinal码的物理层加密解密方法出于相同的发明构思,因此,本发明实施例中各个单元更加详细的工作过程参考上述实施例,在此不做赘述。
93.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
技术特征:1.一种基于spinal码的物理层加密解密方法,其特征在于,包括以下内容:获取初始消息序列和密钥,其中,所述密钥包括长度v比特的密钥k
v
长度l
k
比特的密钥对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;将所述密钥k
v
作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;获取所述目标无码率传输符号,将密钥k
v
作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。2.根据权利要求1所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述对所述初始消息序列进行分块,得到消息序列分块包括:将所述初始消息序列按照预设spinal码分块参数进行分割,得到长度为k比特的消息序列块。3.根据权利要求1所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述对所述密钥进行分块,得到密钥分块包括:若l
k
是k的整数倍,则将密钥分割为若干个长度k比特的密钥分块;若l
k
不是k的整数倍,则对密钥进行补零,将补零后的密钥分割为若干个长度k比特的密钥分块。4.根据权利要求1所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述将所述密钥分块插入所述消息序列分块中,得到预处理消息序列的方法包括:利用整体插入法将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;或利用分割插入法将所述密钥分块插入所述消息序列分块中,得到预处理消息序列。5.根据权利要求1所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述将所述密钥k
v
作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号包括:将所述密钥k
v
作为spinal编码的状态初值;基于所述状态初值、所述预处理消息序列以及预设hash函数进行spinal编码,得到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;对所述目标状态值进行映射,生成目标无码率传输符号。6.根据权利要求5所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述目标状态值进行映射,生成目标无码率传输符号包括:将所述目标状态值作为预设随机数生成器的种子,生成伪随机数序列;将所述伪随机数序列映射为目标无码率传输符号。7.根据权利要求1所述的一种基于spinal码的物理层加密解密方法,其特征在于,所述获取所述目标无码率传输符号,将密钥k
v
作为译码树的根节点对所述目标无码率传输符号进行译码包括:将密钥k
v
作为译码树的根节点对所述目标无码率传输符号开始译码;
若译码树扩展至根节点,则根据最大似然译码准则选取路径度量最优化的节点,从该节点到根节点的路径除去密钥分块所对应节点的路径,得到初始消息序列,其中,所述密钥分块所对应节点的路径为确定路径;若译码树扩展至消息序列分块所对应的节点,则按照预设译码算法扩展译码。8.一种基于spinal码的物理层加密解密系统,其特征在于,包括:第一加密单元,用于获取初始消息序列和密钥,其中,所述密钥包括长度v比特的密钥k
v
长度l
k
比特的密钥第二加密单元,用于对所述初始消息序列和所述密钥进行分块,得到消息序列分块和密钥分块;将所述密钥分块插入所述消息序列分块中,得到预处理消息序列;第三加密单元,将所述密钥k
v
作为spinal编码的状态初值,基于所述状态初值、所述预处理消息序列进行spinal编码,生成目标无码率传输符号;解密单元,用于获取所述目标无码率传输符号,将密钥k
v
作为译码树的根节点对所述目标无码率传输符号进行译码,得到初始消息序列。9.根据权利要求8所述的一种基于spinal码的物理层加密解密系统,其特征在于,所述第三加密单元具体用于:将所述密钥k
v
作为spinal编码的状态初值;基于所述状态初值、所述预处理消息序列以及预设hash函数进行spinal编码,得到目标状态值;其中,所述目标状态值为所述消息序列分块对应的状态值;对所述目标状态值进行映射,生成目标无码率传输符号。
技术总结本发明公开了一种基于Spinal码的物理层加密解密方法及系统,涉及通信安全技术领域,方法包括:获取初始消息序列和密钥,对初始消息序列和密钥进行分块,得到消息序列分块和密钥分块;将密钥分块插入消息序列分块中,得到预处理消息序列;将密钥K
技术研发人员:安宁 武懿冰 方磊
受保护的技术使用者:安宁
技术研发日:2022.03.29
技术公布日:2022/7/5