Login| Sign Up| Help| Contact|

Patent Searching and Data

Document Type and Number:
WIPO Patent Application WO/2018/026323
Kind Code:
Disclosed are a data processing method and device. The method comprises: a terminal device generating a first public key and a first private key; sending the first public key to a key generation centre (KGC), the first public key being used for the KGC or a server to generate a conversion key, wherein the conversion key is used for the server to convert data, encrypted based on an attribute structure of the terminal device, into data encrypted based on the first public key; receiving second data sent by the server, the second data being data generated after the server processes first data according to the conversion key; and decrypting the second data according to the first private key. According to a data processing method and device proposed in the embodiments of the present invention, no security channel is needed to transmit a key, and all the main work is finished by a server; and there is also no requirement for the trustworthiness of a server, thereby reducing the requirements of an attribute-based encryption (ABE) system for the performance of a terminal device.

Application Number:
Publication Date:
February 08, 2018
Filing Date:
June 30, 2017
Export Citation:
Click for automatic bibliography generation   Help
International Classes:
H04L9/14; H04L9/08; H04L9/30
Foreign References:
Other References:
QIN, B. ET AL.: "Server-Aided Revocable Identity-Based Encryption, 20th European Symposium on Research in Computer Security", ESORICS, vol. 9326, 25 September 2015 (2015-09-25), Vienna, Australia, pages 286 - 304, XP047412037
QIN, B. ET AL.: "Attribute-Based Encryption with Efficient Verifiable Outsourced Decryption", IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, vol. 10, no. 7, 4 March 2015 (2015-03-04), pages 1384 - 1393, XP011581428
See also references of EP 3487118A4
Download PDF:

1、 一种数据处理的系统, 其特征在于, 所述系统包括终端设备、 密钥生成中心 KGC以及服务器;

所述终端设备, 用于生成第一公钥和第一私钥;

所述终端设备, 用于向密钥生成中心 KGC发送所述第一公钥;

所述 KGC, 用于从终端设备接收第一公钥, 并根据系统参数、 主密钥、 所述 KGC 的内部状态信息、 所述第一公钥和所述终端设备的属性信息, 生成所述第二公钥, 其中, 所述系统参数是所述 KGC相关的公开信息, 所述主密钥是所述 KGC的私钥;

所述 KGC , 用于向所述服务器发送所述第二公钥;

所述服务器, 用于接收所述 KGC发送的第二公钥;

所述服务器, 用于获取第一数据, 所述第一数据是基于所述终端设备的属性结构加 密的数据;

所述服务器, 用于根据所述第二公钥将所述第一数据转换成第二数据;

所述服务器, 还用于向所述终端设备发送所述第二数据;

所述终端设备, 还用于接收所述服务器发送的第二数据, 并根据所述第一私钥解密 所述第二数据。

2、 根据权利要求 1所述的系统, 其特征在于,

所述终端设备, 具体用于根据系统参数和身份参数生成所述第一公钥和所述第一私 钥, 其中, 所述系统参数为所述 KGC相关的公开信息, 所述身份参数为所述终端设备的 标识信息。

3、 根据权利要求 1或 2所述的系统, 其特征在于,

所述 KGC , 还用于根据所述第二公钥和密钥更新信息生成转换密钥;

所述 KGC, 还用于当所述密钥更新信息指示所述终端设备被吊销时, 根据所述第二 公钥和所述密钥更新信息生成所述错误提示, 并向所述服务器发送所述错误提示;

所述 KGC, 还用于当所述密钥更新信息指示所述终端设备未被吊销时, 根据所述第 二公钥和所述密钥更新信息生成所述转换密钥, 并向所述服务器发送所述转换密钥; 所述服务器, 具体用于根据所述转换密钥将所述第一数据转换成第二数据。

4、 根据权利要求 1或 2所述的系统, 其特征在于,

所述服务器, 还用于从所述 KGC接收密钥更新信息, 其中, 所述密钥更新信息用于 指示所述终端设备的吊销状态;

所述服务器, 还用于当所述密钥更新信息指示所述终端设备被吊销时, 根据所述第 二公钥和所述密钥更新信息生成所述错误提示;

所述服务器, 还用于当所述密钥更新信息指示所述终端设备未被吊销时, 根据所述 第二公钥和所述密钥更新信息生成所述转换密钥, 根据所述转换密钥将所述第一数据转 换成第二数据。

5、 根据权利要求 1至 4中任一项所述的系统, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

6、 一种数据处理的方法, 其特征在于, 所述方法包括:


所述终端设备向密钥生成中心 KGC发送所述第一公钥, 以使得服务器或所述 KGC 根据所述第一公钥生成转换密钥;

所述终端设备接收所述服务器发送的第二数据, 所述第二数据是所述服务器根据所 述转换密钥对第一数据处理后生成的数据, 其中, 所述第一数据是所述服务器获取的基 于所述终端设备的属性结构加密的数据;


7、根据权利要求 6所述的方法, 其特征在于, 所述终端设备向 KGC发送第一公钥, 包括:

所述终端设备向所述 KGC发送所述第一公钥和证明信息,所述证明信息用于指示所 述终端设备存储有所述第一私钥。

8、 根据权利要求 6或 7所述的方法, 其特征在于, 所述终端设备生成第一公钥和第 一私钥, 包括:

所述终端设备根据系统参数生成所述第一公钥和所述第一私钥, 其中, 所述系统参 数为所述 KGC相关的公开信息。

9、 根据权利要求 8所述的方法, 其特征在于, 所述终端设备根据所述第一私钥解密 所述第二数据, 包括:


10、 根据权利要求 6至 9中任一项所述的方法, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

11、 一种数据处理的方法, 其特征在于, 所述方法包括:

密钥生成中心 KGC从终端设备接收第一公钥;

所述 KGC根据系统参数、 主密钥、 所述第一公钥、 所述终端设备的属性信息、 所述 KGC的内部状态信息, 生成所述第二公钥, 其中, 所述系统参数是所述 KGC相关的公 开信息, 所述主密钥是所述 KGC的私钥;

所述 KGC向所述服务器发送所述第二公钥或转换密钥,其中所述转换密钥是根据所 述第二公钥和密钥更新信息生成的。

12、 根据权利要求 11所述的方法, 其特征在于, 所述 KGC生成所述第二公钥前, 所述方法还包括:

所述 KGC从所述终端设备接收证明信息,所述证明信息用于指示所述终端设备存储 有所述第一私钥。

13、 根据权利要求 11所述的方法, 其特征在于, 所述所述转换密钥是根据所述第二 公钥和密钥更新信息生成的, 包括:

所述 KGC根据所述第二公钥、所述密钥更新信息、 所述系统参数和所述身份参数生 成所述转换密钥, 其中, 所述密钥更新信息指示所述终端设备未被吊销。

14、 根据权利要求 11至 13中任一项所述的方法, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

15、 一种数据处理的方法, 其特征在于, 所述方法包括:

服务器从密钥生成中心 KGC接收第二公钥; 其中, 所述第二公钥是所述 KGC根据 第一公钥、终端设备的属性信息、 系统参数、主密钥、所述 KGC的内部状态信息生成的, 其中, 所述系统参数是所述 KGC相关的公开信息, 所述主密钥是所述 KGC的私钥; 所 述第一公钥是所述终端设备的公钥; 所述服务器获取第一数据 , 所述第一数据是基于所述终端设备的属性结构加密的数 据;


所述服务器向所述终端设备发送所述第二数据, 以便于所述终端设备根据所述第一 私钥解密所述第二数据。

16、 根据权利要求 15所述的方法, 其特征在于, 所述服务器接收所述第二公钥后, 所述方法还包括:

所述服务器从所述 KGC接收密钥更新信息, 其中, 所述密钥更新信息用于指示所述 终端设备的吊销状态;

所述服务器根据所述第二公钥将所述第一数据转换成第二数据, 包括:

当所述密钥更新信息指示所述终端设备未被吊销时, 所述服务器根据所述第二公钥 和所述密钥更新信息生成所述转换密钥;


17、 根据权利要求 16所述的方法, 其特征在于, 所述服务器根据所述第二公钥和所 述密钥更新信息生成所述转换密钥, 包括:

所述服务器根据所述第二公钥、 所述密钥更新信息、 系统参数和身份参数生成所述 转换密钥, 其中, 所述系统参数是所述 KGC相关的公开信息, 所述身份参数是所述终端 设备的或所述终端设备的用户的标识信息。

18、 根据权利要求 17所述的方法, 其特征在于, 所述服务器根据所述转换密钥将所 述第一数据转换成第二数据, 包括:

所述服务器根据所述转换密钥、 系统参数、 所述终端设备的属性信息、 身份参数、 时间参数中的一项或多项, 将所述第一数据转换成所述第二数据, 其中, 所述系统参数 是所述 KGC相关的公开信息,所述身份参数是所述终端设备的或所述终端设备的用户的 标识信息, 所述时间参数用于指示所述服务器可以使用所述转换密钥的时间。

19、 根据权利要求 15至 18中任一项所述的方法, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

20、 一种数据处理的装置, 其特征在于, 包括: 处理单元和通信单元,

所述处理单元用于生成第一公钥和第一私钥; 以及通过所述通信单元向密钥生成中 心 KGC发送所述第一公钥, 以使得所述 KGC或服务器根据所述第一公钥生成第二公钥 或转换密钥; 以及通过所述通信单元接收所述服务器发送的第二数据, 所述第二数据是 所述服务器根据所述第二公钥或所述转换密钥对第一数据处理后生成的数据, 其中, 所 述第一数据是所述服务器获取的基于所述终端设备的属性结构加密的数据; 以及根据所 述第一私钥解密所述第二数据。

21、 根据权利要求 20所述的装置, 其特征在于, 通信单元还用于: 向所述 KGC发 送所述第一公钥和证明信息,所述证明信息用于指示所述终端设备存储有所述第一私钥。

22、 根据权利要求 20或 21所述的装置, 其特征在于, 所述处理单元具体用于: 根 据系统参数生成所述第一公钥和所述第一私钥, 其中, 所述系统参数为所述 KGC相关的 公开信息。

23、 根据权利要求 22所述的装置, 其特征在于, 所述处理单元具体用于: 根据所述 系统参数和所述第一私钥解密所述第二数据。 24、 根据权利要求 20至 23中任一项所述的装置, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

25、 一种数据处理的装置, 其特征在于, 包括: 处理单元和通信单元,

所述处理单元用于通过所述通信单元从终端设备接收第一公钥; 以及根据系统参数、 主密钥和所述 KGC的内部状态信息、 所述第一公钥、 所述终端设备的属性信息, 生成所 述第二公钥,其中,所述系统参数是所述 KGC相关的公开信息,所述主密钥是所述 KGC 的私钥; 以及通过所述通信单元向所述服务器发送所述第二公钥。

26、根据权利要求 25所述的装置,其特征在于,所述处理单元生成所述第二公钥后, 所述处理单元还用于根据所述第二公钥和密钥更新信息生成转换密钥或者错误提 示; 当所述密钥更新信息指示所述终端设备被吊销时, 所述处理单元根据所述第二公钥 和所述密钥更新信息生成所述错误提示; 当所述密钥更新信息指示所述终端设备未被吊 销时, 所述处理单元根据所述第二公钥和所述密钥更新信息生成所述转换密钥; 以及通 过所述通信单元向所述服务器发送所述转换密钥; 或者

所述处理单元还用于通过所述通信单元向所述服务器发送所述第二公钥和所述密钥 更新信息, 以便于所述服务器根据所述第二公钥和所述密钥更新信息生成所述转换密钥 或者所述错误提示。

27、 根据权利要求 25或 26所述的装置, 其特征在于, 所述处理单元还用于通过所 述通信单元从所述终端设备接收证明信息, 所述证明信息用于指示所述终端设备存储有 所述第一私钥; 以及根据所述证明信息确定生成所述第二公钥。

28、 根据权利要求 25至 27中任一项所述的装置, 其特征在于, 所述处理单元具体 用于: 根据所述第一公钥、 所述终端设备的属性信息、 系统参数、 主密钥、 所述装置的 内部状态信息中的一项或多项生成所述第二公钥和更新后的所述内部状态信息, 其中, 所述系统参数是所述处理单元相关的公开信息, 所述主密钥是所述处理单元的私钥。

