安全编码方法、解码方法及设备与流程

文档序号:16847630发布日期:2019-02-12 22:27阅读:496来源:国知局
安全编码方法、解码方法及设备与流程

本申请实施例涉及通信安全技术领域,特别涉及一种安全编码方法、解码方法及设备。



背景技术:

编码是指在传输的数据中引入冗余数据来避免数据在传输过程中出现差错。加密是指是以某种特殊的算法改变原有的信息数据。通常情况下,传输数据均需要执行编码与加密两个步骤。传统方法中,编码过程与加密过程各自独立。传统方法存在复杂度高,并且处理时延较长的问题。基于此,提出了“安全编码”的概念,其中,安全编码是指将加密操作融入到编码过程中,或者将编码操作融入到加密过程中,从而一步完成加密和编码的操作。

在现有技术中,通常采用选择高复杂度的算法的方式来提高整个安全编码算法的安全性。例如,选择高复杂度的加密算法和/或高复杂度的编码算法来提高整个安全编码算法的安全性。示例性地,将密钥长度为16字节(byte)的高级加密标准(advancedencryptionstandard,aes)算法(也即aes-128算法)与低密度奇偶校验码(lowdensityparitycheckcode,ldpc)编码器结合,以实现一套完整的安全编码算法。由于aes-128算法及ldpc编码器的复杂度均很高,因此将aes-128算法与ldpc编码器相结合的安全编码算法的安全性较高。

具体来讲,采用aes-128算法与ldpc编码器相结合的安全编码算法的原理如下:采用aes-128算法对明文进行加密,aes-128算法总共包括十轮,其中,每轮包括字节替代变换(也即s盒变换)、行移位变换、列混淆变换、轮密钥加变换四个步骤,将aes-128算法的最后一轮中的行移位变换替换为由ldpc编码器执行的编码操作。其中,aes算法定义有s盒,s盒为16字节×16字节的矩阵,对于某个字节,将其高四位作为行值,低四位为列值,根据上述行值和列值查找s盒,得到的新字节为该字节经过s盒变换后的输出。行移位操作是指将16字节排列成4×4的矩阵,第一行保持不变,第二行循环左移1位,第三行循环左移2位,第四行循环左移3位。列混淆变换是指将矩阵中的每个字节通过函数变换映射为新的字节。轮密钥加变换是将密钥矩阵与上述经过列混淆变换后输出的矩阵中对应位置处的密钥与字节进行异或运算。第一轮的输入为长度为128比特(bit)的明文,之后每一轮的输入为上一轮的输出。ldpc编码器是将数据编制成ldpc码的设备,ldpc码是一种具有稀疏校验矩阵的分组纠错码。结合参考图1a和图1b,其分别示出了采用aes-128算法与ldpc编码器相结合的安全编码算法所涉及的编码过程和解码过程的示意图。编码过程如下:明文经过aes-128算法的九轮加密,再经过s盒变换之后,输入至ldpc编码器,ldpc编码器输出的数据再经过轮密钥加变换,最终输出密文。解码过程是编码过程的逆过程。解码过程如下:对密文进行轮密钥加的逆变换,再输入ldpc解码器,ldpc解码器输出的数据经过s盒变换之后,经过九轮aes-128算法的逆过程之后,输出明文。

在现有技术中,采用选择高复杂度的算法的方式来提高整个安全编码算法的安全性,这种方式会导致安全编码算法的复杂度较高,而复杂度较高的安全编码算法并不能适用于轻量级的物联网应用。



技术实现要素:

本申请实施例提供了一种安全编码方法、解码方法及设备,用以解决现有技术因采用选择高复杂度的算法的方式来提高整个安全编码算法的安全性,导致安全编码算法的复杂度较高,不适用于轻量级的物联网应用的问题。

一方面,本申请实施例提供一种安全编码方法,该方法包括:在应用一加密算法对明文执行n轮加密操作的过程中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,其中,第一编码器的码率为1,n为大于1的整数;通过第二编码器对n轮加密操作后得到的密文执行编码处理,得到编码结果,第二编码器的码率大于1。

本申请实施例提供了一种轻量级安全编码方案。在本申请实施例中,在加密算法的至少一轮加密操作之后和/或至少一轮加密操作中插入码率为1的第一编码器,以增加加密算法的误差扩散性能,提高其安全性,从而提出了一种崭新的并非通过选择高复杂度的算法的方式来提高安全编码算法的安全性的技术方案。采用本申请实施例提供的技术方案,能够在兼顾安全编码算法的安全性的前提下,选用复杂度较低的加密算法以及复杂度较低的编码算法相结合,实现一种低复杂度的安全编码算法,这种低复杂度的安全编码算法适用于轻量级的物联网应用。此外,由于电子设备中通常配置有编码器,本申请实施例提供的安全编码方法能直接利用上述编码器,无需增加新的硬件成本。

在一个可能的设计中,第一编码器的插入位置和/或数量是可变的。通过上述方式,能够进一步提高安全编码算法的安全性。

在一个可能的设计中,在n轮加密操作中的至少一轮加密操作之后通过第一编码器执行编码处理,具体包括:在第i轮加密操作之后通过第一编码器对第i轮加密操作得到的加密结果执行编码处理,其中,i为小于或等于n的正整数。

在一个可能的设计中,在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,具体包括:在第i轮加密操作的第j个加密步骤之后通过第一编码器对第j个加密步骤得到的加密结果执行编码处理,其中,第i轮加密操作包括m个加密步骤,i为小于或等于n的正整数,m为大于1的整数,j为小于m的正整数。

在一个可能的设计中,上述明文包括k段子明文,k为大于1的整数。在一种可能的实现方式中,第一编码器用于对k段子明文对应的k段待编码数据分别执行编码处理。在另一种可能的实现方式中,第一编码器用于对第一待编码汇聚数据执行编码处理,第一待编码汇聚数据是指k段子明文对应的k段待编码数据串联后得到的数据。在另一种可能的实现方式中,第一编码器用于对k段子明文中的p段子明文对应的p段待编码数据分别执行编码处理,以及对r段第二待编码汇聚数据分别执行编码处理,上述r段第二待编码汇聚数据中的每段第二待编码汇聚数据是将k段子明文中除p段子明文以外的k-p段子明文对应的k-p段待编码数据中的至少两段待编码数据串联后得到的数据,p为小于或等于k-2的正整数,r为正整数。

