CN109150494A - 移动端中构造加解密算法的方法、存储介质、设备及系统 - Google Patents

移动端中构造加解密算法的方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN109150494A
CN109150494A CN201710500476.5A CN201710500476A CN109150494A CN 109150494 A CN109150494 A CN 109150494A CN 201710500476 A CN201710500476 A CN 201710500476A CN 109150494 A CN109150494 A CN 109150494A
Authority
CN
China
Prior art keywords
data
shift
vector
algorithm
enciphering
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
CN201710500476.5A
Other languages
English (en)
Other versions
CN109150494B (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.)
Xingli Yuanxin International Trade (Beijing) 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 CN201710500476.5A priority Critical patent/CN109150494B/zh
Publication of CN109150494A publication Critical patent/CN109150494A/zh
Application granted granted Critical
Publication of CN109150494B publication Critical patent/CN109150494B/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/06Cryptographic 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
    • 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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

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

本发明公开了一种移动端中构造加解密算法的方法、存储介质、设备及系统,涉及移动端加解密技术领域。该方法包括:利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作;利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法生成与该基本加密算法对应的基本解密算法。本发明使得移动端的加解密算法不易被破解,且即使破解后也无法在PC端被利用来伪造大量数据。

Description

移动端中构造加解密算法的方法、存储介质、设备及系统
技术领域
本发明涉及移动端加解密技术领域,具体来讲是一种移动端中构造加解密算法的方法、存储介质、设备及系统。
背景技术
目前,随着移动互联网的发展,移动端(如手机)应用越来越多,支持各种在线支付、银行卡登录和操作等功能。为了保证重要数据和信息的安全性,移动端应用都会对用户数据及敏感信息进行加密保护。然而,现有的移动端应用数据的保护方案没有PC(personalcomputer,个人计算机)端应用的保护方案成熟,其核心的加密算法(大多都采用比较成熟的公开的算法)容易被黑客所逆向破解,从而可以将其破解的算法拿到PC端来使用。例如,对于直播平台房间人气信息来说,一旦黑客破解了移动端的加密算法,则可以在PC端伪造大量的虚假的移动端用户登录到直播间,从而影响正常的直播平台运营。而导致上述问题的关键原因在于:移动端的加解密算法易被破解,且破解后可以在PC平台上使用,而PC平台的性能比移动端好很多,从而PC平台能够伪造大量的用户。由此可见,现有的移动端中的加解密算法安全性低、易被破解,进而使得应用中的某些数据还是可能会被机器程序来利用伪造。
因此,如何提高加解密算法的安全性并避免加解密算法被破解后在PC端上被机器程序利用来伪造大量数据,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种移动端中构造加解密算法的方法、存储介质、设备及系统,使得移动端的加解密算法不易被破解,且即使破解后也无法在PC端被利用来伪造大量数据。
为达到以上目的,本发明采取的技术方案是:提供一种移动端中构造加解密算法的方法,该方法包括以下步骤:
利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作;
利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
在上述技术方案的基础上,NEON指令中的逻辑运算指令包括:加法指令VADD、减法指令VSUB、左移指令VSHL、右移指令VSHR、按位异或指令VEOR;利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作的步骤包括:
设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加;
设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减;
设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作;
设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作;
设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
在上述技术方案的基础上,所述指定位数的向量为8位的向量、16位的向量、32位的向量或64位的向量。
在上述技术方案的基础上,该方法还包括进行复杂加解密算法的构造操作:利用设置好的基本算术运算操作进行随机组合,构造出复杂加密算法;并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述移动端中构造加解密算法的方法的步骤。
本发明还提供一种移动端中构造加解密算法的设备,包括存储器、处理器及存储在存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述移动端中构造加解密算法的方法的步骤。
本发明还提供一种移动端中构造加解密算法的系统,该系统包括基本运算操作设置单元和基本加解密算法构造单元;所述基本运算操作设置单元用于:利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作;所述基本加解密算法构造单元用于:利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
在上述技术方案的基础上,NEON指令中的逻辑运算指令包括:加法指令VADD、减法指令VSUB、左移指令VSHL、右移指令VSHR、按位异或指令VEOR;所述基本运算操作设置单元包括加法运算操作设置子单元、减法运算操作设置子单元、左移运算操作设置子单元、右移运算操作设置子单元和异或运算操作设置子单元;
所述加法运算操作设置子单元用于:设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加;
所述减法运算操作设置子单元用于:设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减;
所述左移运算操作设置子单元用于:设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作;
所述右移运算操作设置子单元用于:设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作;
所述异或运算操作设置子单元用于:设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
在上述技术方案的基础上,所述指定位数的向量为8位的向量、16位的向量、32位的向量或64位的向量。
在上述技术方案的基础上,该系统还包括复杂加解密算法构造单元,该复杂加解密算法构造单元用于:利用设置好的基本算术运算操作进行随机组合,构造出复杂加密算法;并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
本发明的有益效果在于:
(1)本发明将NEON指令用于设计移动端的加解密算法中,使得基于NEON指令构造出来的加解密算法无法在移动端的设备上执行(NEON指令只有ARM的CPU才具有);并且,由于NEON指令的并行运算能力,可以加速加解密算法的计算,使得加解密运算速度大幅提高,而PC端则因无法使用NEON指令而无法实现大规模并行运算,从而使得基于NEON指令构造出来的加解密算法即使被破解后也无法在PC端被利用来伪造大量数据。
另外,在利用NEON指令设计加解密算法时,是先使用NEON指令来设置用于构造加解密算法的基本算术运算操作,该基本算术运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作以及异或运算操作;然后,利用随机选择的某个基本算术运算操作构造出加密算法,并根据构造出的加密算法,生成与该加密算法对应的解密算法。通过上述方式构造出的加解密算法与现有技术中使用的公开算法相比,加解密算法不易被破解,数据加解密安全性更高。
(2)本发明针对一些数据安全性要求特别高的情况,还设计有复杂加解密算法的构造操作。通过对基本运算操作的无序的随意的多种的重复组合,从而构造出复杂的加解密算法,使得加解密算法被破解的门槛进一步提高。
附图说明
图1为本发明实施例中移动端中构造加解密算法的方法的流程图;
图2为本发明实施例中移动端中构造加解密算法的设备的结构示意图;
图3为本发明实施例中移动端中构造加解密算法的系统的结构框图;
图4为本发明实施例中基本运算操作设置单元的具体结构框图;
图5为本发明另一实施例中移动端中构造加解密算法的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明的设计思路是提供一种更好的移动端中构造加解密算法的方案,使得移动端的加解密算法不易被破解且只能在移动端的设备上执行。
目前,在移动端上使用最多的处理器是ARM芯片。ARM芯片CPU的指令集和PC端的X86指令集是不一样的;并且,ARM芯片针对于移动端的多媒体和视频编解码、2D、3D的图像运算专门设计了一种并行快速的运算指令集NEON指令集。NEON指令集是专门针对大规模并行运算而设计,是一种单指令多数据引擎。本发明则创造性的将NEON指令用于设计移动端的加解密算法,使得基于NEON指令构造出来的加解密算法无法在移动端的设备上执行(NEON指令只有ARM的CPU才具有);并且,由于NEON指令的并行运算能力,可以加速加解密算法的计算,使得加解密运算速度大幅提高,而PC端则因无法使用NEON指令而无法实现大规模并行运算,从而使得基于NEON指令构造出来的加解密算法即使被破解后也无法在PC端被利用来伪造大量数据。例如,将基于NEON指令构造出来的加解密算法用于防止刷人气的算法中时,即使加解密算法本身被破解了,但该加解密算法在服务器上被使用来进行刷人气时,由于服务器无法执行大量的NEON指令运算,从而无法伪造大量的虚假用户登录到直播间,进而也就无法实现大量刷人气的行为。
与此同时,在利用NEON指令设计加解密算法时,是先使用NEON指令来设置用于构造加解密算法的基本算术运算操作,该基本算术运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作以及异或运算操作;然后,利用随机选择的某个基本算术运算操作构造出加密算法,并根据构造出的加密算法,生成与该加密算法对应的解密算法。同时可以用同样的操作随机的生成多套加解密算法。通过上述方式构造出的加解密算法与现有技术中使用的公开算法相比,加解密算法不易被恶意破解,数据加解密安全性更高。
基于上述设计思路,参见图1所示,本发明实施例提供一种移动端中构造加解密算法的方法,该方法包括以下步骤:
步骤S1、基本运算操作的设置:利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作。
可以理解的是,NEON指令中的逻辑运算指令包括:加法指令VADD、减法指令VSUB、左移指令VSHL、右移指令VSHR、按位与指令VAND、按位异或指令VEOR等。一个基本的加解密算法都是由一个个简单的逻辑算术运算所组成,所以可以通过NEON指令提供的基本的运算来构造一些基本的加解密算法的基础运算操作。并且,需要结合NEON指令的单指令多数据流的特性,每个基本的加解密算法都可以并行的对多个数据同时操作,从而运算速度极快。
实际操作中,利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作的步骤包括:
1、设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加。
具体来说,指定位数的向量为8位的向量、16位的向量、32位的向量或64位的向量。以转换成8位的向量为例,所设置的加法运算操作对应的函数代码可如下:
其中,pData和pAdd为两个数组形式的原始数据,数据类型为uint8_t*类型;nDataLen为原始数据的长度,数据类型为uint32_t类型。For循环体中的“uint8x8_tsrcData=vld1_u8(pData)”用于实现将数组形式的原始数据pData转换成一个8位的向量srcData,向量srcData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_taddData=vld1_u8(pAdd)”用于实现将数组形式的原始数据pAdd转换成一个8位的向量addData,向量addData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_tResult=vadd_u8(srcData,addData)”用于实现将向量srcData和向量addData通过NEON指令中的加法指令VADD进行相加操作。
经过上述操作可以看出,利用设置好的加法运算操作执行加法运算时,每次都是同时对N个(N为8个、16个、32个或64个)数值相加,相当于一次性的加了N个数,从而达到了单指令多数据流操作的并行运算目的,运算速度上至少快了N倍。
2、设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减。
还是以转换成8位的向量为例,所设置的减法运算操作对应的函数代码可如下:
其中,pData和pSub为两个数组形式的原始数据,数据类型为uint8_t*类型;nDataLen为原始数据的长度,数据类型为uint32_t类型。For循环体中的“uint8x8_tsrcData=vld1_u8(pData)”用于实现将数组形式的原始数据pData转换成一个8位的向量srcData,向量srcData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_tsubData=vld1_u8(pSub)”用于实现将数组形式的原始数据pSub转换成一个8位的向量subData,向量subData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_tResult=vsub_u8(srcData,subData)”用于实现将向量srcData和向量subData通过NEON指令中的减法指令VSUB进行相减操作。
经过上述操作可以看出,利用设置好的减法运算操作执行减法运算时,每次都是同时对N个(N为8个、16个、32个或64个)数值相减,相当于一次性的减了N个数,从而达到了单指令多数据流操作的并行运算目的,运算速度上至少快了N倍。
3、设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作。
还是以转换成8位的向量为例,所设置的左移运算操作对应的函数代码可如下:
其中,pData为数组形式的需要左移的数据,数据类型为uint8_t*类型;pLeft为数组形式的左移位数的数据,数据类型也为uint8_t*类型。For循环体中的“uint8x8_tsrcData=vld1_u8(pData)”用于实现将数组形式的需要左移的数据pData转换成一个8位的向量srcData,向量srcData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_t leftData=vld1_u8(pLeft)”用于实现将数组形式的左移位数的数据pLeft转换成一个8位的向量leftData,向量leftData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_t Result=vshl_u8(srcData,leftData)”用于实现利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作。
经过上述操作可以看出,利用设置好的左移运算操作执行左移运算时,每次都是同时对N个(N为8个、16个、32个或64个)数值进行左移,相当于一次性的左移了N个数,从而达到了单指令多数据流操作的并行运算目的,运算速度上至少快了N倍。
4、设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作。
还是以转换成8位的向量为例,所设置的右移运算操作对应的函数代码可如下:
其中,pData为数组形式的需要右移的数据,数据类型为uint8_t*类型;pRight为数组形式的右移位数的数据,数据类型也为uint8_t*类型。For循环体中的“uint8x8_tsrcData=vld1_u8(pData)”用于实现将数组形式的需要右移的数据pData转换成一个8位的向量srcData,向量srcData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_t rightData=vld1_u8(pRight)”用于实现将数组形式的右移位数的数据pRight转换成一个8位的向量rightData,向量rightData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_t Result=vshr_u8(srcData,rightData)”用于实现利用NEON指令中的左移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作。
经过上述操作可以看出,利用设置好的右移运算操作执行右移运算时,每次都是对N个(N为8个、16个、32个或64个)数值进行右移,相当于同时一次性的右移了N个数,从而达到了单指令多数据流操作的并行运算目的,运算速度上至少快了N倍。
5、设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
还是以转换成8位的向量为例,所设置的异或运算操作对应的函数代码可如下:
其中,pData和pEor为两个数组形式的原始数据,数据类型为uint8_t*类型;nDataLen为原始数据的长度,数据类型为uint32_t类型。For循环体中的“uint8x8_tsrcData=vld1_u8(pData)”用于实现将数组形式的原始数据pData转换成一个8位的向量srcData,向量srcData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_teorData=vld1_u8(pEor)”用于实现将数组形式的原始数据pEor转换成一个8位的向量eorData,向量eorData的每个元素的数据类型为uint8_t类型;For循环体中的“uint8x8_tResult=veor_u8(srcData,eorData)”用于实现将向量srcData和向量eorData通过NEON指令中的按位异或指令VEOR进行异或操作。
经过上述操作可以看出,利用设置好的异或运算操作执行异或运算时,每次都是同时对N个(N为8个、16个、32个或64个)数值进行一一异或,相当于并行进行了N次异或,从而达到了单指令多数据流操作的并行运算目的,运算速度上至少快了N倍。
步骤S2、基本加解密算法的构造:利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
可以理解的是,有了用于构造加解密算法的基本运算操作,并且这些基本运算操作都是使用的NEON指令来操作,那么构造的加密算法是基于这些基本运算操作,其最终的整个加解密算法就都是基于NEON指令的。举例来说,利用随机选择的某个基本算术运算操作构造出基本加密算法的过程为:
假设现在需要对客户端发送到服务器的用户行为数据进行加密,其原始数据是:pData=“first page test hit 1234566....”,为一串很长的字符串。
首先,客户端在与服务器进行通信时,可以从服务器获取加密算法所需使用到的一长串的KEY值,此KEY值则也是一长串的字符串,如KEY值是:pKey=“abcdef1234567899......”;然后,则可随机选择基本算术运算操作来构成基本加密算法,如选择加法运算操作构成基本加密算法;再将原始数据pData与KEY值pKey作为相加的两个原始数据去调用构成的基本加密算法(此处即为加法运算操作)来实现数据相加操作的加密,例如:AddEncode(pData,pKey,nDataLen)。同样的,还可以随机选择左移运算操作、异或运算操作、右移运算操作来构造基本加密算法,从而实现对数据进行左移、异或、右移等操作的加密。
当根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法时,该基本解密算法是与基本加密算法对等的逆操作。例如,基本加密算法是加法运算操作,则基本解密算法是减法运算操作;基本加密算法是左移运算操作,则基本解密算法是右移运算操作;基本加密算法是异或运算操作,则基本解密算法是再异或一次,即再次进行异或运算操作。
进一步的,在实际操作中,经过上述两个步骤构造出的基本加解密算法是足以满足一些基本安全性要求的需求的,能从一定程度上避免加解密算法被恶意破解。但是,对于一些数据安全性要求特别高的情况,还需进一步提高被破解的门槛。因此,针对上述情况,在执行步骤S2之后,我们还可以进行复杂加解密算法的构造操作:利用上述设置好的基本算术运算操作进行随机组合,构造出复杂加密算法,并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
举例来说,利用设置好的基本算术运算操作进行随机组合,所构造出的复杂加密算法为:先对数据进行加法运算操作,然后进左移运算操作,再进行减法操作。相应的复杂加密算法的函数代码为:
AddEncode(pData,pKey1,nDataLen);
LeftEncode(pData,pKey2,nDataLen);
SubEncode(pData,pKey3,nDataLen);
其中,运算所需的KEY值还可以是不同的KEY值,或者是同一个KEY值数据经过转换后的另一个KEY值数据,例如:对KEY值都加上一个数得到一个新的KEY值等,从而使得加解密算法的随机性更高、破解难度更高。
由于根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法时,其实质是对复杂加密算法按照从后往前的顺序进行逆操作的过程。因此,针对上述构造出的复杂加密算法,生成的与该复杂加密算法对应的复杂解密算法为:先对数据进行加法运算操作,然后进行右移运算操作,最后进行减法操作。相应的复杂加密算法的函数代码为:
AddEncode(pData,pKey3,nDataLen);
RightEncode(pData,pKey2,nDataLen);
SubEncode(pData,pKey1,nDataLen)。
通过上述操作就完成了对加解密算法的构造,基于对基本运算操作的无序的随意的多种的重复组合,从而构造出复杂的加解密算法。
对应上述的移动端中构造加解密算法的方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的移动端中构造加解密算法的方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,参见图2所示,对应上述的移动端中构造加解密算法的方法,本发明实施例还提供一种移动端中构造加解密算法的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的移动端中构造加解密算法的方法的步骤。
参见图3所示,本发明实施例还提供一种移动端中构造加解密算法的系统,该系统包括基本运算操作设置单元和基本加解密算法构造单元。
其中,基本运算操作设置单元用于:利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作。基本加解密算法构造单元用于:利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
进一步地,参见图4所示,基本运算操作设置单元包括加法运算操作设置子单元、减法运算操作设置子单元、左移运算操作设置子单元、右移运算操作设置子单元和异或运算操作设置子单元。
其中,加法运算操作设置子单元用于:设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加;
减法运算操作设置子单元用于:设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减;
左移运算操作设置子单元用于:设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作;
右移运算操作设置子单元用于:设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作;
异或运算操作设置子单元用于:设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
更进一步地,参见图5所示,在另一种实施例中,移动端中构造加解密算法的系统还包括复杂加解密算法构造单元,该复杂加解密算法构造单元用于:利用设置好的基本算术运算操作进行随机组合,构造出复杂加密算法;并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
需要说明的是:上述实施例提供的系统在移动端中构造加解密算法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种移动端中构造加解密算法的方法,其特征在于,该方法包括以下步骤:
利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作;
利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
2.如权利要求1所述的移动端中构造加解密算法的方法,其特征在于,NEON指令中的逻辑运算指令包括:加法指令VADD、减法指令VSUB、左移指令VSHL、右移指令VSHR、按位异或指令VEOR;
在此基础上,利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作的步骤包括:
设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加;
设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减;
设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作;
设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作;
设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
3.如权利要求2所述的移动端中构造加解密算法的方法,其特征在于:所述指定位数的向量为8位的向量、16位的向量、32位的向量或64位的向量。
4.如权利要求1所述的移动端中构造加解密算法的方法,其特征在于,该方法还包括进行复杂加解密算法的构造操作:利用设置好的基本算术运算操作进行随机组合,构造出复杂加密算法;并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。
6.一种移动端中构造加解密算法的设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至4中任一项所述方法的步骤。
7.一种移动端中构造加解密算法的系统,其特征在于:该系统包括基本运算操作设置单元和基本加解密算法构造单元;
所述基本运算操作设置单元用于:利用NEON指令中的逻辑运算指令设置用于构造加解密算法的基本运算操作,所述基本运算操作包括加法运算操作、减法运算操作、左移运算操作、右移运算操作、异或运算操作;
所述基本加解密算法构造单元用于:利用随机选择的某个基本算术运算操作构造出基本加密算法,并根据构造出的基本加密算法,生成与该基本加密算法对应的基本解密算法。
8.如权利要求7所述的移动端中构造加解密算法的系统,其特征在于,NEON指令中的逻辑运算指令包括:加法指令VADD、减法指令VSUB、左移指令VSHL、右移指令VSHR、按位异或指令VEOR;
在此基础上,所述基本运算操作设置单元包括加法运算操作设置子单元、减法运算操作设置子单元、左移运算操作设置子单元、右移运算操作设置子单元和异或运算操作设置子单元;
所述加法运算操作设置子单元用于:设置加法运算操作,使得加法运算操作在执行加法运算时按照以下方式进行:将需要相加的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的加法指令VADD将两个转换成指定位数的向量进行相加;
所述减法运算操作设置子单元用于:设置减法运算操作,使得减法运算操作在执行减法运算时按照以下方式进行:将需要相减的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的减法指令VSUB将两个转换成指定位数的向量进行相减;
所述左移运算操作设置子单元用于:设置左移运算操作,使得左移运算操作在执行左移运算时按照以下方式进行:将需要左移的数据以及左移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的左移指令VSHL,将需要左移的数据所对应的向量按照左移位数的数据所对应的向量进行左移操作;
所述右移运算操作设置子单元用于:设置右移运算操作,使得右移运算操作在执行右移运算时按照以下方式进行:将需要右移的数据以及右移位数的数据以数组形式保存;分别将两个数组形式的数据转换成指定位数的向量;利用NEON指令中的右移指令VSHR,将需要右移的数据所对应的向量按照右移位数的数据所对应的向量进行右移操作;
所述异或运算操作设置子单元用于:设置异或运算操作,使得异或运算操作在执行异或运算时按照以下方式进行:将需要异或的两个原始数据以数组形式保存;分别将两个数组形式的原始数据转换成指定位数的向量;利用NEON指令中的按位异或指令VEOR将两个转换成指定位数的向量进行异或。
9.如权利要求8所述的移动端中构造加解密算法的系统,其特征在于:所述指定位数的向量为8位的向量、16位的向量、32位的向量或64位的向量。
10.如权利要求7所述的移动端中构造加解密算法的系统,其特征在于:该系统还包括复杂加解密算法构造单元,该复杂加解密算法构造单元用于:利用设置好的基本算术运算操作进行随机组合,构造出复杂加密算法;并根据构造出的复杂加密算法,生成与该复杂加密算法对应的复杂解密算法。
CN201710500476.5A 2017-06-27 2017-06-27 移动端中构造加解密算法的方法、存储介质、设备及系统 Active CN109150494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710500476.5A CN109150494B (zh) 2017-06-27 2017-06-27 移动端中构造加解密算法的方法、存储介质、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710500476.5A CN109150494B (zh) 2017-06-27 2017-06-27 移动端中构造加解密算法的方法、存储介质、设备及系统

