一种处理数据的方法和装置
技术领域
本公开的实施例涉及数据安全技术领域,具体涉及处理数据的方法和装置。
背景技术
随着信息化的高速发展,人们对数据安全的需求接踵而至。数据加密技术是最基本的数据安全技术,主要用于保证数据在存储和传输过程中的保密性。
数据加密技术通过变换和置换等各种方法将被保护数据置换成密文,然后再进行数据的存储或传输,即使加密数据在存储或者传输过程为非授权人员所获得,也可以保证这些信息不为其认知,从而达到保护信息的目的。
数据加密技术的保密性直接取决于所采用的密码算法和密钥长度。
发明内容
本公开的实施例提出了一种处理数据的方法和装置。
第一方面,本公开的实施例提供了一种处理数据的方法,该方法包括:确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据,其中,数据块具有表征数据块身份和排列顺序的身份标识;对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。
在一些实施例中,该方法还包括:将数据单体序列存储在存储单元。
在一些实施例中,在确定与目标数据块序列对应的碱基序列之前,该方法还包括:接收数据提供方上传的数据包,其中,数据包包括待加密数据和数据分割条件;根据数据分割条件对待加密数据进行数据分割,得到目标数据块序列。
在一些实施例中,该方法还包括:接收数据需求方上传的数据秘钥;确定与数据秘钥对应的存储单元;获取存储单元中的数据单体序列;根据数据秘钥对数据单体序列进行数据解密,得到解密后的数据;将解密后的数据发送给数据需求方。
在一些实施例中,根据数据秘钥对数据单体序列进行数据解密,得到解密后的数据,包括:根据数据单体中数据块的身份标识对数据单体序列进行排序;根据碱基互补配对原则确定数据秘钥中的互补碱基与排序后的数据单体序列中数据单体的碱基是否匹配正确;响应于确定匹配正确,根据排序后的数据单体序列得到解密后的数据。
在一些实施例中,确定与目标数据块序列对应的碱基序列,包括:根据第一随机算法确定与目标数据块序列中当前数据块对应的碱基;确定碱基在碱基序列中所占的比例;确定比例是否满足预设条件;响应于确定比例不满足预设条件,调整第一随机算法,以及使用调整后的第一随机算法确定与目标数据块序列中未分配碱基的数据块对应的碱基。
在一些实施例中,将数据单体序列存储在存储单元,包括:根据第二随机算法确定与数据单体序列中数据单体对应的存储序号;按照存储序号由小到大的顺序,将数据单体序列中数据单体依次存储在存储单元。
在一些实施例中,该方法还包括:确定存储单元中的数据单体序列是否满足预设删除条件;响应于确定满足预设删除条件,删除数据单体序列。
第二方面,本公开的实施例提供了一种处理数据的装置,该装置包括:获得第一预处理数据单元,被配置成确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据,其中,数据块具有表征数据块身份和排列顺序的身份标识;哈希运算单元,被配置成对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;获得第二预处理数据单元,被配置成建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;获得第三预处理数据单元,被配置成根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;获得具有预定数据结构的数据单元,被配置成建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;生成秘钥单元,被配置成基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。
第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实施例描述的处理数据的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实施例描述的处理数据的方法。
本公开的实施例提供的处理数据的方法和装置,先确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。接下来,对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。该实施方式所生成的数据秘钥包括哈希值和互补碱基序列,并且目标数据块序列的长度越长相对应的数据秘钥的长度也越长,数据秘钥也就越难破解。有助于提高秘钥的复杂度和破解难度。从而提高了存储数据的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的实施例的处理数据的方法的一个实施例的流程图;
图3是根据本公开的实施例的处理数据的方法的一个应用场景的示意图;
图4是根据本公开的实施例的处理数据的方法的又一个实施例的流程图;
图5是根据本公开的实施例的处理数据的装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关公开,而非对该公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关公开相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的实施例的处理数据的方法或处理数据的装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如数据处理应用、数据分析应用、即时通信工具、社交平台软件、搜索类应用、购物类应用、浏览器类应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持与服务器通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103发送的请求进行接收的后台服务器。后台服务器可以对客户端发送的请求进行接收和分析等处理,并生成处理结果。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的处理数据的方法由服务器105执行。相应地,处理数据的装置设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本公开的处理数据的方法的一个实施例的流程200。该处理数据的方法应用于服务器,包括以下步骤:
步骤201,确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。
在本实施例中,终端(例如图1所示的终端101、102、103)与处理数据的方法的执行主体(例如图1所示的服务器105)可以通过有线连接方式或无线连接方式进行通信连接。数据提供方可以通过终端将目标数据块序列上传至执行主体。执行主体可以在接收到终端上传的目标数据块序列之后,通过对目标数据块序列进行相应的处理得到数据秘钥和数据单体序列。执行主体还可以将所得到的数据秘钥发送给终端。
在本实施例中,目标数据块序列是对逻辑上是统一整体的数据进行数据分割得到的。目标数据块序列中的数据块具有表征数据块身份和排列顺序的身份标识。数据块的身份标识对应于数据分割所得的数据块的序号。需要说明的是,身份标识的表示形式在本公开中不做限定,可以根据实际需求来设置。例如,可以是阿拉伯数字,也可以是小写的英文字母,还可以是大写的英文字母。
在本实施例中,碱基序列可以由A(ADENINE,腺嘌呤)、T(THYMINE,胸腺嘧啶)、G(GUANINE,鸟嘌呤)、C(CYTOSINE,胞嘧啶)四种不同的碱基组成。与目标数据块序列对应的碱基序列中碱基的数量与目标数据块序列中数据块的数量相同。
在本实施例中,上述执行主体可以先确定与目标数据块序列对应的碱基序列,该碱基序列中碱基的数量与目标数据块序列中数据块的数量相同。需要说明的是,碱基序列中的碱基的可以按照一定的排列规律排列,也可以随机排列。例如,作为一个示例,对于包含8个数据块的目标数据块序列,上述执行主体可以确定与该目标数据块序列对应的符合一定排列规律的碱基序列为:A T G C A T G C,也可以确定与该目标数据块序列对应的随机碱基序列为:A T C T G C A G。
之后,上述执行主体可以建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。
上述执行主体可以先按照数据块的身份标识所指示的数据块的排列顺序调整目标数据块序列中数据块的排序。之后,上述执行主体可以按照身份标识所指示的数据块的排列顺序,从目标数据块序列的起始数据块开始,依次将目标数据块序列中的每个数据块进行连接。
由于碱基序列中碱基的数量与目标数据块序列中数据块的数量相同,所以,上述执行主体可以建立碱基序列中的碱基与目标数据块序列中的数据块的一一对应关系,并连接满足一一对应关系的碱基序列中的碱基与目标数据块序列中的数据块,从而得到第一预处理数据。
在本实施例的一些可选的实现方式中,上述执行主体可以通过如下的步骤获得目标数据块序列:
第一步,接收数据提供方上传的数据包。
在该可选的实现方式中,数据提供方可以通过用户终端将数据包上传至上述执行主体。该数据包可以包括待加密数据和数据分割条件。需要说明的是,数据提供方所上传的数据分割条件在本公开中不做限定。数据提供方所上传的数据分割条件可以为以下任一种或任意几种的组合:将待加密数据分割为多少个数据块、数据分割后每个数据块的大小、存储时限。
第二步,根据数据分割条件对待加密数据进行数据分割,得到目标数据块序列。
在该可选的实现方式中,上述执行主体在接收到第一步中数据提供方所上传的数据包后,可以从所接收到的数据包中获取待加密数据和数据分割条件。之后,上述执行主体可以按照数据分割条件对待加密数据进行数据分割,得到具有编号的数据块序列。然后,上述执行主体可以根据数据块的编号确定数据块的身份标识,从而得到目标数据块序列。需要说明的是,数据分割技术是目前广泛研究和应用的公知技术,在此不再赘述。
在该可选的实现方式中,上述执行主体可以根据数据提供方上传的数据分割条件自动对待加密数据进行数据分割,得到目标数据块序列。该实现方式与数据提供方通过人机交互在用户终端完成数据分割,然后将所得到的目标数据块序列发送至上述执行主体相比,可以节省处理数据的时间,简化用户终端的资源配置,以及节省用户终端的运算资源。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤确定与目标数据块序列对应的碱基序列:
第一步,根据第一随机算法确定与目标数据块序列中当前数据块对应的碱基。
在该可选的实现方式中,上述执行主体可以先确定目标数据块序列中数据块的数量。之后,上述执行主体可以通过随机数生成器生成在预设数值范围内的相等数量的随机数。需要说明的是,通过随机数生成器所生成的随机数的预设数值范围在本公开中不做限定,可以根据实际需求来设置。例如,预设数值范围可以是[0,1]。
由于所生成的随机数的数量与目标数据块序列中数据块的数量相同,所以,上述执行主体可以建立随机数与目标数据块序列中的数据块的一一对应关系。之后,上述执行主体可以根据与当前数据块对应的随机数的大小确定与当前数据块对应的碱基。例如,作为一个示例,若随机数大于0但小于或等于0.25,可以确定与当前数据块对应的碱基为A;若随机数大于0.25但小于或等于0.5,可以确定与当前数据块对应的碱基为G;若随机数大于0.5但小于或等于0.75,可以确定与当前数据块对应的碱基为T;若随机数大于0.75但小于1,可以确定与当前数据块对应的碱基为C。需要说明的是,示例中示出的数值范围仅用于说明上述执行主体根据随机数的大小确定与当前数据块对应的碱基的方法,可以通过调整示例中的数值范围得到不同的确定碱基的方法。并且,根据随机数的预设数值范围的不同也可以设置不同的确定碱基的方法。
第二步,确定碱基在碱基序列中所占的比例。
在该可选的实现方式中,上述执行主体在第一步中确定了与当前数据块对应的碱基。之后,上述执行主体可以确定该碱基在碱基序列中所占的比例。在这里,碱基序列中碱基的数量是确定的,它与目标数据块序列中数据块的数据相同。上述执行可以先确定出该碱基在已确定的碱基中出现的次数,然后,上述执行主体可以使用该碱基的出现的次数除以与目标数据块序列对应的碱基序列中碱基的数量,得到该碱基在碱基序列中所占的比例。
第三步,确定比例是否满足预设条件。
在该可选的实现方式中,上述执行主体可以判断第二步中所得的比例是否满足预设条件。该预设条件可以是比例小于预设阈值。需要说明的是,预设阈值在本公开中不做限定,可以根据实际需求来设置。例如,预设阈值可以是49﹪。
第四步,响应于确定比例不满足预设条件,调整第一随机算法,以及使用调整后的第一随机算法确定与目标数据块序列中未分配碱基的数据块对应的碱基。
在该可选的实现方式中,目标数据块序列中未分配碱基的数据块是指目标数据块序列中与数据块的对应的碱基未确定的数据块。
在该可选的实现方式中,若第三步中确定比例满足预设条件,上述执行主体可以继续使用第一步中的第一随机算法确定与目标数据块序列中未分配碱基的数据块对应的碱基。
若第三步中确定比例不满足预设条件,上述执行主体可以对第一随机算法进行调整,使得目标数据块序列中未分配碱基的数据块不会被分配该碱基。例如,作为一个示例,可以将第一步中示例所描述的确定碱基的方法调整为:若随机数大于0但小于或等于0.5,可以确定与当前数据块对应的碱基为G;若随机数大于0.5但小于或等于0.75,可以确定与当前数据块对应的碱基为T;若随机数大于0.75但小于1,可以确定与当前数据块对应的碱基为C。这样,目标数据块序列中未分配碱基的数据块就不会被分配碱基A。
之后,上述执行主体可以使用调整后的第一随机算法确定与目标数据块序列中未分配碱基的数据块对应的碱基。
在该可选的实现方式中,上述执行主体通过使用随机算法或调整后的随机算法确定与目标数据块序列对应的碱基序列。可以提高碱基序列的随机性和复杂度,从而提高互补碱基序列的随机性和复杂度,进而可以提升包括互补碱基序列的数据秘钥的复杂度和破解难度。
步骤202,对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列。
在本实施例中,上述执行主体可以先对碱基序列进行哈希运算,得到哈希值。需要说明的是,对碱基序列进行哈希运算所使用的哈希函数在本公开中不做限定。此外,哈希运算是目前广泛研究和应用的公知技术,在此不再赘述。
然后,上述执行主体可以构建包含所得到的哈希值的哈希值序列。该哈希值序列中哈希值的数量与目标数据块序列中数据块的数量相同。
之后,上述执行主体将在步骤203中建立哈希值序列中哈希值与步骤201所得的第一预处理数据中目标数据块序列中的数据块的一对一连接关系,得到第二预处理数据。上述执行主体也将在步骤205中建立哈希值序列中哈希值与步骤204所得的第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据。
步骤203,建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据。
在本实施例中,由于步骤202所得到的哈希值序列中哈希值的数量与目标数据块序列中数据块的数量相同,所以,上述执行主体可以建立哈希值序列中的哈希值与目标数据块序列中的数据块的一一对应关系,并连接满足一一对应关系的哈希值序列中的哈希值与步骤201所得的第一预处理数据中目标数据块序列中的数据块,从而得到第二预处理数据。
步骤204,根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据。
DNA(Deoxyribonucleic acid,脱氧核糖核酸)由两条互补的碱基链以双螺旋的方式结合而成。碱基互补配对原则是指在两条互补的碱基链的对应位置上,腺瞟呤A与胸腺嘧啶T配对,鸟嘌呤G与胞嘧啶C配对。
在本实施例中,上述执行主体可以根据碱基互补配对原则得到与碱基序列对应的互补碱基序列。互补碱基序列中的互补碱基与碱基序列中的碱基一一对应,并且具有互补配对关系。上述执行主体可以通过连接满足一一对应关系的互补碱基序列中的互补碱基与步骤203所得的第二预处理数据中碱基序列中的碱基,得到第三预处理数据。
步骤205,建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据。
在本实施例中,由于步骤202所得到的哈希值序列中哈希值的数量与互补碱基序列中互补碱基的数量相同,所以,上述执行主体可以建立哈希值序列中的哈希值与互补碱基序列中的互补碱基的一一对应关系,并连接满足一一对应关系的哈希值序列中的哈希值与步骤204所得的第三预处理数据中互补碱基序列中的互补碱基,从而得到具有预定数据结构的数据。
步骤206,基于具有预定数据结构的数据,生成数据秘钥和数据单体序列。
在本实施例中,数据秘钥包括哈希值和互补碱基序列,数据单体包括数据块、哈希值和碱基。上述执行主体可以通过以下步骤基于步骤205所得的具有预定数据结构的数据生成数据秘钥和数据单体序列:
第一步,断开具有预定数据结构的数据中互补碱基序列与碱基序列之间的连接关系得到待存储数据和待处理秘钥。
在本实施例中,具有预定数据结构的数据中互补碱基序列与碱基序列之间的连接关系是指互补碱基序列中的互补碱基与碱基序列中的碱基之间的一对一连接关系。待存储数据包括哈希值序列、目标数据块序列和碱基序列。待处理秘钥包括互补碱基序列和哈希值序列。
第二步,基于待处理秘钥生成数据秘钥。
在本实施例中,第一步所得的待处理秘钥中互补碱基序列中的互补碱基与哈希值序列中的哈希值之间存在一对一连接关系。上述执行主体可以先断开待处理秘钥中互补碱基序列与哈希值序列的连接关系。之后,上述执行主体可以从哈希值序列中获取一个哈希值,并将该哈希值添加到互补碱基序列的起始位置,从而得到数据秘钥。
第三步,基于待存储数据生成数据单体序列。
在本实施例中,第一步所得的待存储数据中目标数据块序列中的数据块之间存在连接关系。上述执行主体可以通过断开目标数据块序列中的数据块之间的连接关系得到数据单体序列。所得到的数据单体序列中数据单体的数量与目标数据块序列中数据块的数量相同。数据单体中包括数据块、哈希值和碱基,并且哈希值和碱基都连接到数据块上。
继续参考图3,图3是根据本实施例的处理数据的方法的一个应用场景的示意图。在图3的应用场景中,数据提供方可以通过用户终端301上传目标数据块序列303。用户终端301将目标数据块序列303发送给服务器302,请求服务器302对目标数据块序列303进行处理。服务器303在接收到目标数据块序列303之后,可以先确定与目标数据块序列303对应的碱基序列304。接下来,服务器302可以建立目标数据块序列303中数据块之间的连接关系以及目标数据块序列303中数据块与碱基序列304中碱基的一对一连接关系,得到第一预处理数据305;对碱基序列304进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列306;建立哈希值序列306中哈希值与第一预处理数据305中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据307;根据碱基互补配对原则得到与碱基序列304对应的互补碱基序列308,并建立互补碱基序列308中互补碱基与第二预处理数据307中碱基序列中碱基的一对一连接关系,得到第三预处理数据309;建立哈希值序列306中哈希值与第三预处理数据309中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据310。之后,服务器302可以基于具有预定数据结构的数据310生成数据秘钥311和数据单体序列312。
本公开的实施例提供的处理数据的方法,先确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。接下来,对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。该实施方式所生成的数据秘钥包括哈希值和互补碱基序列,并且目标数据块序列的长度越长与之相对应的数据秘钥的长度也越长,数据秘钥也就越难破解。有助于提高秘钥的复杂度和破解难度。从而提高了存储数据的安全性。
进一步参考图4,根据本公开的处理数据的方法的又一个实施例的流程400。该处理数据的方法应用于服务器,包括以下步骤:
步骤401,确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。
步骤402,对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列。
步骤403,建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据。
步骤404,根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据。
步骤405,建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据。
步骤406,基于具有预定数据结构的数据,生成数据秘钥和数据单体序列。
在本实施例中,上述步骤401、步骤402、步骤403、步骤404、步骤405和步骤406分别与前述实施例中的步骤201、步骤202、步骤203、步骤204、步骤205和步骤206一致,上文针对步骤201至步骤206的描述也适用于步骤401至步骤406,此处不再赘述。
步骤407,将数据单体序列存储在存储单元。
在本实施例中,存储单元用于存储数据单体序列。上述执行主体可以将步骤406所生成的数据单体序列存储在存储单元。需要说明的是,上述执行主体可以将不同的数据单体序列存储在不同的存储单元。数据单体序列的大小和存储时限不同,用于存储该数据单体序列的存储单元的大小和存储时限也不同。
在本实施例中,上述执行主体还可以将步骤406所生成的数据秘钥发送给目标数据块序列所来自的用户终端。用户终端的用户在接收到数据秘钥后,可以将数据秘钥保存在本地、也可以将数据秘钥转发给他人。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤将数据单体序列存储在存储单元:
第一步,根据第二随机算法确定与数据单体序列中数据单体对应的存储序号。
在该可选的实现方式中,上述执行主体可以先确定数据单体序列中数据单体的数量。之后,上述执行主体可以通过随机数生成器生成相等数量的无重复的整数。
由于所生成的随机数的数量与数据单体序列中数据单体的数量相同,上述执行主体可以确定随机数与数据单体序列中数据单体的一一对应关系。之后,上述执行主体可以将与数据单体对应的随机数作为数据单体的存储序号。
第二步,按照存储序号由小到大的顺序,将数据单体序列中数据单体依次存储在存储单元。
在该可选的实现方式中,上述执行主体可以按照数据单体的存储序号由小到大的顺序,将数据单体序列中的数据单体依次存储在存储单元。
在该可选的实现方式中,上述执行主体通过使用第二随机算法将数据单体序列随机存储在存储单元。有助于提高数据存储的安全性。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤删除数据单体序列:
第一步,确定存储单元中的数据单体序列是否满足预设删除条件。
在该可选的实现方式中,删除条件可以是存储单元中的数据单体序列的存储时间大于或等于预设阈值。在这里,预设删除条件可以是数据提供方通过用户终端上传至上述执行主体的删除条件,也可以是上述执行主体默认设置的删除条件。预设阈值在本公开中不做限定,可以根据实际需求进行设置。
第二步,响应于确定满足预设删除条件,删除数据单体序列。
在该可选的实现方式中,若上述执行主体在第一步中确定存储单元中的数据单体序列满足预设删除条件。上述执行可以将该数据单体序列从存储单元中删除,也即将该存储单元清空。
在该可选的实现方式中,上述执行主体可以及时将满足预设删除条件的数据单体序列从存储单元中删除。有助于节省存储空间,以及提高存储空间的利用率。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤对存储单元中的数据单体序列进行数据解密,并将解密后的数据发送给数据需求方:
第一步,接收数据需求方上传的数据秘钥。
在该可选的实现方式中,数据需求方可以通过用户终端将数据秘钥上传至上述执行主体。上述执行主体可以在接收到数据秘钥后,获取到与该数据秘钥对应的数据,并将该数据发送至数据需求方。在这里,数据秘钥可以包括哈希值和互补碱基序列。
第二步,确定与数据秘钥对应的存储单元。
在该可选的实现方式中,同一存储单元中所存储的所有数据单体的哈希值是相同的。不同存储单元中所存储的数据单体的哈希值是不同的。上述执行主体可以根据数据秘钥所包括的哈希值确定与该数据秘钥对应的存储单元。
第三步,获取存储单元中的数据单体序列。
在该可选的实现方式中,上述执行主体可以获取第二步中所确定的存储单元中的数据单体序列。
第四步,根据数据秘钥对数据单体序列进行数据解密,得到解密后的数据。
在该可选的实现方式中,上述执行主体可以先根据数据秘钥中的互补碱基序列对数据单体序列进行排序。之后,上述执行主体可以将排序后的数据单体序列中的数据块进行数据合并,得到解密后的数据。在这里,数据合并是指将多个数据块合并成一个逻辑上是统一整体的数据。需要说明的是,数据合并技术是目前广泛研究和应用的公知技术,在此不再赘述。
在该可选的实现方式中,上述执行主体根据数据秘钥中的互补碱基序列对数据单体序列进行排序可以通过依次确定数据单元序列中哪个数据单体与互补碱基序列中的互补碱基相对应来实现。
上述执行主体可以先根据碱基互补配对原则确定与互补碱对应的候选数据单体。之后,上述执行主体可以将候选数据单体中数据单体中数据块的身份标识所表征的排列序号与该互补碱基在互补碱基序列中的序号一致的数据单体确定为与该互补碱基对应的数据单体。
第五步,将解密后的数据发送给数据需求方。
在该可选的实现方式中,上述执行主体可以将第四步所得的解密后的数据发送给数据需求方。
在该可选的实现方式中,上述执行主体在接收到数据需求方上传的数据秘钥之后,通过哈希值验证、碱基互补验证和数据单体的身份标识验证等三重验证完成对数据单体序列的解密,有助于提高数据解密的难度,以及提高数据存储的安全性。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤根据数据秘钥对数据单体序列进行数据解密,得到解密后的数据:
第一步,根据数据单体中数据块的身份标识对数据单体序列进行排序。
在该可选的实现方式中,数据块的身边标识可以表征数据块的身份和排列顺序。上述执行主体可以先根据数据单体中数据块的身份标识对数据单体进行排序。
第二步,根据碱基互补配对原则确定数据秘钥中的互补碱基与排序后的数据单体序列中数据单体的碱基是否匹配正确。
在该可选的实现方式中,数据秘钥包括互补碱基序列。上述执行主体可以根据碱基互补配对原则确定互补碱基序列中的互补碱基与第一步中所得的排序后的数据单体序列中的数据单体的碱基是否匹配正确。
第三步,响应于确定匹配正确,根据排序后的数据单体序列得到解密后的数据。
在该可选的实现方式中,若上述执行主体在第二步中确定互补碱基序列中的互补碱基与第一步中所得的排序后的数据单体序列中的数据单体的碱基能够匹配正确,上述执行主体可以将排序后的数据单体序列中的数据块进行数据合并,得到解密后的数据。在这里,数据合并是指将多个数据块合并成一个逻辑上是统一整体的数据。需要说明的是,数据合并技术是目前广泛研究和应用的公知技术,在此不再赘述。
在该可选的实现方式中,上述执行主体先根据数据单体序列中数据块的身份标识对数据单体序列进行排序,然后根据碱基互补配对原则对排序后的数据单体序列进行碱基匹配验证。若碱基匹配验证通过,即可以根据排序后的数据单体序列得到解密后的数据。该可选的实现方式解码过程相对简单,有助于节省数据解密时间,提高数据解密效率。
从图4中可以看出,与图2对应的实施例相比,本实施例中的处理数据的方法的流程400体现了将数据单体序列存储在存储单元,以及可以将数据秘钥发送给目标数据块序列所来自的用户终端。由此,本实施例描述的方案实现了数据秘钥和数据单体序列的分开传输和存储,并且可以根据数据单体序列的大小和存储时限的不同,选择不同的存储单元来存储数据单体序列。有助于节省存储资源,提高存储资源利用率以及数据传输和数据存储的安全性。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种处理数据的装置的一个实施例。该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的处理数据的装置500可以包括:获得第一预处理数据单元501、哈希运算单元502、获得第二预处理数据单元503、获得第三预处理数据504、获得具有预定数据结构的数据单元505和生成秘钥单元506。其中,获得第一预处理数据单元501,被配置成确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据,其中,数据块具有表征数据块身份和排列顺序的身份标识;哈希运算单元502,被配置成对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;获得第二预处理数据单元503,被配置成建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;获得第三预处理数据单元504,被配置成根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;获得具有预定数据结构的数据单元505,被配置成建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;生成秘钥单元506,被配置成基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。
在本实施例中,处理数据的装置500中:获得第一预处理数据单元501、哈希运算单元502、获得第二预处理数据单元503、获得第三预处理数据504、获得具有预定数据结构的数据单元505和生成秘钥单元506的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204、步骤205和步骤206相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,该装置还包括数据单体序列存储单元(图中未示出)和数据秘钥发送单元(图中未示出)。其中,数据单体序列存储单元可以被配置成将数据单体序列存储在存储单元;数据秘钥发送单元可以被配置成将数据秘钥发送给目标数据块序列所来自的用户终端。
在本实施例的一些可选的实现方式中,该装置还包括接收单元(图中未示出)和数据分割单元(图像未示出)。其中,接收单元可以被配置成接收数据提供方上传的数据包,数据包包括待加密数据和数据分割条件;数据分割单元可以被配置成根据数据分割条件对待加密数据进行数据分割,得到目标数据块序列。
在本实施例的一些可选的实现方式中,该装置还包括接收数据秘钥单元(图中未示出)、存储单元确定单元(图中未示出)、获取数据单体序列单元(图中未示出)、解密单元(图中未示出)和发送解密数据单元(图中未示出。其中,接收数据秘钥单元可以被配置成接收数据需求方上传的数据秘钥;存储单元确定单元可以被配置成确定与数据秘钥对应的存储单元;获取数据单体序列单元可以被配置成获取存储单元中的数据单体序列;解密单元可以被配置成根据数据秘钥对数据单体序列进行数据解密,得到解密后的数据;发送解密数据单元可以被配置成将解密后的数据发送给数据需求方。
在本实施例的一些可选的实现方式中,解密单元可以包括排序子单元、匹配子单元和获得解密数据子单元。其中,排序子单元可以被配置成根据数据单体中数据块的身份标识对数据单体序列进行排序;匹配子单元可以被配置成根据碱基互补配对原则确定数据秘钥中的互补碱基与排序后的数据单体序列中数据单体的碱基是否匹配正确;获得解密数据子单元可以被配置成响应于确定匹配正确,根据排序后的数据单体序列得到解密后的数据。
在本实施例的一些可选的实现方式中,获得第一预处理数据单元501还包括确定当前碱基子单元、确定比例子单元、确定是否满足预设条件子单元和调整碱基分配子单元。其中,确定当前碱基子单元可以被配置成根据第一随机算法确定与目标数据块序列中当前数据块对应的碱基;确定比例子单元可以被配置成确定碱基在碱基序列中所占的比例;确定是否满足预设条件子单元可以被配置成确定比例是否满足预设条件;调整碱基分配子单元可以被配置成响应于确定比例不满足预设条件,调整第一随机算法,以及使用调整后的第一随机算法确定与目标数据块序列中未分配碱基的数据块对应的碱基。
在本实施例的一些可选的实现方式中,数据单体序列存储单元可以包括存储序号确定子单元和存储子单元。其中,存储序号确定子单元可以被配置成根据第二随机算法确定与数据单体序列中数据单体对应的存储序号;存储子单元可以被配置成按照存储序号由小到大的顺序,将数据单体序列中数据单体依次存储在存储单元。
在本实施例的一些可选的实现方式中,该装置还包括确定是否满足删除条件单元(图中未示出)和删除单元(图中未示出)。其中,确定是否满足删除条件单元可以被配置成确定存储单元中的数据单体序列是否满足预设删除条件;删除单元可以被配置成响应于确定满足预设删除条件,删除数据单体序列。
本公开的上述实施例提供的装置,先通过获得第一预处理数据单元501确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据。接下来,哈希运算单元502对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;获得第二预处理数据单元503建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;获得第三预处理数据单元504根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;获得具有预定数据结构的数据单元505建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;生成秘钥单元506基于具有预定数据结构的数据,生成数据秘钥和数据单体序列。该实施方式所生成的数据秘钥包括哈希值和互补碱基序列,并且目标数据块序列的长度越长相对应的数据秘钥的长度也越长,数据秘钥也就越难破解。有助于提高秘钥的复杂度和破解难度。从而提高了存储数据的安全性。
下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器)600的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:获得第一预处理数据单元、哈希运算单元、获得第二预处理数据单元、获得第三预处理数据单元、获得具有预定数据结构的数据单元和生成秘钥单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获得第一预处理数据单元还可以被描述为“确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据的单元,其中,数据块具有表征数据块身份和排列顺序的身份标识”。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:确定与目标数据块序列对应的碱基序列,并建立目标数据块序列中数据块之间的连接关系以及目标数据块序列中数据块与碱基序列中碱基的一对一连接关系,得到第一预处理数据,其中,数据块具有表征数据块身份和排列顺序的身份标识;对碱基序列进行哈希运算,得到哈希值,并构建包含所得到的哈希值的哈希值序列;建立哈希值序列中哈希值与第一预处理数据中目标数据块序列中数据块的一对一连接关系,得到第二预处理数据;根据碱基互补配对原则得到与碱基序列对应的互补碱基序列,并建立互补碱基序列中互补碱基与第二预处理数据中碱基序列中碱基的一对一连接关系,得到第三预处理数据;建立哈希值序列中哈希值与第三预处理数据中互补碱基序列中互补碱基的一对一连接关系,得到具有预定数据结构的数据;基于具有预定数据结构的数据,生成数据秘钥和数据单体序列,其中数据单体包括数据块、哈希值和碱基,数据秘钥包括哈希值和互补碱基序列。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。