在本申请实施例中,第一编码器可采用分组编码方式、汇聚编码方式或混合编码方式,分组编码方式具有提高编码效率,降低时延的优势,汇聚编码方式具有提高误差扩散性能的优势,混合编码方式能是分组编码方式和汇聚编码方式的结合。

在一个可能的设计中,上述明文包括k段子明文,上述密文包括k段子密文,且k段子密文分别对应于k段子明文,k为大于1的整数。通过第二编码器对n轮加密操作得到的密文执行编码处理,得到编码结果,具体包括如下几种可能的实现方式:在一种可能的实现方式中,通过第二编码器对k段子密文分别执行编码处理,得到k段编码结果。在另一种可能的实现方式中,通过第二编码器对第一汇聚密文执行编码处理,得到第一汇聚编码结果,第一汇聚密文是指将k段子密文串联后得到的数据。在另一种可能的实现方式中,通过第二编码器对k段子密文中的q段子密文分别执行编码处理,得到q段编码结果;并通过第二编码器对s段第二汇聚密文分别执行编码处理,得到s段第二汇聚编码结果,上述s段第二汇聚密文中的每段第二汇聚密文是将k段子密文中除q段子密文以外的k-q段子密文中的至少两段子密文串联后得到的数据,q为小于或等于k-2的正整数,s为正整数。

在本申请实施例中,第二编码器可采用分组编码方式、汇聚编码方式或混合编码方式,分组编码方式具有提高编码效率,降低时延的优势,汇聚编码方式具有提高纠错检错能力的优势,混合编码方式能是分组编码方式和汇聚编码方式的结合。

在一个可能的设计中,该方法还包括:根据加密算法对应的密钥确定以下至少一项信息:第一编码器的多项式、第一编码器的打孔模式、第一编码器的数量、第一编码器的插入位置。

在本申请实施例中,根据加密算法对应的密钥随机确定上述信息,有助于进一步提高安全性。

另一方面,本申请实施例提供一种安全解码方法,该方法包括:通过第二解码器对编码结果执行解码处理,得到密文,编码结果是通过第二编码器对密文执行编码处理得到的,密文是应用一加密算法对明文执行n轮加密操作得到的,其中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,第二编码器的码率大于1,第一编码器的码率等于1,n为大于1的整数;在应用一解密算法对密文执行与上述n轮加密操作相应的n轮解密操作得到明文的过程中,在n轮解密操作中的至少一轮解密操作之前和/或在n轮解密操作中的至少一轮解密操作中通过第一解码器执行解码处理。

在一个可能的设计中,在n轮解密操作中的至少一轮解密操作之前通过第一解码器执行解码处理,具体包括:在第n-i+1轮解密操作之前通过第一解码器对第n-i轮解密操作得到的解密结果执行解码处理,其中,i为小于或等于n的正整数。

在一个可能的设计中,在n轮解密操作中的至少一轮解密操作中通过第一解码器执行解码处理,具体包括:在第n-i+1轮解密操作的第m-j+1个解密步骤之前通过第一解码器对第n-i+1轮解密操作的第m-j个解密步骤得到的解密结果执行解码处理,其中,第n-i+1轮解密操作包括m个解密步骤,i为小于或等于n的正整数,m为大于1的整数,j为小于m的正整数。

在一个可能的设计中,上述密文包括k段子密文,k为大于1的整数。在一种可能的实现方式中,第一解码器用于对k段子密文对应的k段待解码数据分别执行解码处理。在另一种可能的实现方式中,第一解码器用于对第一待解码汇聚数据执行解码处理,第一待解码汇聚数据是指将k段子密文对应的k段待解码数据串联后得到的数据。在另一种可能的实现方式中,第一解码器用于对k段子密文中的p段子密文对应的p段待解码数据分别执行解码处理,以及对r段第二待解码汇聚数据分别执行解码处理,上述r段第二待解码汇聚数据中的每段第二待解码汇聚数据是将k段子密文中除p段子密文以外的k-p段子密文对应的k-p段待解码数据中的至少两段待解码数据串联后得到的数据,p为小于或等于k-2的正整数,r为正整数。

在一个可能的设计中,通过第二解码器对编码结果执行解码处理,得到密文,具体包括如下几种可能的实现方式:在一种可能的实现方式中,当编码结果包括k段编码结果时,通过第二解码器对k段编码结果分别执行解码处理,得到k段子密文,k段子密文分别对应于k段编码结果,k为大于1的整数。在另一种可能的实现方式中,当编码结果是将k段编码结果串联后得到的第一汇聚编码结果时,通过第二解码器对第一汇聚编码结果执行解码处理,得到第一汇聚密文;将第一汇聚密文分割成k段子密文,k段子密文分别对应于k段编码结果,k为大于1的整数。在另一种可能的实现方式中,当编码结果包括q段编码结果和s段第二汇聚编码结果时,通过第二解码器对q段编码结果分别执行解码处理,得到q段子密文;并通过第二解码器对s段第二汇聚编码结果分别执行解码处理,得到s段第二汇聚密文;将s段第二汇聚密文分割成k-q段子密文,上述s段第二汇聚编码结果中的每段第二汇聚编码结果是将k段编码结果中除q段编码结果以外的k-q段编码结果中的至少两段编码结果串联后得到的数据,q为小于或等于k-2的正整数,s为正整数。

另一方面,本申请实施例提供一种电子设备,该电子设备具有实现上述安全编码方法和/或安全解码方法示例中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或者单元。

在一个可能的设计中,电子设备的结构中包括处理器和通信接口,所述处理器被配置为支持电子设备执行上述方法中相应的功能。所述通信接口用于支持电子设备与其它设备之间的通信。进一步的,电子设备还可以包括存储器,所述存储器用于与处理器耦合,其保存电子设备必要的程序指令和数据。

再一方面,本申请实施例提供一种计算机存储介质,用于储存为上述电子设备所用的计算机软件指令,其包含用于执行上述方法所设计的程序。

还一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的安全编码方法和/或安全解码方法。

相较于现有技术,本申请实施例提供了一种轻量级安全编码方案。在本申请实施例中,在加密算法的至少一轮加密操作之后和/或至少一轮加密操作中插入码率为1的第一编码器,以增加加密算法的误差扩散性能,提高其安全性,从而提出了一种崭新的并非通过选择高复杂度的算法的方式来提高安全编码算法的安全性的技术方案。采用本申请实施例提供的技术方案,能够在兼顾安全编码算法的安全性的前提下,选用复杂度较低的加密算法以及复杂度较低的编码算法相结合,实现一种低复杂度的安全编码算法,这种低复杂度的安全编码算法适用于轻量级的物联网应用。

