CN113726764B - 一种隐私数据传输方法及装置 - Google Patents

一种隐私数据传输方法及装置 Download PDF

Info

Publication number
CN113726764B
CN113726764B CN202110993420.4A CN202110993420A CN113726764B CN 113726764 B CN113726764 B CN 113726764B CN 202110993420 A CN202110993420 A CN 202110993420A CN 113726764 B CN113726764 B CN 113726764B
Authority
CN
China
Prior art keywords
hash
key
value
value pair
salted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110993420.4A
Other languages
English (en)
Other versions
CN113726764A (zh
Inventor
王晓亮
魏晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rivtower Technology Co Ltd
Original Assignee
Hangzhou Rivtower Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Rivtower Technology Co Ltd filed Critical Hangzhou Rivtower Technology Co Ltd
Priority to CN202110993420.4A priority Critical patent/CN113726764B/zh
Publication of CN113726764A publication Critical patent/CN113726764A/zh
Application granted granted Critical
Publication of CN113726764B publication Critical patent/CN113726764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

一种隐私数据传输方法及装置,所述隐私数据包括需披露的第一类键值对和无需披露的第二类键值对;所述方法包括:针对所述隐私数据中的各键值对,将各键值对中的键的散列值作为盐值生成各键值对中的值的加盐散列值,得到第一加盐散列信息;计算所述第一加盐散列信息对应的第一顶层散列值;传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;基于接收到的数据重新执行加盐散列处理,得到所述隐私数据的第二加盐散列信息;如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的第一类键值对传输成功。应用上述方案可以提高隐私保护强度并节省传输带宽。

Description

一种隐私数据传输方法及装置
技术领域
本说明书涉及隐私保护技术领域,尤其涉及一种隐私数据传输方法及装置。
背景技术
在线上办理业务时,可以使用携带隐私数据的身份凭证来证实业务办理方的身份;例如,某公司可以将公司名称、工商注册号、法定代表人、成立日期等信息以键值对(K-V,Key-Value)的方式进行存储,生成可验证凭证(VC,Verifiable Credential),并在需要的时候向对方出示。但是,由于可验证凭证中可能包含当前业务实际不需要的隐私信息,因此全量展示上述可验证凭证很可能导致隐私泄露。
在相关技术中,可以对上述可验证凭证进行处理,将其中无需披露的隐私数据处理为散列值的形式,既不影响实际需要披露的隐私数据的正常读取,也能够保留凭证可验证的特性。但是,人们依然可以通过彩虹表、碰撞等方式对散列值进行破解,从而获知本无需披露的隐私内容;换言之,现有技术方案存在安全性不足的技术问题。
发明内容
有鉴于此,本说明书公开了一种隐私数据传输方法和装置。
根据本说明书实施例的第一方面,公开了一种隐私数据传输方法,所述隐私数据包括需披露的第一类键值对和无需披露的第二类键值对;所述方法包括:
针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
计算所述第一加盐散列信息对应的第一顶层散列值;
传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
可选的,所述方法还包括:
生成第一加盐散列信息之前,基于预协商的排序规则,对所述隐私数据中的各键值对进行排序。
可选的,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
以乱序方式,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
在所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合之后,所述方法还包括:
基于所述预协商的排序规则,对处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果的组合结果进行排序。
可选的,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
传输所述第一顶层散列值、所述第一类键值对、以及修改后的所述第一加盐散列信息;其中,所述修改后的第一加盐散列信息中包括所述第二类键值对的加盐散列处理结果、以及所述第一类键值对的键;
所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息,包括:
将所述第一加盐散列信息中所述第一类键值对的键,替换为处理得到的加盐散列处理结果中对应的加盐散列值,得到第二加盐散列信息。
可选的,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
传输所述第一顶层散列值、中间键值对序列、以及与所述中间键值对序列对应的掩码序列;其中,所述中间键值对序列中包括所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,所述掩码序列指示所述中间键值对序列中所述第一类键值对的位置;
所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息,包括:
基于所述掩码序列指示的位置,将所述中间键值对序列中的所述第一类键值对替换为处理得到的加盐散列处理结果,得到第二加盐散列信息。
可选的,所述传输所述第一顶层散列值,包括:
将所述第一顶层散列值发送至公共存储空间;
从所述公共存储空间中获取所述第一顶层散列值。
根据本说明书实施例的第二方面,公开了一种隐私数据传输装置,所述隐私数据包括无需保密的第一类键值对和需保密的第二类键值对;所述装置包括:
第一散列处理模块,针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
计算模块,计算所述第一加盐散列信息对应的第一顶层散列值;
传输模块,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
第二散列处理模块,对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
校验模块,计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
根据本说明书实施例的第三方面,公开了一种计算机设备,至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一实施例所述的方法。
根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的方法。
以上技术方案中,一方面,由于键值对中键的散列值本身不具有语义特征,因此将键值对内键的散列值作为盐值来生成加盐散列信息,相对于使用用户名、表名、键名等短语作为盐值的方案更加难以针对破解,而且,本方案中还生成了用于全文校验的第一顶层散列值,能够保证上述隐私数据在传输过程中不被篡改;因此,上述方案极大提升了隐私数据的安全性,能够保障无需披露的键值对内容不会别泄露。
另一方面,由于生成加盐散列信息的过程使用的盐值是键值对的键的散列值,而该键值对的键的散列值原本就需要发送到接收端,因此相对于使用用户名、表名、键名等短语作为盐值的方案而言,本方案无需额外发送生成加盐散列信息所使用的盐值,可以节省网络传输带宽。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种传输隐私数据的情景示例图;
图2是本说明书示出的一种隐私数据传输方法的流程示例图;
图3是本说明书示出的一种生成顶层散列值的示例图;
图4是本说明书示出的一种隐私数据传输装置的结构示例图;
图5是本说明书示出的一种用于隐私数据传输的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的***和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参见图1,图1是本说明书示出的一种传输隐私数据的情景示例图;如图1所示,在该示例中,用户甲在线上办理业务时,可以使用携带隐私数据的身份凭证来证实业务办理方的身份;该身份凭证中的数据以键值对(K-V,Key-Value)的方式进行存储,但在实际应用中,该身份凭证中可能包含当前业务实际不需要的隐私信息,因此全量展示上述可验证凭证很可能导致隐私泄露。
例如,用户甲当前办理的业务仅需要提供姓名、身份证号、手机号,但如果全量展示上述可验证凭证,业务办理方也就一并获知了用户甲的学历、工作单位等在当前办理的业务中非必要的信息,从而损害了用户甲的隐私权益。
在相关技术中,可以对上述可验证凭证进行掩盖处理,将其中无需披露的隐私数据处理为散列值的形式,例如,将键“工作单位”对应的值“某某科技有限公司”替换为它的MD5散列值“B2AB8057E73BDFC43BAEB1E56F31B5CE”,从而使接收方不能直接获知键“工作单位”对应的值。但是,人们依然可以通过彩虹表、碰撞等方式对散列值进行破解,从而获知上述被掩盖的隐私内容;换言之,现有技术方案存在安全性不足的技术问题。
基于此,本说明书提出一种对隐私数据中无需披露的键值对进行加盐散列处理,并在出示隐私数据时使用顶层散列值方式进行完整性校验的技术方案。
在实现时,上述顶层散列值可以基于上述隐私数据所有键值对对应的加盐散列值生成,以保证全部的隐私数据的完整性;在具体生成键值对的加盐散列值时,则可以将键值对中的键首先进行散列处理,将得到的键的散列值作为计算键值对中值的加盐散列值的盐值使用。
举例而言,假设隐私数据中存在一个键值对{“name”:“张三”},使用的散列值算法为MD5,那么首先可以计算该键值对的键“name”的MD5散列值“B068931CC450442B63F5B3D276EA4297”,再将该结果作为盐值来计算“张三”的加盐MD5散列值(即“张三B068931CC450442B63F5B3D276EA4297”的MD5散列值),得到结果为“2D84E495BFD3220B2C1FC5EA0DD7D412”。如果基于隐私数据中所有的键值对的加盐散列值再生成第一顶层散列值,则只要核验确认接收到的数据重新生成的第二顶层散列值与第一顶层散列值相同,就可以推知隐私数据中所有的键值对的加盐散列值未被篡改,进而推知隐私数据是可信的。
在以上技术方案中,一方面,由于键值对中键的散列值本身不具有语义特征,因此将键值对内键的散列值作为盐值来生成加盐散列信息,相对于使用用户名、表名、键名等短语作为盐值的方案更加难以针对破解,而且,本方案中还生成了用于全文校验的第一顶层散列值,能够保证上述隐私数据在传输过程中不被篡改;因此,上述方案极大提升了隐私数据的安全性,能够保障无需披露的键值对内容不会别泄露。
另一方面,由于生成加盐散列信息的过程使用的盐值是键值对的键的散列值,而该键值对的键的散列值原本就需要发送到接收端,因此相对于使用用户名、表名、键名等短语作为盐值的方案而言,本方案无需额外发送生成加盐散列信息所使用的盐值,可以节省网络传输带宽。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种隐私数据传输方法的流程示例图;其中,该隐私数据中可以包括需披露的第一类键值对、以及无需披露的第二类键值对;该方法可以包括以下步骤S201至S205:
S201,针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
S202,计算所述第一加盐散列信息对应的第一顶层散列值;
S203,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
S204,对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
S205,计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
上述隐私数据,指任意以键值对形式存储的、需要向传输对端选择性披露的数据,其中需要披露的键值对可以被记为第一类键值对,无需披露的键值对可以被记为第二类键值对;可以理解的是,在不同的业务中,隐私数据中的键值对的具体类型可能对应发生改变,本领域技术人员可以根据具体的业务需求确定隐私数据中键值对的具体类型。
在本说明书中,数据发送方可以首先针对上述隐私数据中的各键值对分别执行加盐散列处理,以生成对应的第一加盐散列信息;具体而言,可以计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于上述组合的结果生成各键值对中的值的加盐散列值;
举例而言,假设隐私数据中包含如下键值对:
k1:v1,k2:v2,k3:v3,…,kn:vn;
以hash()指代散列计算操作,以+指代字符串拼接操作,则可以针对任意不大于n的正整数i,计算各键值对中的键的散列值hash(ki),再计算各键值对中的值的加盐散列值hash(hash(ki)+vi)。也就是说,生成的第一加盐散列信息可以包括上述隐私数据中各键值对中的值的加盐散列值hash(hash(ki)+vi)。
在本说明书中,数据发送方可以进一步根据上述生成的第一加盐散列信息,生成对应的第一顶层散列值。具体而言,可以将上述隐私数据中各键值对中的值的加盐散列值hash(hash(ki)+vi)拼接为一个字符串,再对该字符串取散列值。请参见图3,图3是本说明书示出的一种生成顶层散列值的示例图;在该例中,假设上述第一加盐散列信息包括如下信息:
hash(hash(k1)+v1),hash(hash(k2)+v2),…,hash(hash(kn)+vn)
那么将其拼接即可得到如下字符串:
“hash(hash(k1)+v1)+hash(hash(k2)+v2)+hash(hash(kn)+vn)”
则在该步骤中生成的第一顶层散列值即为:
hash(hash(hash(k1)+v1)+hash(hash(k2)+v2)+hash(hash(kn)+vn))
当然可以理解的是,由于本说明书记载的技术方案的依据是散列算法不可逆、难碰撞的通用性质,因此上述散列计算的具体算法本说明书无需进行具体限定,例如,可以采用MD5、SHA-1、SM3等现有的公开算法,也可以采用其他非公开的定制散列算法。亦可以理解的是,虽然在上述表述中仅使用了hash()一个符号指代散列计算操作,但在实际应用中,也可以在发送方与接收方协商后按需采用不同的散列计算算法,例如在计算各键值对中的值的加盐散列值时可以采用SHA-1算法,在计算第一顶层散列值时又可以使用SM3算法,等等。
在本说明书中,数据发送方在完成前述数据处理操作后,即可将下列内容发送到数据接收方:第一顶层散列值、上述第一类键值对、以及上述第二类键值对的加盐散列处理结果;其中,上述内容的具体组合形式本说明书亦无须加以限定。
例如,第一类键值对可以与上述第二类键值对的加盐散列处理结果存储在同一个类似数组的存储结构中,该存储结构可以基于以下规则遍历上述隐私数据确定生成:若遍历到的当前键值对是第一类键值对,则在该存储结构的对应位置中存储该当前键值对原文,若遍历到的当前键值对是第二类键值对,则在该存储结构的对应位置中存储该当前键值对的键的散列值、以及值的加盐散列值;假设k1:v1、k3:v3为无需披露的键值对,k2:v2为可披露的键值对,则形成的存储结构可以如下所示:
hash(k1):hash(hash(k1)+v1),k2:v2,hash(k3):hash(hash(k3)+v3);
由于顶层散列值的计算结果会受键值对的顺序影响,因此要使用顶层散列值进行完整性校验,就需要被校验的串中各个元素的顺序不能改变;采用上述方案存储上述第一类键值对、以及上述第二类键值对的加盐散列处理结果,显然可以维持隐私数据中各键值对之间的顺序关系,因此通过上述存储结构发送上述第一类键值对、以及上述第二类键值对的加盐散列处理结果,可以节约数据接收方对于键值对的顺序整理步骤所消耗的资源,提高方案的执行效率。
可以理解的,上述第一类键值对也可以与上述第二类键值对分开存储,并通过额外的描述文件来记录各个键值对的顺序关系,以便在接收到上述信息后按原顺序重新生成顶层散列值从而进行完整性校验。
在本说明书中,数据接收方在接收到数据发送方发送的第一顶层散列值、上述第一类键值对、以及上述第二类键值对的加盐散列处理结果之后,可以对接收到的上述第一类键值对进行上述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;该步骤与数据发送方生成第一加盐散列信息的过程类似,但具体而言,由于数据接收方已经直接收到了上述第二类键值对的加盐散列处理结果,因此只需要重新生成上述第一类键值对的加盐散列处理结果再进行组合,即可生成第二加盐散列信息;如果数据在传输过程中没有被篡改,则第二加盐散列信息即可以与第一加盐散列信息保持一致。
在一示出的实施方式中,数据发送方可以在生成第一加盐散列信息之前,基于预协商的排序规则,对上述隐私数据中的各键值对进行排序。例如,可以按字符串的字典序排序,或者按ascii编码的降序排序,等等。由于顶层散列值的计算结果会受键值对的顺序影响,因此要使用顶层散列值进行完整性校验,就需要被校验的串中各个元素的顺序不能改变。而预先对上述隐私数据中的各键值对进行排序,则可以令数据接收方能够生成与第一加盐散列信息的元素顺序相符的第二加盐散列信息,无需重新调整各个键值对的顺序,因此可以提高上述第二加盐散列信息的生成速度。
在另一示出的实施方式中,传输过程中可以将数据打乱以提高安全性。具体而言,上述数据发送方在传输上述第一顶层散列值、上述第一类键值对、以及上述第二类键值对的加盐散列处理结果时,可以以乱序方式,传输上述第一顶层散列值、上述第一类键值对、以及上述第二类键值对的加盐散列处理结果;对应的,上述数据接收方在上述将处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果进行组合之后,则可以基于上述预协商的排序规则,对处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果的组合结果进行排序。由于乱序的数据在数据接收方被按照预协商的排序规则重新排序,其顺序将被恢复到乱序之前的状态,因此不会影响顶层散列值校验的准确性。
应用上述方案,如果相关数据在传输过程中被拦截,由于相关数据经过了乱序处理,因此攻击者从中破译、获取到真实隐私信息的难度会进一步提高,因此该方案可以提高隐私数据传输的安全性。
在本说明书中,数据接收方在生成上述第二加盐散列信息之后,可以计算上述第二加盐散列信息对应的第二顶层散列值,如果上述第二顶层散列值与上述第一顶层散列值匹配,则确定传输的上述第一类键值对传输成功。可以理解的是,上述第二顶层散列值与第一顶层散列值宜采用相同的散列算法,但与前述加盐散列处理所采用的散列算法是否相同则无需限定。
在一示出的实施方式中,可以将上述第一类键值对从上述存储结构中分离出来独立传输;具体而言,上述存储结构则可以通过对上述第一加盐散列信息的修改得到,如前所述,上述第一加盐散列信息中包含了上述隐私信息中所有的键值对的加盐散列处理结果,因此可以将上述第一加盐散列信息中对应第一类键值对的内容(即加盐散列处理结果)替换为键名,使得修改后的第一加盐散列信息中包含第二类键值对的加盐散列处理结果、以及所述第一类键值对的键。这样,在进行上述传输步骤时,即可传输上述第一顶层散列值、上述第一类键值对、以及修改后的上述第一加盐散列信息。
相对应地,数据接收方在将处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息时,可以将上述第一加盐散列信息中上述第一类键值对的键,替换为处理得到的加盐散列处理结果中对应的加盐散列值,得到第二加盐散列信息。如前所述,由于修改后的第一加盐散列信息中原本为第一类键值对的加盐散列处理结果的内容,被替换为了第一类键值对的键,因此在接收端重新将第一类键值对的键替换为处理得到的加盐散列处理结果中对应的加盐散列值,即可恢复第一加盐散列信息的修改前状态;也就是说,若上述传输过程中数据未被篡改,则接收端生成的第二加盐散列信息将与第一加盐散列信息的修改前状态保持一致。
采用该方案,由于需要披露的第一类键值对被独立地发送,而无需从其他复杂的数据结构中提取,因此相对于第一类键值对被携带在上述存储结构内部的方案,对于接收方而言可以更加方便地进行读取。
在另一示出的实施方式中,可以使用中间键值对序列,传输第一类键值对和第二类键值对的加盐散列处理结果;具体而言,该中间键值对序列可以与用于指示上述中间键值对序列中上述第一类键值对的位置的掩码序列搭配使用。采用该方案时,具体传输的内容则可以包括上述第一顶层散列值、中间键值对序列、以及与上述中间键值对序列对应的掩码序列。
相对应的,在上述数据接收端在需要将处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息时,则可以基于上述掩码序列指示的位置,将上述中间键值对序列中的上述第一类键值对替换为处理得到的加盐散列处理结果,得到第二加盐散列信息。
举例而言,假设k1:v1、k3:v3为无需披露的键值对,k2:v2为可披露的键值对,则对应的掩码序列就可以为“1,0,1”,其中0代表可以披露的第一类键值对,1代表无需披露的第二类键值对;数据接收方则可以通过识别上述掩码序列中的“0”来确定上述中间键值对序列中不是加盐散列值的数据(即,第一类键值对),从而重新生成上述第一类键值对的加盐散列值,以便执行后续的顶层散列值校验步骤。
应用上述方案,由于数据接收端在确定上述中间键值对序列中不是加盐散列值的数据时可以利用掩码序列快速定位,而无需再根据键值对的键进行逐个识别,因此可以缩短定位上述中间键值对序列中不是加盐散列值的数据消耗的时间,提高校验的速度。
在一示出的具体实施方式中,上述数据发送方在传输上述第一顶层散列值时,可以不进行针对性的发送,而是采用广播等方式进行传输;例如,可以将上述第一顶层散列值发送至个人网站主页、公共云盘等公共存储空间,以待上述数据接收方从上述公共存储空间中获取上述第一顶层散列值。
采用此方案,由于不同的业务可能对同一套隐私数据内部的键值对是否披露具有不同需求,而无论键值对是否披露,都会对应同样的第一顶层散列值;因此,直接将上述第一顶层散列值发送至个人网站主页、公共云盘等公共存储空间,有利于在需要多次获取第一顶层散列值时,可以实现数据复用,降低网络带宽消耗。
上述内容即为本说明书针对所述隐私数据传输方法的全部实施例。本说明书还提供了对应的隐私数据传输装置的实施例如下:
本说明书提出一种隐私数据传输装置,其中,所述隐私数据包括无需保密的第一类键值对和需保密的第二类键值对;该隐私数据传输装置的结构示例如图4所示,包括:
第一散列处理模块401,针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
计算模块402,计算所述第一加盐散列信息对应的第一顶层散列值;
传输模块403,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
第二散列处理模块404,对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
校验模块405,计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
在一示出的实施方式中,上述装置还可以包括第一排序模块,该模块用于在第一加盐散列信息被生成之前,基于预协商的排序规则,对上述隐私数据中的各键值对进行排序。
在一示出的实施方式中,上述传输模块可以进一步以乱序方式,传输上述第一顶层散列值、上述第一类键值对、以及上述第二类键值对的加盐散列处理结果;在该方案中,上述装置还可以包括第二排序模块,该模块可以在上述将处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果进行组合之后,基于上述预协商的排序规则,对处理得到的加盐散列处理结果与接收到的上述第二类键值对的加盐散列处理结果的组合结果进行排序。
在一示出的实施方式中,上述传输模块可以进一步传输上述第一顶层散列值、上述第一类键值对、以及修改后的上述第一加盐散列信息;其中,上述修改后的第一加盐散列信息中包括上述第二类键值对的加盐散列处理结果、以及上述第一类键值对的键;而上述第二处理模块则进一步将上述第一加盐散列信息中上述第一类键值对的键,替换为处理得到的加盐散列处理结果中对应的加盐散列值,得到第二加盐散列信息。
在另一示出的实施方式中,上述传输模块可以进一步传输上述第一顶层散列值、中间键值对序列、以及与上述中间键值对序列对应的掩码序列;其中,上述中间键值对序列中包括上述第一类键值对、以及上述第二类键值对的加盐散列处理结果,上述掩码序列指示上述中间键值对序列中上述第一类键值对的位置;而上述第二处理模块则可以进一步基于上述掩码序列指示的位置,将上述中间键值对序列中的上述第一类键值对替换为处理得到的加盐散列处理结果,得到第二加盐散列信息。
在一示出的实施方式中,上述传输模块可以进一步被配置为,将上述第一顶层散列值发送至公共存储空间,以及从上述公共存储空间中获取上述第一顶层散列值。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的隐私数据传输方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的隐私数据传输方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (14)

1.一种隐私数据传输方法,所述隐私数据包括需披露的第一类键值对和无需披露的第二类键值对;所述方法包括:
针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
计算所述第一加盐散列信息对应的第一顶层散列值;
传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
2.根据权利要求1所述的方法,所述方法还包括:
生成第一加盐散列信息之前,基于预协商的排序规则,对所述隐私数据中的各键值对进行排序。
3.根据权利要求2所述的方法,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
以乱序方式,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
在所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合之后,所述方法还包括:
基于所述预协商的排序规则,对处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果的组合结果进行排序。
4.根据权利要求1所述的方法,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
传输所述第一顶层散列值、所述第一类键值对、以及修改后的所述第一加盐散列信息;其中,所述修改后的第一加盐散列信息中包括所述第二类键值对的加盐散列处理结果、以及所述第一类键值对的键;
所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息,包括:
将所述第一加盐散列信息中所述第一类键值对的键,替换为处理得到的加盐散列处理结果中对应的加盐散列值,得到第二加盐散列信息。
5.根据权利要求1所述的方法,所述传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,包括:
传输所述第一顶层散列值、中间键值对序列、以及与所述中间键值对序列对应的掩码序列;其中,所述中间键值对序列中包括所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,所述掩码序列指示所述中间键值对序列中所述第一类键值对的位置;
所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息,包括:
基于所述掩码序列指示的位置,将所述中间键值对序列中的所述第一类键值对替换为处理得到的加盐散列处理结果,得到第二加盐散列信息。
6.根据权利要求1所述的方法,所述传输所述第一顶层散列值,包括:
将所述第一顶层散列值发送至公共存储空间;
从所述公共存储空间中获取所述第一顶层散列值。
7.一种隐私数据传输装置,所述隐私数据包括无需保密的第一类键值对和需保密的第二类键值对;所述装置包括:
第一散列处理模块,针对所述隐私数据中的各键值对分别执行加盐散列处理,得到第一加盐散列信息;其中,所述加盐散列处理包括:计算各键值对中的键的散列值,将各键值对中的键的散列值作为盐值与各键值对中的值进行组合,并基于所述组合的结果生成各键值对中的值的加盐散列值;
计算模块,计算所述第一加盐散列信息对应的第一顶层散列值;
传输模块,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
第二散列处理模块,对接收到的所述第一类键值对进行所述加盐散列处理,并将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合,得到第二加盐散列信息;
校验模块,计算所述第二加盐散列信息对应的第二顶层散列值,如果所述第二顶层散列值与所述第一顶层散列值匹配,则确定传输的所述第一类键值对传输成功。
8.根据权利要求7所述的装置,所述装置还包括:
第一排序模块,生成第一加盐散列信息之前,基于预协商的排序规则,对所述隐私数据中的各键值对进行排序。
9.根据权利要求8所述的装置,所述传输模块进一步:
以乱序方式,传输所述第一顶层散列值、所述第一类键值对、以及所述第二类键值对的加盐散列处理结果;
所述装置还包括:
第二排序模块,在所述将处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果进行组合之后,基于所述预协商的排序规则,对处理得到的加盐散列处理结果与接收到的所述第二类键值对的加盐散列处理结果的组合结果进行排序。
10.根据权利要求7所述的装置,所述传输模块进一步:
传输所述第一顶层散列值、所述第一类键值对、以及修改后的所述第一加盐散列信息;其中,所述修改后的第一加盐散列信息中包括所述第二类键值对的加盐散列处理结果、以及所述第一类键值对的键;
所述第二散列处理模块进一步:
将所述第一加盐散列信息中所述第一类键值对的键,替换为处理得到的加盐散列处理结果中对应的加盐散列值,得到第二加盐散列信息。
11.根据权利要求7所述的装置,所述传输模块进一步:
传输所述第一顶层散列值、中间键值对序列、以及与所述中间键值对序列对应的掩码序列;其中,所述中间键值对序列中包括所述第一类键值对、以及所述第二类键值对的加盐散列处理结果,所述掩码序列指示所述中间键值对序列中所述第一类键值对的位置;
所述第二散列处理模块进一步:
基于所述掩码序列指示的位置,将所述中间键值对序列中的所述第一类键值对替换为处理得到的加盐散列处理结果,得到第二加盐散列信息。
12.根据权利要求7所述的装置,所述传输模块进一步:
将所述第一顶层散列值发送至公共存储空间;
从所述公共存储空间中获取所述第一顶层散列值。
13.一种计算机设备,至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~6任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~6任一所述的方法。
CN202110993420.4A 2021-08-27 2021-08-27 一种隐私数据传输方法及装置 Active CN113726764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110993420.4A CN113726764B (zh) 2021-08-27 2021-08-27 一种隐私数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110993420.4A CN113726764B (zh) 2021-08-27 2021-08-27 一种隐私数据传输方法及装置

Publications (2)

Publication Number Publication Date
CN113726764A CN113726764A (zh) 2021-11-30
CN113726764B true CN113726764B (zh) 2023-03-24

Family

ID=78678367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110993420.4A Active CN113726764B (zh) 2021-08-27 2021-08-27 一种隐私数据传输方法及装置

Country Status (1)

Country Link
CN (1) CN113726764B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074579A (zh) * 2016-02-23 2018-12-21 区块链控股有限公司 使用分布式散列表和区块链保护计算机软件的方法及***
CN110032862A (zh) * 2019-04-01 2019-07-19 中科天御(苏州)科技有限公司 一种防撞库攻击的数据动态防护方法及装置
CN110443068A (zh) * 2019-08-01 2019-11-12 中国科学院信息工程研究所 隐私保护方法和装置
WO2019217031A1 (en) * 2018-05-07 2019-11-14 Apple Inc. Contact discovery service with privacy aspect
CN111181714A (zh) * 2019-11-20 2020-05-19 航天信息股份有限公司 密码生成及认证方法、装置、电子设备及介质
CN111767364A (zh) * 2019-03-26 2020-10-13 钉钉控股(开曼)有限公司 数据处理方法、装置和设备
CN112383526A (zh) * 2020-11-06 2021-02-19 扬州大学 使用智能合约实现的区块链下的隐蔽通信方法
CN112597524A (zh) * 2021-03-03 2021-04-02 支付宝(杭州)信息技术有限公司 隐私求交的方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074579A (zh) * 2016-02-23 2018-12-21 区块链控股有限公司 使用分布式散列表和区块链保护计算机软件的方法及***
WO2019217031A1 (en) * 2018-05-07 2019-11-14 Apple Inc. Contact discovery service with privacy aspect
CN112106337A (zh) * 2018-05-07 2020-12-18 苹果公司 具有隐私方面的联系人发现服务
CN111767364A (zh) * 2019-03-26 2020-10-13 钉钉控股(开曼)有限公司 数据处理方法、装置和设备
CN110032862A (zh) * 2019-04-01 2019-07-19 中科天御(苏州)科技有限公司 一种防撞库攻击的数据动态防护方法及装置
CN110443068A (zh) * 2019-08-01 2019-11-12 中国科学院信息工程研究所 隐私保护方法和装置
CN111181714A (zh) * 2019-11-20 2020-05-19 航天信息股份有限公司 密码生成及认证方法、装置、电子设备及介质
CN112383526A (zh) * 2020-11-06 2021-02-19 扬州大学 使用智能合约实现的区块链下的隐蔽通信方法
CN112597524A (zh) * 2021-03-03 2021-04-02 支付宝(杭州)信息技术有限公司 隐私求交的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高校数据隐私保护技术;王玉平等;《中国教育网络》;20160405(第04期);全文 *

Also Published As

Publication number Publication date
CN113726764A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US9954842B2 (en) Method, client, server and system of login verification
CN110457912B (zh) 数据处理方法、装置和电子设备
JP6609047B2 (ja) アプリケーション情報リスクマネジメントのための方法及びデバイス
KR101712119B1 (ko) 비트코인의 거래 알림 장치 및 거래 알림 방법
US20240080205A1 (en) System and method for off-chain cryptographic transaction verification
US20180374097A1 (en) A distributed user profile identity verification system for e-commerce transaction security
CN110245518B (zh) 一种数据存储方法、装置及设备
CN105389488B (zh) 身份认证方法及装置
US10783277B2 (en) Blockchain-type data storage
JP6880055B2 (ja) メッセージ偽造防止実施方法及びデバイス
US10200407B1 (en) Network gateway messaging systems and methods
CN106664308B (zh) 注册之前的设备验证
US9686277B2 (en) Unique identification for an information handling system
US11270004B2 (en) Blockchain-based transaction privacy
JP2017532707A (ja) アウト・オブ・バンド・データから導出されるデジタルフィンガープリント信号に基づくユーザ検証
CN114329527A (zh) 交集数据获取方法、设备和***
US20240187397A1 (en) Network gateway messaging systems and methods
CN114365134A (zh) 使用不可克隆函数的安全身份证
US10452847B2 (en) System call vectorization
EP3729314B1 (en) Spatial and temporal convolution networks for system calls based process monitoring
US10565210B2 (en) Generating and verifying a reputational profile
CN108228248A (zh) 一种依赖关系的确定方法和装置
CN116055067B (zh) 一种弱口令检测的方法、装置、电子设备及介质
CN111027065B (zh) 一种勒索病毒识别方法、装置、电子设备及存储介质
CN113726764B (zh) 一种隐私数据传输方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 2339, 2nd Floor, No. 92, Huancheng North Road, Gongshu District, Hangzhou City, Zhejiang Province 310005

Applicant after: Hangzhou Xita Technology Co.,Ltd.

Address before: 310007 room 2001 and 2010, 20 / F, tower a, Huaxing Times Square, No. 478, Wensan Road, Xihu District, Hangzhou, Zhejiang

Applicant before: Hangzhou Xita Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant