一种安全的数据交互方法、系统、设备及存储介质技术方案

技术编号:36872939 阅读:24 留言:0更新日期:2023-03-15 20:11
本发明专利技术实施例公开了一种安全的数据交互方法、系统、设备及存储介质,首先在客户端和服务端同步设定公共参数并约定公共函数,然后在客户端和服务端运行预设次数的数据传输协议;在每次数据传输协议中,在客户端输入协议消息,并计算协议消息的承诺值,将协议消息和承诺值发送至服务端;协议运行结束后,在服务端随机选择部分协议消息,客户端将选择的部分协议消息打开并发送给服务端,服务端对被打开的协议消息进行安全验证,若安全验证通过,则在客户端和服务端进行隐私数据求交,客户端得到双方数据的交集。本发明专利技术实施例通过在数据传输协议阶段增加安全验证来保证服务端数据在恶意攻击下的安全性,从而避免客户端通过恶意攻击获取服务端数据。击获取服务端数据。击获取服务端数据。

【技术实现步骤摘要】
一种安全的数据交互方法、系统、设备及存储介质


[0001]本专利技术实施例涉及加密通信
,具体涉及一种安全的数据交互方法、系统、设备及存储介质。

技术介绍

[0002]隐匿求交(Private Set Intersection)简称PSI协议,能够允许持有各自数据集合的两方执行双方数据集合的交集运算。PSI协议结束之后,一方或两方能够得到交集结果,但是双方都无法获知交集以外的对方集合数据的任何信息,PSI协议广泛应用于纵向联邦学习等场景中。
[0003]现有的基于OPRF的PSI算法对于服务端来说不满足恶意攻击下的安全性要求,其主要原因是在不经意传输协议过程中,如果客户端违反协议进行恶意攻击,例如客户端在不经意传输协议中输入相同的协议消息,客户端即可破解服务端的加密矩阵,从而获取服务端的全部数据,所以上述算法不满足服务端数据在恶意攻击下的安全性要求。

技术实现思路