29、 根据权利要求 28所述的装置, 其特征在于, 所述处理单元具体用于: 根据所述 第二公钥、 所述密钥更新信息、 所述系统参数、 身份参数中的一项或多项, 生成所述转 换密钥, 其中, 所述密钥更新信息指示所述终端设备未被吊销, 所述身份参数是所述终 端设备的或所述终端设备的用户的标识信息。

30、 根据权利要求 25至 29中任一项所述的装置, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

31、 一种数据处理的装置, 其特征在于, 包括: 处理单元和通信单元,

所述处理单元用于通过所述通信单元从密钥生成中心 KGC接收第二公钥; 其中, 所 述第二公钥是所述 KGC根据系统参数、 主密钥、 所述 KGC的内部状态信息、 所述第一 公钥、 所述终端设备的属性信息生成的, 其中, 所述系统参数是所述 KGC相关的公开信 息, 所述主密钥是所述 KGC的私钥; 以及

通过所述通信单元获取第一数据, 所述第一数据是基于所述终端设备的属性结构加 密的数据; 以及

根据所述第二公钥将所述第一数据转换成第二数据; 以及

通过所述通信单元向所述终端设备发送所述第二数据, 以便于所述终端设备根据所 述第一私钥解密所述第二数据。

32、 根据权利要求 31所述的装置, 其特征在于, 所述处理单元通过所述通信单元接 收所述第二公钥后, 所述处理单元还用于: 通过所述通信单元从所述 KGC接收密钥更新 信息; 当所述密钥更新信息指示所述终端设备被吊销时, 所述处理单元根据所述第二公 钥和所述密钥更新信息生成所述错误提示; 当所述密钥更新信息指示所述终端设备未被 吊销时, 所述处理单元根据所述第二公钥和所述密钥更新信息生成所述转换密钥; 以及 根据所述转换密钥将所述第一数据转换成所述第二数据。

33、 根据权利要求 32所述的装置, 其特征在于, 所述处理单元具体用于: 根据所述 第二公钥、 所述密钥更新信息、 系统参数、 身份参数中的一项或多项生成所述转换密钥, 其中, 所述系统参数是所述 KGC生成的公开信息, 所述身份参数是所述终端设备的或所 述终端设备的用户的标识信息。

34、 根据权利要求 33所述的装置, 其特征在于, 所述处理单元具体用于: 根据所述 转换密钥和系统参数、 所述终端设备的属性信息、 身份参数、 时间参数中的一项或多项, 将所述第一数据转换成所述第二数据,其中,所述系统参数是所述 KGC相关的公开信息, 所述身份参数是所述终端设备的或所述终端设备的用户的标识信息, 所述时间参数用于 指示所述装置可以使用所述转换密钥的时间。

35、 根据权利要求 31至 34中任一项所述的装置, 其特征在于,

所述第一公钥与所述第一私钥, 是公钥密码算法中相互匹配的一对公私钥。

一种数据处理的方法和装置 技术领域

本发明涉及通信领域 尤其涉及一种.数据处理的方法和装置。 背景技术

ABE ( Attribute-Based Encryption, 属性加密)是一种基于属性进行加密的数据处 理 方案:, ABE系统 能拥有大量数据用卢 (为了简洁, 以下, 简称为 "用卢" ) , 由于私 钥泄露或者風户离职等原因需要对 -一些用户进衧吊.销。间接吊翁是一种常用的 ABE吊销: 方法, 通¾ KGC ( Key Generation Center, 密钥生成申 ) 周期性地执:行密钥更新任务, 使得被吊销的用户无法:获得下一个周期内:的 钥, 从 使被吊销的用户无法解密数据。

当前, 用户需要周期性地联.系 KGC ^获取更新后的密钥, 因此, 密钥更新信息给用 户带来的开销较大。 同时, KGC 要随时在线以 ^通过一个安全信道将密钥信息发送给 : 用户, Li 密钥大小和系统内的用户数量相关。 这对 ABE系统的性能以及用:户的处理能 力都提出了较高的要求。 发明 容

有鉴于此 :5 本象明实施例提供了一种數据处理的方法和装 置 : , 通过在常规的 ABE系 统中引入一个不需可信的服务器, 使得由于 : 用户吊销而产生的密销更新等 务都可以代 理给谅服务器, 从而:減少了用户处理器的逸算量, 使得处理能:力有限的用户也可以快速 访问存储于云或者其它平台中的属性加密数据 。 同时无 使用安全信道.传输密钥, 降 了对 ABE系 ¾的性能要求。

一方面, 本发明实施例提供了一种数据处理的方法, 该方法包括: 终端设备生成第 公钥和第一私钥, 所迷第一公钥用于加密数据, 所迷第一私钥 J于解密所迷第一公 4月 加密的数据; 所迷终端设备向密钥生成中 'ii KGC发送所述第一公钥: 所迷第一公钥用于 所域 KGC或服务 S生成转换密钥,所述转换密钥用于所述服务 将基于所述终端设备的 属性結构加密的数据转换成基于所迷第一公钥 加密的数据, 其中,: 所迷属性:结构用予指 示访问数据需要满足的条件; 所迷终端设备接收所迷服务器复送:的第二數 , 所迷第二 数据是所述服务暴根椐所 ¾转换密餌对第一数据处理后生成的数椐:, 其中, 所迷第一数 据是所迷服务器获取的基于所述终端设备的属 性结构加密的数据; 所迷终端设备根据所 述第一私钥解密所 第二数据。

根据本发明实施例提供的数据处理的方法, 终端设备生成第一公钥和第一私钥, 第 一公钥用于加密数据, 第一私钥可以用 f解密 第一公钥加密的数据。 终端设备将第一 公钥发送给 KGC, 以便于 KGC或着服务器根据该第一公钥 i成转換密钥, 第一公钥嵌 套在该转换密钥内, 因此, 当服务器使用该转换密钥处理基于终端设备的 属性结构加密 的密文后, 生成的結果是第一公钥所加密的密文, 终端设备持有与运第 公钥配对的第 一私钥, 当终端设备接收到服务器发送的部分解密的密 文后, 可以根椐该第一私朝以及 解密算法进行解密 生威明文.。 由于第一私钥一直被终端设备所持有, 不需要向其它设 备发送 第一私钥,. 因此, 本发明实施例的数据处理.的方法无需使用安 信逸; :此外, 由于 K务器对第一数据进行处理后得到的结果仍是 文, 即使服务器与其¾设备进行合 谋, 其它设备也无法获取最终的明文。 因此, 本发明实施例的数据处理的方法对服务器 的安全性能也没有任何要求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设 备在根据第一私钥进行解密运算时只需执行一 次幂指运算即可获得明文, 避免了其它技 术方案中消耗大量计算资源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源利用率。

可选地, 所述终端设备向 KGC发送第一公钥, 包括: 所述终端设备向所述 KGC发 送所述第一公钥和证明信息, 所述证明信息用于指示所述终端设备存储有所 述第一私钥。

终端设备在向 KGC发送第一公钥时还可以向 KGC发送证明信息,谅证明信息用于 指示谅终端设备持有与第一公钥配对的第一私 钥, 这样, KGC就可以根据谅证明信息确 定生成转换密钥, 如果 KGC没有接收到读证明信息, 则 KGC可以认定第一公钥为非法 公钥, 并终止对第一公钥的后续处理, 从而可以提高 ABE系统的安全性能。

可选地, 所述终端设备生成第一公钥和第一私钥, 包括: 所述终端设备根据系统参 数和身份参数生成所述第一公钥和所述第一私 钥, 其中, 所述系统参数为所述 KGC生成 的公开信息, 所述身份参数为所述终端设备的标识信息。

可选地, 所述终端设备根据所述第一私钥解密所述第二 数据, 包括: 所述终端设备 根据所述系统参数、 所述身份参数和所述第一私钥解密所述第二数 据。

另一方面, 本发明实施例提供了一种数据处理的方法, 谅方法包括: 密钥生成中心 KGC从终端设备接收第一公钥, 所述第一公钥用于加密数据; 所述 KGC根据所述第一 公钥和所述终端设备的属性信息生成第二公钥 , 所述第二公钥用于服务器将基于所述终 端设备的属性结构加密的数据转换成基于所述 第一公钥加密的数据, 以便于所述终端设 备根据所述终端设备生成的第一私钥解密所述 基于所述第一公钥加密的数据, 其中, 所 述属性结构用于指示访问数据需要满足的条件 ;所述 KGC向所述服务器发送所述第二公 钥。

KGC接收到终端设备发送的第一公钥后, 可以基于读第一公钥以及谅终端设备的属 性生成第二公钥, 谅第二公钥是基于终端设备的属性的公钥, 可以解密基于终端设备的 属性加密的数据, 由于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所述终端 设备的属性加密的数据进行处理后生成的数据 为基于第一公钥加密的密文, 终端设备可 以利用终端设备所持有的第一私钥对谅基于第 一公钥加密的密文进行解密, 其中, 第一 私钥是与谅第一公钥配对的密钥, 可以用于解密基于第一公钥加密的数据。 本发明实施 例中, 终端设备的属性信息可以是终端设备的具体身 份信息, KGC还可以根据第一公钥 和终端设备的属性集生成第二公钥。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。

可选地, 所述 KGC生成所述第二公钥后, 所述方法还包括: 所述 KGC根据所述第二公钥和密钥更新信息生成转换 密钥或者错误提示, 所述密 钥更新信息用于指示所述终端设备的吊销状态 , 其中, 当所述密钥更新信息指示所述终 端设备被吊销时, 所述 KGC根据所述第二公钥和所述密钥更新信息生成 所述错误提示, 当所述密钥更新信息指示所述终端设备未被吊 销时,所述 KGC根据所述第二公钥和所述 密钥更新信息生成所述转换密钥, 所述转换密钥用于所述服务器将基于所述终端 设备的 属性加密的数据转换成基于所述第一公钥加密 的数据, 以便于所述终端设备根据所述终 端设备生成的第一私钥解密所述转换密钥转换 的结果;所述 KGC向所述服务器发送所述 第二公钥, 包括: 所述 KGC向所述服务器发送所述转换密钥; 或者

所述 KGC向所述服务器发送所述第二公钥和所述密钥 更新信息, 以便于所述服务 器根据所述第二公钥和所述密钥更新信息生成 所述转换密钥或者所述错误提示。

本发明实施例的数据处理的方法, 通过 KGC生成用于指示终端设备是否被吊销的 密钥更新信息, 并根据谅密钥更新信息和第二公钥生成转换密 钥或者错误结果, 从而可 以确保未被吊销的终端设备可以获取加密数据 , 被吊销的终端设备不能获取加密数据, 进而提高了系统的安全性能。

可选地, 所述 KGC生成所述第二公钥前, 所述方法还包括: 所述 KGC从所述终端 设备接收证明信息,所述证明信息用于指示所 述终端设备存储有所述第一私钥;所述 KGC 根据所述证明信息确定生成所述第二公钥。

终端设备在向 KGC发送第一公钥时还可以向 KGC发送证明信息, 该证明信息用于 指示谅终端设备持有与第一公钥配对的第一私 钥, 这样, KGC就可以根据谅证明信息确 定生成第二公钥, 如果 KGC没有接收到该证明信息, 则 KGC可以认定第一公钥为非法 公钥, 并终止对第一公钥的后续处理, 从而可以提高 ABE系统的安全性能。

可选地, 所述 KGC根据所述第一公钥和所述终端设备的属性信 息生成第二公钥, 包括: 所述 KGC根据所述第一公钥、 所述终端设备的属性信息、 系统参数、 主密钥和所 述 KGC的内部状态信息生成所述第二公钥和更新后 的所述内部状态信息,其中, 所述系 统参数是所述 KGC生成的公开信息, 所述主密钥是所述 KGC生成的私钥。

可选地, 所述 KGC根据所述第二公钥和所述密钥更新信息生成 所述转换密钥, 包 括: 所述 KGC根据所述第二公钥、 所述密钥更新信息、 所述系统参数和所述身份参数生 成所述转换密钥, 其中, 所述密钥更新信息指示所述终端设备未被吊销 。

