一种基于泄序算法的数据库密文比较检索方法技术

技术编号:19964774 阅读:39 留言:0更新日期:2019-01-03 13:05
本发明专利技术公开一种基于泄序算法的数据库密文比较检索方法。该数据库密文比较检索方法主要是在数据库客户端与数据库服务器中间加一个数据库代理,数据库代理完成对sql语句进行改写,包括把sql语句中的敏感数据使用泄序算法进行加密保护,敏感数据比较部分利用数据库用户自定义函数来实现,对检索结果使用泄序解密算法进行解密操作,从而完成在数据库服务器端密文比较检索操作。此数据库密文比较检索算法具有安全性较高,且加密速度快,且膨胀率较低的特点。

A database ciphertext comparison retrieval method based on leaking order algorithm

The invention discloses a database ciphertext comparison retrieval method based on a leaking order algorithm. This database ciphertext comparison retrieval method mainly adds a database agent between the database client and the database server. The database agent completes the rewriting of SQL statements, including encrypting and protecting the sensitive data in SQL statements using the leak order algorithm. The sensitive data comparison part is implemented by the user-defined function of the database, and decrypting the retrieval results using leak order. The algorithm performs decryption operation, thus completing the ciphertext comparison and retrieval operation on the database server side. This database ciphertext comparison retrieval algorithm has the characteristics of high security, fast encryption speed and low expansion rate.

【技术实现步骤摘要】
一种基于泄序算法的数据库密文比较检索方法
本专利技术属于信息安全
,具体涉及一种基于泄序算法(Order-RevealingEncryption,ORE)的数据库密文比较检索方法。
技术介绍
随着云计算技术的高速发展,很多的企业与个人用户将数据存储到云端服务器,近年来由于黑客的非法入侵以及云端服务器管理员的不当操作造成了多起大量用户资料和私人数据泄露事件。为了保证数据安全,企业和个人用户会使用加密算法对数据进行加密,将数据以密文形式存储在云端服务器,这样,可搜索加密技术(searchableencryption,SE)便应运而生。本专利技术的一个应用场景:用户使用包含WHERE比较条件的sql语句在数据库中搜索符合条件的记录。由于数据是密文存储的,明文搜索方法已经失去作用。本专利技术使用泄序算法、数据库的用户自定义函数(User-DefinedFunction,UDF)、SQL语句改写技术很好的解决了该问题。本文所采用的泄序加密算法从本质上来说一种对称加密算法,与保序加密算法(Order-PreservingEncryption,OPE)相似,保序加密算法是一种支持密文数据比较大小的加密算法,此算法加密明文后,可以直接通过密文数据得到大小关系,即,对任意明文p1>p2,加密后得到的密文满足c1>c2。利用此算法,可以对密文数据进行数据匹配、范围查询以及排序等操作,但此算法泄露了明文数据之间大小,遭受推理攻击后可以恢复一半以上的明文数据。相对于保序加密算法,泄序加密算法具有更高的安全性,此种算法要求加密后的密文数据不保持原明文数据的大小关系,要依靠专门的比较函数进行大小比较,即,对任意明文数据p1>p2,加密后得到的密文数据c1、c2,满足比较函数Compare(c1,c2)>0。泄序加密算法利用明文数据的比特位bit进行运算,泄露的仅是明文数据中第一个不相同的比特位,由于其是按位进行运算,加密速度较快,密文膨胀率较小。
技术实现思路
本专利技术的目的在于提出一种基于泄密算法的数据库密文比较检索方法,泄序算法具有安全性较高、速度快、膨胀率低的特点。本专利技术解决其技术问题所采用的技术方案是:一种泄密加密ORE方法,其方法包括以下步骤:步骤1:输入加密密钥key与待加密明文数据p,设p有n比特位,将p表示成比特位形式为:p=m0m1…mn,设明文数据每个比特位在密文中扩展为out_blk_len位,明文p加密后密文为ctxt;步骤2:计算block_mask=2^out_blk_len-1;步骤3:初始化数组prf_input_buf,设i代表p的第i个比特位;步骤4:计算明文第i位比特位位于明文数据的字节序列记为byteind;步骤5:计算明文数据的第i位掩码记为mask及明文p的字节偏移量记为offset;步骤6:计算密文块ctxt_block=F(key,prf_input_buf),其中F为加密函数;步骤7:如果第i位的mask>0,则ctxt_block=ctxt_block+1;步骤8:ctxt_block与block_mask做与操作;步骤9:ctxt_block左移(n-i-1)*out_blk_len位;步骤10:ctxt与ctxt_block做异或操作;步骤11:更新prf_input_buf;步骤12:重复步骤4至步骤11,直至明文p的每一个比特位遍历完成;步骤13:输出加密后的密文ctxt。一种基于泄密加密的解密方法,其方法包括以下步骤:步骤1:输入密文数据记为ctxt,加密密钥记为key,明文数据的比特位数记为nbits,每个明文比特位在密文中扩展记为out_blk_len。步骤2:初始化明文数据按比特位的形式表示为p=m0m1…mi…mn-1,其中p表示明文,n表示p的比特位数,i表示下表,i∈[0,n-1)。步骤3:计算明文数据第i位的加密后密文数据的掩码,设掩码为:block_mask=(2^out_blk_len-1)<<(n-i-1)*out_blk_len。步骤4:密文数据ctxt与block_mask做逻辑与操作,然后右移(n-1-i)*out_blk_len位,计算得到的值记为Ci。步骤5:利用加密函数F和加密密钥key,计算出加密后的值记为F(key,m0...mi-1)。步骤6:比较Ci与F(key,m0...mi-1)的值是否相等,如果不等mi=1,否则mi=0。步骤7:如此循环,直到i=n-1,解出明文数据的所有比特位,利用移位等操作得到明文数据。一种基于泄密算法的密文比较方法,其方法包括以下步骤:步骤1:输入需要比较的两个ORE算法加密的密文数据记为ctxt1,ctxt2。步骤2:检查两个密文数据ctxt1和ctxt2的参数是否匹配,如果不匹配,直接退出。步骤3:依据密文数据的参数计算出明文数据有n比特位,每个比特位在密文中扩展out_blk_len位,计数i=0。步骤4:判断i<n,如果不符合条件,返回输出ctxt1的密文对应的明文数值等于ctxt2的密文对应的明文数值,如果符合条件,执行步骤5。步骤5:计算明文数据第i位的加密后密文数据的掩码,设掩码为为:block_mask=(2^out_blk_len-1)<<(n-i-1)*out_blk_len。步骤6:密文数据ctxt1与block_mask做逻辑与操作,然后右移(n-1-i)*out_blk_len位,计算得到的值记为T1。密文数据ctxt2与block_mask做逻辑与操作,然后右移(n-1-i)*out_blk_len位,计算得到的值记为T2。步骤7:比较T1和T2大小,如果T1大于T2,返回ctxt1的明文值大于ctxt2的明文值,如果T1小于T2,返回ctxt1的明文值小于ctxt1的明文值,否则,执行步骤8步骤8:计数器i加1。执行步骤4。一种基于泄序算法的数据库密文比较检索方法,涉及技术包括泄序算法的加密算法、泄序算法的解密算法,sql语句改写,数据库用户自定义函数UDF实现的泄序算法的密文比较算法,其特征在于,方法包括以下步骤:步骤1:数据库客户端(dbclient)输入sql语句,发送sql语句到数据库代理(dbproxy)。步骤2:数据库代理接收到客户端发送的sql语句,首先对sql进行解析,对sql语句中敏感数据进行改写,例如:在插入数据时,对敏感数据使用泄序加密算法加密,在检索数据时,对sql语句中敏感数据的比较部分调用用户自定义函数进行比较。步骤3:数据库代理发送改写后的sql到数据库服务器(dbserver),数据库服务器执行sql语句,完成数据存储、使用用户自定义UDF函数进行比较检索。步骤4:数据库服务器发送sql语句执行结果到数据库代理。步骤5:数据库代理检查结果中是否包含敏感字段结果,如果包含敏感字段结果,使用泄序加密算法对应的解密算法对密文数据进行解密,最后发送最终结果到数据库客户端。步骤6:数据库客户端接收sql语句执行结果。附图说明图1为一种ORE加密算法示意图图2为一种ORE加密算法流程图图3为一种ORE加密算法的解密算法流程图图4为一种ORE算法密文数据比较流程图图5本文档来自技高网
...