Publications (2)

Publication Number Publication Date
CN109150494A true CN109150494A (zh) 2019-01-04
CN109150494B CN109150494B (zh) 2021-07-23

Family

ID=64805245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710500476.5A Active CN109150494B (zh) 2017-06-27 2017-06-27 移动端中构造加解密算法的方法、存储介质、设备及系统

Country Status (1)

Country Link
CN (1) CN109150494B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110428872A (zh) * 2019-09-26 2019-11-08 深圳华大基因科技服务有限公司 一种基因比对指令集的转换方法及装置
CN111614693A (zh) * 2020-05-28 2020-09-01 中国石油天然气集团有限公司 一种同类保密数据的传输方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1909447A (zh) * 2005-08-03 2007-02-07 盛趣信息技术(上海)有限公司 使用动态加密算法进行网络数据通讯的方法
CN101227275A (zh) * 2008-02-13 2008-07-23 刘海云 随机加密和穷举法解密相结合的加密方法
CN102799800A (zh) * 2011-05-23 2012-11-28 中国科学院计算技术研究所 一种安全加密协处理器及无线传感器网络节点芯片
US20140348323A1 (en) * 2013-05-24 2014-11-27 Apple Inc. Protecting against white box attacks using column rotation
CN105959728A (zh) * 2016-06-27 2016-09-21 武汉斗鱼网络科技有限公司 统计直播平台在线人数的系统及其方法
US20170034169A1 (en) * 2015-07-29 2017-02-02 RegDOX Solutions Inc. Secure document storage system
CN106462701A (zh) * 2014-06-12 2017-02-22 密码研究公司 以抵抗外部监视攻击的方式执行密码编译数据处理操作

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1909447A (zh) * 2005-08-03 2007-02-07 盛趣信息技术(上海)有限公司 使用动态加密算法进行网络数据通讯的方法
CN101227275A (zh) * 2008-02-13 2008-07-23 刘海云 随机加密和穷举法解密相结合的加密方法
CN102799800A (zh) * 2011-05-23 2012-11-28 中国科学院计算技术研究所 一种安全加密协处理器及无线传感器网络节点芯片
US20140348323A1 (en) * 2013-05-24 2014-11-27 Apple Inc. Protecting against white box attacks using column rotation
CN106462701A (zh) * 2014-06-12 2017-02-22 密码研究公司 以抵抗外部监视攻击的方式执行密码编译数据处理操作
US20170034169A1 (en) * 2015-07-29 2017-02-02 RegDOX Solutions Inc. Secure document storage system
CN105959728A (zh) * 2016-06-27 2016-09-21 武汉斗鱼网络科技有限公司 统计直播平台在线人数的系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
单祥茹: "ARM最新A72处理器及IP组合再树行业新标杆", 《中国电子商情(基础电子)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110428872A (zh) * 2019-09-26 2019-11-08 深圳华大基因科技服务有限公司 一种基因比对指令集的转换方法及装置
CN110428872B (zh) * 2019-09-26 2020-03-10 深圳华大基因科技服务有限公司 一种基因比对指令集的转换方法及装置
CN111614693A (zh) * 2020-05-28 2020-09-01 中国石油天然气集团有限公司 一种同类保密数据的传输方法及系统

