一种蓝牙设备数据加密结构及加解密方法技术

技术编号:32479262 阅读:18 留言:0更新日期:2022-03-02 09:42
本发明专利技术公开了一种蓝牙设备数据加密结构及加解密方法,所述结构包括混合加密模块,其中:所述混合加密模块包括AES/SM4可配置字节替换加密算法模块、密钥加密单元、密钥循迹单元、密钥解密单元、签名验签单元以及抗功耗设计模块;AES/SM4可配置字节替换加密算法模块包括7个选择器、2个轮密钥加单元、可配置密钥扩展单元、可配置字节替换单元、分配器、行移位单元、列混淆单元、线性变换单元、反序变换单元;本发明专利技术设计的加密模块比传统方式实现的电路在面积与功耗性能上大大减小,可配置加密算法对数据进行加密,具有加解密速度快且灵活配置的优点,并且在一定程度上增加了设备的安全性,可以抵御住一般的侧信道攻击,大大增强了设备的安全性。设备的安全性。设备的安全性。

【技术实现步骤摘要】
一种蓝牙设备数据加密结构及加解密方法


[0001]本专利技术涉及加解密算法领域,具体涉及一种蓝牙设备数据加密结构及加解密方法。

技术介绍

[0002]在对现有的未加密认证及加密数据传输的某品牌手环进行分析:下载一个蓝牙测试APP:LightBlue,将APP连接手环,连接之后,可以看到一些UUID及SERVICE参数,这UUID及SERVICE对应着不同的功能及通讯数据协议,不难发现有Service:immediate Alert直接就是明文的Alarm Alert等级设置。我们在Alert Level中“Write new value”写入新值:1或2(震动级别:0不震动、1轻微&小幅震动、2强烈震动)可控制手环的震动。通过这种方法,可控制一定范围内任何人的某品牌手环,使其不停震动。通过实验,可以看出,在没有软件安全措施的情况下,蓝牙设备是不安全的,通过一些APP可以直接进行连接,连接后可以通过UUID获取相应的数据和进行控制,这就会侵犯了消费者的隐私。所以蓝牙设备数据加密技术势在必行,保证数据的安全性正是信息时代的主题。
[0003]目前来说,大多数方案基本只是采用简单的AES128加密或者是SM4加密数据传输的安全方案,如果对AES以及SM4算法进行能量攻击的话,会发现无防护的AES、SM4加密算法在CPA和DPA攻击面前显得非常脆弱。另外,如果将AES和SM4算法中复用相同的模块,设计的成本以及设备面积都会大大降低,在现实面临选择上也更加灵活。

技术实现思路

