【技术实现步骤摘要】
一种基于揭序加密的多数据类型密文比较方法
本专利技术涉及加密
,具体而言,涉及一种基于揭序加密的多数据类型密文比较方法。
技术介绍
人工智能技术的兴起,将大数据与计算机技术相结合,从海量数据中获得有价值的信息,充分提升了数据的利用价值,但是明文状态下的数据挖掘是造成数据隐私泄露的直接原因,给个人或者组织带来不可预料的损失。研究学者们尝试利用新型密码技术来保护挖掘运算中的数据的隐私安全,包括同态加密技术、安全多方计算、保形加密、保序加密、揭序加密等。保序加密(OrderPreservingEncryption,OPE)是指密文保留原有明文顺序的加密技术,能够对密文执行比较运算,来判断相应明文的大小关系。能够在密文信息情况下,实现对数据的比较、排序。可以应用于数据库加密、密态统计等场景下范围查询、近邻检索等。2004年,Agrawal等人首次提出了保序加密的概念,是指密文保留原有明顺序的加密方案。同时,Agrawal等人并构造了第一个完整的保序加密体制,但是未给出保序加密的安全性定义和方案的可证明安全。2009年,Boldyreva等人深入研究了保序加密的可证明安全,并构造了第一个可证明安全的保序加密方案(BCLO方案)。随后,Boldyreva等人在美密会上分析了保序加密的单向安全性、随机保序函数安全性,并指出如果保序加密为了只泄露顺序信息和等值信息,算法必须产生足够大的密文。也即,密文空间必须相对明文空间扩张一定的大小,以保障安全性。2013年,DongxiLiu等人提出了一种非线性的保序加密体 ...
【技术保护点】
1.一种基于揭序加密的多数据类型密文比较方法,其特征在于,包括:/n步骤1,系统建立算法ORE.Setup(k)→(PP,sk):/n输入安全参数k,选择一个参数M≥3,令明文比特长度为n;/n选择一个带密钥的伪随机函数F:
【技术特征摘要】
1.一种基于揭序加密的多数据类型密文比较方法,其特征在于,包括:
步骤1,系统建立算法ORE.Setup(k)→(PP,sk):
输入安全参数k,选择一个参数M≥3,令明文比特长度为n;
选择一个带密钥的伪随机函数F:表示密钥空间,表示剩余类环;一个对称加密算法symmetricAlg=(symmetricAlg.Encrypt,symmetricAlg.Decrypt),令公共参数PP=(n,M,F,symmetricAlg),并随机选择一个私钥sk;
步骤2,加密算法ORE.Encrypt(PP,sk,m)→c:
输入公共参数PP、私钥sk和明文m,令明文m的二进制表达为m=(b0b1b2…bn-1)2,即计算:
cdata=symmetricAlg.Encrypt(k,m);
uore,i=F(sk,(i,b0b1b2…bi-1||0n-i))+bimodM,i=0,1,…,n-1;
输出密文c=(cdata,(uore,0,uore,1,...,uore,n-1));
步骤3,解密算法ORE.Decrypt(PP,sk,c)→m:
输入公共参数PP、密文c=(cdata,(uore,0,uore,1,...,uore,n-1))和私钥sk,计算输出明文m=symmetricAlg.Decrypt(sk,cdata);
步骤4,比较算法ORE.Compare(PP,c,c′)→b:
输入公共参数PP以及两个密文c=(cdata,(uore,0,uore,1,...,uore,n-1))和c′=(c′data,(u′ore,0,u′ore,1,...,u′ore,n-1)),令与两个密文对应的明文分别为m、m′,则:
如果对于所有的i=0,1,...,n-1,uore,i=u′ore,i,则输出b=0,说明m=m′;
如果找到最小的i∈{0,1,...,31},使得uore,i≠u′ore,i,那么当u′ore,i=uore,i+1modM,则输出b=1,说明m>m′;
如果找到最小的i∈{0,1,...,31},使得uore,i≠u′ore,i,那么当u′ore,i≠uore,i+1modM,则输出b=2,说明m<m′。
2.根据权利要求1所述的基于揭序加密的多数据类型密文比较方法,其特征在于,采用分组密码算法AES128来实例化所述基于揭序加密的多数据类型密文比较方法中的伪随机函数F和对称加密算法;该分组密码算法AES128包括密钥扩展算法AES128.KeySchedule(key)→keyexp、加密算法AES128.Encrypt(keyexp,m)→c、解密算法AES128.Decrypt(keyexp,c)→m;其中,密钥key的比特长度为128;keyexp由10个128比特的轮子密钥组成,共计1280比特;明文m的比特长度n为128。
3.根据权利要求2所述的基于揭序加密的多数据类型密文比较方法,其特征在于,步骤1系统建立算法ORE.Setup(k)→(PP,sk)具体包括:
(1-1)输入安全参数k,即128比特的密钥key;
(1-2)运行AES128.KeySchedule(key)→keyexp;
(1-3)根据用户所需要的数据类型,可以选取n=1,2,...,128;在此我们假设使用C语言的unsignedint类型,支持32位整型的比较运算,即明文的比特长度n=32;
(1-4)令M=4;
(1-5)选择AES128.Encrypt({0,1}1280,{0,1}8||{0,1}31||089)作为伪随机函数F;
(1-6)选择(AES128.Encrypt,AES128.Decrypt)作为对称加密算法symmetricAlg;
(1-7)输出密钥sk=keyexp,公共参数PP={n,M,F,symmetricAlg}。
4.根据权利要求3所述的基于揭序加密的多数据类型密文比较方法,其特征在于,可以通过预先设置公共参数PP={n,M,F,symmetricAlg},系统建立算法只运行分组密码算法AES128中的密钥扩展算法AES128.KeySchedule(key)→keyexp,将系统建立算法简化为ORE.Setup(key)→sk。
5.根据权利要求3所述的基于揭序加密的多数据类型密文比较方法,其特征在于,步骤2加密算法ORE.Encrypt(PP,sk,m)→c具体包括:
(2-1)输入公共参数PP=(n,M,F,symmetricAlg)、1280比特的私钥sk和明文m;
(2-2)在明文m右边填96个0,得到一个128比特的数据m128=m||096;
(2-3)运行分组密码算法AES128中的加密算法得到128比特数据密文cdata=AES128.Encrypt(sk,m128);
(2-4)将32比特明文表示为二进制m=(b0b1b2...
【专利技术属性】
技术研发人员:汤殿华,黄云帆,赵伟,任娟,尉小鹏,李泓泉,
申请(专利权)人:中国电子科技集团公司第三十研究所,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。