附图说明

图1a是现有技术提供的安全编码过程的示意图;

图1b是现有技术提供的安全解码过程的示意图;

图2a是katan32算法的主加密过程的示意图;

图2b是katan32算法的加密及解密过程的示意图;

图2c是一个卷积码编码器的结构示意图;

图3a是本申请一个实施例提供的安全编码方法的流程图;

图3b是本申请一个实施例提供的安全解码方法的流程图;

图4a是本申请另一个实施例提供的安全编码方法的流程图;

图4b是本申请另一个实施例提供的安全解码方法的流程图;

图4c是本申请一个实施例提供的安全编码过程的示意图;

图4d是本申请一个实施例提供的安全解码过程的示意图;

图5a是本申请另一个实施例提供的安全编码方法的流程图;

图5b是本申请另一个实施例提供的安全解码方法的流程图;

图5c是本申请另一个实施例提供的安全编码过程的示意图;

图5d是本申请另一个实施例提供的安全解码过程的示意图;

图6a是本申请一个实施例提供的电子设备的示意性框图;

图6b是本申请一个实施例提供的电子设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。

在对本申请实施例进行描述之前,先对本申请实施例涉及的相关算法进行介绍说明。在本申请实施例中,加密算法主要以katan算法为例进行介绍说明,编码器主要以卷积码编码器为例进行介绍说明。katan算法是一种复杂度较低的加密算法,卷积码编码器同样是一种复杂度较低的编码算法。

(1)katan算法

katan算法是以非线性反馈移位寄存器为基础的分组密码算法。katan算法根据分组长度分为katan32算法、katan48算法和katan64算法。其中,katan32算法的分组长度为32bits,katan48算法的分组长度为48bits,katan64算法的分组长度为64bits。

下面结合图2a和图2b,对katan32算法进行讲解。其中,图2a示出了katan32算法涉及的主加密过程的示意图,图2b示出了katan32算法涉及的加密轮循环及解密轮循环的示意图。katan32算法的加密过程包括254轮加密操作。当1≤i<254时,ei是第i轮加密操作的输出数据,其将被输入至第i+1轮加密操作进行加密;当i=254时,ei是第254轮加密操作的输出数据(也即图2b中的密文),其将被传输至接收端。当1≤i<254时,di是第i轮解密操作的输出数据,其将被输入至第i+1轮解密操作进行解密;当i=254时,di是第254轮解密操作的输出数据(也即图2b中的明文)。

在katan32算法中,32bits的明文被分割成两组,用公式表示如下:

l0[0:12]=p[19:31],r0[0:18]=p[0:18];

上述两组分别称之为l和r。其中r包括32bits明文p中的前19bits,l包括32bits明文p中的后13bits。

在katan32算法的第r轮加密操作中,涉及到两个非线性变换函数,分别为fa和fb。上述两个非线性变换函数可以采用如下公式表示:

其中,r的取值范围为1到254;ir是长度为254的数组,对于每轮加密操作均取不同位的值;是第r轮加密操作的两个子密钥,是指逻辑运算“与或”,“·”是指乘法运算。

l和r均由低比特位向高比特位方向移1位,之后l的最低比特位取值为采用非线性变换函数fb计算得出的值,r的最低比特位取值为采用非线性变换函数fa计算得出的值,采用公式表示如下:

lr[0]=fb(rr-1);rr[0]=fb(lr-1);

32位的密文c由最后一轮生成的l和r组成,采用公式表示如下:

c[0:18]=r254[0:18],c[19:31]=l254[0:12];

其中,c[0:18]是32位的密文c中的前19位,c[19:31]是32位的密文c中的后12位。

下面对katan32算法涉及的子密钥进行讲解。

子密钥是长度为508的数组,每位的取值方法可以采用如下公式得到:

其中,k={k0,k1,…k79}是80位的主密钥,每轮加密操作中的子密钥可以根据如下公式从密钥中取相应的位:

(2)卷积码

卷积码是一种差错控制编码。对于卷积码中的每个码段,其包括的n个码元不仅与该码段内的信息元有关,而且与前面m段的信息元有关。下面,将结合一个示例对卷积码进行讲解。请结合参考图2c,其示出了一个卷积码编码器的结构示意图。该卷积码编码器对应的编码多项式如下:

trellis=poly2trellis([5:4],[23350;0513]);

其中的[54]是根据卷积码的结构来定义的,[54]表明卷积码结构并行2级,5表示第一级的约束长度为5(含4个移位寄存器),4表示第二级的约束长度为4(含3个寄存器)。[23350;0513]表示卷积码的结构是2输入,3输出(行表示输入端口个数,列表示输出端口个数),码率为2/3。矩阵第一行的第一个元素23(八进制,采用二进制表示为10011)表示第一个输出端口和第一个输入端口的关系,10011决定哪个寄存器的端口连接(1表示连接,0表示不连接);矩阵第一行的第二个元素35(八进制,采用二进制表示为011101)表示第二个输出端口和第一个输入端口的关系;矩阵第一行的第三个元素0表示第三个输出端口和第一个输入端口无关系;矩阵中的其它元素的含义可以以此类推。

为了克服现有技术中因采用选择高复杂度的算法的方式来提高整个安全编码算法的安全性,导致安全编码算法的复杂度较高,不适用于轻量级的物联网应用的问题,本申请实施例提供了一种轻量级安全编码方案。在本申请实施例中,在加密算法的至少一轮加密操作之后和/或至少一轮加密操作中插入码率为1的第一编码器,以增加加密算法的误差扩散性能,提高其安全性,从而提出了一种崭新的并非通过选择高复杂度的算法的方式来提高安全编码算法的安全性的技术方案。采用本申请实施例提供的技术方案,能够在兼顾安全编码算法的安全性的前提下,选用复杂度较低的加密算法以及复杂度较低的编码算法相结合,实现一种低复杂度的安全编码算法,这种低复杂度的安全编码算法适用于轻量级的物联网应用。

误差扩散性能是用于衡量输入数据对输出数据的影响大小的指标。当输入数据中有1比特数据发生变化时,所引起的输出数据中发生变化的比特数越多,则认为误差扩散性能越好。误差扩散性能与安全性之间呈正相关关系,也即误差扩散性能越好,安全性越高,误差扩散性能越差,安全性越低。

下面将基于上面所述的本申请实施例涉及的共性方面,对本申请实施例进一步详细说明。

请参考图3a,其示出了本申请一个实施例提供的安全编码方法的流程图。该方法可以包括如下步骤。

