开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
引言
- 基于身份加密:一对一的关键词检索
- 基于属性加密:一对多的检索
- 为什么可以实现一对多?基于属性加密无需了解每个解密者的具体身份信息,只需要了解众多解密者的属性信息,通过使用属性定义的访问结构对消息进行加密,因此,如果用户的密钥满足该属性定义的访问结构,那么此用户就可以访问该密文
优势
基于属性的可搜索加密方案是适应群组的公钥加密搜索方案,扩大了信息的共享性,节省了第三方信息存储的空间
基础知识
(访问结构,访问树)
-
什么是双线性映射? t.csdn.cn/0EjAl + t.csdn.cn/rKJjw
-
双线性映射的3个特性?
- 双线性:
- 非退化性:
- 可计算性:
-
基本词汇概念 t.csdn.cn/8LN3Z
-
DH密钥交换算法 t.csdn.cn/DmMvN
-
BDH问题 t.csdn.cn/lFKz8
CDH问题
DDH问题
DBDH问题
访问结构
基于属性的加密方案(ATT-PEKS)的定义
ATT-PEKS算法定义
ATT-PEKS算法由5个多项式时间随机算法构成:Setup,KeyGen,PEKS,Trapdoor,Test
- Setup:通过系统参数生成公共参数和主密钥的概率多项式算法
- KeyGen: 此算法是密钥生成中心(KGC)根据访问结构A和主密钥Msk生成用户私钥(Priv)的概率多项式算法
- PEKS: 此算法是发送方使用公共参数和属性加密关键词,生成关键词密文C的概率多项式算法。此时,只有属性满足访问结构的用户才能将关键词密文进行解密
- Trapdoor: 由于密钥生成中心已经为用户生成了私钥,此时接收者会使用个人私钥和关键词,通过Trapdoor算法计算出此关键词的门限值,并将门限值发送给网关服务器。
- Test: 此算法用来判断某密文C和某门限值对应关键词的密文是否相等,如果相等输出b=1,如果不相等输出b=0
具体流程描述
- 首先运用Setup算法生成公共参数和主密钥
- 密钥生成中心再运用KeyGen算法根据访问结构和主密钥生成用户私钥(因为私钥和接收者属性相关,所以拥有属性相同密钥的接收者才能够对信息进行查询)
- 发送方再运用PEKS算法,根据公共参数和接收者属性将关键词加密
- 接收方在运用Trapdoor算法,使用个人私钥和关键词生成门限值,将门限值给服务器,希望服务器可以根据门限值查找出门限值中关键词对应的密文
- 此时服务器使用Test算法判定文件中是否包含门限值中关键词的密文,此时服务器并不知道关键词的明文。
攻击游戏
算法构造
ATT-PEKS算法构造
Setup(n)算法
//输入:n,即属性集包含元素个数
//输出:公共参数Pub和主密钥Msk