求保序加密算法的代码!!!

run_for_dream 2017-05-25 12:41:40
求这个论文的算法 可付现!!!
Agrawal等提出的数值数据保存顺序的加密(OPES) 方法通过建模、平铺、镜像等过程,加密的同时保留大小属性,从而实现了密文数据的比较。
OPES+继承了OPES的基本思想,是基于字符型数据的数据库加密方式,可以按照某种规则匹配进行模糊排序。BRAQ w 在建模前进行类型转换,把字符型数据转换成数值型,英文字符转换成其ASCII值,汉字转换成区位码值。
由于空间数据既不是纯数值型数据也不是纯字符型数据,而是根据应用场景的不同采用不同的格式,因此,OPES+方法仍不能直接应用于空间数据,需要进行一定程度的转换。同时,OPES算法时间和空间复杂度较高,不适合移动互联网海量数据的情景。针对以上问题,提出一种改进的保序加密算法以适应本文模型的场景。算法主要分为三个阶段: 数据转换阶段、桶划分阶段以及加密阶段。
1) 数据转换阶段。如果空间数据中的精度和纬度使用十进制浮点型数值表示,则可以跳过这个阶段; 而如果应用是采用度分秒为单位表示经纬度,则需要借鉴OPES+的思想进行数据转换,转换成数值表示。转换过程很简单,若用度分秒来表示原始值,那么数值表示的计算公式如下:
Decimal Degrees= Degrees+Minutes/60+Seconds/3600
例如,3117´11"=31+17/60+11/3600=31.286388888889。这样转换后的空间数据也成为了数值表示,方便进行大小比较和数值计算。
桶划分阶段。将排序好的位置数据划分成桶,使得划分后的数据尽量呈均匀分布。显然,桶的数量不能过大,否则会影响算法的效率。
定义 1 桶划分。假设明文空间 P = { p1,p2,…,pn} ( n ∈( 1,+ ∞ ) ) pi(
i ≤ n) 表示原始空间数值数据( 经度或纬度) 。若 将 P 划 分 为 P = { B1,B2,…,Bm} ( m ≤ n) ,则Bi= { pj,pj +1,…,pk} ( j ≤ k) ,且满足对于任意两个桶划分,若 i ≠ j,则 Bi∩ Bj = Ø,以上过程称为桶划分。

定义2划分函数Split (Bi)。该函数的功能是将Bi线性划分为两个子桶,直到每个桶内的点的数量小于给定的阂值。
划分方法如下:
首先,需要计算pi(pi∈Bi)的线性期望值。这里可以使用均匀分布的期望值。假设 ≤ ≤…≤ ( ),则 的期望值可以使用以下公式计算:

选择距离期望值最远的点进行递归划分。
加密阶段。将桶内的数据分别进行加密,保证加密后数值的大小顺序不变。
定义3 加密函数M(p)。由于加密过程需要保存原值的大小顺序不变,因此加密过程相当于映射过程,实现以上功能的函数M(p)称为加密函数。假设密文空间 由明文空间 加密所得,即 。
定义4桶宽 。若 满足 ,则称 为桶宽。而 表示加密后密文的宽度,同样道理 。
根据以上定义,加密过程如图3所示:

对于桶 中的任意点 ,其密文值 可以通过以下公式计算:
因此,加密过程就可以规约为加密函数 的求解。首先假设明文在区间[0,p)上的密度函数为 ,那么对于任意的范围参数z,都能使下面公式的 呈均匀分布:
可以推导出 ,即 在p点的斜率与p成正比。令 作为二次项系数,可以得到:

范围参数z不能过大也不能过小,这里以整数值计算以留下足够的空间,并且z的取值需要满足以下两个条件:1)两个不同明文值对应两个不同的密文值,即 ;2)密文空间必须是明文空间大小的正整数倍,即 。
将 的公式代入以上约束条件1)得:

因此满足以上不等式且 的z可作为 的范围参数。
定义5密钥空间K。每一个桶 都有自己的密钥 ,因此 称为密钥空间,m为桶划分的个数。 ,其中 为第i个桶的桶宽, 和 分别为第i个加密函数的二次项系数和范围参数。
K在数据库初始化的阶段生成,当加入新值的时候可以使用K进行加密,而不用重新计算,满足增量式更新的要求。由于使用对称密钥进行加密,解密过程与加密过程相反,这里不再赘述。
以上改进的算法保持了原有OPES的部分优良性质,如可以高效地插入和修改数据库中的数据,也可以在加密数据库上建立索引,能够很好地解决移动SNS中的位置数据经常变化需要频繁更新加密数据库,从而导致查询效率明显下降的问题。进一步的,该算法加入了数据转换阶段,将空间数据转化为数值数据,便于进行统一的处理。同时改进的算法引入桶划分的概念,将明文空间划分为桶,然后使用密钥空间K分别对每一个桶内的数据进行加密,保证了密文数据和明文数据具有相同的大小顺序,从而实现了位置数据的加密查询。
...全文
781 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT-邢 2019-11-27
  • 打赏
  • 举报
回复
解密算法是什么原理 ,
vhyu 2017-06-29
  • 打赏
  • 举报
回复
楼主解决了么

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