An Ideal-Security Protocol for Order-Preserving Encoding
来自 2013 IEEE Symposium on Security and Privacy

Order-Preserving Encoding(OPE):OPE是一种加密方案,它的密文的排序顺序与相应的明文顺序相匹配。在本文中,作者主要写了两种方案:一种是在半可信模型下(即服务器是honest-but-curious);一种是在恶意模型(即服务器是malicious)

1. 半可信服务器
(1)mutable order-preserving encoding(mOPE)
OPE Tree的结构:

OPE Tree: 左孩子小于父节点,右孩子大于父节点
例如:将69,32,20,10,25的密文存储到服务器上
① 将69的密文放入OPE Tree的根节点,[]100-------4
② 向服务器请求根结点69的密文,解密后比较,32<69,放在69左结点,更新encoding:[0]10--------2
③ 向服务器请求根结点69的密文,解密后比较,20<69,再向服务器请求左结点32的密文,解密后比较20<32, 将20的密文放到32的左结点上,更新encoding:[00]1-----1
rebalance:这时发现已经有3个结点没有右结点,对OPE Tree进行rebalance,即将中间结点32放在根节点,20放在左结点,69放在右结点,更新OPE Table
④ 向服务器请求根结点32的密文,解密后比较:10<32,再请求32的左结点20,解密后发现 10<20,再请求20的左结点,发现20没有孩子,将10插入20的左结点,并更新encoding
⑤向服务器请求根结点32的密文,解密后比较:25<32,再请求32的左结点20,解密后发现 25>20,再请求20的右结点,发现20没有右孩子,将25插入20的右结点,并更新encoding
mOPE 加密方案:

a. 密钥生成:客户端执行
b. 初始化服务器:即初始化OPE Tree和 OPE Table(仅包含±∞),返回一个初始状态的st(代表服务器的状态)
c. 加密(插入):
客户端:将明文v进行加密(加密算法可以是任意的算法, eg:AES),密文为c,并将c 发送到服务器端
服务器端:
①查询是否c在OPE Tree中,如果在则返回没有改变的st,否则在OPE Tree中插入在c,并计算c的OPE encoding,更新OPE Table
② 如果OPE Tree需要去平衡,平衡OPE Tree,并更新所有的受影响的节点的OPE encoding。
③ 服务器返回一个新的状态st,
d. 解密:在客户端执行,将c解密为v
e. 查找排序:如果c在OPE Table 中,将OPE Table相应的编码返回,否则返回error

(2)storage-aware OPE (stOPE)

same-time OPE security:执行order询问时,服务器只需要知道目标值的顺序关系,当前值和旧的值之间的关系不应该泄露。例如:20,32,69 ,如果先删除32,再插入55,那么32和55之间的大小关系不应该泄露。
storage-aware OPE (stOPE):考虑了一个存储系统的模型(不仅是数据库类型的存储)

a. 初始化:(Initialization): 客户端生成一个密钥,而服务器也初始化它的状态。
b. 插入(Insert):(RND代表对称加密)客户端: 计算c ← RND.Enc(sk, v),并将c发送到服务器服务器:遍历OPE Tree,如果存在c,说明已经c之前被加过了,计算相应的OPE编码e。如果对于v的密    文c_t 存在,服务器增加它的ref-count(表示这个值被插入的次数),如果v已经不在这个OPE Tree中,将c插入到OPE Tree并且ref-count=1。
c. 删除(Remove):客户端: 计算c ← RND.Enc(sk, v) ,并将c发送到服务器.服务器:遍历OPE Tree,如果c不存在,返回error;如果c存在且ref-count >1, 则ref-count = ref-count -1;如果c存在且ref-count =1,将c从OPE Tree和OPE Table中移除;如果节点删除触发树平衡,服务器也会类似地更新OPE Table和任何包含那些OPE Encoding的存储器。
d. 查询(Query): 查找到最贴近v的v_1,v_2,使得v_1≤v< v_2
客户端: 计算c ← RND.Enc(sk, v) ,并将c发送到服务器.
服务器:遍历OPE Tree,按照性质3来定位最邻近的间隔。
查找排序:如果c在OPE Table 中,将OPE Table相应的编码返回,否则返回error

性质3:对于包含±∞的B-tree中的任何节点v来说,v_left≤v 的最大值v_left是:
1) v的左子树中最右边的孩子或者
2) 从v到根节点路径上的第一个值,右边界是v右子树中最左边的孩子(这是我推测的,原文没有看太懂)