步骤301,在应用一加密算法对明文执行n轮加密操作的过程中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,其中,第一编码器的码率为1,n为大于1的整数。

加密算法共包括n轮加密操作。示例性地,当加密算法为katan32算法时,n为254,也即,采用katan32算法对明文加密时需要执行254轮加密操作。每一轮加密操作得到的加密结果是下一轮加密操作的输入数据。

第一编码器的码率为1,也即第一编码器输入的比特数与输出的比特数相同。例如,第一编码器输入与输出的比特数均为32。在本申请实施例中,在加密算法的至少一轮加密操作之后和/或在加密算法的至少一轮加密操作中,插入码率为1的第一编码器,由第一编码器对输入数据进行字节映射,并将字节映射后的结果继续进行加密,能够提高整个安全编码算法的误差扩散性能,从而提高安全性。

可选地,第一编码器的插入位置和/或数量是可变的。第一编码器的插入位置是指在哪一轮加密操作之后通过第一编码器执行编码处理(也即在哪一轮加密操作之后插入第一编码器,通过第一编码器执行编码处理后的编码结果输入到下一轮加密操作),或者在哪一轮加密操作中通过第一编码器执行编码处理(也即在哪一轮加密操作中插入第一编码器,例如在该轮加密操作中的某一加密步骤后通过第一编码器执行编码处理,通过所述第一编码器执行编码处理后的编码结果输入到该轮加密操作中的该加密步骤的下一加密步骤)。例如,可以在第127轮加密操作之后插入第一编码器,也可以在第59轮加密操作之后插入第一编码器。再例如,可以在第11轮加密操作中插入第一编码器,也可以在第200轮加密操作中插入第一编码器。第一编码器的数量是指在整个安全编码算法中插入的第一编码器的总数。例如该总数可以是1个,也可以是多个。由于第一编码器的插入位置和数量是可变的,因此能够进一步提高安全编码算法的安全性。有关第一编码器的插入位置和数量的确定方式,将在下文进行介绍说明。

在一种可能的实施方式中,在至少一轮加密操作之后通过第一编码器执行编码处理。例如,第一编码器的数量为1,插入位置为第40轮加密操作,则在第40轮加密操作之后通过一个第一编码器执行编码处理。又例如,第一编码器的数量为2,插入位置为第40轮和第120轮加密操作,则在第40轮加密操作之后通过一个第一编码器执行编码处理,且在第120轮加密操作之后再通过一个第一编码器执行编码处理。对于任意一个第一编码器来说,该第一编码器的输入数据取决于该第一编码器的插入位置。以在第i轮加密操作之后通过第一编码器执行编码处理为例,是指在第i轮加密操作之后通过第一编码器对第i轮加密操作得到的加密结果执行编码处理,其中,i为小于或等于n的正整数。具体来讲:当1≤i≤n-1时,在第i轮加密操作之后插入的第一编码器用于对第i轮加密操作得到的加密结果执行编码处理,编码后数据输入至第i+1轮加密操作,i为整数。例如,当加密算法为katan32算法时,在第52轮加密操作之后插入一个第一编码器,该第一编码器的输入数据是第52轮加密操作得到的加密结果,该第一编码器的输出数据将输入至第53轮加密操作进行加密。当i=n时,在第i轮加密操作之后插入的第一编码器用于对第i轮加密操作得到的加密结果执行编码处理,编码后数据输入至第二编码器。例如,当加密算法为katan32算法时,在第254轮加密操作之后插入一个第一编码器,该第一编码器的输入数据是第254轮加密操作得到的加密结果,该第一编码器的输出数据即为下述密文,该密文将输入至第二编码器执行编码处理。

在一种可能的实施方式中,在至少一轮加密操作中通过第一编码器执行编码处理。以在第i轮加密操作中通过第一编码器执行编码处理为例,是指在第i轮加密操作的第j个加密步骤之后通过第一编码器对第j个加密步骤得到的加密结果执行编码处理,编码后数据输入至第i轮加密操作的第j+1个加密步骤,其中,第i轮加密操作包括m个加密步骤,i为小于或等于n的正整数,m为大于1的整数,j为小于m的正整数。以katan32算法为例,katan32算法的每一轮加密操作中包括多个移位步骤,可以在任意一个移位步骤之后插入第一编码器。例如,加密算法共包括254轮加密操作,加密算法中的第17轮加密操作包括6个加密步骤,在第17轮加密操作的第2个加密步骤之后插入一个第一编码器,该第一编码器用于对第17轮加密操作的第2个加密步骤得到的数据执行编码处理,编码后数据输入至第17轮加密操作的第3个加密步骤。

在实际应用中,是将第一编码器插入在一轮加密操作之后还是一轮加密操作中,可以根据实际需求进行设定。可选地,在一个完整的安全编码算法中,既可以在至少一轮加密操作之后插入第一编码器,也可以在至少一轮加密操作中插入第一编码器。例如,加密算法包括多轮加密操作,每轮加密操作包括5个加密步骤,则可以在第12轮加密操作的第3个加密步骤之后,以及第14轮加密操作之后(也即第14轮加密操作的第5个加密步骤之后)分别插入一个第一编码器。

需要说明的是,若加密算法为分组加密算法(例如,katan算法),也即其通常将明文划分为若干个组(或称为若干段)分别进行加密,然而第一编码器对输入数据的比特数并没有要求,因此当明文包括k(k为大于1的整数)段子明文(也即明文被划分为k段子明文)时,采用第一编码器执行编码处理包括如下几种可能的实现形式:

(1)第一编码器用于对k段子明文对应的k段待编码数据分别执行编码处理;

(2)第一编码器用于对第一待编码汇聚数据执行编码处理,第一待编码汇聚数据是指将k段子明文对应的k段待编码数据串联后得到的数据;

(3)第一编码器用于对k段子明文中的p段子明文对应的p段待编码数据分别执行编码处理,以及对r段第二待编码汇聚数据分别执行编码处理,上述r段第二待编码汇聚数据中的每段第二待编码汇聚数据是将k段子明文中除p段子明文以外的k-p段子明文对应的k-p段待编码数据中的至少两段待编码数据串联后得到的数据,p为小于或等于k-2的正整数,r为正整数。

上述3种方式可以分别称之为“分组编码”、“汇聚编码”和“混合编码”。上述3种方式将在下文实施例中分别进行详细说明。

可选地,在步骤301之前,还包括如下步骤:根据加密算法对应的密钥确定以下至少一项信息:第一编码器的多项式、第一编码器的打孔模式、第一编码器的数量、第一编码器的插入位置。

