不经意键值存储编解码方法、系统、装置和介质制造方法及图纸

技术编号:39161032 阅读:15 留言:0更新日期:2023-10-23 15:02
本发明专利技术公开了一种不经意键值存储编解码方法、系统、装置和介质,包括编码和解码两个步骤。编码首先对键值对集合的所有k值进行多个哈希运算。对每个元素的多个哈希值进行判断,如果所有哈希值都与其他元素的哈希值碰撞,则优先编码。编码过程中将键值对v值分为多个秘密份额,分别存入哈希函数值在向量L上的对应位置。如果无处可存,则启用向量R中的辅助位置进行存储。解码需先询问某个k值是否在键值对集合中,对于多个解码值。如果能从键值对集合中的v值匹配到一个解码值,则说明k在键值对集合中,完成解码。本发明专利技术的优点是:拥有较低的通信和计算花销;适用于编码和解码操作由同一方进行的场景。进行的场景。进行的场景。

【技术实现步骤摘要】
不经意键值存储编解码方法、系统、装置和介质


[0001]本专利技术涉及信息安全
,特别涉及一种保护双方隐私的不经意键值存储(OKVS)的编解码方法、系统、装置和介质。

技术介绍

[0002]在当前大数据时代,隐私保护技术的研究逐渐由单纯的密码学方法向多领域交叉的方向发展。目前,隐私集合交集计算已经成为隐私保护领域的热点和重要研究方向之一,该技术在需要保护隐私的场景中有重要应用,如医疗、金融等领域。随着各国政府开始实施数字化转型战略,涉及大量的个人数据,如何在保护个人隐私的前提下更好地共享这些数据成为倍受关注的问题。隐私集合交集计算作为保障数据隐私的关键技术,日益重要。
[0003]隐私集合交集计算实现参与双方(或多方)在不暴露原始数据的情况下对多个数据集合进行交集计算。当前的研究中,有许多基于加密协议的隐私集合交集计算方法,包括同态加密(HE)、差分隐私(DP)、安全多方计算(MPC)以及零知识证明(ZKP)等。这些方法都采用了加密算法来对原始数据进行保护,使其可以在未解密的情况下进行集合交集运算。此外,还有基于哈希技术的隐私保护方法,例如局部敏感哈希(LSH)和布谷鸟哈希图(CHG)等,这些方法可以对原始数据进行哈希处理,然后使用哈希值进行隐私集合交集计算,从而达到保护数据隐私的目的。
[0004]现有的基于哈希技术进行隐私集合交集计算的方法存在以下问题:
[0005]映射范围小的哈希函数不可避免地会出现哈希冲突,即不同的原始数据被映射为相同的哈希值。如果没有采取特殊的防范措施,会导致误判,降低隐私保护效果。
[0006]由于哈希函数是公开的,攻击者可以使用各种方法来进行分析和破解。当哈希值集合较小时,攻击者可能会使用穷举法等暴力攻击方法尝试破解哈希值。此外,如果哈希函数本身有弱点或不够安全,则会造成隐私泄露。

技术实现思路

[0007]本专利技术针对现有技术的缺陷,提供了一种不经意键值存储(OKVS)的编解码方法、系统、装置和介质,用于解密前对解密值有预期的场景。
[0008]为了实现以上专利技术目的,本专利技术采取的技术方案如下:
[0009]一种不经意键值存储的编解码方法,包括如下步骤:
[0010]基于3哈希布谷鸟图的OKVS构造方案包含两个算法:编码算法(Encode)和解码算法(Decode);
[0011]S1准备阶段:定义三个哈希函数为h1,h2,h3和两个函数l(
·
)和r(
·
)。其定义域都是整数环。哈希函数的值域为{1,

,m},l(
·
)和r(
·
)则分别返回m长和λ长的0

1比特串。
[0012]S2编码初始化阶段:初始化空向量L,分别满足L∈(F
l
)
m
、R∈(F
l
)
λ
,Q为空队列,队列Q之后用来存放符合一定条件的键值对(k
i
,v
i
)。
[0013]S3键值对分类阶段:将键值对集合{(k1,v1),

,(k
n
,v
n
)}所有的k进行三次哈希运
算,统计碰撞情况,将三个哈希值都碰撞的键值对(k
i
,v
i
)放入队列Q中。
[0014]S4编码阶段:先编码队列Q中的键值对,再编码队列Q之外的键值对,顺序将键值对编码到向量L和向量R中,最终得出最后的OKVS S:=(L,R)。
[0015]S5解码阶段:给定键值对(k,v),计算l(k)和r(k),根据编码得到的S进行解码计算<l(k),L>和<(l(k),r(k)),(L,R)>,<
·
,
·
>表示内积计算。将得出的两个值与编码前的键值对集合进行匹配。与其他v值匹配,如果成功匹配,这说明(k,v)在键值对集合{(k1,v1),...,(k
n
,v
n
)}中;如果匹配失败,则说明(k,v)不在键值对集合{(k1,v1),...,(k
n
,v
n
)}中。
[0016]进一步地,所述S1准备阶段包括如下步骤:
[0017]哈希函数h1,h2,h3的映射范围都是{1,

,m},m为布谷鸟图的顶点数。l(x)输出一个长度为m的位向量,除了h1(x),h2(x)和h3(x)的位置外,所有位置都是零。函数r(x)输出一个长度为λ的随机位向量,除两个随机位置外,所有位置都是零。
[0018]进一步地,所述S4编码阶段包括如下子步骤:
[0019]S41首先编码队列Q中的键值对。
[0020]如果键值对(k
i
,v
i
)的三个哈希值对应布谷哈希图的顶点至少有一个位置没有固定存入秘密份额值,则保留一个空的位置。其他的位置如果是空的,就用随机值填充到对应向量L的位置。最后,保留的空位置由键值对v值和哈希值对应的确定顶点值决定,保证编码后的键值对满足等式<l(k
i
),L>=v
i

