基于SM4与极化码的联合加密编码传输方法及解码解密方法与流程

摘要: 本发明涉及卫星通信与信息安全领域,涉及物理层安全传输技术,特别涉及加解密和编解码,具体是一种基于sm4与极化码的联合加密编码传输方法及解码解密方法。背景技术:1...
基于SM4与极化码的联合加密编码传输方法及解码解密方法与流程

本发明涉及卫星通信与信息安全领域,涉及物理层安全传输技术,特别涉及加解密和编解码,具体是一种基于sm4与极化码的联合加密编码传输方法及解码解密方法。

背景技术:

1、卫星通信系统的无线信道具有天然开放性,信号在自由空间中传输时不可避免地面临电磁干扰、窃听和长距离衰减等问题。在军事通信、应急通信和卫星广播等应用场景中,通信系统需要同时满足保密传输与可靠传输两方面的需求。传统的卫星通信系统将加密与信道编码分为两个独立模块依次执行,即首先对明文进行加密获得密文,再对密文进行信道编码生成待发送码字。这种串行处理模式使得加密模块与编码模块各需独占一套完整的变换资源与中间缓冲,不仅增加了系统复杂度与硬件实现面积,更在两个模块之间形成了明确的处理边界,限制了星上基带处理芯片的小型化进程。此外,信道编码模块无法感知加密数据的统计特性,加密模块也无法利用编码冗余增强安全性,二者在功能上相互割裂。

2、现有串行方案中,加密模块多采用国密sm4分组密码算法(以下简称sm4),通过线性变换l实现扩散;信道编码模块多采用极化码,通过冻结比特提供已知冗余。sm4作为我国密码行业标准,采用非平衡feistel结构,每轮迭代依次执行轮密钥异或、s盒非线性变换τ、线性变换l和反馈字异或,为数据提供了高强度的保密保护。其中,线性变换l通过32比特循环移位和异或运算,将s盒输出的混淆效应扩散至整个状态字,是实现扩散性的核心操作。极化码作为一种被证明可在二进制输入离散无记忆对称信道下达到信道容量的信道编码方案,通过信道极化原理将合成信道极化为完全可靠和完全不可靠的两类子信道,在信息比特位置传输有用数据,在冻结比特位置放置收发双方已知的固定值。

3、因此,如何在保持sm4安全强度的前提下,将极化编码的纠错能力嵌入加密流程,使二者融合而非串行,已成为卫星通信领域一个重要的技术方向。

技术实现思路

1、本发明的目的在于提供一种基于sm4与极化码的联合加密编码传输方法及解码解密方法,用于解决上述背景技术中指出的问题。

2、第一方面,本发明提供一种基于sm4与极化码的联合加密编码传输方法,所述方法包括:将输入明文按照极化码的信息比特长度k分割为d个长度为128比特的第一数据块,并使d个所述第一数据块独立并行地执行前28轮sm4加密运算,分别获取d个对应的状态字组;在每轮sm4加密运算中,对d个所述第一数据块分别依次执行轮密钥异或、s盒非线性变换τ、线性变换l和反馈字异或,且各轮使用的轮密钥是由主密钥经sm4密钥扩展算法对应生成的;所述极化码的码长为n,码率为r;使d个所述状态字组在最后4轮加密运算中的每一轮依次执行轮密钥异或、s盒非线性变换和反馈字异或,并在所述最后4轮加密运算中的每一轮执行完之后,分别获取所述最后4轮加密运算中的每一轮加密输出的长度为32比特的状态字,以基于所述最后4轮获取的所述状态字拼接为长度为所述信息比特长度k的信息序列;将长度为n-k比特的冻结比特和所述信息序列共同输入至极化编码器,执行极化编码,以获取长度为n比特的编码比特序列,作为待发送的密文;其中,所述冻结比特的取值由取值密钥控制;

3、本发明中,通过将加密与信道编码有机融合于同一处理流程,以极化编码的生成矩阵替代sm4最后4轮的线性变换l作为全局扩散操作,使加密与信道编码彼此嵌入、不可分离,未掌握sm4的主密钥与冻结比特取值密钥的攻击者无法正确重构编码结构,实现了兼具抗干扰能力和保密性能的一体化传输。

4、在第一方面的一种实现方式中,k=d×128=n×r。