第一编码器的多项式用于描述第一编码器的结构。第一编码器的多项式的选取会影响安全编码算法的误差扩散性能。此外,由于第一编码器的码率为1,因此第一编码器并不会影响安全编码算法的纠错检错能力。可选地,第一编码器的多项式可以根据加密算法对应的密钥确定,还可以根据第一编码器的插入位置确定。

第一编码器的打孔模式是指对第一编码器执行打孔操作涉及的相关参数,例如,需要打掉的比特数,需要打掉哪一位/哪几位比特等等。由于第一编码器的码率为1,因此需要对第一编码器执行打孔操作,以保证第一编码器输出的比特数与输入的比特数是相同的。示例性地,对于输入的比特数为2且输出的比特数为3的第一编码器,则需要通过打孔操作打掉输出的一个比特。此外,打孔模式还指示需要打掉输出的哪一位比特,示例性地,打孔模式指示将第2位比特打掉,原输出数据为“010”,经打孔操作后的输出数据为“00”。第一编码器的打孔模式可以根据加密算法对应的密钥确定。示例性地,根据加密算法对应的密钥确定的随机数确定打掉哪一位输出比特,例如,根据加密算法对应的密钥确定的随机数为16,则打掉第16位输出比特。

第一编码器的数量是指在整个安全编码算法中插入的第一编码器的总数。第一编码器的数量可以预先设定,也可以根据实际业务需求确定,还可以根据加密算法对应的密钥确定。例如,安全性要求较高的业务所插入的第一编码器的数量,应当大于安全性要求较低的业务所插入的第一编码器的数量。再例如,由于与第一编码器对应的第一解码器的复杂度较高,处理时延较大,而每插入一个第一编码器,则解码时也需要对应地插入一个第一解码器,因此时延要求较高的业务所插入的第一编码器的数量,应当小于时延要求较低的业务所插入的第一编码器的数量。

第一编码器的插入位置是指在哪一轮加密操作之后插入第一编码器,或者在哪一轮加密操作中插入第一编码器。第一编码器的插入位置可以根据加密算法对应的密钥确定。

在其它可能的示例中,上述与第一编码器相关的信息也可以预先设定,还可以根据第一编码器的标识、当前时间等其它参数确定,本申请实施例对此不作限定。

需要说明的是,与下述第二编码器相关的信息也可以根据加密算法对应的密钥确定。其中,与第二编码器相关的信息包括第二编码器的多项式、第二编码器的打孔模式等等,本申请实施例对此不作限定。

步骤302,通过第二编码器对上述n轮加密操作后得到的密文执行编码处理,得到编码结果,第二编码器的码率大于1。

第二编码器的码率大于1,也即第二编码器输出的比特数大于输入的比特数,例如,第二编码器输入的比特数为32,输出的比特数为36。第二编码器的输入数据为上述n轮加密操作得到的密文。需要说明的是,若在第n轮加密操作(也即最后一轮加密操作)之后插入一个第一编码器,则上述密文是该第一编码器对第n轮加密操作得到的加密结果执行编码处理后生成的。

需要说明的是,由于第二编码器输出的比特数大于输入的比特数,因此第二编码器的输出数据中存在用于校验的数据,也即第二编码器具有纠错检错的功能。

此外,当明文包括k(k为大于1的整数)段子明文时,密文也包括k段子密文,且k段子密文分别对应于k段子明文,采用第二编码器对密文执行编码处理包括如下几种可能的实现形式:

(1)通过第二编码器对k段子密文分别执行编码处理,得到k段编码结果;

(2)通过第二编码器对第一汇聚密文执行编码处理,得到第一汇聚编码结果,第一汇聚密文是指将k段子密文串联后得到的数据;

(3)通过第二编码器对k段子密文中的q段子密文分别执行编码处理,得到q段编码结果;并通过第二编码器对s段第二汇聚密文分别执行编码处理,得到s段第二汇聚编码结果,上述s段第二汇聚密文中的每段第二汇聚密文是将k段子密文中除q段子密文以外的k-q段子密文中的至少两段子密文串联后得到的数据,q为小于或等于k-2的正整数,s为正整数。

上述3种方式可以分别称之为“分组编码”、“汇聚编码”和“混合编码”。上述3种方式将在下文实施例中分别进行详细说明。

可选地,在步骤302之后,还包括如下步骤:采用交织器对编码结果执行交织处理,得到交织结果。

交织器能够实现在不改变信息内容的前提下最大限度地改变信息结构。在信道传输过程中,比特的差错通常是成串发生的,然而信道编码的纠错功能仅在检测和校正单个差错或较短的差错串才有效,因此采用交织器将一条消息中的相继比特分散开,以使得即使信道传输过程中发生成串差错,解交织处理后恢复相继比特串时,成串差错被分散为若干个不连续的单个差错(或较短的差错串),此时可通过信道编码的纠错检错功能恢复原消息。

示例性地,交织处理的具体过程如下:存在k段编码结果时,将每一段编码结果的第一比特取出来,并让k个第一比特组成新的分组,将每一段编码结果的第二比特取出来,并让k个第二比特组成新的分组,以此类推。

上述第一编码器和第二编码器均可采用卷积码编码器,卷积码编码器复杂度较低,适用于轻量级的物联网应用。

以下为与图3a示出的安全编码方法相对应的安全解码方法的步骤。结合参考图3b,其示出了本申请一个实施例提供的安全解码方法的流程图。该方法可以包括如下步骤。

步骤303,通过第二解码器对编码结果执行解码处理,得到密文。

上述编码结果是通过第二编码器对密文执行编码处理得到的,密文是应用一加密算法对明文执行n轮加密操作得到的,其中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,第二编码器的码率大于1,第一编码器的码率等于1,n为大于1的整数。

步骤304,在应用一解密算法对密文执行与上述n轮加密操作相应的n轮解密操作的过程中,在n轮解密操作中的至少一轮解密操作之前和/或在n轮解密操作中的至少一轮解密操作中通过第一解码器执行解码处理。

上述解密算法与上述加密算法相对应,是加密算法的逆过程。示例性地,若在执行加密算法时对明文执行了减法运算,则在执行解密算法时需要对密文执行加法运算。第一解码器的插入位置及数量,取决于加密过程中第一编码器的插入位置及数量。

