CN109787754B - 一种数据加解密方法、计算机可读存储介质及服务器 - Google Patents
一种数据加解密方法、计算机可读存储介质及服务器 Download PDFInfo
- Publication number
- CN109787754B CN109787754B CN201811529037.8A CN201811529037A CN109787754B CN 109787754 B CN109787754 B CN 109787754B CN 201811529037 A CN201811529037 A CN 201811529037A CN 109787754 B CN109787754 B CN 109787754B
- Authority
- CN
- China
- Prior art keywords
- key
- dimensional data
- data matrix
- terminal equipment
- coordinate
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明属于计算机技术领域,尤其涉及一种数据加解密方法、计算机可读存储介质及服务器。所述方法随机生成三维数据矩阵,并将所述三维数据矩阵植入到应用程序安装包中;接收终端设备发送的密钥坐标分配请求;从所述密钥坐标分配请求中提取请求标识,并根据请求标识为所述终端设备分配密钥坐标;将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。由于在密钥传输过程中,传输的只是一个坐标,而不是密钥本身,即使被不法分子截获,在不清楚预先构造出的三维数据矩阵情况下,仍然无法得知密钥,大大提高了密钥的安全性。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种数据加解密方法、计算机可读存储介质及服务器。
背景技术
随着互联网技术的高速发展,人们对如何安全高效地获取资源和数据变得更加关注,与此同时,数据安全及加解密技术也应运而生。常见的加解密算法有两种,即为对称加解密算法(Symmetric Cryptography Algorithm)和非对称加解密算法(AsymmetricCryptographic Algorithm)。对称加解密算法中,用户的加解密过程使用相同的密钥;而在非对称加解密算法中,加解密过程中所使用的密钥是不相同的。但无论对于哪种算法而言,密钥都是其核心部分,但现有技术中,经常发现有开发者将密钥硬编码在代码、文件中,这样做极易导致密钥泄露,会引起很大风险。
发明内容
有鉴于此,本发明实施例提供了一种数据加解密方法、计算机可读存储介质及服务器,以解决现有技术中密钥容易泄露,风险较大的问题。
本发明实施例的第一方面提供了一种数据加解密方法,可以包括:
随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
从所述密钥坐标分配请求中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标;
将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
本发明实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:
随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
从所述密钥坐标分配请求中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标;
将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
本发明实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
从所述密钥坐标分配请求中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标;
将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例在进行密钥分配时,并不直接将密钥硬编码在代码、文件中,而是预先构造出一个三维数据矩阵,并将三维数据矩阵植入到应用程序安装包中,终端设备在下载安装该应用程序安装包后即获取了该三维数据矩阵,再根据终端设备的请求标识为终端设备分配密钥坐标,根据该密钥坐标即可在三维数据矩阵中查找到对应的数据元素,并将查找到的数据元素确定为目标密钥,这样,在与终端设备进行数据传输时即可使用该目标密钥对传输数据进行加解密,由于在密钥传输过程中,传输的只是一个坐标,而不是密钥本身,即使被不法分子截获,在不清楚预先构造出的三维数据矩阵情况下,仍然无法得知密钥,大大提高了密钥的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中一种数据加解密方法的一个实施例流程图;
图2为随机生成三维数据矩阵的示意流程图;
图3为三维数据矩阵的一个示意图;
图4为本发明实施例中一种数据加解密装置的一个实施例结构图;
图5为本发明实施例中一种服务器的示意框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种数据加解密方法的一个实施例可以包括:
步骤S101、随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中。
如图2所示,具体可以通过如下过程随机生成三维数据矩阵:
步骤S1011、根据所述三维数据矩阵在各个维度上的长度计算组成所述三维数据矩阵的数据元素总数。
此处将该三维数据矩阵的三个维度分别记为第一维度(X)、第二维度(Y)、第三维度(Z),该三维数据矩阵在第一维度上的长度记为M,在第二维度上的长度记为N,在第三维度上的长度记为P,将组成所述三维数据矩阵的数据元素总数记为R,则有:R=M×N×P。
需要注意的是,所述三维数据矩阵的数据元素总数越大,则密钥的安全性越高,但是生成三维数据矩阵的计算量以及查询密钥的计算量都会越大,消耗较多的***资源,反之,所述三维数据矩阵的数据元素总数越小,则密钥的安全性越低,但是生成三维数据矩阵的计算量以及查询密钥的计算量都会越小,消耗较少的***资源,实际应用中,可以根据实际情况在这两者之间做出权衡。
步骤S1012、使用预设的伪随机数生成器生成随机数序列。
三维数据矩阵中的各个数据元素均由服务器随机生成,真正的随机数是使用物理现象产生的,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不是真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。在本实施例中采用这种伪随机数生成器来生成所需的随机数。
例如,可以使用所述伪随机数生成器生成如下所示的随机数序列:{RandomNum1,RandomNum2,RandomNum3,…,RandomNumr,…,RandomNumR}其中,r为随机数的序号,1≤r≤R,RandomNumr为所述随机数序列中的第r个随机数。
步骤S1013、使用所述随机数序列中的各个随机数组成所述三维数据矩阵。
其中,RandomNumr对应在所述三维数据矩阵中的位置坐标(xr,yr,zr)为:
MOD为求余函数,Ceil为向上取整函数。
如图3所示,即为一个5×5×5的三维数据矩阵的示例,其中,每个分隔出的小立方体即代表一个数据元素,该三维数据矩阵中共有125个数据元素。其中,随机数RandomNum1对应在所述三维数据矩阵中的位置坐标为(1,1,1),随机数RandomNum2对应在所述三维数据矩阵中的位置坐标为(2,1,1),……,随机数RandomNum5对应在所述三维数据矩阵中的位置坐标为(5,1,1),随机数RandomNum6对应在所述三维数据矩阵中的位置坐标为(1,2,1),随机数RandomNum7对应在所述三维数据矩阵中的位置坐标为(2,2,1),……,随机数RandomNum10对应在所述三维数据矩阵中的位置坐标为(5,2,1),……,随机数RandomNum26对应在所述三维数据矩阵中的位置坐标为(1,1,2),随机数RandomNum27对应在所述三维数据矩阵中的位置坐标为(2,1,2),……,随机数RandomNum30对应在所述三维数据矩阵中的位置坐标为(5,1,2),……,以此类推。
在生成该三维数据矩阵之后,服务器将其植入到指定的应用程序安装包中,以供终端设备下载安装。
步骤S102、接收终端设备发送的密钥坐标分配请求。
终端设备在下载安装该应用程序安装包后即获取了所述三维数据矩阵。当终端设备需要与服务器之间进行数据传输时,终端设备会向服务器发送密钥坐标分配请求,在该密钥坐标分配请求中携带了请求标识。
所述请求标识可以是终端设备的设备标识,例如,可以是终端设备的国际移动设备识别码(International Mobile Equipment Identity,IMEI),IMEI是由15位数字组成的"电子串号",它与每个终端设备一一对应,而且该码是全世界唯一的。每一个终端设备在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。
终端设备可以通过调用***函数获取自身的IMEI,并将其封装入所述密钥坐标分配请求中发送给服务器。
例如,终端设备可以通过如下所示的调用***函数获取自身的IMEI:String IMEI=((TelephonyManager)context.getSystemService(TELEPHONY_S ERVICE)).getDeviceId()。
又如,终端设备还可以通过如下所示的调用***函数获取自身的IMEI:StringIMEI=android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI)。
所述请求标识还可以是用户的用户标识,包括但不限于用户的身份证号码、驾驶证号码、社保号码、手机号码等可以唯一标识出该用户的号码。
一般地,用户在下载安装所述应用程序安装包后,会在安装后的应用程序中进行注册,在注册的过程中,会录入自己的用户的身份证号码、驾驶证号码、社保号码、手机号码等用户标识,终端设备在发送所述密钥坐标分配请求时,可以从用户的注册信息中提取出用户标识,并将其封装入所述密钥坐标分配请求中发送给服务器。
步骤S103、从所述密钥坐标分配请求中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标。
服务器在接收到所述密钥坐标分配请求后,即可从中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标。
服务器可以根据下式为所述终端设备分配单一的密钥坐标:
其中,HashFuncX、HashFuncY、HashFuncZ为三个各不相同的哈希函数,MOD为求余函数,IDENTITY为所述请求标识,M为所述三维数据矩阵在第一维度上的长度,N为所述三维数据矩阵在第二维度上的长度,P为所述三维数据矩阵在第三维度上的长度,(x,y,z)为所述终端设备的密钥坐标。
所有的哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入也是不相同的。这个特性使哈希函数具有确定性的结果。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“哈希碰撞”,这通常是两个不同的输入值,刻意计算出相同的输出值。但对于现有技术中常用的哈希函数而言,其发生碰撞的概率极低,几乎可以忽略不计,输入一些数据计算出哈希值,然后部分改变输入值,一个具有强混淆特性的哈希函数会产生一个完全不同的哈希值。由此可知,由于请求标识各不相同,最终根据各个终端设备的请求标识为各个终端设备分配的密钥坐标也是不同的,大大增加了密钥的安全性。
本实施例中的哈希函数可以包括但不限于MD4、MD5、SHA1等任意一个现有技术中常用的哈希函数。
服务器还可以根据下式为所述终端设备分配由两个密钥坐标组成的密钥坐标序列:
其中,HashFuncX1、HashFuncY1、HashFuncZ1、HashFuncX2、HashFuncY2、HashFuncZ2均为各不相同的哈希函数,(x1,y1,z1)为所述终端设备的第1个密钥坐标,(x2,y2,z2)为所述终端设备的第2个密钥坐标,这两个密钥坐标可以组成如下所示的密钥坐标序列:{(x1,y1,z1),(x2,y2,z2)}。
进一步地,服务器可以根据预先的设置确定密钥坐标的个数,并根据下式为所述终端设备分配各个密钥坐标:
其中,t为密钥坐标的序号,1≤t≤T,T为密钥坐标的个数,HashFuncXt、HashFuncYt、HashFuncZt均为各不相同的哈希函数,(xt,yt,zt)为所述终端设备的第t个密钥坐标。
然后,将各个密钥坐标组成如下所示的密钥坐标序列:
{(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),…,(xt,yt,zt),…,(xT,yT,zT)}。
步骤S104、将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密。
其中,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
以下以所述终端设备向所述服务器发送数据为例对加解密过程进行详细说明:
所述终端设备在本地存储的三维数据矩阵中查找与所述密钥坐标对应的数据元素,将查找到的数据元素确定为目标密钥,并使用所述目标密钥对数据进行加密,得到加密数据。
例如,若终端设备接收到的密钥坐标为{(5,4,6),(,8,4,7)},其中,(5,4,6)对应的是三维数据矩阵中的数据元素EE,(8,4,7)对应的是三维数据矩阵中的数据元素FF,整体拼接成EEFF,即为对数据加密所需的目标密钥。
所述终端设备将所述加密数据发送至服务器中,服务器在接收所述终端设备传输的加密数据后,也在所述三维数据矩阵中查找与所述密钥坐标对应的数据元素,将查找到的数据元素确定为所述目标密钥,并使用所述目标密钥对所述加密数据进行解密。
类似地,若所述服务器需要向所述终端设备发送数据,则详细的加解密过程如下:
服务器在本地存储的三维数据矩阵中查找与所述密钥坐标对应的数据元素,将查找到的数据元素确定为目标密钥,并使用所述目标密钥对数据进行加密,得到加密数据。
服务器将所述加密数据发送至所述终端设备中,所述终端设备在接收服务器传输的加密数据后,也在所述三维数据矩阵中查找与所述密钥坐标对应的数据元素,将查找到的数据元素确定为所述目标密钥,并使用所述目标密钥对所述加密数据进行解密。
需要注意的是,本发明实施例中在对数据进行加解密时均采用对称加密算法,对称加密为采用单钥密码***的加密方法,同一个密钥可以同时用作信息的加密和解密,本实施例中所使用的对称加密算法包括但不限于DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等具体的算法。
进一步地,服务器会周期性的对三维数据矩阵进行更新,并将更新后的三维数据矩阵重新下发到所述终端设备。在其中的一种具体实现中,服务器在每次应用程序版本升级时进行三维数据矩阵的更新,以保证应用程序新版本的安全性。
综上所述,本发明实施例在进行密钥分配时,并不直接将密钥硬编码在代码、文件中,而是预先构造出一个三维数据矩阵,并将三维数据矩阵植入到应用程序安装包中,终端设备在下载安装该应用程序安装包后即获取了该三维数据矩阵,再根据终端设备的请求标识为终端设备分配密钥坐标,根据该密钥坐标即可在三维数据矩阵中查找到对应的数据元素,并将查找到的数据元素确定为目标密钥,这样,在与终端设备进行数据传输时即可使用该目标密钥对传输数据进行加解密,由于在密钥传输过程中,传输的只是一个坐标,而不是密钥本身,即使被不法分子截获,在不清楚预先构造出的三维数据矩阵情况下,仍然无法得知密钥,大大提高了密钥的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的一种数据加解密方法,图4示出了本发明实施例提供的一种数据加解密装置的一个实施例结构图。
本实施例中,一种数据加解密装置可以包括:
数据矩阵生成模块401,用于随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
坐标分配请求接收模块402,用于接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
密钥坐标分配模块403,用于从所述密钥坐标分配请求中提取请求标识,并根据所述请求标识为所述终端设备分配密钥坐标;
密钥坐标发送模块404,用于将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
进一步地,所述数据加解密装置还可以包括:
加密数据接收模块,用于接收所述终端设备传输的加密数据,所述加密数据为所述终端设备使用所述目标密钥加密后的数据;
目标密钥确定模块,用于在所述三维数据矩阵中查找与所述密钥坐标对应的数据元素,并将查找到的数据元素确定为所述目标密钥;
数据解密模块,用于使用所述目标密钥对所述加密数据进行解密。
进一步地,所述数据矩阵生成模块可以包括:
元素总数计算单元,用于根据所述三维数据矩阵在各个维度上的长度计算组成所述三维数据矩阵的数据元素总数;
随机数序列生成单元,用于使用预设的伪随机数生成器生成如下所示的随机数序列:
{RandomNum1,RandomNum2,RandomNum3,…,RandomNumr,…,RandomNumR}
其中,r为随机数的序号,1≤r≤R,R为组成所述三维数据矩阵的数据元素总数,RandomNumr为所述随机数序列中的第r个随机数;
数据矩阵生成单元,用于使用所述随机数序列中的各个随机数组成所述三维数据矩阵,其中,RandomNumr对应在所述三维数据矩阵中的位置坐标(xr,yr,zr)为:
MOD为求余函数,Ceil为向上取整函数。
可选地,所述密钥坐标分配模块可以包括:
第一分配单元,用于根据下式为所述终端设备分配密钥坐标:
其中,HashFuncX、HashFuncY、HashFuncZ为三个各不相同的哈希函数,MOD为求余函数,IDENTITY为所述请求标识,M为所述三维数据矩阵在第一维度上的长度,N为所述三维数据矩阵在第二维度上的长度,P为所述三维数据矩阵在第三维度上的长度,(x,y,z)为所述终端设备的密钥坐标。
可选地,所述密钥坐标分配模块可以包括:
第二分配单元,用于确定密钥坐标的个数,并根据下式为所述终端设备分配各个密钥坐标:
其中,t为密钥坐标的序号,1≤t≤T,T为密钥坐标的个数,HashFuncXt、HashFuncYt、HashFuncZt均为各不相同的哈希函数,MOD为求余函数,IDENTITY为所述请求标识,M为所述三维数据矩阵在第一维度上的长度,N为所述三维数据矩阵在第二维度上的长度,P为所述三维数据矩阵在第三维度上的长度,(xt,yt,zt)为所述终端设备的第t个密钥坐标;
将各个密钥坐标组成如下所示的密钥坐标序列:
{(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),…,(xt,yt,zt),…,(xT,yT,zT)}。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图5示出了本发明实施例提供的一种服务器的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本实施例中,所述服务器5可以包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52,例如执行上述的数据加解密方法的计算机可读指令。所述处理器50执行所述计算机可读指令52时实现上述各个数据加解密方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。
示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述服务器5中的执行过程。
所述处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述服务器5的内部存储单元,例如服务器5的硬盘或内存。所述存储器51也可以是所述服务器5的外部存储设备,例如所述服务器5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述服务器5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述服务器5所需的其它指令和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据加解密方法,其特征在于,包括:
随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
从所述密钥坐标分配请求中提取请求标识,并根据预设的至少一组哈希函数和所述请求标识为所述终端设备分配密钥坐标;其中,每组哈希函数包括三个各不相同的哈希函数,用于分别确定所述三维数据矩阵中的三个维度上的坐标;
将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
2.根据权利要求1所述的数据加解密方法,其特征在于,在将所述密钥坐标发送至所述终端设备之后,还包括:
接收所述终端设备传输的加密数据,所述加密数据为所述终端设备使用所述目标密钥加密后的数据;
在所述三维数据矩阵中查找与所述密钥坐标对应的数据元素,并将查找到的数据元素确定为所述目标密钥;
使用所述目标密钥对所述加密数据进行解密。
3.根据权利要求1所述的数据加解密方法,其特征在于,所述随机生成三维数据矩阵包括:
根据所述三维数据矩阵在各个维度上的长度计算组成所述三维数据矩阵的数据元素总数;
使用预设的伪随机数生成器生成如下所示的随机数序列:
{RandomNum1,RandomNum2,RandomNum3,…,RandomNumr,…,RandomNumR}
其中,r为随机数的序号,1≤r≤R,R为组成所述三维数据矩阵的数据元素总数,RandomNumr为所述随机数序列中的第r个随机数;
使用所述随机数序列中的各个随机数组成所述三维数据矩阵,其中,RandomNumr对应在所述三维数据矩阵中的位置坐标(xr,yr,zr)为:
MOD为求余函数,Ceil为向上取整函数。
5.根据权利要求1至3中任一项所述的数据加解密方法,其特征在于,所述根据预设的至少一组哈希函数和所述请求标识为所述终端设备分配密钥坐标包括:
确定密钥坐标的个数,并根据下式为所述终端设备分配各个密钥坐标:
其中,t为密钥坐标的序号,1≤t≤T,T为密钥坐标的个数,HashFuncXt、HashFuncYt、HashFuncZt均为各不相同的哈希函数,MOD为求余函数,IDENTITY为所述请求标识,M为所述三维数据矩阵在第一维度上的长度,N为所述三维数据矩阵在第二维度上的长度,P为所述三维数据矩阵在第三维度上的长度,(xt,yt,zt)为所述终端设备的第t个密钥坐标;
将各个密钥坐标组成如下所示的密钥坐标序列:
{(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),…,(xt,yt,zt),…,(xT,yT,zT)}。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的数据加解密方法的步骤。
7.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如下步骤:
随机生成三维数据矩阵,并将所述三维数据矩阵植入到指定的应用程序安装包中;
接收终端设备发送的密钥坐标分配请求,所述终端设备预先下载并安装了所述应用程序安装包;
从所述密钥坐标分配请求中提取请求标识,并根据预设的至少一组哈希函数和所述请求标识为所述终端设备分配密钥坐标;其中,每组哈希函数包括三个各不相同的哈希函数,用于分别确定所述三维数据矩阵中的三个维度上的坐标;
将所述密钥坐标发送至所述终端设备,以便在与所述终端设备进行数据传输时使用目标密钥对传输数据进行加解密,所述目标密钥为所述三维数据矩阵中与所述密钥坐标对应的数据元素。
8.根据权利要求7所述的服务器,其特征在于,所述随机生成三维数据矩阵包括:
根据所述三维数据矩阵在各个维度上的长度计算组成所述三维数据矩阵的数据元素总数;
使用预设的伪随机数生成器生成如下所示的随机数序列:
{RandomNum1,RandomNum2,RandomNum3,…,RandomNumr,…,RandomNumR}
其中,r为随机数的序号,1≤r≤R,R为组成所述三维数据矩阵的数据元素总数,RandomNumr为所述随机数序列中的第r个随机数;
使用所述随机数序列中的各个随机数组成所述三维数据矩阵,其中,RandomNumr对应在所述三维数据矩阵中的位置坐标(xr,yr,zr)为:
MOD为求余函数,Ceil为向上取整函数。
10.根据权利要求7至8中任一项所述的服务器,其特征在于,所述根据预设的至少一组哈希函数和所述请求标识为所述终端设备分配密钥坐标包括:
确定密钥坐标的个数,并根据下式为所述终端设备分配各个密钥坐标:
其中,t为密钥坐标的序号,1≤t≤T,T为密钥坐标的个数,HashFuncXt、HashFuncYt、HashFuncZt均为各不相同的哈希函数,MOD为求余函数,IDENTITY为所述请求标识,M为所述三维数据矩阵在第一维度上的长度,N为所述三维数据矩阵在第二维度上的长度,P为所述三维数据矩阵在第三维度上的长度,(xt,yt,zt)为所述终端设备的第t个密钥坐标;
将各个密钥坐标组成如下所示的密钥坐标序列:
{(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),…,(xt,yt,zt),…,(xT,yT,zT)}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811529037.8A CN109787754B (zh) | 2018-12-14 | 2018-12-14 | 一种数据加解密方法、计算机可读存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811529037.8A CN109787754B (zh) | 2018-12-14 | 2018-12-14 | 一种数据加解密方法、计算机可读存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109787754A CN109787754A (zh) | 2019-05-21 |
CN109787754B true CN109787754B (zh) | 2023-04-18 |
Family
ID=66496199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811529037.8A Active CN109787754B (zh) | 2018-12-14 | 2018-12-14 | 一种数据加解密方法、计算机可读存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109787754B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348229B (zh) * | 2019-06-11 | 2021-09-21 | 北京思源理想控股集团有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN110730067B (zh) * | 2019-09-06 | 2021-10-19 | 深圳开源互联网安全技术有限公司 | 密钥生成方法、装置、计算机可读存储介质及终端设备 |
CN110919994A (zh) * | 2019-12-06 | 2020-03-27 | 深圳市山龙智控有限公司 | 注塑机机械手及其控制方法 |
CN114285564B (zh) * | 2021-12-27 | 2024-05-10 | 中国电信股份有限公司 | 密钥确定方法及装置 |
CN118211254A (zh) * | 2024-05-22 | 2024-06-18 | 苏州元脑智能科技有限公司 | 加密存储方法、解密提取方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102415049A (zh) * | 2009-04-28 | 2012-04-11 | 住友电气工业株式会社 | 加密密钥生成装置 |
CN103078736A (zh) * | 2013-01-25 | 2013-05-01 | 匡创公司 | 一种多维度密钥生成方法 |
CN106330432A (zh) * | 2016-08-31 | 2017-01-11 | 北京盛世光明软件股份有限公司 | 一种基于des加密算法的加密方法 |
CN106685652A (zh) * | 2016-12-28 | 2017-05-17 | 四川大学 | 基于三维矩阵的预分布密钥方法 |
CN108696360A (zh) * | 2018-04-16 | 2018-10-23 | 北京虎符信息技术有限公司 | 一种基于cpk密钥的ca证书发放方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6019453B2 (ja) * | 2012-07-05 | 2016-11-02 | 株式会社クリプト・ベーシック | 暗号化装置、復号化装置、及びプログラム |
-
2018
- 2018-12-14 CN CN201811529037.8A patent/CN109787754B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102415049A (zh) * | 2009-04-28 | 2012-04-11 | 住友电气工业株式会社 | 加密密钥生成装置 |
CN103078736A (zh) * | 2013-01-25 | 2013-05-01 | 匡创公司 | 一种多维度密钥生成方法 |
CN106330432A (zh) * | 2016-08-31 | 2017-01-11 | 北京盛世光明软件股份有限公司 | 一种基于des加密算法的加密方法 |
CN106685652A (zh) * | 2016-12-28 | 2017-05-17 | 四川大学 | 基于三维矩阵的预分布密钥方法 |
CN108696360A (zh) * | 2018-04-16 | 2018-10-23 | 北京虎符信息技术有限公司 | 一种基于cpk密钥的ca证书发放方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN109787754A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109787754B (zh) | 一种数据加解密方法、计算机可读存储介质及服务器 | |
CN110088759B (zh) | 用于可编程设备的统一编程环境 | |
US10454674B1 (en) | System, method, and device of authenticated encryption of messages | |
US8966248B2 (en) | Secure software file transfer systems and methods for vehicle control modules | |
CN110391906B (zh) | 基于区块链的数据处理方法、电子装置及可读存储介质 | |
CN112948784B (zh) | 物联网终端身份认证方法、计算机存储介质及电子设备 | |
CN109478214B (zh) | 用于证书注册的装置和方法 | |
CN105450620A (zh) | 一种信息处理方法及装置 | |
US20150095652A1 (en) | Encryption and decryption processing method, apparatus, and device | |
CN107733639B (zh) | 密钥管理方法、装置及可读存储介质 | |
CN1960363A (zh) | 一种利用网络实现信息安全设备远程更新的方法及装置 | |
CN113632438A (zh) | 使用安全的全局注册表对物联网(iot)设备和服务的发现和匹配 | |
CN103246540A (zh) | 应用程序更新方法和装置 | |
US11128455B2 (en) | Data encryption method and system using device authentication key | |
CN107729760B (zh) | 基于Android***的CSP实现方法及智能终端 | |
CN111181944B (zh) | 通信***及信息发布方法、装置、介质、设备 | |
CN107872315B (zh) | 数据处理方法和智能终端 | |
US10949537B2 (en) | Secure firmware provisioning and device binding mechanism | |
CN113922956A (zh) | 基于量子密钥的物联网数据交互方法、***、设备及介质 | |
CN114969768A (zh) | 一种数据处理方法及设备、存储介质 | |
CN111010283B (zh) | 用于生成信息的方法和装置 | |
US10242175B2 (en) | Method and system for authentication of a storage device | |
CN116226940B (zh) | 一种基于pcie的数据安全处理方法以及数据安全处理*** | |
CN112165383A (zh) | 基于共享根密钥的加密方法、装置、设备及介质 | |
CN116132065A (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 |