5、在第一方面的一种实现方式中,所述极化编码包括:所述极化编码器根据所述码长和所述码率,计算所述极化码各比特位置的可靠性,以根据所述可靠性选取可靠性最高的k个子信道作为信息序列位置,其余n-k个子信道作为冻结比特位置;其中,所述信息序列位置用于放置所述信息序列;所述冻结比特位置用于放置所述冻结比特。

6、在第一方面的一种实现方式中,所述取值密钥的填充规则为:所述取值密钥的二进制序列从可靠性最低的冻结比特位置开始,按可靠性升序依次填入所述二进制比特;若所述取值密钥的长度超过n-k,则截取所述二进制序列前n-k个比特;若所述取值密钥的长度不足n-k,则通过补零方式扩展至n-k比特。

7、在第一方面的一种实现方式中,所述取值密钥是通过独立密钥分发通道预先分发的密钥,或是从所述主密钥经密钥派生函数导出的子密钥;其中,当采用密钥派生方式时,取值密钥kfr与轮密钥共享同一主密钥来源以简化密钥管理。

8、第二方面,本发明提供一种基于sm4与极化码的联合解码解密方法,应用于上述的基于sm4与极化码的联合加密编码传输方法中,所述方法包括:计算接收信号各比特的对数似然比,并将所述对数似然比送入极化解码器,以使所述极化解码器根据取值密钥和所述对数似然比实现解码,获取输出序列;将所述输出序列中对应信息序列的信息比特按128比特分割为d个第二数据块;对各所述第二数据块,先通过sm4的s盒映射恢复各状态字的输入值,再将恢复的输入值、所述状态字与sm4密钥扩展算法生成的所述最后4轮各轮的轮密钥进行异或运算,沿feistel链逆向求解,恢复进入最后4轮之前的状态字组,获取d个第三数据块;使各所述第三数据块独立并行地执行第28轮至第一轮的sm4解密运算,分别获取对应的解密数据块;在每轮所述sm4解密运算中,对各所述第三数据块依次执行轮密钥异或、s盒非线性变换τ、线性变换l和反馈字异或;所述sm4解密运算的轮密钥使用顺序与加密运算相反,轮函数结构完全相同;最后将各所述解密数据块进行拼接,以获取输入明文。

9、在第二方面的一种实现方式中,所述极化解码器根据取值密钥和所述对数似然比实现解码包括:当解码到与所述信息序列的信息比特对应的比特位置时,根据所述对数似然比的符号进行硬判决;当解码到所述冻结比特对应的比特位置时,根据所述取值密钥进行解码。

10、如上所述,本发明所述的基于sm4与极化码的联合加密编码传输方法及解码解密方法,具有以下有益效果:

11、(1)与现有技术相比,本发明在系统开销与现有串行加密编码方案基本相当的前提下,实现了更强的安全性;通过在最后4轮中去除线性变换l,将4轮轮密钥异或、s盒非线性变换τ和反馈字异或的输出汇聚后进行全局极化编码,使得加密与编码共用同一处理流程及变换资源,方案整体计算复杂度主要由极化编码步骤决定,与先加密再编码的分离方案量级相当,区别在于,本发明的编码嵌入加密轮内部且冻结比特取值受密钥控制,加密与编码在结构上彼此绑定,而分离方案中两个模块各自独立、存在明确的处理边界,非最后4轮的多数据块并行架构使各分支处理时间与单个数据块处理时间相当。

12、(2)本发明增强了安全性与纠错能力;编码过程嵌入加密最后4轮且冻结比特取值受密钥保护,攻击者在未掌握加密密钥和冻结比特取值密钥的情况下无法正确分离编码结构并启动解码流程;极化编码通过生成矩阵的克罗内克幂结构在比特级实现全局混淆与扩散,长码长条件下能够提供不低于传统sm4线性变换l的扩散性能;此外,编码冗余在密钥控制下生成,在不增加额外计算步骤的前提下为系统引入了额外的安全维度。

13、(3)本发明提高了系统适配性;不改变现有sm4加密系统的前28轮结构和密钥扩展算法,也不改变极化码的编译码核心架构,仅对最后4轮处理流程和冻结比特填充方式进行改进,可直接兼容现有的卫星通信加密与编码基础设施,非最后4轮的多分支并行加密和极化编码的模块化设计,便于在星载fpga或asic平台上集成部署。