与上述加密过程相对应,若在第i轮加密操作之后通过第一编码器对第i轮加密操作得到的加密结果执行编码处理,则在解密过程中,在第n-i+1轮解密操作之前通过第一解码器对第n-i轮解密操作得到的解密结果执行解码处理,也即在第n-i+1轮解密操作之前插入第一解码器,该第一解码器用于对第n-i轮解密操作得到的解密结果进行解码,解码后数据输入至第n-i+1轮解密操作,i为小于或等于n的正整数。例如,当加密算法为katan32算法时,在第52轮加密操作之后插入一个第一编码器,则在解密过程中,在第203轮解密操作之前插入一个第一解码器,该第一解码器的输入数据是第202轮解密操作得到的解密结果,该第一解码器的输出数据将输入至第203轮解密操作进行解密。另外,当i=n时,若在第i轮加密操作之后插入第一编码器,则在解密过程中,在第n-i+1轮(也即第1轮)解密操作之前插入一个第一解码器,该第一解码器用于对密文进行解码,解码后数据输入至第n-i+1轮(也即第1轮)解密操作。例如,当加密算法为katan32算法时,在第254轮加密操作之后插入一个第一编码器,则在解密过程中,在第1轮解密操作之前插入一个第一解码器,该第一解码器的输入数据是密文,该第一解码器的输出数据将输入至第1轮解密操作进行解密。

与上述加密过程相对应,若加密算法中的第i轮加密操作包括m个加密步骤,m为大于1的整数,在该第i轮加密操作中插入至少一个第一编码器,则在解密过程中,在第n-i+1轮解密操作中插入相同数量的第一解码器。若在加密过程中,在第i轮加密操作的第j个加密步骤之后通过第一编码器对第j个加密步骤得到的加密结果执行编码处理,其中,i为小于或等于n的正整数,j为小于m的正整数,则在解密过程中,在第n-i+1轮解密操作的第m-j+1个解密步骤之前通过第一解码器对第n-i+1轮解密操作的第m-j个解密步骤得到的解密结果执行解码处理,也即在第n-i+1轮解密操作的第m-j+1个解密步骤之前插入第一解码器,该第一解码器用于对第n-i+1轮解密操作的第m-j个解密步骤得到的数据进行解码,解码后数据输入至第n-i+1轮解密操作的第m-j+1个解密步骤。例如,加密算法共包括254轮加密操作,加密算法中的第17轮加密操作包括6个加密步骤,在第17轮加密操作的第2个加密步骤之后插入一个第一编码器,该第一编码器用于对第17轮加密操作的第2个加密步骤得到的数据进行编码,编码后数据输入至第17轮加密操作的第3个加密步骤。相应地,在解密过程中,在第238轮解密操作的第5个解密步骤之前插入一个第一解码器,该第一解码器用于对第238轮解密操作的第4个解密步骤得到的数据进行解码,解码后数据输入至第238轮解密操作的第5个解密步骤。

此外,由于第一解码器的插入位置及数量,取决于加密过程中第一编码器的插入位置及数量,因此若在加密过程中,既在至少一轮加密操作之后插入了第一编码器,又在至少一轮加密操作中插入了第一编码器,则在解密过程中,既在至少一轮解密操作之前插入第一解码器,又在至少一轮解密操作中插入第一解码器。

可选地,在步骤303之前,还包括如下步骤:采用解交织器对上述交织结果执行解交织处理,得到编码结果。

本申请实施例提供了一种轻量级安全编码方案。在本申请实施例中,在加密算法的至少一轮加密操作之后和/或至少一轮加密操作中插入码率为1的第一编码器,以增加加密算法的误差扩散性能,提高其安全性,从而提出了一种崭新的并非通过选择高复杂度的算法的方式来提高安全编码算法的安全性的技术方案。采用本申请实施例提供的技术方案,能够在兼顾安全编码算法的安全性的前提下,选用复杂度较低的加密算法以及复杂度较低的编码算法相结合,实现一种低复杂度的安全编码算法,这种低复杂度的安全编码算法适用于轻量级的物联网应用。

另外,由于第一编码器的插入位置和/或数量是可变的,因此能够进一步提高安全编码算法的安全性。

此外,由于电子设备中通常配置有编码器,本申请实施例提供的方案能直接利用上述编码器,无需额外增加新的硬件成本。

结合图3a所示实施例的解释说明,当明文包括k段子明文时,密文包括k段子密文,k段子密文分别对应于k段子明文,k是大于1的整数。此时,采用第一编码器对k段待编码数据执行编码处理包括“分组编码”、“汇聚编码”和“混合编码”3种实现形式,采用第二编码器对k段密文执行编码处理也包括“分组编码”、“汇聚编码”和“混合编码”3种实现形式。

以下实施例示出了采用第一编码器对k段子明文对应的k段待编码数据进行分组编码,以及采用第二编码器对k段子密文进行分组编码的情况。

请参考图4a,其示出了本申请一个实施例提供的安全编码方法的流程图。该方法可以包括如下步骤。

步骤401,在应用一加密算法对明文包括的k段子明文执行n轮加密操作的过程中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,其中,第一编码器用于对k段子明文对应的k段待编码数据分别执行编码处理,得到k段编码后数据,k为大于1的整数,n为大于1的整数。

在本实施例中,存在k段待编码数据时,第一编码器对k段待编码数据分别执行编码处理。需要说明的是,若加密算法的分组长度固定,则采用本实施例提供的方法对待编码数据执行编码处理时,第一编码器输入的比特数与输出的比特数是确定的。示例性地,若采用katan32算法时,则第一编码器输入与输出的比特数均为32;若采用katan48算法时,则第一编码器输入与输出的比特数均为48。

步骤402,通过第二编码器对上述n轮加密操作后得到的k段子密文分别执行编码处理,得到k段编码结果。

在本实施例中,存在k段子密文时,第二编码器对k段子密文分别执行编码处理。采用上述方式编码时,能提高安全编码的效率,并进一步降低安全编码所需的时延。需要说明的是,若加密算法的分组长度固定,则采用本实施例提供的方法对子密文执行编码处理时,第二编码器输入的比特数是确定的。示例性地,若采用katan32算法时,则第二编码器输入的比特数为32;若采用katan48算法时,则第二编码器输入的比特数为48。

结合参考图4c,其示出了本申请一个实施例示出的安全编码过程的示意图。其中,明文包括k段子明文,在采用katan32算法对k段子明文执行254轮加密操作的过程中,在第i轮加密操作之后插入第一编码器,由第一编码器对第i轮加密操作后得到的k段加密结果分别执行编码处理,得到k段编码后数据,k段编码后数据分别输入至第i+1轮加密操作进行加密;此外,在第254轮加密操作后得到k段子密文时,由第二编码器对上述k段子密文分别执行编码处理,得到k段编码结果。其中,ei是第i轮加密操作的输出数据,其将被输入至第i+1轮加密操作进行加密;eei是采用第一编码器对第i轮加密操作的输出数据ei进行编码得到的编码后数据,其将被输入至第i+1轮加密操作进行加密。

