这里写自定义目录标题
- 目录
- 摘要
- 系统模型:
- PRELIMINARIES
- 双线性映射
- Subgroup decision problem
- K2−treap
- 具体的加密方案
- 基于BGN的同态加密方案
- 数据比较技术
- 最后是自己的一些总结
- 参考
目录
**隐私计算 Range-max query BGN Homomorphic encryption **
论文链接 博客写一些阅读的论文的一些翻译、总结、和思考。如果有不足的地方欢迎指正~
摘要
智能农业物联网(Smart agriculture IoT) 是物联网的典型应用,因其在自动灌溉施肥、作物生长监测、病虫害检测等方面的优势而受到欢迎。为了减少资源浪费,最大限度地减少对环境的影响,最大限度地提高作物产量,大多数智能农业应用都要求实时收集和处理农业数据。然而,农业物联网设备的计算和存储资源有限。
为了缓解农业物联网设备的计算和存储压力,及时处理物联网设备采集的数据,通常将雾节点放置在农业物联网的边缘。然而,雾节点可能不完全可信。存储在雾节点中的农业物联网设备数据将面临潜在的隐私泄露风险。本文针对基于雾的智能农业物联网中农业物联网设备数据和用户查询结果的私密性,首先构建了K2-treap,用于存储农业物联网设备采集的数据,并支持高效的range-max查询和动态更新数据。然后,我们设计了一种基于BGN同态加密技术的数据加密与比较算法,提出了一种高效且保护隐私的雾型智能农业物联网最大范围查询算法,该算法不仅可以安全地比较两个数据的密文,而且可以直接通过密文进行增量更新。
最后,我们进行了详细的安全性分析和性能评估。实验结果表明,我们提出的方案确实能够保护农业物联网设备数据和查询结果的隐私,实验测试结果证明了我们提出的方案的有效性。
本文的主要贡献:
系统模型:
关于系统模型的每个参与者的定义和作用:
1、Service provider
负责整个系统。该服务提供商将农田平均划分为个相等的单元,
并在每个单元部署农业物联网设备,为了远程监控作物在田间的生长情况。
在农业物联网的边缘部署雾节点,帮助物联网设备完成数据的存储和处理。
雾节点中存储的数据可供服务提供商授权的用户查询
2、Agriculture IoT devices:
在该系统中,有物联网设备,分布在田地里,检测农作物生长情况。
物联网设备分布在位置,负责收集该区域的数据 其中,物联网设备用三元组表示,为了避免雾节点知道数据,会将 进行加密。雾节点接收到的加密数据表示如下:
3、Fog Node
雾节点从物联网设备收到加密数据给查询用户提供最大范围查询服务。具体来说,当雾节点收到的查询请求时,它将搜索加密的数据集并返回加密的最大数据。此外,雾节点允许农业物联网设备动态更新密码中的数据。例如:当农业物联网设备在位置搜集到新的增量数据 它会将相关的加密数据 发送给雾节点,雾节点会计算·去获得,使用去更新值和位置的节点
4、Query user
只有经过服务提供商授权的用户才能访问雾节点进行数据查询。当查询用户想知道在矩形范围中生长最好的作物时,他/她将查询范围发送给雾节点,并接收到雾节点返回的该范围内的最大值 和对应位置 。最后,查询用户使用密钥从加密的中恢复。
PRELIMINARIES
通过这篇文章也是对近世代数,密码学同态加密的一些知识进行学习,首先介绍BGN加密体制。
双线性映射
是两个长度相同的大素数,, 和是两个阶为的乘法循环群
如果映射 满足下列属性,就称为复合阶双线性映射。
1)双线性: 对于任何 和 我们有
2)非退化性:是群的生成器,所以是N阶且∈ ,\mathbb{G}_T(g,h)∈\mathbb{G}$ 存在一个算法可以有效的计算
通过双线性映射会产生一些加密时候使用的参数:
这里注意,令 是 而使用来生成的q阶子群,使用来生成的p阶子群
而该加密方案基于的困难问题是
Subgroup decision problem
关于子群决策问题的主要来自文章:《Evaluating 2-DNF Formulas on Ciphertexts》:
解决这个问题的优势:
简单的理解就是通过选择一个循环群元素,注意该群的阶数为,去判断这个元素是否属于他的q阶或者p阶子群,是十分困难的。因为首先需要解决的就是N的因式分解。BGN同态加密基于这个困难问题假设。
阅读论文到这里,我在想同态加密加密方案是如何与这个困难问题联系到一起? 通过对BGN同态加密方案的学习,我的理解如下:
首先BGM同态加密的过程:
,是一个随机数,解密的时候需要计算一个
因为是 的生成元,群的阶数为,所以这里,所以含随机数的项没了 。
在这里解密的时候需要使用的p,是如何来的? 它一定是先是知道 h是属于群 的p阶子群,才能正确的得到,这就变成了上述的困难问题:给定一个群的元素,判断是否属于 的一个子群,是困难的。
去掉含随机的项之后,解密变成了求解怡以为底的的离散对数问题。在《Evaluating 2-DNF Formulas on Ciphertexts》提到的使用的Pollard‘s lambda 算法,可以参考这个博主的一篇讲的文章 这里参考的简单说下:
关于BGN的同态加密安全性,暂时理解的还不够透彻~ 后续会再看看
1)Tree buliding假设 是一个基于位置的数据集, 我们可以自顶向上的建立. 令这个表示为
step 1: 对属于中的每个建立的一个叶节点,每个叶节点覆盖的区域边长为
step 2: 基于这些叶节点建立的更高一层的,从所有叶节点的左上角开始将一个矩形区域内的四个节点合并成一个内部节点,内部节点有七个属性,其中, 表示这一层的节点覆盖的区域边长。用来表示这个区域的最大值,分别指向从上至下,从左至右指向下一层四个区域。内部节点也有指向它父亲节点的指针,同时这一层建立完成时也会让叶节点的父亲指针指向这个内部节点。
step 3: 基于的内部节点 建立更高一层,同样的方法,注意更高一层时的变化
step 4: 重复 直到只剩下一个合并的节点, 建立完成
2)Range-max Query
给定一个查询 可以从中找出范围内的最大值:
step 1: 初始化一个栈 ,=0 栈用来存储 与 相交的选定节点。
step 2: 将 的根节点压入栈中
step 3: 如果栈不为空,从栈顶弹出一个节点,标记 ,如果的位置在查询范围中,且比大,更新和 如果不在查询范围中,就将孩子节点中与相交的压入栈
3)Dynamic updata
当位置的节点的值发生变化时,可以通过比较节点的值和它的父节点的值来动态更新.假设增加的值为:
step 1: 根据位置,从根节点跳到变化的节点
step 2: 用新数据去更新的
step 3: 比较与, 更新 ,同时更新父节点指针
step 4: 重复步骤3直到根节点或者
具体的加密方案
基于BGN的同态加密方案
可以看到对比BGN同态加密多使用了一个参数s 所以在解密的时候分配私钥
数据比较技术
最后是自己的一些总结
参考
1、hillman_yq的Kangaroo算法