CN106921482A - 一种基于arm指令构造数据加解密算法的方法及系统 - Google Patents

一种基于arm指令构造数据加解密算法的方法及系统 Download PDF

Info

Publication number
CN106921482A
CN106921482A CN201710087145.3A CN201710087145A CN106921482A CN 106921482 A CN106921482 A CN 106921482A CN 201710087145 A CN201710087145 A CN 201710087145A CN 106921482 A CN106921482 A CN 106921482A
Authority
CN
China
Prior art keywords
arm instruction
shift
subtraction
deciphering algorithm
setting
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.)
Granted
Application number
CN201710087145.3A
Other languages
English (en)
Other versions
CN106921482B (zh
Inventor
周志刚
胡卫谊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710087145.3A priority Critical patent/CN106921482B/zh
Publication of CN106921482A publication Critical patent/CN106921482A/zh
Application granted granted Critical
Publication of CN106921482B publication Critical patent/CN106921482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于ARM指令构造数据加解密算法的方法及系统,涉及数据加解密技术领域。该方法包括:设置加法运算操作,该加法运算操作基于ARM指令实现加法操作;设置减法运算操作,该减法运算操作基于ARM指令实现减法操作;设置左移运算操作,该左移运算操作基于ARM指令实现数据逻辑左移操作;设置右移运算操作,该右移运算操作基于ARM指令实现数据逻辑右移操作;利用上述设置好的基本运算操作进行随机组合,构造出基于ARM指令的加解密算法。本发明能有效避免数据加解密算法被恶意破解,提高数据加解密的安全性。

Description

一种基于ARM指令构造数据加解密算法的方法及系统
技术领域
本发明涉及数据加解密技术领域,具体来讲是一种基于ARM(移动端的CPU处理器)指令构造数据加解密算法的方法及系统。
背景技术
目前,在移动端程序中都会对比较重要的数据进行加密或者解密。现有的加解密算法大多都采用比较成熟的公开的算法,虽然公开算法本身是安全的,但是带来的问题则是HACK(黑客)也可以获取到同样的加解密算法来对数据进行解密,从而获取到原始的数据。例如,对于直播APP(Application,应用程序)来说,每个房间的观看人数的数据是比较关键的数据,通常的做法是服务器会发送请求验证数据给客户端,客户端回复服务器正确的数据则表明是一个正常的客户端登录到这个房间;如果回复的数据是错误的则认为是一个非法的伪造用户。
但实际应用中,此方法的弊端是HACK可以通过直播APP来获取到直播APP回复服务器数据的计算方法,从而可以将功能移植到性能较好的服务器来计算正确的回复数据,而在性能更好的服务器甚至可以同一时间伪造大量的虚假用户登录到房间。由此可见,现有的加解密算法还是可能会遭到HACK的破解,安全性较低,进而使得应用中的某些数据还是可能会被机器程序来利用伪造。
因此,如何有效避免数据加解密被恶意破解,提高数据的加解密的安全性,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于ARM指令构造数据加解密算法的方法及系统,能有效避免数据加解密被恶意破解,提高数据加解密的安全性。
为达到以上目的,本发明采取的技术方案是:提供一种基于ARM指令构造数据加解密算法的方法,该方法包括以下步骤:
S1:设置用于构造加解密算法的加法运算操作,所述加法运算操作基于ARM指令实现加法操作;
S2:设置用于构造加解密算法的减法运算操作,所述减法运算操作基于ARM指令实现减法操作;
S3:设置用于构造加解密算法的左移运算操作,所述左移运算操作基于ARM指令实现数据逻辑左移操作;
S4:设置用于构造加解密算法的右移运算操作,所述右移运算操作基于ARM指令实现数据逻辑右移操作;
S5:利用设置好的加法运算操作、减法运算操作、左移运算操作、右移运算操作进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法。
本发明还提供一种基于ARM指令构造数据加解密算法的系统,该系统包括加法运算设置单元、减法运算设置单元、左移运算设置单元、右移运算设置单元以及加解密算法构造单元。所述加法运算设置单元用于:设置用于构造加解密算法的加法运算操作,该加法运算操作基于ARM指令实现加法操作。所述减法运算设置单元用于:设置用于构造加解密算法的减法运算操作,该减法运算操作基于ARM指令实现减法操作。所述左移运算设置单元用于:设置用于构造加解密算法的左移运算操作,该左移运算操作基于ARM指令实现数据逻辑左移操作。所述右移运算设置单元用于:设置用于构造加解密算法的右移运算操作,该右移运算操作基于ARM指令实现数据逻辑右移操作。所述加解密算法构造单元用于:利用设置好的加法运算操作、减法运算操作、左移运算操作、右移运算操作进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法。
本发明的有益效果在于:
本发明通过使用ARM的特殊指令设置(设计)出用于构造加解密算法的基本算术运算操作(加法运算操作、减法运算操作、左移运算操作、右移运算操作);再利用这些基本的算术运算操作进行大量的组合和重复来构造成加解密算法。
与现有技术相比,本发明设置的基本算术运算操作是基于ARM的特殊指令来实现的,该指令只能运行于ARM的芯片上,从而使得HACK即使获取到了数据的加解密算法,但是由于该算法只能在ARM芯片上运行,而ARM芯片的运算能力有限,所以HACK也没有办法在ARM上同时构造大量的伪造用户登录数据,从而避免了加解密算法被恶意破解。与此同时,本发明构造的加解密算法是对基本运算操作的随机组合和任意多条运算的叠加,对于这种基于任意多条运算操作构造的加解密算法,可以不断的去变换其运算数和条数,使得算法可以不断的更新,进一步提高了加解密算法的安全性。
附图说明
图1为本发明实施例中基于ARM指令构造数据加解密算法的方法的流程图;
图2为本发明实施例中基于ARM指令构造数据加解密算法的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明是一种基于ARM特殊指令来构造数据的加解密算法的方案。其设计思路是:首先,通过使用ARM的特殊指令来设置(设计)用于构造加解密算法的基本算术运算操作,该基本算术运算操作包括:加法运算操作(2个数据相加)、减法运算操作(2个数相减)、左移运算操作(一个数据逻辑左移几位)和右移运算操作(一个数据逻辑右移几位)。然后,利用这些基本的算术运算操作大量的组合和重复来组合成加密算法。同时,根据组合成的加密算法,生成与该加密算法对应的解密算法,该解密算法与加密算法是对等的操作。例如,在加密算法中设置了一条对一个数据相加5的操作,那么相对应的在解密算法中就会设计一条对一个数据减去5的操作,同样的在加密算法中将一个数据左移3位,那么相对应的在解密算法中则将这个数据右移3位等等。通过这种多条逻辑运算叠加在一起形成一套加解密算法。一套加解密算法可以使用十几条甚至几十条逻辑运算叠加,同时可以用同样的操作随机的生成多套加解密算法。
基于上述设计思路,参见图1所示,本发明实施例提供一种基于ARM指令构造数据加解密算法的方法,包括以下步骤:
步骤S1:设置用于构造加解密算法的加法运算操作,该加法运算操作基于ARM指令实现加法操作。
实际操作中,步骤S1具体包括以下操作:
步骤S101:定义一个宏的加法运算操作符_ADD_(r,x,y),其中参数r存放加法的结果,参数x存放被加数,参数y存放加数,该加法运算操作符完成的运算即是r=x+y操作。
步骤S102:为该加法运算操作符_ADD_(r,x,y)设置ARM指令,使得该加法运算操作符_ADD_(r,x,y)按照设置的ARM指令完成加法操作。
具体来说,该加法运算操作符_ADD_(r,x,y)按照设置的ARM指令完成加法操作的具体流程为:
步骤S102a:执行寄存器切割为半字后执行半字加法;
步骤S102b:读取CPSR寄存器的值;
步骤S102c:分离出溢出标志;
步骤S102d:检查前面的半字加法的结果是否有溢出;
步骤S102e:判断标志寄存器中的零标志Z是否等于0;
步骤S102f:将溢出计入最终结果。
与上述内容对应的ARM指令实现代码可如下:
#define_ADD_(r,x,y)
__asm____volatile__(
"uadd16%0,%1,%2"//执行寄存器切割为半字后执行加法
"mrs lr,cpsr"//读取cpsr寄存器的值
"and lr,lr,#0x30000"//分离出溢出标志
"tst lr,#0x30000"//检查前面的半字加法是否有溢出
"it ne"//判断标志寄存器Z是否等于0
"addne%0,%0,#0x10000"//将溢出计入最终结果
:"=r"(r)
:"r"(x),"r"(y)
:"lr"
);
可以理解的是,本实施例中通过提供一个宏的加法运算操作符来实现基于ARM指令的加法操作。不使用函数而使用宏的好处是编译器会对宏进行展开,从而使得该段代码更大更复杂。其实现的基本原理是:将加法操作变换为等价的ARM平台其他指令序列的操作,实现算法对平台的绑定。最简单的方案是使用半字加法,将字切割为半字分别实施加操作,为保证最终结果与原生算法一致,需要将后半字加法的溢出加到前半字结果中。半字加法指令会影响CPSR寄存器的bit16~19(16~19位),即GE[3:0]标志,其中GE[1:0]为后半字加法的溢出标志,GE[3:2]为前半字加法的溢出标志,因此通过常数0x30000可以检测出后半字加法是否有溢出。该算法会用到栈,通过影响声明由编译器完成现场保护和恢复。
步骤S2:设置用于构造加解密算法的减法运算操作,该减法运算操作基于ARM指令实现减法操作。
减法运算操作的设置原理与加法运算操作的设置原理相同,此处原理部分不赘述。实际操作中,步骤S2具体包括以下操作:
步骤S201:定义一个宏的减法运算操作符_SUB_(r,x,y),其中参数r存放减法的结果,参数x存放被减数,参数y存放减数,该减法运算操作符完成的运算即是r=x-y操作。
步骤S202:为该减法运算操作符_SUB_(r,x,y)设置ARM指令,使得该减法运算操作符_SUB_(r,x,y)按照设置的ARM指令完成减法操作。
具体来说,该减法运算操作符_SUB_(r,x,y)按照设置的ARM指令完成减法操作的具体流程为:
步骤S202a:执行寄存器切割为半字后执行半字减法;
步骤S202b:读取CPSR寄存器的值;
步骤S202c:分离出借位标志;
步骤S202d:检查前面的半字减法的结果是否有借位;
步骤S202e:判断标志寄存器中的零标志Z是否等于1;
步骤S202f:将借位计入最终结果。
与上述内容对应的ARM指令实现代码可如下:
#define_SUB_(r,x,y)
__asm____volatile__(
"usub16%0,%1,%2"//执行寄存器切割为半字后执行减法
"mrs lr,cpsr"//读取cpsr寄存器的值
"and lr,lr,#0x30000"//分离出借位标志
"tst lr,#0x30000"//检查前面的半字减法是否有借位
"it eq"//判断标志寄存器Z是否等于1
"subeq%0,%0,#0x10000"//将借位计入最终结果
:"=r"(r)
:"r"(x),"r"(y)
:"lr"
);
步骤S3:设置用于构造加解密算法的左移运算操作,该左移运算操作基于ARM指令实现数据逻辑左移操作。
实际操作中,步骤S3具体包括以下操作:
步骤S301:设定执行左移运算操作的进入条件。可以理解的是,所设定的进入条件,可根据具体情况需要由设计人员进行自行设置。
本实施例中,是利用了HI/LS条件,即CPSR寄存器的C/Z标志位。由于该算法可能插入代码任何地方,因此C/Z标志位是随机的,为保证算法的确定性,需要人为准确地确定这两个标志位。这两个标志位的置位和复位可以通过算术或逻辑运算来间接操纵。但是直接加载常数来操纵标志位不足以迷惑反编译器,因此算法中通过算术右移指令在源操作数Rs的Rs[7:0]>=32和Rs[31]==1条件下会置最终结果为0xffffffff的特性,间接构造出常数0xffffffff,再对该常数进行算术运算即可得到确定的条件标志。
步骤S302:定义一个宏的左移运算操作符_LSL_(v,s),其中参数v存放被移位数和结果,参数s存放移动的位数,该左移运算操作符完成的运算即是v=v<<s(将v左移s位)操作。
步骤S303:为该左移运算操作符_LSL_(v,s)设置ARM指令,使得该左移运算操作符_LSL_(v,s)在满足设定的进入条件时按照设置的ARM指令完成数据逻辑左移操作,并在移位后利用空闲指令槽实施一次函数切割,以进一步干扰反编译器;在不满足设定的进入条件时陷入一个错误的算法分支。
可以理解的是,本实施例中通过提供一个宏的左移运算操作符来实现基于ARM指令的左移操作。不使用函数而使用宏的好处是编译器会对宏进行展开,从而使得该段代码更大更复杂。整体思路上移位操作仍然使用ARM原生的移位指令来实现,但在实施移位操作前对算法做了条件修饰,满足设定的进入条件后进入正确的算法分支,否则会陷入错误的算法分支。并且,在移位后利用空闲指令槽实施一次函数切割,可进一步干扰反编译器,具体来说,由于条件操作的四条指令槽只使用了两条(一条期待的正确操作,一条干扰性的错误操作),因此余下两条刚好能容下一次基于lr寄存器的跳转,该跳转将诱导反编译器判定为此处为该函数的结尾,其内容为:a.加载该算法的尾后指令地址作为跳转的目标地址;b.执行条件跳转。
具体来说,与上述内容对应的ARM指令实现代码可如下:
#define_LSL_(v,s)
__asm____volatile__(
".code 16"
"mov r4,0x80000000"
常数设置lr[31]
"add r4,0x20"
常数设置lr[7:0]>=32
"orr lr,r4"
加载常数到
"asrs lr,lr"
使得lr<=0xffffffff setC
"cmp r0,3"
"adds lr,3"
clearZ
"itett hi"
条件执行
"lslhi%0,%0,%1"
v<<s实现了v左移s位的操作
"lsrls%0,%0,%1"
假操作指令
"addhi lr,pc,1"
加载blxhi之后的一条指令地址
"blxhi lr"
执行后续一条指令
:"+r"(v)
:"i"(s)
:"lr","r4"
);
步骤S4:设置用于构造加解密算法的右移运算操作,该右移运算操作基于ARM指令实现数据逻辑右移操作。
右移运算操作的设置原理与左移运算操作的设置原理相同,此处原理部分不赘述。实际操作中,步骤S4具体包括以下操作:
步骤S401:设定执行右移运算操作的进入条件。
步骤S402:定义一个宏的右移运算操作符_LSR_(v,s),其中参数v存放被移位数和结果,参数s存放移动的位数,该右移运算操作符完成的运算即是v=v>>s(将v右移s位)操作。
步骤S403:为该右移运算操作符_LSR_(v,s)设置ARM指令,使得该右移运算操作符_LSR_(v,s)在满足设定的进入条件时按照设置的ARM指令完成数据逻辑右移操作,并在移位后利用空闲指令槽实施一次函数切割,以进一步干扰反编译器;在不满足设定的进入条件时陷入一个错误的算法分支。
具体来说,与上述内容对应的ARM指令实现代码可如下:
#define_LSR_(v,s)
__asm____volatile__(
".code 16"
"mov r4,0x80000000"
常数设置lr[31]
"add r4,0x20"
常数设置lr[7:0]>=32
"orr lr,r4"
加载常数到lr
"asrs lr,lr"
使得lr<=0xffffffff setC
"adds lr,3"
clearZ
"itett hi"
条件执行
"lsrhi%0,%0,%1"
v>>s实现将v数据右移s位
"lslls%0,%0,%1"
假操作指令
"addhi lr,pc,1"
加载blxhi之后的一条指令地址
"blxhi lr"
执行后续一条指令
:"+r"(v)
:"i"(s)
:"lr","r4"
);
步骤S5:利用上述设置好的基本运算操作(加法运算操作、减法运算操作、左移运算操作、右移运算操作)进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法,该解密算法与加密算法是对等的操作。
可以理解的是,本发明中的每一个基本运算操作可使用不同的参数,基于不同的参数可形成不同的运算操作,例如,基于加法运算操作,可形成一条A=A+3的操作,还可形成一条A=A+15的操作,同样的对于减法和移位也可以是减不同的数、移不同的位。这样一来,利用每一个基本运算操作,就可随机组合出任意多条不同的运算操作。而在此基础上,多个不同的基本运算操作又可进行随机的任意组合,从而就可以构造出任意复杂的加解密算法,进而提高了加解密算法的安全性。除此之外,基于ARM特殊指令构造的加解密算法,只能在ARM芯片上运行,而同一个设备上能够同时运行的加解密算法是非常有限的。而对于这种任意多条逻辑运算操作构造的加解密算法可以不断的去变换其运算数和条数,使得算法可以不断的更新,从而避免了加解密算法被恶意破解,进一步提高了加解密算法的安全性。
参见图2所示,本发明还提供了一种基于ARM指令构造数据加解密算法的系统,包括加法运算设置单元、减法运算设置单元、左移运算设置单元、右移运算设置单元以及加解密算法构造单元。
加法运算设置单元用于:设置用于构造加解密算法的加法运算操作,所述加法运算操作基于ARM指令实现加法操作。减法运算设置单元用于:设置用于构造加解密算法的减法运算操作,所述减法运算操作基于ARM指令实现减法操作。左移运算设置单元用于:设置用于构造加解密算法的左移运算操作,所述左移运算操作基于ARM指令实现数据逻辑左移操作。右移运算设置单元用于:设置用于构造加解密算法的右移运算操作,所述右移运算操作基于ARM指令实现数据逻辑右移操作。加解密算法构造单元用于:利用设置好的加法运算操作、减法运算操作、左移运算操作、右移运算操作进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法。
上述各设置单元的具体设置流程与上述方法的各部分相对应,此处不赘述!
需要说明的是:上述实施例提供的构造数据加解密算法的系统在进行具体操作时,仅以上述各功能单元的划分进行举例说明,实际应用中,可根据需要将上述功能分配由不同的功能单元完成,即将系统的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种基于ARM指令构造数据加解密算法的方法,其特征在于,包括以下步骤:
S1:设置用于构造加解密算法的加法运算操作,所述加法运算操作基于ARM指令实现加法操作;
S2:设置用于构造加解密算法的减法运算操作,所述减法运算操作基于ARM指令实现减法操作;
S3:设置用于构造加解密算法的左移运算操作,所述左移运算操作基于ARM指令实现数据逻辑左移操作;
S4:设置用于构造加解密算法的右移运算操作,所述右移运算操作基于ARM指令实现数据逻辑右移操作;
S5:利用设置好的加法运算操作、减法运算操作、左移运算操作、右移运算操作进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法。
2.如权利要求1所述的基于ARM指令构造数据加解密算法的方法,其特征在于,步骤S1具体包括以下操作:
S101:定义一个宏的加法运算操作符;
S102:为所述加法运算操作符设置ARM指令,使得所述加法运算操作符按照设置的ARM指令完成加法操作;
其中,所述加法运算操作符按照设置的ARM指令完成加法操作的具体流程为:执行寄存器切割为半字后执行半字加法;读取CPSR寄存器的值;分离出溢出标志;检查前面的半字加法的结果是否有溢出;判断标志寄存器中的零标志Z是否等于0;将溢出计入最终结果。
3.如权利要求1所述的基于ARM指令构造数据加解密算法的方法,其特征在于,步骤S2具体包括以下操作:
S201:定义一个宏的减法运算操作符;
S202:为所述减法运算操作符设置ARM指令,使得该减法运算操作符按照设置的ARM指令完成减法操作;
其中,所述减法运算操作符按照设置的ARM指令完成减法操作的具体流程为:执行寄存器切割为半字后执行半字减法;读取CPSR寄存器的值;分离出借位标志;检查前面的半字减法的结果是否有借位;判断标志寄存器中的零标志Z是否等于1;将借位计入最终结果。
4.如权利要求1所述的基于ARM指令构造数据加解密算法的方法,其特征在于,步骤S3具体包括以下操作:
S301:设定执行左移运算操作的进入条件;
S302:定义一个宏的左移运算操作符;
S303:为所述左移运算操作符设置ARM指令,使得所述左移运算操作符在满足设定的进入条件时按照设置的ARM指令完成数据逻辑左移操作,并在移位后利用空闲指令槽执行一次函数切割。
5.如权利要求1所述的基于ARM指令构造数据加解密算法的方法,其特征在于,步骤S4具体包括以下操作:
S401:设定执行右移运算操作的进入条件;
S402:定义一个宏的右移运算操作符;
S403:为所述右移运算操作符设置ARM指令,使得所述右移运算操作符在满足设定的进入条件时按照设置的ARM指令完成数据逻辑右移操作,并在移位后利用空闲指令槽执行一次函数切割。
6.一种基于ARM指令构造数据加解密算法的系统,其特征在于:该系统包括加法运算设置单元、减法运算设置单元、左移运算设置单元、右移运算设置单元以及加解密算法构造单元;
所述加法运算设置单元用于:设置用于构造加解密算法的加法运算操作,所述加法运算操作基于ARM指令实现加法操作;
所述减法运算设置单元用于:设置用于构造加解密算法的减法运算操作,所述减法运算操作基于ARM指令实现减法操作;
所述左移运算设置单元用于:设置用于构造加解密算法的左移运算操作,所述左移运算操作基于ARM指令实现数据逻辑左移操作;
所述右移运算设置单元用于:设置用于构造加解密算法的右移运算操作,所述右移运算操作基于ARM指令实现数据逻辑右移操作;
所述加解密算法构造单元用于:利用设置好的加法运算操作、减法运算操作、左移运算操作、右移运算操作进行随机组合,构造出加密算法;并根据构造出的加密算法,生成与该加密算法对应的解密算法。
7.如权利要求6所述的基于ARM指令构造数据加解密算法的系统,其特征在于,所述加法运算设置单元设置用于构造加解密算法的加法运算操作的具体流程为:定义一个宏的加法运算操作符;为所述加法运算操作符设置ARM指令,使得所述加法运算操作符按照设置的ARM指令完成加法操作;
其中,所述加法运算操作符按照设置的ARM指令完成加法操作的具体流程为:执行寄存器切割为半字后执行半字加法;读取CPSR寄存器的值;分离出溢出标志;检查前面的半字加法的结果是否有溢出;判断标志寄存器中的零标志Z是否等于0;将溢出计入最终结果。
8.如权利要求6所述的基于ARM指令构造数据加解密算法的系统,其特征在于,所述减法运算设置单元设置用于构造加解密算法的减法运算操作的具体流程为:定义一个宏的减法运算操作符;为所述减法运算操作符设置ARM指令,使得该减法运算操作符按照设置的ARM指令完成减法操作;
其中,所述减法运算操作符按照设置的ARM指令完成减法操作的具体流程为:执行寄存器切割为半字后执行半字减法;读取CPSR寄存器的值;分离出借位标志;检查前面的半字减法的结果是否有借位;判断标志寄存器中的零标志Z是否等于1;将借位计入最终结果。
9.如权利要求6所述的基于ARM指令构造数据加解密算法的系统,其特征在于,所述左移运算设置单元设置用于构造加解密算法的左移运算操作的具体流程为:设定执行左移运算操作的进入条件;定义一个宏的左移运算操作符;为所述左移运算操作符设置ARM指令,使得所述左移运算操作符在满足设定的进入条件时按照设置的ARM指令完成数据逻辑左移操作,并在移位后利用空闲指令槽执行一次函数切割。
10.如权利要求6所述的基于ARM指令构造数据加解密算法的系统,其特征在于,所述右移运算设置单元设置用于构造加解密算法的右移运算操作的具体流程为:设定执行右移运算操作的进入条件;定义一个宏的右移运算操作符;为所述右移运算操作符设置ARM指令,使得所述右移运算操作符在满足设定的进入条件时按照设置的ARM指令完成数据逻辑右移操作,并在移位后利用空闲指令槽执行一次函数切割。
CN201710087145.3A 2017-02-17 2017-02-17 一种基于arm指令构造数据加解密算法的方法及系统 Active CN106921482B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710087145.3A CN106921482B (zh) 2017-02-17 2017-02-17 一种基于arm指令构造数据加解密算法的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710087145.3A CN106921482B (zh) 2017-02-17 2017-02-17 一种基于arm指令构造数据加解密算法的方法及系统

Publications (2)

Publication Number Publication Date
CN106921482A true CN106921482A (zh) 2017-07-04
CN106921482B CN106921482B (zh) 2019-04-05

Family

ID=59454485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710087145.3A Active CN106921482B (zh) 2017-02-17 2017-02-17 一种基于arm指令构造数据加解密算法的方法及系统

Country Status (1)

Country Link
CN (1) CN106921482B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307211A (zh) * 2018-01-05 2018-07-20 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法、存储介质、设备及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004111836A2 (en) * 2003-06-13 2004-12-23 Arm Limited Apparatus and method that accommodate multiple instruction sets and multiple decode modes
CN101227275A (zh) * 2008-02-13 2008-07-23 刘海云 随机加密和穷举法解密相结合的加密方法
CN101727407A (zh) * 2008-10-29 2010-06-09 东北大学兴科中小企业服务中心 安全存储系统和方法
CN102799800A (zh) * 2011-05-23 2012-11-28 中国科学院计算技术研究所 一种安全加密协处理器及无线传感器网络节点芯片

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004111836A2 (en) * 2003-06-13 2004-12-23 Arm Limited Apparatus and method that accommodate multiple instruction sets and multiple decode modes
CN101227275A (zh) * 2008-02-13 2008-07-23 刘海云 随机加密和穷举法解密相结合的加密方法
CN101727407A (zh) * 2008-10-29 2010-06-09 东北大学兴科中小企业服务中心 安全存储系统和方法
CN102799800A (zh) * 2011-05-23 2012-11-28 中国科学院计算技术研究所 一种安全加密协处理器及无线传感器网络节点芯片

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307211A (zh) * 2018-01-05 2018-07-20 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法、存储介质、设备及系统
CN108307211B (zh) * 2018-01-05 2020-02-07 武汉斗鱼网络科技有限公司 一种视频流地址鉴权方法、存储介质、设备及系统

Also Published As

Publication number Publication date
CN106921482B (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
Evtyushkin et al. Branchscope: A new side-channel attack on directional branch predictor
Lapid et al. Cache-attacks on the ARM TrustZone implementations of AES-256 and AES-256-GCM via GPU-based analysis
US7366914B2 (en) Source code transformation based on program operators
CN107346401B (zh) 用于安全地执行程序的信息保障系统
US8681973B2 (en) Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
US20040115860A1 (en) Method to manufacture a phase change memory
US8918768B2 (en) Methods and apparatus for correlation protected processing of data operations
CN110169013A (zh) 用于在区块链上实现复杂功能性同时保留对脚本大小和操作码限值的基于安全性限制的计算机实现的系统和方法
CN107577925B (zh) 基于双重ARM指令虚拟的Android应用程序保护方法
US20190287427A1 (en) Device and method for performing obfuscated arithmetic
Wang et al. Toward scalable fully homomorphic encryption through light trusted computing assistance
CN104462990A (zh) 字符串加解密方法和装置
US20210049289A1 (en) Compiling device and method
US20170213027A1 (en) Protecting an item of software
CN110050258A (zh) 具有自动模块化功能的安全专区保护的应用程序盗版防止
Breuer et al. A practical encrypted microprocessor
Averbuch et al. Truly-protect: An efficient VM-based software protection
US20210342486A1 (en) Encrypted data processing
CN109325322B (zh) 用于嵌入式平台的软件知识产权保护系统和方法
CN105933111A (zh) 一种基于OpenCL的Bitslicing-KLEIN的快速实现方法
CN106921482B (zh) 一种基于arm指令构造数据加解密算法的方法及系统
CN107341372B (zh) 一种软件保护方法和装置
EP2674892B1 (en) A method, a device and a computer program support for execution of encrypted computer code
Song et al. Secure and fast implementation of ARX-Based block ciphers using ASIMD instructions in ARMv8 platforms
CN108021790A (zh) 文件保护方法、装置、计算设备及计算机存储介质

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
GR01 Patent grant
GR01 Patent grant