以下为与安全编码方法相对应的安全解码方法的步骤。结合参考图4b,其示出了本申请一个实施例提供的安全解码方法的流程图。该方法包括如下步骤。

步骤403,通过第二解码器对k段编码结果分别执行解码处理,得到k段子密文。

步骤404,在应用一解密算法对k段子密文执行n轮解密操作得到k段子明文的过程中,在n轮解密操作中的至少一轮解密操作之前和/或在n轮解密操作中的至少一轮解密操作中通过第一解码器执行解码处理,其中,第一解码器用于对k段子密文对应的k段待解码数据分别执行解码处理,得到k段解码后数据。

也即,第一解码器的输入数据为与k段子密文中的1段子密文对应的1段待解码数据。

结合参考图4d,其示出了本申请一个实施例提供的安全解码过程的示意图。与图4c所示的安全编码过程相对应的安全解码过程如下:由第二解码器对k段编码结果分别执行解码处理,得到k段子密文,之后采用katan32算法对k段子密文执行254轮解密操作的过程中,在第254-i+1轮解密操作之前插入第一解码器,由第一解码器对第254-i轮解密操作得到的k段待解码数据分别执行解码处理,得到k段解码后数据,k段解码后数据分别输入至第254-i+1轮解密操作进行解密,直至得到k段子明文。其中,di是第i轮解密操作的输出数据,其将被输入至第i+1轮解密操作进行解密;ddi是采用第一解码器对第i轮解密操作的输出数据di进行解码得到的解码后数据,其将被输入至第i+1轮解密操作进行解密。

本申请实施例提供的方案,通过采用分组编码的方式,能够提高编码效率,进一步减小整个安全编码过程所需的时延。

以下实施例示出了采用第一编码器对k段待编码数据进行汇聚编码,以及采用第二编码器对k段子密文进行汇聚编码的情况。

请参考图5a,其示出了本申请一个实施例提供的安全编码方法的流程图。该方法包括如下步骤:

步骤501,在应用一加密算法对密文包括的k段子明文执行n轮加密操作的过程中,在n轮加密操作中的至少一轮加密操作之后和/或在n轮加密操作中的至少一轮加密操作中通过第一编码器执行编码处理,其中,第一编码器用于对第一待编码汇聚数据执行编码处理,得到第一编码后汇聚数据,k为大于1的整数,n为大于1的整数。

第一待编码汇聚数据是指将k段子明文对应的k段待编码数据串联后得到的数据。第一编码后汇聚数据被分割成k段编码后数据分别输入至第i+1轮加密操作进行加密,或者,第一编码后汇聚数据被分割为k段编码后数据分别输入至第i轮加密操作的第j+1个加密步骤进行加密。由于编码器对比特数较多的数据进行编码的效果,通常优于对比特数较少的数据进行编码的效果,因此在本实施例中,先将k段待编码数据串联得到第一待编码汇聚数据,然后由第一编码器对第一待编码汇聚数据执行编码处理。通过上述方式,能进一步提高安全扩散性能。

步骤502,通过第二编码器对上述n轮加密操作后得到的第一汇聚密文执行编码处理,得到第一汇聚编码结果。

第一汇聚密文是指将k段子密文串联后得到的数据。在本实施例中,存在k段可密文时,先将k段子密文串联得到第一汇聚密文,由第二编码器对上述第一汇聚密文执行编码处理。通过上述方式,能提高第二编码器的纠错检错能力。

结合参考图5c,其示出了本申请另一个实施例提供的安全编码过程的示意图。当明文包括k段子明文时,在采用katan32算法对k段子明文执行254轮加密操作的过程中,在第i轮加密操作之后插入第一编码器,由第一编码器对第一待编码汇聚数据编码得到第一编码后汇聚数据,第一待编码汇聚数据由k段子明文对应的k段待编码数据串联得到,第一编码后汇聚数据被分割成k段编码后数据后分别输入第i+1轮加密操作继续加密,此外,在第254轮加密操作之后,由第二编码器对k段子密文串联得到的第一汇聚密文执行编码处理,得到第一汇聚编码结果。其中,ei是第i轮加密操作的输出数据,其将被输入第i+1轮加密操作进行加密;eei是采用第一编码器对第i轮加密操作的输出数据ei进行编码得到的编码后数据,其将被输入至第i+1轮加密操作进行加密。

以下为与安全编码方法相对应的安全解码方法的步骤。结合参考图4b,其示出了本申请一个实施例提供的安全解码方法的流程图。该方法包括如下步骤。

步骤503,通过第二解码器对第一汇聚编码结果执行解码处理,得到第一汇聚密文,并将第一汇聚密文分割成k段子密文。

步骤504,在应用一解密算法对k段子密文执行n轮解密操作的过程中,在n轮解密操作中的至少一轮解密操作之前和/或在n轮解密操作中的至少一轮解密操作中通过第一解码器执行解码处理,其中,第一解码器用于对第一待解码汇聚数据执行解码处理,得到第一解码后汇聚数据。

第一解码器的输入数据为第一待解码汇聚数据,输出的第一解码后汇聚数据将被分割成k段解码后数据继续进行解密。

结合参考图5d,其示出了本申请另一个实施例提供的安全解码过程的示意图。与图5c所示的安全编码过程相对应的安全解码过程如下:第二解码器对第一汇聚编码结果执行解码处理,得到第一汇聚密文,第一汇聚密文被分割成k段子密文后,采用katan32算法分别对k段子密文执行n轮解密操作的过程中,在第254-i+1轮解密操作之前插入第一解码器,由第一解码器对k段子密文对应的k段待解码数据串联得到的第一待解码汇聚数据执行解码处理,得到第一解码后汇聚数据,第一解码后汇聚数据被分割成k段解码后数据分别输入至第254-i+1轮解密操作进行解密,直至得到k段子明文。其中,di是第i轮解密操作的输出数据,其将被输入至第i+1轮解密操作进行解密;ddi是采用第一解码器对第i轮解密操作的输出数据di进行解码得到的解码后数据,其将被输入至第i+1轮解密操作进行解密。

本申请实施例提供的方案,通过采用汇聚编码的方式,能够提高安全编码的误差扩散性能及纠错检错能力。

