一种数据加密、解密方法和装置与流程

文档序号:15682726发布日期:2018-10-16 20:44阅读:181来源:国知局
本发明实施例涉及密码
技术领域
:,尤其涉及一种数据加密、解密方法和装置。
背景技术
::随着诸如外卖、网购、叫车等互联网o2o行业日益壮大,各大互联网企业积累了海量的用户信息和行为数据,而这些数据被商家、三方物流、数据分析员、运维人员等多方共享,用户隐私和有价值数据难以得到保护。因此,数据管理者如何对用户隐私信息进行脱敏,何时、何地以何种方式共享数据,是有待解决的问题。现有技术中,数据加密技术能够保证数据的传输安全和存储安全,包括对称和非对称两种方式。在数据共享过程中,如果采用单一的对称加密方式,则多方实体共享解密密钥,数据安全性低;如果采用单一的非对称方式,则系统需要为每个用户生成公私钥对,在互联网多方参与的场景中,系统密钥生成和存储开销过大。并且随着数据量的不断增加,本地难以管理庞大的密文数据。所以传统的数据加密技术无法满足互联网o2o行业中大数据安全共享需求。技术实现要素:本发明实施例提供一种数据加密、解密方法和装置,用以实现提高共享过程中的数据安全性。第一方面,本发明实施例提供一种数据加密方法,包括:确定待加密数据的访问约束信息;所述访问约束信息包括n个约束信息;通过第一密钥加密所述待加密数据得到第一密文;所述第一密钥为对称密钥;根据所述n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;所述n为大于0的整数;针对每个第二公钥,使用所述第二公钥至少加密所述第一密钥的部分密钥参数,得到第二密文;所述第二公钥对应的第二私钥用于解密所述第二密文;将所述第一密文和所述第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心;所述密钥管理中心用于根据客户端的当前信息,将满足所述访问条件的当前信息对应的第二私钥发送给所述客户端。可选的,所述约束信息为时段信息或区域信息;所述根据所述n个约束信息,生成多对第二密钥,包括:根据所述n个约束信息中的各个时段信息,生成每个时段信息对应的具有时间属性的第二密钥;根据所述n个约束信息中的各个区域信息,生成每个区域信息对应的具有空间属性的第二密钥。可选的,根据所述n个约束信息,生成多对第二密钥之前,还包括:根据所述n个约束信息,构建至少包括n个叶子节点和至少一个非叶子节点的访问控制树;每个叶子节点存储一个约束信息;所述根据所述n个约束信息,生成多对第二密钥,包括:根据所述n个约束信息,生成n对第二密钥;每个约束信息对应一对第二密钥;所述针对每个第二公钥,使用所述第二公钥至少加密所述第一密钥的部分密钥参数,得到第二密文,包括:将所述第一密钥的各密钥参数分散存储于所述访问控制树中的n个叶子节点上;针对每个约束信息,使用所述约束信息对应的第二公钥加密所述约束信息对应的叶子节点中存储的密钥参数,得到所述约束信息对应的第二密文。第二方面,本发明实施例提供一种数据解密方法,包括:从云存储服务器中获取第一密文和第二密文;所述第一密文为根据第一密钥对待访问数据加密得到的,所述第二密文为根据包括多对第二密钥中的第二公钥对所述第一密钥的各密钥参数加密得到;所述第二密钥为根据所述待访问数据的访问约束信息生成的;从密钥管理中心获取客户端的当前信息对应的第二私钥,通过所述当前信息对应的第二私钥解密所述第二密文得到所述第一密钥;所述当前信息对应的第二私钥为密钥管理中心根据客户端的当前信息确定所述当前信息满足访问条件时发送给所述客户端的;通过所述第一密钥解密所述第一密文得到所述待访问数据。可选的,所述访问约束信息包括n个约束信息;所述约束信息为时段信息或区域信息;所述从密钥管理中心获取客户端的当前信息对应的第二私钥,包括:若所述当前信息满足所述访问条件,则从所述密钥管理中心获取所述当前信息对应的第二私钥;所述当前信息对应的第二私钥为根据所述当前信息所满足的访问条件确定的;其中,所述访问条件包括以下内容中的至少一项:所述当前访问时间在各时段信息包括的时间范围内;所述当前访问位置在各区域信息包括的空间区域内。可选的,所述客户端中包括访问控制树;所述访问控制树包括n个叶子节点和至少一个非叶子节点;每个叶子节点中存储有约束信息,每个非叶子节点存储有访问门限信息;所述通过所述当前信息对应的第二私钥解密所述第二密文得到所述第一密钥,包括:若所述访问门限信息包括为满足至少一个约束信息对应访问条件,则通过满足所述访问门限信息的当前信息对应的第二私钥解密所述满足所述访问门限信息的当前信息所属的约束信息对应的第二密文,得到所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数;根据所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数,得到第一密钥。可选的,所述云存储服务器中包括数据的标识和密文的对应关系;所述从云存储服务器中获取第一密文和第二密文,包括:向所述云存储服务器发送数据访问请求;所述数据访问请求包括待访问数据的标识和用户的身份凭证;所述用户身份凭证用于指示所述云存储服务器根据所述用户的用户公钥加密所述待访问数据的标识对应的第一密文和第二密文,得到第三密文;接收所述云存储服务器发送的所述第三密文;通过所述用户的用户私钥解密所述第三密文,得到所述第一密文和第二密文。第三方面,本发明实施例提供一种数据加密装置,包括:处理单元,用于确定待加密数据的访问约束信息;所述访问约束信息包括n个约束信息;加密单元,用于通过第一密钥加密所述待加密数据得到第一密文;所述第一密钥为对称密钥;密钥生成单元,用于根据所述n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;所述n为大于0的整数;所述加密单元,还用于针对每个第二公钥,使用所述第二公钥至少加密所述第一密钥的部分密钥参数,得到第二密文;所述第二公钥对应的第二私钥用于解密所述第二密文;所述处理单元,还用于将所述第一密文和所述第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心;所述密钥管理中心用于根据客户端的当前信息,将满足所述访问条件的当前信息对应的第二私钥发送给所述客户端。可选的,所述约束信息为时段信息或区域信息;所述密钥生成单元,用于:根据所述n个约束信息中的各个时段信息,生成每个时段信息对应的具有时间属性的第二密钥;根据所述n个约束信息中的各个区域信息,生成每个区域信息对应的具有空间属性的第二密钥。可选的,所述加密装置还包括构建单元,用于:根据所述n个约束信息,构建至少包括n个叶子节点和至少一个非叶子节点的访问控制树;每个叶子节点存储一个约束信息;所述密钥生成单元,用于:根据所述n个约束信息,生成n对第二密钥;每个约束信息对应一对第二密钥;所述加密单元,用于:将所述第一密钥的各密钥参数分散存储于所述访问控制树中的n个叶子节点上;针对每个约束信息,使用所述约束信息对应的第二公钥加密所述约束信息对应的叶子节点中存储的密钥参数,得到所述约束信息对应的第二密文。第四方面,本发明实施例提供一种数据解密装置,包括:获取单元,用于从云存储服务器中获取第一密文和第二密文,从密钥管理中心获取客户端的当前信息对应的第二私钥;所述第一密文为根据第一密钥对待访问数据加密得到的,所述第二密文为根据包括多对第二密钥中的第二公钥对所述第一密钥的各密钥参数加密得到;所述第二密钥为根据所述待访问数据的访问约束信息生成的;解密单元,用于通过所述当前信息对应的第二私钥解密所述第二密文得到所述第一密钥;通过所述第一密钥解密所述第一密文得到所述待访问数据;所述当前信息对应的第二私钥为密钥管理中心根据客户端的当前信息确定所述当前信息满足访问条件时发送给所述客户端的。可选的,所述访问约束信息包括n个约束信息;所述约束信息为时段信息或区域信息;所述获取单元,用于:若所述当前信息满足所述访问条件,则从所述密钥管理中心获取所述当前信息对应的第二私钥;所述当前信息对应的第二私钥为根据所述当前信息所满足的访问条件确定的;其中,所述访问条件包括以下内容中的至少一项:所述当前访问时间在各时段信息包括的时间范围内;所述当前访问位置在各区域信息包括的空间区域内。可选的,所述客户端中包括访问控制树;所述访问控制树包括n个叶子节点和至少一个非叶子节点;每个叶子节点中存储有约束信息,每个非叶子节点存储有访问门限信息;所述解密单元,用于:若所述访问门限信息包括为满足至少一个约束信息对应访问条件,则通过满足所述访问门限信息的当前信息对应的第二私钥解密所述满足所述访问门限信息的当前信息所属的约束信息对应的第二密文,得到所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数;根据所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数,得到第一密钥。可选的,所述云存储服务器中包括数据的标识和密文的对应关系;所述获取单元,用于:向所述云存储服务器发送数据访问请求;所述数据访问请求包括待访问数据的标识和用户的身份凭证;所述用户身份凭证用于指示所述云存储服务器根据所述用户的用户公钥加密所述待访问数据的标识对应的第一密文和第二密文,得到第三密文;接收所述云存储服务器发送的所述第三密文;通过所述用户的用户私钥解密所述第三密文,得到所述第一密文和第二密文。第五方面,本发明实施例提供一种电子设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如前述任一可选的实施方式中所述的加密方法,或执行如前述任一可选的实施方式中所述的解密方法。第六方面,本发明实施例提供一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行前述任一可选的实施方式中所述的加密方法,或执行如前述任一可选的实施方式中所述的解密方法。本发明实施例中,加密装置确定待加密数据的访问约束信息,访问约束信息包括n个约束信息;通过第一密钥加密待加密数据得到第一密文;第一密钥为对称密钥;也就是说,第一密钥可以解密第一密文得到待加密数据;根据n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;n为大于0的整数;针对每个第二公钥,使用第二公钥至少加密第一密钥的部分密钥参数,得到第二密文,第二公钥对应的第二私钥用于解密第二密文;可见,本发明实施例中不仅对待加密数据进行加密,而且对用于加密待加密数据的第一密钥也进行了加密,而且,第二密钥的生成与约束信息相关,可以保证第二密文的安全性。将第一密文和第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心,密钥管理中心用于根据客户端的当前信息,将满足访问条件的当前信息对应的第二私钥发送给客户端。可见,客户端获取的第二私钥考虑了满足访问条件的当前信息,进而可以保证第一密钥的安全性,如此,可以进一步提高共享数据的安全性。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。图1为本发明实施例提供的一种系统架构流程示意图;图2为本发明实施例提供的一种加密方法流程示意图;图3为本发明实施例提供的时效树示意图;图4为本发明实施例提供的空间树示意图;图5为本发明实施例提供的访问控制树示意图;图6为本发明实施例提供的绑定密文的访问控制树示意图;图7为本发明实施例提供的一种解密方法流程示意图;图8为本发明实施例提供的一种加密装置的结构示意图;图9为本发明实施例提供的一种解密装置的结构示意图;图10为本发明实施例提供的一种电子设备的结构示意图;图11为本发明实施例提供的另一种电子设备的结构示意图。具体实施方式为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例中提供本发明实施例适用于o2o的大部分场景,该场景中时间和空间是数据基本特征。比如外卖场景,从客户下单时起,到骑手送达,是一个正常订单的时间周期,而商家的取餐地址和用户的配送地址是必要的空间信息。再如叫车场景,司机从接单开始,到抵达客户指定地点接上人,是一个用户隐私信息可见的时间区段;把客户送到终点后,该订单完结,系统可以通过起点、终点、以及路线等空间信息以及订单生成至结束所需时长来判断订单是否存在异常。在o2o各场景中,对需要保护的数据进行加密,并保证加密后的数据的安全性是非常有必要的,比如,外卖场景中,客户的订单信息是需要保护的数据,但是订单信息需要共享给骑手,以便骑手准确的配送。为了保证数据的安全性,订单信息需要用密钥进行加密得到密文,而骑手需要得到密钥才能解密密文得到订单信息。现有技术中,数据共享方案主要包括数据加密技术和访问控制技术。一方面,传统的数据加密技术在本地管理密文数据,随着数据量的不断增加、本地无法承受庞大的数据管理压力,为了满足互联网o2o行业中大数据安全共享需求,可以采用如下方案:一种方案为:采用云端密文数据的共享和生命周期管理,分布式哈希表(distributedhashtable,简称dht)临时网络完成解密密钥的时效控制,利用shamir秘密共享策略为合法用户分配密钥。但是这种方式特定密钥的分享周期是固定的,缺乏时间区段的灵活性控制,而且由于解密密钥片段以明文方式存放于dht临时网络结点中,密钥的安全性完全依赖于该临时网络的结点数量和稳定性,容易受到遍历攻击,并且可用性难以得到保证。另一种方案为:通过访问控制技术实现客户条件的约束,目前访问控制技术用于数据共享过程中的用户授权,传统技术主要有自主访问控制策略、强制访问控制策略以及基于角色的访问控制策略,描述主体对客体具备怎样的访问权利。但策略没有时间、空间等客观约束条件,并且当多规则间存在冲突时只有单一的处理方式。对于访问控制技术本身的应用而言,数据通常是以明文方式分配给授权用户的。但随着数据量的增加,异步存储、云存储环境下的敏感数据要求加密存储及传输。另外,互联网数据量大,参与角色众多,导致规则复杂,访问控制的决策点和执行点工作量巨大,每次数据请求的决策需要遍历整个策略。所以已有的访问控制技术不能满足互联网o2o行业数据安全的要求。本发明实施例中提供的加密和解密的方案中,利用时间和空间特征对需要保护的数据进行加密,存储于云存储服务器中,并且赋予满足访问条件的用户以解密私钥,实现共享数据的安全性。下面示例性的示出本发明实施例适用的系统架构。图1为本发明实施例提供的一种系统架构示意图。如图1所示,该系统架构包括如下实体:数据管理员、云存储、用户、可信时钟、地理信息系统(geographicinformationsystem,简称gis)中心以及密钥管理中心(keymanagementservice,简称kms)。其中:数据管理员为公司内部可信员工使用的终端,主要用于对数据标示、分类、细化,根据时间、空间特征加密敏感数据,并负责数据的上传。用户为数据的使用者使用的终端,数据的使用者可以有多种分类,从角色上分,包括内部员工和外部用户;从安全角度分,包括合法用户和非法用户,比如合法用户具备身份证书,一般情况下所有的数据应该只在合法用户中共享。云存储为负责数据存储和数据共享的服务器,在本文中也称为云存储服务器,属于不可信的三方服务提供者,不能存储敏感数据的明文,存储密文。可信时钟负责用户时间校验和时效判定,配合kms生成时间密钥。gis中心负责用户空间位置校验,配合kms生成空间密钥。密钥管理中心负责各类密钥的生成和管理,并配合数据安全加密敏感数据。基于上述图1中的系统架构,下面对本发明实施例提供的数据加密方法进行详细介绍。图2示例性示出了本发明实施例提供的一种数据加密方法流程示意图。如图2所示,该方法包括以下步骤:步骤201:确定待加密数据的访问约束信息;访问约束信息包括n个约束信息;步骤202:通过第一密钥加密待加密数据得到第一密文;第一密钥为对称密钥;步骤203:根据n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;n为大于0的整数;步骤204:针对每个第二公钥,使用第二公钥至少加密第一密钥的部分密钥参数,得到第二密文;第二公钥对应的第二私钥用于解密第二密文;步骤205:将第一密文和第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心;密钥管理中心用于根据客户端的当前信息,将满足访问条件的当前信息对应的第二私钥发送给客户端。本发明实施例中,加密装置确定待加密数据的访问约束信息,访问约束信息包括n个约束信息;通过第一密钥加密待加密数据得到第一密文;第一密钥为对称密钥;也就是说,第一密钥可以解密第一密文得到待加密数据;根据n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;n为大于0的整数;针对每个第二公钥,使用第二公钥至少加密第一密钥的部分密钥参数,得到第二密文,第二公钥对应的第二私钥用于解密第二密文;可见,本发明实施例中不仅对待加密数据进行加密,而且对用于加密待加密数据的第一密钥也进行了加密,而且,第二密钥的生成与约束信息相关,可以保证第二密文的安全性。将第一密文和第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心,密钥管理中心用于根据客户端的当前信息,将满足访问条件的当前信息对应的第二私钥发送给客户端。可见,客户端获取的第二私钥考虑了满足访问条件的当前信息,进而可以保证第一密钥的安全性,如此,可以进一步提高共享数据的安全性。可选的,所述约束信息为时段信息或区域信息。一种可选的实施方式中,所述根据所述n个约束信息,生成多对第二密钥,包括:根据所述n个约束信息中的各个时段信息,生成每个时段信息对应的具有时间属性的第二密钥;根据所述n个约束信息中的各个区域信息,生成每个区域信息对应的具有空间属性的第二密钥。本发明实施例中,时段信息可以为待加密数据的数据时效的相关信息。举个例子,比如一个文件时效为40天,2017年11月1日至2017年12月10日,可以建立如图3所示的时效树。树的高度代表时间精度,在本例中树的层级h=2,时间的精度细化到“天”,灰色区域为文件的时效。时效树的层级根据文件的时效定义而变化,可以是年、月、日,可以是一天当中的时段,下面以年月日为例构造密钥。在时效树中,叶子节点表示时间的最小精度,访问控制策略中定义的时效可以连续或特定的日期,对应树中的结点集合。每个上传的文件绑定自身的时效树,且时效树中左右两端的叶子节点对应文件时效的起始和终止时间。以下为根据时段信息生成每个时段信息对应的具有时间属性的第二密钥的过程的具体示例。令g为乘法循环群g的生成元,hkey(·):{0,1}*→zp为抗碰撞的哈希序列。随机选择y∈zp,并计算θ=αy,其中sm是时间树的根节点私钥。可以构建具有时间属性的第二密钥如下式所示,每对第二密钥包括第二私钥(如下公式1)和第二公钥(如下公式2):根据公式(1)和公式(2)可知,根据上述示例中文件的时效2017年11月1日至2017年12月10日,该文件的第二私钥如下述公式(3)所示,第二公钥如下述公式(4)所示:本发明实施例中,区域信息可以为待加密数据可以访问的空间位置的相关信息。空间属性同样可以表示成树的结构,与时间的区别是树只有一个层级。每个叶子结点代表一个的地理范围,可以用gps经纬度加半径定义,可以用特定wifi网络定义。如图4所示的空间树,区域信息通过经度、纬度定义,覆盖范围通过半径定义。比如上述文件的具有空间属性的第二密钥中,第二私钥如下公式(5),第二公钥如下公式(6),:sk={i∈(p1,p2,...,pn):hθ(i)}......(5)通过上述实施例,通过生成具有空间属性的第二密钥,考虑了访问待加密数据的空间有效性,通过生成具有时间属性的第二密钥,考虑了访问待加密数据的时间有效性,如此,使用第二公钥至少加密第一密钥的部分密钥参数,可以提高第一密钥的安全性。一种可选的实施方式中,根据所述n个约束信息,生成多对第二密钥之前,还包括:根据所述n个约束信息,构建至少包括n个叶子节点和至少一个非叶子节点的访问控制树;每个叶子节点存储一个约束信息;所述根据所述n个约束信息,生成多对第二密钥,包括:根据所述n个约束信息,生成n对第二密钥;每个约束信息对应一对第二密钥;所述针对每个第二公钥,使用所述第二公钥至少加密所述第一密钥的部分密钥参数,得到第二密文,包括:将所述第一密钥的各密钥参数分散存储于所述访问控制树中的n个叶子节点上;针对每个约束信息,使用所述约束信息对应的第二公钥加密所述约束信息对应的叶子节点中存储的密钥参数,得到所述约束信息对应的第二密文。本发明实施例中,根据访问控制规则中对特定数据的时空约束,构建用于时空加密的访问框架,如图5所示访问控制树。叶子结点表示被加密的基本时空元素,非叶子结点表示门限。图5中时间约束门限为(1,3),表示该文件的时效为[时间区段1+时间区段2+time],用户访问时间落于任意其一当中即满足时间条件。其中,对于时间区段即为上述实施例中的时段信息。空间元素不需要构造区段的结构,每个区域独立作为一个加密基元,如图5中空间约束门限为(1,2)表示任意满足其一的空间约束即可。根节点为时空and门限,表示同时用户需同时满足时间和空间的约束,如图5中所示的时&空(2,2)。当然,时间和空间约束也可以单独使用,比如设定根节点门限为or(1,2),表示满足时间约束和空间约束中任一个即可。基于图5的访问控制树,下面提供一个加密过程的具体实施例。图6为本发明实施例提供的绑定密文的访问控制树示意图。首先,利用第一密钥s对明文(即待加密数据)加密得到第一密文cm,将第一密钥s绑定时空访问控制树。在时空访问控制树中,将s藏匿于根节点。利用秘密分享方案,将第一密钥s的各密钥参数分散到时空门限,最后传递到叶节点。对于布尔代数描述来说,and意味着构造一个n-1阶多项式;or意味着构造一个0阶多项式。如图6中,根节点有一个and门限,即时&空,构造如下:f0(x)=ax+s。然后,利用具有时间属性的第二公钥pk分别对月份区段1(t1)、月份区段2(t2)以及某日time(t3)对应的第一密钥的密钥参数加密生成时间密文ct={ct1,ct2,ct3};其中ct1=enc(t1,pky),ct2=enc(t2,pky,m),ct3=enc(t3,pky,m,d);利用具有空间属性的第二公钥pk分别对两个区域(area)对应的第一密钥的密钥参数加密,生成空间密文cp={cp1,cp2};其中:cp1=enc(p1,pki),cp2=enc(p2,pkj)。第二密文包括时间密文和空间密文。之后,数据管理员将第一密文和第二密文c=cm||ct||cp上传到云存储。当用户向云端提出申请数据:request={cm,cti,cpj},云端校验用户身份通过后,利用该用户的身份公钥为其生成用户差异性的密文,即将第一密文和第二密文一起加密得到第三密文cuid=enc(requestdata,pkuid),并允许其下载。基于以上实施例以及相同构思,图7为本发明实施例提供的一种解密方法流程示意图。步骤701:从云存储服务器中获取第一密文和第二密文;第一密文为根据第一密钥对待访问数据加密得到的,第二密文为根据包括多对第二密钥中的第二公钥对第一密钥的各密钥参数加密得到;第二密钥为根据待访问数据的访问约束信息生成的;步骤702:从密钥管理中心获取客户端的当前信息对应的第二私钥,通过当前信息对应的第二私钥解密第二密文得到第一密钥;当前信息对应的第二私钥为密钥管理中心根据客户端的当前信息确定当前信息满足访问条件时发送给客户端的;步骤703:通过第一密钥解密第一密文得到待访问数据。本发明实施例中,解密装置从云存储服务器中获取第一密文和第二密文;第一密文为根据第一密钥对待访问数据加密得到的,第二密文为根据包括多对第二密钥中的第二公钥对第一密钥的各密钥参数加密得到;第二密钥为根据待访问数据的访问约束信息生成的;由于获取的第一密文为对待访问数据进行加密,第二密文为对用于加密待访问数据的第一密钥的各密钥参数进行加密,而且第二密钥的生成与访问约束信息相关,所以待访问数据的安全性很高。之后,解密装置从密钥管理中心获取客户端的当前信息对应的第二私钥,通过当前信息对应的第二私钥解密第二密文得到第一密钥;当前信息对应的第二私钥为密钥管理中心根据客户端的当前信息确定当前信息满足访问条件时发送给客户端的;通过第一密钥解密第一密文得到待访问数据。如此,只有客户端的当前信息满足访问条件时才能得到第二私钥,进而解密第二密文得到第一密钥,再使用第一密钥解密第一密文得到待访问数据,从而可以提高待访问数据的安全性。本发明实施例中,所述访问约束信息包括n个约束信息;所述约束信息为时段信息或区域信息;也就是说,访问约束信息中可以只包括时段信息、也可以只包括区域信息,还可以包括时段信息和区域信息。可选的,所述从密钥管理中心获取客户端的当前信息对应的第二私钥,包括:若所述当前信息满足所述访问条件,则从所述密钥管理中心获取所述当前信息对应的第二私钥;所述当前信息对应的第二私钥为根据所述当前信息所满足的访问条件确定的;其中,所述访问条件包括以下内容中的至少一项条件:条件一,所述当前访问时间在各时段信息包括的时间范围内;条件二,所述当前访问位置在各区域信息包括的空间区域内。其中,客户端的当前信息可以为当前访问时间,也可以为当前访问位置。也就是说,如果n个约束信息全部为时段信息,那么只有客户端的当前信息满足条件一,才能获取第二私钥;如果n个约束信息全部为区域信息,那么只有客户端的当前信息满足条件二,才能获取第二私钥;如果n个约束信息中存在时段信息和区域信息,那么只有客户端的当前信息满足条件一、且满足条件二时,才能获取第二私钥;如此,可以保证第二私钥的安全性。本发明实施例中,客户端中包括访问控制树;访问控制树包括n个叶子节点和至少一个非叶子节点;每个叶子节点中存储有约束信息,每个非叶子节点存储有访问门限信息;通过当前信息对应的第二私钥解密第二密文得到第一密钥,包括:若访问门限信息包括满足至少一个约束信息对应访问条件,则通过满足访问门限信息的当前信息对应的第二私钥解密满足访问门限信息的当前信息所属的约束信息对应的第二密文,得到满足访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数;根据满足访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数,得到第一密钥。如此,解密第二密文得到第一密钥的过程,考虑了访问门限信息和客户端的当前信息,可以保证解密得到的第一密钥的安全性。本发明实施例中,所述云存储服务器中包括数据的标识和密文的对应关系;所述从云存储服务器中获取第一密文和第二密文,包括:向所述云存储服务器发送数据访问请求;所述数据访问请求包括待访问数据的标识和用户的身份凭证;所述用户身份凭证用于指示所述云存储服务器根据所述用户的用户公钥加密所述待访问数据的标识对应的第一密文和第二密文,得到第三密文;接收所述云存储服务器发送的所述第三密文;通过所述用户的用户私钥解密所述第三密文,得到所述第一密文和第二密文。如此,用户获取第三密文为根据用户身份凭证加密得到的,保证了第三密文传输的安全性,只有用户身份凭证对应的用户私钥解密第三密文,进而得到所述第一密文和第二密文,从而可以进一步保证待访问数据的安全性。具体实施中,在获取到第二私钥之后,基于如图6中的访问控制树,利用具有时间属性的第二私钥解密满足访问框架的时间节点,利用具有空间属性的第二私钥解密满足访问条件的空间节点。time和area字段被用户解密。从而,可以得到时间门限f0(1)的多项式以及空间门限f0(2)的多项式,如下公式(7)所示:最终,通过公式(7)可以求解密文s。基于以上实施例,为了更清楚的介绍上述加密和解密方法,下面结合具体实施例进行介绍。图8为本发明实施例提供的数据分享流程示意图。第一步,数据系统初始化;在系统初始化过程中,数据管理员对数据字段进行标示、抽取和重组,以满足各类业务需求;用户向系统注册,获取身份证书;可信时钟定义不同的时间区段用于标示数据时效;gis中心用经纬度刻画不同地域和商区;kms生成系统主密钥和相关公共参数。第二步,生成多对第二密钥,每对第二密钥包括第二公钥和第二私钥。第二密钥可以包括具有时间属性的第二密钥,也可以包括具有空间属性的第二密钥,还可以包括具有时间属性的第二密钥和具有空间属性的第二密钥;其中,时间属性即图8中时间区段元素,空间属性即图8中空间区段元素。第三步,数据加密;采用第一密钥对待加密数据加密,得到第一密文;再采用时空公钥,即具有时间属性的第二公钥和具有时间属性的第二公钥,对第一密钥的各密钥参数加密,得到第二密文。第四步,数据共享;数据管理员将第二密文发送上传到云存储,当用户向云端提出申请数据:request={cm,cti,cpj},云端校验用户身份通过后,利用该用户的身份公钥为其生成用户差异性的第三密文cuid=enc(requestdata,pkuid),并允许其下载。第五步,数据解密;用户获取当前时间校验和当前位置校验通过后得到的时空私钥,即具有时间属性的第二私钥和具有时间属性的第二私钥。用户利用身份私钥解密第三密文,得到第一密文和第二密文;再使用时空私钥解密第二密文,得到第一密钥;再使用第一密钥对第一密文进行解密,得到需要访问的数据。基于以上实施例和图8,下面结合外卖配送场景的具体实施例进行介绍。客户在外卖应用(app)选择商品之后,上添加姓名,年龄、性别、电话,地址,支付方式等信息,下单;骑手根据商家位置接单、取餐品、并联系客户送餐。在该场景中,骑手需要完成取餐和送餐两项任务,取餐过程中需要获取订单信息,送餐过程中需要获取用户联系方式。为了保证客户信息的安全,对订单信息和用户联系方式等订单相关数据进行加密,具体加密和解密过程如下:在系统初始化过程中,骑手作为用户需要通过app获取身份注册,商家根据客户点餐内容和客户个人信息生成订单;可信时钟根据订单生成时效信息,gis中心根据商家和客户位置生成地理位置信息,kms生成系统加密参数。在密钥生成过程中,kms根据时效和地理位置信息,生成时空密钥,包括时空公钥和时空私钥;在数据加密过程中,分别构造订单信息和用户联系方式的时空访问框架树,对明文(即订单信息和用户联系方式)加密;在数据共享过程中,系统将加密的订单信息和用户联系方式上传,骑手接单后,向云存储申请该订单信息和用户联系方式。云根据骑手身份,生成差异性密文下发。在数据解密过程中,骑手向可信时钟、gis中心验证时空属性,并向kms请求订单信息和用户联系方式的第二私钥。如果骑手的当前位置和当前时间满足访问条件,比如骑手当前位置在商家50米范围内,当前时间12点在取餐时间中午12点至13点内,骑手可以利用身份私钥解密差异性密文,并利用时空密钥中的时间私钥和空间私钥解密密文。基于以上实施例和图8,下面结合数据分析场景的具体实施例进行介绍。例如,系统偏好分析师想对用户分时段、分地域的下单行为分析统计,需要知晓用户的年龄、性别、所在地域、下单时间、餐品内容和所属餐厅等,这些信息分别保存在用户信息表、订单表、商家信息等敏感表中,系统禁止员工在公司外部获取数据访问权限。在系统初始化过程中,分析师作为公司内部员工,具有内网的登陆权限。gis中心将内网wifi作为空间信息,kms生成系统加密参数。在密钥生成过程中,kms根据空间位置信息,生成空间加密公钥和解密私钥。在数据加密过程中,数据管理员利用空间访问框架,对敏感数据表加密。在数据共享过程中,数据管理员将加密的数据表上传云端,分析师申请相关分析数据。云根据用户身份,生成差异性密文下发。在数据解密过程中,分析师向gis中心验证wifi空间属性,并向kms请求相应空间解密私钥。如果分析师当前位置和当前访问时间满足访问条件,该分析师可以利用身份私钥、时间私钥和空间私钥解密密文。通过上述实施例可见,将敏感数据采用访问控制数中时间、空间的约束条件利用数据加密的方式实现,使得只有满足规定时空条件的用户可以解密。可以保证敏感数据的安全存储,而且采用三方云存储进行数据的安全的共享。本发明实施例中的方案可以解决互联网o2o行业中大数据安全存储和安全共享问题,其中大数据可以包括用户隐私数据、交易数据、业务数据等。基于以上实施例以及相同构思,图9为本发明实施例提供的一种数据加密装置的结构示意图,该加密装置可以实现如上图2中所示的任一项或任多项对应的方法中的步骤。如图9所示,该加密装置900可以包括处理单元901、加密单元902、密钥生成单元903;可选的,还包括构建单元904。其中:处理单元901,用于确定待加密数据的访问约束信息;所述访问约束信息包括n个约束信息;加密单元902,用于通过第一密钥加密所述待加密数据得到第一密文;所述第一密钥为对称密钥;密钥生成单元903,用于根据所述n个约束信息,生成多对第二密钥;每对第二密钥包括第二公钥和第二私钥;所述n为大于0的整数;所述加密单元902,还用于针对每个第二公钥,使用所述第二公钥至少加密所述第一密钥的部分密钥参数,得到第二密文;所述第二公钥对应的第二私钥用于解密所述第二密文;所述处理单元901,还用于将所述第一密文和所述第二密文存储于云存储服务器中,并将各第二私钥和访问条件存储于密钥管理中心;所述密钥管理中心用于根据客户端的当前信息,将满足所述访问条件的当前信息对应的第二私钥发送给所述客户端。可选的,所述约束信息为时段信息或区域信息;所述密钥生成单元903,用于:根据所述n个约束信息中的各个时段信息,生成每个时段信息对应的具有时间属性的第二密钥;根据所述n个约束信息中的各个区域信息,生成每个区域信息对应的具有空间属性的第二密钥。可选的,所述加密装置还包括构建单元904,用于:根据所述n个约束信息,构建至少包括n个叶子节点和至少一个非叶子节点的访问控制树;每个叶子节点存储一个约束信息;所述密钥生成单元903,用于:根据所述n个约束信息,生成n对第二密钥;每个约束信息对应一对第二密钥;所述加密单元902,用于:将所述第一密钥的各密钥参数分散存储于所述访问控制树中的n个叶子节点上;针对每个约束信息,使用所述约束信息对应的第二公钥加密所述约束信息对应的叶子节点中存储的密钥参数,得到所述约束信息对应的第二密文。上述加密装置所涉及的与本发明实施例提供的技术方案相关的概念,解释和详细说明及其它步骤请参见前述加密方法或其它实施例中关于这些内容的描述,此处不做赘述。基于以上实施例以及相同构思,图10为本发明实施例提供的一种数据解密装置的结构示意图,该解密装置可以实现如上图7中所示的任一项或任多项对应的方法中的步骤。如图10所示,该加密装置1000可以包括获取单元1001、解密单元1002。其中:获取单元1001,用于从云存储服务器中获取第一密文和第二密文,从密钥管理中心获取客户端的当前信息对应的第二私钥;所述第一密文为根据第一密钥对待访问数据加密得到的,所述第二密文为根据包括多对第二密钥中的第二公钥对所述第一密钥的各密钥参数加密得到;所述第二密钥为根据所述待访问数据的访问约束信息生成的;解密单元1002,用于通过所述当前信息对应的第二私钥解密所述第二密文得到所述第一密钥;通过所述第一密钥解密所述第一密文得到所述待访问数据;所述当前信息对应的第二私钥为密钥管理中心根据客户端的当前信息确定所述当前信息满足访问条件时发送给所述客户端的。可选的,所述访问约束信息包括n个约束信息;所述约束信息为时段信息或区域信息;所述获取单元1001,用于:若所述当前信息满足所述访问条件,则从所述密钥管理中心获取所述当前信息对应的第二私钥;所述当前信息对应的第二私钥为根据所述当前信息所满足的访问条件确定的;其中,所述访问条件包括以下内容中的至少一项:所述当前访问时间在各时段信息包括的时间范围内;所述当前访问位置在各区域信息包括的空间区域内。可选的,所述客户端中包括访问控制树;所述访问控制树包括n个叶子节点和至少一个非叶子节点;每个叶子节点中存储有约束信息,每个非叶子节点存储有访问门限信息;所述解密单元1002,用于:若所述访问门限信息包括为满足至少一个约束信息对应访问条件,则通过满足所述访问门限信息的当前信息对应的第二私钥解密所述满足所述访问门限信息的当前信息所属的约束信息对应的第二密文,得到所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数;根据所述满足所述访问门限信息的当前信息所属的约束信息对应的叶子节点上存储的密钥参数,得到第一密钥。可选的,所述云存储服务器中包括数据的标识和密文的对应关系;所述获取单元1001,用于:向所述云存储服务器发送数据访问请求;所述数据访问请求包括待访问数据的标识和用户的身份凭证;所述用户身份凭证用于指示所述云存储服务器根据所述用户的用户公钥加密所述待访问数据的标识对应的第一密文和第二密文,得到第三密文;接收所述云存储服务器发送的所述第三密文;通过所述用户的用户私钥解密所述第三密文,得到所述第一密文和第二密文。上述解密装置所涉及的与本发明实施例提供的技术方案相关的概念,解释和详细说明及其它步骤请参见前述解密方法或其它实施例中关于这些内容的描述,此处不做赘述。基于以上实施例以及相同构思,本发明实施例还提供一种电子设备。图11为本发明实施例提供的一种电子设备的结构示意图。如图4所示,该电子设备1100包括:存储器1101,用于存储程序指令;处理器1102,用于调用所述存储器中存储的程序指令,按照获得的程序执行前述任一实施例中所述的加密方法,或执行前述任一实施例中所述的解密方法。基于以上实施例以及相同构思,本发明实施例还提供一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行前述任一实施例中所述的加密方法,或执行前述任一实施例中所述的解密方法。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本发明的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1