CN116318698A - 数据处理方法、装置及系统 - Google Patents
数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN116318698A CN116318698A CN202111565208.4A CN202111565208A CN116318698A CN 116318698 A CN116318698 A CN 116318698A CN 202111565208 A CN202111565208 A CN 202111565208A CN 116318698 A CN116318698 A CN 116318698A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- block
- data set
- blocks
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 234
- 238000012795 verification Methods 0.000 claims abstract description 171
- 238000000034 method Methods 0.000 claims abstract description 136
- 238000012545 processing Methods 0.000 claims description 92
- 230000006870 function Effects 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 36
- 238000012550 audit Methods 0.000 abstract description 31
- 230000000875 corresponding effect Effects 0.000 description 168
- 230000005540 biological transmission Effects 0.000 description 102
- 238000010586 diagram Methods 0.000 description 32
- 238000004422 calculation algorithm Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 29
- 238000012986 modification Methods 0.000 description 22
- 230000004048 modification Effects 0.000 description 22
- 238000004458 analytical method Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- UHPUCGUHOAGWID-UHFFFAOYSA-N mbid Chemical compound O.OC.C12C34CCN2CC=CC1(CC)C(OC(C)=O)C(C(=O)OC)(O)C4N(C)C(C=C1OC)=C3C=C1C12C3=CC=CC=C3NC11C(C(=O)OC)CC(CC(O)(CO)CC)CN1CC2 UHPUCGUHOAGWID-UHFFFAOYSA-N 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 3
- 239000007943 implant Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 1
- 101150115300 MAC1 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据处理方法、装置及系统,应用于通信技术领域。在该方法中,生成方可以获取N个数据块,并可以根据N个数据块生成第一数据集。第一数据集中除了N个数据块还可以包括第一映射序列,N个数据块中的每个数据块的验证信息对应第一映射序列中的至少一个特定元素,每个数据块的验证信息是根据每个数据块及其对应的计数序列生成的。基于该方案,如果将审计粒度设置为与数据块大小一致,可以实现细粒度的审计。并且,每个数据块的验证信息是结合计数序列生成的,使得验证信息难以伪造,可以有效防止数据欺骗,进而可以提高审计结果的可靠性。另外,将验证信息映射为第一映射序列,使用第一映射序列来验证,可以节约存储和通信资源。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
在数据传输场景中,数据传输的参与方可以对传输的内容进行审计以检查与验证传输内容的真实性、完整性、和可靠性。
随着对传输内容真实性、完整性、和可靠性要求的提高,越来越多的传输场景都需要进行细粒度的审计。然而,目前能够实现细粒度审计的方法的可靠性有待提高。
发明内容
本申请提供一种数据处理方法、装置及系统,用于解决现有技术中实现细粒度审计的方法的准确性和安全性较差的问题。
为达到上述目的,本申请的采用如下技术方案:
第一方面,提供了一种数据处理方法,该数据方法可以应用于数据的生成方,该数据处理方法可以包括:首先,生成方获取N个数据块,N为正整数。然后,生成方确定第一数据集,该第一数据集可以包括N个数据块和第一映射序列。其中,第n个数据块的验证信息对应第一映射序列中的至少一个特定元素,第一映射序列可以用于验证第n个数据块是否被修改,第n个数据块的验证信息是根据第n个数据块和第n个数据块对应的计数序列确定的,不同数据块对应不同的计数序列,n为1至N的正整数。
基于该方案,生成方可以将数据划分为N个数据块,并为每个数据块分别生成验证信息并映射到第一映射序列中,使得生成方生成的该第一数据集可以支持细粒度的审计。并且,将验证信息映射到映射序列中,从而无需保存N个验证信息,该方法可以节约存储资源。另外,生成方为每个数据块生成的验证信息是结合每个数据块对应的计数序列生成的,并且不同数据块对应不同的计数序列,从而可以确保生成方为每个数据块生成的验证信息是唯一的,并且难以被伪造,提高了信息安全性,可以有效避免非法攻击。由于验证信息难以被伪造,因此验证方对数据集进行验证时,所得到的验证结果的可靠性也极大地提高了。
结合上述第一方面,在一种可能的实现方式中,该数据处理方法还可以包括:生成方根据第一密钥确定第n个数据块对应的计数序列的摘要。之后,生成方对第n个数据块对应的计数序列的摘要和第n个数据块进行运算得到第n个数据块的验证信息。
基于该方案,生成方在结合计数序列生成数据块的验证信息时,可以用密钥计算计数序列的摘要,然后根据计数序列的摘要来计算数据块的验证信息。该方法使用密钥来计算计数序列的摘要,可以增加验证信息的安全性,提高攻击方伪造信息的难度。
结合上述第一方面,在一种可能的实现方式中,该数据处理方法还可以包括:首先,将第n个数据块的验证信息通过哈希函数集映射到布隆过滤器中,得到中间映射序列。然后,根据中间映射序列,确定第一映射序列。其中,哈希函数集包括至少一个哈希函数。
基于该方案,本申请中的第一映射序列可以由布隆过滤器实现。布隆过滤器可以用于验证某个输入是否在某个集合中,从而,该第一映射序列可以用于验证布隆过滤器某个输入是否属于第n个数据块的验证信息。
结合上述第一方面,在一种可能的实现方式中,至少一个哈希函数为带密钥的哈希函数。基于该方案,可以提高映射过程的安全性,防止映射规则被逆推。
结合上述第一方面,在一种可能的实现方式中,根据中间映射序列确定第一映射序列,具体可以包括:根据第二密钥加密中间映射序列,得到第一映射序列。或者,将中间映射序列确定为第一映射序列。基于该方案,可以根据不同的安全需要,选择是否对中间映射序列加密。
结合上述第一方面,在一种可能的实现方式中,数据处理方法还可以包括:确定第一映射序列的摘要,第一数据集还包括第一映射序列的摘要。应理解,该方案是为了对第一映射序列进行完整性保护,第一映射序列的摘要可以用于验证第一映射序列是否被修改。
结合上述第一方面,在一种可能的实现方式中,第一数据集还包括N个数据块中第一个数据块对应的计数序列。或者,第一数据集还包括N个数据块中每个数据块对应的计数序列。基于该方案,可以将计数序列携带在第一数据集中,以使得用于验证方在验证时能够确定各个数据块对应的计数序列,进而能够正确地对对应的数据块进行验证。
结合上述第一方面,在一种可能的实现方式中,数据处理方法还可以包括:发送第一数据集。换言之,本申请的方法可以应用于数据传输的场景,数据的生成方可以为数据传输场景中数据的发送方。基于本申请提供的数据处理方法,可以提高发出的数据的安全性和不可伪造性,可以有效防止数据欺骗。并且,由于验证信息映射到了第一映射序列中,不用携带每个数据块的验证信息,从而可以节约通信资源。
第二方面,提供了一种数据处理方法,该数据方法可以应用于数据的更新方,该数据处理方法可以包括:首先,更新方可以获取第二数据集。然后,更新方可以更新第二数据集,得到更新后的第二数据集,第二数据集与更新后的第二数据集存在至少一个不同的数据块。之后,更新方还可以确定第三数据集,第三数据集包括更新后的第二数据集和操作记录块,操作记录块用于指示更新方对第二数据集的更新。
基于该方案,更新方可以对获取到的第二数据集中的数据块进行更新,并且,在对数据集更新后可以生成指示更新的操作记录块,从而后续验证方在验证时能够获知更新方的更新。
结合上述第二方面,在一种可能的实现方式中,更新方更新第二数据集具体可以包括:在第二数据集中新增第一数据块,操作记录块包括第一位置信息,第一位置信息用于指示第一数据块在第三数据集中的位置,以及更新相对于第二数据集的位置。
该方案是更新方可执行的一种更新方式,更新发对于新增的数据块可以记录其位置信息,从而即使更新方可以对数据集进行更新,但是数据集中的数据块是可追溯的。
结合上述第二方面,在一种可能的实现方式中,操作记录块还包括第一数据块对应的计数序列以及第二映射序列,第一数据块对应的计数序列用于确定第一数据块的验证信息,第一数据块的验证信息对应第二映射序列中的至少一个特定元素。
基于该方案,对于新增的数据块可以分配新的计数序列,以及为其生成验证信息和映射序列,可以用于后续对该新增的数据块进行验证。
结合上述第二方面,在一种可能的实现方式中,更新第二数据集包括:修改第二数据集中的第二数据块。其中,修改第二数据块包括以下至少一项:替换第二数据块的部分或全部内容,在第二数据块中新增内容,删除第二数据块的部分内容。操作记录块包括第二位置信息,第二位置信息用于指示第二数据块在第三数据集中的位置,以及更新相对于第二数据集的位置。
该方案是更新方可执行的另一种更新方式,更新发对于修改的数据块可以记录其位置信息,从而即使更新方可以对数据集进行更新,但是数据集中的数据块是可追溯的。
结合上述第二方面,在一种可能的实现方式中,操作记录块还包括第二数据块对应的计数序列以及第三映射序列,第二数据块对应的计数序列用于确定第二数据块的验证信息,第二数据块的验证信息对应第三映射序列中的至少一个特定元素。
基于该方案,对于修改后的数据块可以分配新的计数序列,以及可以为其重新生成新的验证信息和映射序列,可以用于后续对该修改后的数据块进行验证。
结合上述第二方面,在一种可能的实现方式中,更新第二数据集包括:删除第二数据集中的第三数据块,操作记录块包括第三位置信息,第三位置信息用于指示更新相对于第二数据集的位置。
该方案是更新方可执行的又一种更新方式,更新发对于删除的数据块可以记录其位置信息,从而即使更新方可以对数据集进行更新,但是数据集中的数据块是可追溯的。
结合上述第二方面,在一种可能的实现方式中,操作记录块还包括以下至少一项:更新方的标识、更新发生或结束的时间、更新的类型、第二数据集的来源、或操作记录块的签名;其中,第二数据集的来源是生成第二数据集的设备。
结合上述第二方面,在一种可能的实现方式中,在确定所第三数据集之后,方法还包括:发送第三数据集。换言之,该方法可以应用于数据传输的场景中,该更新方可以为数据传输中的中间件。
第三方面,提供了一种数据处理方法,该数据方法可以应用于数据的验证方,该数据处理方法可以包括:首先,验证方获取第四数据集,第四数据集包括M个数据块和第一映射序列,M为正整数。然后,验证方可以确定M个数据块中的K个数据块,K为小于或等于M的正整数。之后,验证方可以根据第k个数据块和第k个数据块对应的计数序列,确定第k个数据块的验证信息,k为1至K的正整数。另外,验证方还可以确定第四映射序列,第k个数据块的验证信息对应第四映射序列中的至少一个特定元素。最后,验证方可以根据第一映射序列和第四映射序列,确定第k个数据块是否被修改。
基于该方案,验证方可以确定出获取到的数据集中的K个数据块,并可以基于与生成方相同的方式生成该K个操作记录块的验证信息所映射的第四映射序列,进而可以根据第一映射序列和第四映射序列来确定该K个没有操作记录的数据块是否真的没有被修改。该方法以数据块为粒度进行处理,可以适用于细粒度的审计。并且,由于验证信息是结合数据块的计数序列生成的,可以有效防止数据欺骗,验证方进行审计的错误率可以极大降低,验证方的验证结果的可靠性极大地提高了。
结合上述第三方面,在一种可能的实现方式中,第四数据集还包括J个操作记录块,J个操作记录块与J个更新方一一对应,操作记录块用于指示生成操作记录块的更新方对原数据集进行的更新,原数据集为更新方进行更新之前的数据集。验证方确定M个数据块中的K个数据块,具体可以包括:根据J个操作记录块,确定M个数据块中的K个数据块。
基于该方案,验证方可以根据操作记录块确定出K个数据块,从而验证方能够确定出M个数据块中有修改记录的数据块和没有修改记录的数据块,实现了对数据集的精细化审计。
结合上述第三方面,在一种可能的实现方式中,根据J个操作记录块确定M个数据块中的K个数据块,具体可以包括:根据第j个操作记录块,在M个数据块中确定第j个更新方的更新数据块对应的目标数据块。其中,更新数据块为第j个操作记录块所指示的第二原数据集中的数据块,第二原数据集为第j个更新方对第一原数据集进行更新后得到的,j的初始值为J。若j-1不等于0,根据第j个操作记录块,确定M个数据块中除更新数据块对应的目标数据块外的数据块在第一原数据集中的位置,j自减1。若j-1等于0,将M个数据块中除更新数据块对应的目标数据块外的数据块确定为K个数据块。
基于该方案,可以从最后一个操作记录块向前倒推,确定出每个更新方的更新数据块,进而可以确定出M个数据块中没有被操作记录的K个数据块。从而,验证方上述验证的是没有操作记录的K个数据块,可以看出,本申请提供的方法可以使验证方对于没有操作记录的数据块进一步验证,以确定这些数据块是否被非法篡改。
结合上述第三方面,在一种可能的实现方式中,更新数据块为第j个更新方新增的或者修改后的数据块。第j个操作记录块包括第四位置信息,第四位置信息指示更新数据块在第二原数据集中的位置,以及更新方进行的更新相对于第一原数据集的位置。
结合上述第三方面,在一种可能的实现方式中,第j个操作记录块包括更新数据块对应的计数序列以及第五映射序列,更新数据块的验证信息对应第五映射序列中的至少一个特定元素。数据处理方法还可以包括:根据更新数据块对应的目标数据块和更新数据块对应的计数序列,确定更新数据块对应的目标数据块的验证信息。确定第六映射序列,更新数据块的验证信息对应第六映射序列中的至少一个特定元素。根据第五映射序列和第六映射序列验证在第j个更新方进行更新之后目标数据块是否被修改。
基于该方案,验证方还可以对有操作记录的数据块进一步验证,以验证该数据块是否有未被记录的更新行为。比如,确定该数据块在被更新方更新后是否被非法篡改。
结合上述第三方面,在一种可能的实现方式中,第四数据集还可以包括起始计数序列。在确定M个数据块中的K个数据块之后,数据处理方法还可以包括:根据起始计数序列确定K个数据块中每个数据块对应的计数序列。应理解,在对数据块进行验证时需要确定数据块对应的计数序列,才能正确地进行验证。
第四方面,提供了一种数据处理装置用于实现上述方法。该数据处理装置可以为上述第一方面的生成方,或者可以为上述第二方面的更新方,或者为上述第三方面的验证方,该数据处理装置可以包括实现上述方法相应的模块、单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。
一种可能的实现方式中,该数据处理装置包括处理模块和收发模块,该收发模块用于执行上述第一方面、第二方面或第三方面的方法中,由数据处理装置侧进行消息接收和发送的操作;该处理模块用于调用指令,执行上述第一方面、第二方面或第三方面的方法中,由数据处理装置侧进行的消息处理或控制操作。
第五方面,提供了一种数据处理装置,包括:处理器;该处理器用于与存储器耦合,并读取存储器中存储的计算机指令之后,根据该指令执行如上述第一方面、第二方面或第三方面所述的方法。
在一种可能的实现方式中,数据处理装置还包括存储器;该存储器用于存储计算机指令。
在一种可能的实现方式中,数据处理装置还包括通信接口;该通信接口用于该数据处理装置与其它设备进行通信。示例性的,该通信接口可以为收发器、输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。
在一种可能的实现方式中,该数据处理装置可以是芯片或芯片系统。其中,当该数据处理装置是芯片系统时,该数据处理装置可以由芯片构成,也可以包含芯片和其他分立器件。
在一种可能的实现方式中,当数据处理装置为芯片或芯片系统时,上述通信接口可以是该芯片或芯片系统上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。上述处理器也可以体现为处理电路或逻辑电路。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面所述的方法。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面所述的方法。
第八方面,提供一种通信系统,该通信系统包括执行上述第一方面所述的数据处理方法的生成方、执行上述第二方面所述的数据处理方法的更新方、以及执行上述第三方面所述的数据处理方法的更新方。
其中,第四方面至第八方面中任一种可能的实现方式所带来的技术效果可参见上述第一方面或第二方面或第三方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种端到端传输场景的示意图;
图2为本申请实施例提供的一种消息验证码MAC的应用示意图;
图3为本申请实施例提供的一种基于应用层的语义分析进行传输内容审计的示意图;
图4为本申请实施例提供的一种基于McTLS进行密钥分配的示意图;
图5为本申请实施例提供的一种基于MaTLS进行端到端传输的示意图;
图6为本申请实施例提供的一种通信系统的结构示意图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的一种数据处理方法的流程图;
图9为本申请实施例提供的一种明文分组加密为密文分组的示意图;
图10为本申请实施例提供的一种根据数据块生成数据块的验证信息的示意图;
图11为本申请实施例提供的一种验证信息映射到中间映射序列的示意图;
图12为本申请实施例提供的一种生成第一映射序列的流程示意图;
图13为本申请实施例提供的一种TLS报文的结构示意图;
图14为本申请实施例提供的一种生成TLS报文的流程示意图;
图15为本申请实施例提供的另一种数据处理方法的流程图;
图16为本申请实施例提供的一种更新方更新数据集的示意图;
图17为本申请实施例提供的另一种更新方更新数据集的示意图;
图18为本申请实施例提供的又一种更新方更新数据集的示意图;
图19为本申请实施例提供的又一种更新方更新数据集的示意图;
图20为本申请实施例提供的又一种更新方更新数据集的示意图;
图21为本申请实施例提供的又一种更新方更新数据集的示意图;
图22为本申请实施例提供的又一种更新方更新数据集的示意图;
图23为本申请实施例提供的一种操作记录块的结构示意图;
图24为本申请实施例提供的一种多个更新方参与更新的示意图;
图25为本申请实施例提供的一种多个中间件参与数据传输的场景示意图;
图26为本申请实施例提供的一种对操作记录块的内容进行层次化加密的示意图;
图27为本申请实施例提供的一种密钥树的示意图;
图28为本申请实施例提供的又一种数据处理方法的流程图;
图29为本申请实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
介绍本申请实施例之前,对本申请实施例涉及的一些相关技术进行解释说明。需要说明的是,下述解释说明是为了让本申请实施例更容易被理解,而不应该视为对本申请实施例所要求的保护范围的限定。
审计是指检查、验证目标的准确性和完整性。对数据进行审计可以检测数据是否符合既定的标准、标杆和审计原则,防止虚假数据和欺骗行为。在网络传输的场景中,面向传输内容的审计是保障接收端接收到的传输内容真实性、完整性、可控性、可用性、和不可否认性(抗抵赖)的关键技术。网络传输的参与方能够对传输内容进行检查与验证,从而实现非法篡改检测、历史行为追溯、恶意操作证明等功能。
网络传输常见的场景是端到端传输场景,传输的参与方包括发送端和接收端。可选地,端到端传输还可以有中间件(middlebox,MB)的参与,比如图1即为一种有中间件参与的端到端传输场景,该场景下传输的参与方还包括中间件。端到端传输场景中由传输内容的接收端来进行审计,审计的目的可以包括:数据是否被修改、数据被谁修改了、数据是在哪个位置被修改的等。如图1所示,传输内容由服务器发送给客户端,途径中间件MB1和MB2,客户端在接收到传输内容后可以进行审计。
一种可选的实现方式中,可以利用消息认证码(message authentication code,MAC)来实现对传输内容的审计。MAC是使用特定算法对目标数据进行运算后产生的一小段数据,MAC可以用来检查目标数据在传递过程中是否被更改过,若接收端收到数据后,根据收到的数据进行计算得到的MAC与发送端的MAC一致,则可以表示该目标数据没被更改。另外,MAC还可以作为发送端的身份验证,使得接收端确认目标数据的来源。
示例地,图2为一种利用MAC进行内容审计的示意图,如图2所示,发送端在生成传输内容后,可以根据密钥和MAC算法对传输内容进行运算,确定传输内容的MAC。之后,可以将传输内容和传输内容的MAC一起发往接收端。接收端在接收到传输内容后,可以使用相同的密钥和算法为接收到的传输内容生成新的MAC。之后,接收端可以比较新的MAC与发送端发来的MAC是否一致,来确定传输内容是否被修改。应理解,发送端和接收端可以预先协商用来生成MAC的密钥和算法。
需要说明的是,生成MAC所使用的算法可以包括加密散列函数和分组密码算法,比如,加密散列函数可以为基于MAC的哈希函数(hash-based message authenticationcode,HMAC),分组密码算法可以为使用密文分组链接(cipher block chaining,CBC)方式加密MAC的算法(CBC-MAC),或者为带密钥的CBC-MAC算法(one-key CBC-MAC,OMAC)等。
需要说明的是,MAC应用在端到端传输的场景可以高效地检测对传输内容的恶意篡改,同时提供了内容发送端的真实性证明。其中,MAC应用的端到端传输场景可以为基于传输层安全协议(transport layer security,TLS)、IP层安全协议(internet protocolsecurity,IPSec)等端到端安全传输协议的场景。
不过,基于MAC进行传输内容的审计有以下缺点:首先,该方法的审计粒度太粗,无法满足细粒度的审计需求。消息认证码一般是对整个传输内容做摘要操作,接收端可以根据MAC不一致确定传输内容被修改了,但不能细粒度检测传输内容具体的修改范围。另外,该方法无法提供不可否认性,特别是面向有中间件参与传输的场景,如果中间件(比如防火墙)也知道生成MAC的密钥和算法,中间件可以在修改传输内容的同时也重新生成传输内容的MAC,使得接收端无法判断接收到的传输内容是发送端发送的还是中间件修改之后的,中间件可以对其修改行为进行抵赖。
另一种可选的实现方式中,可以基于应用层的语义分析进行传输内容的审计。比如,数据的接收端可以在其防火墙处对接收到的传输内容的语义信息进行分析和验证,以实现审计。其中,基于应用层的语义分析是对整个传输内容进行审查。
示例地,图3为一种基于应用层的语义分析进行传输内容审计的示意图,如图3所示,客户端在与因特网(internet)通信时可以设置防火墙,该防火墙可以实现审计功能,当客户端接收来自因特网的传输内容时,防火墙可以对传输内容进行语义分析和验证。以对视频网站的内容进行审计为例,基于应用层的语义分析可以用于检查视频质量是否不符合预期、网页是否显示错误、网页是否存在广告等。
需要说明的是,该方法能够提供细粒度的内容审计,但是该方法对传输内容进行应用层语义分析,复杂度很高。并且,在客户端部署防火墙的模式下,需要客户端侧配合防火墙的证书植入且信任防火墙,该方法无法检测和防止防火墙的一些恶意篡改或者恶意行为。比如,对于防火墙外包给第三方实现的场景,客户端对于防火墙的行为无法获知。此外,随着传输协议的安全要求越来越严格,在未来的安全协议版本中,即使客户端为防火墙植入了证书,防火墙也无法获取进行数据传输的会话的密钥,从而无法对传输内容进行解密,防火墙也就无法对传输内容进行应用层的语义分析,该方法难以适用未来使用的传输协议。
又一种可选地实现方式中,对于有中间件存在的传输场景,提出了中间件安全协议(middlebox security protocol,MSP),MSP可以包括McTLS、MaTLS等。
McTLS的基本原理是通过对传输内容的不同部分使用不同密钥进行分块加密,对于不同的中间件可以分配不同层级的权限使得中间件可以执行相应地行为。比如,给中间件分配了加密密钥,中间件可以具备读取传输内容的权限;给中间件分配了加密密钥和摘要密钥,中间件可以具备读取和修改传输内容的权限。应理解,中间件的权限可以是发送端和接收端协商确定的,发送端和接收端可以知道每个中间件具备的权限。当传输内容被修改时,接收端可以根据分配给不同中间件的密钥情况确定中间件对内容的修改,即确定传输内容是具备修改权限的中间件修改的。
示例地,如图4所示,假设传输内容可以划分为A、B和C三个分块,传输过程包括两个中间件:MB1和MB2。可以给每个中间件分别分配对于每个分块的权限,中间件的权限类型可以为:读(read)权限(图4中用R表示),写(write)权限(图4中用W表示),或者没有权限(图4中用“—”表示)。其中,写权限也就是修改权限。图4中的(a)示出了为MB1和MB2分配对于A、B和C三个分块的权限的示意图,如图4中的(a)所示,MB1对于分块A、分块B和分块C都只具有读权限(R),而MB2对于分块A有读权限(R),MB2对于分块B有写权限(W),MB2对于分块C则没有权限(—)。最终分配出的权限可以如图4中的(b)所示,对于分块A,MB1和MB2都具有读权限(R);对于分块B,MB1具有读权限(R),MB2具有写权限(W);对于分块C,MB1具有读权限(R),MB2则没有权限(—)。
应理解,基于McTLS对传输内容进行审计虽然可以确定出修改传输内容的中间件为具备修改权限的中间件,但是如果多个中间件中存在具备相同权限的中间件,那么接收端还是无法确定具体是哪一个中间件进行的修改。并且,对于不同中间件分配不同的权限复杂度也比较高,分配密钥的数量与分块数量和中间件的数量成正比。
MaTLS的基本原理是发送端和接收端通过协商为每一个中间件分配一个摘要密钥,中间件可以对输入中间件的传输内容生成MAC值,以及中间件在将传输内容输出时也可以生成MAC,这些MAC可以随传输内容一起发送给接收端,从而接收端可以根据MAC值审计传输内容在传输路径上的修改和修改位置。
示例地,图5为一个端到端传输的场景,如图5所示,发送端与接收端之间可以包括2个中间件:MB1和MB2,根据MaTLS的规定,MB1在接收到传输内容时可以生成MAC1,MB1在发出传输内容时可以生成MAC 2,MB2在接收到传输内容时可以生成MAC 3,MB2在发出传输内容时可以生成MAC 4。接收端可以根据这些MAC确定传输内容的修改及修改发送的位置。
应理解,在基于MaTLS的审计方法中,需要为每个中间件分配密钥,并且每个中间件都需要生成MAC,密钥分配和MAC的传输会占用较多通信资源,MAC的计算也会占用中间件的计算资源。对于中间件较多的传输场景,该方法会占用大量的计算和通信资源,实用性较差。
针对上述方法存在的问题,本申请提供了一种数据处理方法,生成方生成的数据集可以包括多个数据块,生成方为每个数据块分配了不同的计数序列,并根据计数序列生成了每个数据块的验证信息,这可以确保数据块的验证信息是难以被伪造的。另外,生成方还可以将所有数据块的验证信息都映射到第一映射序列中,使得验证方根据第一映射序列来验证,而不是根据每个数据块的验证信息来验证,可以节约存储和通信资源。更新方可以对执行的更新行为生成操作记录块以指示更新操作,并且更新方会为新增或修改的数据块生成新的验证信息对应的映射序列。验证方可以根据第一映射序列来验证没有更新记录的数据块,还可以根据更新方生成的映射序列验证更新方新增或修改的数据块。可以看出,该方法可以实现细粒度的审计。并且,在更新方存在时,可以确定更新的数据块位置和发生更新的阶段。另外,由于验证信息是结合计数序列生成的,因此该方法可以极大地提高验证信息的不可为伪造性,防止非法攻击。此外,由于验证方能够正确验证没有操作记录的数据块和更新方操作过的数据块,从而验证方对于没有操作记录的非法修改也可以检查出来,可以极大提高审计的准确性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
首先,对本申请提供的数据处理方法的应用场景进行简单的介绍。图6为一种通信系统的示意图,如图6所示,该通信系统60可以包括生成方601和验证方602,其中,生成方601用于生成数据,验证方602用于对数据进行验证。应理解,生成方与验证方可以是同一个设备,也可以是不同的设备,本申请对此不做限定。示例地,以应用场景为对数据库中的数据进行审计为例,生成方601和验证方602均可以是数据库的管理员(具备数据库操作权限的设备),数据库的管理员在数据库中存储数据之后,后续可以对存储的数据进行验证,以检查是否有其他用户修改了数据库中的数据。或者,又示例地,以应用场景为端到端数据传输为例,生成方601可以为数据的发送端,验证方602可以为数据的接收端,接收端可以对接收到的数据进行验证,以检查发送端发送的数据是否被修改。
可选地,该通信系统60还可以包括更新方603,更新方603可以对生成方601生成的数据进行更新。示例地,以应用场景为对数据库中的数据进行审计为例,该更新方603也可以是数据库管理员,数据库管理员在存储数据后,可以对先前存储的数据进行修改。又示例地,以应用场景为端到端数据传输为例,在数据传输过程中可以有中间件(middlebox,MB)的参与,更新方603可以为进行更新操作的中间件。
应理解,本申请实施例描述的业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
可选的,本申请实施例中的生成方、验证方以及更新方也可以称之为数据处理装置,其可以是一个通用设备或者是一个专用设备,本申请实施例对此不作具体限定。
可选的,本申请实施例中的生成方、验证方以及更新方的相关功能可以由一个设备实现,也可以由多个设备共同实现,还可以是由一个设备内的一个或多个功能模块实现,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是硬件与软件的结合。
例如,本申请实施例中的生成方、验证方以及更新方的相关功能可以通过图7中的数据处理装置70来实现。图7所示为本申请实施例提供的数据处理装置70的结构示意图。该数据处理装置70包括一个或多个处理器701,通信线路702,以及至少一个通信接口(图7中仅是示例性的以包括通信接口703,以及一个处理器701为例进行说明)。可选地,还可以包括存储器704。
处理器701可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路702可包括一个通路,用于连接不同组件之间。
通信接口703,可以是收发模块用于与其他设备或通信网络通信,如以太网,RAN,无线局域网(wireless local area networks,WLAN)等。例如,所述收发模块可以是收发器、收发机一类的装置。可选的,所述通信接口703也可以是位于处理器701内的收发电路,用以实现处理器的信号输入和信号输出。
存储器704可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路702与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器704用于存储执行本申请方案的计算机执行指令,并由处理器701来控制执行。处理器701用于执行存储器704中存储的计算机执行指令,从而实现本申请实施例中提供的报文转发方法。
或者,可选的,本申请实施例中,也可以是处理器701执行本申请下述实施例提供的报文转发方法中的处理相关的功能,通信接口703负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器701可以包括一个或多个CPU,例如图7中的CPU0和CPU1。
在具体实现中,作为一种实施例,数据处理装置70可以包括多个处理器,例如图7中的处理器701和处理器707。这些处理器中的每一个可以是一个单核(single-core)处理器,也可以是一个多核(multi-core)处理器。这里的处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,CPU)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。
在具体实现中,作为一种实施例,数据处理装置70还可以包括输出设备705和输入设备706。输出设备705和处理器701通信,可以以多种方式来显示信息。例如,输出设备705可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备706和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备706可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的数据处理装置70有时也可以称为数据处理装置,其可以是一个通用设备或者是一个专用设备。例如数据处理装置70可以是台式机、便携式电脑、网络目的设备、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备、上述终端设备,上述网络设备、或具有图7中类似结构的设备。本申请实施例不限定数据处理装置70的类型。
下面将结合图2至图7对本申请实施例提供的数据处理方法进行详细阐述。
图8为本申请实施例提供的一种数据处理方法的流程图,该方法可以应用于数据的生成方。如图8所示,该方法可以包括如下步骤。
步骤101、获取N个数据块,N为正整数。
生成方可以将需要生成的数据划分为N个数据块,以便后续分别对N个数据块进行验证操作,从而实现细粒度的审计。可选地,审计粒度可以和数据块一致,或者是数据块的整数倍。
可选地,该N个数据块可以为明文分组,也可以为密文分组。比如,若该审计方法执行在可信的环境中,那么该数据块可以为明文分组。示例地,审计方法应用于数据库中数据的审计场景时,数据库属于可信环境,可以直接根据数据库中存储的明文数据划分出N个明文分组。若该审计方法在不可信的环境中执行,那么该数据块可以为密文分组。示例地,对于审计方法应用于端到端数据传输的场景,数据传输并非是可信的环境,可以将待传输的数据划分为N个密文分组。
应理解,将数据加密为密文分组可以提高数据的安全性。而仅将数据划分为明文分组,不进一步加密为密文分组,则可以降低处理的复杂度。该两种方式可以根据实际的安全需求选择,本申请实施例对此不做限定。
可选地,如果数据块为密文分组,密文分组可以是由明文分组进行加密后得到的。比如,生成的数据包括N个明文分组,然后对N个明文分组进行加密得到N个密文分组。可选地,该N个明文分组可以使用相同的加密方法和密钥进行加密。应理解,本申请对明文分组加密为密文分组时所使用的加密方法不做限定,比如可以为数据加密标准(dataencryption standard,DES)中的加密算法,或者为高级加密标准(advanced encryptionstandard,AES)中的加密算法等。示例地,本申请实施例使用的加密算法可以为AES-GCM算法,其中,GCM是指伽罗瓦/计数器模式(galois/counter mode)。或者,可以为ChaCha20-Poly1305算法。
可选地,如果数据块密文分组,那么由明文分组确定密文分组时,使用的加密算法不同,得到的密文分组的大小也不同。比如,采用AES-GCM算法生成的密文分组的大小为128比特(bit),使用ChaCha20-Poly1305算法生成的密文分组大小为512比特。
步骤102、确定第一数据集,第一数据集包括N个数据块和第一映射序列。
应理解,确定第一数据集可以理解为生成第一数据集。
其中,第n个数据块的验证信息可以对应第一映射序列中的至少一个特定元素。应理解的是,由于n为1至N的正整数,因此该第一映射序列可以包括与N个数据块的验证信息对应的多个特定元素。第一数据集中的第一映射序列可以用于验证第n个数据块是否被修改,n为1至N的正整数。
应理解,验证方在对某个数据块进行验证时,可以生成该待验证的数据块的验证信息,并对待验证的数据块的验证信息基于与生成方相同的映射方法进行映射。如果重新生成的验证信息所映射出的元素,包括在第一映射序列中与N个数据块的验证信息对应的多个特定元素中,则表示该待验证的数据块属于生成方生成的N个数据块。可以看出,基于该方法可以实现对第一数据集中所包括的数据块的审计。
另外,第n个数据块的验证信息可以是根据第n个数据块和第n个数据块对应的计数序列确定的。其中,不同数据块对应不同的计数序列。
应理解,由于不同数据块对应的计数序列不同,因此结合数据块对应的计数序列来确定数据块的验证信息,可以确保不同数据块的验证信息不同。首先,如果不同数据块的内容不同,其对应的验证信息会不同。并且,即使不同数据块的内容相同,但是由于不同数据块对应的计数序列不同,数据块的验证信息依然不同。该方法可以确保数据块的验证信息难以被伪造,防止数据欺骗。
基于该方案,如果第一数据集中的数据块被修改了,那么修改后的数据块对应的验证信息也会发生变化,并且,由于修改方无法获知该修改的数据块对应的计数序列,从而无法伪造修改后的数据块的验证信息并映射在第一映射序列中,因此对于数据块的修改行为无法被掩盖,一定会被验证方检查出来。或者,如果修改方第一数据集中的数据块之间新增了数据块,由于不同数据块对应不同的计数序列,那么新增数据块之后会导致部分数据块对应的计数序列发生变化,进而导致该部分数据块的验证信息发生变化,该行为会被验证方检查出来。并且,由于无法获知该新增的数据块对应的计数序列,也无法伪造该新增数据块的验证信息并映射到第一映射序列中,该新增的数据块也会被检查出来。或者,如果第一数据集中的某个数据块被删除,由于计数序列是基于位置关系与数据块对应的,那么数据块删除后也会导致部分数据块对应的计数序列发生变化,进而导致该部分数据块的验证信息发生变化,该行为会被验证方检查出来。可以看出,基于计数序列生成数据块的验证信息可以保证任何对于数据块的操作都能被检测出来,可以防止数据欺骗。
综上所述,本申请提供了一种数据处理方法,可以应用于数据的生成方。在该方法中,生成方可以获取多个数据块,并可以根据多个数据块生成第一数据集。该第一数据集中除了多个数据块还包括第一映射序列,第一数据集中每个数据块的验证信息对应该第一映射序列中的至少一个特定元素,从而该第一映射序列可以用于验证第一数据集中的数据块是否被修改。并且,每个数据块的验证信息是根据每个数据块及其对应的计数序列生成的,验证信息难以伪造。基于本申请的方案,审计粒度可以设置为与数据块一致,从而可以实现细粒度的审计。并且,本申请并未直接使用每个数据块的验证信息来验证,而是将其映射到第一映射序列中,可以减少占用的存储和通信资源。另外,本申请结合数据块对应的计数序列生成验证信息,可以有效防止数据欺骗,确保审计结果的可靠性。
可选地,本申请提供的数据处理方法的审计粒度可以与数据块的大小相同,或者可以为数据块大小的整数倍。
可选地,在上述步骤101中,如果生成方获取的数据块为密文分组,那么生成方也可以根据明文分组和明文分组对应的计数序列确定密文分组。比如,可以先根据密钥和明文分组对应的计数序列进行加密运算得到一个加密序列,然后将明文分组与其对应的计数序列的加密序列进行运算得到密文分组。
作为一种可能的实现方式,明文分组加密为密文分组的过程可以是在计数器(counter,CTR)模式下进行的。如图9所示,在CTR模式中,每个明文分组对应一个逐次累加的计数器,计数器的值即为每个明文分组对应的计数序列,可以使用密钥对每个明文分组对应的计数序列进行加密,得到每个明文分组对应的加密序列,然后将明文分组与其对应的加密序列进行异或(XOR)运算可以得到的密文分组。
可选地,明文分组对应的计数序列可以为初始向量(initialization vector,IV)。
可选地,在上述步骤102中,第n个数据块对应的验证信息的一种可能的确定方式可以为:首先,根据第一密钥确定第n个数据块对应的计数序列的摘要。然后,对第n个数据块对应的计数序列的摘要和第n个数据块进行运算得到第n个数据块的验证信息。
可选地,根据第一密钥确定出的第n个数据块对应的计数序列的摘要,可以为根据第一密钥和第n个数据块对应的计数序列进行加密运算得到的加密序列。应理解的是,本申请实施例对于生成计数序列的摘要所使用的加密运算不做限定,比如可以使用常用的加密算法加密,或者可以使用哈希算法进行加密等。
作为一种可能的实现方式,计数序列的摘要可以为计数序列的MAC,该第一密钥为生成该MAC所使用的带密钥的哈希函数对应的密钥。
可选地,计数序列的摘要的长度可以根据上层业务对审计的细粒度要求使用不同类型的算法生成,不同类型的算法生成的摘要长度不同。本申请对此不做限定。
可选地,在对第n个数据块对应的计数序列的摘要和第n个数据块进行运算得到第n个数据块的验证信息的过程中所使用的运算方式,本申请也不做限定。比如,该运算可以为加密运算(如加密算法)或者计算机逻辑运算(如异或运算)等。
作为一种可能的实现方式,根据第n个数据块和第n个数据块对应的计数序列确定第n个数据块的验证信息的过程也可以是在CTR模式下进行的。如图10所示,在CTR模式中,每个数据块可以对应一个逐次累加的计数器,计数器的值即为每个数据块对应的计数序列。可以使用第一密钥和每个数据块对应的计数序列进行运算得到每个数据块对应的计数序列的摘要,然后将数据块和与数据块对应的计数序列的摘要进行异或运算可以得到的数据块的验证信息。
可选地,本申请实施例中的数据块对应的计数序列可以随着数据块数量的增加递增。作为一种可能的实现方式,可以设置一个起始计数序列,然后按照数据块在第一数据集中的位置顺序确定每个数据块对应的计数序列,不同数据块对应的计数序列以起始计数序列为起始值递增。应理解,起始计数序列即是第一数据集所包括的N个数据块中的第一个数据块对应的计数序列。
可选地,第一映射序列可以是基于布隆过滤器(bloom filter)实现的。作为一种可能的实现方式,可以将第n个数据块的验证信息通过哈希函数集映射到布隆过滤器中,得到中间映射序列,然后根据中间映射序列,确定出第一映射序列。其中,该哈希函数集可以包括至少一个哈希函数。应理解,上述N个数据块的验证信息可以使用相同的哈希函数集进行映射。
以哈希函数集包括x(x为正整数)个哈希函数为例进行说明,验证信息通过哈希函数集映射到布隆过滤器中的过程可以包括:将第n个数据块的验证信息通过x个哈希函数运算得到x个哈希值,之后将布隆过滤器中与该x个哈希值对应的x个比特位设置为有效位(比如比特值为1)。从而,第n个数据块的验证信息对应布隆过滤器中x个特定的有效比特位,该N个数据块的验证信息都可以映射在同一个布隆过滤器中。通过N个数据块的验证信息进行映射后的布隆过滤器可以认为是上述中间映射序列。
可选地,不同数据块的验证信息对应的特定元素是不同的。不过,当数据块的验证信息对应多个特定元素时,不同数据块的验证信息对应的多个特定元素中可以有部分元素相同。
示例地,以基于布隆过滤器进行映射为例,假设N等于2,x等于3。如图11所示,布隆过滤器可以包括16个比特位,每个比特位初始值为0。第1数据块的验证信息(验证信息_1)可以通过哈希函数1、哈希函数2和哈希函数3分别映射到第3、第4和第7个比特位,使得第3、第4和第7个比特位置为1,第2数据块的验证信息(验证信息_2)可以通过哈希函数1、哈希函数2和哈希函数3分别映射到第6、第7和第10个比特位,使得第6、第7和第10个比特位置为1。可以看出,第1个数据块的验证信息所对应的比特位与第2个数据块的验证信息所对应的比特位可以具有重复的比特位(即第7个比特位)。
可选地,哈希函数集中的哈希函数可以为不带密钥的哈希函数,也可以为带密钥的哈希函数,本申请对此不做限定。比如,若该审计方法执行在可信的环境中,可以使用不带密钥的哈希函数,以降低映射过程的复杂度。若该审计方法执行在不可信的环境中,则可以使用带密钥的哈希函数,以提高安全性。
使用带密钥的哈希函数可以增大映射关系的随机性,使得输入和输出均难以预测,可以增加攻击者利用输入(比如验证信息)和输出(比如第一映射序列中的元素)预测映射所使用的哈希函数,在对数据块修改后,利用哈希函数在第一映射序列中伪造映射出的元素的复杂度和难以实现性,提高映射的安全性,降低被攻击的风险。
应理解,哈希函数集中的哈希函数是否为带密钥的哈希函数,可以根据实际的安全需求自行选择,本申请对此不做限定。
可选地,该映射出的中间映射序列可以直接作为第一数据集中的第一映射序列。或者,也可以根据第二密钥加密该中间映射序列,得到第一映射序列。比如,若该审计方法执行在可信的环境中,则可以直接将中间映射序列作为第一数据集中的第一映射序列。若该审计方法执行在不可信的环境中,则可以根据第二密钥加密该中间映射序列,得到第一映射序列。对于中间映射序列进行加密可以使得数据块的验证信息对应的映射结果处于加密状态,可以进一步防止攻击者利用映射结果逆推映射规则,以及可以防止攻击者修改映射结果以掩盖对数据块的修改操作。
可选地,生成方还可以确定第一映射序列的摘要,第一数据集还可以包括该第一映射序列的摘要。第一映射序列的摘要可以用于审计该第一映射序列的完整性。验证方在对数据块进行验证时可以重新生成第一映射序列的摘要,并比较重新生成的摘要与原摘要是否一致来判断第一映射序列是否被修改。
作为一种可能的实现方式,第一映射序列的摘要可以为第一映射序列的MAC。
需要说明的是,对于中间映射序列进行加密得到第一映射序列,以及计算第一映射序列的摘要,可以看作是对中间映射序列进行机密性与完整性保护。
示例地,以数据块为密文分组,第一映射序列是根据布隆过滤器映射得到的为例,下面对生成数据块的第一映射序列的过程进行的描述。如图12所示,首先,由N个明文分组(图12中的明文分组1至明文分组N)经过加密得到N个密文分组(图12中的密文分组_1至密文分组_N)。然后,N个密文分组中每个密文分组与其对应的计数序列的摘要进行运算,得到N个密文分组对应的验证信息(图12中的验证信息_1至验证信息_N)。之后,将个N个验证信息通过带密钥的哈希函数集映射到布隆过滤器中(映射后的布隆过滤器可以认为是中间映射序列)。最后,再对映射后的布隆过滤器进行机密与完整性保护得到第一映射序列。
可选地,第一数据集可以包括N个数据块中每个数据块对应的计数序列;或者,第一数据集可以包括N个数据块对应的起始计数序列(也即是N个数据块中的第一个数据块对应的计数序列)。该计数序列可以用于让验证方根据每个数据块对应的计数序列重新生成每个数据块对应的验证信息。应理解的是,如果第一数据集中包括的是N个数据块对应的起始计数序列,验证方可以按照特定的顺序(比如位置顺序)确定出每个数据块对应的计数序列。
可选地,图8所示的数据处理方法可以应用在数据传输的场景中,该场景下生成方即为数据传输的发送端。可选地,在该场景下,该数据处理方法还可以包括:步骤103、发送第一数据集。
可选地,在数据传输的场景中,发送端生成数据块和数据块的验证信息的过程中所使用的密钥可以是发送端和接收端协商好的。
可选地,在数据传输的场景中,发送端在发送第一数据集时,还可以发送与第一数据集相关的密码学信息,密码学相关信息可以包括各种加密过程所用的不同密钥的索引、使用的加密算法的套件说明、明文分组的IV、以及数据块对应的计数序列等,密码学相关信息可以用于使接收端调取正确的算法并使用正确的解密与验证参数。
可选地,在数据传输的场景中,为了兼容现有的传输协议,可以将数据块对应的验证信息也携带在报文中。
可选地,在数据传输的场景中,发送端在发送第一数据集时,第一数据集中的不同内容可以包括在报文的不同字段。作为一种可能的实现方式,第一数据集中密码学相关的信息可以放在同一字段(比如报文头),数据块和数据块的验证信息可以放在同一字段(比如负载(payload)),第一映射序列以及第一映射序列的摘要可以放在同一字段(比如报文的扩展(extension)字段)等。其中,将第一映射序列和第一映射序列的摘要放在报文的扩展字段是为了提高报文的兼容性,避免报文无法被识别。
示例地,以报文为TLS报文为例,如图13所示,TLS报文可以包括TLS报文头,TLS负载字段和TLS扩展字段。其中,TLS报文头可以用于携带密码学相关的信息(比如密码学套件的描述、密钥索引、初始向量IV和计数序列等),TLS负载字段可以用于携带数据块和数据块的验证信息,TLS扩展字段可以用于携带第一映射序列和第一映射序列的摘要。
应理解的是,对于数据传输的场景,发送端(即上述生成方)生成第一数据集的过程即为发送端构造数据报文的过程。并且,发送端待传输的数据一般为明文数据,发送端需要对待传输的明文数据进行加密得到密文数据携带在报文中。
可选地,由于待传输的数据经过加密后携带在负载字段,而生成的第一映射序列携带在报文的扩展字段,从而数据的加密过程与第一映射序列的获取过程可以并行进行。
示例地,图14为一种发送端生成TLS报文的示意图,发送端使用的加密算法可以为AES-GCM算法,明文分组加密为密文分组以及密文分组对应的验证信息的生成都可以工作在CTR模式下。如图14所示,待传输的数据可以划分为N个明文分组(明文分组_1至明文分组_N),每个明文分组对应的初始向量IV(IV_1至IV_N)可以使用密钥K1加密,之后将加密后的值与该明文分组做异或运算的到明文分组对应的密文分组,从而得到了N个密文分组(密文分组_1至密文分组_N)。该N个密文分组可以做连接(concatenate)运算,从而可以得到密文数据,该密文数据可以携带在TLS负载字段。并且,还可以使用密钥K2通过加密算法计算密文数据的摘要,该密文数据的摘要也可以携带在TLS负载字段。另外,对于之前生成的N个密文分组,可以为每个密文分组分配对应的计数器(CTR_1至CTR_N)。可以使用密钥K3计算每个计数器的计数序列的摘要(CTR_1摘要至CTR_N摘要),然后将计数序列的摘要与其对应的密文分组做异或运算可以得到每个密文分组的验证信息,从而得到了N个验证信息(验证信息_1至验证信息_N)。该N个验证信息可以通过带密钥的哈希函数集映射到布隆过滤器中,映射后的布隆过滤器(即中间映射序列)可以使用密钥K4进行加密得到第一映射序列,该第一映射序列可以携带在TLS扩展字段。进一步地,还可以使用密钥K5通过加密算法计算第一映射序列的摘要,该第一映射序列的摘要也可以携带在TLS扩展字段。基于上述步骤,发送端即可构造出TLS报文的负载字段和扩展字段。
图15为本申请实施例提供的另一种数据处理方法的流程图,该方法可以应用于数据的更新方。如图15所示,该方法可以包括如下步骤。
步骤201、获取第二数据集。
应理解,该第二数据集即为更新方将要更新的数据集。
可选地,在数据传输的场景中,数据的更新方可以为数据传输过程中对数据进行修改操作的中间件。在数据传输的场景下,更新方获取第二数据集本质上为:更新方接收第二数据集。更新方接收的第二数据集可以来自发送端,也可以来自数据传输路径上的上一跳中间件。
可选地,生成方所生成的第一数据集可以由多个更新方进行多次更新,上述获取第二数据集的更新方可以是多个更新方中的一个。应理解,如果该更新方为对第一数据集更新的第一个更新方,那么该第二数据集与第一数据集相同。如果该更新方不是对第一数据集更新的第一个更新方,那么获取的第二数据集可以为其他更新方对第一数据集进行至少一次更新后的数据集。
步骤202、更新第二数据集,得到更新后的第二数据集,第二数据集与更新后的第二数据集存在至少一个不同的数据块。
应理解,第二数据集与更新后的第二数据集存在至少一个不同的数据块,表示更新方可以对第二数据集中的数据块进行更新。
可选地,更新方对第二数据集中的数据块执行的更新操作可以包括以下至少一种:新增数据块、删除数据块和修改数据块。
步骤203、确定第三数据集,第三数据集包括更新后的第二数据集和操作记录块,操作记录块用于指示更新方对第二数据集的更新。
应理解,更新方生成用于指示其对第二数据集进行的更新的操作记录块,使得验证方在对数据进行审计时,可以根据更新方生成的操作记录块确定数据发生更新的具体情况。
综上所述,本申请提供了一种数据处理方法可以应用于更新方,更新方在对第二数据集更新后,可以生成可以用于指示更新方对第二数据集的更新的操作记录块。从而,验证方在数据审计时,如果发现数据发生了变化,可以查询更新方生成的操作记录块来确定出数据更新的具体情况。相较于现有技术的审计方法,本申请提供的数据处理方法能够审计地更为具体。
基于该方案,验证方可以根据操作记录块来确定数据的修改是否为授权方进行的,进而确定验证的数据是否为可信的。应理解,如果未授权方对数据进行了修改,且没有生成操作记录块,那么验证方验证数据时,无法找到修改的数据对应的操作记录块,则可以确定数据被未授权方修改了,数据不可信。或者,授权的更新方执行了权限范围外的操作,验证方也可以根据操作记录块确定出来。
可选地,操作记录块可以包括位置信息,位置信息可以用来指示更新发生的位置。作为一种可能的实现方式,更新发生的位置可以使用数据块的位置序号来指示。本申请实施例以使用数据块的位置序号来描述数据块的位置信息为例,在此统一说明。
可选地,如果更新方更新第二数据集的操作包括:在第二数据集中新增第一数据块。那么操作记录块可以包括第一位置信息,第一位置信息可以用于指示第一数据块在第三数据集中的位置,以及可以用于指示更新(即新增的数据块)相对于第二数据集的位置。
示例地,如图16所示,假设第二数据集可以包括4个数据块,更新方对第二数据集的更新操作包括:在第二数据集的第2个数据块和第3个数据块中新增了1个数据块。那么,第三数据集就包括了5个数据块,新增的数据块为第三数据集中的第3个数据块。从而,更新方生成的第一位置信息可以指示该新增的数据块在第三数据集中的位置序号是第3,以及可以指示该新增的数据块是在第二数据集中的第2个数据块和第3个数据块之间新增的。
可选地,对于新增的第一数据块,更新方可以为该第一数据块分配新的计数序列,第一数据块新分配的计数序列与生成方为N个数据块分配的计数序列不同。以及,更新方可以根据第一数据块对应的计数序列和第一数据块确定第一数据块的验证信息,并将第一数据块的验证信息进行映射得到第二映射序列,第一数据块的验证信息对应第二映射序列中的至少一个特定元素。
需要说明的是,根据第一数据块对应的计数序列和第一数据块确定第一数据块的验证信息的过程,以及根据第一数据块的验证信息确定第二映射序列的过程,均可以参考上述步骤102中生成数据块的验证信息的过程,以及生成第一映射序列的过程,此处不再赘述。
可选地,该第一数据块对应的计数序列以及第二映射序列可以包括在操作记录块中。
可选地,如果更新方更新第二数据集的操作包括:修改第二数据集中的第二数据块。那么操作记录块可以包括第二位置信息,第二位置信息可以用于指示第二数据块在第三数据集中的位置,以及更新(即修改的数据块)相对于第二数据集的位置。其中,修改第二数据块可以包括以下至少一项:替换第二数据块的部分或全部内容,在第二数据块中新增内容,删除第二数据块的部分内容。
示例地,如图17所示,假设第二数据集可以包括5个数据块,更新方对第二数据集的更新操作包括:修改第二数据集的第3个数据块。从而,更新方生成的第二位置信息可以指示该修改的数据块在第三数据集中的位置序号是第3,以及可以指示该修改的数据块位于第二数据集中的第2个数据块和第4个数据块之间。
可选地,更新方可以为该修改后的第二数据块分配新的计数序列,修改后的第二数据块对应新分配的计数序列与生成方为N个数据块分配的计数序列不同。以及,更新方可以根据修改后的第二数据块新分配的计数序列和修改后的第二数据块确定修改后的第二数据块的验证信息,并将修改后的第二数据块的验证信息进行映射得到第三映射序列,修改后的第二数据块的验证信息对应第三映射序列中的至少一个特定元素。
需要说明的是,根据修改后的第二数据块对应的计数序列和修改后的第二数据块确定修改后的第二数据块的验证信息的过程,以及根据修改后的第二数据块的验证信息确定第三映射序列的过程,均可以参考上述步骤102中生成数据块的验证信息的过程,以及生成第一映射序列的过程,此处不再赘述。
可选地,该修改后的第二数据块新分配的计数序列以及第三映射序列可以包括在操作记录块中。
可选地,如果更新方更新第二数据集的操作包括:删除第二数据集中的第三数据块。那么,操作记录块可以包括第三位置信息,该第三位置信息可以用于指示更新(即删除的数据块)相对于第二数据集的位置。
示例地,示例地,如图18所示,假设第二数据集可以包括5个数据块,更新方对第二数据集的更新操作可以包括:删除第二数据集的第3个数据块。那么,第三数据集就包括4个数据块。更新方生成的第三位置信息可以指示该删除的数据块是在第二数据集中位于第2个数据块和第4个数据块之间。
从上述不同更新操作对应的实现方式可以看出,当更新方对第二数据集进行更新后,位置信息可以指示更新(新增、修改或删除)相对于第二数据集的位置。并且,如果更新操作为新增数据块或修改数据块,那么位置信息还可以指示新增的数据块或修改后的数据块在第三数据集中的位置。
应理解,操作记录块中的位置信息可以使得验证方从多个数据块中确定出生成方生成的数据块和更新方生成的数据块,使得验证方能够正确地对每个数据块进行验证。以符合细粒度审计的要求。
另外,对新增或修改后的数据块生成验证信息的映射序列(上述第二映射序列和第三映射序列),可以用于验证该更新方生成的数据块在后续有没有被修改。
可选地,在为新增的数据块或者修改后的数据块分配新的计数序列时,可以使用与生成方不同的起始计数序列。示例地,生成方在为生成的数据块分配计数序列时,可以从1开始分配,那么更新方为新增的或者修改后的数据块分配新的计数序列时,可以从1000开始分配。
作为一种可能的实现方式,操作记录块中的位置信息可以包括:现数据块起止和原数据块起止,现数据块起止可以用于指示更新在第三数据集中的位置,原数据块起止可以用于指示更新在第二数据集中的位置。其中,数据块起止可以用数据块的位置序号表示。比如,上述第一位置信息和第二位置信息就可以包括现数据块起止和原数据块起止,上述第三位置信息可以仅包括原数据块起止。
示例地,以图16所示的更新操作为例,新增的数据块在第三数据集中的位置是第3,第一位置信息中的现数据块起止可以为{3,3},可选地,{3,3}可以简写为{3}。新增的数据块是在第二数据集中的第2个数据块和第3个数据块之间增加的,因此第一位置信息中的原数据块起止可以为{2,3}。
又示例地,以图17所示的更新操作为例,修改后的数据块在第三数据集中的位置是第3,第二位置信息中的现数据块起止可以为{3,3},可以简写为{3}。该修改的数据块在第二数据集中的位置也是第3,即第2个数据块和第4个数据块之间,因此第二位置信息中的原数据块起止可以为{2,4}。
又示例地,以图18所示的更新操作为例,删除的数据块是第二数据集中的第3个数据块,即第2个数据块和第4个数据块之间,因此第三位置信息中的原数据块起止可以为{2,4}。
可选地,操作记录块中的位置信息可以包括一条或多条,位置信息的数量与更新方的更新操作相关。比如,更新方的更新操作包括对多个数据块的更新,那么可以为每个更新的数据块生成一条位置信息。应理解的是,该多个数据块的更新可以为同一种更新(为新增、修改或删除中的一种),也可以为不同的更新(包括新增、修改和删除中的多种)。
示例地,如图19所示,第二数据集可以包括4个数据块,更新方可以在第二数据集的第1个数据块和第2个数据块之间新增1个数据块,以及可以对第二数据集的第3个数据块进行了修改。从而,该更新方生成的操作记录块可以包括2条位置信息,分别对应新增操作和修改操作。以位置信息包括现数据块起止和原数据块起止为例,如图19所示,位置信息1中的现数据块起止为{2},原数据块起止为{1,2}。位置信息2中的现数据块起止为{4},原数据块起止为{2,4}。
可选地,在更新方对第二数据集中的多个数据块进行更新的情况下,如果该多个数据块的位置是连续的,那么可以用一条位置信息来指示多个数据块的更新位置。
示例地,如图20所示,第二数据集可以包括4个数据块,更新方在第二数据集的第2个数据块和第3个数据块之间新增了3个数据块,从而第三数据集包括7个数据块。以位置信息包括现数据块起止和原数据块起止为例,由于新增的数据块在第三数据集中的位置是第3、第4和第5,那么位置信息中的现数据块起止可以为:{3,5};由于新增的数据块是在第二数据集中的第2个数据块和第3个数据块之间新增的,因此位置信息中的原数据块起止可以为:{2,3}。
又示例地,如图21所示,第二数据集可以包括5个数据块,更新方将第二数据集中的第2至第4个数据块经过修改后合并为了2个数据块,从而第三数据集包括4个数据块。以位置信息包括现数据块起止和原数据块起止为例,由于修改后的2个数据块在第三数据集中位置是第2和第3,那么位置信息中的现数据块起止可以为:{2,3};由于修改的数据块是第二数据集的第2至第4个数据块(位于第1个和第5个之间),因此位置信息中的原数据块起止可以为:{1,5}。
又示例地,如图22所示,第二数据集可以包括5个数据块,更新方删除了第二数据集中的第2和第3个数据块,从而第三数据集包括3个数据块。以位置信息包括原数据块起止为例,由于删除的数据块位于第二数据集中的第1个和第4个数据块之间,因此该更新对应的位置信息中的原数据块起止为:{1,4}。
可选地,更新方生成的操作记录块还可以包括以下至少一项:更新方的标识、更新发生或结束的时间、更新的类型、第二数据集的来源、或操作记录块的签名等。其中,更新发生或结束的时间可以时间戳(timestamp)表示,更新的类型可以包括新增、修改或删除,第二数据集的来源是指生成第二数据集的设备。应理解的是,更新方的更新操作针对的是第二数据集中的数据块,因此第二数据集的来源本质上是指更新方所更新的数据块的来源,数据块的来源可以为生成方或者当前更新方的上一跳的更新方。
以位置信息包括现数据块起止和原数据块起止为例,图23为一种操作记录块的示意图,如图23所示,该操作记录块可以包括更新方标识、时间戳、现数据块起止、原数据块起止、数据块的来源、操作类型、目标数据块的计数序列、目标数据块的映射序列、以及操作记录块的签名。其中,目标数据块是指更新方更新时新增或修改后的数据块,操作类型即为上述更新的类型。应理解的是,如果更新操作仅包括删除操作,那么更新方生成的操作记录块不包括:现数据块起止、目标数据块的计数序列、以及目标数据块的映射序列。另外,现数据块起止、原数据块起止、数据块的来源和操作类型可以认为是更新方的操作记录。
可选地,生成方生成的数据可以由多个更新方对其进行更新,对于多个更新方参与数据更新的场景,后续的更新方是基于先前的更新方所更新后的数据更新的。应理解,前一个更新方更新后生成的第三数据集,可以作为后一个更新方更新前的第二数据集。
示例地,图24示出了一种包括多个更新方进行更新的示意图,如图24所示,生成方生成的数据集a可以包括4个数据块。更新方1可以在数据集a中的第3个数据块和第4个数据块之间新增2个数据块,从而得到包括6个数据块的数据集b。由于新增的数据块在数据集b中为第4个和5个数据块,因此更新方1生成的操作记录块1中的现数据块起止可以为{4,5}。由于新增的数据块是插在数据集a中的第2个数据块和第3个数据块之间的,因此更新方1生成的操作记录块1中的原数据块起止可以为{3,4}。另外,更新方1生成的操作记录块1中的数据块来源为生成方,操作类型为新增(add)。更新方2基于数据集b进行更新,如图24所示,更新方2可以对数据集b中的第2个至第4个数据块进行修改,合并为2个数据块,得到更新后的数据集c。那么更新方2修改后的数据块在数据集c中为第2和第3个数据块,因此更新方2生成的操作记录块2中的现数据块起止可以为{2,3}。由于修改的数据块是数据集b中的第2个至第4个数据块,位于第1个数据块和第5个数据块之间,因此更新方2生成的操作记录块2中的原数据块起止可以为{1,5}。另外,更新方2生成的操作记录块2中的数据块来源为更新方1,操作类型为修改(modify)。
可选地,本申请提供的数据处理方法可以应用于数据传输场景中,更新方可以为对传输数据进行修改的中间件。那么,操作记录块中的更新方的标识可以为中间件身份标识(middlebox identification,MBID),数据块的来源可以为发送端或者上一跳中间件。
可选地,在数据传输的场景中,中间件在确定所第三数据集之后,还可以发送该第三数据集。应理解的是,在数据传输的场景中,中间件接收的第二数据集相当于输入的数据报文,发送的第三数据集相当于输出的数据报文。中间件生成的操作记录块可以携带在数据报文中,发送给接收端。
可选地,在数据传输的场景中,可以有多个中间件参与对数据报文的修改。在该场景下,每个中间件而言可以对接收到的数据报文进行修改,并生成对应的操作记录块,然后可以将操作记录块附加在修改后的数据报文中发出。
示例地,图25示出了具有多个中间件参与数据传输的场景,如图25所示,中间件MB1在修改数据报文后,可以生成操作记录块1,操作记录块1可以包括:MBID(MB1),时间戳(T1)、操作记录、MB1生成的映射序列以及操作记录块的签名。MB1可以将该数据块1附加在发出的数据报文中。中间件MB2可以接收来自MB1的数据报文,也可以对数据报文进行修改,并生成操作记录块2。继续参考图25,操作记录块2可以包括:MBID(MB2),时间戳(T2)、操作记录、MB1生成的映射序列以及操作记录块的签名。MB2可以将该数据块2附加在其发出的数据报文中。应理解的是,MB2更新的数据集来自MB1,因此操作记录块中的操作记录可以指向MB1。
应理解的是,更新方生成的操作记录块可以使用密钥进行加密,以实现机密性与完整性保护。比如,以更新方为中间件为例,操作记录块中的MBID、时间戳、现数据块起止、原数据块起止、数据块来源、操作类型、MB分配的计数序列、MB生成的映射序列以及操作记录块的签名等信息都可以进行加密。
可选地,在对操作记录块进行加密时,不使用同一个密钥对操作记录块中的所有信息加密,而是使用不同的密钥对不同的信息分层次加密。比如,可以根据操作记录块中信息的重要程度的不同划分加密层次。应理解,对操作记录块分层次加密可以便于后续对访问操作记录块的不同用户授予不同层次的访问权限,提高信息的安全性。
示例地,如图26所示,操作记录块中的原数据块起止、数据块来源和操作类型可以使用密钥key3加密,MB分配的计数序列可以使用密钥key2加密,现数据块起止可以使用密钥key1加密,MBID、时间戳、MB生成的映射序列、以及签名可以使用密钥key0加密。
可选地,本申请实施例中,生成方和更新方所使用的密钥可以是预先协商好的。作为一种可能的实现方式,可以基于密钥索引派生密钥树,该密钥树包括不同的密钥。生成方和更新方可以根据不同的加密对象选择密钥树中的不同密钥。
示例地,如图27中所示,可以基于密钥索引派生出密文数据对应的密钥、第一映射序列对应的密钥、以及操作记录块对应的密钥。其中,密文数据对应的密钥可以包括:根据明文分组加密密文分组的密钥A1(比如图14中的密钥K1)和生成密文数据的摘要所使用的密钥A2(比如图14中的密钥K2)。第一映射序列对应的密钥可以包括:生成数据块对应的计数序列的摘要所使用的密钥B1(比如图14中的密钥K3)、生成中间映射序列的哈希函数集的密钥B2、加密中间映射序列生成第一映射序列的密钥B3(比如图14中的密钥K4)、以及生成第一映射序列的摘要所使用的密钥B4(比如图14中的密钥K5)。操作记录块对应的密钥可以包括:操作记录块签名所使用的密钥C1,以及加密操作记录块中的信息所使用的密钥C2。
应理解,由于操作记录块中的信息可以分层次加密,因此图27中的密钥C2可以包括多个不同层次的密钥。该多个不同层次的密钥之间可以具有派生关系,高层次的密钥可以派生出低层次的密钥。如图27所示,密钥C2可以包括C21、C22、C23和C24,C21可以派生出C22,C22可以派生出C23,C23可以派生出C24。基于该方案,可以根据不同层次的密钥划分不同层次的访问权限,比如,获取高层次密钥(比如C21)的设备可以自行派生出低等级密钥(比如C22、C23和C24),从而可以访问更多的信息,具备更高的访问权限。
可选地,图27中的密钥C21可以为图26中的密钥key0,图27中的密钥C22可以为图26中的密钥key1,图27中的密钥C23可以为图26中的密钥key2,图27中的密钥C24可以为图26中的密钥key3。
图28为本申请提供的又一种数据处理方法的流程图,该方法可以应用于数据的验证方。如图28所示,该方法可以包括如下步骤。
步骤301、获取第四数据集,第四数据集包括M个数据块和第一映射序列,M为正整数。
需要说明的是,第四数据集中的第一映射序列为生成方根据生成方生成的N个数据块确定出的映射序列。第四数据集中的M个数据块包括发生方生成的N个数据块中的部分或全部。
可选地,在数据传输的场景中,验证方可以为数据的接收端,获取第四数据集可以为:接收第四数据集。
可选地,在数据传输的场景中,该第四数据集可以是来自发送端的,此种情况下,该第四数据集即是第一数据集。或者,该第四数据集来自参与数据修改的中间件的,那么该第四数据集是由中间件生成的。
步骤302、确定M个数据块中的K个数据块,K为小于或等于M的正整数。
根据前文更新方的实施例可知,如果更新方进行了更新操作,更新方会生成操作记录块指示发生的更新。本申请实施例中确定出的K个数据块是指没有更新记录的数据块,也即该K个数据块不属于操作记录块所指示的更新操作对应的数据块。
可选地,第四数据集可以包括J个操作记录块,J个操作记录块与J个更新方一一对应,每个操作记录块可以用于指示生成该操作记录块的更新方对原数据集进行的更新,原数据集为更新方进行更新之前的数据集。确定M个数据块中的K个数据块的方法可以包括:根据J个操作记录块,确定M个数据块中的K个数据块。
作为一种可能的实现方式,根据J个操作记录块确定M个数据块中的K个数据块,具体可以包括如下步骤:
步骤3021、根据第j个操作记录块,在M个数据块中确定第j个更新方的更新数据块对应的目标数据块。
其中,j为变量,j的初始值为J。本申请设置j的初始值为J,表示从最后一个更新方的操作记录块开始向前倒推验证每个更新方的操作记录块。另外,更新数据块是指第j个操作记录块所指示的第二原数据集中的数据块,第二原数据集为第j个更新方根据第一原数据集更新后得到的。应理解的是,当j=J时,第四数据集即是第J个更新方更新后得到的。
需要说明的是,根据上述更新方的实施例可知,当更新方的更新操作为新增或修改时,生成的操作记录块可以指示新增的数据块或修改后的数据块在更新后的数据集(比如第二原数据集)中的位置。从而,第j个更新方的更新数据块是指第j个更新方新增的或修改后的数据块。
可选地,第j个操作记录块可以包括第四位置信息,第四位置信息可以指示第j个更新方的更新数据块在第二原数据集中的位置,以及第j个更新方进行的更新相对于第一原数据集的位置。基于此种可选地实现方式,验证方可以根据第j个操作记录块中的第四位置信息确定第j个更新方的更新数据块。
可选地,验证方可以根据第二原数据集中的数据块与第四数据集中的M个数据块的位置关系,确定第j个更新方的更新数据块对应的目标数据块。应理解的是,根据下面步骤3022可知,第j个更新方更新后得到的第二原数据集中的数据块与第四数据集中的M个数据块的位置关系,可以由第j+1个更新方确定。使得第j个更新方可以确定出更新数据块对应的目标数据块。
需要说明的是,第j个更新方的更新数据块对应的目标数据块是指M个数据块中,由第j个更新方的更新数据块直接得到的数据块。示例地,如图24所示,更新方2的更新数据块为数据集c中的第2个和第3个数据块,由于数据集c即是第四数据集,因此数据集c中的第2个和第3个数据块即是目标数据块。继续参考图24,更新方1的更新数据块包括数据集b中的第4个和第5个数据块,其中,数据集b中的第5个数据块后续没有被更新方2修改,直接得到了数据集c中的第4个数据块,因此更新方1的更新数据块对应的目标数据块为数据集c中的第4个数据块。
应理解的是,如果第j个更新方的更新操作为删除第一原数据集中的数据块,那么该第j个更新方在对第一原数据集更新后并没有生成新的数据块,从而第二原数据集中不存在该第j个更新方的更新数据块,进而M个数据块中也就没有与之对应的目标数据块。因此,如果第j个更新方的更新操作为删除操作,那么根据第j个操作记录块确定不出对应的目标数据块。
步骤3022、若j-1不等于0,根据第j个操作记录块,确定M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块在第一原数据集中的位置。并且,j自减1,重新执行步骤3021。
当j-1不等于0时,表示第j个更新方之前还有其他的更新方。
应理解的是,验证方在确定出第j个更新方的更新数据块对应的目标数据块后,只需继续验证M个数据块中的其他数据块即可,因此只需确定M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块在第一原数据集中的位置即可。
验证方在确定出M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块在第一原数据集中的位置后,可以使j自减1,重新执行步骤3021。
应理解,第j个更新方所操作的第一原数据集是第j-1个更新方生成的,第j个更新方确定M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块在第一原数据集中的位置,相当于确定M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块,在第j-1个更新方更新后的数据集中的位置。j自减1,重新执行步骤3021,是为了继续确定M个数据块中是否有第j-1个更新方的更新数据块对应的目标数据块。
应理解,在j-1不等于0的情况下,会重复执行步骤3021和步骤3022,从而可以确定出M个数据块中,所有与更新方的更新数据块对应的目标数据块。
步骤3023、若j-1等于0,将M个数据块中除目标数据块外的数据块确定为K个数据块。
应理解,当j-1等于0(即j=1)时,表示第j个更新方是对生成方生成的第一数据集进行更新的第一个更新方,在第j个更新方之前再无其他的更新方。由于通过步骤3021和步骤3022可以确定出M个数据块中所有与更新方的更新数据块对应的目标数据块,那么M个数据块中除更新方的更新数据块对应的目标数据块外的数据块就是没有更新记录的数据块。从而,验证方可以将M个数据块中除更新方的更新数据块对应的目标数据块外的数据块,确定为K个数据块。
示例地,以图24所示更新场景为例来详细说明步骤3021至步骤3023。图24的场景包括两个更新方(即J=2),数据集c为第四数据集,M个数据块是指数据集c中的5个数据块。首先,j的初始值为2,验证方会首先验证更新方2生成的操作记录块2。验证方可以根据更新方2生成的操作记录块中的现数据块起止{2,3},确定更新方2的更新数据块为数据集c中的第2个和第3个数据块,由于数据集c即是第四数据集,从而数据集c中的第2个和第3个数据块也即是数据集c中的目标数据块。
然后,由于更新方2之前还有更新方1,因此验证方可以根据更新方2生成的操作记录块中的原数据块起止{1,5},确定出数据集c中出第2个和第3个数据块之外的数据块(即数据集c中的第1个、第4个和第5个数据块)在数据集b中的位置。如图24所示,数据集c中的第1个数据块对应数据集b中的第1个数据块,数据集c中第4个数据块对应数据集b中的第5个数据块,数据集c中的第5个数据块对应数据集b中的第6个数据块。
之后,验证方可以验证更新方1生成的操作记录块1,验证方可以根据更新方1生成的操作记录块中的现数据块起止{4,5},确定出更新方1的更新数据块为数据集b中的第4个和第5个数据块。其中,只有数据集b中的第5个数据块后续没有被修改直接得到了数据集c中的第4个数据块,因此数据集c中第4个数据块为更新方1的更新数据块对应的目标数据块。
由于验证方1之前再无别的更新方,因此验证方可以将数据集c中除更新方的更新数据块对应的目标数据块(数据集c中的第2个、第3个和第4个数据块)之外的数据块确定为没有更新记录的数据块,也即是数据集c中第1个和第5个数据块为没有更新记录的数据块。
可选地,如果第四数据集中不包括操作记录块,那么第四数据集中的M个数据块均为没有操作记录的数据块,并且这也表示生成方生成的N个数据块没有对应的操作记录,从而K=M=N。
应理解的是,在步骤302中,验证方仅是根据操作记录块确定出了没有更新记录的K个数据块,但这并不能表示这K个数据块真的没有被修改过(可能有未授权的修改没有记录),因此这K个数据块该需要进行后续的验证。理论上说,没有更新记录的K个数据块应当是生成方生成的,该K个数据块应当与生成方生成的数据块对应。从而,后续可以验证该K个数据块是否属于生成方生成的N个数据块,来确定该K个数据块是否被修改。
可选地,上述确定K个数据块还包括:确定K个数据块在第一数据集中的位置。
应理解的是,在上述步骤3022中,在j-1不等于0的情况下,验证方可以确定M个数据块中除第j个更新方的更新数据块对应的目标数据块外的数据块在第一原数据集中的位置。由于步骤3021和步骤3022可以重复执行,直至j-1=0才停止。从而,通过步骤3021和步骤3022可以确定出M个数据块中除所有更新方(第J个至第1个更新方)的更新数据块对应的目标数据块外的数据块(也就是M个数据块中的K个数据块),在第2个更新方对应的第一原数据集中的位置,也就是第1个更新方对应的第二原数据集中的位置。可选地,在步骤3023之后,验证方可以根据第1个操作记录块确定出第1个更新方的更新数据块在第一数据集中的位置,进而可以确定出K个数据块在第一数据集中的位置。
示例地,继续以图24所示的更新场景为例,在确定出数据集c中没有更新记录的数据块(即M个数据块中的K个数据块)为第1个和第5个数据块后,可以根据第1个操作记录块中的现数据块起止{4,5}和原数据块起止{3,4},确定出数据集b中的第1个至第3个数据块为数据集a中的第1个至第3个数据块,数据集b中的第6个数据块为数据集a中的第4个数据块。由于数据集c中中的第1个数据块对应数据集b中的第1个数据块,数据集c中的第5个数据块对应数据集b中的第6个数据块,因此可以确定出数据集c中的第1个数据块对应数据集a中的第1个数据块,数据集c中的第5个数据块对应数据集a中的第4个数据块。由此,确定出了M个数据块中的K个数据块在第一数据集中的位置。
步骤303、根据第k个数据块和第k个数据块对应的计数序列,确定第k个数据块的验证信息,k为1至K的正整数。
可选地,验证方可以预先从生成方接收第k个数据块对应的计数序列,或者,验证方可以从第四数据集中获取第k个数据块对应的计数序列。
作为一种可能的实现方式,第四数据集还可以包括起始计数序列,该起始计数序列为生成方生成的N个数据块对应的起始计数序列。
可选地,以第四数据集包括起始计数序列为例,在确定出第四数据集中的K个数据块之后,验证方还可以根据起始计数序列确定K个数据块中每个数据块对应计数序列。由于该K个数据块与第一数据集中数据块对应,因此可以按照该K个数据块在第一数据集中的位置分配对应的计数序列,以便能够正确的验证该K个数据块。
在确定出K个数据块对应的计数序列后,即可根据第k个数据块和第k个数据块对应的计数序列,确定第k个数据块的验证信息。第k个数据块的验证信息可以用于验证第k个数据块是否为生成方生成的第一数据集中的数据块,也就是验证该第k个数据块在生成方生成后有没有被非法篡改。
需要说明的是,根据第k个数据块和第k个数据块对应的计数序列,确定第k个数据块的验证信息的过程,可以参考生成方生成第n个数据块的验证信息的过程,此处不再赘述。并且,应理解的是,生成第k个数据块的验证信息所使用的计算方法,应当与生成方生成与该第k个数据块对应的数据块的验证信息时所使用的计算方法相同,这样才能正确验证该第k个数据块是否被修改。
步骤304、确定第四映射序列,第k个数据块的验证信息对应第四映射序列中的至少一个特定元素。
在确定出第k个数据块的验证信息后,可以根据该第k个数据块的验证信息生成第四映射序列。需要说明的是,生成第四映射序列所使用的映射方法可以与生成第一映射序列的映射方法相同,以便进行比对。示例地,可以将该第k个数据块的验证信息映射到布隆过滤器中得到第四映射序列。
步骤305、根据第一映射序列和第四映射序列,确定第k个数据块是否被修改。
作为一种实现方式,如果第k个数据块的验证信息在第四映射序列中对应的至少一个特定元素,包含于N个数据块的验证信息在第一映射序列中对应的至少一个特定元素,则可以认为第k个数据块是生成方生成的N个数据块中的一个,从而可以认为第k个数据块没有被修改。如果第k个数据块的验证信息在第四映射序列中对应的至少一个特定元素,不包含于N个数据块的验证信息在第一映射序列中对应的至少一个特定元素,则可以认为第k个数据块被修改了。
综上所述,本申请实施例提供了一种数据处理方法,可以应用于数据的验证方,验证方可以根据操作记录块确定出没有操作记录的K个数据块,并可以基于与生成方相同的方式生成该K个操作记录块的验证信息所映射的第四映射序列,进而可以根据第一映射序列和第四映射序列来确定该K个没有操作记录的数据块是否真的没有被修改。该方法以数据块为粒度进行处理,可以适用于细粒度的审计。并且,在该方法中,验证方可以根据操作记录块审计出有修改记录的数据块,还可以根据第一映射序列和第四映射序列精确审计没有操作记录的数据块是否被修改,该方法可以提高审计的精确性。另外,由于验证信息是结合数据块的计数序列生成的,可以有效防止数据欺骗,验证方进行审计的错误率可以极大降低。
可选地,若第j个更新方的更新数据块为新增或修改的数据块,第四数据集中的第j个操作记录块还可以包括第j个更新方的更新数据块对应的计数序列以及第五映射序列,第j个更新方的更新数据块的验证信息对应第五映射序列中的至少一个特定元素。其中,第五映射序列可以用于验证第j个更新方的更新数据块后续是否被篡改。
应理解,如果操作记录块指示的信息表示:第j个更新方的更新数据块之后再没有其他更新方进行更新过,那么该第j个更新方的更新数据块应当与M个数据集中,该第j个更新方的更新数据块对应的目标数据块相同。
因此验证方在验证操作记录块时,可以根据更新数据块对应的目标数据块和更新数据块的计数序列,确定更新数据块对应的目标数据块的验证信息。以及,验证方可以根据更新数据块对应的目标数据块的验证信息生成第六映射序列,更新数据块对应的目标数据块的验证信息对应第六映射序列中的至少一个特定元素。最后,验证方可以根据第五映射序列和第六映射序列来验证第j个更新方的更新数据块与其对应的目标数据块是否相同。
如果相同,则表示第j个更新方的更新数据块对应的目标数据块,确实是由第j个更新方的更新数据块直接得到的,中间没有被非法篡改。应理解,如果验证出第j个更新方的更新数据块与其对应的目标数据块不同,则表示第j个更新方的更新数据块在第j个更新方进行更新之后被非法篡改。
基于该方案,验证方还可以对接收到的数据集中与更新方的更新数据块对应的目标数据块进行验证,进而确定该目标数据块在经过更新方更新后是否有未被记录的非法篡改。从而,基于本申请提供的数据处理方法,验证方既可以对没有操作记录的数据块进行验证,还能够对有操作记录的数据块进行验证,也就是实现了对接收到的第四数据集中每个数据块的验证,实现了细粒度且精细化的审计。
需要说明的是,上述方法实施例中生成方的动作可以由图7所示的数据处理装置70中的处理器701调用存储器702中存储的应用程序代码以指令该生成方执行;更新方的动作可以由图7所示的数据处理装置70中的处理器701调用存储器702中存储的应用程序代码以指令该更新方执行;验证方的动作可以由图7所示的数据处理装置70中的处理器701调用存储器702中存储的应用程序代码以指令该验证方执行;;本实施例对此不作任何限制。
可以理解的是,以上各个实施例中,由生成方实现的方法和/或步骤,也可以由可用于生成方的部件(例如芯片或者电路)实现;由更新方实现的方法和/或步骤,也可以由可用于更新方的部件(例如芯片或者电路)实现;由验证方实现的方法和/或步骤,也可以由可用于验证方的部件(例如芯片或者电路)实现。
可选地,本申请实施例还提供了另一种数据处理装置,该数据处理装置用于实现上述各种方法。该数据处理装置可以为上述方法实施例中的生成方,或者包含上述生成方的装置,或者为可用于生成方的部件;或者,该数据处理装置可以为上述方法实施例中的更新方,或者包含上述更新方的装置,或者为可用于更新方的部件;或者,该数据处理装置可以为上述方法实施例中的验证方,或者包含上述验证方的装置,或者为可用于验证方的部件。可以理解的是,该数据处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法实施例中对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图29示出了另一种数据处理装置的结构示意图。该数据处理装置290包括处理模块2901。可选地,还可以包括收发模块2902,收发模块2902也可以称为收发单元用以实现收发功能,例如可以是收发电路,收发机,收发器或者通信接口。
其中,以数据处理装置290为上述方法实施例中的生成方为例:
处理模块2901,可以用于获取N个数据块,N为正整数。处理模块2901,可以用于确定第一数据集,第一数据集包括N个数据块和第一映射序列。其中,第n个数据块的验证信息对应第一映射序列中的至少一个特定元素,第一映射序列用于验证第n个数据块是否被修改;第n个数据块的验证信息是根据第n个数据块和第n个数据块对应的计数序列确定的,不同数据块对应不同的计数序列;n为1至N的正整数。
可选地,处理模块2901,还可以用于:根据第一密钥确定第n个数据块对应的计数序列的摘要。以及,对第n个数据块对应的计数序列的摘要和第n个数据块进行运算得到第n个数据块的验证信息。
可选地,处理模块2901,还可以用于:将第n个数据块的验证信息通过哈希函数集映射到布隆过滤器中,得到中间映射序列,哈希函数集包括至少一个哈希函数;
根据中间映射序列,确定第一映射序列。
可选地,在根据中间映射序列确定第一映射序列时,处理模块2901具体可以用于:根据第二密钥加密中间映射序列,得到第一映射序列。或者,将中间映射序列确定为第一映射序列。
可选地,处理模块2901,还可以用于确定第一映射序列的摘要,第一数据集还包括第一映射序列的摘要。
可选地,收发模块2902,还可以用于发送第一数据集。
其中,以数据处理装置290为上述方法实施例中的更新方为例:
处理模块2901,可以用于获取第二数据集。处理模块2901,可以用于更新第二数据集,得到更新后的第二数据集,第二数据集与更新后的第二数据集存在至少一个不同的数据块。处理模块2901,还可以用于确定第三数据集,第三数据集包括更新后的第二数据集和操作记录块,操作记录块用于指示更新方对第二数据集的更新。
可选地,在获取第二数据集时,处理模块2901具体可以用于:通过收发模块2902接收第二数据集。
可选地,在更新第二数据集时,处理模块2901具体可以用于:在第二数据集中新增第一数据块。操作记录块包括第一位置信息,第一位置信息用于指示第一数据块在第三数据集中的位置,以及更新相对于第二数据集的位置。
可选地,在更新第二数据集时,处理模块2901具体可以用于:修改第二数据集中的第二数据块。其中,修改第二数据块包括以下至少一项:替换第二数据块的部分或全部内容,在第二数据块中新增内容,删除第二数据块的部分内容。操作记录块包括第二位置信息,第二位置信息用于指示第二数据块在第三数据集中的位置,以及更新相对于第二数据集的位置。
可选地,在更新第二数据集时,处理模块2901具体可以用于:删除第二数据集中的第三数据块。操作记录块包括第三位置信息,第三位置信息用于指示更新相对于第二数据集的位置。
可选地,在确定所第三数据集之后,收发模块2902,还可以用于发送第三数据集。
其中,以数据处理装置290为上述方法实施例中的验证方为例:
处理模块2901,可以用于获取第四数据集,第四数据集包括M个数据块和第一映射序列,M为正整数。处理模块2901,可以用于确定M个数据块中的K个数据块,K为小于或等于M的正整数。处理模块2901,还可以用于根据第k个数据块和第k个数据块对应的计数序列,确定第k个数据块的验证信息,k为1至K的正整数。处理模块2901,还可以用于确定第四映射序列,第k个数据块的验证信息对应第四映射序列中的至少一个特定元素。处理模块2901,还可以根据第一映射序列和第四映射序列,确定第k个数据块是否被修改。
可选地,在根据J个操作记录块确定M个数据块中的K个数据块时,处理模块2901具体可以用于:根据第j个操作记录块,在M个数据块中确定第j个更新方的更新数据块对应的目标数据块。其中,更新数据块为第j个操作记录块所指示的第二原数据集中的数据块,第二原数据集为第j个更新方对第一原数据集进行更新后得到的,j的初始值为J。若j-1不等于0,根据第j个操作记录块,确定M个数据块中除更新数据块对应的目标数据块外的数据块在第一原数据集中的位置,j自减1。若j-1等于0,将M个数据块中除更新数据块对应的目标数据块外的数据块确定为K个数据块。
可选地,第j个操作记录块包括更新数据块对应的计数序列以及第五映射序列,更新数据块的验证信息对应第五映射序列中的至少一个特定元素。处理模块2901,还可以用于:根据更新数据块对应的目标数据块和更新数据块对应的计数序列,确定更新数据块对应的目标数据块的验证信息。以及,确定第六映射序列,更新数据块的验证信息对应第六映射序列中的至少一个特定元素。以及,根据第五映射序列和第六映射序列验证在第j个更新方进行更新之后目标数据块是否被修改。
可选地,第四数据集还可以包括起始计数序列。在确定M个数据块中的K个数据块之后,处理模块2901,还可以用于:根据起始计数序列确定K个数据块中每个数据块对应的计数序列。
可选地,在获取第四数据集时,处理模块2901具体可以用于:通过收发模块2902接收第四数据集。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本实施例中,该数据处理装置290以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该数据处理装置290可以采用图7所示的数据处理装置70的形式。
比如,图7所示的数据处理装置70中的处理器701可以通过调用存储器703中存储的计算机执行指令,使得数据处理装置70执行上述方法实施例中的通信方法。
具体的,图29中的处理模块2901和收发模块2902的功能/实现过程可以通过图7所示的数据处理装置70中的处理器701调用存储器703中存储的计算机执行指令来实现。或者,图29中的处理模块2901的功能/实现过程可以通过图7所示的数据处理装置70中的处理器701调用存储器703中存储的计算机执行指令来实现,图29中的收发模块2902的功能/实现过程可以通过图7中所示的数据处理装置70中的通信接口704来实现。
由于本实施例提供的数据处理装置290可执行上述通信方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
如本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
本申请围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,信息(information),信号(signal),消息(message),信道(channel)有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。“的(of)”,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。“系统”和“网络”有时可以混用,在不强调其区别时,其所要表达的含义是一致的,比如,“通信网络”也即是指“通信系统”。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种数据处理方法,其特征在于,应用于生成方,所述方法包括:
获取N个数据块,N为正整数;
确定第一数据集,所述第一数据集包括所述N个数据块和第一映射序列;
其中,第n个数据块的验证信息对应所述第一映射序列中的至少一个特定元素,所述第一映射序列用于验证所述第n个数据块是否被修改;所述第n个数据块的验证信息是根据所述第n个数据块和所述第n个数据块对应的计数序列确定的,不同所述数据块对应不同的所述计数序列;n为1至N的正整数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第一密钥确定所述第n个数据块对应的计数序列的摘要;
对所述第n个数据块对应的计数序列的摘要和所述第n个数据块进行运算得到所述第n个数据块的验证信息。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将所述第n个数据块的验证信息通过哈希函数集映射到布隆过滤器中,得到中间映射序列,所述哈希函数集包括至少一个哈希函数;
根据所述中间映射序列,确定所述第一映射序列。
4.根据权利要求3所述的方法,其特征在于,所述至少一个哈希函数为带密钥的哈希函数。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述中间映射序列,确定所述第一映射序列,包括:
根据第二密钥加密所述中间映射序列,得到第一映射序列;
或者,将所述中间映射序列确定为所述第一映射序列。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
确定所述第一映射序列的摘要;
所述第一数据集还包括所述第一映射序列的摘要。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一数据集还包括所述N个数据块中第一个数据块对应的计数序列;
或者,所述第一数据集还包括所述N个数据块中每个数据块对应的计数序列。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
发送所述第一数据集。
9.一种数据处理方法,其特征在于,应用于更新方,所述方法包括:
获取第二数据集;
更新所述第二数据集,得到更新后的第二数据集,所述第二数据集与所述更新后的第二数据集存在至少一个不同的数据块;
确定第三数据集,所述第三数据集包括所述更新后的第二数据集和操作记录块,所述操作记录块用于指示更新方对所述第二数据集的所述更新。
10.根据权利要求9所述的方法,其特征在于,所述更新所述第二数据集包括:在所述第二数据集中新增第一数据块;
所述操作记录块包括第一位置信息,所述第一位置信息用于指示所述第一数据块在所述第三数据集中的位置,以及所述更新相对于所述第二数据集的位置。
11.根据权利要求10所述的方法,其特征在于,所述操作记录块还包括所述第一数据块对应的计数序列以及第二映射序列,所述第一数据块对应的计数序列用于确定所述第一数据块的验证信息,所述第一数据块的验证信息对应所述第二映射序列中的至少一个特定元素。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述更新所述第二数据集包括:修改所述第二数据集中的第二数据块;其中,修改所述第二数据块包括以下至少一项:替换所述第二数据块的部分或全部内容、在所述第二数据块中新增内容、删除所述第二数据块的部分内容;
所述操作记录块包括第二位置信息,所述第二位置信息用于指示所述第二数据块在所述第三数据集中的位置,以及所述更新相对于所述第二数据集的位置。
13.根据权利要求12所述的方法,其特征在于,所述操作记录块还包括所述第二数据块对应的计数序列以及第三映射序列,所述第二数据块对应的计数序列用于确定所述第二数据块的验证信息,所述第二数据块的验证信息对应所述第三映射序列中的至少一个特定元素。
14.根据权利要求9-13任一项所述的方法,其特征在于,所述更新所述第二数据集包括:删除所述第二数据集中的第三数据块;
所述操作记录块包括第三位置信息,所述第三位置信息用于指示所述更新相对于所述第二数据集的位置。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述操作记录块还包括以下至少一项:所述更新方的标识、所述更新发生或结束的时间、所述更新的类型、所述第二数据集的来源、或所述操作记录块的签名;其中,所述第二数据集的来源是生成所述第二数据集的设备。
16.根据权利要求9-15任一项所述的方法,其特征在于,在确定所第三数据集之后,所述方法还包括:
发送所述第三数据集。
17.一种数据处理方法,其特征在于,应用于验证方,所述方法包括:
获取第四数据集,所述第四数据集包括M个数据块和第一映射序列,M为正整数;
确定所述M个数据块中的K个数据块,K为小于或等于M的正整数;
根据第k个数据块和所述第k个数据块对应的计数序列,确定所述第k个数据块的验证信息,k为1至K的正整数;
确定第四映射序列,所述第k个数据块的验证信息对应所述第四映射序列中的至少一个特定元素;
根据所述第一映射序列和所述第四映射序列,确定所述第k个数据块是否被修改。
18.根据权利要求17所述的方法,其特征在于,所述第四数据集还包括J个操作记录块,所述J个操作记录块与J个更新方一一对应,所述操作记录块用于指示生成所述操作记录块的更新方对原数据集进行的更新,所述原数据集为所述更新方进行更新之前的数据集;
所述确定所述M个数据块中的K个数据块,包括:
根据所述J个操作记录块,确定所述M个数据块中的K个数据块。
19.根据权利要求18所述的方法,其特征在于,所述根据所述J个操作记录块,确定所述M个数据块中的K个数据块,包括:
根据第j个操作记录块,在所述M个数据块中确定第j个更新方的更新数据块对应的目标数据块;其中,所述更新数据块为所述第j个操作记录块所指示的第二原数据集中的数据块,所述第二原数据集为所述第j个更新方对第一原数据集进行更新后得到的;j的初始值为J;
若j-1不等于0,根据所述第j个操作记录块,确定所述M个数据块中除所述更新数据块对应的目标数据块外的数据块在所述第一原数据集中的位置,所述j自减1;
若j-1等于0,将所述M个数据块中除所述更新数据块对应的目标数据块外的数据块确定为所述K个数据块。
20.根据权利要求19所述的方法,其特征在于,所述更新数据块为所述第j个更新方新增的或者修改后的数据块;
所述第j个操作记录块包括第四位置信息,所述第四位置信息用于指示所述更新数据块在所述第二原数据集中的位置,以及所述更新方进行的更新相对于所述第一原数据集的位置。
21.根据权利要求19或20所述的方法,其特征在于,所述第j个操作记录块包括所述更新数据块对应的计数序列以及第五映射序列,所述更新数据块的验证信息对应所述第五映射序列中的至少一个特定元素;
所述方法还包括:
根据所述更新数据块对应的目标数据块和所述更新数据块对应的计数序列,确定所述更新数据块对应的目标数据块的验证信息;
确定第六映射序列,所述更新数据块的验证信息对应所述第六映射序列中的至少一个特定元素;
根据所述第五映射序列和所述第六映射序列验证在所述第j个更新方进行更新之后所述目标数据块是否被修改。
22.根据权利要求17-21任一项所述的方法,其特征在于,所述第四数据集还包括起始计数序列;
在确定所述M个数据块中的K个数据块之后,所述方法还包括:
根据所述起始计数序列确定所述K个数据块中每个数据块对应的计数序列。
23.一种数据处理装置,其特征在于,所述数据处理装置包括:处理器和存储器;
所述存储器用于存储计算机执行指令,当所述处理器执行所述计算机执行指令时,以使所述数据处理装置执行如权利要求1-8或9-16或17-22中任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机执行时使得所述计算机执行权利要求1-8或9-16或17-22中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111565208.4A CN116318698A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111565208.4A CN116318698A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116318698A true CN116318698A (zh) | 2023-06-23 |
Family
ID=86794733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111565208.4A Pending CN116318698A (zh) | 2021-12-20 | 2021-12-20 | 数据处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116318698A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473538A (zh) * | 2023-12-27 | 2024-01-30 | 成都智慧锦城大数据有限公司 | 提升业务数据存储安全性的方法及系统 |
-
2021
- 2021-12-20 CN CN202111565208.4A patent/CN116318698A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473538A (zh) * | 2023-12-27 | 2024-01-30 | 成都智慧锦城大数据有限公司 | 提升业务数据存储安全性的方法及系统 |
CN117473538B (zh) * | 2023-12-27 | 2024-03-12 | 成都智慧锦城大数据有限公司 | 提升业务数据存储安全性的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102467596B1 (ko) | 블록 체인 구현 방법 및 시스템 | |
US20170180123A1 (en) | Discovery of secure network enclaves | |
US9742560B2 (en) | Key management in secure network enclaves | |
US7770032B2 (en) | Secure logging for irrefutable administration | |
US20170244687A1 (en) | Techniques for confidential delivery of random data over a network | |
US20170195121A1 (en) | Token binding using trust module protected keys | |
CN112131316B (zh) | 应用于区块链系统的数据处理方法及装置 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
US10887104B1 (en) | Methods and systems for cryptographically secured decentralized testing | |
JPH11514188A (ja) | 暗号キー回復システム | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
Zhang et al. | BTNC: A blockchain based trusted network connection protocol in IoT | |
US9515989B1 (en) | Methods and apparatus for silent alarm channels using one-time passcode authentication tokens | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
Junghanns et al. | Engineering of secure multi-cloud storage | |
CN114826702A (zh) | 数据库访问密码加密方法、装置和计算机设备 | |
CN114844688A (zh) | 数据传输方法、装置、设备及计算机存储介质 | |
CN116318698A (zh) | 数据处理方法、装置及系统 | |
CN107026729B (zh) | 用于传输软件的方法和装置 | |
Zhang et al. | Data security in cloud storage | |
CN116155483A (zh) | 区块链签名机安全设计方法及签名机 | |
CN116781265A (zh) | 一种数据加密的方法和装置 | |
US10608822B2 (en) | Efficient calculation of message authentication codes for related data |
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 |