System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请的实施例涉及通信安全的,尤其涉及一种轻量级加密方法、解密方法、相关设备及车辆。
技术介绍
1、在车联网环境下通信时,由于通信数据量较小,并且车内部件的运算处理能力以及存储能力较为受限,所以适用于车内环境下的密码算法需要特别注重轻量化,同时也要保障一定的安全性,并且,由于车内网络通信的can总线下每帧数据为8比特,因此,密码算法在数据长度上也收到限制。
技术实现思路
1、有鉴于此,本申请的目的在于提出一种轻量级加密方法、解密方法、相关设备及车辆。
2、基于上述目的,本申请提供了轻量级加密方法,应用于发送端,该方法包括:
3、利用预设的置换函数,对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,得到第一初始化序列和第二初始化序列;
4、将明文数据按照比特位的顺序分割为多个明文数据块,利用所述第一初始化序列和所述第二初始化序列进行多轮加密,在每轮加密中对一个明文数据块进行加密,并进行一次序列置换,在多轮加密后得到多个密文数据块、第一加密序列和第二加密序列,将所述多个密文数据块组成密文数据;
5、利用所述置换函数,对所述第一加密序列和所述第二加密序列进行多轮序列置换,得到第一标签序列和第二标签序列,利用所述第一标签序列和所述第二标签序列组成第一标签;
6、将所述密文数据和所述第一标签发送至接收端。
7、进一步地,对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,包括:
>8、在首轮置换中,利用主密钥的前多位比特构建首轮置换的多个子密钥,并对主密钥进行一次循环移位,得到下一轮置换中的位移密钥,在每个非首轮置换中,利用本轮置换中的位移密钥的前多位比特构建本轮置换的多个子密钥,并对位移密钥进行一次循环移位,得到下一轮置换的位移密钥;
9、在首轮置换中,利用所述奇数位比特组成的序列和所述偶数位比特组成的序列进行异或,得到得到首轮置换的第一输入序列,在每个非首轮置换中,利用前一轮置换得到的第一中间序列和第二中间序列进行异或,得到本轮置换的第一输入序列;
10、在每轮置换中,利用所述第一输入序列与所述多个子密钥进行复合函数的运算,得到本轮置换的第一输出序列,利用所述第一输出序列分别与前一轮置换的第一中间序列和第二中间序列进行异或,得到本轮置换的第一中间序列和第二中间序列;
11、响应于达到预设的置换轮次,将最后一轮置换得到的第一中间序列和第二中间序列分别确定第一初始化序列和第二初始化序列。
12、其中,本轮置换的多个子密钥包括第一子密钥、第二子密钥和第三子密钥;
13、进一步地,利用所述第一输入序列与所述多个子密钥进行复合函数的运算,得到本轮置换的第一输出序列,包括:
14、将所述第一输入序列分割为第一输入数据块、第二输入数据块、第三输入数据块和第四输入数据块;
15、利用所述第一子密钥与所述第一输入数据块进行模乘法,得到第一子序列,利用所述第二子密钥与所述第二输入数据块进行模加法,得到第二子序列,利用所述第一子密钥与所述第三输入数据块进行模加法,得到第三子序列,利用所述第二子密钥与所述第四输入数据块进行模乘法,得到第四子序列;
16、利用所述第一子序列和所述第三子序列进行异或,得到第五子序列,利用所述第二子序列和所述第四子序列进行异或,得到第六子序列,利用所述第三子密钥和所述第五子序列进行模乘法,得到第七子序列,利用所述第六子序列和所述第七子序列进行模加法,得到第八子序列,利用所述第三子密钥和所述第八子序列进行模乘法,得到第九子序列,利用所述第七子序列和所述第九子序列进行模加法,得到第十子序列;
17、利用所述第一子序列和所述第九子序列进行异或,得到第一输出数据块,利用所述第二子序列和所述所述第十子序列进行异或,得到第二输出数据块,利用所述第九子序列与所述第三子序列进行异或,得到第三输出数据块,利用所述第十子序列和所述第四子序列进行异或,得到第四输出数据块;
18、将所述第一输出数据块、所述第二输出数据块、所述第三输出数据块和所述第四输出数据块组成所述第一输出序列。
19、进一步地,在每轮加密中对一个明文数据块进行加密,并进行一次序列置换,包括:
20、在首轮加密时,将所述第一初始化序列与首个明文数据块进行异或,得到对应的密文数据块,将本轮加密得到的密文数据块与所述第二初始化序列进行序列置换,得到本轮加密的第一过渡序列和第二过渡序列;
21、在非首轮加密时,将前一轮加密得到的第一过渡序列与对应顺序的明文数据块进行异或,得到对应的密文数据块,将本轮加密得到的密文数据块与前一轮加密得到的第二过渡序列进行序列置换,得到本轮加密的第一过渡序列和第二过渡序列。
22、基于同一专利技术构思,本申请提供了轻量级解密方法,应用于接收端,该方法包括:
23、从所述发送端接收密文数据和第一标签,利用预设的置换函数,对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,得到第三初始化序列和第四初始化序列;
24、将所述密文数据按照比特位的顺序分割为多个密文数据块,利用所述第三初始化序列和所述第四初始化序列进行多轮解密,在每轮解密中对一个密文数据块进行解密,并进行一次序列置换,在多轮解密后得到多个明文数据块、第一解密序列和第二解密序列,将所述多个明文数据块组成明文数据;
25、利用所述置换函数,对所述第一解密序列和所述第二解密序列进行多轮序列置换,得到第三标签序列和第四标签序列,利用所述第三标签序列和所述第四标签序列组成第二标签,响应于确定所述第二标签和所述第一标签一致,则确定所述明文数据正确。
26、基于同一专利技术构思,本申请还提供了一种轻量级加密装置,包括:第一初始化模块、加密模块、第一标签生成模块和发送模块;
27、其中,所述第一初始化模块,被配置为,利用预设的置换函数,对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,得到第一初始化序列和第二初始化序列;
28、所述加密模块,被配置为,将明文数据按照比特位的顺序分割为多个明文数据块,利用所述第一初始化序列和所述第二初始化序列进行多轮加密,在每轮加密中对一个明文数据块进行加密,并进行一次序列置换,在多轮加密后得到多个密文数据块、第一加密序列和第二加密序列,将所述多个密文数据块组成密文数据;
29、所述第一标签生成模块,被配置为,利用所述置换函数,对所述第一加密序列和所述第二加密序列进行多轮序列置换,得到第一标签序列和第二标签序列,利用所述第一标签序列和所述第二标签序列组成第一标签;
30、所述发送模块,被配置为,将所述密文数据和所述第一标签发送至接收端。
31、基于同一专利技术构思,本申请还提供了一种轻量级解密装置,包括:第二初始化模块、解密模块和第二标签生成模块;
本文档来自技高网...【技术保护点】
1.一种轻量级加密方法,其特征在于,应用于发送端;
2.根据权利要求1所述的方法,其特征在于,所述对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,包括:
3.根据权利要求2所述的方法,其特征在于,本轮置换的多个子密钥包括第一子密钥、第二子密钥和第三子密钥;
4.根据权利要求1所述的方法,其特征在于,所述在每轮加密中对一个明文数据块进行加密,并进行一次序列置换,包括:
5.一种轻量级解密方法,其特征在于,应用于接收端;
6.一种轻量级加密装置,其特征在于,包括:第一初始化模块、加密模块、第一标签生成模块和发送模块;
7.一种轻量级解密装置,其特征在于,包括:第二初始化模块、解密模块和第二标签生成模块;
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所
10.一种车辆,其特征在于,包括如权利要求6所述的轻量级加密装置和/或权利要求7所述的轻量级解密装置。
...【技术特征摘要】
1.一种轻量级加密方法,其特征在于,应用于发送端;
2.根据权利要求1所述的方法,其特征在于,所述对主密钥的奇数位比特组成的序列和偶数位比特组成的序列进行多轮序列置换,包括:
3.根据权利要求2所述的方法,其特征在于,本轮置换的多个子密钥包括第一子密钥、第二子密钥和第三子密钥;
4.根据权利要求1所述的方法,其特征在于,所述在每轮加密中对一个明文数据块进行加密,并进行一次序列置换,包括:
5.一种轻量级解密方法,其特征在于,应用于接收端;
6.一种轻量级加密装置,其特征在于,包括:第一初始化模块、加密模块、第一标签生成模块和...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。