再一方面, 本发明实施例提供了一种数据处理的方法, 谅方法包括: 服务器从密钥 生成中心 KGC接收第二公钥,所述第二公钥用于将基于终 端设备的属性结构加密的数据 转换成基于所述终端设备生成的第一公钥加密 的数据, 以便于所述终端设备根据所述终 端设备生成的第一私钥解密所述第一公钥加密 的数据, 其中, 所述属性结构用于指示访 问数据需要满足的条件; 所述服务器获取第一数据, 所述第一数据是基于所述终端设备 的属性结构加密的数据; 所述服务器根据所述第二公钥将所述第一数据 转换成第二数据, 所述第二数据为基于所述第一公钥加密的数据 ; 所述服务器向所述终端设备发送所述第 二数据, 以便于所述终端设备根据所述第一私钥解密所 述第二数据。

本发明实施例提供的数据处理的方法中, 第二公钥为 KGC基于第一公钥和终端设 备的属性信息生成的公钥, 第二公钥是基于终端设备的属性的公钥, 可以解密基于终端 设备的属性加密的数据, 由于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所 述终端设备的属性加密的数据进行处理后生成 的数据为基于第一公钥加密的密文, 终端 设备可以利用终端设备所持有的第一私钥对第 二数据进行解密, 其中, 第一私钥是与终 端设备生成的密钥, 可以用于解密基于第一公钥加密的数据。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。

可选地,所述服务器接收所述第二公钥后,所 述方法还包括:所述服务器从所述 KGC 接收密钥更新信息, 其中, 所述密钥更新信息用于指示所述终端设备的吊 销状态; 所述 服务器根据所述第二公钥和所述密钥更新信息 生成转换密钥或者错误提示, 其中, 当所 述密钥更新信息指示所述终端设备被吊销时, 所述服务器根据所述第二公钥和所述密钥 更新信息生成所述错误提示, 当所述密钥更新信息指示所述终端设备未被吊 销时, 所述 服务器根据所述第二公钥和所述密钥更新信息 生成所述转换密钥, 所述转换密钥用于所 述服务器将基于所述终端设备的属性结构加密 的数据转换成基于所述第一公钥加密的数 据, 以便于所述终端设备根据所述终端设备生成的 第一私钥解密所述第一公钥加密的数 据; 所述服务器根据所述第二公钥将所述第一数据 转换成第二数据, 包括: 所述服务器 根据所述转换密钥将所述第一数据转换成所述 第二数据。

本发明实施例的数据处理的方法, 通过接收 KGC生成的用于指示终端设备是否被 吊销的密钥更新信息, 并根据读密钥更新信息和第二公钥生成转换密 钥或者错误结果, 从而可以确保未被吊销的终端设备可以获取加 密数据, 被吊销的终端设备不能获取加密 数据, 进而提高了系统的安全性能。

可选地, 所述服务器根据所述第二公钥和所述密钥更新 信息生成所述转换密钥, 包 括: 所述服务器根据所述第二公钥、 所述密钥更新信息、 系统参数和身份参数生成所述 转换密钥, 其中, 所述系统参数是所述 KGC生成的公开信息, 所述身份参数是所述终端 设备的标识信息。

可选地, 所述服务器根据所述转换密钥将所述第一数据 转换成第二数据, 包括: 所 述服务器根据所述转换密钥、 系统参数、 所述终端设备的属性信息、 身份参数和时间参 数将所述第一数据转换成所述第二数据,其中 , 所述系统参数是所述 KGC生成的公开信 息, 所述身份参数是所述终端设备的标识信息, 所述时间参数用于指示所述服务器可以 使用所述转换密钥的时间。

再一方面, 本发明实施例提供了一种数据处理的装置, 该装置可以实现上述方面所 涉及方法中终端设备所执行的功能, 所述功能可以通过硬件实现, 也可以通过硬件执行 相应的软件实现。 所述硬件或软件包括一个或多个上述功能相应 的单元或模块。

在一种可能的设计中, 该装置的结构中包括处理器和通信接口, 该处理器被配置为 支持该装置执行上述方法中终端设备相应的功 能。 谅通信接口用于支持谅装置与其他装 置之间的通信。 谅装置还可以包括存储器, 谅存储器用于与处理器耦合, 其保存谅装置 必要的程序指令和数据。 再一方面, 本发明实施例提供了一种数据处理的装置, 该装置可以实现上述方面所 涉及方法中 KGC所执行的功能, 所述功能可以通过硬件实现, 也可以通过硬件执行相应 的软件实现。 所述硬件或软件包括一个或多个上述功能相应 的单元或模块。

在一种可能的设计中, 读装置的结构中包括处理器和通信接口, 读处理器被配置为 支持谅装置执行上述方法中 KGC相应的功能。读通信接口用于支持谅装置与 其他装置之 间的通信。 谅装置还可以包括存储器, 读存储器用于与处理器耦合, 其保存该装置必要 的程序指令和数据。

再一方面, 本发明实施例提供了一种数据处理的装置, 读装置可以实现上述方面所 涉及方法中服务器所执行的功能, 所述功能可以通过硬件实现, 也可以通过硬件执行相 应的软件实现。 所述硬件或软件包括一个或多个上述功能相应 的单元或模块。

在一种可能的设计中, 读装置的结构中包括处理器和通信接口, 读处理器被配置为 支持读装置执行上述方法中服务器相应的功能 。 谅通信接口用于支持谅装置与其他装置 之间的通信。 该装置还可以包括存储器, 该存储器用于与处理器耦合, 其保存谅装置必 要的程序指令和数据。

再一方面, 本发明实施例提供了一种数据处理的装置, 该装置包括上述方面所述的


再一方面, 本发明实施例提供了一种通信系统, 该通信系统包括上述方面所述的终 端设备、 KGC和服务器。

再一方面, 本发明实施例提供了一种计算机存储介质, 用于储存为上述终端设备所 用的计算机软件指令, 其包含用于执行上述方面所设计的程序。

再一方面, 本发明实施例提供了一种计算机存储介质, 用于储存为上述 KGC所用 的计算机软件指令, 其包含用于执行上述方面所设计的程序。

再一方面, 本发明实施例提供了一种计算机存储介质, 用于储存为上述服务器所用 的计算机软件指令, 其包含用于执行上述方面所设计的程序。

相比于现有技术, 根据本发明实施例提供的数据处理的方法, 终端设备不需要向其 它设备发送完全解密密文所需要的密钥, 因此, 本发明实施例的数据处理的方法无需使 用安全信道; 此外, 由于服务器对第一数据进行处理后得到的结果 仍是密文, 即使服务 器与其它设备进行了合谋, 其它设备也无法获取最终的明文, 因此, 本发明实施例的数 据处理的方法对服务器的安全性能也没有任何 要求; 再次, 本发明实施例的第一私钥可 以是一个常数, 终端设备在根据第一私钥进行解密运算时只需 执行一次幂指运算即可获 得明文, 避免了其它技术方案中消耗大量计算资源的双 线性对运算, 从而降低了对终端 设备的处理能力的需求, 提高了终端设备的资源利用率。 附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对本发明实施例中所需要使用 的附图作简单地介绍, 显而易见地, 下面所描述的附图仅仅是本发明的一些实施例 , 对 于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得 其他的附图。

图 1是适用本发明实施例的一种可能的系统架构 示意图;

图 2是适用本发明实施例的 KUNodes算法的示意性图; 图 3是本发明实施例提供的一种数据处理的方法 示意图;

图 4是本发明实施例提供的另一种数据处理的方 的示意图;

图 5是本发明实施例提供的再一种数据处理的方 的示意图;

图 6是适用本发明实施例的一种二叉树的示意图

图 7是适用本发明实施例的另一种二叉树的示意 ;

图 8A是本发明实施例提供的一种可能的终端设备 示意图;

图 8B是本发明实施例提供的另一种可能的终端设 的示意图;

图 9A是本发明实施例提供的一种可能的 KGC的示意图;

图 9B是本发明实施例提供的另一种可能的 KGC的示意图;

图 10A是本发明实施例提供的一种可能的服务器的 示意图;

图 10B是本发明实施例提供的另一种可能的服务器 的示意图。 具体实施方式

为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例中 的附图, 对本发明实施例中的技术方案进行描述。

本发明实施例描述的系统架构以及业务场景是 为了更加清楚的说明本发明实施例的 技术方案, 并不构成对本发明实施例提供的技术方案的限 定, 本领域普通技术人员可知, 随着系统架构的演变和新业务场景的出现, 本发明实施例提供的技术方案对于类似的技 术问题, 同样适用。

图 1 为本发明实施例提供的一种 SR-ABE ( Server-Aided Revocable Attribute-Based

Encryption, 服务器帮助下的可吊销属性加密)的系统架构 的示意图。 如图 1所示, 该系 统架构包括: 终端设备(即, 数据用户) 110、 KGC120、 服务器 130、 云 140和数据提 供端 150, 谅系统架构的一种可能工作流程如下所述。

步骤 1, KGC120在系统初始化时运行 Setup (初始化) 算法, 生成系统公开参数; 步骤 2, 终端设备 110运行 UserKG (用户密钥生成)算法生成一对用户公私钥对 其中, 谅用户私钥可以解密读用户公钥加密的数据, 所述终端设备 110保存用户私钥, 将用户公钥发送给 KGC120;

步骤 3, KGC120根据所述用户公钥、 系统公开参数、 终端设备 110的属性信息以及 PubKG (公钥生成) 算法生成一个基于属性的公钥, 并将读基于属性的公钥发送给服务 器 130;

步骤 4, KGC120周期性地执行 TKeyUp (密钥更新)算法为终端设备 110生成密钥 更新信息, 并将谅密钥更新信息发送给服务器 130;

步骤 5, 数据提供端 150运行 Encrypt (加密)算法对其提供的数据按照某个设定的 存取结构和时间段值进行加密, 并将加密生成的密文上传到云 140, 其中, 谅存取结构是 基于属性的存取结构;

步骤 6, 终端设备 110从云 140获取密文, 并将谅密文转发给服务器 130;

步骤 7,如果密钥更新信息指示终端设备 110未被吊销, 则服务器 130可以根据所述 基于属性的公钥和所述密钥更新信息通过 TranKG (转换密钥生成)算法生成转换密钥, 谅转换密钥用于处理所述密文;

步骤 8,服务器 130根据谅转换密钥运行 Transform (转换)算法,将从终端设备 110 获取的密文进行部分解密, 并将部分解密的结果发送给终端设备 110, 其中, 终端设备 110的属性满足所述密文的存取结构的要求;

步骤 9, 终端设备 110根据所保存的用户私钥运行 Decrypt (解密) 算法, 将部分解 密的结果进行完全解密生成明文;

步骤 10, 如果终端设备 110需要被吊销, 则 KGC120可以运行 Revoke (吊销)算法 生成更新后的密钥更新信息, 谅更新后的密钥更新信息指示终端设备 110 已被吊销, 使 得服务器无法根据基于终端设备 110 的属性的公钥生成转换密钥, 从而使终端设备 110 无法继续获取数据。

在图 1所示的系统架构中, 由于转换密钥是基于终端设备 110的用户公钥生成的密 钥, 因此, 服务器 130利用转换密钥对基于属性加密的密文进行转 换处理后, 生成的部 分解密的密文是基于所述用户公钥加密的密文 , 只能通过终端 110持有的用户私钥来解 密所述部分解密的密文, 这样, 即使部分解密的密文被其它设备获取, 其它设备也无法 解密, 从而保证了数据的安全。

上述适用本发明实施例的系统架构仅是举例说 明, 本发明实施例还可应用于其它系 统架构, 例如, 图 1中所示的 KGC120和服务器 130在某些场景中可以作为一台硬件设 备的不同功能模块存在, 再例如, 终端设备 110可以向服务器 130发送指示信息, 谅指 示信息用于指示终端设备 110所需的密文, 服务器 130可以根据谅指示信息从云 140中 获取相应的密文。

还应理解, 图 1示出的各个设备或模块的数量和名称仅是示 性举例, 不代表本发 明实施例的应用场景局限于图 1所示的场景。