Also Published As

Publication number Publication date
CN109150494B (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
US10467389B2 (en) Secret shared random access machine
US8185749B2 (en) System and method for revising boolean and arithmetic operations
CN115622684B (zh) 基于全同态加密的隐私计算异构加速方法及装置
Andrade et al. Lyra2: Efficient password hashing with high security against time-memory trade-offs
CN101834717A (zh) 可扩展精度Logistic混沌序列的并行计算方法
Fang et al. Secure function evaluation using an fpga overlay architecture
CN109450632A (zh) 基于白盒分组密码clefia分析的密钥恢复方法
CN111538962A (zh) 程序控制流混淆方法、系统、存储介质、云服务器及应用
Melchor et al. High-speed private information retrieval computation on gpu
Zuo et al. Sealing neural network models in encrypted deep learning accelerators
CN109150494A (zh) 移动端中构造加解密算法的方法、存储介质、设备及系统
Fang et al. SIFO: secure computational infrastructure using FPGA overlays
CN113779611A (zh) 基于三维Arnold变换的矢量地理数据加密方法和解密方法
Wang et al. A privacy-preserving cross-media retrieval on encrypted data in cloud computing
Dong et al. FLEXBNN: fast private binary neural network inference with flexible bit-width
Xu et al. Privacy preserving large scale DNA read-mapping in MapReduce framework using FPGAs
US20230325627A1 (en) Secure Artificial Neural Network Models in Outsourcing Deep Learning Computation
CN114826560A (zh) 一种轻量级分组密码cref实现方法及系统
Ren et al. Communication efficient secret sharing with dynamic communication-computation conversion
CN108282665B (zh) 一种防止刷人气的方法、存储介质、设备及系统
Tudorache et al. Quantum Steganography Using Two Hidden Thresholds.
CN111460488A (zh) 基于预存储和n维Arnold变换的多图像快速加密方法
US20230325251A1 (en) Partition a Tensor with Varying Granularity Levels in Shuffled Secure Multiparty Computation
US20230325252A1 (en) Non-uniform Splitting of a Tensor in Shuffled Secure Multiparty Computation
CN114254372B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230914

Address after: No. 6-1 Shengli North Road, Chengguan Town, Guzhen County, Bengbu City, Anhui Province, 233000

Patentee after: Wang Wei

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230915

Address after: Room 1301, 13th Floor, Building 5, No. 15 Ronghua South Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600 (Yizhuang Cluster, High end Industrial Zone, Beijing Pilot Free Trade Zone)

Patentee after: Xingli Yuanxin International Trade (Beijing) Co.,Ltd.

Address before: No. 6-1 Shengli North Road, Chengguan Town, Guzhen County, Bengbu City, Anhui Province, 233000

Patentee before: Wang Wei