【技术保护点】
1.一种基于泄序算法的数据库密文比较检索方法,该加密算法具有安全性较高且加密速度快,膨胀率低的特点,其特征在于包含以下步骤:步骤1:数据库客户端输入sql语句,发送sql语句到数据库代理;步骤2:数据库代理接收到客户端发送的sql语句,首先对sql进行解析,对sql语句中敏感数据进行改写,例如:在插入数据时,对敏感数据使用泄序加密算法加密,对sql语句中敏感数据的比较部分使用用户自定义函数进行比较;步骤3:发送改写后的sql到数据库服务器,并且执行sql语句,完成数据存储、使用用户自定义UDF函数进行比较检索;步骤4:数据库服务器发送sql语句执行结果到数据库代理;步骤5:数据库代理检查结果中是否包含敏感字段结果,如果包含敏感字段结果,使用泄序加密算法对应的解密算法对密文数据进行解密,最后发送最终结果到数据库客户端;步骤6:数据库客户端接收sql语句执行结果。

【技术特征摘要】
1.一种基于泄序算法的数据库密文比较检索方法,该加密算法具有安全性较高且加密速度快,膨胀率低的特点,其特征在于包含以下步骤:步骤1:数据库客户端输入sql语句,发送sql语句到数据库代理;步骤2:数据库代理接收到客户端发送的sql语句,首先对sql进行解析,对sql语句中敏感数据进行改写,例如:在插入数据时,对敏感数据使用泄序加密算法加密,对sql语句中敏感数据的比较部分使用用户自定义函数进行比较;步骤3:发送改写后的sql到数据库服务器,并且执行sql语句,完成数据存储、使用用户自定义UDF函数进行比较检索;步骤4:数据库服务器发送sql语句执行结果到数据库代理;步骤5:数据库代理检查结果中是否包含敏感字段结果,如果包含敏感字段结果,使用泄序加密算法对应的解密算法对密文数...

【专利技术属性】
技术研发人员:杨万年牛自宾滕海明李卫明
申请(专利权)人:杭州弗兰科信息安全科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1