基于属性的可搜索加密技术

179 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

引言

  1. 基于身份加密:一对一的关键词检索
  2. 基于属性加密:一对多的检索
  3. 为什么可以实现一对多?基于属性加密无需了解每个解密者的具体身份信息,只需要了解众多解密者的属性信息,通过使用属性定义的访问结构对消息进行加密,因此,如果用户的密钥满足该属性定义的访问结构,那么此用户就可以访问该密文

优势

基于属性的可搜索加密方案是适应群组的公钥加密搜索方案,扩大了信息的共享性,节省了第三方信息存储的空间

基础知识

(访问结构,访问树)

  1. 什么是双线性映射? t.csdn.cn/0EjAl + t.csdn.cn/rKJjw

  2. 双线性映射的3个特性?

    • 双线性:
    • 非退化性:
    • 可计算性:
  3. 基本词汇概念 t.csdn.cn/8LN3Z

  4. DH密钥交换算法 t.csdn.cn/DmMvN

  5. BDH问题 t.csdn.cn/lFKz8

CDH问题

DDH问题

DBDH问题

访问结构

基于属性的加密方案(ATT-PEKS)的定义

ATT-PEKS算法定义

ATT-PEKS算法由5个多项式时间随机算法构成:Setup,KeyGen,PEKS,Trapdoor,Test

  1. Setup:通过系统参数λ\lambda生成公共参数PubPub和主密钥MskMsk的概率多项式算法
  2. KeyGen: 此算法是密钥生成中心(KGC)根据访问结构A和主密钥Msk生成用户私钥(Priv)的概率多项式算法
  3. PEKS: 此算法是发送方使用公共参数PubPub和属性γ\gamma加密关键词ω\omega,生成关键词密文C的概率多项式算法。此时,只有属性满足访问结构的用户才能将关键词密文进行解密
  4. Trapdoor: 由于密钥生成中心已经为用户生成了私钥,此时接收者会使用个人私钥和关键词,通过Trapdoor算法计算出此关键词的门限值,并将门限值发送给网关服务器。
  5. Test: 此算法用来判断某密文C和某门限值对应关键词的密文是否相等,如果相等输出b=1,如果不相等输出b=0

具体流程描述

  • 首先运用Setup算法生成公共参数和主密钥
  • 密钥生成中心再运用KeyGen算法根据访问结构和主密钥生成用户私钥(因为私钥和接收者属性相关,所以拥有属性相同密钥的接收者才能够对信息进行查询)
  • 发送方再运用PEKS算法,根据公共参数和接收者属性将关键词加密
  • 接收方在运用Trapdoor算法,使用个人私钥和关键词生成门限值,将门限值给服务器,希望服务器可以根据门限值查找出门限值中关键词对应的密文
  • 此时服务器使用Test算法判定文件中是否包含门限值中关键词的密文,此时服务器并不知道关键词的明文。

攻击游戏

算法构造

ATT-PEKS算法构造

Setup(n)算法

//输入:n,即属性集包含元素个数
//输出:公共参数Pub和主密钥Msk