一种单字节数据加解密算法制造技术

技术编号:37615553 阅读:11 留言:0更新日期:2023-05-18 12:07
本申请涉及一种单字节数据加解密算法,采用以单字节为单元运算加解密算法,能够不增加通信数据开销。使用此算法,可以不增加传输数据字节数,由能保证数据的安全性,可以解决窄带宽通信数据安全的问题。针对多于一个字节的原数据M,其长度是n个字节,采用了CBC方式对长度为n的数据M进行加密运算,以此增强安全性。以此增强安全性。以此增强安全性。

【技术实现步骤摘要】
一种单字节数据加解密算法


[0001]本公开涉及卫星通信领域
,尤其涉及一种单字节数据加解密算法,具体涉及一种单字节数据加密算法、轮密钥rKi的获取算法和单字节数据解密算法以及电子设备。

技术介绍

[0002]各类数据通信领域,均有需求对数据进行加密,且领域要求传输的数据量越小越好。如访问网页常用HTTPS(TLS)对访问数据进行加解密,蜂窝通信领域对数据短信要进行加解密。每种场景使用,都会依照使用场景的安全要求、数据承载量等情况设计安全机制,选定对应的加解密算法。
[0003]目前常用的数据加解密算法,要对数据数据进行分块处理,最小加解密数据单元长度是8字节、16字节、64字节等的整数倍。对于数据长度达不到8字节、16字节、64字节的整数倍,需要填充数据,加密后的填充数据需要传递给接收方,接收方才能解密数据。这就带来了如下技术问题:
[0004]为了加密做了数据填充就会增加传输的数据量,对于互联网传输、数据短信等场景,增加的传输数据量,对于系统通信带宽来说是可以接受的。但是对于卫星通信等其它一些通信带宽窄的通信系统,额外增加的数据,是不能被接受的。

技术实现思路

[0005]为了解决上述问题,本申请提出一种单字节数据加密算法、轮密钥rKi的获取算法和单字节数据解密算法以及电子设备。
[0006]本申请一方面,提出一种单字节数据加密算法,适用于卫星通信领域的数据加解密,包括如下步骤:
[0007]将单字节M分为高半字节Xi和低半字节X(i+1);
[0008]执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B

[0009]对所述X
A
和所述X
B
进行反序变换,并合并为一个字节,得到密文N:
[0010]N=X
A
X
B

[0011]保存并输出所述密文N。
[0012]作为本申请的一可选实施方案,可选地,将单字节M分为高半字节Xi和低半字节X(i+1),包括:
[0013]配置C盒,C盒是256个数,值从0~255,每个数字不重复;
[0014]将单字节M,经过C盒变化,转换成另一个的单字节X;
[0015]将单字节X分为高半字节Xi和低半字节X(i+1)。
[0016]作为本申请的一可选实施方案,可选地,执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B
,包括:
[0017]预设轮函数F的异或运算规则;
[0018]将所述X(i+1)和所述轮密钥rKi,按照所述异或运算规则进行异或运算,得到一个4bit的第一异或运算数据:
[0019]Sin=X(i+1)

rKi,

符号代表异或运算;
[0020]将所述第一异或运算数据作为S盒变换的输入,进行S盒变换,将Sin转换成另外一个4bit的数字Sout;S盒是一个16个数字,值从0~15,每个数字不重复;
[0021]将Sout左移1位,得到一个4bit的结果Y;
[0022]计算:
[0023]X(i+2)=Xi

Y

Sout
[0024]完成本轮的加密运算。
[0025]作为本申请的一可选实施方案,可选地,执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B
,还包括:
[0026]配置4个不同的轮密钥rKi;
[0027]按照权利要求3所述的加密运算步骤,每轮采用1个轮密钥rKi进行加密运算;
[0028]轮次进行,完成4轮的每轮加密运算后,得到2个4bit数:X
A
和X
B

[0029]本申请另一方面,提出一种轮密钥rKi的获取算法,包括如下步骤:
[0030]将一个字节的初始秘钥MK分为2个4bit的数:MKi和MK(i+1);
[0031]将初始密钥MKi和MK(i+1),与系统的固定参数FK0和FK1,分别进行异或运算,得到用于轮函数F

运算的Ki和K(i+1):
[0032]Ki=MKi

FK0;
[0033]K(i+1)=MK(i+1)

FK1,

符号代表异或运算;
[0034]执行轮函数F