图4a和图5a实施例分别介绍了分组编码和汇聚编码两种方式。在其它可能的实施例中,第一编码器和/或第二编码器也可采用混合编码方式。混合编码方式是分组编码与汇聚编码两种方式的结合。

当第一编码器采用混合编码方式时,第一编码器用于对k段子明文中的p段子明文对应的p段待编码数据分别执行编码处理,以及对r段第二待编码汇聚数据分别执行编码处理,上述r段第二待编码汇聚数据中的每段第二待编码汇聚数据是将k段子明文中除p段子明文以外的k-p段子明文对应的k-p段待编码数据中的至少两段待编码数据串联后得到的数据,p为小于或等于k-2的正整数,r为正整数。相应地,第一解码器用于对k段子密文中的p段子密文对应的p段待解码数据分别执行解码处理,以及对r段第二待解码汇聚数据分别执行解码处理,上述r段第二待解码汇聚数据中的每段第二待解码汇聚数据是将k段子密文中除p段子密文以外的k-p段子密文对应的k-p段待解码数据中的至少两段待解码数据串联后得到的数据,p为小于或等于k-2的正整数,r为正整数。

以k=5为例,5段子明文对应的5段待编码数据分别为s1、s2、s3、s4和s5。在一个示例中,可以通过第一编码器对s1、s2分别执行编码处理,得到s1和s2分别对应的编码后数据r1和r2,对s3、s4和s5串联后得到的第二待编码汇聚数据s345执行编码处理,得到第二待编码汇聚数据s345对应的编码后汇聚数据r345。相应地,在解码过程中,通过第一解码器对r345执行解码处理得到s345,并可将s345分割成s3、s4和s5,并通过第一解码器对r1和r2分别执行解码处理,得到s1和s2。

当第二编码器采用混合编码方式时,在编码过程中,通过第二编码器对k段子密文中的q段子密文分别执行编码处理,得到q段编码结果;并通过第二编码器对s段第二汇聚密文分别执行编码处理,得到s段第二汇聚编码结果,上述s段第二汇聚密文中的每段第二汇聚密文是将k段子密文中除q段子密文以外的k-q段子密文中的至少两段子密文串联后得到的数据,q为小于或等于k-2的正整数,s为正整数。相应地,在解码过程中,当编码结果包括q段编码结果和s段第二汇聚编码结果时,通过第二解码器对q段编码结果分别执行解码处理,得到q段子密文;并通过第二解码器对s段第二汇聚编码结果分别执行解码处理,得到s段第二汇聚密文;将s段第二汇聚密文分割成k-q段子密文,上述s段第二汇聚编码结果中的每段第二汇聚编码结果是将k段编码结果中除q段编码结果以外的k-q段编码结果中的至少两段编码结果串联后得到的数据,q为小于或等于k-2的正整数,s为正整数。

以k=5为例,5段子密文分别为t1、t2、t3、t4和t5。在一个示例中,通过第二编码器对t1和t2串联得到的第二汇聚密文t12、t3和t4串联得到的第二汇聚密文t34以及子密文t5分别执行编码处理,得到第二汇聚密文t12对应的第二汇聚编码结果w12、第二汇聚密文t34对应的第二汇聚编码结果w34以及子密文t5对应的编码结果w5。相应地,在解码过程中,通过第二解码器对w5执行解码处理得到t5,对w12执行解码处理得到t12,并可将t12分割成t1和t2,对w34执行解码处理得到t34,并可将t34分割成t3和t4。

需要说明的一点是,在上述几个实施例中,仅以第一编码器和第二编码器均采用分组编码方式,或者第一编码器和第二编码器均采用汇聚编码方式,或者第一编码器和第二编码器均采用混合编码方式为例进行介绍说明,在实际应用中,对于任意一个编码器(包括第一编码器和第二编码器),其采用哪一种编码方式是可以预先设定的,本申请实施例对此不作限定。

还需要说明的一点是,当明文包括k段子明文时,在加密过程中插入的任意一个第一编码器可以对其中一部分子明文对应的待编码数据采用上文介绍的分组编码、汇聚编码以及混合编码中的任一种编码方式进行编码,并对其中另一部分子明文对应的待编码数据不执行编码处理。第二编码器对k段子明文对应的k段子密文执行编码处理时,也可以对其中一部分子密文采用上文介绍的分组编码、汇聚编码以及混合编码中的任一种编码方式进行编码,并对其中另一部分子密文不执行编码处理。

还需要说明的一点是,在本申请实施例中,加密算法主要以katan算法为例进行介绍说明,在实际应用中,加密算法还可以是hight(highsecurityandlightweight)算法、微型加密算法(tinyencryptionalgorithm,tea)、desxl(lightweightdeswithkeywhitening)算法等。另外,在本申请实施例中,编码器主要以卷积码编码器为例进行介绍说明,在实际应用中,编码器还可以是咬尾卷积码编码器、tubro码编码器、bch码编码器等。

可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块(或单元)。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。

本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,图6a示出了上述实施例中所涉及的电子设备的一种可能的结构示意图。电子设备600包括:处理单元602和通信单元603。处理单元602用于对电子设备600的动作进行控制管理。例如,当电子设备600用于执行安全编码过程时,处理单元602用于支持电子设备600执行图3a中的步骤301至步骤302,图4a中的步骤401至402,以及图5a中的步骤501至步骤502,和/或用于执行本文所描述的技术的其它步骤。当电子设备600用于执行安全解码过程时,处理单元602用于支持电子设备600执行图3b中的步骤303和304,图4b中的步骤403至404,以及图5b中的步骤503至504,和/或用于执行本文所描述的技术的其它步骤。通信单元603用于支持电子设备600与其它设备的通信。电子设备600还可以包括存储单元601,用于存储电子设备600的程序代码和数据。

其中,处理单元602可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元603可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如服务器与vr设备之间的接口。存储单元601可以是存储器。

当处理单元602为处理器,通信单元603为通信接口,存储单元601为存储器时,本申请实施例所涉及的设备可以为图6b所示的设备。

参阅图6b所示,该电子设备610包括:处理器612、通信接口613、存储器611。可选地,电子设备610还可以包括总线614。其中,通信接口613、处理器612以及存储器611可以通过总线614相互连接;总线614可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线614可以分为地址总线、数据总线、控制总线等。为便于表示,图6b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块(或单元)组成,软件模块(或单元)可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于电子设备中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。本申请实施例还提供了计算机程序产品,当该计算机程序产品被执行时,其用于实现上述功能。另外,可以将上述计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。

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