[0004]为此,本专利技术实施例提供一种安全的数据交互方法、系统、设备及存储介质,以解决现有的基于OPRF的PSI算法在数据传输阶段无法进行安全验证的问题。
[0005]为了实现上述目的,本专利技术实施例提供如下技术方案:
[0006]根据本专利技术实施例的第一方面,提供了一种安全的数据交互方法,所述方法包括:
[0007]在客户端和服务端同步设定公共参数并约定公共函数;
[0008]根据所述公共参数和所述公共函数,在所述客户端和所述服务端运行预设次数的数据传输协议;在每次所述数据传输协议中,在所述客户端输入协议消息,并计算所述协议消息的承诺值,将所述协议消息和对应的所述承诺值发送至所述服务端;
[0009]预设次数的数据传输协议运行结束后,在所述服务端随机选择部分协议消息,由所述客户端将选择的部分协议消息打开并发送给所述服务端,所述服务端对所述被打开的协议消息进行安全验证,得到安全验证结果;
[0010]若所述安全验证结果为通过,则在所述客户端和所述服务端利用未被打开的协议消息进行隐私数据求交,所述客户端得到双方数据的交集。
[0011]进一步地,所述公共参数包括:密钥安全参数λ、第一协议参数m、第一协议参数ω、协议安全参数s、第一长度参数l1和第二长度参数l2,其中,s=2ω;所述公共函数包括:第一哈希函数H1、第二哈希函数H2、伪随机函数F和承诺函数Comm。
[0012]进一步地,在所述客户端和所述服务端运行预设次数的数据传输协议之前,包括:
[0013]在所述服务端根据所述协议安全参数s随机生成选择字符串cs。
[0014]进一步地,在所述客户端和所述服务端运行预设次数的数据传输协议之前,还包括:
[0015]在所述客户端根据所述第一协议参数m和所述协议安全参数s生成初始矩阵D,所
述初始矩阵D为m行、s列的二进制矩阵,所述初始矩阵D中的所有元素均为1;
[0016]在所述客户端根据所述密钥安全参数λ随机采样生成二进制的密钥字符串k;
[0017]对于客户端本地数据中的每个元素y,利用所述第一哈希函数H1、所述伪随机函数F以及所述密钥字符串k,计算得到加密结果v,所述加密结果v的计算公式为:
[0018]v=F
k
(H1(
y
))
[0019]其中,F
k
表示基于所述密钥字符串k的伪随机函数F;
[0020]令所述初始矩阵D中的对应元素D
i
[v[i]]为0,得到更新后的密文数据矩阵D',其中,v[i]表示所述加密结果v中的第u个字符,D
i
[v[i]]表示所述初始矩阵D的第i列、第v[i]行的元素,i为大于或等于0且小于或等于s的整数;
[0021]在所述客户端随机生成m行、s列的第一加密矩阵A;
[0022]利用所述第一加密矩阵A与所述客户端数据矩阵D',计算得到所述第二加密矩阵B,所述第二加密矩阵B的计算公式为:
[0023][0024]其中,表示矩阵的异或运算。
[0025]进一步地,根据所述公共参数和所述公共函数,在所述客户端和所述服务端运行预设次数的数据传输协议;在每次所述数据传输协议中,在所述客户端输入协议消息,并计算所述协议消息的承诺值,将所述协议消息和对应的所述承诺值发送至所述服务端,包括:
[0026]在所述服务端根据所述协议安全参数s随机生成第一承诺向量ra和第二承诺向量rb,并发送至所述客户端;
[0027]在每次所述数据传输协议中,在所述客户端利用所述第一加密矩阵A和所述第二加密矩阵B得到待选择数据组{A
i
,B
i
}作为所述协议消息,其中,A
i
表示所述第一加密矩阵A的第i列,B
i
表示所述第二加密矩阵B的第i列;
[0028]所述客户端根据所述待选择数据组{A
i
,B
i
}、所述承诺函数Comm、所述第一承诺向量ra和所述第二承诺向量rb,计算得到第一承诺计算结果ca[i]和第二承诺计算结果cb[i],所述第一承诺计算结果ca[i]的计算公式为:
[0029]ca[i]=Comm(A
i
,ra[i])
[0030]其中,ra[i]表示所述第一承诺向量ra的第i个元素;
[0031]所述第二承诺计算结果cb[i]的计算公式为:
[0032]Cb[i]=Comm(B
i
,rb[i])
[0033]其中,rb[i]表示所述第二承诺向量rb的第i个元素;
[0034]所述客户端将所述待选择数据组{A
i
,B
i
}、所述第一承诺计算结果ca[i]和所述第二承诺计算结果cb[i]发送至所述服务端。
[0035]进一步地,在所述服务端随机选择部分协议消息,由所述客户端将选择的部分协议消息打开并发送给所述服务端,所述服务端对所述被打开的协议消息进行安全验证,得到安全验证结果,包括:
[0036]在所述服务端根据所述选择字符串cs对所述待选择数据组{A
i
,B
i
}进行选择;
[0037]若所述选择字符串cs的第i个字符cs[i]为0,则选择所述第一加密矩阵A的第i列A
i
作为选择数据c
i

[0038]若所述选择字符串cs的第i个字符cs[i]为1,则选择所述第二加密矩阵B的第i列B
i
作为选择数据c
i

[0039]利用各个所述选择数据c
i
得到所述第三加密矩阵C;
[0040]在所述服务端根据所述第一协议参数ω随机生成验证向量ro,并将所述验证向量ro发送至所述客户端,其中,所述验证向量ro中的元素均为小于或等于s的正整数,并且所述验证向量ro中各个元素互不相同;...

【技术保护点】

【技术特征摘要】
1.一种安全的数据交互方法,其特征在于,所述方法包括:在客户端和服务端同步设定公共参数并约定公共函数;根据所述公共参数和所述公共函数,在所述客户端和所述服务端运行预设次数的数据传输协议;在每次所述数据传输协议中,在所述客户端输入协议消息,并计算所述协议消息的承诺值,将所述协议消息和对应的所述承诺值发送至所述服务端;预设次数的数据传输协议运行结束后,在所述服务端随机选择部分协议消息,由所述客户端将选择的部分协议消息打开并发送给所述服务端,所述服务端对被打开的协议消息进行安全验证,得到安全验证结果;若所述安全验证结果为通过,则在所述客户端和所述服务端利用未被打开的协议消息进行隐私数据求交,所述客户端得到双方数据的交集。2.如权利要求1所述的一种安全的数据交互方法,其特征在于,所述公共参数包括:密钥安全参数λ、第一协议参数m、第一协议参数ω、协议安全参数s、第一长度参数l1和第二长度参数l2,其中,s=2ω;所述公共函数包括:第一哈希函数H1、第二哈希函数H2、伪随机函数F和承诺函数Comm。3.如权利要求2所述的一种安全的数据交互方法,其特征在于,在所述客户端和所述服务端运行预设次数的数据传输协议之前,包括:在所述服务端根据所述协议安全参数s随机生成选择字符串cs。4.如权利要求3所述的一种安全的数据交互方法,其特征在于,在所述客户端和所述服务端运行预设次数的数据传输协议之前,还包括:在所述客户端根据所述第一协议参数m和所述协议安全参数s生成初始矩阵D,所述初始矩阵D为m行、s列的二进制矩阵,所述初始矩阵D中的所有元素均为1;在所述客户端根据所述密钥安全参数λ随机采样生成二进制的密钥字符串k;对于客户端本地数据中的每个元素y,利用所述第一哈希函数H1、所述伪随机函数F以及所述密钥字符串k,计算得到加密结果v,所述加密结果v的计算公式为:v=F
k
(H1(y))其中,F
k
表示基于所述密钥字符串k的伪随机函数F;令所述初始矩阵D中的对应元素D
i
[v[i]]为0,得到更新后的密文数据矩阵D