Order-Preserving Encoding(OPE 保序加密)相关推荐

  1. 保序加密OPE 算法 BCLO09及python仿真

    文章目录 一.简介 二.算法描述 1. 随机保序函数和超几何分布的关系 2. 保序函数模型 3. 保序函数伪代码 4. 保序函数实例讲解 三.python仿真实验 四.参考文献 一.简介 数据库经过加 ...

  2. 密码学——保序加密算法(OPE算法-2009年提出)通俗易懂解析(小学生都能懂!)含python代码

    一. 预备知识 保序加密算法:最初是由2009年,Boldyreva等四个人提出来的,可简称BCLO-09算法,论文题目为<Order-Preserving Symmetric Encrypti ...

  3. 机器学习基础 维基翻译 保序回归 随机森林 Pipeline处理 及简单的sklearn例子

    Isotonic regression(保序回归) In numerical analysis, isotonic regression (IR) involves finding a weighte ...

  4. DPDK 报文调度/保序 终极解决方案 Event Dev 简介(硬件加速也很可能是鸿蒙微内核IPC性能的钥匙)...

    01 背景介绍 网络报文的分发以及保序一直以来是让人头痛的问题, 为了完整的解释Event Dev的背景,我们可以从两个基本概念的定义开始: 报文分发是指针对网络通信报文的某种特征(例如 5 tupl ...

  5. 多项式回归、分位数回归(Quantile Regression)、保序回归(Isotonic Regression)、RANSAC回归、核岭回归、基准回归模型(baseline)

    多项式回归.分位数回归(Quantile Regression).保序回归(Isotonic Regression).RANSAC回归.核岭回归.基准回归模型(baseline) 目录

  6. sklearn自学指南(part32)--保序回归

    学习笔记,仅供参考,有错必纠 文章目录 保序回归 保序回归 IsotonicRegression类对一维数据进行非递减实函数拟合.它解决了以下问题: $$ minimize ; \sum_i w_i ...

  7. Spark机器学习(3):保序回归算法

    保序回归即给定了一个无序的数字序列,通过修改其中元素的值,得到一个非递减的数字序列,要求是使得误差(预测值和实际值差的平方)最小.比如在动物身上实验某种药物,使用了不同的剂量,按理说剂量越大,有效的比 ...

  8. Python 第三方模块 机器学习 Scikit-Learn模块 有监督学习1 交叉分解,高斯过程,保序回归

    一.cross_decomposition 1.简介: 该模块用于进行"交叉分解"(cross decomposition) 2.使用: "典型相关分析"(Ca ...

  9. 离散化(保序 / 非保序)

    目录 概念 可能出现的问题 分类 1.保序 离散化模板( https://www.acwing.com/blog/content/277/) 例题:区间和 思路 代码 2.不保序 概念 给定一系列要为 ...

最新文章

  1. 软件工程实践之词频统计
  2. html中如何实现选择存储路径的功能_16687.VSM006分解03_如何打开HTML内嵌图像存储位置...
  3. 其实你女朋友也不是很爱你...
  4. 无人车制胜关键:Apollo决策系统全面剖析
  5. 不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
  6. 简单php修改mysql数据类型_MySQL入门很简单—MySQL数据类型
  7. windows 命令行中 「ftp」「sftp」命令的使用
  8. 404 Note Found 队-Alpha9
  9. JavaSE、JavaEE、JavaME三者的关系与区别
  10. 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )
  11. python 切片步长_python 切片步长
  12. MATLAB2014b安装(Ubuntu 14.10)
  13. 空城机在CSDN的四周年创作纪念日
  14. ML-czy的小组任务
  15. GDT(全局描述表)
  16. 求助!win10这段时间在使用其间经常性的系统中断这个进程100%cpu的情况
  17. 两张图读懂Saas Paas Iaas
  18. 替代 Elasticsearch,TDengine 助力四维图新将存储空间利用率提升 8 倍
  19. 华为机考108题(c++)(52-61)
  20. HTML5--制作导航栏

热门文章

  1. 安卓手机通讯录恢复教程
  2. 什么是内容引流?内容引流要怎么做?如何做好内容引流?
  3. 7-15 换硬币 (20 分)
  4. 又火了一本神书,看小说就能学 JavaScript?
  5. 计算机人机交互接口论文,人机交互小论文
  6. mac系统中brew下载路径
  7. Golang中defer的执行时机
  8. DataGuard - 利用Cascaded Redo Log Destinations避免WAN稳定性问题
  9. 还在苦恼怎么学PS、编程?这五个自学网站免费教!年薪百万不是梦
  10. Python_从零开始-同步学习进度