为了方便理解本发明实施例, 下面, 首先对与本发明相关的要素进行简要介绍。 双线性配对 ( Bilinear Pairing ): G和 G ; 是两个阶为素数 的乘法群, g是 G的生 成元。 一个可以进行有效计算的映射 ^GxG 如果满足以下条件, 就称其为一个双 线性配对映射:

双线性性: 对任何 a eZ:, g a ,g ft ) = g,g) a6

非退化性: g, g)≠ 1,这 1指 的单位元。

判断性( 1 )假设: 对于任何概率多项式时间算法, 给定 =

g, g g l ' {g ,b ' \ ^ie[2q]je[q],i≠q + l},

{g a ' ,b ' \ ^ie[2qlje[qli≠q + \},

{g a ' bj/b " I e [2q],j e [q fe [q],j≠ f} '

{ v¾', v I Vi - e [q] e [qlfe [q] /} ,

谅算法难以区分( , ^( + ' )和( ,2)。 这里 g是一个给定的整数, g是群 G的生 成元, 而 Z EG 1 a, 〃, b eZ^是独立、 均匀选取的随机数, e:GxG→G 1 是一个 可计算的双线性配对映射。

存取结构: 记 P={ , }为一主体集合。 一个族 A 2 W ' 'W 称为是单调的是指 它满足以下条件: 对于 i 5 的任意两个子集 和 C, 只要 £Α且 C, 就有 CeA。 一个 单调的存取结构就是一个单调的、 P的某非空子集构成的族 A, 即 A 2 w ' '^ \{0}。 族 A中的元素称为授权集, P的子集但不是 A的元素则称为非授权集。

LSSS ( Linear Secret Sharing Scheme , 线性秘密共享): 记 ^{Pj,…, Ρ„}为一主体集 合, Μ为一个 /行《列的矩阵, { 1, ..., /}→Ρ 是一个把矩阵 Μ的每一行映射到 Ρ中某 一主体的标记函数。主体集 i 5 上的一个秘密共享方案 Π就是满足以下条件的、 Z p 上的一 个线性 ¾^密共享:

P中每个主体的秘密份额是 Z p 上的一个向量;

存在一个 /行 w列的矩阵 M (称为秘密共享 Π的份额生成矩阵), 使得对于 x = 1, ..., I, 矩阵 M的第 X行通过标记函数 p对应于主体 ρ(0。 对于需要共享的秘密 i e 2^和随机选 取的数 r 2 , ,记列向量 =(〃,r 2 , r„), 则 就是秘密共享方案 Π下分享秘密〃 所得到的/个秘密共享份额。 而 (Μϊ? 就是主体 (0得到的共享份额。

每个 LSSS都具有线性恢复的性质。假设 Π是对应于某存取结构 A的线性秘密共享。 对于一个授权集 A 定义指标集/ ={ | p(0 e ^ }£ { l, /}。 那么向量 (1, 0, 0)属于矩阵

M按指标 /索引的所有行所扩充形成的空间内,且存在 数集 { Wi £ Z p }ieii :对于根据 Π生成的某个秘密 μ的任何有效秘密共享份额 } , 秘密 μ都可以按 ^^ν, = 恢复出 来。 而且, 这些常数 { wj可以在以份额生成矩阵 M大小的多项式时间内计算出来。

另一方面, 对一个非授权集 ', 就不存在这样的常数集 { ^ }。 进一步, 如果令 Γ ={ζ·| ρ (0 £ A 那么存在一个向量 >H吏得其首个分量 Wl 可以是 ^中的任何非零元素但对 任何 € Γ, <M U w > = 0 , 这里 Mi是矩阵 M的第 /行。

访问控制策略也可以用单调的布尔公式来描述 。 线性秘密共享 (LSSS)存取结构更一 般化, 而且可从布尔公式表示导出。 也就是说, 有标准的方法将任何单调的布尔公式转 化为对应的线性秘密共享份额生成矩阵 M。 同时, 布尔公式可以表示为访问控制树, 其 中内部节点对应于 AND门和 OR门, 而叶节点则对应于属性。 对应 LSSS秘、密共享份额 生成矩阵 M的行数就是访问控制树叶节点数, 也即属性总数。

二叉树和 KUNodes算法

如图 2所示, 记 BT为有 W个叶节点的二叉初 对应于 W个用户。 令 root为二叉树 BT的根节点。 对叶节点 Θ, 用 Path ( 表示从 Θ到 root路径上所有节点的集合(包含 Θ和 root本身)。 若 不是叶节点, 则用 和 分别表示 的左、 右子节点。 假设树中的节点 都唯一编码为字符串, 而树由其节点的表述来定义。 算法 KUNodes用来计算需要进行密 钥更新的最小节点集以使得只有时间段 t 未被吊销的用户才能解密该时间段内生成的密 文。 该算法以二叉树 BT、 吊销列表 r/及时间段值 t为输入, 输出 BT中的一个最小节点 集使得吊销列表 r/ 中的任何节点没有任何祖先 (包含节点自己)在该集合内, 而其他节点 (即所有未吊销节点)有且仅有一个祖先 (包含节点自己)在该集合内。 注意时间段 t时的吊 销列表 rl包含所有该时间段及之前被吊销的所有用户 图 2中给出了 KUNodes算法的工 作示意。 谅算法首先将所有被吊销节点的所有祖先节点 标记为被吊销节点, 然后输出这 些被吊销节点的未被吊销子节点。 KUNodes严格描述如下:

KUNodes(BT, rl, t)

V (0 ) G rl, if t i < t , then add Path(^) to X. V χ€. Χ, ϊΐχ ί g X , then add x t to 7; if χ ί , then add x r to Y.

If 7 = 0, then add root to Y.

Return Y.

下面, 将结合图 3至图 5, 详细描述本发明实施例提供的数据处理的方法 。

图 3示出了根据本发明一实施例的数据处理的方 的示意性流程图, 如图 3所示, 谅方法 300包括:

S310 , 终端设备生成第一公钥和第一私钥, 所述第一公钥用于加密数据, 所述第一 私钥用于解密所述第一公钥加密的数据;

5320 , 所述终端设备向密钥生成中心 KGC发送所述第一公钥, 所述第一公钥用于 所述 KGC或服务器生成转换密钥,所述转换密钥用于 所述服务器将基于所述终端设备的 属性结构加密的数据转换成基于所述第一公钥 加密的数据, 其中, 所述属性结构用于指 示访问数据需要满足的条件;

S330 , 所述终端设备接收所述服务器发送的第二数据 , 所述第二数据是所述服务器 根据所述转换密钥对第一数据处理后生成的数 据, 其中, 所述第一数据是所述服务器获 取的基于所述终端设备的属性结构进行加密生 成的数据;

S340 , 所述终端设备根据所述第一私钥解密所述第二 数据。

本发明实施例中, 终端设备可以是物联网 (Internet of Things , IoT ) 中的终端设备, 也可以机器与机器 (Machine to Machine , M2M )通信系统中的终端设备或无线传感器 ( Wireless Sensor Network, WSN ) 网络中的终端设备, 还可以是其它类型的终端设备。

终端设备生成的第一公钥和第一私钥成对出现 , 第一公钥可以用于加密数据, 第一 私钥可以用于解密读第一公钥加密的数据。 终端设备将第一公钥发送给 KGC , 以便于 KGC或者服务器根据该第一公钥生成转换密钥, 谅转换密钥是基于终端设备的属性(终 端设备的属性基于终端设备的用户的属性, 例如, 用户被吊销时, 终端设备的属性也随 之改变) 的密钥, 并且第一公钥嵌套在该转换密钥内, 因此, 当服务器使用该转换密钥 处理基于终端设备的属性结构加密的密文(即 , 第一数据)后, 生成的结果是与第一公 钥绑定的部分解密的密文 (即, 第二数据) , 实际上谅部分解密的密文是被第一公钥所 加密的密文, 终端设备持有与该第一公钥配对的第一私钥, 当终端设备接收到服务器发 送的部分解密的密文后, 可以根据该第一私钥以及解密算法进行解密, 生成明文。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。

可选地, 所述终端设备向 KGC发送第一公钥, 包括:

5321 , 所述终端设备向所述 KGC发送所述第一公钥和证明信息, 所述证明信息用 于指示所述终端设备存储有所述第一私钥。

终端设备在向 KGC发送第一公钥时还可以向 KGC发送证明信息, 该证明信息用于 指示谅终端设备持有与第一公钥配对的第一私 钥, 这样, KGC就可以根据谅证明信息确 定生成转换密钥, 如果 KGC没有接收到该证明信息, 则 KGC可以认定第一公钥为非法 公钥, 并终止对第一公钥的后续处理, 从而可以提高 ABE系统的安全性能。

可选地, 所述终端设备生成第一公钥和第一私钥, 包括-,

S31 1 , 所述终端设备根据系统参数和身份参数生成所 述第一公钥和所述第一私钥, 其中, 所述系统参数为所述 KGC生成的公开信息, 所述身份参数为所述终端设备的标识 信息。

系统参数是 KGC生成的公开信息, 系统中任意一个设备都可以获取到, 例如, 谅系 统参数可以是 KGC输入安全参数 A并执行 ABE的系统设定算法生成的, (par, msk) ABE.Setup( l A ) , 其中, par是系统参数, m 是主密钥, ABE. Setup为基于属性加密的系 统设定算法。

终端设备可以根据系统公开参数 par、 用户身份 (即, 身份参数) 以及 ElGamal 密钥生成算法生产终端设备密钥对 (即, 第一公钥和第一私钥) : skd, pk id ) ElGamal.KeyGen(l A ),其中, s ( /为第一私钥, pk id 为第一公钥, ElGamal.KeyGen为 ElGamal 密钥生成算法。

可选地, 所述终端设备根据所述第一私钥解密所述第二 数据, 包括:

S341 , 所述终端设备根据系统参数、 身份参数和所述第一私钥解密所述第二数据, 其中, 所述系统参数为所述 KGC生成的公开信息, 所述身份参数为所述终端设备的标识 信息。

终端设备可以根据系统参数 par, 用户身份 id, 第一私钥 sk id 、 转换密文(即, 第二 数据)CT,以及 ElGamal解密算法输出明文(即,目标数据 ): m' <- ElGamal. Dec( ¾ A CT,), 其中, ElGamal.Dec为 ElGamal解密算法, m'为明文。

上述实施例仅是举例说明, 本发明实施例不限于此, 任何可以生成第一公钥、 第一 私钥的算法以及解密第二数据的算法都落入本 发明的保护范围。

本发明实施例的数据处理的方法, 终端设备生成公私钥对, 将公钥发送给 KGC , 以 便于生成转换密钥, 转换密钥用于所述服务器将基于所述终端设备 的属性加密的数据转 换成基于所述公钥加密的数据, 只有谅终端设备可以利用自己持有的私钥解密 所述基于 所述公钥加密的数据, 从而, 无需使用安全信道传输私钥, 对服务器的安全性能也无要 求, 此外, 由于终端设备所持有的私钥可以为一常数, 从而降低了对终端设备的处理能 力的需求, 提高了终端设备的资源利用率。

上面结合图 3从终端设备的角度详细描述了根据本发明实 例的数据处理的方法, 下面, 将结合图 4, 从 KGC的角度详细描述根据本发明实施例的数据处 理的方法。

图 4示出了根据本发明另一实施例的数据处理的 法的示意性流程图,如图 4所示, 谅方法 400包括:

S410 , 密钥生成中心 KGC从终端设备接收第一公钥, 所述第一公钥用于加密数据;

S420 , 所述 KGC根据所述第一公钥和所述终端设备的属性信 息生成第二公钥, 所 述第二公钥用于服务器将基于所述终端设备的 属性结构加密的数据转换成基于所述第一 公钥加密的数据, 以便于所述终端设备根据所述终端设备生成的 的第一私钥解密所述基 于所述第一公钥加密的数据, 其中, 所述属性结构用于指示访问数据需要满足的条 件; S430 , 所述 KGC向所述服务器发送所述第二公钥。 KGC接收到终端设备发送的第一公钥后, 可以基于该第一公钥以及谅终端设备的属 性生成第二公钥, 谅第二公钥是基于终端设备的属性的公钥, 可以解密基于终端设备的 属性加密的数据, 由于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所述终端 设备的属性加密的数据进行处理后生成的数据 为基于第一公钥加密的密文, 终端设备可 以利用终端设备所持有的第一私钥对谅基于第 一公钥加密的密文进行解密, 其中, 第一 私钥是与谅第一公钥配对的密钥, 可以用于解密基于第一公钥加密的数据。 本发明实施 例中, 终端设备的属性信息可以是终端设备的具体身 份(id )信息, KGC还可以根据第 一公钥和终端设备的属性集(即, 多个属性的集合) 生成第二公钥。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送读第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。

可选地, 所述 KGC生成所述第二公钥后, 所述方法还包括:

S421 , 所述 KGC根据所述第二公钥和密钥更新信息生成转换 密钥或者错误提示, 所述密钥更新信息用于指示所述终端设备的吊 销状态, 其中, 当所述密钥更新信息指示 所述终端设备被吊销时,所述 KGC根据所述第二公钥和所述密钥更新信息生成 所述错误 提示, 当所述密钥更新信息指示所述终端设备未被吊 销时, 所述 KGC根据所述第二公钥 和所述密钥更新信息生成所述转换密钥, 所述转换密钥用于所述服务器将基于所述终端 设备的属性加密的数据转换成基于所述第一公 钥加密的数据, 以便于所述终端设备根据 所述终端设备生成的第一私钥解密所述转换密 钥转换的结果;所述 KGC向所述服务器发 送所述第二公钥, 包括: S422, 所述 KGC向所述服务器发送所述转换密钥; 或者

S423 , 所述 KGC向所述服务器发送所述第二公钥和所述密钥 更新信息, 以便于所 述服务器根据所述第二公钥和所述密钥更新信 息生成所述转换密钥或者所述错误提示。

如果终端设备当前为未被吊销状态, 则 KGC可以根据指示终端设备未被吊销的吊 销列表生成密钥更新信息, 谅密钥更新信息用于指示终端未被吊销, 并根据第二公钥和 谅密钥更新信息生成转换密钥, 读转换密钥仍是基于终端设备的属性的密钥, 并且嵌套 有第一公钥, KGC将转换密钥发送给服务器, 服务器可以利用该转换密钥将基于所述终 端设备的属性加密的数据转换成基于所述第一 公钥加密的数据, 以便于所述终端设备根 据所述终端设备生成的的第一私钥解密所述转 换密钥转换的结果。

或者, KGC也可以将第二公钥和指示终端设备未被吊销 的密钥更新信息发送给服务 器, 以便于服务器根据第二公钥和该密钥更新信息 生成所述转换密钥。

如果终端设备当前为被吊销状态, 则 KGC可以根据指示终端设备被吊销的吊销列 表生成密钥更新信息, 所述密钥更新信息用于指示终端设备已被吊销 , 则 KGC根据谅密 钥更新信息和第二公钥生成错误提示。

或者, KGC 也可以将第二公钥和指示终端设备被吊销的密 钥更新信息发送给服务 器, 以便于服务器根据第二公钥和读密钥更新信息 生成所述错误提示。 本发明实施例的数据处理的方法, 通过 KGC生成用于指示终端设备是否未被吊销 的密钥更新信息, 并根据谅密钥更新信息和第二公钥生成转换密 钥, 从而可以确保未被 吊销的终端设备可以获取加密数据, 被吊销的终端设备不能获取加密数据, 进而提高了 系统的安全性能。

可选地, 所述 KGC生成所述第二公钥前, 所述方法 400还包括:

541 1 , 所述 KGC从所述终端设备接收证明信息, 所述证明信息用于指示所述终端 设备存储有所述第一私钥;

5412 , 所述 KGC根据所述证明信息确定生成所述第二公钥。

终端设备在向 KGC发送第一公钥时还可以向 KGC发送证明信息, 读证明信息用于 指示谅终端设备持有与第一公钥配对的第一私 钥, 这样, KGC就可以根据谅证明信息确 定生成第二公钥, 如果 KGC没有接收到读证明信息, 则 KGC可以认定第一公钥为非法 公钥, 并终止对第一公钥的后续处理, 从而可以提高 ABE系统的安全性能。

可选地, 所述 KGC根据所述第一公钥和所述终端设备的属性信 息生成第二公钥, 包括:

S426 , 所述 KGC根据所述第一公钥、 所述终端设备的属性信息、 系统参数、 主密 钥和所述 KGC的内部状态信息生成所述第二公钥和更新后 的所述内部状态信息, 其中, 所述系统参数是所述 KGC生成的公开信息, 所述主密钥是所述 KGC生成的私钥。

KGC可以在初始化时生成系统参数 par和主密钥 msk, 例如, 终端设备输入安全参 数义, 并执行 ABE的系统设定算法: (par, msk) <r ABE. Setup(l ) , 其中, ABE. Setup为基 于属性加密的系统设定算法。 另外, 谅算法准备一个初始为空吊销列表 r/和状态信息 rf。 最后输出 (p r, msk, rl, sf)。

如果 KGC确定生成第二公钥, 则可以按照如下方法生成第二公钥: 输入系统参数 par, 主密钥 msk, 第一公钥≠ id , 一个属性集合 (即, 包括终端设备的多个属性信息的 集合) 和 KGC的内部状态 st, 首先运行 ABE的密钥生成算法来获得中间密钥 sk AJd ABE.KeyGen(m^ ^ , id, st) ,其中, ABE.KeyGen为基于属性加密的密钥生成算法, 然后, 用 ElGamal加密算法来加密中间密钥, 然后输出终端设备的属性密钥 (即, 第二公钥) : pk id A ElGamal.Enc( ¾ A sk A d ) , 其中, ElGamal.Enc 为 ElGamal加密算法, ElGamal加 密算法可以加密中间密钥 的全部内容, 提高安全性能, 也可以只加密中间密钥 sk A 的其中一部分, 减轻 KGC的运算负担。

可选地, 所述 KGC根据所述第二公钥和所述第一密钥更新信息 生成所述转换密钥, 包括:

S427, 所述 KGC根据所述第二公钥、 所述第一密钥更新信息、 所述系统参数和所 述身份参数生成所述转换密钥, 其中, 所述密钥更新信息指示所述终端设备未被吊销 。

KGC可以通过如下方法生成第一密钥更新信息: 输入系统参数 /rar, 主密钥 msk, 时间段值 t, 吊销列表 rZ和内部状态 st, 谅算法运行 ABE的密钥更新算法, 输出第一密 钥更新信息 tku t <r ABE.KeyUpdate(m , rl, t, st) , 其中, ABE.KeyUpdate为基于属性加密 的密钥更新算法, 所述吊销列表 rZ包括所述终端设备, 内部状态 st会被密钥更新算法所 更改。

进而 KGC可以通过如下方法生成转换密钥: 输入系统参数 par, 用户身份 (即, 身份参数) , 第二密钥; 和第一密钥更新信息 ί½,, 输出转换密钥 ί = φ /, i½ f )。 上述实施例仅是举例说明, 本发明实施例不限于此, 任何可以生成第二公钥、 第一 密钥更新信息以及转换密钥的算法都落入本发 明的保护范围。

本发明实施例的数据处理的方法, KGC接收终端设备发送的第一公钥, 并根据第一 公钥生成基于终端设备的属性的第二公钥, 从而可以将基于所述终端设备的属性加密的 数据转换成基于所述第一公钥加密的数据, 只有谅终端设备可以利用自己持有的第一私 钥解密所述基于所述第一公钥加密的数据, 从而, 无需使用安全信道传输私钥, 对服务 器的安全性能也无要求, 此外, 由于终端设备所持有的私钥可以为一常数, 从而降低了 对终端设备的处理能力的需求, 提高了终端设备的资源利用率。

上面结合图 4从 KGC的角度详细描述了根据本发明实施例的数据 处理的方法,下面, 将结合图 4, 从服务器的角度详细描述根据本发明实施例的 数据处理的方法。

图 5示出了根据本发明再一实施例的数据处理的 法的示意性流程图,如图 5所示, 谅方法 500包括:

S510, 服务器从密钥生成中心 KGC接收第二公钥, 所述第二公钥用于将基于终端 设备的属性结构加密的数据转换成基于所述终 端设备生成的第一公钥加密的数据, 以便 于所述终端设备根据所述终端设备生成的第一 私钥解密所述第一公钥加密的数据,其中, 所述属性结构用于指示访问数据需要满足的条 件;

S520, 所述服务器获取第一数据, 所述第一数据是基于所述终端设备的属性结构 加 密的数据;

S530, 所述服务器根据所述第二公钥将所述第一数据 转换成第二数据, 所述第二数 据为基于所述第一公钥加密的数据;

S540, 所述服务器向所述终端设备发送所述第二数据 , 以便于所述终端设备根据所 述第一私钥解密所述第二数据。

本发明实施例中, 第二公钥为 KGC基于第一公钥和终端设备的属性信息生成的 公 钥, 第二公钥是基于终端设备的属性的公钥, 可以解密基于终端设备的属性加密的数据, 由于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所述终端设备的属性加密 的 数据 (即, 第一数据)进行处理后生成的数据为基于第一 公钥加密的密文 (即, 第二数 据) , 终端设备可以利用终端设备所持有的第一私钥 对第二数据进行解密, 其中, 第一 私钥是终端设备生成的与谅第一公钥配对的密 钥, 可以用于解密基于第一公钥加密的数 据。

在本发明实施例中,第二公钥可以是 KGC基于第一公钥和终端设备的属性信息生成 的公钥,也可以是 KGC基于第一公钥、 终端设备的属性信息和密钥更新信息生成的公 钥 (也可称为 "转换密钥" ) , 其中该密钥更新信息用于指示终端设备未被吊 销。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。 可选地, 所述服务器接收所述第二公钥后, 所述方法 500还包括:

5511 , 所述服务器从所述 KGC接收密钥更新信息, 其中, 所述密钥更新信息用于指 示所述终端设备的吊销状态;

5512 , 所述服务器根据所述第二公钥和所述密钥更新 信息生成转换密钥或者错误提 示, 其中, 当所述密钥更新信息指示所述终端设备被吊销 时, 所述服务器根据所述第二 公钥和所述密钥更新信息生成所述错误提示, 当所述密钥更新信息指示所述终端设备未 被吊销时, 所述服务器根据所述第二公钥和所述密钥更新 信息生成所述转换密钥, 所述 转换密钥用于所述服务器将基于所述终端设备 的属性结构加密的数据转换成基于所述第 一公钥加密的数据, 以便于所述终端设备根据所述终端设备生成的 第一私钥解密所述第 一公钥加密的数据;

所述服务器根据所述第二公钥将所述第一数据 转换成第二数据, 包括:

S531 , 所述服务器根据所述转换密钥将所述第一数据 转换成所述第二数据。

如果终端设备当前为未被吊销状态, 则 KGC可以根据指示终端设备未被吊销的吊 销列表生成密钥更新信息, 谅密钥更新信息用于指示终端未被吊销, 服务器可以根据第 二公钥和谅密钥更新信息生成转换密钥, 该转换密钥仍是基于终端设备的属性的密钥, 并且嵌套有第一公钥, 服务器可以利用该转换密钥将基于所述终端设 备的属性加密的数 据转换成基于所述第一公钥加密的数据, 以便于所述终端设备根据所述终端设备生成的 的第一私钥解密所述转换密钥转换的结果。

如果终端设备当前为被吊销状态, 则 KGC可以根据指示终端设备被吊销的吊销列 表生成密钥更新信息, 所述密钥更新信息用于指示终端设备已被吊销 , 服务器可以根据 谅密钥更新信息和第二公钥生成错误提示。

本发明实施例的数据处理的方法, 通过接收 KGC生成的用于指示终端设备未被吊 销的密钥更新信息, 并根据谅密钥更新信息和第二公钥生成转换密 钥, 从而可以确保未 被吊销的终端设备可以获取加密数据, 被吊销的终端设备不能获取加密数据, 进而提高 了系统的安全性能。

可选地, 所述服务器根据所述第二公钥和所述密钥更新 信息生成所述转换密钥, 包 括:

S515 , 所述服务器根据所述第二公钥、 所述密钥更新信息、 系统参数和身份参数生 成所述转换密钥, 其中, 所述系统参数是所述 KGC生成的公开信息, 所述身份参数是所 述终端设备的标识信息。

系统参数是 KGC生成的公开信息, 系统中任意一个设备都可以获取到, 例如, 谅系 统参数可以是 KGC输入安全参数 A并执行 ABE的系统设定算法生成的, {par, msk) ABE.Setup( l A ) , 其中, par是系统参数, ms/t是主密钥, ABE. Setup为基于属性加密的系 统设定算法。

服务器可以通过如下方法生成转换密钥: 输入系统参数 /¾r, 用户身份 W (即, 身份 参数) , 第二密钥/^ / 和第一密钥更新信息 *¾, 输出转换密钥 ί = ( /, ί½ 。

可选地, 所述服务器根据所述转换密钥将所述第一数据 转换成第二数据, 包括: S532 , 所述服务器根据所述转换密钥、 系统参数、 所述终端设备的属性信息、 身份 参数和时间参数将所述第一数据转换成所述第 二数据, 其中, 所述系统参数是所述 KGC 生成的公开信息, 所述身份参数是所述终端设备的标识信息, 所述时间参数用于指示所 述终端设备在当前时刻所述转换密钥可以使用 。

服务器可以通过以下方法将第一数据转换成第 二数据: 输入系统参数 par, 用户身份 W (即, 身份参数) , 属性集合 转换密钥 和密文 CT (即, 第一数据) , 谅算法 运行 ABE的解密算法, 输出转换密文 CT ABE.Dec( , ί½ ί; CT), 其中, ABE.Dec 为基于属性加密的解密算法, 为转换密钥。

上述实施例仅是举例说明, 本发明实施例不限于此, 任何可以生成转换密钥以及根 据转换密钥将第一数据转换为第二数据的算法 都落入本发明的保护范围。

本发明实施例的数据处理的方法, 服务器从 KGC接收第二公钥, 读第二公钥可以是 KGC基于第一密钥更新信息生成的公钥 (即, 转换密钥) , 谅第一密钥更新信息用于指 示终端设备未被吊销,读第二公钥也可以是 KGC没有基于所述第一密钥更新信息生成的 公钥, 服务器可以根据谅第二公钥将基于所述终端设 备的属性加密的数据转换成基于第 一公钥加密的数据, 只有谅终端设备可以利用自己持有的第一私钥 解密所述基于所述第 一公钥加密的数据, 从而, 无需使用安全信道传输私钥, 对服务器的安全性能也无要求, 此外, 由于终端设备所持有的私钥可以为一常数, 从而降低了对终端设备的处理能力的 需求, 提高了终端设备的资源利用率。

下面, 再举出两个根据本发明实施例的数据处理的方 法的具体实施方式。


令 G是一个具有素数阶 p的群。 为保证离散对数问题足够困难, p建议不短于 512 比特。 ^GxG C^表示双线性对, 而 g是 G的生成元。 本发明所提出的服务器帮助下 的可吊销 ABE包含如下算法:

Setup. 以安全参数 1 λ 为输入,该算法随机选取阶为素数 的群 G及其生成元 g e G。 另夕卜,读算法随机选取", h, u 0 , h 0 , w, VGG, ae Z p . 令 r/ 是初始为空的表以存储被 吊销的用户, 而 BT是有至少 N个叶结点的二叉树。 定义将任意数值 ye Z p 映射到 G中 元素的两个函数^ 和^ 如下: F y = u y h , F 2 (y) = u h 0 , 最后, 系统主私钥 m = , 系统公开参数为/ ¾r = (/?,g, M, A, Μ 0 , ν 0 , w, ν, e(g,g) a ) 以及表 r/ 和状态信息 ·ϊί= Γ。

UserKG. 以系统参数 par和某身份 id为输入, 谅算法随机选取 β≡Ζ ρ , 并为用户 输出用户私钥、 公 ^^« d ,pk id )= i, g p )。

PubKG. 该算法以系统公开参数/ ¾r、 主私钥 ms 身份/ c 及其用户公钥 、 谅用 户的属性集 和状态信息 为输入。记 ^, ^为属性集 的各个属性。谅算法首先从 二叉树 Γ中选取一个未定义的节点^ 并把身份信息 W存储于该节点。 随后, 对于每 个节点 ePath( )执行以下步骤:

从节点 X获取 。 若对于 X 尚未定义谅数值, 则随机选取 eG, 并将 存储于 节点 x。 之后, 计算 '=;^ / 。

随机选取 r x ,r x l ,..., r x , k e Z p , 并计算

最后' 谅算法输出用户属性公钥 pk = {x,P x , , P x , 2 , {Ρ^ , } i6[ ] ePatm 和更新后的 st。

TKeyUp. 读算法以系统公开参数 par、 主私钥 msk、 一个时间段值 t, 吊销列表 和 状态信息 W为输入。 对于每个节点 eKUNodes gr, rl, t), 获取其对应的 。 然后随机 其中,

TranKG. 谅算法以系统公开参数/ ¾r、 某身份 /c 及其用户属性公钥 p 、 转换密钥 更新信息 tku t 为输入。记 Path(6»)为 /及 KUNodes( 7 ή, ί)为 J。读算法先将 pk^解析为 {x,

P x „ P^ ,^,将 解析为 {x, a," 2d 。 若 nJ = (D, 即/和 J的交 集为空, 读算法返回丄 (表示谅用户已被吊销, 转换密钥生成出错, 即 "错误提示" ) 。 否则, 对每个节点 e/nJ, 读算法随机选取 r x » Z p , 并为用户 输 出转换密钥 = tk 2 , )}看 tk 5 ). 其中,

tk =P xl -Q xl -w r -F 2 (tY'' = pk ld a -w r ' +r '' -F 2 (tY' +s '',

tk 2 = P x 2 . g r = f , tk 3 (l = « · g r "' = g r -- ,+r - y ,

tkl { ) = - (4 ) r "' · v~ r '' = (4 ' - v- ( ,

Encrypt. 读算法以系统公开参数 ^、 某线性秘密共享访问控制结构 (M, p、、 某时 间段值 ί及消息 m为输入, 随机选取一向量! = 、μ, y 2 , ) 1 e 2:。 其中, ί是用 于加密消息的秘密指数。对每个 = 1到 I,计算 v^Mr^,其中 M 是 M的第 行。 另夕卜, 再随机选取〃 1 …, ^ 62^后,输出密文 CT = ((M, p),t, C 0 , C 15 {C^ , C , C')} ie[u] , C 5 )。 其中

C 0 = e{g, gf -m, = g C = w v > ν μ <,

C 3 ( = ^(4 γ μ ', C = g l , C 5 = F 2 (t) .

Transform. 该算法以系统公开参数/ ¾r、 身份 W及对应用户转换密钥 、 用户属 性集 、 时间段值 ί及带有访问控制结构 (Μ,ρ)的密文 CT为输入。假设 满足访问存取 结构 (Μ, ρ), 记/为 / = {/: p(i)≡A}, 而 {v^ e Z p } ieI 为一系列常数值使得只要 { }是某 秘密 按照 (Μ, /7)所得到的有效秘密共享分额, 则有 = μ。 该算法将密文 CT解析 iel

为 ((M, p),t, C 0 , C {C , C 3 (i) , C 4 (,) } ie[li] , Q) 0 如果属性集 和转换密钥 不满 足 CT中所给出的存取结构 (Μ,ρ), 就输出特别符号丄表明转换失败。否则,就按 下式输 出转换后密文 (即部分解密密文) CT' = (Co', Co):

l )) w ' e(C ; ,tk 5 ) 1 C x ,tk x ) e(g,pk id a ) μ

Decrypt. 谅算法以系统公开参数/ rar、 身份 及对应用户私钥 sk id 、 转换后的密文 CT, =(C。',C。)为输入。 若 C。,或 C。不属于群 G;, 则输出操作失败。 否则, 按下式计算并 输入明文消息:

m = (C。 ' f p ' C 0 = 1 . e(g, g - m■

e(.g,g )

Revoke. 读算法以身份值 时间段值 ί, 吊销名单 r/及状态信息 为输入。对所有 与身份 id相关联的节点 X, 将 (X, ί)添加到 ή, 然后输出更新后的吊销名单 ή。

通过定义选择明文攻击不可区分性 (IND-CP Α)安全模型, 可以定义 SR-ABE 的安全 性。 其中通过给出攻击算法和挑战算法, 形式化地考虑现实中可能的安全威胁和攻击者 在标准 ABE安全中的能力。 而攻击者可以获取其所选取的数据用户的私钥 和公开的用户 属性密钥。 这时, 对于被挑战的访问控制结构, 攻击者不应谅得到有关加密信息的任何 部分信息。 另外, 安全模型中允许攻击者可访问周期性密钥更新 信息、 不同时间段的转 换密钥信息已经可按攻击者自己的需要吊销用 户的能力。 这时, 对于属性满足被挑战的 访问控制结构而已被吊销的任何用户, 若加密时谅用户已被吊销, 则攻击者不应读得到 有关加密信息的任何部分信息。

在判断性 (g- 1)假设下, 本发明实施例所提出的服务器帮助下的可吊销 ABE方案是上 述选择性 IND-CPA安全定义下标准模型中可证明安全的。



T t : 我们将使用二叉树进行时间段管理。 假设 Q是在叶节点存储所有时间戳(上界 为 的二叉树。 例如, 对于 g=8的情况下, 树 β如图 6所示。 根节点被命名为 r-"*", 其中 r = log 2 g = 3。 左侧的每一个子节点, 第一个 *由 0代替; 右侧的每一个子节点, 第 一个 *被 1替换。 整个树的节点可以这样命名。

对于每一个密文, 7仅包括时间 ί与所有时间大于 ί的节点的组合。 例如, 如果当前 时间是 3 (二进制表示为 011 ) , 那么 7 = {011, 1**}包括叶节点 3-7。 如果当前时间是 5 (二进制表示为 101 ) , 那么 T t = {101, 11*}包括叶节点 5 - 7。 很容易可以看到, 7的 最大尺寸等于树的高度(等于 log 2 g) 。 因此, 一个用户在时间 4 (二进制是 100) 的密 钥可以解密上述的第一个密文(时间戳 3- 7) , 但不可以解密上述的第二个密文(时间 戳 5 _7) 。

Path(ID): 我们将使用一棵树(7进行撤销管理, 并使用身份/ Z)标记叶节点。 关于一 组叶结点 函数 返回一个 (确定性选定的) [/的节点的集合, 使得叶节点 V的一 些祖先是包含在; 7( 当且仅当 vf 。 这样的函数存在, 并且可以在多项式时间中 ( ^的 尺寸和 的大小)来计算。 定义字符串 J∑)从 [/的根到叶 v w (包括根和叶)的节点集合 为 Path(ID

如图 7所示, 图 7示出的树 f/代表所有用户, 假设 ={000, 011}是一组被撤销的用 户。那么 [/( ) = {000,00*,0**,***,011,01*} (其中包含 000和 011的祖先)。另外/ ½ί/?(011) = {011,01*,0**,***} (其中包含从根到 011的路径) 。

w i:b : 我们将使用 ^来描述与时间段相关的属性。 此处索引;用来表示在树的级层。 根为第 0级, 其子节点为第 1级等等。 最大的等级是 r=l og2 g。 索引 b 是 0或 1, 表示在 第 i级的值。 例如, 对于时间= 101, 该组相关的属性= {ωυ, ω 2 ,ο, ω 3 ,ι} α

^):时间 y的访问控制策略。 假如 £是一个 2r行 (r+1)列的矩阵, 其为一个 2乘 2 的全为 1的矩阵沿对角线级联而成; 而其他地方的值为 0。 下面是 r = 3时的例子:

标记矩阵 的行为 b 1 h b u , b 2 , 0 , b 0 , ;按降序排列。 对于矩阵 的所有行, 定义标签 β为 βφ ί ) = 现在我们为时间 _y定义访问控制策略 (ΰ^, β 。 对于每个属于 [l,...,r]的索引 i, 如果在第 级的相应的 _y值 (表示为 不是 *, 我们将从矩阵 £中 消除行 , 从而得到矩阵 。 例如 r = 3和 y = 01*, 矩阵 和标签 ^ (由下面的箭头 表示) 是:

注意一组属性 S满足 (^,Α) 当且仅当:(1)对所有的 使得 3 ·]不等于 *,则 包含 在 S之内; 及 (2)对所有的 i使得 = *, 则 t¾ (?或 Oi 包含在 之内。

( , p) V (B y , β γ ): 我们使用符号 (Μ, ρ) V (B y , 表示两个 LSSS策略 (M, /?)与 的 组合, 即通过顺序添加行」 &v到矩阵 M (并填克为相同长度) 而生成的 LSSS策略。


Setup(l A ): 输入安全参数 A, 选择一个阶 N= ;¾¾的双线性群 G (阶等于三个随机素 数相乘, 达到安全强度 。 随机选择 ,cieZ w 与 geC^, 并准备一个初始为空吊销列 表 rl和状态 st。 对所有 " 随机选择 Sl e Z N ,X 3 e 。 设定 msk = (a, X 3 ),

par = g, g\ e(g,g) a , {T t = g si for all /})

它输出 (par, msk, rl, sf)。

UserKG(par, id): 输入系统公开参数 par和用户身份 id, 随机选择 e , 输出 s d = β'Ρ = s p

PubKG( ar, msk, id,pk id ,A, st) 输入系统公开参数 par, 主密钥 msk, 用户公钥 pk id , 一个属性集合 ^和 KGC的内部状态 st, 对所有 xc ¾ (/c), 计算:

在内部状态 st查找 (X, 0。 如果不存在, 则随机选择 α χ e Z N , 并把 (χ, 保存在 st。 随机选择 t Z N , V, Ζ, ι } ;es e G p3 。 计算: 输出 pJ = ^ x , K x , K*: for all x e Patl{id)}。

TKeyUp( jr, m , i, , rf): 输入系统公开参数 ar, 主密钥 m , 时间段 ί, 吊销列表 r/和内部状态 对所有 XE f/(r/) (吊销列表的树), 计算:

表示集 S = {ω υ[ί} : 1 e [r]} 为时间相关的属性。

在内部状态 st查找 (X, 0。 如果不存在, 则随机选择 Ω χ e Z N , 并把 (x, 保存在 st。 随机选择 f^Zw , V^Z^^ eG^ , 计算: 输出 = , K Ax ,K: for all xe t, rl)。

TranKG(par, id,pk id A , tku t ): 输入系统公开参数/ rar, 用户身份 , 公共属性密钥 和密钥更新信息 tku" 假如用户身份 id不在 的 rl之内, 那么必定有一个节点 X既属 于

输出 =(5¾,5¾)。 Encrypt(¾r, ( , p), t, m): 输入系统公开参数 par, 访问控制策略 (M, ρ), 时间 t和明 文 m,为所有 yd建立 LSSS控制策略 (^ ,/?') = (M, p) V (B y , β^。随机选择 ν = 0, ,■■ ., v„) e Z N n 和 η c (所有 i ε [«] ) 。 计算:

C =m-e ' = s s = ^^ ^ D = s r ' )

输出密文 r,}, (M, P ))。

Transform(/?ar, id, A, tk id , t 、 CT t ): 输入系统公开参数 par, 用户身份 id, 属性集合 , 转换密钥 ί ( ^和密文 如果 ί'≥ί, 那么存在 _yE 7;, 使得 y是 ί'的祖先。 对于此 , 在 密文 C7提取 (C { C y , D y } )。表示 tk id , t ' = (SKo, SKj),其中 5¾ = {K xh {K x J : e

A}, 和 SKj = {K x , {K X:U : /

首先, 计算 E 使得 =1。 然后计算:

nd '。)- e (n P(0 ,。) = e( g , g < ,。, 〕= e fe

上 们可以计算 CT':^^^ 1 ,^^ 同样地, 我们可以使用 s 如下 计算出

最后输出 cr = {C y , CT'O, CT'J).

Decrypt(par, id, sk id , CT'): 输入系统公开参数 par, 用户身份 id, 用户私钥 sk id = β和


转换密文 CT' = (C y , CT'o, CT'i), 输出明文 m = y - ^ Γ

Revoke(; t, rl): 输入吊销用户身份 id、时间段 t、吊销列表 r/和状态信息 st, 将 {«0} 添加到 rl作为更新后的吊销列表 W输出。


扩展 1:选择密文攻击不可区分 (IND-CCA 安全)下的方案. 本发明提出的上述 SR-ABE 方案只满足较弱的 IND-CPA 安全性。 利用现有的几种普适性方法, 可以将 IND-CPA安全的加密方案转化为 IND-CCA安全的。

比如, 1999年提出的 Fujisaki-Okamoto方法就可以将本发明提出的基于 性或身份 的 IND-CPA安全加密方案提升为 IND-CCA安全的。 利用一个 IND-CCA安全的对称钥 加解密方案(E, D)和两个哈希函数 G和 H, 该方法加密时进行如下操作: (1)加密一个 消息 m时, 先选取一个随机数 r, 然后利随机数 G(r)使用 ABE把 r作为消息加密, 生成 CI = ABE.Enc(r; G(r》; (2)再利用对称秘钥 H(r)加密消息 m, 即生成 C2 = E(H(r), m); (3) 最后输出密文 (CI, C2)。 解密密文 (CI, C 2 )时操作如下: (1)通过 ABE解密 C1得到 r; (2) 计算出 ABE.Enc(r; G(r))并比较谅值是否等于 Cl, 否则返回錯误; (3) 若步骤 (2)成功, 则 使用对称钥 H(r) 解密 C2得到消息 m。 再比^!。, 201 1年提出的 Yamada- Attrapadung-Hanaoka-Kunihiro方法也可以 寻本发明 提出的基于属性的 IND-CPA安全加密方案提升为 IND-CCA安全的。 利用一个一次性签 名方案(S, V ) , 谅方法加密时进行如下操作: ( 1 )加密一个消息 ffl时, 先随机生成一对 一次性签名方案公私钥 (vk, sk ) ; (2)把 vk加原来的访问控制策略 Y得到新的访问控 制策略 Y,(例如 Y,=Y or vk ); (3) 由此计算出密文为(CI, C2, vk), 其中 C1为利用 ABE 和访问控制策略 Y'把消息 m加密后的输出, C2为利用 sk把 C 1进行一次性签名的输出。 解密时进行如下操作:(1) 利用 vk和 C 1臉证一次性签名 C2,如不通过返回錯误; (2) 若 一次性签名 C2通过 怎使用 ABE解密 C1得到消息 m。

扩展 2: 加密长数据. 为提高加密长数据时的效率, 可以在本专利提出的属性加密方 案的算法 Encrypt中用一个对称密钥 k替代消息 m , 然后用 k按对称加密的方式加密长 数据本身。 这样用户收到服务器部分解密的结果后, 利用自己的长期私钥即可解恢复出 对称密钥 k, 然后利用 k按所使用的对称加密算法最终解密出长数据

扩展 3: 服务器帮助下的可吊销密钥策略属性加密方案 (SR-KP-ABE). 基于文献 [ 1] ( N. Attrapadung and H. Imai. Attribute-based encryption supporting direct/indirect revocation modes. In Cryptography and Coding, 12th IMA International Conference, Cryptography and Coding 2009, Cirencester, UK, December 15-17, 2009. Proceedings, volume 5921 of Lecture Notes in Computer Science, pages 278- 300. Springer, 2009. )提出的 间接吊销 KP-ABE, 利用上述实施例中所使用的技术, 可以得到一个服务器帮助下的可 吊销 KP-ABE方案。 简要描述如下:

Setup算法与文献 [1]相同, 但不需要设置参数 a x

将上述 UserKG算法直接添加到文献 [ 1]的方案中。

通过设定 J) 3 ) = pkj (x) · Ρ(χ)^, 将文献 [1]中的 KeyGen算法变为 PubKG算法。

KeyUpdate算法、 Encrypt算法和 Revoke 算法与文献 [ 1 ]中的相同。

将文献 [ 1]中的带有解密结果 ^ 的 Decrypt算法作为所需添加的 Transform算 法。

最后, 把文献 [ 1 ]的 Decrypt算法替换为上述 SR-ABE方案中的 Decrypt算法。

扩展 4: 服务器帮助下的可吊销基于身份加密(SR-IBE). 文献 [2] ( B. Qin, R. H. Deng, Y. Li, and S. Liu. Server- aided revocable identity-based encryption. In Computer Security - ESORICS 2015 - 20th European Symposium on Research in Computer Security, Vienna, Austria, September 21-25, 2015, Proceedings, Part I, volume 9326 of Lecture Notes in Computer Science, pages 286-304. Springer, 2015 )提出 SR-IBE方案以减轻由于吊销而导 致的用户工作量增加, 但谅方案的效率还不够好。 一方面, 需要安全信道来给系统内的 所有用户传递私钥, 而安全信道的建立不容易。 另一方面, 用户解密时的计算量可以进 一步缩减。 具体来说, 文献 [2]提出的 SR-IBE可改进如下:

设置 gl = g a 以及主私钥为 。

用上述 SR-ABE中的 UserKG算法替代文献 [2]中的 PrivKG算法。

将文献 [2]中的 = h a f g Xtl 定义为 g x l = pk id a / g x

按照扩展 1和扩展 2所描述的方法, 本发明实施例提供的数据处理的方法可以被扩 展为 IND-CCA2安全的, 或使用对称密码技术支持长消息加密, 或既 IND-CCA2安全又 支持长消息加密。

此外, 扩展 3所述的方法也可被扩展成 IND-CCA2安全, 或使用对称密码技术支持 长消息加密, 或既支持 IND-CCA2安全又支持长消息加密。 扩展 4所述的方法可被扩展 成 IND-CCA2安全, 或使用对称密码技术支持长消息加密, 或既支持 IND-CCA2安全又 支持长消息加密。

另外, 在本发明实施例中, 通过使用 ElGamal加密与任何满足某种以下性质的可吊 销属性加密来构造。其中 PubKG算法包括利用 ElGamal加密所有或部分基于属性的密钥; Transform算法运行 ABE.Dec算法解密; Decrypt算法运行 ElGamal.Dec算法解密。 上述 一般性构造中使用的可吊销属性加密须满足以 下性质:

ElGamal.Dec(sk id , ABE.Dec(pk id A , tku t , CT))=ABE.Dec(ElGamal.Dec(sk id , pk id A ), tkut,

CT)。 这意味着 ElGamal解密和可吊销属性解密的顺序可以互换

上述实施例主要从各个装置之间交互的角度对 本发明实施例的方案进行了介绍。 可 以理解的是, 各个装置, 例如终端设备、 密钥生成中心、 服务器等为了实现上述功能, 其包含了执行各个功能相应的硬件结构和 /或软件模块。 本领域技术人员应谅很容易意识 到, 结合本文中所公开的实施例描述的各示例的单 元及算法步骤, 本发明能够以硬件或 硬件和计算机软件的结合形式来实现。 某个功能究竟以硬件还是计算机软件驱动硬件 的 方式来执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每个特 定的应用来使用不同方法来实现所描述的功能 , 但是这种实现不应认为超出本发明的范 围。

本发明实施例可以根据上述方法示例对终端设 备、 密钥生成中心和服务器进行功能 单元的划分, 例如, 可以对应各个功能划分各个功能单元, 也可以将两个或两个以上的 功能集成在一个处理单元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用 软件功能单元的形式实现。 需要说明的是, 本发明实施例中对单元的划分是示意性的, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,图 8A示出了上述实施例中所涉及的终端设备的一 可 能的结构示意图。 终端设备 800包括: 处理单元 802和通信单元 803。 处理单元 802用于 对终端设备 800的动作进行控制管理, 例如, 处理单元 802用于支持终端设备 800执行 图 1的步骤 2和步骤 9, 处理单元 802还可以用于支持终端设备 800执行图 3的 S310和 S340, 和 /或用于本文所描述的技术的其它过程。 通信单元 803用于支持终端设备 800与 其它网络实体的通信, 例如与图 1中示出的 KGC120或服务器 130之间的通信。 终端设 备 800还可以包括存储单元 801, 用于存储终端设备 500的程序代码和数据。

其中, 处理单元 802 可以是处理器或控制器, 例如可以是中央处理器 (Central Processing Unit, CPU ), 通用处理器, 数字信号处理器( Digital Signal Processor, DSP ) , 专用集成电路(Application-Specific Integrated Circuit, ASIC ), 现场可编程门阵列(Field Programmable Gate Array, FPGA )或者其他可编程逻辑器件、 晶体管逻辑器件、 硬件部 件或者其任意组合。 其可以实现或执行结合本发明公开内容所描述 的各种示例性的逻辑 方框, 模块和电路。 所述处理器也可以是实现计算功能的组合, 例如包含一个或多个微 处理器组合, DSP和^ ί处理器的组合等等。 通信单元 803可以是通信接口、 收发器、 收 发电路等, 其中, 通信接口是统称, 可以包括一个或多个接口。 存储单元 801可以是存 储器。 当处理单元 802为处理器, 通信单元 803为通信接口, 存储单元 801为存储器时, 本发明实施例所涉及的终端设备可以为图 8B所示的终端设备。

参阅图 8B所示, 谅终端设备 810包括: 处理器 812、 通信接口 813、 存储器 811。 可选的, 终端设备 810还可以包括总线 814。 其中, 通信接口 813、 处理器 812以及存储 器 811 可以通过总线 814 相互连接; 总线 814 可以是外设部件互连标准 (Peripheral Component Interconnect, 简称 PCI )总线或扩展工业标准结构 ( Extended Industry Standard Architecture , 简称 EISA )总线等。 所述总线 814可以分为地址总线、 数据总线、 控制总 线等。 为便于表示, 图 8B中仅用一条粗线表示, 但并不表示仅有一根总线或一种类型的 总线。

所属领域的技术人员可以清楚地了解到, 为了描述的方便和简洁, 上述描述的装置 和单元的具体工作过程, 可以参考前述方法实施例中的对应过程, 在此不再赘述。

因此, 本发明实施例提供的终端设备, 可以生成第一公钥和第一私钥, 第一公钥用 于加密数据, 第一私钥可以用于解密谅第一公钥加密的数据 。 终端设备将第一公钥发送 给 KGC, 以便于 KGC或者服务器根据该第一公钥生成转换密钥, 第一公钥嵌套在谅转 换密钥内, 因此, 当服务器使用谅转换密钥处理基于终端设备的 属性结构加密的密文后, 生成的结果是第一公钥所加密的密文, 终端设备持有与谅第一公钥配对的第一私钥, 当 终端设备接收到服务器发送的部分解密的密文 后, 可以根据谅第一私钥以及解密算法进 行解密, 生成明文。 由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第 一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器 对第一数据进行处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它 设备也无法获取最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性 能也没有任何要求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据 第一私钥进行解密运算时只需执行一次幂指运 算即可获得明文, 避免了其它技术方案中 消耗大量计算资源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了 终端设备的资源利用率。

在采用集成的单元的情况下, 图 9A示出了上述实施例中所涉及的 KGC的一种可能 的结构示意图。 KGC900包括:处理单元 902和通信单元 903。处理单元 902用于对 KGC900 的动作进行控制管理,例如,处理单元 902用于支持 KGC900执行图 1的步骤 1、步骤 3、 步骤 4和步骤 10, 处理单元 902还可以用于支持 KGC900执行图 4的 S420, 和 /或用于 本文所描述的技术的其它过程。通信单元 903用于支持 KGC900与其它网络实体的通信, 例如与图 1 中示出的终端设备 110或服务器 130之间的通信。 KGC900还可以包括存储 单元 901, 用于存储 KGC900的程序代码和数据。

其中, 处理单元 902可以是处理器或控制器, 例如可以是中央处理器 CPU, 通用处 理器, DSP, ASIC , FPGA或者其他可编程逻辑器件、 晶体管逻辑器件、 硬件部件或者 其任意组合。 其可以实现或执行结合本发明公开内容所描述 的各种示例性的逻辑方框, 模块和电路。 所述处理器也可以是实现计算功能的组合, 例如包含一个或多个微处理器 组合, DSP和微处理器的组合等等。 通信单元 903可以是通信接口、 收发器、 收发电路 等, 其中, 通信接口是统称, 可以包括一个或多个接口。 存储单元 901可以是存储器。

当处理单元 902为处理器, 通信单元 903为通信接口, 存储单元 901为存储器时, 本发明实施例所涉及的 KGC可以为图 9B所示的 KGC。 参阅图 9B所示, 该 KGC910包括: 处理器 912、 通信接口 913、 存储器 911。 可选 的, KGC910还可以包括总线 914。 其中, 通信接口 913、 处理器 912以及存储器 911可 以通过总线 914相互连接; 总线 914可以是 PCI总线或 EISA总线等。 所述总线 914可 以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 9B中仅用一条粗线表示, 但 并不表示仅有一根总线或一种类型的总线。

所属领域的技术人员可以清楚地了解到, 为了描述的方便和简洁, 上述描述的装置 和单元的具体工作过程, 可以参考前述方法实施例中的对应过程, 在此不再赘述。

因此, 本发明实施例提供的 KGC, 可以基于读第一公钥以及读终端设备的属性生 成 第二公钥, 谅第二公钥是基于终端设备的属性的公钥, 可以解密基于终端设备的属性加 密的数据, 由于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所述终端设备的 属性加密的数据进行处理后生成的数据为基于 第一公钥加密的密文, 终端设备可以利用 终端设备所持有的第一私钥对读基于第一公钥 加密的密文进行解密, 其中, 第一私钥是 与该第一公钥配对的密钥, 可以用于解密基于第一公钥加密的数据。 本发明实施例中, 终端设备的属性信息可以是终端设备的具体身 份信息, KGC还可以根据第一公钥和终端 设备的属性集生成第二公钥。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 因此, 本发明实施例的数据处理的方法无需使用安全 信道; 此外, 由于服务器对第一数据进行 处理后得到的结果仍是密文, 即使服务器与其它设备进行了合谋, 其它设备也无法获取 最终的明文, 因此, 本发明实施例的数据处理的方法对服务器的安 全性能也没有任何要 求; 再次, 本发明实施例的第一私钥可以是一个常数, 终端设备在根据第一私钥进行解 密运算时只需执行一次幂指运算即可获得明文 , 避免了其它技术方案中消耗大量计算资 源的双线性对运算, 从而降低了对终端设备的处理能力的需求, 提高了终端设备的资源 利用率。

在采用集成的单元的情况下, 图 10A示出了上述实施例中所涉及的服务器的一种 可 能的结构示意图。 服务器 1000 包括: 处理单元 1002和通信单元 1003。 处理单元 1002 用于对服务器 1000的动作进行控制管理, 例如, 处理单元 1002用于支持服务器 1000执 行图 1的步骤 7和步骤 8,处理单元 1002还可以用于支持服务器 1000执行图 5的 S530 , 和 /或用于本文所描述的技术的其它过程。 通信单元 1003用于支持服务器 1000与其它网 络实体的通信, 例如与图 1中示出的终端设备 110或 KGC120之间的通信。 服务器 1000 还可以包括存储单元 1001, 用于存储服务器 1000的程序代码和数据。

其中, 处理单元 1002可以是处理器或控制器, 例如可以是中央处理器 CPU , 通用处 理器, DSP , ASIC , FPGA或者其他可编程逻辑器件、 晶体管逻辑器件、 硬件部件或者 其任意组合。 其可以实现或执行结合本发明公开内容所描述 的各种示例性的逻辑方框, 模块和电路。 所述处理器也可以是实现计算功能的组合, 例如包含一个或多个微处理器 组合, DSP和微处理器的组合等等。 通信单元 1003可以是通信接口、 收发器、 收发电路 等, 其中, 通信接口是统称, 可以包括一个或多个接口。 存储单元 1001可以是存储器。

当处理单元 1002为处理器,通信单元 1003为通信接口,存储单元 1001为存储器时, 本发明实施例所涉及的服务器可以为图 10B所示的服务器。

参阅图 10B所示, 谅服务器 1010包括: 处理器 1012、 通信接口 1013、存储器 1011。 可选的, 服务器 1010还可以包括总线 1014。 其中, 通信接口 1013、 处理器 1012以及存 储器 1011可以通过总线 1014相互连接; 总线 1014可以是 PCI总线或 EISA总线等。 所 述总线 914可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 10B中仅用一 条粗线表示, 但并不表示仅有一根总线或一种类型的总线。

所属领域的技术人员可以清楚地了解到, 为了描述的方便和简洁, 上述描述的装置 和单元的具体工作过程, 可以参考前述方法实施例中的对应过程, 在此不再赘述。

本发明实施中, 第二公钥为 KGC基于第一公钥和终端设备的属性信息生成的 公钥, 第二公钥是基于终端设备的属性的公钥, 可以解密基于终端设备的属性加密的数据, 由 于第二公钥嵌套有第一公钥, 因此, 使用第二公钥对基于所述终端设备的属性加密 的数 据进行处理后生成的数据为基于第一公钥加密 的密文, 终端设备可以利用终端设备所持 有的第一私钥对第二数据进行解密, 其中, 第一私钥是与终端设备生成的密钥, 可以用 于解密基于第一公钥加密的数据。

由于第一私钥一直被终端设备所持有, 不需要向其它设备发送该第一私钥, 本发明 实施例无需使用安全信道; 此外, 由于服务器对第一数据进行处理后得到的结果 仍是密 文, 即使服务器与其它设备进行了合谋, 其它设备也无法菽取最终的明文, 因此, 本发 明实施例对服务器的安全性能也没有任何要求 ; 再次, 本发明实施例的第一私钥可以是 一个常数, 终端设备在根据第一私钥进行解密运算时只需 执行一次幂指运算即可获得明 文, 避免了其它技术方案中消耗大量计算资源的双 线性对运算, 从而降低了对终端设备 的处理能力的需求, 提高了终端设备的资源利用率。

在本发明实施例中, 各过程的序号的大小并不意味着执行顺序的先 后, 各过程的执 行顺序应以其功能和内在逻辑确定, 而不应对本发明实施例的实施过程构成任何限 定。

另外, 本文中术语 "和 /或" , 仅仅是一种描述关联对象的关联关系, 表示可以存在 三种关系, 例如, A和 /或 B, 可以表示: 单独存在 A, 同时存在 A和 B, 单独存在 B这 三种情况。 另外, 本文中字符 "/,, , 一般表示前后关联对象是一种 "或" 的关系。

结合本发明实施例公开内容所描述的方法或者 算法的步骤可以硬件的方式来实现, 也可以是由处理器执行软件指令的方式来实现 。 软件指令可以由相应的软件模块组成, 软件模块可以被存放于随机存取存储器(Random Access Memory, RAM ) 、 闪存、 只读 存储器(Read only Memory, ROM )、 可擦除可编程只读存储器( Erasable Programmable ROM , EP OM ) 、 电可擦可编程只读存储器 (Electrically EPROM , EEP OM ) 、 寄存 器、 硬盘、 移动硬盘、 只读光盘 (CD-ROM )或者本领域熟知的任何其它形式的存储介 质中。 一种示例性的存储介盾耦合至处理器, 从而使处理器能够从该存储介质读取信息, 且可向该存储介质写入信息。 当然, 存储介盾也可以是处理器的组成部分。 处理器和存 储介质可以位于 ASIC中。 另外, 该 ASIC可以位于终端设备或 KGC或服务器中。 当然, 处理器和存储介质也可以作为分立组件存在于 终端设备或 KGC或服务器中。

本领域技术人员应谅可以意识到, 在上述一个或多个示例中, 本发明所描述的功能 可以用硬件、 软件、 固件或它们的任意组合来实现。 当使用软件实现时, 可以将这些功 能存储在计算机可读介质中或者作为计算机可 读介质上的一个或多个指令或代码进行传 输。 计算机可读介质包括计算机存储介盾和通信介 质, 其中通信介盾包括便于从一个地 方向另一个地方传送计算机程序的任何介质。 存储介质可以是通用或专用计算机能够存 取的任何可用介质。

以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行了进一步详 细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而已, 并不用于限定本发 明的保护范围, 凡在本发明的技术方案的基础之上, 所做的任何修改、 等同替换、 改进 等, 均应包括在本发明的保护范围之内。