,对所述Ki和所述K(i+1)进行轮次异或云端,得到并输出轮密钥rKi。
[0035]作为本申请的一可选实施方案,可选地,执行轮函数F

,对所述Ki和所述K(i+1)进行轮次异或云端,得到并输出轮密钥rKi,包括:
[0036]将K(i+1)和固定参数CKi进行异或运算,得到1个4bit的第二异或运算数据:
[0037]Sin=K(i+1)

CKi,

符号代表异或运算;
[0038]将所述第二异或运算数据作为S盒变换的输入,进行S盒变换,将Sin转换成另外一个4bit的数字Sout;S盒是一个16个数字,值从0~15,每个数字不重复;
[0039]将Sout分别左移1位和3位,得到2个4bit值:Y1和Y3;
[0040]将Ki与Y1和Y3进行异或运算,得到本轮的秘钥K(i+2):
[0041]K(i+2)=Ki

Y1

Y3。
[0042]作为本申请的一可选实施方案,可选地,执行轮函数F

,对所述Ki和所述K(i+1)进行轮次异或云端,得到并输出轮密钥rKi,还包括:
[0043]按照权利要求6的秘钥运算步骤,进行计算4次秘钥运算,分别得到4轮密钥:rK(i+2)、rK(i+3)、rK(i+4)和rK(i+5);
[0044]计算轮密钥rKi:
[0045]rKi=rK(i+2)rK(i+3)rK(i+4)rK(i+5)。
[0046]本申请另一方面,还提出一种单字节数据解密算法,包括如下步骤:
[0047]将1个字节N分为高半字节X0和低半字节X1。
[0048]执行轮函数F,共4次:
[0049]当i=0时,为第一轮变化,一直进行到i=4结束;
[0050]Xi暂不做处理,将X(i+1)和轮密钥rK

i异或得到一个4bit的数据,作为S盒变换的输入,即:
[0051]Sin=X(i+1)

rK
’<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单字节数据加密算法,适用于卫星通信领域的数据加解密,其特征在于,包括如下步骤:将单字节M分为高半字节Xi和低半字节X(i+1);执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B
;对所述X
A
和所述X
B
进行反序变换,并合并为一个字节,得到密文N:N=X
A
X
B
;保存并输出所述密文N。2.根据权利要求1所述的单字节数据加密算法,其特征在于,将单字节M分为高半字节Xi和低半字节X(i+1),包括:配置C盒,C盒是256个数,值从0~255,每个数字不重复;将单字节M,经过C盒变化,转换成另一个的单字节X;将单字节X分为高半字节Xi和低半字节X(i+1)。3.根据权利要求1所述的单字节数据加密算法,其特征在于,执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B
,包括:预设轮函数F的异或运算规则;将所述X(i+1)和所述轮密钥rKi,按照所述异或运算规则进行异或运算,得到一个4bit的第一异或运算数据:Sin=X(i+1)

rKi,

符号代表异或运算;将所述第一异或运算数据作为S盒变换的输入,进行S盒变换,将Sin转换成另外一个4bit的数字Sout;S盒是一个16个数字,值从0~15,每个数字不重复;将Sout左移1位,得到一个4bit的结果Y;计算:X(i+2)=Xi

Y

Sout完成本轮的加密运算。4.根据权利要求3所述的单字节数据加密算法,其特征在于,执行轮函数F,采用预设的轮密钥rKi对所述高半字节Xi和所述低半字节X(i+1)执行轮次加密运算,得到2个4bit数:X
A
和X
B
,还包括:配置4个不同的轮密钥rKi;按照权利要求3所述的加密运算步骤,每轮采用1个轮密钥rKi进行加密运算;轮次进行,完成4轮的每轮加密运算后,得到2个4bit数:X
A
和X
B
。5.一种轮密钥rKi的获取算法,其特征在于,包括如下步骤:将一个字节的初始秘钥MK分为2个4bit的数:MKi和MK(i+1);将初始密钥MKi和MK(i+1),与系统的固定参数FK0和FK1,分别进行异或运算,得到用于轮函数F

运算的Ki和K(i+1):Ki=MKi

FK0;K(i+1)=MK(i+1)

FK1,

符号代表异或运算;执行轮函数F

,对所述Ki和所述K(i+1)进行轮次异或云端,得到并输出轮密钥rKi。
6.根据权利要求5...

【专利技术属性】
技术研发人员:高岚闫楠耿炎
申请(专利权)人:芯安微众上海微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1