一种基于随机区间划分的保序加密方法

文档序号:7861027阅读:191来源:国知局
专利名称:一种基于随机区间划分的保序加密方法
—种基于随机区间划分的保序加密方法
技术领域
本发明属于信息安全技术领域,具体涉及ー种基于随机区间划分的保序加密万案(Order-Preserving Encryption Scheme based on Random Interval Division,RID-OPES)o
背景技木随着云计算的商用化,越来越多的公司已经推出了自己的云存储产品,无论是面向企业的Amazon S3,面向开发者的Database, com,面向个人的DropBox,还是移动终端上的iCloud,都已经出现在了我们的生活中。然而,调研机构CBIResearch相关数据表明 目前,大约有80%左右的企业不愿意将内部业务数据放在公有云上,原因主要是出于对数据安全的考虑,同时,越来越频繁的用户隐私泄露事件也使得个人用户不得不为云存储的安全性产生担忧,隐私安全问题已经成为阻碍云存储应用的主要因素之一。云计算的隐私安全问题源于其数据外包和服务租赁的特点,用户从将自己的数据交给云计算平台托管的一刻起,就已经失去了对数据的直接控制力,云服务提供者(Cloud Service Providers,CSPs)可以在不受到访问权限控制约束的情况下访问用户的数据,因此,如果云服务提供者本身就是不可信的,那么用户的数据隐私必然会遭到侵犯,另ー方面,即使云服务提供者是可信的,攻击者也有可能绕过云平台的认证机制,通过直接访问下层文件或原始数据的方式获取到用户的数据。解决上述隐私问题的最直接的方法就是加密。用户在本地对隐私数据进行加密,将密文存储在云平台进行托管,在需要使用数据时,用户向云平台申请密文数据,在本地进行解密之后再作使用。然而,传统加密算法大多都不支持对密文的运算操作,这会导致,一方面,对加密数据的有效检索难以通过传统的信息检索方式实现,这ー问题在用户数据较大或数据在云端形成规模之后将会尤为突出,为了检索到自己需要的数据,用户不得不将大文件,或是云端的大量文件传输回本地,再逐一解密进行检索,这就要求用户拥有高网络带宽,同时拥有高运算能力的终端以支持大量数据解密的需要,即使如此,文件传输和解密过程中造成的时间浪费也会极大地降低用户使用云存储的积极性。另ー方面,云服务提供者在云平台上进行应用扩展也会遇到困难,例如,用户需要对云端的数据进行排序以取得最接近自己要求的結果,或是查询一定的范围内是否有自己需要的数据,而云计算提供者都会束手无策,这极大的削弱了云计算的应用范围和优势。保序加密算法(Order-Preserving Encryption, ΟΡΕ)的加密函数能够保持明文数值之间的大小关系,即,对任意的明文Pi〈P2,加密后得到的密文满足C1Cc215利用保序加密算法,密文数据的匹配,范围查询,排序等操作都可以有效的得到解决,然而与此同时,保序加密算法暴露了明文之间大小关系,以牺牲了一定的安全性作为代价。如何在利用保序性的前提下,尽可能的提高保序加密算法的安全性和运行效率,并应用于云计算存储环境下,解决云平台的检索瓶颈,具有重要的理论意义和应用价值。
发明内容本发明的目的在于提出一种基于随机区间划分的保序加密方法(RID-0PES),以解决上述技术问题。为了实现上诉目的,本发明采用如下技术方案一种基于随机区间划分的保序加密方法,输入明文字符串集合为{pl},加密密钥为K·;所述保序加密方法包括加密方法步骤ー使用预处理模块对{pl}中每个明文字符串进行16进制编码,得到16进制的数值字符串集合{ns};预处理模块统计{ns}中每个16进制字符的出现次数,字符λ的出现次数等于集合中字符串数,归ー化后得到字符频率权值W= (wA, W0, ···, wf);步骤ニ 使用安全哈希算法SHAl由加密密钥Kene生成主种子sdp ;步骤三将权值W写入到加密密钥K·末尾,得到解密密钥K。;步骤四初始化密文字符串集合{ 1+ト0 ;步骤五根据W建立权重树;步骤六如果{ns}处理完毕,那么输出{ci}和Kde。, 終止算法;步骤七否则从Ins}中取出一个未经处理的数值字符串ns,使用OPRIT算法对ns进行加密,得到密文字符串ci,将ci加入密文字符串集合{ci}中,返回步骤六。本发明进一步的改进在于步骤一中预处理模块以字符流的形式读入明文数据,对字符流中的字符进行编码,将字符流转换成为对应的数值字符串ns ;编码之后的数值字符串保持原字符串之间的字典序关系;该编码方式是可逆的。本发明进一步的改进在于步骤ー种使用讲过调整的第一个Unicode平面内的UTF-16BE字符集作为编码的基础,调整后的字符集依然满足保序性和可逆性;调整后的第ー个Unicode平面内的UTF-16BE字符集为
权利要求
1.一种基于随机区间划分的保序加密方法,其特征在于,输入明文字符串集合为{pi},加密密钥为K·;所述保序加密方法包括加密方法 步骤ー使用预处理模块对{pi}中每个明文字符串进行16进制编码,得到16进制的数值字符串集合Ins};预处理模块统计{ns}中每个16进制字符的出现次数,字符λ的出现次数等于集合中字符串数,归ー化后得到字符频率权值W=(wA,W(l,-,wF); 步骤ニ 使用安全哈希算法SHAl由加密密钥K·生成主种子sdp ; 步骤三将权值W写入到加密密钥K·末尾,得到解密密钥Ktte ; 步骤四初始化密文字符串集合丨ゴ!ト0 ; 步骤五根据W建立权重树; 步骤六如果{ns}处理完毕,那么输出{ci}和Kde。,終止算法; 步骤七否则从Ins}中取出一个未经处理的数值字符串ns,使用OPRIT算法对ns进行加密,得到密文字符串ci,将ci加入密文字符串集合{ci}中,返回步骤六。
2.根据权利要求I所述的ー种基于随机区间划分的保序加密方法,其特征在于,步骤一中预处理模块以字符流的形式读入明文数据,对字符流中的字符进行编码,将字符流转换成为对应的数值字符串ns ;编码之后的数值字符串保持原字符串之间的字典序关系;该编码方式是可逆的。
3.根据权利要求2所述的ー种基于随机区间划分的保序加密方法,其特征在于,步骤ー种使用讲过调整的第一个Unicode平面内的UTF-16BE字符集作为编码的基础,调整后的字符集依然满足保序性和可逆性; 调整后的第一个Unicode平面内的UTF-16BE字符集为
4.根据权利要求2所述的ー种基于随机区间划分的保序加密方法,其特征在于,对于编码后数值字符串ns,预处理模块统计ns中出现的每个数值字符的出现次数,并除以ns数值字符的总数,计算表示每个数值字符出现频率的权值。
5.根据权利要求I所述的ー种基于随机区间划分的保序加密方法,其特征在于,步骤五中所述权重树是ー棵ニ叉树,其父节点的权重是左右子节点权重之和,根节点权重是所有叶子节点权重之和;权重树采用递归的方式自底向上逐步建立,对于给定权值W和子区间个数n,首先建立含有η棵树的集合S,S中每棵树只有ー个节点,其中第i个节点的值为Wi,之后,采用如下的方式对S中的树进行合并5. I、如果S中只有ー棵树T,那么返回T,执行结束;5. 2、否则将S平分为两个子集S1和Sr,S1和も分别为S的左半部分和右半部分,并继续对S1和&分别进行合并得到两棵子树T1和I;;建立ー棵新的树T,T1和I;分别作为T的左子树和右子树,T的根节点的权值是T1和I;根节点权值之和,返回T。
6.根据权利要求I所述的ー种基于随机区间划分的保序加密方法,其特征在于,步骤七中所述OPRIT算法为输入 7. I、数值字符串ns ; 7.2、主种子sdp ; 输出密文字符串ci ; 步骤 8.1、将定义域0=[1^11,111&1)均匀划分为N个不相交的桶J(l),···,J(N),每个桶的大小为(max-minノ/N ; 8. 2、在数值字符串最后添加终止符号ns — ns+λ,初始化密文字符串ci为空字符串; 8. 3、初始化OPRIT的根节点区间I — D,初始化种子sd — sdp ; 8. 4、取出ns中未经处理的第一个数值字符m e {λ,0,··+},调用wRID算法,根据sd计算I的第m个随机子节点区间Im,令I — Im ; 8. 5、如果/e./(O,其中i = 1,···,N,那么已经到达不可划分的值节点,根据sd在I中取值得到密文值r,将r转换为字符串,加入到密文字符串的尾部ci — ci+r,返回步骤8. 3 ;否则继续执行; 8. 6、如果m = λ,那么已经到达字符串末尾,根据sd在I中取值得到密文值r,将r转换为字符串,加入到密文字符串的尾部ci — ci+r,输出ci,算法结束;否则继续执行; 8.7、此节点为非叶子节点,根据m计算下一次划分的种子sd — (sd+m),返回步骤8. 4。
7.根据权利要求6所述的ー种基于随机区间划分的保序加密方法,其特征在干,OPRIT算法中调用的wRID算法为 输入 10. I、待划分区间I ; 10. 2、初始种子Sd ; 10.3、子区间编号m ; 输出1的第m个加权随机子区间Im ; 步骤 11.I、初始化节点η为权重树的根节点,初始化区间[α,β ) — I,种子Sd1=IiextLeft (sd), sdr=nextRight (sd),其中,nextLeft 和 nextRight 为两个随机数发生器; 11. 2、如果η是叶子节点,令Im — [α,β),返回Im,结束算法; 11. 3、对于节点η,具有权值《,其左右孩子节点Ii1和分别具有权值W1和首先创建两个[0,I)范围内的相互独立的均匀伪随机变量R1 (Sd1)和Rr(Sdr),分别使用R1(Sd1)和Rr (sdr)产生两个伪随机数!T1和rr,计算
8.根据权利要求I至7中任一项所述的一种基于随机区间划分的保序加密方法,其特征在于,所述保序加密方法还包括解密方法,输入密文字符串集合lei},解密密钥Kde。,解密过程包括如下步骤 步骤A :从解密密钥K-末尾提取权值W ; 步骤B :使用安全哈希算法SHAl由解密密钥生成主种子sdp ; 步骤C :初始化明文字符串集合ひ/}ト0 ; 步骤D :根据W建立权重树; 步骤E :如果{ci}处理完毕,那么输出{pi},終止算法; 步骤F :否则从{ci}中取出ー个未经处理的密文字符串ci,使用OPRIT算法对ci进行解密,得到明文字符串pl,将Pl加入密文字符串集合{pl}中,返回步骤E。
9.根据权利要求8所述的ー种基于随机区间划分的保序加密方法,其特征在于,解密密钥Ktte包括密密钥K·的全部内容外,还包括数值字符频率权值W= (WA,Wtl, - ,Wf)。
10.根据权利要求8所述的ー种基于随机区间划分的保序加密方法,其特征在于,步骤D中所述权重树是ー棵ニ叉树,其父节点的权重是左右子节点权重之和,根节点权重是所有叶子节点权重之和;权重树采用递归的方式自底向上逐步建立,对于给定权值W和子区间个数n,首先建立含有η棵树的集合S,S中每棵树只有ー个节点,其中第i个节点的值为Wi,之后,采用如下的方式对S中的树进行合并6. I、如果S中只有ー棵树T,那么返回T,执行结束;6. 2、否则将S平分为两个子集S1和も,S1和も分别为S的左半部分和右半部分,并继续对S1和分别进行合并得到两棵子树T1和I;;建立ー棵新的树T,T1和I;分别作为T的左子树和右子树,T的根节点的权值是T1和I;根节点权值之和,返回T。
全文摘要
本发明涉及一种基于随机区间划分的保序加密方法,该方法在已有的基于区间划分的随机数生成算法的基础上,提出了加权的随机区间划分算法与保序随机区间树,克服了以固定的方式对区间进行划分存在的安全问题;本发明方法能够有效的解决字符串数据的保序加密问题,分析与测试表明,本发明方法具有线性的加密与解密时间,常量级的密文扩张率,能够有效的抵御穷举攻击和基于统计分析的攻击。本发明方法特别适合于机密数据的外包存储,可以有效解决密文数据的匹配、范围查询、以及关系运算等操作。
文档编号H04L29/08GK102843372SQ20121031090
公开日2012年12月26日 申请日期2012年8月28日 优先权日2012年8月28日
发明者桂小林, 田丰, 杨攀, 余思, 刘阳, 郭岳龙, 林建财 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1