一种数据防伪加密方法、装置、计算机设备及存储介质转让专利
申请号 : CN202111219274.6
文献号 : CN113660620B
文献日 : 2022-01-21
发明人 : 李石峰 , 温介邦
申请人 : 北京卓建智菡科技有限公司 , 上海卓菡科技有限公司
摘要 :
权利要求 :
1.一种数据防伪加密方法,其特征在于,包括:获取待广播的原始数据,将所述原始数据拆分成第一数据和第二数据;
对所述第二数据进行扩展,得到第二扩展数据,使用预设的第一密钥对所述第二扩展数据进行加密,得到第二加密数据;
将所述第二加密数据与所述第一数据进行位置交换,并将所述第一数据确定为新的第二数据;
对所述新的第二数据进行扩展,得到新的第二扩展数据,使用预设的第二密钥对所述新的第二扩展数据进行加密,得到新的第二加密数据;
将所述新的第二加密数据与所述第二加密数据进行位置交换后拼接在一起,并经逆置换处理,得到目标加密数据;
所述使用预设的第一密钥对所述第二扩展数据进行加密,得到第二加密数据,包括:将所述第二扩展数据与所述第一密钥进行异或运算,得到第一异或运算结果;
对所述第一异或运算结果进行替代运算,获得第一替代运算结果;
对所述替代运算结果进行置换运算,获得第一置换结果;
对所述第一置换结果与所述第二数据进行异或运算,得到第二加密数据;
所述对所述第一异或运算结果进行替代运算,获得第一替代运算结果,包括:将所述第一异或运算结果输入S盒,以对所述第一异或运算结果进行降位,获得位数与所述第一密钥相同的第一替代运算结果;
所述将所述新的右半部分加密数据与所述右半部分加密数据进行位置交换后拼接在一起,得到目标加密数据,包括:将所述新的第二加密数据与所述第二加密数据进行左右位置交换后拼接在一起,完成针对所述原始数据的一轮加密,得到第一轮加密数据;
当针对所述原始数据的加密轮数未满足预设的轮数阈值时,对前一轮加密数据进行再次加密处理,获得第N轮加密数据;其中,N=2;
当针对所述原始数据的加密轮数满足预设的轮数阈值时,将第N轮加密数据经逆置换处理后确定为目标加密数据;
所述S盒的值生成算法如下:(a)定义初始排列0、1、2、3、4、5、6、7、8、9、10、11、12、13、
14、15;(b)设第n个S盒为Sn,n取值为1 8;
~
(c)Sn的行列式生成公式如下:P>>((n*1)‑1);
P>>((n*2)‑1);
P>>((n*3)‑1);
P>>((n*4)‑1);
式中,P表示(a)中的初始排列矩阵,>>表示循环右移,n表示S盒子的索引。
2.根据权利要求1所述的数据防伪加密方法,其特征在于,所述将所述原始数据拆分成第一数据和第二数据,包括:
按预设的置换规则对所述原始数据进行置换处理,获得初始置换数据;
将所述初始置换数据拆分成左半部分数据和右半部分数据,所述左半部分数据对应第一数据,所述右半部分数据对应第二数据。
3.根据权利要求1所述的数据防伪加密方法,其特征在于,所述对所述第二数据进行扩展,得到第二扩展数据,包括:调整所述第二数据的次序,并重复所述第二数据中预设位置的数据,得到第二扩展数据。
4.根据权利要求1所述的数据防伪加密方法,其特征在于,所述使用预设的第一密钥对所述第二扩展数据进行加密,得到第二加密数据之前,还包括:获取原始密钥,将所述原始密钥拆分成第一子密钥和第二子密钥;
对所述第一子密钥进行循环右移变换,得到第一变换子密钥,并对所述第二子密钥进行循环右移变换,得到第二变换子密钥;
将所述第一变换子密钥和所述第二变换子密钥进行合并,得到第一合并密钥;
对所述第一合并密钥进行选择置换,生成第一密钥。
5.根据权利要求4所述的数据防伪加密方法,其特征在于,所述将所述原始密钥拆分成第一子密钥和第二子密钥,包括:对所述原始密钥进行降位处理,得到降位密钥;
对所述降位密钥进行位置置换,得到置换密钥,将所述置换密钥拆分成第一子密钥和第二子密钥。
6.根据权利要求4所述的数据防伪加密方法,其特征在于,所述使用预设的第二密钥对所述新的第二数据进行加密,得到新的第二加密数据之前,还包括:对所述第一变换子密钥进行循环右移变换,得到第三变换子密钥,并对所述第二变换子密钥进行循环右移变换,得到第四变换子密钥;
将所述第三变换子密钥和所述第四变换子密钥进行合并,得到第二合并密钥;
对所述第二合并密钥进行置换选择,生成第二密钥。
7.一种数据防伪加密装置,其特征在于,包括:数据获取模块,用于获取待广播的原始数据,将所述原始数据拆分成第一数据和第二数据;
第一加密模块,用于对所述第二数据进行扩展,得到第二扩展数据;使用预设的第一密钥对所述第二扩展数据进行加密,得到第二加密数据;
交换模块,用于将所述第二加密数据与所述第一数据进行位置交换,并将所述第一数据确定为新的第二数据;
第二加密模块,用于对所述新的第二数据进行扩展,得到新的第二扩展数据;使用预设的第二密钥对所述新的第二数据进行加密,得到新的第二加密数据;
输出模块,用于将所述新的第二加密数据与所述第二加密数据进行左右位置交换后拼接在一起,并经逆置换处理,得到目标加密数据;
所述使用预设的第一密钥对所述第二扩展数据进行加密,得到第二加密数据,包括:将所述第二扩展数据与所述第一密钥进行异或运算,得到第一异或运算结果;
对所述第一异或运算结果进行替代运算,获得第一替代运算结果;
对所述替代运算结果进行置换运算,获得第一置换结果;
对所述第一置换结果与所述第二数据进行异或运算,得到第二加密数据;
所述对所述第一异或运算结果进行替代运算,获得第一替代运算结果,包括:将所述第一异或运算结果输入S盒,以对所述第一异或运算结果进行降位,获得位数与所述第一密钥相同的第一替代运算结果;
所述将所述新的右半部分加密数据与所述右半部分加密数据进行位置交换后拼接在一起,得到目标加密数据,包括:将所述新的第二加密数据与所述第二加密数据进行左右位置交换后拼接在一起,完成针对所述原始数据的一轮加密,得到第一轮加密数据;
当针对所述原始数据的加密轮数未满足预设的轮数阈值时,对前一轮加密数据进行再次加密处理,获得第N轮加密数据;其中,N=2;
当针对所述原始数据的加密轮数满足预设的轮数阈值时,将第N轮加密数据经逆置换处理后确定为目标加密数据;
所述S盒的值生成算法如下:(a)定义初始排列0、1、2、3、4、5、6、7、8、9、10、11、12、13、
14、15;(b)设第n个S盒为Sn,n取值为1 8;
~
(c)Sn的行列式生成公式如下:P>>((n*1)‑1);
P>>((n*2)‑1);
P>>((n*3)‑1);
P>>((n*4)‑1);
式中,P表示(a)中的初始排列矩阵,>>表示循环右移,n表示S盒子的索引。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并且可以在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述方法的步骤。
说明书 :
一种数据防伪加密方法、装置、计算机设备及存储介质
技术领域
背景技术
以太网地址、物理地址,直译为媒体存取控制位址,是用来确认网络设备位置的位址)、UUID
(蓝牙信标标识1)、Major(蓝牙信标标识2)、Minor(蓝牙信标标识3)和Tx power(蓝牙信标
发送功率)等周期性地发送给周围的设备。
备发送的蓝牙信标数据。由此一些非法设备可以极低的成本非法复制该蓝牙信标数据,并
利用复制的蓝牙信标数据来达到不良目的(例如定位作弊等),不仅严重干扰了蓝牙定位系
统的稳定运行,而且还会给蓝牙定位系统带来巨大的安全隐患。
发明内容
随意或恶意复制利用、安全性低的问题。
方法的步骤。
待广播的原始数据拆分成第一数据和第二数据;对第二数据进行扩展,得到第二扩展数据;
使用预设的第一密钥对该第二扩展数据进行加密,得到第二加密数据;将第二加密数据与
第一数据进行位置交换,并将第一数据确定为新的第二数据;对新的第二数据进行扩展,得
到新的第二扩展数据;使用预设的第二密钥对新的第二扩展数据进行加密,得到新的第二
加密数据;将新的第二加密数据与第二加密数据进行左右位置交换后拼接在一起,再经逆
置换处理,得到目标加密数据并输出,从而完成对原始数据的加密处理,该加密过程极大增
加了原始数据被其他接收设备破解的难度,可以有效防止该广播的数据被其他接收设备随
意或恶意复制,安全性高。此外,相较于其他现有的加密算法(例如,AES、3DES、RCA和ECC
等),本公开的加密方法计算量更小,可适用于单片机类设备使用,具有较好的市场前景。
附图说明
实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附
图获得其它的附图。
具体实施方式
细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电
路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
广播数据长度(AD Field Length),长度为1字节;广播类型(Type),长度为1字节;信标制造
商ID(Company ID),长度为2字节;iBeacon数据类型(iBeacon Type),长度为1字节;UUID为
蓝牙信标标识1,长度为16字节;Major是蓝牙信标标识2,长度为2字节;Minor是蓝牙信标标
识3,长度为2字节;蓝牙信标发送功率(Tx Power),长度为1字节。如图3所示,将UUID分为3
个部分,分别为6个字节的定制部分,8个字节的防伪加密部分以及2个字节的校验部分。其
中,蓝牙信标数据中的明文数据为上述的UUID的8个字节的防伪加密部分。
要广播数据时,通过直接调用数据发送设备中存储的第一密钥和第二密钥,或者通过数据
发送设备向服务器发起请求,以获取到服务器下发的第一密钥和第二密钥。具体的,为了能
够快速准确地找到与数据发送设备对应的密钥进行加密,并便于后续的解密操作,可以将
密钥与其对应的MAC地址绑定在一起,并存储在数据发送设备或服务器或云端数据库中。
成第一数据和第二数据;对第二数据进行扩展,得到第二扩展数据;使用预设的第一密钥对
该第二扩展数据进行加密,得到第二加密数据;将第二加密数据与第一数据进行位置交换,
并将第一数据确定为新的第二数据;对新的第二数据进行扩展,得到新的第二扩展数据;使
用预设的第二密钥对新的第二扩展数据进行加密,得到新的第二加密数据;将新的第二加
密数据与第二加密数据进行左右位置交换后拼接在一起,再经逆置换处理,得到目标加密
数据并输出。一方面,通过上述防伪加密处理之后的原始数据被其他接收设备破解的难度
较大,因此可以有效地防止该广播的数据被其他非法接收设备随意或恶意复制,安全性高,
有利于保障蓝牙定位系统的稳定运行,并提升整个蓝牙系统的安全系数;另一方面,可以有
效地遏制非法设备恶意复制该广播数据,避免利用该复制的广播数据实现定位作弊等不良
目的的现象。
62 54 46 38 30 22 14 6
8 50 40 48 32 24 12 64
1 49 41 9 25 23 39 57
11 51 43 35 27 19 59 63
61 53 45 37 29 21 13 5
63 55 47 33 31 17 7 15
32位数据,第二数据则为该初始置换数据中的后32位数据。
的破解难度,从而能有效地保护原始数据,防止原始数据被恶意复制。
换表。
4 5 6 7 8 9
8 9 10 11 16 13
12 13 14 15 28 32
12 17 18 19 16 21
20 21 22 23 24 25
24 25 26 27 28 29
20 29 5 31 32 1
密钥进行右对齐,将64位的原始密钥降至56位的降位密钥。接着,按照预设的缩小选择置换
表(如下表3所示)对该降位密钥的位置进行置换,得到置换密钥,再将该置换密钥拆分成28
位的第一子密钥和28位的第二子密钥。例如,将该置换密钥的前28位(即下表3中的K39、K4、
K41……K36所对应的数据)划分为第一子密钥,后28位(即下表3中的K63、K29、K47……K12
所对应的数据)划分为第二子密钥。
58 50 42 34 26 18 10 2
59 51 43 35 27 19 11 60
3 52 44 36 63 29 47 52
31 23 15 25 62 54 46 38
1 22 14 6 61 53 33 37
55 21 13 5 9 20 49 12
钥;将第二子密钥按照下表5所示第二右移置换表的向右循环移动3位,得到第二变换子密
钥。
34 26 18 10 2 59 51
43 35 27 19 11 60 3
31 23 15 25 62 54 46
38 1 22 14 6 61 53
33 37 55 21 13 5 9
选择表对第一合并密钥的次序、位置进行调整,生成48位的第一密钥。
3 28 15 6 21 10
23 19 12 32 26 5
16 7 27 20 13 41
2 52 31 37 47 55
30 51 40 45 33 41
44 49 39 24 11 53
50 42 46 36 29 4
性,进而提高了使用该第一密钥对原始数据的第二扩展数据的防伪安全性。
果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位
的二进制加法。
运算结果。
一个S盒代替操作,经过S盒代替,形成8个4位分组结果,即得到32位的输出结果。即每个S盒
自身是64位,每一个S盒的输入数据是6位,输出数据是4位。每个S盒是4行16列的格式,因为
二进制4位是0 15。8个S盒的值生成算法如下:
~
14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13
13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12
~
则在S8盒中行号为3,即对应S8盒的第3行;原始数据第二位到第五位为1001(二进制),转换
为十进制为9,则在S8盒中列号为9,即对应S8盒的第9列,S8盒的第3行第9列的数字为12,转
换为二进制为1100,因此用二进制1100来代替110011,即S盒输出的是1100(二进制)。
30 31 2 27 5 6 9 13
20 32 22 3 4 17 10 11
19 29 28 24 18 16 15 14
对第二变换子密钥进行循环右移变换(右移3位),得到第四变换子密钥。
7 17 28 30 58 50 42
34 26 18 10 2 59 51
43 35 27 19 11 60 3
31 23 15 25 62 54 46
38 1 22 14 6 61 53
33 37 55 21 13 5 9
钥。
数据的过程类似,在此不在赘述。
异或结果。接着,使用第二密钥对该原始数据的第一(新的第二数据)进行加密,加密后,第
二数据为原始数据的第二数据与函数f的输出结果的异或结果,第一数据为原始数据的第
一数据与函数f的输出结果的异或结果。
起之后,即完成针对原始数据的一轮加密,得到第一轮加密数据。
密数据进行再次加密,获得第三轮加密数据……以此类推,对第七轮加密数据进行再次加
密,获得第八轮加密数据,并将第八轮加密数据确定为目标加密数据。
密数据的过程中所用到的密钥为第五密钥和第六密钥;对第三轮加密数据进行再次加密处
理,获得第四轮加密数据的过程中所用到的密钥为第七密钥和第八密钥……对第七轮加密
数据进行再次加密处理,获得第八轮加密数据的过程中所用到的密钥为第十五密钥和第十
六密钥。
第三合并密钥,再按照上表6所示的置换选择表对第三合并密钥的次序、位置进行调整生成
的。
变换子密钥合并后得到第十六合并密钥,再按照上表6所示的置换选择表对第十六合并密
钥的次序、位置进行调整生成的。
成第二密钥时,第一变换子密钥、第二变换子密钥的循环右移位数为3位;生成第二轮加密
所需要使用的第三密钥和第四密钥中,其对应所采用的子密钥的循环右移位数为3位;生成
第四轮、第六轮、第七轮加密所需要使用的密钥时,其对应的子密钥的循环右移位数均为3
位;生成第三轮、第五轮和第八轮加密所需要使用的密钥时,其对应的子密钥的循环右移位
数均为1位。
代加密,可以明显提升其他设备(例如,非法设备等)对原始数据的破解难度,从而可有效地
防止原始数据被恶意复制,并可防止非法设备对原始数据进行伪造篡改,保证了原始数据
的真实性和安全性。
展,得到第二扩展数据;交换模块13配置为用于使用预设的第一密钥对该第二扩展数据进
行加密,得到第二加密数据;将第二加密数据与第一数据进行位置交换,并将第一数据确定
为新的第二数据;第二加密模块14配置为对新的第二数据进行扩展,得到新的第二扩展数
据;使用预设的第二密钥对新的第二扩展数据进行加密,得到新的第二加密数据;输出模块
15配置为将新的第二加密数据与第二加密数据进行左右位置交换后拼接在一起,得到目标
加密数据并输出,从而完成对原始数据的加密处理,该加密后的原始数据被其他接收设备
破解的难度较大,因此可以有效地防止该广播的数据被其他接收设备随意或恶意复制,安
全性高,有利于保障蓝牙定位系统的稳定运行,并提升整个蓝牙系统的安全系数;同时,可
有效遏制非法设备恶意复制的广播数据来实现某种不良目的(如定位作弊等)的行为。
定。
的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或
者,处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能。
以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在
计算机设备5中的执行过程。
图5仅仅是计算机设备5的示例,并不构成对计算机设备5的限定,可以包括比图示更多或更
少的部件,或者组合某些部件,或者不同的部件,例如,计算机设备还可以包括输入输出设
备、网络接入设备、总线等。
(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑
Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器
等。
硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡
(Flash Card)等。进一步地,存储器502还可以既包括计算机设备5的内部存储单元也包括
外部存储设备。存储器502用于存储计算机程序以及计算机设备所需的其它程序和数据。存
储器502还可以用于暂时地存储已经输出或者将要输出的数据。
功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述
的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是
各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元
既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模
块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单
元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本公开的范围。
如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多
个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一
点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或
单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以
存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法
实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、
对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机
程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存
储器(Read‑Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信
号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司
法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和
专利实践,计算机可读介质不包括电载波信号和电信信号。
例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者
替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含
在本公开的保护范围之内。