CN110048830B - 一种数据加密解密方法和加密解密装置 - Google Patents
一种数据加密解密方法和加密解密装置 Download PDFInfo
- Publication number
- CN110048830B CN110048830B CN201810035894.6A CN201810035894A CN110048830B CN 110048830 B CN110048830 B CN 110048830B CN 201810035894 A CN201810035894 A CN 201810035894A CN 110048830 B CN110048830 B CN 110048830B
- Authority
- CN
- China
- Prior art keywords
- data
- field
- key
- ciphertext
- piece
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据加密解密方法和加密解密装置,涉及计算机技术领域。该方法的一具体实施方式包括:将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段;根据所述主键字段对每个所述分组中的数据分别进行排序;对排序结果中的所述目标字段进行加密,以得到加密数据。该实施方式按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序,并对排序结果中的目标字段进行加密。通过上述方式隐藏了目标字段,使得数据使用方只能按照指定的维度字段解密数据,可约束数据使用方的行为。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据加密解密方法和加密解密装置。
背景技术
电子商务领域数据往往具有一定敏感性,例如交易金额、供应商报价、风控数据等。此类数据因其商业价值,被广泛用于各类业务的分析和决策,但是极易引发数据泄露。为降低数据泄露风险和方便事故追查,一般会对此类数据进行加密和访问权限控制约束。
现有技术对于具有敏感性的原始数据的处理过程是:数据提供方将原始数据进行筛选、聚合后得到聚合数据,之后按照传统的加密方式加密得到密文数据,然后将密文数据输出至数据使用方;密文数据到达数据使用方后,由数据使用方立即进行解密得到明文数据,之后数据使用方就可以在明文数据上统计。其中,数据提供方是拥有原始数据的一方,诗句使用方是需要使用数据的一方。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:数据使用方解密得到明文数据后的行为不可控,容易造成明文数据的散播。
发明内容
有鉴于此,本发明实施例提供一种数据加密解密方法和加密解密装置,数据提供方按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序,并对排序结果中的目标字段进行加密。通过上述方式隐藏了目标字段,使得数据使用方只能按照指定的维度字段解密数据,可约束数据使用方的行为。
实现上述目的,根据本发明实施例的一个方面,提供了一种数据加密方法。
本发明实施例的一种数据加密方法,包括:将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段;根据所述主键字段对每个所述分组中的数据分别进行排序;对排序结果中的所述目标字段进行加密,以得到加密数据。
可选地,所述对排序结果中的所述目标字段进行加密,包括:采用链式加密方式对排序结果中的所述目标字段进行加密。
可选地,所述采用链式加密方式对排序结果中的所述目标字段进行加密,以得到加密数据,包括:当对排序结果中每个所述分组的第一条数据的目标字段进行加密时,将元密钥作为密钥对所述第一条数据的目标字段进行加密,以得到对应的密文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;当对所述排序结果中每个所述分组的第二至第n条数据的目标字段进行加密时,将所述元密钥和上一条数据的目标字段对应的密文数据作为密钥,对当前条数据的目标字段进行加密,以得到对应的密文数据;将所述排序结果中的每一条数据的维度字段、主键字段和对应的密文数据作为加密数据。
可选地,所述将原始数据按照维度字段进行分组的步骤之前,还包括:确定所述原始数据的维度字段、主键字段和目标字段;其中,所述维度字段与所述主键字段不相同,所述目标字段为所述原始数据中的敏感数据。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种数据解密方法。
本发明实施例的一种数据解密方法,包括:将加密数据按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据;根据所述主键字段对每个所述分组中的数据分别进行排序;对排序结果中的所述密文数据进行解密,以得到解密数据。
可选地,所述对排序结果中的所述密文数据进行解密,以得到解密数据,包括:当对排序结果中每个所述分组的第一条数据的密文数据进行解密时,将元密钥作为密钥对所述第一条数据的密文数据进行解密,以得到对应的明文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;当对所述排序结果中每个所述分组的第二至第n条数据的密文数据进行解密时,将所述元密钥和上一条数据的密文数据对应的明文数据作为密钥,对当前条数据的密文数据进行解密,以得到对应的明文数据;将所述排序结果中的每一条数据的维度字段、主键字段和对应的明文数据作为解密数据。
可选地,所述将加密数据按照维度字段进行分组的步骤之前,还包括:从所述加密数据中获取连接主键字段,根据所述连接主键字段将所述加密数据和使用方式字段进行连接;其中,所述连接主键字段为所述维度字段或者主键字段,所述使用方式字段为统计数据对象字段和筛选条件字段中的其中一个字段或者两个字段;所述将加密数据按照维度字段进行分组,包括:将包括所述加密数据的连接结果按照所述维度字段进行分组;所述对排序结果中的所述密文数据进行解密,以得到解密数据的步骤之后,还包括:根据所述筛选条件字段对所述解密数据进行筛选;根据所述统计数据对象字段对所述解密数据或者筛选结果进行统计。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据加密装置。
本发明实施例的一种数据加密装置,包括:第一分组模块,用于将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段;第一排序模块,用于根据所述主键字段对每个所述分组中的数据分别进行排序;加密模块,用于对排序结果中的所述目标字段进行加密,以得到加密数据。
可选地,所述加密模块,还用于:采用链式加密方式对排序结果中的所述目标字段进行加密。
可选地,所述加密模块,还用于:当对排序结果中每个所述分组的第一条数据的目标字段进行加密时,将元密钥作为密钥对所述第一条数据的目标字段进行加密,以得到对应的密文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;当对所述排序结果中每个所述分组的第二至第n条数据的目标字段进行加密时,将所述元密钥和上一条数据的目标字段对应的密文数据作为密钥,对当前条数据的目标字段进行加密,以得到对应的密文数据;将所述排序结果中的每一条数据的维度字段、主键字段和对应的密文数据作为加密数据。
可选地,所述装置还包括:确定模块,用于确定所述原始数据的维度字段、主键字段和目标字段;其中,所述维度字段与所述主键字段不相同,所述目标字段为所述原始数据中的敏感数据。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种数据解密装置。
本发明实施例的一种数据解密装置,包括:第二分组模块,用于将加密数据按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据;第二排序模块,用于根据所述主键字段对每个所述分组中的数据分别进行排序;解密模块,用于对排序结果中的所述密文数据进行解密,以得到解密数据。
可选地,所述解密模块,还用于:当对排序结果中每个所述分组的第一条数据的密文数据进行解密时,将元密钥作为密钥对所述第一条数据的密文数据进行解密,以得到对应的明文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;当对所述排序结果中每个所述分组的第二至第n条数据的密文数据进行解密时,将所述元密钥和上一条数据的密文数据对应的明文数据作为密钥,对当前条数据的密文数据进行解密,以得到对应的明文数据;将所述排序结果中的每一条数据的维度字段、主键字段和对应的明文数据作为解密数据。
可选地,所述装置还包括:连接模块,用于从所述加密数据中获取连接主键字段,根据所述连接主键字段将所述加密数据和使用方式字段进行连接;其中,所述连接主键字段为所述维度字段或者主键字段,所述使用方式字段为统计数据对象字段和筛选条件字段中的其中一个字段或者两个字段;所述第二分组模块,还用于:将包括所述加密数据的连接结果按照所述维度字段进行分组;所述装置还包括:筛选统计模块,用于:根据所述筛选条件字段对所述解密数据进行筛选;以及根据所述统计数据对象字段对所述解密数据或者筛选结果进行统计。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据加密方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据加密方法。
上述发明中的一个实施例具有如下优点或有益效果:数据提供方按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序并加密,通过上述方式隐藏了目标字段,使得数据使用方只能在指定的维度字段解密以及使用数据,可约束数据使用方的行为;采用链式加密的方式,使得数据使用方必须采用与数据提供方同样的方式对加密数据分组排序,否则无法正确解密;数据提供方将维度字段和主键字段设定为不同的数据,能够防止将原始数据中的敏感数据全部暴露给数据使用方;将解密过程与统计过程封装在同一个过程中完成,既能够防止解密结果被窃取,又能够获得与现有技术中使用明文数据统计完全一致的结果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据加密方法的主要步骤的示意图;
图2是根据本发明实施例的数据解密方法的主要步骤的示意图;
图3是根据本发明实施例的数据加密方法的主要流程示意图;
图4是根据本发明实施例的数据解密方法的主要流程示意图;
图5是根据本发明实施例的数据加密装置的主要模块的示意图;
图6是根据本发明实施例的数据解密装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的数据加密方法的主要步骤的示意图。如图1所示,本发明实施例的数据加密方法,主要包括如下步骤:
步骤S101:将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段。所述维度字段根据实际需求确定,比如要统计某些店铺每日的订单金额,则维度字段为店铺编号和订单日期。所述主键字段用来唯一区分原始数据中的每一条数据,比如可以是订单编号。目标字段是需要进行加密处理的字段,比如可以是原始数据中的有一定商业机密的数据、个人隐私信息等敏感数据。
步骤S102:根据所述主键字段对每个所述分组的数据分别进行排序。根据主键字段进行排序的排序规则由用户自定义。假设主键字段为订单编号,则可按照订单编号由小到大的顺序对每个分组的数据分别进行排序处理。
步骤S103:对排序结果中的所述目标字段进行加密,以得到加密数据。加密数据中包括维度字段、主键字段和密文数据。该步骤采用链式加密的方式,从排序结果中每个分组的第一条数据开始,对所有的目标字段逐条进行加密得到密文数据,这样就使得数据使用方必须与数据提供方采用同样的方式对加密数据分组排序,否则无法正确解密。
图2是根据本发明实施例的数据解密方法的主要步骤的示意图。如图2所示,本发明实施例的数据解密方法,主要包括如下步骤:
步骤S201:将加密数据按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据。解密过程的维度字段和主键字段与加密过程的维度字段和主键字段相同。
步骤S202:根据所述主键字段对每个所述分组中的数据分别进行排序。解密过程中根据主键字段进行排序的排序规则与加密过程的排序规则相同。
步骤S203:对排序结果中的所述密文数据进行解密,以得到解密数据。解密是加密的逆过程,从排序结果中每个分组的第一条数据开始,对密文数据逐条进行解密得到对应的明文数据,所有的明文数据构成解密数据,该解密数据与原始数据相同。
在本发明一优选的实施例中,数据使用方用连接主键字段将自身的使用方式字段与加密数据进行连接,在连接后的数据上进行分组、排序、解密得到解密数据,进而对解密数据进行筛选、统计。其中,所述连接主键字段是数据提供方和数据使用方共同拥有的数据,用于将数据提供方的数据和数据使用方的数据连接(Jion)到一起。所述使用方式字段可以是以下三种字段的任意一种,第一种为统计数据对象字段,第二种为筛选条件字段,第三种为统计数据对象字段和筛选条件字段。第一种可以对解密数据进行统计,第二种可以对解密数据进行筛选,第三种可以对解密数据进行筛选后统计。
图3是根据本发明实施例的数据加密方法的主要流程示意图。如图3所示,本发明实施例的数据加密方法,以目标字段为敏感字段为例,主要包括以下步骤:
步骤S301:将原始数据按照维度字段进行分组,得到分组集合其中,所述原始数据包括:维度字段主键字段明文字段以及敏感字段明文字段是可选的,其余三个字段是必须的。维度字段主键字段明文字段和敏感字段需根据数据使用方的需求预先确定。全文中的代表定义,=代表赋值。分组集合如下所示,表示分组操作。
(1)对g′i的每一条数据按照如下方式加密,得到 的表达方式如下,其中,i为分组的组下标、j为分组内每条数据的下标,为元密钥(Meta Cipher Key),为加密算法,为密钥生成算法,表示加密操作。
该步骤中采用了链式加密的方式。元密钥是启动链式加密的关键,其用于直接加密第一条数据,并生成对后续数据加密的密钥,进而参与后续数据的加密。为加密算法,所有的对称加密算法均适用上述公式,比如DES(Data Encryption Standard,数据加密算法),AES(Advanced Encryption Standard,高级加密标准)等。
假设排序结果中某分组g′i的数据为D1、D2、…、Dn,则上述公式的含义为:
……
图4是根据本发明实施例的数据解密方法的主要流程示意图。如图4所示,本发明实施例的数据解密方法,主要包括以下步骤:
步骤S401:从加密数据中获取连接主键字段根据所述连接主键字段将所述加密数据和使用方式字段进行连接,得到宽表数据从加密数据中获取连接主键字段的实现过程为:数据提供方从加密数据中找出所有未被加密的字段,如果找出的字段其自身也拥有,则可将这些字段作为连接主键字段本发明中的连接主键字段可表示为:在一优选的实施例中,假设数据提供方拥有用户的电话号码和邮箱;数据使用方仅拥有用户的电话号码,其需要邮箱;这时就可以通过电话号码将数据提供方的数据和数据使用方的数据关联起来。这里的电话号码即为连接主键字段
按照加密数据中的维度字段使用数据的方式包括筛选和统计。统计的数据对象由数据使用方自己准备,比如该数据对象可以是数据使用方关心的店铺每日的欺诈金额。另外,在统计之前可能需要从所有的店铺中筛选出数据使用方关心的店铺数据,故可根据需要设定筛选条件。相应的使用方式字段包括:统计数据对象字段和筛选条件字段
步骤S404:对排序结果中的所述密文数据进行解密,以得到解密数据。所述解密数据即为原始数据该步骤的具体过程为:对的每一条数据按照如下方式解密,得到gi,j。gi,j的表达方式如下,其中,i为分组的组下标、j为分组内每条数据的下标,为元密钥,为解密算法,为密钥生成算法,表示解密操作。解密算法可以是DES、AES等。
……
步骤S405:根据所述筛选数据字段和所述统计数据对象字段对解密数据进行筛选和统计。具体实现为如下所示,其中,gi为每个分组的解密结果,为筛选和统计结果,为统计算法,为筛选算法。统计算法和筛选算法根据需求由用户自定义。
由上述解密过程可以看出,数据解密和数据使用是整合在一起的(即封装在一个过程中完成),数据使用方无法直接获得解密数据,因此能够降低原始数据泄露的风险。而且由于解密过程中已经完全还原得到原始数据,因此能够得到与现有技术中使用明文数据筛选统计完全一致的结果。
本发明实施例中,数据加密方法和数据解密方法均先排序同一分组内的数据,并在排序后采用链式加密的方式加密,这使得数据使用方必须以与数据提供方使用同样的方式聚合数据(即按照维度字段对数据分组),并且当中不能加入新的数据,否则排序将被打乱,导致无法正确解密。
在一优选的实施例中,元密钥可以配置为与数据使用方及其环境绑定,或者全局一致(即所有数据使用方使用同样的元密钥加密数据)。这里所说的环境可以是机器环境、硬件设备环境等,将元密钥与特定机器、硬件设备绑定,或者通过密钥管理中心管理分发元密钥,可以防范盗用风险。
在一优选的实施例中,不同的数据使用方对应不同的元密钥,并且将元密钥绑定数据使用方的环境,数据使用方之间无法二次传播该加密数据,使得原始数据更加安全。
在本发明一优选的实施例中,假设数据提供方拥有欺诈订单数据,该欺诈订单数据中包括订单编号、订单日期、店铺编号和是否欺诈。数据使用方需要欺诈订单数据,其自身拥有订单交易金额数据,该订单交易金额数据包括订单编号、订单日期、店铺编号和金额信息。而欺诈订单数据属于敏感数据,如果数据提供方把全部的欺诈订单数据交给数据使用方使用,那么对于数据使用方来说,会同时知道其他店铺的欺诈信息,并且同时掌握每个订单是否涉嫌欺诈的信息。虽然数据使用方可以把自身拥有的订单交易金额数据给数据提供方,由数据提供方计算出某个店铺每日的欺诈金额,然后返回给数据使用方。但是,如果数据使用方很多,会对数据提供方造成压力,无法及时返回欺诈金额。
下面以统计某个网店的店铺内每日销售商品中的欺诈金额为例,对本发明的数据加密、数据解密方法进行详细说明。
假设数据提供方拥有的欺诈订单数据,如表1所示。
表1为欺诈订单数据
订单编号 | 订单日期 | 店铺编号 | 是否欺诈 |
201709010004 | 20170901 | 01 | 是 |
201709020001 | 20170902 | 02 | 否 |
201709010001 | 20170901 | 01 | 否 |
201709020003 | 20170902 | 02 | 是 |
由于需要统计某店铺每日的欺诈订单金额,故维度字段为店铺编号和订单日期。数据提供方和数据使用方需要通过订单编号来唯一区分每条数据,故主键字段为订单编号。数据使用方并不需要获取其他附加信息,故没有明文字段敏感字段即为是否欺诈。
在上述应用场景中,数据加密的处理过程为:
(1)数据提供方将欺诈订单数据按照店铺编号和订单日期分组,得到两个分组。其中,第一个分组的数据为:201709010004、20170901、01、是;201709010001、20170901、01、否。第二个分组的数据为:201709020001、20170902、02、否;201709020003、20170902、02、是。
(2)数据提供方按照订单编号对所有分组中的数据分别进行排序。排序结果为:第一个分组:201709010001、20170901、01、否;201709010004、20170901、01、是。第二组:201709020001、20170902、02、否;201709020003、20170902、02、是。
(3)数据提供方对每个分组中每条数据的最后一个字段使用加密算法进行加密,之后打散得到加密数据以输出至数据使用方。
数据解密的处理过程与数据加密相类似。通过上述数据解密方法,把数据使用方自身的金额信息与数据提供方的加密数据进行连接,之后在连接后的数据上解密得到解密数据,再统计得到数据使用方关心的店铺每日的欺诈金额。
在一优选的实施例中,数据使用方可通过穷举筛选算法输出取值组合的方式,多次调用来渗透还原原始数据。如果维度字段等同于主键字段,按维度字段分组后,每个分组有且仅有一条数据,相当于将原始数据暴露给数据使用方。比如上例中,如果数据使用方需要统计店铺每单的欺诈金额,则维度字段为店铺编号和订单编号,主键字段仍为订单编号,由于敏感数据中的每条数据本身就是订单,数据使用方要获得店铺每单的欺诈金额,如果订单的金额信息为0,则说明不涉嫌欺诈,即欺诈金额为0;如果订单的金额信息不为0,说明涉嫌欺诈,欺诈金额即为金额信息,这样就等同于要获得每个订单是否涉嫌欺诈,会将原始数据暴露给数据使用方。因此,数据提供方根据数据使用方的需求确定维度字段和主键字段时,应当将维度字段确定为与主键字段不同的数据。
目前上述数据加密和数据解密方法可应用于广告数据部对外提供的虚假交易识别数据的加密以及对下游数据使用者使用方式的制约。广告数据部对接下游数据使用方时,根据不同需求方设定不同的维度字段、主键字段以及元密钥,能够使得数据使用方不能直接获取虚假交易识别数据,只能在按维度字段分组后,解密并统计与解密数据相关的业务指标(比如欺诈金额、销售金额)。
通过本发明实施例的数据加密方法可以看出,数据提供方按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序并加密,通过上述方式隐藏了目标字段,使得数据使用方只能在指定的维度字段解密以及使用数据,可约束数据使用方的行为;采用链式加密的方式,使得数据使用方必须采用与数据提供方同样的方式对加密数据分组排序,否则无法正确解密;数据提供方将维度字段和主键字段设定为不同的数据,能够防止将原始数据中的敏感数据全部暴露给数据使用方;将解密过程与统计过程封装在同一个过程中完成,既能够防止解密结果被窃取,又能够获得与现有技术中使用明文数据统计完全一致的结果。
图5是根据本发明实施例的数据加密装置的主要模块的示意图。如图5所示,本发明实施例的数据加密装置500,主要包括:
第一分组模块501,用于将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段。所述维度字段根据实际需求确定,比如要统计某些店铺每日的订单金额,则维度字段为店铺编号和订单日期。所述主键字段用来唯一区分原始数据中的每一条数据。目标字段是需要进行加密处理的字段,比如可以是原始数据中的有一定商业机密的数据、个人隐私信息等敏感数据。
第一排序模块502,用于根据所述主键字段对每个所述分组中的数据分别进行排序。根据主键字段进行排序的排序规则由用户自定义。
加密模块503,用于对排序结果中的所述目标字段进行加密,以得到加密数据。加密数据中包括维度字段、主键字段和密文数据。该模块采用链式加密的方式,从排序结果中每个分组的第一条数据开始,对所有的目标字段逐条进行加密得到密文数据,这样就使得数据使用方必须与数据提供方采用同样的方式对加密数据分组排序,否则无法正确解密。
图6是根据本发明实施例的数据解密装置的主要模块的示意图。如图6所示,本发明实施例的数据解密装置600,主要包括:
第二分组模块601,用于将加密数据按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据。该模块的维度字段和主键字段与第一分组模块501的维度字段和主键字段相同。
第二排序模块602,用于根据所述主键字段对每个所述分组中的数据分别进行排序。该模块中根据主键字段进行排序的排序规则与第一排序模块502中的排序规则相同。
解密模块603,用于对排序结果中的所述密文数据进行解密,以得到解密数据。解密是加密的逆过程,从排序结果中每个分组的第一条数据开始,对密文数据逐条进行解密得到对应的明文数据,所有的明文数据构成解密数据,该解密数据与原始数据相同。
另外,本发明实施例的数据解密装置600还可以包括:连接模块和筛选统计模块(图中未示出),连接模块用于从所述加密数据中获取连接主键字段,根据所述连接主键字段将所述加密数据和使用方式字段进行连接;其中,所述连接主键字段为所述维度字段或者主键字段,所述使用方式字段为统计数据对象字段和筛选条件字段中的其中一个字段或者两个字段;筛选统计模块,用于根据所述筛选条件字段对所述解密数据进行筛选;以及根据所述统计数据对象字段对所述解密数据或者筛选结果进行统计。
从以上描述可以看出,数据提供方按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序并加密,通过上述方式隐藏了目标字段,使得数据使用方只能在指定的维度字段解密以及使用数据,可约束数据使用方的行为;采用链式加密的方式,使得数据使用方必须采用与数据提供方同样的方式对加密数据分组排序,否则无法正确解密;数据提供方将维度字段和主键字段设定为不同的数据,能够防止将原始数据中的敏感数据全部暴露给数据使用方;将解密过程与统计过程封装在同一个过程中完成,既能够防止解密结果被窃取,又能够获得与现有技术中使用明文数据统计完全一致的结果。
图7示出了可以应用本发明实施例的数据加密解密方法或数据加密解密装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所产生的点击事件提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的点击数据、文本内容等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本申请实施例所提供的数据加密解密方法一般由服务器705执行,相应地,数据加密解密装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据加密方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据加密方法。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一分组模块、第一排序模块和加密模块。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一分组模块还可以被描述为“将原始数据按照维度字段进行分组的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、主键字段和目标字段;根据所述主键字段对每个所述分组中的数据分别进行排序;对排序结果中的所述目标字段进行加密,以得到加密数据。
从以上描述可以看出,数据提供方按照维度字段对原始数据进行分组,之后对同一组内的数据进行排序并加密,通过上述方式隐藏了目标字段,使得数据使用方只能在指定的维度字段解密以及使用数据,可约束数据使用方的行为;采用链式加密的方式,使得数据使用方必须采用与数据提供方同样的方式对加密数据分组排序,否则无法正确解密;数据提供方将维度字段和主键字段设定为不同的数据,能够防止将原始数据中的敏感数据全部暴露给数据使用方;将解密过程与统计过程封装在同一个过程中完成,既能够防止解密结果被窃取,又能够获得与现有技术中使用明文数据统计完全一致的结果。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种数据加密方法,其特征在于,包括:
将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、与维度字段不相同的主键字段、目标字段;
根据所述主键字段对每个所述分组中的数据分别进行排序;
采用链式加密方式对排序结果中的所述目标字段进行加密,包括:将元密钥作为密钥对第一条数据的目标字段进行加密得到第一条数据目标字段的密文数据,以及将元密钥和上一条数据目标字段的密文数据作为密钥对当前条数据的目标字段进行加密得到当前条数据目标字段的密文数据;以得到加密数据。
2.根据权利要求1所述的方法,其特征在于,所述采用链式加密方式对排序结果中的所述目标字段进行加密,以得到加密数据,包括:
当对排序结果中每个所述分组的第一条数据的目标字段进行加密时,将元密钥作为密钥对所述第一条数据的目标字段进行加密,以得到对应的密文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;
当对所述排序结果中每个所述分组的第二至第n条数据的目标字段进行加密时,将所述元密钥和上一条数据的目标字段对应的密文数据作为密钥,对当前条数据的目标字段进行加密,以得到对应的密文数据;
将所述排序结果中的每一条数据的维度字段、主键字段和对应的密文数据作为加密数据。
3.根据权利要求1或2所述的方法,其特征在于,所述将原始数据按照维度字段进行分组的步骤之前,还包括:确定所述原始数据的维度字段、主键字段和目标字段;其中,所述维度字段与所述主键字段不相同,所述目标字段为所述原始数据中的敏感数据。
4.一种数据解密方法,其特征在于,包括:
从加密数据中获取连接主键字段,根据连接主键字段将所述加密数据和使用方式字段进行连接,将包括加密数据的连接结果按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据;
根据所述主键字段对每个所述分组中的数据分别进行排序;
对排序结果中的所述密文数据进行解密,包括:将元密钥作为密钥对第一条数据的密文数据进行解密得到第一条数据的密文数据的明文数据,以及将元密钥和上一条数据的密文数据的明文数据作为密钥对当前条数据的密文数据进行解密得到当前条数据的密文数据的明文数据;以得到解密数据。
5.根据权利要求4所述的方法,其特征在于,所述对排序结果中的所述密文数据进行解密,以得到解密数据,包括:
当对排序结果中每个所述分组的第一条数据的密文数据进行解密时,将元密钥作为密钥对所述第一条数据的密文数据进行解密,以得到对应的明文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;
当对所述排序结果中每个所述分组的第二至第n条数据的密文数据进行解密时,将所述元密钥和上一条数据的密文数据对应的明文数据作为密钥,对当前条数据的密文数据进行解密,以得到对应的明文数据;
将所述排序结果中的每一条数据的维度字段、主键字段和对应的明文数据作为解密数据。
6.根据权利要求4或5所述的方法,其特征在于,所述将加密数据按照维度字段进行分组的步骤之前,还包括:
从所述加密数据中获取连接主键字段,根据所述连接主键字段将所述加密数据和使用方式字段进行连接;其中,所述连接主键字段为所述维度字段或者所述主键字段,所述使用方式字段为统计数据对象字段和筛选条件字段中的其中一个字段或者两个字段;
所述对排序结果中的所述密文数据进行解密,以得到解密数据的步骤之后,还包括:
根据所述筛选条件字段对所述解密数据进行筛选;
根据所述统计数据对象字段对所述解密数据或者筛选结果进行统计。
7.一种数据加密装置,其特征在于,包括:
第一分组模块,用于将原始数据按照维度字段进行分组;其中,所述原始数据包括维度字段、与维度字段不相同的主键字段、目标字段;
第一排序模块,用于根据所述主键字段对每个所述分组中的数据分别进行排序;
加密模块,用于采用链式加密方式对排序结果中的所述目标字段进行加密,包括:将元密钥作为密钥对第一条数据的目标字段进行加密得到第一条数据目标字段的密文数据,以及将元密钥和上一条数据目标字段的密文数据作为密钥对当前条数据的目标字段进行加密得到当前条数据目标字段的密文数据;以得到加密数据。
8.根据权利要求7所述的装置,其特征在于,所述加密模块,还用于:
当对排序结果中每个所述分组的第一条数据的目标字段进行加密时,将元密钥作为密钥对所述第一条数据的目标字段进行加密,以得到对应的密文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;
当对所述排序结果中每个所述分组的第二至第n条数据的目标字段进行加密时,将所述元密钥和上一条数据的目标字段对应的密文数据作为密钥,对当前条数据的目标字段进行加密,以得到对应的密文数据;
将所述排序结果中的每一条数据的维度字段、主键字段和对应的密文数据作为加密数据。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:确定模块,用于确定所述原始数据的维度字段、主键字段和目标字段;其中,所述维度字段与所述主键字段不相同,所述目标字段为所述原始数据中的敏感数据。
10.一种数据解密装置,其特征在于,包括:
第二分组模块,用于从加密数据中获取连接主键字段,根据连接主键字段将所述加密数据和使用方式字段进行连接,将包括加密数据的连接结果按照维度字段进行分组;其中,所述加密数据包括维度字段、主键字段和密文数据;
第二排序模块,用于根据所述主键字段对每个所述分组中的数据分别进行排序;
解密模块,用于对排序结果中的所述密文数据进行解密,包括:将元密钥作为密钥对第一条数据的密文数据进行解密得到第一条数据的密文数据的明文数据,以及将元密钥和上一条数据的密文数据的明文数据作为密钥对当前条数据的密文数据进行解密得到当前条数据的密文数据的明文数据;以得到解密数据。
11.根据权利要求10所述的装置,其特征在于,所述解密模块,还用于:
当对排序结果中每个所述分组的第一条数据的密文数据进行解密时,将元密钥作为密钥对所述第一条数据的密文数据进行解密,以得到对应的明文数据;其中,所述排序结果中包括n条数据,n为大于1的整数;
当对所述排序结果中每个所述分组的第二至第n条数据的密文数据进行解密时,将所述元密钥和上一条数据的密文数据对应的明文数据作为密钥,对当前条数据的密文数据进行解密,以得到对应的明文数据;
将所述排序结果中的每一条数据的维度字段、主键字段和对应的明文数据作为解密数据。
12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:连接模块,用于从所述加密数据中获取连接主键字段,根据所述连接主键字段将所述加密数据和使用方式字段进行连接;其中,所述连接主键字段为所述维度字段或者主键字段,所述使用方式字段为统计数据对象字段和筛选条件字段中的其中一个字段或者两个字段;
所述装置还包括:筛选统计模块,用于根据所述筛选条件字段对所述解密数据进行筛选;以及
根据所述统计数据对象字段对所述解密数据或者筛选结果进行统计。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-3中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810035894.6A CN110048830B (zh) | 2018-01-15 | 2018-01-15 | 一种数据加密解密方法和加密解密装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810035894.6A CN110048830B (zh) | 2018-01-15 | 2018-01-15 | 一种数据加密解密方法和加密解密装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110048830A CN110048830A (zh) | 2019-07-23 |
CN110048830B true CN110048830B (zh) | 2023-04-07 |
Family
ID=67273308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810035894.6A Active CN110048830B (zh) | 2018-01-15 | 2018-01-15 | 一种数据加密解密方法和加密解密装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048830B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307056B (zh) * | 2019-07-31 | 2024-02-06 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN110704856B (zh) * | 2019-10-09 | 2021-08-20 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的秘密共享方法 |
CN111680329B (zh) * | 2020-08-14 | 2020-11-10 | 成都中轨轨道设备有限公司 | 一种用于提升数据安全性的数据处理方法 |
CN117040846A (zh) * | 2023-08-10 | 2023-11-10 | 广东九博科技股份有限公司 | 一种接入型otn设备及其数据传输加密和解密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587479A (zh) * | 2008-06-26 | 2009-11-25 | 北京人大金仓信息技术股份有限公司 | 面向数据库管理系统内核的数据加解密系统及其方法 |
WO2012027076A1 (en) * | 2010-08-25 | 2012-03-01 | University Bank | Method and system for database encryption |
CN102402664A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 数据访问控制装置和数据访问控制方法 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN106850187A (zh) * | 2017-01-13 | 2017-06-13 | 温州大学瓯江学院 | 一种隐私字符信息加密查询方法及系统 |
-
2018
- 2018-01-15 CN CN201810035894.6A patent/CN110048830B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587479A (zh) * | 2008-06-26 | 2009-11-25 | 北京人大金仓信息技术股份有限公司 | 面向数据库管理系统内核的数据加解密系统及其方法 |
WO2012027076A1 (en) * | 2010-08-25 | 2012-03-01 | University Bank | Method and system for database encryption |
CN102402664A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 数据访问控制装置和数据访问控制方法 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN106850187A (zh) * | 2017-01-13 | 2017-06-13 | 温州大学瓯江学院 | 一种隐私字符信息加密查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110048830A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110048830B (zh) | 一种数据加密解密方法和加密解密装置 | |
CN110210246B (zh) | 一种基于安全计算的个人数据服务方法和系统 | |
US20180212753A1 (en) | End-To-End Secure Operations Using a Query Vector | |
US20170308580A1 (en) | Data Aggregation/Analysis System and Method Therefor | |
CN110086817B (zh) | 可靠的用户服务系统和方法 | |
EP4068130A1 (en) | Data sharing system, data sharing method, and data sharing program | |
CN112600830B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
WO2022156594A1 (zh) | 联邦模型训练方法、装置、电子设备、计算机程序产品及计算机可读存储介质 | |
CN114223175A (zh) | 在防止获取或操控时间数据的同时生成网络数据的序列 | |
CN102222188A (zh) | 一种信息系统用户密码的生成方法 | |
US9727894B2 (en) | Aggregator system having a platform for engaging mobile device users | |
JP2022522400A (ja) | 複数の集約サーバを使用してデータ操作を防止すること | |
CN107707528B (zh) | 一种用户信息隔离的方法和装置 | |
CN110210975A (zh) | 区块链上的数据交易方法及其设备 | |
US10650083B2 (en) | Information processing device, information processing system, and information processing method to determine correlation of data | |
CN111008236B (zh) | 一种数据查询的方法和系统 | |
Abdulhamid et al. | Development of blowfish encryption scheme for secure data storage in public and commercial cloud computing environment | |
CN109828908A (zh) | 接口测试参数加密方法、装置、电子设备及存储介质 | |
JP7250390B1 (ja) | データ共有システム、データ共有方法、およびデータ共有プログラム | |
CN112118208B (zh) | 上报数据的方法和装置 | |
CN116488789B (zh) | 一种数据处理方法、装置、设备和介质 | |
CN110633273A (zh) | 一种权限管理方法和装置 | |
US20230367905A1 (en) | Obfuscated storage and transmission of personal identifiable information | |
CN112715018B (zh) | 信息处理装置、信息处理方法和程序 | |
Shafi’i Muhammad Abdulhamid et al. | Development of Blowfish Encryption Scheme for Secure Data Storage in Public and Commercial Cloud Computing Environment |
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 |