CN114125801A - 一种蓝牙设备数据加密结构及加解密方法 - Google Patents
一种蓝牙设备数据加密结构及加解密方法 Download PDFInfo
- Publication number
- CN114125801A CN114125801A CN202111423148.2A CN202111423148A CN114125801A CN 114125801 A CN114125801 A CN 114125801A CN 202111423148 A CN202111423148 A CN 202111423148A CN 114125801 A CN114125801 A CN 114125801A
- Authority
- CN
- China
- Prior art keywords
- key
- unit
- data
- encryption
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/125—Protection against power exhaustion attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种蓝牙设备数据加密结构及加解密方法,所述结构包括混合加密模块,其中:所述混合加密模块包括AES/SM4可配置字节替换加密算法模块、密钥加密单元、密钥循迹单元、密钥解密单元、签名验签单元以及抗功耗设计模块;AES/SM4可配置字节替换加密算法模块包括7个选择器、2个轮密钥加单元、可配置密钥扩展单元、可配置字节替换单元、分配器、行移位单元、列混淆单元、线性变换单元、反序变换单元;本发明设计的加密模块比传统方式实现的电路在面积与功耗性能上大大减小,可配置加密算法对数据进行加密,具有加解密速度快且灵活配置的优点,并且在一定程度上增加了设备的安全性,可以抵御住一般的侧信道攻击,大大增强了设备的安全性。
Description
技术领域
本发明涉及加解密算法领域,具体涉及一种蓝牙设备数据加密结构及加解密方法。
背景技术
在对现有的未加密认证及加密数据传输的某品牌手环进行分析:下载一个蓝牙测试APP:LightBlue,将APP连接手环,连接之后,可以看到一些UUID及SERVICE参数,这UUID及SERVICE对应着不同的功能及通讯数据协议,不难发现有Service:immediate Alert直接就是明文的Alarm Alert等级设置。我们在Alert Level中“Write new value”写入新值:1或2(震动级别:0不震动、1轻微&小幅震动、2强烈震动)可控制手环的震动。通过这种方法,可控制一定范围内任何人的某品牌手环,使其不停震动。通过实验,可以看出,在没有软件安全措施的情况下,蓝牙设备是不安全的,通过一些APP可以直接进行连接,连接后可以通过UUID获取相应的数据和进行控制,这就会侵犯了消费者的隐私。所以蓝牙设备数据加密技术势在必行,保证数据的安全性正是信息时代的主题。
目前来说,大多数方案基本只是采用简单的AES128加密或者是SM4加密数据传输的安全方案,如果对AES以及SM4算法进行能量攻击的话,会发现无防护的AES、SM4加密算法在CPA和DPA攻击面前显得非常脆弱。另外,如果将AES和SM4算法中复用相同的模块,设计的成本以及设备面积都会大大降低,在现实面临选择上也更加灵活。
发明内容
本发明的目的是提供一种蓝牙设备数据加密结构及加解密方法,用以克服现有的蓝牙设备数据传输安全性上的不足以及容易被攻击的问题。
为了实现上述任务,本发明采用以下技术方案:
一种蓝牙设备数据加密结构,包括混合加密模块,其中:
所述混合加密模块包括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明文数据矩阵Xi、Xi+1、Xi+2、Xi+3,对矩阵的高三位数据矩阵Xi+1、Xi+2、Xi+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分配进入线性变换单元中,进行循环移位处理之后得到的结果与低一位数据矩阵Xi进行异或处理,得到的结果作为SM4算法的第一轮循环的输出,第一轮循环的输出作为第二轮循环的输入,再分成新的4×4明文数据矩阵进行迭代循环;在达到循环迭代次数后,对最后一轮数据异或处理得到的结果通过反序变换单元进行反序变换得到最终的密文S。
进一步地,对于密钥key_A,所述可配置密钥扩展单元对于AES算法通过以下算式2循环迭代10轮得到扩展后的密钥ex_keyA,对于SM4算法通过算式3循环迭代32轮得到扩展后的密钥ex_keyS:
式2中,K0、K1、K2、K3表示AES的密钥,上标j表示迭代轮数;式3中,下标i表示迭代轮数,Ki、Ki+1、Ki+2、Ki+3表示SM4的密钥,rki表示第i次迭代得到的密钥,其中第一次迭代时,i=0;SBOX()表示可配置字节替换单元,完成字节与字节之间的替换;Shift()表示的是字循环操作运算,将输入数据的最后一个字循环左移一个字节;Rcon(j)表示的是AES算法每一轮的轮常数,CKi是SM4算法每一轮的固定常数,<<<表示循环左移。
进一步地,所述可配置字节替换单元中,对于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表示AES算法的S盒仿射运算矩阵,变换过程中的常量用V来表示;SM4算法的S盒的仿射矩阵和常量则分别用A和C来表示;δ和T分别是AES和SM4的同构映射矩阵,δ-1和T-1分别是AES和SM4的同构映射逆矩阵;
进入该单元的数据先选择AES/SM4算法,执行对应的仿射运算、同构映射运算之后,得到的结果进行求逆变换,最后再进行逆同构映射及逆仿射运算即可得到该单元的最终输出。
进一步地,所述行移位单元用于对字节替换后得到的状态矩阵循环移位;在加密过程中,除了第一行数据不变外,之后每矩阵行数加一,那一行的数据将循环左移多一个字节;解密过程则是循环右移操作,刚好与加密过程相反。
进一步地,所述列混淆单元用于对输入进该单元的数据矩阵进行列变换处理,将数据矩阵左乘一个固定参数的矩阵;
所述轮密钥加单元用于将分组数据与密钥进行按位异或操作。
进一步地,所述线性变换单元用于循环移位操作,运算过程描述为:
进一步地,所述蓝牙设备数据加密结构还包括:
合法用户ID创建模块,包括用户发送连接请求单元、蓝牙设备查询ID单元、用户ID创建单元、用户数据存储区单元;
当用户发送访问请求访问蓝牙设备时,用户发送连接请求单元先对用户进行标记;蓝牙设备查询ID单元先对本地存储器的用户ID数据库进行查找,查看本地是否有相应的用户ID,如果没有则表明该用户是第一次访问蓝牙设备,需要用户ID创建单元创建用户的ID,创建后该用户就是合法用户,在用户数据存储区单元中建立对应于该用户ID的用户数据存储区,合法用户在签名验签通过之后可访问用户数据存储区内的用户数据信息,从而完成用户ID创建过程;每个合法用户的ID与椭圆曲线ECC算法的公钥有关,通过取椭圆曲线上面不同的点G来生成不同的公钥P,利用杂凑函数对不同的公钥进行散列运算,可以得到不同的用户ID。
进一步地,所述混合加密模块还包括:抗功耗攻击设计模块;
抗功耗攻击设计模块用于在对数据进入AES/SM4可配置字节替换加密算法模块之前,引入随机掩码m1对数据进行异或掩码,而AES/SM4可配置字节替换加密算法模块输出的加密结果经过去掩码还原操作;
还用于对初始密钥key_A利用随机掩码m2对密钥进行异或掩码,得到的结果输入可配置密钥扩展单元中,在加解密密钥扩展完成后进行去掩码还原操作,
进一步地,所述混合加密模块还包括:密钥加密单元、密钥循迹单元、密钥解密单元、签名验签单元,其中:
密钥加密单元用于利用SM2算法对可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行加密处理,并且将处理后的通话密钥数据key_AS_2随机地添加进用户的秘密数据X中,只有匹配到正确的用户ID才能正确地访问到该用户的加密通话密钥信息;之后密钥循迹单元在加密的明文数据段中寻找到加密密钥信息key_AS_2,将其输入到密钥解密单元中利用存储在蓝牙设备端的SM2私钥数据才能正确解密得到通话密钥key_AS;进而利用该通话密钥对进入解密单元的加密数据X进行解密,得到最终的传输信息;
签名验签单元用于实现签名验签。
一种蓝牙设备数据加密方法,包括:
步骤1,当用户访问蓝牙设备端时,根据用户发送的访问请求数据,检验该用户的合法ID信息,如无该用户的ID信息则对该用户进行合法用户的创建,并进行签名验签的身份认证;
步骤2,用户访问的数据X传送前先要经过抗功耗攻击设计模块的加掩码处理,得到加掩码之后的访问数据X_MASK;
步骤3,将添加掩码后的数据X_MASK发送给混合加密模块,首先经过AES/SM4可配置字节替换加密算法模块进行加密处理,根据选择的加密算法,可以得到加密数据X_MASK_AS;
步骤4,对AES/SM4可配置字节替换加密算法模块的可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行SM2加密处理得到加密的密钥key_AS_2,并将该密钥随机添加进加密数据X_MASK_AS中,整合成一段完整的加密数据发送出去。
一种蓝牙设备数据解密方法,包括:
步骤1,用户在接收到加密数据之后,利用混合加密模块的密钥循迹单元可以分别得到加密通话密钥key_AS_2以及加密数据X_MASK_AS;
步骤2,在利用密钥解密单元将加密通话密钥解密之后,将加密数据发送到混合算法模块中进行解密得到加掩码之后的数据X_MASK;
步骤3,最终通过抗功耗攻击设计模块的去掩码处理之后,还原得到用户访问的数据X。
与现有技术相比,本发明具有以下技术特点:
1.蓝牙设备上用户ID信息的创建,用户ID与SM2公钥相关,通过杂凑函数散列运算生成不同的ID信息,每个访问用户都有自己独有的ID,ID可用于SM2签名验签,验证个人的合法身份。
2.AES/SM4可配置字的加密模块比传统方式实现的电路在面积与功耗性能上大大减小,并且在一定程度上增加了设备的安全性。
3.抗功耗攻击设计模块可以抵御住一般的侧信道攻击,大大增强了设备的安全性。
4.混合加密模块引用AES/SM4可配置加密算法对数据进行加密,具有加解密速度快且灵活配置的优点。
5.混合加密模块用SM2对通话密钥做加密处理,拥有了密钥长度长的优点,安全性能更高,同时随机将密钥加入秘密数据X中,更加增强了设备的安全性。
附图说明
图1为本发明的蓝牙设备数据加密结构的示意图;
图2为合法用户ID创建模块的流程示意图;
图3为AES/SM4可配置字节替换加密算法模块的结构示意图;
图4为可配置字节替换单元的结构示意图;
图5为抗功耗设计模块的结构示意图;
图6为混合加密模块的工作过程示意图;
图7为SM2签名验签过程示意图。
具体实施方式
参见附图1,本发明的一种蓝牙设备数据加密结构,包括合法用户ID创建模块以及混合加密模块:
1.合法用户ID创建模块
如图2所示,合法用户ID创建模块用于创建合法用户ID,包括用户发送连接请求单元、蓝牙设备查询ID单元、用户ID创建单元、用户数据存储区单元;其中:
用户发送连接请求单元用于接收用户发来的请求访问信息并做好用户标记,防止出现多次访问为不同用户;蓝牙设备查询ID单元用于蓝牙设备在接收用户访问请求之后,查询本地存储器中是否存在该用户的ID信息;用户ID创建单元用于在判定用户为首次访问蓝牙设备的用户后,利用公钥创建该用户的合法ID,并在用户数据存储区单元中创建该用户的用户数据存储区;用户数据存储区单元中包含各用户的用户存储区,用户存储区用于用户数据信息的存储,只有合法用户且签名验签通过之后才能访问用户存储区内的数据。另外,该模块还包括删除用户ID及相关数据等功能单元,这里就不多赘述。
该模块的工作过程为:
当用户发送访问请求访问蓝牙设备时,用户发送连接请求单元先对用户进行标记;蓝牙设备查询ID单元先对本地存储器的用户ID数据库进行查找,查看本地是否有相应的用户ID,如果没有则表明该用户是第一次访问蓝牙设备,需要用户ID创建单元创建用户的ID,创建后该用户就是合法用户,在用户数据存储区单元中建立对应于该用户ID的用户数据存储区,合法用户在签名验签通过之后可访问用户数据存储区内的用户数据信息,从而完成用户ID创建过程;这里需要注意的是,每个合法用户的ID与椭圆曲线ECC算法的公钥有关,通过取椭圆曲线上面不同的点G来生成不同的公钥P,利用杂凑函数对不同的公钥进行散列运算,可以得到不同的用户ID。用户ID一旦创建,该用户再次访问设备端的时候,就会被识别为对应的用户ID;用户ID将用于签名验签,证明自己的合法身份,且每一个用户都有属于他个人的ID。
P=[d]G (1)
2.混合加密模块
由于AES/SM4算法加密速度快但存在密钥管理的问题,SM2算法密钥长但是加密速度慢,将两种方式进行混合加密就能优缺点互补。混合加密模块用于数据的加密以及密钥的加密,如图1和图6所示。包括AES/SM4可配置字节替换加密算法模块、抗功耗攻击设计模块;还包括:密钥加密单元、密钥循迹单元、密钥解密单元、签名验签单元。其中,AES/SM4可配置字节替换加密算法模块,用于传输数据的加解密过程;密钥加密单元用于对密钥ex_keyA或ex_keyS进行加密处理;密钥解密单元用于解密循迹得到的加密密钥;密钥循迹单元用于寻找随机添加进入明文加密数据段的加密密钥,签名验签单元用于实现签名验签。
该模块的工作过程为:
首先输入的数据进入AES/SM4可配置字节替换加密算法模块,对用户需要传输的数据信息m进行加密处理之后得到秘密数据X(图3中的密文A、密文S),与此同时,密钥加密单元利用SM2算法对需要传输的可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行加密处理,并且将处理后的通话密钥数据key_AS_2随机地添加进用户的秘密数据X中,只有匹配到正确的用户ID才能正确地访问到该用户的加密通话密钥信息。之后密钥循迹单元在加密的明文数据段中寻找到加密密钥信息key_AS_2,将其输入到密钥解密单元中利用存储在蓝牙设备端的SM2私钥数据才能正确解密得到通话密钥key_AS,进而利用该通话密钥对进入解密单元的加密数据X进行解密,得到最终的传输信息。以上过程是双向过程,无论是用户需要传输数据进入蓝牙设备端,还是用户想要读取蓝牙设备端的数据都需要混合加密的过程。
2.1AES/SM4可配置字节替换加密算法模块
该模块用于用户数据信息加解密的过程,其结构如图3所示,包括7个选择器、2个轮密钥加单元、可配置密钥扩展单元、可配置字节替换单元、分配器、行移位单元、列混淆单元、线性变换单元、反序变换单元,其中:
①可配置密钥扩展单元是将输入的128位数据key_A分成4×4的密钥矩阵作为初始密钥,通过以下的运算表达式不断循环迭代10轮(AES)或32轮(SM4)之后得到对应的扩展后的密钥ex_keyA或ex_keyS:
式2中,K0、K1、K2、K3表示AES的密钥,上标j表示迭代轮数;式3中,下标i表示迭代轮数,rki表示第i次迭代得到的密钥,其中第一次迭代时,i=0;SBOX()表示可配置字节替换单元,完成字节与字节之间的替换;Shift()表示的是字循环操作运算,将输入数据的最后一个字循环左移一个字节,简单点说就是由[C0,C1,C2,C3]变换成[C1,C2,C3,C0];Rcon(j)表示的是AES每一轮的轮常数,下表1给出AES每一轮的轮常量数据;CKi是SM4每一轮的固定常数,具体的参数也在下方给出:
表1 AES轮常量数据
CK0=32'h00070e15,CK1=32'h1c232a31,CK2=32'h383f464d,CK3=32'h545b6269,
CK4=32'h70777e85,CK5=32'h8c939aa1,CK6=32'ha8afb6bd,CK7=32'hc4cbd2d9,
CK8=32'he0e7eef5,CK9=32'hfc030a11,CK10=32'h181f262d,CK11=32'h343b4249,
CK12=32'h50575e65,CK13=32'h6c737a81,CK14=32'h888f969d,CK15=32'ha4abb2b9,
CK16=32'hc0c7ced5,CK17=32'hdce3eaf1,CK18=32'hf8ff060d,CK19=32'h141b2229,
CK20=32'h30373e45,CK21=32'h4c535a61,CK22=32'h686f767d,CK23=32'h848b9299,
CK24=32'ha0a7aeb5,CK25=32'hbcc3cad1,CK26=32'hd8dfe6ed,CK27=32'hf4fb0209,
CK28=32'h10171e25,CK29=32'h2c333a41,CK30=32'h484f565d,CK31=32'h646b7279。
对于上面的CK0至CK31,其中的32'表示32位数据,32'之后的h表示h之后的数据为16进制数。对于整个单元来说,将输入的128位密钥数据key_A分成4×4的密钥矩阵K1、K2、K3、K4,利用式2,通过字循环、字节替换以及轮常量相加可以得到第二个AES扩展密钥,将该密钥用作输入,再通过9轮变换之后可以得到最终的AES扩展密钥ex_keyA;利用式3,通过固定参数相加、线性变换之后可以得到第二个SM4扩展密钥,将该密钥用作输入,再通过31轮变换之后就可以得到最终的SM4扩展密钥ex_keyS。
②可配置字节替换单元用于字节与字节之间的替换,如图4所示,本方案中,AES、SM4对应的字节替换单元运算表达式分别如下:
Z=M(δ-1(δX)-1)+V (4)
Y=A(T-1(T(AX+C))-1)+C (5)
其中,X表示输入到该单元中的数据,Z表示经过AES字节替换的结果,Y表示经过SM4字节替换的结果;AES S盒仿射运算矩阵可以通过运算矩阵M来表示,变换过程中的常量用V来表示;SM4 S盒的仿射矩阵和常量则分别用A和C来表示;δ和T分别是AES和SM4的同构映射矩阵,δ-1和T-1分别是AES和SM4的同构映射逆矩阵,具体的参数表达式如下:
整体单元来说,进入该单元的数据byte_in先选择AES/SM4算法,执行对应的仿射运算、同构映射运算之后,得到的结果进行求逆变换,最后再进行逆同构映射及逆仿射运算即可得到该单元的最终输出byte_out,即图4中的Z或Y。本方案中,对于各模块中算法的选择,在数据开始加密时,产生一个标记值,该标记值用于全局中的加密算法的选择,该标记值通过寄存器传递。
对于AES、SM4两种算法要一起应用,传统方法的字节替换模块是用查找表的形式去实现,这种实现方法造成的面积会很大;本方案设计的可配置方式,可以通过图4的计算方式计算字节替换单元的各个对应的值以及与之相关的密钥值去实现这种查找表,很大程度上减少了设计单元的面积。
③行移位单元用于对字节替换后的4×4字节方阵的数据块,也就是经过SBOX得到的状态矩阵循环移位。在加密过程中,除了第一行数据不变外,之后每矩阵行数加一,那一行的数据将循环左移多一个字节。解密过程则是循环右移操作,刚好与加密过程相反。
④列混淆单元用于对输入矩阵进行列变换处理,加密过程与解密过程的变换分别如下所示:
上述的列变换描述了输入进该单元中的矩阵将被左乘一个固定参数的矩阵,即式10和11中最左侧的矩阵。
⑤轮密钥加单元用于将分组数据与密钥扩展得到的密钥按位异或操作。这里的关键在于每一轮密钥扩展得到的密钥。
⑥线性变换单元用于循环移位操作,运算过程可以用以下公式去描述:
那么图3的过程描述为:
初始密钥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。以上是关于密钥的相关处理过程。
明文数据X输入该模块中,对于AES算法,明文数据X直接进入选择器4中,而SM4算法中将128位数据分成4×4明文数据矩阵(Xi、Xi+1、Xi+2、Xi+3),对矩阵的高三位数据矩阵(Xi+1、Xi+2、Xi+3)进行异或处理之后得到数据XS_321,并进入选择器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);列混淆单元的输出将进入选择器7中,这里就是对输入进入轮密钥加单元1的最后一轮数据进行判断,最后一轮输入进入轮密钥加单元1的数据是行移位单元直接输出的数据,其他时候是列混淆单元输出的数据;轮密钥加单元1的输出将重新进入选择器6中,直到在AES算法最后一轮的轮密钥加单元1运算之后,得到最终的AES加密密文A;在分配器将得到的数据X_byteS分配进入线性变换单元中,进行循环移位处理之后得到的结果与前面输入的明文数据X分成的明文数据矩阵的低一位数据矩阵Xi进行异或处理,得到的结果作为SM4算法的第一轮循环的输出,第一轮循环的输出作为第二轮循环的输入,再分成新的4×4明文数据矩阵(Xi、Xi+1、Xi+2、Xi+3)进行迭代循环;在经过32轮循环迭代之后,对最后一轮数据异或处理得到的结果进行反序变换得到最终的密文S。
该模块的工作过程为:
首先,该模块的输入为:初始密钥、明文输入以及指定的加密算法。之后在初始密钥经过可配置密钥扩展之后得到该选择算法的所有密钥。在明文输入后,如果是选择AES算法加密,则经过图3中10轮的轮密钥加单元、可配置字节替换单元、行移位单元、列混淆单元等单元的变换,最终该模块输出密文A;如果是选择SM4算法加密,则经过图3中的32轮相似变换之后,最终该模块输出密文S。这样,就可以分别得到AES、SM4的密文数据。
在模块设计优势上而言:
在图3实现算法中,字节替换模块是整个算法模块设计中使用最多且占用硬件资源最大的电路模块,尤其是密钥扩展以及轮变换的核心模块,也是AES/SM4两种算法可以复用的单元模块。特别地,在复合域中实现可配置的字节替换模块,代替查找表的实现方式,可以在很大程度上减小面积和功耗,同时集成了AES/SM4两种实现方式,使得电路更加适用于一些资源受限、要求更高的场合,对于该蓝牙设备而言整体面积及功耗更低,更加小巧灵活。
图4是可配置的字节替换模块结构,直接在GF(28)域上实现可配置S盒,在代数运算上求解很复杂且在硬件实现上不容易实现。在采用复合域分解技术,将有限域上的运算转换到复合域上来,能大大降低运算复杂度。
2.2抗功耗攻击设计模块
这里主要涉及到侧信道攻击中的非侵入式攻击。非侵入式攻击可以在不破坏芯片内部电路、时序的情况下,从功耗消耗、电磁泄露中恢复完整的正确密钥。非侵入式攻击原理是采集加密设备在加解密运行中泄露的功耗,并通过统计学方法观测、分析以破解密钥。常见的非侵入式攻击有功耗攻击、时间攻击、电磁攻击。在侧信道攻击实例中,实施非侵入性侧信道攻击通常需要在芯片电源上串联连接10~100Ω左右电阻,由于芯片和电阻串联在一起,它们的电流是一致的,所以利用示波器和电压探头去采集的电阻两端电位差可以直接反映芯片的功耗。因此,即使在理论上被证明十分安全的加密算法,在侧信道攻击面前也可能会显得十分脆弱,可轻易被攻击恢复完整密钥。所以本专利在数据输入前增加了MASK掩码技术去实现抗功耗分析攻击,图5展示了实现的流程图。
该模块用于抗功耗分析攻击,主要是加随机数掩码单元及去掩码单元。其中加掩码单元用于对输数据添加随机掩码MASK,去掩码单元用于去除运算之后的随机掩码MASK。
该模块的工作过程为:
对于输入数据,经过加掩码单元后引入随机数掩码m1对输进AES/SM4加密算法的数据进行异或掩码,得到的结果输入AES/SM4可配置字节替换加密算法模块中(即图3中的明文输入),在AES/SM4可配置字节替换加密算法模块的加解密结果密文A、密文S输出后经过去掩码单元进行去掩码还原操作,从而使整个计算过程都被掩码覆盖,保证每次计算的值都不相同.
同理,对于初始密钥key_A经过加掩码单元后引入随机数掩码m2对密钥进行异或掩码,得到的结果输入可配置密钥扩展单元中,在加解密密钥扩展完成后经过去掩码单元进行去掩码还原操作,从而使整个计算过程都被掩码覆盖,保证每次计算的值都不相同。通话密钥加掩码的AES流程与AES加密流程相同,只是对16字节进行异或掩码,再进行密钥扩展,当密钥扩展后又异或去掉掩码。由于AES解密与AES加密流程相同,就不进行描述。同样的对SM4加密算法,也是对通话密钥进行掩码异或,流程相似,不再赘述。
2.3签名验签单元
另外,由于SM2还具有签名验签的功能,所以设计了签名验签单元。我们可以通过生成的合法用户ID首先进行用户信息匹配,通过发送用户ID信息m进行识别,同时以m作为签名,一旦签名不一致将被判定为非法用户,签名验签的过程如图7所示。
假设设备端接收到了APP端发送过来的签名值(r`,s`)和消息m`,设备端也具有与APP端相同的椭圆曲线系统参数、公钥P、私钥d以及接受到的签名值(r`,s`)和m`。接下来对消息进行验证,这里由接受到的消息推算出来的点(x2,y2)应是与APP端对G点点乘k得到的点(x1,y1)值相同。下面是该过程的理论推导:
由签名过程不难得到(k是随机数):
(1+d)s=(k-rd)modn (13)
由验签过程以及式子(1)和(13)得到下面的式子以及图7的过程:
我们可以发现,当消息以及签名值发过来的时候,由于公钥P的原因,(x,y)的值应该是相等的。那么接下来我们需要检验:
A.r`是否在[1,n-1]里面,n表示模数;
B.s`是否在[1,n-1]里面
C.验证计算得到的R值是否与接收到的r`值相等
如果都符合,设备端就会发送“接收签名,验证通过”的信息到用户的APP端;如果不满足就说明该APP端属于非法APP端,APP将收到“拒绝签名,验证不通过”的信息。
以上技术内容都在硬件层面实现,便于模块化、集成化,使得设备整体面积、功耗更低,更加适用于一些资源受限、要求更高的场合。
基于上述的所有模块,本申请的加密过程如下:
步骤1,当用户访问蓝牙设备端时,发送访问请求数据到用户ID创建模块,通过合法用户ID创建模块检验该用户的合法ID信息。如果数据库中并无该用户的ID信息则对该用户进行合法用户的创建。这样所有访问蓝牙设备的用户都有一个属于自己的用户ID以及数据存储区。再通过合法用户ID创建模块以及混合加密模块中的签名验签单元的双重身份验证,可以证明该用户的ID合法性,并允许该用户访问对应ID下的数据存储区域。
步骤2,用户访问的数据X传送前先要经过抗功耗攻击设计模块的加掩码处理,得到加掩码之后的访问数据X_MASK。
步骤3,在经过抗功耗攻击设计模块之后,将添加掩码后的数据X_MASK发送给混合加密模块。首先经过AES/SM4可配置字节替换加密算法模块进行加密处理,根据选择的加密算法,可以得到加密数据X_MASK_AS(图3所示的密文A、密文S)。
步骤4,然后对AES/SM4可配置字节替换加密算法模块的可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行SM2加密处理得到加密的密钥key_AS_2,并将该密钥随机添加进加密数据X_MASK_AS中,整合成一段完整的加密数据发送出去。
至于数据解密过程是这样的:
步骤1,用户在接收到加密数据之后,利用混合加密模块的密钥循迹单元可以分别得到加密通话密钥key_AS_2以及加密数据X_MASK_AS;
步骤2,在利用密钥解密单元将加密通话密钥解密之后,将加密数据发送到混合算法模块中进行解密得到加掩码之后的数据X_MASK;
步骤3,最终通过抗功耗攻击设计模块的去掩码处理之后,还原得到用户访问的数据X。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
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明文数据矩阵Xi、Xi+1、Xi+2、Xi+3,对矩阵的高三位数据矩阵Xi+1、Xi+2、Xi+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分配进入线性变换单元中,进行循环移位处理之后得到的结果与低一位数据矩阵Xi进行异或处理,得到的结果作为SM4算法的第一轮循环的输出,第一轮循环的输出作为第二轮循环的输入,再分成新的4×4明文数据矩阵进行迭代循环;在达到循环迭代次数后,对最后一轮数据异或处理得到的结果通过反序变换单元进行反序变换得到最终的密文S。
2.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,对于密钥key_A,所述可配置密钥扩展单元对于AES算法通过以下算式2循环迭代10轮得到扩展后的密钥ex_keyA,对于SM4算法通过算式3循环迭代32轮得到扩展后的密钥ex_keyS:
式2中,K0、K1、K2、K3表示AES的密钥,上标j表示迭代轮数;式3中,下标i表示迭代轮数,Ki、Ki+1、Ki+2、Ki+3表示SM4的密钥,rki表示第i次迭代得到的密钥,其中第一次迭代时,i=0;SBOX()表示可配置字节替换单元,完成字节与字节之间的替换;Shift()表示的是字循环操作运算,将输入数据的最后一个字循环左移一个字节;Rcon(j)表示的是AES算法每一轮的轮常数,CKi是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表示AES算法的S盒仿射运算矩阵,变换过程中的常量用v来表示;SM4算法的S盒的仿射矩阵和常量则分别用A和C来表示;δ和T分别是AES和SM4的同构映射矩阵,δ-1和T-1分别是AES和SM4的同构映射逆矩阵;
进入该单元的数据先选择AES/SM4算法,执行对应的仿射运算、同构映射运算之后,得到的结果进行求逆变换,最后再进行逆同构映射及逆仿射运算即可得到该单元的最终输出。
4.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述行移位单元用于对字节替换后得到的状态矩阵循环移位;在加密过程中,除了第一行数据不变外,之后每矩阵行数加一,那一行的数据将循环左移多一个字节;解密过程则是循环右移操作,刚好与加密过程相反。
5.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述列混淆单元用于对输入进该单元的数据矩阵进行列变换处理,将数据矩阵左乘一个固定参数的矩阵;
所述轮密钥加单元用于将分组数据与密钥进行按位异或操作。
6.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述蓝牙设备数据加密结构还包括:
合法用户ID创建模块,包括用户发送连接请求单元、蓝牙设备查询ID单元、用户ID创建单元、用户数据存储区单元;
当用户发送访问请求访问蓝牙设备时,用户发送连接请求单元先对用户进行标记;蓝牙设备查询ID单元先对本地存储器的用户ID数据库进行查找,查看本地是否有相应的用户ID,如果没有则表明该用户是第一次访问蓝牙设备,需要用户ID创建单元创建用户的ID,创建后该用户就是合法用户,在用户数据存储区单元中建立对应于该用户ID的用户数据存储区,合法用户在签名验签通过之后可访问用户数据存储区内的用户数据信息,从而完成用户ID创建过程;每个合法用户的ID与椭圆曲线ECC算法的公钥有关,通过取椭圆曲线上面不同的点G来生成不同的公钥P,利用杂凑函数对不同的公钥进行散列运算,可以得到不同的用户ID。
7.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述混合加密模块还包括:抗功耗攻击设计模块;
抗功耗攻击设计模块用于在对数据进入AES/SM4可配置字节替换加密算法模块之前,引入随机掩码m1对数据进行异或掩码,而AES/SM4可配置字节替换加密算法模块输出的加密结果经过去掩码还原操作;
还用于对初始密钥key_A利用随机掩码m2对密钥进行异或掩码,得到的结果输入可配置密钥扩展单元中,在加解密密钥扩展完成后进行去掩码还原操作。
8.根据权利要求1所述的蓝牙设备数据加密结构,其特征在于,所述混合加密模块还包括:密钥加密单元、密钥循迹单元、密钥解密单元、签名验签单元,其中:
密钥加密单元用于利用SM2算法对可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行加密处理,并且将处理后的通话密钥数据key_AS_2随机地添加进用户的秘密数据X中,只有匹配到正确的用户ID才能正确地访问到该用户的加密通话密钥信息;之后密钥循迹单元在加密的明文数据段中寻找到加密密钥信息key_AS_2,将其输入到密钥解密单元中利用存储在蓝牙设备端的SM2私钥数据才能正确解密得到通话密钥key_AS;进而利用该通话密钥对进入解密单元的加密数据X进行解密,得到最终的传输信息;
签名验签单元用于实现签名验签。
9.一种蓝牙设备数据加密方法,其特征在于,包括:
步骤1,当用户访问蓝牙设备端时,根据用户发送的访问请求数据,检验该用户的合法ID信息,如无该用户的ID信息则对该用户进行合法用户的创建,并进行签名验签的身份认证;
步骤2,用户访问的数据X传送前先要经过抗功耗攻击设计模块的加掩码处理,得到加掩码之后的访问数据X_MASK;
步骤3,将添加掩码后的数据X_MASK发送给混合加密模块,首先经过AES/SM4可配置字节替换加密算法模块进行加密处理,根据选择的加密算法,可以得到加密数据X_MASK_AS;
步骤4,对AES/SM4可配置字节替换加密算法模块的可配置密钥扩展单元扩展得到的密钥ex_keyA或ex_keyS进行SM2加密处理得到加密的密钥key_AS_2,并将该密钥随机添加进加密数据X_MASK_AS中,整合成一段完整的加密数据发送出去。
10.一种蓝牙设备数据解密方法,其特征在于,包括:
步骤1,用户在接收到加密数据之后,利用混合加密模块的密钥循迹单元可以分别得到加密通话密钥key_AS_2以及加密数据X_MASK_AS;
步骤2,在利用密钥解密单元将加密通话密钥解密之后,将加密数据发送到混合算法模块中进行解密得到加掩码之后的数据X_MASK;
步骤3,最终通过抗功耗攻击设计模块的去掩码处理之后,还原得到用户访问的数据X。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423148.2A CN114125801A (zh) | 2021-11-26 | 2021-11-26 | 一种蓝牙设备数据加密结构及加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423148.2A CN114125801A (zh) | 2021-11-26 | 2021-11-26 | 一种蓝牙设备数据加密结构及加解密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114125801A true CN114125801A (zh) | 2022-03-01 |
Family
ID=80370363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111423148.2A Pending CN114125801A (zh) | 2021-11-26 | 2021-11-26 | 一种蓝牙设备数据加密结构及加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114125801A (zh) |
-
2021
- 2021-11-26 CN CN202111423148.2A patent/CN114125801A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zheng et al. | A lightweight authenticated encryption scheme based on chaotic scml for railway cloud service | |
Mathur et al. | AES based text encryption using 12 rounds with dynamic key selection | |
US8687800B2 (en) | Encryption method for message authentication | |
Siahaan | An overview of the RC4 algorithm | |
CN101202623B (zh) | 消息验证码产生方法、验证/加密和验证/解密方法 | |
US7570759B2 (en) | System and method for secure encryption | |
JPH1075240A (ja) | データ送信を保護する方法およびデータを暗号化または解読化する装置 | |
CN113206736A (zh) | 一种基于aes加密算法的加密方法 | |
CN101401141A (zh) | 信息处理系统、信息处理方法以及信息处理程序 | |
Gafsi et al. | High securing cryptography system for digital image transmission | |
Mousavi et al. | Security of Internet of Things using RC4 and ECC algorithms (case study: smart irrigation systems) | |
CN210955077U (zh) | 一种基于国密算法和puf的总线加解密装置 | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
CN117318941B (zh) | 基于车内网的预置密钥分发方法、系统、终端及存储介质 | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Akram et al. | Triple Key Security Algorithm Against Single Key Attack on Multiple Rounds. | |
Amine et al. | A secure hash function based on sponge construction and chaos-maps | |
Alshawi et al. | Improved Salsa20 stream cipher diffusion based on random chaotic maps | |
CN114125801A (zh) | 一种蓝牙设备数据加密结构及加解密方法 | |
CN114417382A (zh) | 数据传输加解密方法、装置、设备及存储介质 | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
Rasna et al. | Comparison of Security Signing Data Authentication Integrity in Combination of Digest And AES Message Algorithm | |
Jeddi et al. | Redundant bit security in RFIDs: Architecture design and security performance evaluation | |
CN107766725B (zh) | 抗模板攻击的数据传输方法及系统 | |
Bouchkaren et al. | CAES Cryptosystem: Advanced Security Tests and Results. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |