本发明专利技术涉及到一种安全的数据匹配方法及系统,该方法直接发生在需要数据交换的双方A和B,A和B双方先对各自编号的待交换原始数据进行哈希运算,再分别通过运算各自生成一个秘钥,待匹配的原始数据经过A、B交叉的两轮模幂运算之后得到的值若相等,则可以判定该值所对应的原始数据相等,最后各自通过编号得到匹配的原始数据。本发明专利技术的数据匹配方法不需要借助第三方,通过A和B双方共同协商的密钥,直接在两者之间完成数据匹配的工作,且在数据匹配过程中,可以保证双方的数据安全;在数据匹配完成后,各自仅能获取成功匹配的交集数据,却无法知晓交集之外的任何数据,使得该方法极具实践应用所需的数据安全特性。
【技术实现步骤摘要】
一种安全的数据匹配方法及其系统
本专利技术涉及计算机加密
,特别是涉及一种安全的数据匹配方法及其系统。
技术介绍
在现实生活中,经常出现两个网站基于共同的注册账号(比如电子邮件、手机号)进行第三方登录或联合推广的情况。这就要求双方能够求得注册账号的交集。在求取交集的过程中,双方都不能将自己的全量数据给到对方。常用的方法是借助可信第三方,双方均将全量数据提交给第三方,由第三方求取交集后返回给双方。这会产生多个问题:1、使用可信第三方的服务将产生较大的经济成本。2、双方的全量数据均提交给了第三方,有泄露的风险。3、第三方可能利用双方的数据进行分析并用于其他场合。
技术实现思路
本专利技术的目的是克服现有技术的不足,设计出一种安全的数据匹配方法及其系统。为达到上述目的,本专利技术所采用的技术方案是:一种安全的数据匹配方法,该方法直接发生在需要数据交换的双方A和B,A和B双方先对各自编号的待交换原始数据进行哈希运算,再分别通过运算各自生成一个秘钥,哈希运算后的结果数据经过A、B交叉的两轮模幂运算之后得到的值若相等,则可以判定该值所对应的原始数据相等,最后各自通过编号得到匹配的原始数据。进一步地,方法包括如下详细步骤:第一步,原始数据编号并进行哈希运算,A和B双方分别将各自所拥有的原始数据进行逐条编号,再分别对各自编号的原始数据逐条进行哈希运算,A、B双方进行哈希运算所采用的哈希算法相同,所述的原始数据即为待匹配的数据,哈希运算得到的数据为哈希数据;第二步,生成秘钥,A、B双方协商选定两个1024位的质数p和q,计算N=p*q,A、B再分别独自选定一个1024位的整数d1、d2作为密钥,使d1、d2与(p-1)*(q-1)互质,并分别将秘钥各自保存下来;第三步,交叉运算,A和B分别利用第一步得到的哈希数据和秘钥进行第一轮模幂运算,并将计算出的结果发送给对方,A和B再利用接收到的对方第一轮模幂运算结果和各自秘钥进行第二轮模幂运算,再将第二轮模幂运算的结果进行哈希运算,A、B各自哈希运算的结果保存在本地并发送给对方;第四步,数据比对,A和B分别将第三步中哈希运算得到的本地数据和接收到的对方数据进行比对,若值相等,则表示该值对应的待匹配的原始数据相等;第五步,A、B双方分别从其各自的数据集中获取第四步得到的相等的原始数据。进一步地,所述第一步中的哈希算法为sha3。进一步地,所述第二步中的p和q为不相同的两个大质数。进一步地,所述第三步中的交叉运算分为四个分步骤:步骤5.1:A和B分别进行第一轮模幂运算:h**d≡c1modN,其中**表示乘方运算,h表示第一步得到的哈希数据,d表示A、B各自持有的密钥,即第二步中的d1和d2,N是第二步中p*q计算得到的数值;步骤5.2:A和B分别将第一轮模幂运算中计算出来的数据c1发送给对方;步骤5.3:A和B再收到对方发送的数据c1后,分别进行第二轮模幂运算:c1**d≡c2modN,其中d表示A、B各自持有的密钥,即第二步中的d1和d2,N是第二步中p*q计算得到的数值;步骤5.4:A和B分别将第二轮模幂运算中计算出来的c2再一次进行哈希运算,并分别将运算结果保存在本地并发送给对方。一种安全的数据匹配系统,所述该数据匹配系统包括进行数据匹配的参与方A和B,所述参与方A包括数据输入单元,用于输入A的待匹配数据,所述待匹配数据为数据库数据或CSV文件;数据编号单元,用于对数据输入单元中存储的A的用户数据进行逐条编号;数据哈希单元,用于对带有编号的A的用户数据进行哈希运算,得到A的哈希数据;密钥协商单元,用于协商出A和B共同所用的大质数,并独立选定出一个运算密钥;模幂运算本地单元,用于对A的哈希数据进行第一轮模幂运算,并将模幂运算后的数据通过网络传输给对方的模幂运算远程单元;模幂运算远程单元,用于将从对方的模幂运算本地单元接收到的数据进行第二轮模幂运算,再将第二轮模幂运算的结果进行哈希运算,A将哈希运算的结果保存在本地并发送给对方;结果处理单元,用于匹配本地数据和从对方的模幂运算远程单元接收的数据,得到交集数据;数据编号还原单元,用于根据交集数据携带的编号,在自己的用户数据中对应查找出该编号对应的原始数据;数据输出单元,用于输出数据编号还原单元查找到的原始数据;所述参与方B的结构与参与方A的结构相同。一种安全的数据匹配系统,其特征在于,所述该数据匹配系统包括进行数据匹配的参与方A和B,所述参与方A包括数据输入单元,用于输入A的待匹配数据,所述待匹配数据为数据库数据或CSV文件;数据编号单元,用于对数据输入单元中存储的A的用户数据进行逐条编号;数据哈希单元,用于对带有编号的A的用户数据进行哈希运算,得到A的哈希数据;硬件token,用于协商出A和B共同所用的大质数,并独立选定出一个运算密钥。然后对A的哈希数据进行第一轮模幂运算,将模幂运算后的数据通过网络传输给对方的硬件token并通过网络从对方的硬件token中接收对方第一轮模幂运算后的数据,最后,将从对方的硬件token中接收到的数据进行第二轮模幂运算,再将第二轮模幂运算的结果进行哈希运算,A将哈希运算的结果保存在本地并发送给对方;结果处理单元,用于匹配本地数据和从对方的硬件token接收的数据,得到交集数据;数据编号还原单元,用于根据交集数据携带的编号,在自己的用户数据中对应查找出该编号对应的原始数据;数据输出单元,用于输出数据编号还原单元查找到的原始数据;所述参与方B的结构与参与方A的结构相同。本专利技术的积极有益效果:本专利技术的数据匹配方法不需要借助第三方,A和B可以通过双方共同协商的密钥,直接在两者之间完成数据匹配的工作;且在数据匹配过程中,可以保证双方的数据安全;在数据匹配完成后,各自仅能获取成功匹配的交集数据,却无法知晓交集之外的任何数据;且抗特殊数字攻击能力强。附图说明图1为本专利技术的数据匹配系统的结构示意图之一。图2为本专利技术的数据匹配系统的结构示意图之二。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明了,下面通过附图中示出的具体实施例来描述本专利技术。但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。实施例一,结合图1说明本实施方式,本专利技术的安全的数据匹配方法,直接发生在需要进行数据交换的参与方A和B,本专利技术包括以下步骤:首先,参与方A对其拥有的数据集T1中的每条数据进行编号,参与方B对其拥有的数据集T2中的每条数据进行编号;令数据集T1={t11,t12,t13,…},其中t11,t12,t13,…为数据集T1中的数据,M1={m1|m1为t的唯一编号,t∈T1},A拥有的数据集T1中的每一条数据t1对应着唯一的编号m1;数据集T2={t21,t22,t23,…},其中t21,t22,t23,…为第二匹配数据集合中的数据,M2={m2|m2为t的唯一编号,t∈T2},B拥有的数据集T2中的每一条数据t2对应着唯一的编号m2。然后,A对数据集T1中的每条带有编号的数据进行哈希运算得到数据集H1,数据集H1={h|h=Hash(t),t∈T1};B对数据集T2中的每条带有编号的数据进行哈希运算得到数据集H2,数据集H2={h本文档来自技高网...
【技术保护点】
一种安全的数据匹配方法,其特征在于,该方法直接发生在需要数据交换的双方A和B,A和B双方先对各自编号的待交换原始数据进行哈希运算,再分别通过运算各自生成一个秘钥,哈希运算后的结果数据经过A、B交叉的两轮模幂运算之后得到的值若相等,则可以判定该值所对应的原始数据相等,最后各自通过编号得到匹配的原始数据。
【技术特征摘要】
1.一种安全的数据匹配方法,其特征在于,该方法直接发生在需要数据交换的双方A和B,A和B双方先对各自编号的待交换原始数据进行哈希运算,再分别通过运算各自生成一个秘钥,哈希运算后的结果数据经过A、B交叉的两轮模幂运算之后得到的值若相等,则可以判定该值所对应的原始数据相等,最后各自通过编号得到匹配的原始数据。2.根据权利要求1所述的一种安全的数据匹配方法,其特征在于,方法包括如下详细步骤:第一步,原始数据编号并进行哈希运算,A和B双方分别将各自所拥有的原始数据进行逐条编号,再分别对各自编号的原始数据逐条进行哈希运算,A、B双方进行哈希运算所采用的哈希算法相同,所述的原始数据即为待匹配的数据,哈希运算得到的数据为哈希数据;第二步,生成秘钥,A、B双方协商选定两个1024位的质数p和q,计算N=p*q,A、B再分别独自选定一个1024位的整数d1、d2作为密钥,使d1、d2与(p-1)*(q-1)互质,并分别将秘钥各自保存下来;第三步,交叉运算,A和B分别利用第一步得到的哈希数据和秘钥进行第一轮模幂运算,并将计算出的结果发送给对方,A和B再利用接收到的对方第一轮模幂运算结果和各自秘钥进行第二轮模幂运算,再将第二轮模幂运算的结果进行哈希运算,A、B各自哈希运算的结果保存在本地并发送给对方;第四步,数据比对,A和B分别将第三步中哈希运算得到的本地数据和接收到的对方数据进行比对,若值相等,则表示该值对应的待匹配的原始数据相等;第五步,A、B双方分别从其各自的数据集中通过编号获取第四步得到的相等的原始数据。3.根据权利要求2所述的一种安全的数据匹配方法,其特征在于,所述第一步中的哈希算法为sha3。4.根据权利要求2所述的一种安全的数据匹配方法,其特征在于,所述第二步中的p和q为不相同的两个大质数。5.根据权利要求2所述的一种安全的数据匹配方法,其特征在于,所述第三步中的交叉运算分为四个分步骤:步骤5.1:A和B分别进行第一轮模幂运算:h**d≡c1modN,其中**表示乘方运算,h表示第一步得到的哈希数据,d表示A、B各自持有的密钥,即第二步中的d1和d2,N是第二步中p*q计算得到的数值;步骤5.2:A和B分别将第一轮模幂运算中计算出来的数据c1发送给对方;步骤5.3:A和B再收到对方发送的数据c1后,分别进行第二轮模幂运算:c1**d≡c2modN,其中d表示A、B各自持有的密钥,即第二步中的d1和d2,N是第二步中p*q计算得到...
【专利技术属性】
技术研发人员:白硕,刘乐,李中伟,涂惠燕,陈涛,张文海,
申请(专利权)人:上海理深信息科技有限公司,链石上海信息科技有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。