,其中,v[i]表示所述加密结果v中的第i个字符,D
i
[v[i]]表示所述初始矩阵D的第i列、第v[i]行的元素,i为大于或等于0且小于或等于s的整数;在所述客户端随机生成m行、s列的第一加密矩阵A;利用所述第一加密矩阵A与所述客户端数据矩阵D

,计算得到第二加密矩阵B,所述第二加密矩阵B的计算公式为:其中,表示矩阵的异或运算。5.如权利要求4所述的一种安全的数据交互方法,其特征在于,根据所述公共参数和所述公共函数,在所述客户端和所述服务端运行预设次数的数据传输协议;在每次所述数据传输协议中,在所述客户端输入协议消息,并计算所述协议消息的承诺值,将所述协议消息和对应的所述承诺值发送至所述服务端,包括:在所述服务端根据所述协议安全参数s随机生成第一承诺向量ra和第二承诺向量rb,
并发送至所述客户端;在每次所述数据传输协议中,在所述客户端利用所述第一加密矩阵A和所述第二加密矩阵B得到待选择数据组{A
i
,B
i
}作为所述协议消息,其中,A
i
表示所述第一加密矩阵A的第i列,B
i
表示所述第二加密矩阵B的第i列;所述客户端根据所述待选择数据组{A
i
,B
i
}、所述承诺函数Comm、所述第一承诺向量ra和所述第二承诺向量rb,计算得到第一承诺计算结果ca[i]和第二承诺计算结果cb[i],所述第一承诺计算结果ca[i]的计算公式为:ca[i]=Comm(A
i
,ra[i])其中,ra[i]表示所述第一承诺向量ra的第i个元素;所述第二承诺计算结果cb[i]的计算公式为:cb[i]=Comm(B
i
,rb[i])其中,rb[i]表示所述第二承诺向量rb的第i个元素;所述客户端将所述待选择数据组{A
i
,B
i
}、所述第一承诺计算结果ca[i]和所述第二承诺计算结果cb[i]发送至所述服务端。6.如权利要求5所述的一种安全的数据交互方法,其特征在于,在所述服务端随机选择部分协议消息,由所述客户端将选择的部分协议消息打开并发送给所述服务端,所述服务端对所述被打开的协议消息进行安全验证,得到安全验证结果,包括:在所述服务端根据所述选择字符串cs对所述待选择数据组{A
i
,B
i
}进行选择;若所述选择字符串cs的第i个字符cs[i]为0,则选择所述第一加密矩阵A的第i列A
i
作为选择数据c
i
;若所述选择字符串cs的第i个字符cs[i]为1,则选择所述第二加密矩阵B的第i列B
i
作为选择数据c
i
;利用各个所述选择数据c
i
得到第三加密矩阵C;在所述服务端根据所述第一协议参数ω随机生成验证向量ro,并将所述验证向量ro发送至所述客户端,其中,所述验证向量ro中的元素均为小于或等于s的正整数,并且所述验证向量ro中各个元素互不相同;根据所述验证向量ro,在所述客户端从所述第一加密矩阵A和所述第二加密矩阵B中分别提取对应的第一验证数据A
ro[j]
和第二验证数据B
ro[j]
,将所述第一验证数据A
ro[j]
和所述第二验证数据B
ro[j]
返回至所述服务端,其中,ro[j]表示所述验证向量ro的第j个元素,A
ro[j]
表示所述第一加密矩阵A的第ro[j]列,B
ro[j]
表示所述第二加密矩阵B的第ro[j]列,j为大于或等于0且小于或等于ω的整数;根据所述第一验证数据A
ro[j]
、...

【专利技术属性】
技术研发人员:潘光明
申请(专利权)人:厦门翼方健数信息科技有限公司翼健上海信息科技有限公司
类型:发明
国别省市:

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

1