[0004]本专利技术的目的是提供一种蓝牙设备数据加密结构及加解密方法,用以克服现有的蓝牙设备数据传输安全性上的不足以及容易被攻击的问题。
[0005]为了实现上述任务,本专利技术采用以下技术方案:
[0006]一种蓝牙设备数据加密结构,包括混合加密模块,其中:
[0007]所述混合加密模块包括AES/SM4可配置字节替换加密算法模块,该模块包括选择器1至7、轮密钥加单元1和2、可配置密钥扩展单元、可配置字节替换单元、分配器、行移位单元、列混淆单元、线性变换单元、反序变换单元,其中:
[0008]初始密钥key进入选择器1,分为值相同的key_A、key_B;其中key_A进入可配置密钥扩展单元进行密钥扩展处理后,如果算法为AES,则输出ex_keyA,如算法是SM4,则输出ex_keyS到选择器2;其中选择器2将ex_keyA用于AES轮变换中的轮密钥加单元1;选择器2将ex_keyS与选择器1的key_B一同进入选择器3中,如果算法为SM4,则选择器3输出ex_keyS至轮密钥加单元2,如果算法为AES,则输出key_B至轮密钥加单元2;
[0009]对于AES算法,明文数据X直接进入选择器4中,而对于SM4算法,则将数据分成4
×
4明文数据矩阵X
i
、X
i+1
、X
i+2
、X
i+3
,对矩阵的高三位数据矩阵X
i+1
、X
i+2
、X
i+3
进行异或处理之后得到的数据进入选择器4中;根据算法为AES或SM4,在轮密钥加单元2中进行对应算法的轮密钥加处理,则在选择器5处得到AES的轮密钥加结果X_A或SM4的轮密钥加结果X_S;X_A作
为AES算法第一轮迭代的输入数据进入选择器6中并作为第一轮的输出,之后选择器6将轮密钥加单元1输出的轮密钥加结果A_lun作为输出进入可配置字节替换单元中,而一同进入该单元的还有数据X_S,经过可配置字节替换单元的字节替换处理后,根据算法为AES或SM4,得到X_byteA或X_byteS;分配器根据算法为AES或SM4进行分配,将前面输出得到的X_byteA输入到行移位单元中进行移位变换处理,再将处理结果输出到列混淆单元;列混淆单元的输出将进入选择器7中,其中最后一轮输入进入轮密钥加单元1的数据是行移位单元直接输出的数据,其他时候是列混淆单元输出的数据;轮密钥加单元1的输出将重新进入选择器6中,直到在AES算法最后一轮的轮密钥加单元1运算之后,得到最终的AES加密密文A;
[0010]在分配器将得到的数据X_byteS分配进入线性变换单元中,进行循环移位处理之后得到的结果与低一位数据矩阵X
i
进行异或处理,得到的结果作为SM4算法的第一轮循环的输出,第一轮循环的输出作为第二轮循环的输入,再分成新的4
×
4明文数据矩阵进行迭代循环;在达到循环迭代次数后,对最后一轮数据异或处理得到的结果通过反序变换单元进行反序变换得到最终的密文S。
[0011]进一步地,对于密钥key_A,所述可配置密钥扩展单元对于AES算法通过以下算式2循环迭代10轮得到扩展后的密钥ex_keyA,对于SM4算法通过算式3循环迭代32轮得到扩展后的密钥ex_keyS:
[0012][0013][0014]式2中,K0、K1、K2、K3表示AES的密钥,上标j表示迭代轮数;式3中,下标i表示迭代轮数,K
i
、K
i+1
、K
i+2
、K
i+3
表示SM4的密钥,rk
i
表示第i次迭代得到的密钥,其中第一次迭代时,i=0;SBOX()表示可配置字节替换单元,完成字节与字节之间的替换;Shift()表示的是字循环操作运算,将输入数据的最后一个字循环左移一个字节;Rcon(j)表示的是AES算法每一轮的轮常数,CK
i
是SM4算法每一轮的固定常数,<<<表示循环左移。
[0015]进一步地,所述可配置字节替换单元中,对于AES算法、SM4算法进行字节替换的表达式如式4和式5:
[0016]Z=M(δ
‑1(δX)
‑1)+V
ꢀꢀꢀ
(4)
[0017]Y=A(T
‑1(T(AX+C))
‑1)+C
ꢀꢀꢀ
(5)
[0018]其中,X表示输入到该单元中的数据,Z表示经过AES字节替换的结果,Y表示经过SM4字节替换的结果;矩阵M表示AES算法的S盒仿射运算矩阵,变换过程中的常量用V来表示;SM4算法的S盒的仿射矩阵和常量则分别用A和C来表示;δ和T分别是AES和SM4的同构映射矩阵,δ
‑1和T
‑1分别是AES和SM4的同构映射逆矩阵;
[0019]进入该单元的数据先选择AES/SM4算法,执行对应的仿射运算、同构映射运算之后,得到的结果进行求逆变换,最后再进行逆同构映射及逆仿射运算即可得到该单元的最终输出。
[0020]进一步地,所述行移位单元用于对字节替换后得到的状态矩阵循环移位;在加密过程中,除了第一行数据不变外,之后每矩阵行数加一,那一行的数据将循环左移多一个字节;解密过程则是循环右移操作,刚好与加密过程相反。
[0021本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种蓝牙设备数据加密结构,其特征在于,包括混合加密模块,其中:所述混合加密模块包括AES/SM4可配置字节替换加密算法模块,该模块包括选择器1至7、轮密钥加单元1和2、可配置密钥扩展单元、可配置字节替换单元、分配器、行移位单元、列混淆单元、线性变换单元、反序变换单元,其中:初始密钥key进入选择器1,分为值相同的key_A、key_B;其中key_A进入可配置密钥扩展单元进行密钥扩展处理后,如果算法为AES,则输出ex_keyA,如算法是SM4,则输出ex_keyS到选择器2;其中选择器2将ex_keyA用于AES轮变换中的轮密钥加单元1;选择器2将ex_keyS与选择器1的key_B一同进入选择器3中,如果算法为SM4,则选择器3输出ex_keyS至轮密钥加单元2,如果算法为AES,则输出key_B至轮密钥加单元2;对于AES算法,明文数据X直接进入选择器4中,而对于SM4算法,则将数据分成4
×
4明文数据矩阵X
i
、X
i+1
、X
i+2
、X
i+3
,对矩阵的高三位数据矩阵X
i+1
、X
i+2
、X
i+3
进行异或处理之后得到的数据进入选择器4中;根据算法为AES或SM4,在轮密钥加单元2中进行对应算法的轮密钥加处理,则在选择器5处得到AES的轮密钥加结果X_A或SM4的轮密钥加结果X_S;X_A作为AES算法第一轮迭代的输入数据进入选择器6中并作为第一轮的输出,之后选择器6将轮密钥加单元1输出的轮密钥加结果A_lun作为输出进入可配置字节替换单元中,而一同进入该单元的还有数据X_S,经过可配置字节替换单元的字节替换处理后,根据算法为AES或SM4,得到X_byteA或X_byteS;分配器根据算法为AES或SM4进行分配,将前面输出得到的X_byteA输入到行移位单元中进行移位变换处理,再将处理结果输出到列混淆单元;列混淆单元的输出将进入选择器7中,其中最后一轮输入进入轮密钥加单元1的数据是行移位单元直接输出的数据,其他时候是列混淆单元输出的数据;轮密钥加单元1的输出将重新进入选择器6中,直到在AES算法最后一轮的轮密钥加单元1运算之后,得到最终的AES加密密文A;在分配器将得到的数据X_byteS分配进入线性变换单元中,进行循环移位处理之后得到的结果与低一位数据矩阵X
i
进行异或处理,得到的结果作为SM4算法的第一轮循环的输出,第一轮循环的输出作为第二轮循环的输入,再分成新的4
×
4明文数据矩阵进行迭代循环;在达到循环迭代次数后,对最后一轮数据异或处理得到的结果通过反序变换单元进行反序变换得到最终的密文S。2.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,对于密钥key_A,所述可配置密钥扩展单元对于AES算法通过以下算式2循环迭代10轮得到扩展后的密钥ex_keyA,对于SM4算法通过算式3循环迭代32轮得到扩展后的密钥ex_keyS:对于SM4算法通过算式3循环迭代32轮得到扩展后的密钥ex_keyS:式2中,K0、K1、K2、K3表示AES的密钥,上标j表示迭代轮数;式3中,下标i表示迭代轮数,K
i
、K
i+1
、K
i+2
、K
i+3
表示SM4的密钥,rk
i
表示第i次迭代得到的密钥,其中第一次迭代时,i=0;SBOX()表示可配置字节替换单元,完成字节与字节之间的替换;Shift()表示的是字循环
操作运算,将输入数据的最后一个字循环左移一个字节;Rcon(j)表示的是AES算法每一轮的轮常数,CK
i
是SM4算法每一轮的固定常数,<<<表示循环左移。3.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述可配置字节替换单元中,对于AES算法、SM4算法进行字节替换的表达式如式4和式5:Z=M(δ
‑1(δX)
‑1)+V
ꢀꢀꢀꢀ
(4)Y=A(T
‑1(T(AX+C))
‑1)+C
ꢀꢀꢀꢀ
(5)其中,X表示输入到该单元中的数据,Z表示经过AES字节替换的结果,Y表示经过SM4字节替换的结果;矩阵M表示AE...

【专利技术属性】
技术研发人员:刘远黄宏敏谢家兴梁润华
申请(专利权)人:佛山芯珠微电子有限公司
类型:发明
国别省市:

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

1