[0021]如果键值对(k
i
,v
i
)的三个哈希值对应布谷哈希图的顶点全都存入秘密份额值,则启用辅助存储位,即向量R。计算r(k
i
),并使用由r(k
i
)确定的随机位置来协助编码(k
i
,v
i
),保证编码后的键值对满足等式<(l(k
i
),r(k
i
)),(L,R)>=v
i

[0022]S42最后编码非队列Q中的键值对。由于此类键值对一定对应还未固定的布谷哈希图顶点,因此不会用到辅助存储位。详细步骤参考对队列Q中键值对的编码流程,保证编码后的键值对满足等式<l(k
i
),L>=v
i

[0023]本专利技术还公开了一种不经意键值存储编解码系统,该系统能够用于实施上述的不经意键值存储编解码方法,具体的,包括:编码器模块、解码器模块、哈希函数模块、外部接口模块和用户交互模块;
[0024]编码器模块:初始化空向量L和向量R,以及创建一个空队列Q。对输入的键值对集合进行哈希运算,并统计碰撞情况,将符合条件的键值对放入队列Q中。以顺序方式对键值对进行编码,更新向量L和向量R,最后得出OKVS S:=(L,R)。
[0025]解码器模块:首先对输入的键进行哈希运算,得到l(k)和r(k),然后利用编码器模块得到的OKVS S:=(L,R),通过内积计算得到&本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种不经意键值存储编解码方法,其特征在于,包括如下步骤:S1准备阶段:定义三个哈希函数为h1,h2,h3和两个函数l(
·
)和r(
·
),其定义域都是整数环;哈希函数的值域为{1,

,m},l(
·
)和r(
·
)则分别返回m长和λ长的0

1比特串;S2编码初始化阶段:初始化空向量L,分别满足L∈(F
l
)
m
、R∈(F
l
)
λ
和空队列Q,队列Q之后用来存放符合一定条件的键值对(k
i
,v
i
);S3键值对分类阶段:将键值对集合{(k1,v1),

,(k
n
,v
n
)}所有的k
i
(i=1,

,n)进行三次哈希运算,统计碰撞情况,将三个哈希值都碰撞的键值对(k
i
,v
i
)放入队列Q中;S4编码阶段:先编码队列Q中的键值对,再编码队列Q之外的键值对,顺序将键值对编码到向量L和向量R中,最终得出最后的OKVS S:=(L,R);S5解码阶段:给定键值对(k,v),计算l(k)和r(k),根据编码得到的S进行解码计算<l(k),L>和<(l(k),r(k)),(L,R)>,<
·
,
·
>表示内积计算;将得出的两个值与编码前的键值对集合进行匹配;与其他v值匹配,如果成功匹配,这说明(k,v)在键值对集合{(k1,v1),...,(k
n
,v
n
)}中;如果匹配失败,则说明(k,v)不在键值对集合{(k1,v1),

,(k
n
,v
n
)}中。2.根据权利要求1所述的一种不经意键值存储编解码方法,其特征在于:所述S1准备阶段包括如下步骤:哈希函数h1,h2,h3的映射范围都是{1,

,m},m为布谷鸟图的顶点数;l(x)输出一个长度为m的位向量,除了h1(x),h2(x)和h3(x)的位置外,所有位置都是零;函数r(x)输出一个长度为λ的随机位向量,除了两个随机位置外,所有位置都是零。3.根据权利要求1所述的一种不经意键值存储编解码方法,其特征在于:所述S4编码阶段包括如下子步骤:首先编码队列Q中的键值对;如果键值对(k
i
,v
i
)的三个哈希值对应布谷哈希图的顶点中至少有一个位置没有固定存入秘密份额值,则保留一个空的位置;其他的位置如果是空的,就用随...

【专利技术属性】
技术研发人员:姜正涛郭晓璇张键红李辉强余婷陈烨
申请(专利权)人:中国传媒大学
类型:发明
国别省市:

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

1