CN116998131A - 支持多个数据记录上的交错加密和认证操作的标记聚合和校正 - Google Patents

支持多个数据记录上的交错加密和认证操作的标记聚合和校正 Download PDF

Info

Publication number
CN116998131A
CN116998131A CN202280022768.1A CN202280022768A CN116998131A CN 116998131 A CN116998131 A CN 116998131A CN 202280022768 A CN202280022768 A CN 202280022768A CN 116998131 A CN116998131 A CN 116998131A
Authority
CN
China
Prior art keywords
segment
authentication
data record
mark
data
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
Application number
CN202280022768.1A
Other languages
English (en)
Inventor
Y·扬基列维奇
O·伊什-阿姆
M·米尔科夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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
Priority claimed from US17/238,432 external-priority patent/US20220311598A1/en
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN116998131A publication Critical patent/CN116998131A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

一种方法提供接收基于数据记录的不同分段而生成的多个不同分段标记,其中每个分段在分离的加密过程期间被加密。一旦接收,通过分段结束操作来调整多个不同分段标记中的每一个,该分段结束操作引起分段特定错误,从而招致分段标记对于作为整体的数据记录的认证无效。该方法提供将多个不同分段标记累积在一起以形成组合多分段标记,计算有效反转多个不同分段标记中的每一个的分段特定错误对组合多分段标记的累积效应的校正;并且通过基于所计算的校正来调整组合多分段标记以生成完整认证标记。完整认证标记可用于对整个数据记录的各个方面进行认证。

Description

支持多个数据记录上的交错加密和认证操作的标记聚合和 校正
背景技术
基于云的资源提供商可以在不同位置的设备之间传输租户拥有的数据,包括云存储中心、边缘设备等。当前的最佳实践提供在每个传输路径期间对租户拥有的数据进行加密以帮助防止第三方的拦截、破坏、操纵或其他恶意行为。一些现有的加密传输中数据(data-in-transit)的解决方案依赖于强大快速的“第三方认证-加密引擎”,其中可以包括软件、硬件或两者的组合。认证-加密引擎的一个示例是具有Galois/Counter模式的AES(AES-GCM)引擎,它提供认证加密(机密性和认证)以及计算和检查附加认证数据(AAD)完整性的能力。虽然高度可靠且高效,但是这些第三方认证-加密引擎通常充当“黑盒”,云资源提供商无法更改或操纵它们。
在实现这些加密-认证解决方案的不同设备之间传输的租户拥有的数据本质上可能是多种多样的——例如,不同大小的文件、不同的数据类型、不同级别的数据管理相对优先级等。在一些情况下,拥有此类数据的租户可能更喜欢基于云的资源提供商根据特定延迟要求来管理数据(例如,一些租户可能比其他租户强制执行更严格的延迟要求)。然而,执行上述加密-认证活动的个体设备可能访问单个认证-加密引擎。当业务带宽较高时,数据记录有时可能会“排队”等待加密。当前的一些解决方案没有提供任何有效的机制来允许“暂停”在一个流上的加密和认证操作,以使得可以处理另一流,诸如更高优先级的流(或受到更严格的延迟要求的流)。
上述无法由第三方认证-加密引擎暂停、暂时中止以及稍后恢复对一个流的加密和认证活动(例如,以便在暂停和恢复之间处理另一流)的情况出现,部分原因是某些类型的第三方加密引擎在加密数据时也会生成“认证标记”的性质。具体地,本文公开的技术涉及被称为AES-GCM的加密-认证方案。在AES-GCM认证加密方案中,认证标记是一种重要且广泛使用的机制,它允许被传输数据记录的接收者验证接收到的数据是否来自可信来源,并且数据未被篡改。
例如,如果第三方认证-加密引擎的加密活动被“暂停”并随后针对第一数据记录而被恢复以允许在此期间加密更高优先级的第二记录,则第三方认证-加密引擎可以输出与第一数据记录相关联的两个认证标记——一个与“暂停”之前加密的数据记录的分段相关联,而另一个与“暂停”之后加密的数据记录的分段相关联。由于这些AES-GCM认证标记的性质和格式,在上述场景中生成的两个标记都不用于支持对随后传输的第一数据记录作为整体的认证。
上面提及的缺点出现,部分是由于基于云的资源提供商无法改变这些第三方认证-加密引擎的“黑盒”逻辑。虽然云资源提供商可以选择利用替代(例如,自行开发的)加密解决方案,但是自行开发的加密代码通常比这些长期存在的传统代码解决方案效率更低且更容易出错。此外,加密模块有时需要满足证书要求(例如FIPS-140),这些要求的实现成本高昂,并且标准解决方案通常会遵守这些要求。
发明内容
根据一种实现,支持对不同数据记录的交错操作的认证-加密方案是经由第三方认证-加密引擎(例如,AES-GCM引擎)以及标记累积和校正引擎来实现的。第三方认证-加密引擎基于数据记录的不同分段而生成多个不同分段标记,其中每个分段在分离的加密过程中被加密(例如,其中(多个)其他不同记录的一个或多个交错分段被加密)。当由第三方认证-加密输出时,多个不同分段标记中的每个标记通过分段结束操作进行调整,该操作引起使分段标记针对作为整体的数据记录的认证变得无效的分段特定错误。标记累积和校正引擎将多个不同分段标记累积在一起以形成组合多分段标记,计算校正,该校正有效将针对多个不同分段标记中的每个分段标记的分段特定错误在组合多分段标记上的累积效应进行反转;并且通过基于所计算的校正调整组合多分段标记,来生成完整认证标记。完整认证标记可用于对作为整体的数据记录的各个方面进行认证。
提供本发明内容是为了以简化的形式介绍一系列概念,这些概念将在下面的具体实施方式中进一步被描述。本发明内容并不旨在识别所要求保护的主题的关键特征或基本特征,也不旨在被用来限制所要求保护的主题的范围。本文还描述和叙述了其他实现。
附图说明
图1图示了两个端点之间的示例传送中数据认证-加密系统的各方面。
图2图示了经由支持对不同数据记录的交错操作的认证-加密方案的另一传送中数据认证-加密系统。
图3图示了两个端点之间的传送中数据认证-加密系统的另外的方面。
图4图示了第三方认证-加密引擎的示例性逻辑。
图5图示了作为支持对不同数据记录的交错操作的认证-加密方案一部分的另一传送中数据认证-加密系统的各方面。
图6图示了作为多个数据记录上的交错认证-加密方案的一部分,用于为具有在不同时间处处理的多个离散分段的加密数据记录生成认证标记的示例操作。
图7图示了用于使用支持对不同数据记录的交错加密操作的加密方案对在两个端点之间的传送中数据进行加密的另一系统的各方面
图8图示了另一示例性系统内的标记终结器的进一步细节,该标记终结器执行用于对传送的数据进行加密的操作,从而允许对不同数据记录进行交错加密操作。
图9图示了适合于实现所公开技术的各方面的处理设备的示例示意图。
具体实施方式
本文公开的技术提供了允许使用(无需改变)某些第三方认证-加密引擎(诸如AES-CGM引擎)的“黑盒”逻辑来支持更灵活的加密-认证方案,其可以允许动态地重新确定各种加密活动的优先级,诸如在按需基础上支持在多个不同流上的交错的认证-加密操作。
例如,AES-GCM引擎可以被用来以交错的方式处理多个数据记录的不同分段,使得在任何单个记录被完全加密并且产生针对它的完整认证标记之前可以部分地处理两个或更多个不同的数据记录。例如,第一数据记录上的认证-加密活动可以选择性地“暂停”,此时AES-GCM引擎可以输出第一数据记录的第一加密分段以及基于该分段的第一认证标记。然后,在针对第一数据记录“恢复”认证-加密活动之前,可以指令AES-GCM引擎处理不同的第二数据记录(例如,由不同租户拥有的记录)。当第一数据记录的加密操作恢复并最终完成后,AES-GCM引擎输出第一数据记录的一个或多个附加加密数据分段以及基于这些分段而生成的一个或多个附加认证标记。
在对不同数据记录的“交错”认证-加密活动的上述示例中,第三方认证-加密引擎输出基于第一数据记录的第一分段而生成的第一认证标记,并且当第二分段随后被处理时,随后输出基于第一数据记录的第二分段而生成的第二认证标记。基于数据记录的分段而不是完整数据记录而生成的认证标记在本文中被称为“分段标记”。由于本文讨论的原因,这些分段标记不可用于认证完整的数据记录;因此,对于传输的(完整)数据记录的验证,分段标记实际上是“无效的”。
本文公开的解决方案提供了标记操纵机制,其有助于从第三方认证-加密引擎基于同一数据记录的不同的连续且不重叠的分段而生成的分段标记中恢复可用的认证数据(“部分标记数据”)。然后,针对不同分段标记的这个恢复后的部分标记数据可以被聚合并进行各种数学运算,以有效地构建可用于验证整个数据记录的各方面的完整认证标记。
本文公开的认证标记生成解决方案允许继续依赖于先前不被支持的加密方案中的高度可靠且高效的“传统代码”类型的认证-加密引擎解决方案,其有助于在完成针对任何单个数据记录的加密和认证活动之前对不同数据记录进行交错认证操作。这个益处的实现无需对认证-加密引擎(例如AES-GCM引擎)执行的逻辑进行大量重复,从而针对这些先前不被支持的用例适配现有的高效可靠的加密硬件和软件解决方案。
如本文中所使用的,“加密-认证操作”指的是作为加密过程的一部分而被执行的操作或者被用来生成针对数据记录的认证数据的操作。
图1图示了用于对在两个端点之间的传输中数据进行加密的示例系统100的各方面。通过示例而非限制,系统100被示出为包括在第一云端点106处的第一设备104,其正在准备数据记录112以用于传输到位于第二云端点110处的第二设备108。第一设备104和第二设备108可以被理解为多种不同类型的联网计算设备中的任何一种,包括例如云计算服务器、边缘设备、网关设备等。通过示例而非限制,第一设备104和第二设备108中的一个或两个可以提供基于云的处理资源作为云计算平台的一部分,其管理订阅平台提供的数据管理服务的各个租户所拥有的数据。每次数据在云计算平台内的不同设备之间传输时,数据都被加密,并在传输之前创建认证标记。数据在接收后被解密并使用认证标记进行认证。
作为示例而非限制,第一设备104包括第三方认证-加密引擎102。第三方认证-加密引擎102在以下意义上是“第三方”:它由既不是设备104的所有者也不是包括第一设备104和第二设备108的云计算平台的管理者的一方来制造和分发。相反,第三方认证-加密引擎102可以被理解为包括专有软件、硬件或其混合。在一种实现中,第三方认证-加密引擎102是专有加密产品(例如,传统代码),其作为不可改变的(例如,“黑盒”类型)包而由想要提供对传输的数据进行加密的高效且安全手段的各方购买。第三方认证-加密引擎102例如可以作为软件包、硬件芯片等由云计算平台的运营者/开发者购买。
通过示例而非限制,视图114图示了由第三方认证-加密引擎102执行的示例性加密操作。特别地,第三方认证-加密引擎102被提供有数据记录112。
第三方认证-加密引擎102包括主要密码认证块116,其执行用于对数据记录112的分段进行加密以及用于生成一些数据的操作,该数据在本文中被称为“部分标记数据”,其随后被用来生成针对加密数据的认证标记120。
一般而言,主要密码认证块116的操作可以被理解为“基于分段的”,其中分段表示数据记录112的连续子集(例如,整个记录或记录的一部分)。如本文中所使用的,术语“基于分段的操作”是指作用于数据记录的量化单元的操作,这些量化单元共同形成记录的被连续处理的分段,以便对被连续处理的分段进行加密或基于组件创建部分标记数据。主要密码认证块116基于数据记录112的输入分段来生成密文126。密文126可以例如包括数据记录112的一个或多个加密数据分段。这些数据分段的加密可以以各种方式(诸如基于秘密密钥或其他关键安全参数)执行。在一些实现中,主要密码认证块116还使用其生成的密文126来创建本文中所称的“部分标记数据”,部分标记数据在后续过程(下面讨论)中用于生成针对密文126的认证标记120。
在由主要密码认证块116执行基于分段的操作之后,第三方认证-加密引擎102提供主要密码认证块116的输出(例如,密文126和部分标记数据(未示出))给分段结束认证块118,其执行各种分段结束认证操作以生成针对密文126的认证标记120。如本文中所使用的,术语“分段结束认证操作”被用来指代对加密数据分段(例如,密文126)执行的操作,以生成针对加密数据分段的认证标记。
在常规用例中,主要密码认证块116连续加密整个数据记录112,并且分段结束认证块118接收表示完整数据记录112的密文。在这种情况下,由分段结束认证块118所生成的认证标记120基于完整的数据记录112,并且因此对于作为整体的数据记录112来说是有效的,并且可用于对密文126进行认证以及隐式地对数据记录112进行认证。例如,认证标记120可以被用来验证数据记录112是由可信源(例如,了解被用来创建密文的秘密密钥的一方)传输的和/或验证数据记录没有被篡改。在一种实现中,认证标记120是基于密文126而生成的,并且被编码以包括认证信息,诸如秘密密钥、加密数据记录122的长度等。
然而,在本文关于图2至图6讨论的具体实现中,数据记录112的各个分段可以由主要密码认证块116非连续地处理,而(多个)其他记录的分段在其间被处理。在这些情况下,分段结束认证块118有时可以接收基于数据记录112的分段(例如,小于完整记录的单位)而不是基于整个数据记录112生成的密文。在后一种情况下,由分段结束认证块118生成的认证标记120对于作为整体的数据记录112来说是无效的。
密文126和认证标记120共同形成从第一设备104传输到第二设备108的加密且认证的数据记录122。在接收到加密的数据记录122后,第二设备108使用认证标记120尝试认证数据记录112。例如,有效的认证标记可以被用于确保密文126不包括错误(位翻转)或确认传输的源(例如,第一设备104)具有也被用于生成密文126的秘密密钥。在相同或另一实现中,认证标记120包括大小信息(例如,长度值(N)),其可由第二设备108用来确认接收到的加密的数据记录122的大小与预期大小匹配。在使用认证标记120来验证密文126的完整性时,认证标记120必须从整个数据记录112生成——否则,认证标记120不可用于认证作为整体的数据记录112。基于部分记录而生成的认证标记保证(具有高可能性)与在完整数据记录上计算的认证标记不同,并且因此作为整个记录的认证标记是无效的。图2进一步探讨了系统的附加组件(部分标记恢复和累积引擎)所带来的挑战,其解决并弥补了这一缺点。
尽管图1中未示出,但是第二设备108可以利用对主要密码认证块执行补充操作的解密块,以便解密并验证接收到的密文的完整性。在该反转过程中,根据接收到的密文126来计算认证标记的版本。然后将所计算的认证标记版本与和传输的数据流中的密文126一起接收(附加到其上)的认证标记120进行比较。由于本文公开的技术涉及用于认证标记生成的方法,因此暗示认证标记认证(例如,通过接收设备)的各方面与本领域已知的那些方法一致,特别是在利用AES-GCM引擎的系统中。
图2图示了用于经由支持对不同数据记录的交错加密-认证操作的加密-认证方案对在两个端点之间的传输中数据进行加密和认证的另一系统200。通过示例而非限制,系统200被示出为包括在第一云端点206处的第一设备204,其正在准备数据记录212以用于传输到在第二云端点210处的第二设备208。如展开视图214中所示,第一设备204利用第三方认证-加密引擎202在传输之前对数据记录212进行加密。
第一设备204、第二设备208、数据记录212和第三方认证-加密引擎202全部都可以具有与关于图1的类似名称的特征所描述的特性和功能性相同或相似的特性和功能性。除了第三方认证-加密引擎202之外,第一设备204还包括部分标记恢复和累积引擎228,其执行有效地适配第三方认证-加密引擎202的输出以支持更灵活加密-认证方案的操作,特别是在完成针对数据记录中的任何单独一个数据记录的加密活动之前支持对不同数据记录进行交错加密-认证操作的方案。展开视图214图示了一个这样的交错流加密方案的示例性逻辑。
在所图示的示例中,第三方认证-加密引擎202最初被提供有数据记录212的第一分段“分段A”。出于该示例的目的,可以假设处理活动在处理分段A之后并且在开始处理分段B之前暂停数据记录212上的加密-认证活动。例如,第一设备204可以暂停数据记录212上的加密-认证活动,以便请求处理更紧急(更高优先级)的数据记录(未示出)。在对另一数据记录执行处理操作之后,恢复对数据记录212的分段B的处理操作。
在一种实现中,在数据记录212的分段A的初始处理期间,主要密码认证块216使用秘密密钥(未示出)来加密分段A内的各个数据单元,从而生成针对每个单独加密的数据单元的对应密文。这些基于分段A而生成的密文在图2中被表示为“密文块A 234”。主要密码认证块216还可以基于密文块A 234来生成部分认证标记数据。
在主要密码认证块216执行上述操作之后,分段结束认证块218执行分段结束操作,其利用密文块A 234和部分认证标记数据作为输入来生成认证标记(“标记A”),其在本文中被称为“分段标记220”,因为该标记不是基于整个数据记录而是基于整个数据记录的分段来生成的。特别地,分段标记220基于分段A——同样,它指的是针对加密而言被连续处理而不中断的分段。
在一种实现中,分段标记220(标记A)是在两个步骤中生成的。首先,主要密码认证块216使用密文块A 234中的单个密文来生成本文中所称的“部分标记”。在生成部分标记之后,分段结束认证块218执行(多个)各种密码功能以将部分标记与其他信息(诸如密文块A的长度或关键安全参数)组合。由于分段标记220是使用密文块A 234而不是使用对应于分段B的密文(密文块B 236)来生成的,所以分段标记(标记A)不可用于验证与作为整体的数据记录有关的信息。例如,标记A不能单独被用于验证表示数据记录212的所有加密数据的密文226(密文块A和B组合)的完整性。
部分标记恢复和累积引擎228接收来自第三方认证-加密引擎202的输出,并使用该输出来构造认证标记,该认证标记可由接收设备可使用以验证作为整体的加密记录222的完整性。在第一时间t1,部分标记恢复和累积引擎228接收为数据记录212的分段A生成的分段标记220。在稍后的时间,诸如在另一数据记录的全部或一部分已被第三方认证-加密引擎202加密之后,以与上面关于分段A描述的相同或相似的方式处理数据记录212的下一个分段,即分段B,。该过程生成附加的新密文块(密文块B 236)以及另一个分段标记230(标记B)。由于分段标记230是使用密文块B 236而不是使用密文块A234的数据来生成的,所以分段标记230不能用于验证与作为整体的数据记录212有关的信息。在时间t2,分段标记230被提供给并且被存储在部分标记恢复和累积引擎228内。
如上面所提及,部分标记恢复和累积引擎228执行操作以有效地从分段标记220、230中恢复某些信息,然后可以将这些信息进行组合以生成可用于验证完整加密的数据记录222的完整性。密文块226和完整认证标记232共同地形成从第一设备204传输到第二设备208的加密的数据记录222。在接收到加密的数据记录222时,第二设备208使用完整认证标记232来对接收到的数据进行认证。
图3图示了用于对在两个端点之间的传输中数据进行加密和认证的示例系统300的另外方面。系统300包括多个与图2中所示的组件相同的组件,包括第三方认证-加密引擎302和部分标记恢复和累积引擎328。图3与图2不同之处在于,提供了关于部分标记恢复和累积引擎328的子模块和组件的进一步细节。在所图示的示例中,第三方认证-加密引擎302包括主要密码认证块316和分段结束加密块318,它们各自执行与关于图1和图2中的类似名称的组件所描述的操作相同或相似的操作。
在第一时间,第三方认证-加密引擎302处理并加密数据记录312的第一分段(分段A),并且输出密文块(未示出)以及第一分段标记330(标记A)。在稍后的时间,诸如在处理不同数据记录的(多个)分段之后,第三方认证-加密引擎302处理数据记录312的另一分段(分段B)并输出另一密文块(未示出)以及第二分段标记332(标记B)。由于分段标记330、332都不是基于整个数据记录312生成的,因此当被用于认证作为整体的数据记录312时,这些分段标记是无效的。下面关于图4进一步讨论分段标记330、332(标记A、标记B)中包括的内容的具体示例性细节。
数据记录312的分段标记330、332(标记A、标记B)被提供给包括在部分标记恢复和累积引擎328内的部分标记恢复引擎336。部分标记恢复引擎336对分段标记330、332中的每一个执行操作,该操作有效地反转(撤消)分段结束认证块318的操作以恢复关于每个分段标记的可用部分标记数据。一旦针对数据分段A和B中的每一个恢复了可用部分标记数据,则将相关联的数据保存在标记累积块340中。标记累积块340充当存储可用部分标记数据并且在接收到每轮附加的此类数据后累积(组合)此类数据的寄存器或缓冲器。例如,标记A首先由部分标记恢复引擎336处理,导致存储在缓冲器中的部分标记数据“标记A_mod”的恢复。随后,标记B由部分标记恢复引擎336处理,导致部分标记数据“标记B_mod”的恢复,其被放置在缓冲器中并与针对同一数据记录312的已经恢复的部分标记数据进行组合。例如,可用的部分标记数据“标记A_mod”和“标记B_mod”可以通过密码函数来进行组合以产生分段A||B的部分标记(其中||是级联函数)。下面关于图5讨论这样的过程的示例。组合可用的部分标记数据“标记A_mod”和“标记B_Mod”产生组合部分标记342,其被输出并提供给标记终结器344。标记终结器344包括分段结束认证块346,其可以被理解为包括与第三方认证-加密引擎302内的分段结束认证块318执行的逻辑相同或相似的逻辑。
换句话说,组合部分标记342与在替代场景中将在主要密码认证块316和分段结束加密块318之间的检查点“C”处生成和接收的信息相同,其中第三方认证-加密引擎302连续地(不间断地)而不是在两个分离的离散分段(A和B)中加密整个数据记录312,从而生成与每个分段相关联的输出和/或处理两个分段之间的另一个数据记录。
标记终结器344输出完整认证标记348,该完整认证标记348继而又与数据记录312的最终密文块350一起被传输到接收设备(未示出)。完整认证标记348可用于验证最终密文块350的完整性,诸如通过允许接收方设备以:(1)认证传输来自有权访问秘密密钥的受信方的事实和/或(2)通过验证最终密文块350没有错误(没有位翻转或篡改)来验证数据的完整性。参考以下附图更详细地讨论该过程的另外的示例性方面。
图4图示了第三方认证-加密引擎400的示例性逻辑,其提供与上面关于图1至图3中的任一个所描述的功能性相同或相似的功能性。第三方认证-加密引擎400包括认证逻辑,为了简化说明,将其指示为被包括在两个逻辑块(主要密码认证块416或分段结束认证块418)中的一个内。主要密码认证块416执行基于分段的认证操作以认证和组合包括在数据记录分段内的数据并基于这样的数据来生成部分标记420。
主要密码认证块416包括计数器,其发出与传入数据记录的每个顺序的、类似大小的数据组块相关联的计数(1、2等)(例如,其中“数据组块”指的是共同形成连续处理的数据分段的量化数据单元)。在每次“计数”时,执行附加的加密操作(从主要密码认证块416内的每列的顶部到底部而示出)。应当注意,所图示的操作仅仅是示例性的并且在不同的实现中可以变化。
在每次递增之后,使用秘密密钥(“密钥”)对计数器进行加密。这是在被标记为“AES”的块上执行的,AES代表“高级加密标准”(对称块密码的一种示例类型)。然后使用函数404将加密的计数器与数据记录的对应的单个数据组块(例如,P1、P2、…Pn)进行组合,产生对应的密文(例如,C1、C2、…Cn)。尽管不同的实现可以使用不同的逻辑来实现函数404(以及其他函数406、422、428),但是这在一种实现中是经由按位XOR函数来实现的。
例如,在计数1处,执行加法密码(XOR)以将加密的计数器与传入数据记录的第一数据组块P1进行组合,产生对应的密文C1。在为相关联的数据组块(例如,在计数1处的P1)生成密文之后,可选地执行另一个函数406。函数406将先前生成的认证数据与当前计数的密文分段进行组合。例如,在计数1处,函数406将预先限定的数据分段408(例如,与数据记录相关联的附加认证数据(AAD))与密文C1进行组合。并非认证-加密引擎400的所有实现都利用AAD作为输入。
在每次计数时,函数406的输出经由有限域乘法器412(例如,GF(2^128))乘以“H0”,(如图密钥410所示)其表示已经基于该密钥而生成的信息。在所示的具体示例中,H0表示具有给定密钥的“0||0”的AES块加密的128位值。主要密码认证块416内的每列底部的有限域乘法器412的输出在下一次计数时与下一次生成的密文(例如,C2)进行组合,如图所示。
根据上述以及进一步图示的逻辑操作,主要密码认证块416最终输出所生成的密文C1、C2、C3以及已经基于从当前正在处理的数据分段而生成的所有密文的组合而生成的部分标记420。
分段结束认证块418接下来对部分标记420执行分段结束操作。在该块内,函数422将所生成的密文的长度(例如,包括C1、C2、……Cn的字符串)与由主要密码认证块416生成的部分标记420进行组合。然后将函数422的输出提供给有限域乘法器425,该有限域乘法器425将该输出乘以H0(如图密钥410中所示所限定的)。然后,有限域乘法器425的输出424经由函数428(例如,另一个XOR函数)而与值“H1”进行组合,该值表示从密钥、初始化向量和/或关键安全参数导出的其他加密信息(如图密钥410中所示)。分段结束认证块418输出标记426,它或者是整个数据记录的完整认证标记(如果整个数据记录已经被无中断地加密),或者是针对该数据记录的刚刚处理的分段的分段标记。
如果标记426是分段标记,则该标记不可用于认证或验证作为整体的数据记录的完整性。这是因为标记426是基于数据记录的分段而不是整个数据记录生成的。如关于图5所示和描述的,可以通过“撤消”(反转)由分段结束认证块418执行的三个操作来恢复部分标记420(分段标记数据的可用数据部分)。然后,部分标记420可以与为同一数据记录所生成的其他部分标记进行组合并被操纵以产生整个数据记录的有效的完整认证标记。
尽管在图密钥410中提供了H0和Hl的示例限定,但是这些值是容易计算的“基于密钥的信息”的示例—意思是使用给定的(已知的)加密机制或操作基于秘密密钥可导出的数据。其他实现可以利用其他类型的基于密钥的信息来达到相同或类似的目的。
图5图示了用于使用支持对不同数据记录的交错的加密操作的加密方案对在两个端点之间的传输中数据进行加密的另一系统500的各方面。系统500至少包括第三方认证-加密引擎502以及部分标记恢复和累积引擎540。第三方认证-加密引擎502执行与本文别处描述的操作相同或相似的操作,并且包括主要密码认证块516和分段结束认证块518。在一种实现中,主要密码认证块516和分段结束认证块518包括与图4中分别关于主要密码认证块416和分段结束认证块418所示出和描述的那些相同的组件。
当第三方认证-加密引擎502被用于加密数据记录的分段而不是完整的数据记录时,分段标记504被生成并输出。分段标记504例如与由图4的第三方认证-加密引擎400生成并输出的标记426相同。
分段标记504被提供给部分标记恢复和累积引擎540。在部分标记恢复和累积引擎540内,分段标记504被提供给分段结束认证反转块522,其用于反转(撤销)由第三方认证-加密引擎502内的分段结束认证块518执行的一系列加密操作。在所示的示例中,假设分段结束认证块518执行与关于图4的分段结束认证块418所示出和描述的那些相同的操作。分段结束认证反转块522有效地反转这些操作以恢复该分段的部分标记520(例如,对应于图4中的部分标记420)。
通过示例而非限制,分段结束认证反转块522被示出为包括将分段标记504与Hl进行组合的第一函数525(例如,XOR函数),其如关于图4所限定的(参见图4图函数410)。该XOR函数用于“撤销”图4中所示的组合函数428。函数525的输出被提供给有限域乘法器526,有限域乘法器526将该数据乘以128位H0的倒数,其中H0如图4的图密钥410中那样被限定。这有效地反转了图4中所示的有限域乘法器425的效果。在上述操作之后,有限域乘法器526的输出经由XOR函数528来与“Len(C)”进行组合,“Len(C)”是“密文C的位长度”的短项(例如,作用于加密的数据分段的长度函数)。
这有效地反转了图4中的函数422(也就是XOR函数)的效果。XOR函数528是恢复相关联的数据分段的部分标记520的最后步骤。
部分标记520被提供作为到标记累积器524的输入,标记累积器524的功能是接收、临时存储并最终组合针对同一数据记录的不同分段的多个这样的部分标记。例如,如果在第一时间处理第一数据记录的第一分段并且在第二时间处理数据记录的第二分段(例如,在两者之间处理中间数据记录或部分记录),则分段标记是在不同时间生成的。经由分段结束认证反转块522为每个分段恢复部分标记,并且这些恢复的部分标记被存储并累积在标记累积器524中。
作为示例而非限制,标记累积器524可以实现以下逻辑:如果部分标记520是针对相关联的数据记录接收到的第一分段标记,则部分标记被直接存储在累积块527中。如果部分标记520不是针对相关联的数据记录接收到的第一分段标记,那么该部分标记与已经存储在累积块527中的其他部分标记数据进行组合。在一个示例实现中,这通过以下方式实现:
(1)在有限域乘法器530处,累积块527中的数据乘以128位H0的值的N次方,其中N是存在于相关联的数据分段内的密文(单独加密的数据组块)的数目;
(2)在函数532(例如,XOR函数)处,(1)的输出与传入的部分标记520进行组合;以及
(3)函数532的输出被存储在累积块527中(即,覆盖先前存储的数据)。
当接收并处理“最后数据”(例如,与数据记录相关联的最后部分标记)时,输出存储在累积块527中的最终数据,在图5中被表示为“多分段部分标记534”(例如,现在代表数据记录的所有分段的部分标记)。
标记累积器524的输出被提供给标记终结器543,其包括分段结束认证块536。在一个实现中,分段结束认证块536执行与分段结束认证块518的操作相似或相同的一系列分段结束认证操作。值得注意的是,操作529将多分段部分标记534与长度(D)进行组合,其表示针对数据记录生成的组合密文的完整长度,包括其所有分段。因此,初始在第三方认证-加密引擎502内对单个分段数据执行这些操作以生成分段标记并且由分段结束认证反转块522“撤消”(反转)以恢复某些数据。将恢复的数据与同一数据记录的其他数据分段的类似恢复的数据进行组合以生成多分段部分标记534,并且最终,关于现在生成的多分段部分标记534而在标记终结器543内重复分段结束认证块518的分段结束认证操作。由于分段结束认证块536的操作可以与关于图4的分段结束认证块418所描述的操作相同,不再关于图5重复描述这些操作。
标记终结器543输出完整认证标记542,其可用于关于关键安全参数而验证整个流数据记录的真实性和完整性。
图6图示了作为多个数据记录上的交错加密方案的一部分,用于为具有在不同时间处加密的多个离散分段的加密的数据记录生成认证标记的示例操作600。接收操作602接收由认证-加密引擎基于数据记录的第一分段而生成的第一分段标记。数据记录的第一分段是短于数据记录的全长的连续分段。恢复操作604通过执行共同有效地反转由认证-加密引擎执行的一个或多个分段结束操作的一个或多个操作来从第一分段标记恢复第一部分标记。例如,恢复操作604执行与图5在所示的分段结束认证块518执行的那些操作反转的操作。
存储操作606存储第一部分标记。另一接收操作608接收随后由认证-加密引擎与第一分段标记相同的数据记录相关联地输出的附加分段标记。附加分段标记是由认证-加密引擎基于数据记录的与第一分段不同(例如,不重叠)的另一(例如,第二)分段而生成的标记。例如,该附加数据分段可以在对不同数据记录进行临时加密操作之后由认证-加密引擎加密。
另一恢复操作610通过执行共同有效地反转由认证-加密引擎执行的一个或多个分段结束操作的一个或多个操作来从附加分段标记恢复附加部分标记。例如,恢复操作610再次执行与图5中所示的分段结束认证块518执行的那些操作反转的操作。
另一数据存储操作612存储已由恢复操作610恢复的附加部分标记。如果先前已针对同一数据记录生成了其他部分标记并由数据存储操作612存储,则将部分标记组合(累积)在一起,从而存储结果。
确定操作614确定数据记录的所有分段是否已被认证-加密引擎处理。如果不是,则操作挂起并等待重复接收操作608,随后是恢复操作610和存储操作612。
一旦数据记录的所有分段已经被认证-加密引擎处理,认证标记生成操作616就基于与数据记录相关联的所有恢复的部分标记来生成数据记录的完整认证标记。用于从恢复的部分标记生成认证标记的示例性逻辑例如关于图5来讨论(具体地,关于由标记累积器524和标记终结器543执行的操作)。
传输操作618将完整认证标记连同数据记录的加密版本一起传输到接收方。一旦接收,接收方可以利用完整认证标记来对作为整体的数据记录进行认证。
图7图示了用于使用支持对不同数据记录的交错加密操作的加密方案对在两个端点之间的传送中数据进行加密的另一系统700的各方面。系统700类似于图5中所示的系统,但是使用不同的逻辑从针对同一数据记录的不同分段而生成的多个单独无效的分段标记生成有效的完整认证标记756。
如图5的系统,系统700包括第三方加密-认证引擎702,其还包括主要密码认证块716和分段结束认证块718,其执行与本文别处关于类似名称的组件所描述的操作相同或相似的操作。
来自第三方加密-认证引擎702的输出被提供给标记累积和校正引擎740,标记累积和校正引擎740实现与关于图4和图5公开的部分标记和恢复引擎不同的一些逻辑。特别地,标记累积和校正引擎740在标记累积之前不执行部分标记恢复的操作。相反,标记累积和校正引擎740累积第三方加密-认证引擎702输出的无效标记,并对累积的组合结果实施校正以生成完整认证标记756。这些操作将在下面还关于图8更详细地描述。
当第三方加密-认证引擎702被用于加密数据记录的分段而不是整个数据记录时,生成并输出分段标记704。由于由分段结束认证块718执行的一个或多个分段结束认证操作作用于密文和部分标记(未示出)以生成分段标记704,因此分段标记704被认为是无效的。由于这些分段结束认证操作作用于基于单个数据分段而生成的密文(而不是作用于作为整体的数据记录),因此分段标记704对于用于认证整个数据记录是无效的。
贯穿图7和图8的示例,术语“分段特定错误”被用于限定在生成分段标记704时执行的操作的效果,该分段标记704使对于用于认证作为整体的数据记录的改变的组合多分段标记748变成无效(例如,这是最终标记的“未校正”版本)。返回参考图4(上面),术语“分段特定错误”可以被理解为最终标记426中存在的错误值,其表示分段结束认证块418的输入值(部分标记420)和输出值(标记426)之间的差异。
在本文讨论的一些先前示例中,分段结束认证操作(例如,由分段结束认证块418执行)由分段结束认证反转块(例如,由分段结束认证反转块522)“反转”。然而,值得注意的是,分段结束认证反转块(例如,图5中)的某些方面在数学上可能是不容易推导的,诸如充当图5中的分段结束认证反转块522的值。图7的解决方案不包括分段结束认证反转块(或等效逻辑),因此在数学上更容易实现。
返回到图7,分段标记704被提供给标记累积块724,标记累积块724可以被理解为实现与图5的标记累积块524相同或相似的功能性。由于系统700将分段标记704(例如,无效标记)直接提供给标记累积块724,因此累积块727用于将针对同一数据记录在不同时间处生成的多个无效分段标记累积在一起。由标记累积块724累积在一起的每个标记合并有相应的“分段特定错误”(如上文所限定)。这些分段特定错误与累积块727内的其他标记数据一起被累积,并被捕获在组合多分段标记726中,组合多分段标记726在给定数据记录的所有分段标记已被组合之后由累积块727输出。
组合多分段标记726被输入到标记终结器743,标记终结器743包括两个子模块:记录结束认证块736和聚合错误校正块738。在一种实现中,子模块738与724和/或736并行地操作。记录结束认证块736实现与第三方加密-认证引擎702的分段结束认证块718内包括的逻辑相同或相似的逻辑。第一操作729将多分段标记726与len(C’)进行组合,在这种情况下,len(C’)表示针对完整数据记录(包括其所有分段)所生成的组合密文的位长度。然后,第一操作729的输出与密钥信息(例如,上面关于图4和图密钥410限定的H0和H1)进行组合,生成改变的组合多分段标记748。
当组合多分段标记726由标记累积块724计算并且随后由记录结束认证块736改变以生成改变的组合多分段标记748时,聚合错误校正块738执行操作以计算单个校正,该单个校正有效解决输入到标记累积块724的分段标记中的每个分段标记中存在的分段特定错误。聚合错误校正块738接收函数len(C)的输出作为输入,该输出是密文分段(C)的位长度。在所图示的特定实现中,假设len(C)表示被用来生成数据记录的分段标记之一的每个密文分段的位长度,并且该密文分段的所有密文分段数据记录的长度相等。在其他实现中,与不同数据分段相对应的密文分段可以具有可变长度,并且因此聚合错误校正块738可以接收与非均匀长度的各个数据分段相对应的多个长度值作为输入。
分段密文位长度(len(C))在有限域乘法器747处与H0相乘,并在745处与H1进行XOR,其中H0和H1如上文关于图4和图密钥410所限定。这些操作生成输出744,该输出744被输入到有限域乘法器746。
同样在聚合错误校正块738内,特定校正错误校正块732执行操作以确定初始被包括在由第三方加密-认证引擎702输出的分段标记中的每个分段标记(例如,分段标记704)内的分段特定错误。在特定错误校正块732内执行的示例性操作将在下面关于图8详细讨论。在确定针对数据记录的每个分段(对于分段i=0到i=M-1,其中M是分段的数目)的分段特定错误时,将按分段错误校正值733提供给错误校正累积块750,在那里它与所确定的针对数据记录的每个其他分段的分段特定错误一起累积(聚合)。错误校正累积块750的输出752被提供给有限域乘法器746,在这里它与(如上所述基于针对每个数据分段的密文长度(len(C))而生成的)输出744相乘。
有限域乘法器746的输出754表示可以被利用来调整记录结束认证块736的输出的单个校正,以消除由第三方加密-认证引擎702输出的所有分段标记中存在的累积分段特定错误。(例如,经由XOR 755)将输出754与记录结束认证块736的输出相加以生成完整认证标记756,该完整认证标记756对于认证作为整体的数据记录是有效的。
完整认证标记756可以被理解为与由图5的系统500的输出生成的完整认证标记542基本上相同。
图8图示了另一示例性系统800内的标记终结器843的进一步细节,该标记终结器843执行用于对传输的数据进行加密的操作,从而允许对不同数据记录进行交错加密操作。在一种实现中,标记终结器843与标记终结器743相同或相似。然而,图8包括关于图7的标记终结器743未示出的附加细节。
标记终结器843接收组合多分段标记802作为输入,其可以被理解为与图7中的组合多分段标记726相同。特别地,组合多分段标记802表示针对同一数据记录的不同数据分段而生成的多个无效分段标记(例如,图7的分段标记704)的聚合。
组合多分段标记802被提供给记录结束认证块836,记录结束认证块836执行与图5中的分段结束认证块536的操作相同的操作。未校正的最终标记814从记录结束认证块836输出,并且随后通过由聚合错误校正块818确定的单个校正项817来调整(经由加法操作符838),该校正项817有效地移除(校正)存在于被累积以形成组合多分段标记802的每个分段标记内的分段特定错误。根据其中根据关于图4公开的方法生成分段标记的一个示例性实现,由在加法操作符838处应用的校正产生的有效的完整认证标记820具有如下等式(1)给出的形式:
其中TF是最终未校正的标记814;是组合多分段标记802(针对数据记录而生成的M数目的分段标记上的分段标记的聚合);len(c’)是数据记录的所有分段上的组合密文的位长度;H0和H1如上面关于图4所限定的;M表示包括在组合多分段标记802中的分段标记的数目(例如,从i=0到M-1的标记分段(i)上的标记聚合),并且len(c’)是与数据记录的每个分段相对应的密文的位长度(例如,假设所有单独加密的密文分段的长度相等)。
在上面的等式(1)中,注释A、B、C、D被用于标记各个项。图8包括镜像标签A、B、C、D,图示了如何以及在何处可以在图8的系统中计算这些项中的每一项的一个示例。
值得注意的是,‘A’表示由记录结束认证块836执行的对组合多分段标记802的上述调整。上面的最后一项(BxC),其中C是从分段i=0到分段i=M-1的D的总和,表示由聚合错误校正块818确定并在加法密码操作符838处被应用的校正。在该示例中,D表示对每个单个分段(i)(从i=0到(M-1))存在的针对分段特定错误的校正,并且该项由特定错误校正块840确定。特定错误校正块840使用寄存器842和乘法器846来计算针对数据记录中的每个分段(i=1到M-1)的该计算可以经由下面等式2中所示的组件来执行,/>
其中是来自先前迭代的所寄存器存储的计算,其在乘法器块846处乘以以产生/>其被存储在累积器844中并且与等式(2)的每个先前输出进行组合。换句话说,对于给定的分段迭代k(其中k已从0递增到i(当前分段索引)),存储在累积器844中的值被给出如下:
使得累积器844的输出在i=M-1时等于(上面等式(1)中的项“C”)。该值(C)与上面等式(1)中的“B”一起以及密钥信息H0和H1(如图4的密钥410所示而限定的)被提供给乘法器块816,“B”是基于用于生成分段标记之一的每个单个密文分段的长度(例如,len(c’))来计算的。
加法操作符838将校正项BxC(来自上面的等式(1))添加到未校正的最终标记814(例如,由记录结束认证块836相加的组合多分段标记802与上面等式(1)中的项(A)之和)。该过程产生有效的完整认证标记820,其可以被理解为具有与图5的完整认证标记542相同或相似的特性。
如上面所提及,图7至图8的实现在数学上可以比图5的实现更简单。另外,图7至图8的实现还有利地允许与诸如用于将多个不同分段标记累积在一起以形成组合多分段标记802的操作或关于记录结束认证块836示出的操作之类的其他系统操作并行地计算校正项817。这放宽了计算时间约束,诸如可能由诸如图5的系统强加的计算时间约束,其中每个分段标记被预先校正(例如,在分段结束认证反转块522内)以生成部分标记,同时服务于相同的最终目的并提供相同的最终益处。
图9图示了适合于实现所公开技术的各方面的处理设备900的示例示意图。处理设备900包括一个或多个处理器单元902、存储器904、显示器906和其他接口908(例如,按钮)。存储器904通常包括易失性存储器(例如,RAM)和非易失性存储器(例如,闪存)。操作系统910,诸如Microsoft操作系统、Microsoft/>Phone操作系统或为混合现实设备所设计的特定操作系统,驻留在存储器904中并由(多个)处理器单元902执行,但是应当理解,可以采用其他操作系统。
一个或多个应用912,诸如图2的第三方认证-加密引擎202、图2的部分标记恢复和累积引擎228或图7的标记累积和校正引擎740被加载到存储器904中并由(多个)处理器单元902在操作系统910上执行。应用912可以从诸如麦克风934、输入附件935(例如,键盘、鼠标、手写笔、触摸板、游戏板、赛车轮、操纵杆)之类的各种输入设备的输入,或者来自诸如一个或多个相机、麦克风等之类的各种环境传感器936的输入。处理设备900包括用于在以虚拟或混合现实模式进行操作时对虚拟对象进行投影的投影光学器件932。处理设备900还包括电源916,其由一个或多个电池或其他电源供电,并向处理设备900的其他组件提供电力。电源916还可以连接到外部电源(未示出),它会覆盖内置电池或其他电源或对其进行充电。
处理设备900包括一个或多个通信收发器930和天线938以提供网络连接性(例如,移动电话网络、)。处理设备900还可以包括各种其他组件,诸如定位系统(例如,全球定位卫星收发器)、一个或多个加速计、一个或多个相机、音频接口(例如,麦克风934、音频放大器和扬声器和/或音频插孔)和存储设备928。也可以采用其他配置。
处理设备900可以包括各种有形计算机可读存储介质和无形计算机可读通信信号。有形计算机可读存储装置可以由处理设备900可以访问的任何可用介质来实现,并且包括易失性和非易失性存储介质、可移动和不可移动存储介质。有形计算机可读存储介质不包括无形和暂时的通信信号,并且包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术所实现的易失性和非易失性、可移动和不可移动存储介质。有形计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CDROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储设备,或可以被用来存储期望信息并且可由处理设备900访问的任何其他有形介质。与有形计算机可读存储介质相比,无形计算机可读通信信号可以体现为计算机可读指令、数据结构、程序模块或驻留在调制数据信号(诸如载波或其他信号传输机制)中的其他数据。术语“调制数据信号”是指具有以将信息编码在信号中的方式设置或改变的其一个或多个特性的信号。作为示例而非限制,无形通信信号包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。
本文公开的示例方法包括:从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,多个不同分段标记中的每个分段标记由分段结束操作调整,分段结束操作引起使分段标记针对作为整体的数据记录的认证变得无效的分段特定错误,分段结束操作由第三方认证-加密引擎执行。该方法还提供:
将多个不同分段标记累积在一起以形成组合多分段标记;计算校正,校正有效将针对多个不同分段标记中的每个分段标记的分段特定错误在组合多分段标记上的累积效应进行反转;通过基于所计算的校正调整组合多分段标记,来生成完整认证标记;以及将完整认证标记连同数据记录的加密版本一起传输到接收方,完整认证标记由接收方可使用以认证数据记录。
在任何前述方法的另一示例方法中,生成数据记录的完整认证标记还包括执行一个或多个分段结束认证操作以将附加数据与组合多分段标记进行组合。
在任何前述方法的又一示例方法中,附加数据包括数据记录的大小,完整认证标记可用于验证数据记录的加密版本的大小在传输和接收之间保持不被改变。
在任何前述方法的另一示例方法中,附加数据包括基于密钥的信息,完整认证标记可用于验证数据记录的源有权访问基于密钥的信息,其中基于密钥的信息还由第三方认证-加密引擎使用以加密数据记录的单个分组。
在任何前述方法的又一示例方法中,计算校正还包括:与用于将多个不同分段标记累积在一起或用于生成完整认证标记的一个或多个其他操作并行地计算校正。
在任何前述方法的又一示例方法中,基于所计算的校正来调整组合多分段标记需要在所计算的校正与组合多分段标记之间执行加法密码。
在任何前述方法的又一示例方法中,多个不同分段标记中的每个分段标记基于数据记录的等长度分段。
本文公开的示例系统包括存储器、处理器,以及标记累积和校正引擎,其被存储在存储器中并且由处理器可执行以:从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,多个不同分段标记中的每个分段标记由分段结束操作调整,分段结束操作引起使分段标记针对作为整体的数据记录的认证变得无效的分段特定错误,分段结束操作由第三方认证-加密引擎执行。标记累积和校正引擎还可执行以:将多个不同分段标记累积在一起以形成组合多分段标记;计算校正,校正有效将针对多个不同分段标记中的每个分段标记的分段特定错误在组合多分段标记上的累积效应进行反转;通过基于所计算的校正调整组合多分段标记,来生成完整认证标记;以及将完整认证标记连同数据记录的加密版本一起传输到接收方。完整认证标记由接收方可使用以认证数据记录。
在任何前述系统的另一示例系统中,标记累积和校正引擎还可执行以:执行一个或多个分段结束认证操作以将附加数据与组合多分段标记进行组合。
在任何前述系统的又一示例系统中,附加数据包括数据记录的大小,完整认证标记可用于验证数据记录的加密版本的大小在传输和接收之间保持不被改变。
在任何前述系统的另一示例系统中,附加数据包括基于密钥的信息,完整认证标记可用于验证数据记录的源有权访问基于密钥的信息,其中基于密钥的信息还由第三方认证-加密引擎使用以加密数据记录的单个分组。
在任何前述系统的又一示例系统中,标记累积和校正引擎还可执行以:与用于将多个不同分段标记累积在一起或用于生成完整认证标记的一个或多个其他操作并行地计算校正。
在任何前述系统的另一示例系统中,标记累积和校正引擎还可执行以:在所计算的校正与组合多分段标记之间执行加法密码。
在任何前述系统的又一示例系统中,多个不同分段标记中的每个分段标记基于数据记录的等长度分段。
一种示例计算机可读存储介质存储用于执行计算机过程的计算机可执行指令。计算机过程包括从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,多个不同分段标记中的每个分段标记由分段结束操作调整,分段结束操作引起使分段标记针对作为整体的数据记录的认证变得无效的分段特定错误,分段结束操作由第三方认证-加密引擎执行。该计算机过程还包括:将多个不同分段标记累积在一起以形成组合多分段标记;计算校正,校正有效将针对多个不同分段标记中的每个分段标记的分段特定错误在组合多分段标记上的累积效应进行反转;通过基于所计算的校正调整组合多分段标记,来生成完整认证标记;以及将完整认证标记连同数据记录的加密版本一起传输到接收方。完整认证标记由接收方可使用以认证数据记录。
在任何前述计算机可读存储介质的示例计算机可读存储介质中,生成完整认证标记还包括:执行一个或多个分段结束认证操作以将附加数据与组合多分段标记进行组合。
在任何前述计算机可读存储介质的又一示例计算机可读存储介质中,附加数据包括数据记录的大小,完整认证标记可用于验证数据记录的加密版本的大小在传输和接收之间保持不被改变。
在任何前述计算机可读存储介质的又一示例计算机可读存储介质中,附加数据包括数据记录的大小,并且完整认证标记可用于验证数据记录的加密版本的大小在传输和接收之间保持不被改变。
在任何前述计算机可读存储介质的又一示例计算机可读存储介质中,计算校正还包括与用于将多个不同分段标记累积在一起或用于生成完整认证标记的一个或多个其他操作并行地计算校正。
在任何前述计算机可读存储介质的又一示例计算机可读存储介质中,基于所计算的校正来调整组合多分段标记需要在所计算的校正与组合多分段标记之间执行加法密码。
本文公开的示例系统包括:用于从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记的装置。多个不同分段标记中的每个分段标记由分段结束操作调整,分段结束操作引起使分段标记针对作为整体的数据记录的认证变得无效的分段特定错误,分段结束操作由第三方认证-加密引擎执行。该系统还包括用于将多个不同分段标记累积在一起以形成组合多分段标记的装置;用于计算校正的装置,校正有效将针对多个不同分段标记中的每个分段标记的分段特定错误在组合多分段标记上的累积效应进行反转;用于通过基于所计算的校正调整组合多分段标记,来生成完整认证标记的装置;以及用于将完整认证标记连同数据记录的加密版本一起传输到接收方的装置。完整认证标记由接收方可使用以认证数据记录。
本文描述的实现被实现为一个或多个计算机系统中的逻辑步骤。逻辑操作可以被实现为(1)作为在一个或多个计算机系统中执行的一系列处理器实现的步骤,以及(2)作为一个或多个计算机系统内的互连机器或电路模块。实现是一个选择问题,取决于所利用的计算机系统的性能要求。因此,构成本文描述的实现的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应当理解,逻辑操作可以以任何顺序执行,除非明确地另外声明或者特定顺序是权利要求语言固有地必需的。上述说明书、示例和数据连同所附的附录提供了示例性实现的结构和使用的完整描述。

Claims (15)

1.一种方法,包括:
从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,所述多个不同分段标记中的每个分段标记由分段结束操作调整,所述分段结束操作引起使所述分段标记针对作为整体的所述数据记录的认证变得无效的分段特定错误,所述分段结束操作由所述第三方认证-加密引擎执行;
将所述多个不同分段标记累积在一起以形成组合多分段标记;
计算校正,所述校正有效将针对所述多个不同分段标记中的每个分段标记的所述分段特定错误在所述组合多分段标记上的累积效应进行反转;
通过基于所计算的所述校正调整所述组合多分段标记,来生成完整认证标记;以及
将所述完整认证标记连同所述数据记录的加密版本一起传输到接收方,所述完整认证标记由所述接收方可使用以认证所述数据记录。
2.根据权利要求1所述的方法,其中生成针对所述数据记录的所述完整认证标记还包括:
执行一个或多个分段结束认证操作以将附加数据与所述组合多分段标记进行组合。
3.根据权利要求2所述的方法,其中所述附加数据包括所述数据记录的大小,所述完整认证标记可用于验证所述数据记录的所述加密版本的大小在传输和接收之间保持不被改变。
4.根据权利要求2所述的方法,其中所述附加数据包括基于密钥的信息,所述完整认证标记可用于验证所述数据记录的源有权访问所述基于密钥的信息,其中所述基于密钥的信息还由所述第三方认证-加密引擎使用以加密所述数据记录的单个分组。
5.根据权利要求1所述的方法,其中计算所述校正还包括:与用于将所述多个不同分段标记累积在一起或用于生成所述完整认证标记的一个或多个其他操作并行地计算所述校正。
6.根据权利要求1所述的方法,其中基于所计算的所述校正来调整所述组合多分段标记需要在所计算的所述校正与所述组合多分段标记之间执行加法密码。
7.根据权利要求1所述的方法,其中所述多个不同分段标记中的每个分段标记基于所述数据记录的等长度分段。
8.一种系统,包括:
存储器;
处理器;
标记累积和校正引擎,所述标记累积和校正引擎被存储在所述存储器中并且由所述处理器可执行以:
从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,所述多个不同分段标记中的每个分段标记由分段结束操作调整,所述分段结束操作引起使所述分段标记针对作为整体的所述数据记录的认证变得无效的分段特定错误,所述分段结束操作由所述第三方认证-加密引擎执行;
将所述多个不同分段标记累积在一起以形成组合多分段标记;
计算校正,所述校正有效将针对所述多个不同分段标记中的每个分段标记的所述分段特定错误在所述组合多分段标记上的累积效应进行反转;
通过基于所计算的所述校正调整所述组合多分段标记,来生成完整认证标记;以及
将所述完整认证标记连同所述数据记录的所述加密版本一起传输到接收方,所述完整认证标记由所述接收方可使用以认证所述数据记录。
9.根据权利要求8所述的系统,其中所述标记累积和校正引擎还可执行以:
执行一个或多个分段结束认证操作以将附加数据与所述组合多分段标记进行组合。
10.根据权利要求9所述的系统,其中所述附加数据包括所述数据记录的大小,所述完整认证标记可用于验证所述数据记录的所述加密版本的大小在传输和接收之间保持不被改变。
11.根据权利要求9所述的系统,其中所述附加数据包括基于密钥的信息,所述完整认证标记可用于验证所述数据记录的源有权访问所述基于密钥的信息,其中所述基于密钥的信息还由第三方认证-加密引擎使用以加密所述数据记录的单个分组。
12.根据权利要求8所述的系统,其中所述标记累积和校正引擎还可执行以:与用于将所述多个不同分段标记累积在一起或用于生成完整认证标记的一个或多个其他操作并行地计算所述校正。
13.根据权利要求8所述的系统,其中所述标记累积和校正引擎还可执行以:在所计算的所述校正与所述组合多分段标记之间执行加法密码。
14.根据权利要求8所述的系统,其中所述多个不同分段标记中的每个分段标记基于所述数据记录的等长度分段。
15.一种或多种计算机可读存储介质,包括用于执行计算机过程的计算机可执行指令,所述计算机过程包括:
从第三方认证-加密引擎接收基于数据记录的不同分段而各自被生成的多个不同分段标记,所述多个不同分段标记中的每个分段标记由分段结束操作调整,所述分段结束操作引起使所述分段标记针对作为整体的所述数据记录的认证变得无效的分段特定错误,所述分段结束操作由所述第三方认证-加密引擎执行;
将所述多个不同分段标记累积在一起以形成组合多分段标记;
计算校正,所述校正有效将针对所述多个不同分段标记中的每个分段标记的所述分段特定错误在所述组合多分段标记上的累积效应进行反转;
通过基于所计算的所述校正调整所述组合多分段标记,来生成完整认证标记;以及
将所述完整认证标记连同所述数据记录的所述加密版本一起传输到接收方,所述完整认证标记由所述接收方可使用以认证所述数据记录。
CN202280022768.1A 2021-03-26 2022-02-28 支持多个数据记录上的交错加密和认证操作的标记聚合和校正 Pending CN116998131A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/214,439 2021-03-26
US17/238,432 2021-04-23
US17/238,432 US20220311598A1 (en) 2021-03-26 2021-04-23 Tag aggregation and correction to support interleaved encryption and authentication operations on multiple data records
PCT/US2022/018068 WO2022203816A1 (en) 2021-03-26 2022-02-28 Tag aggregation and correction to support interleaved encryption and authentication operations on multiple data records

Publications (1)

Publication Number Publication Date
CN116998131A true CN116998131A (zh) 2023-11-03

Family

ID=88534346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280022768.1A Pending CN116998131A (zh) 2021-03-26 2022-02-28 支持多个数据记录上的交错加密和认证操作的标记聚合和校正

Country Status (1)

Country Link
CN (1) CN116998131A (zh)

Similar Documents

Publication Publication Date Title
US10298390B2 (en) Integrity protected trusted public key token with performance enhancements
CN109510818B (zh) 区块链的数据传输系统、方法、装置、设备及存储介质
US8270615B2 (en) Key-updating method, encryption processing method, key-insulated cryptosystem and terminal device
US10853497B2 (en) Method and system for providing an update of code on a memory-constrained device
US10880100B2 (en) Apparatus and method for certificate enrollment
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US6813358B1 (en) Method and system for timed-release cryptosystems
US11212082B2 (en) Ciphertext based quorum cryptosystem
US10826694B2 (en) Method for leakage-resilient distributed function evaluation with CPU-enclaves
CN117044160A (zh) 支持多个数据记录上的交错加密和认证操作的部分认证标记聚合
US7894608B2 (en) Secure approach to send data from one system to another
CN110061968A (zh) 一种基于区块链的文件加解密方法、系统及存储介质
CN107864129B (zh) 一种保证网络数据安全的方法和装置
US7802102B2 (en) Method for efficient and secure data migration between data processing systems
CN113051590A (zh) 一种数据处理方法和相关设备
CN103248476A (zh) 数据加密密钥的管理方法、系统及终端
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
Yu et al. Provable data possession supporting secure data transfer for cloud storage
US20240063999A1 (en) Multi-party cryptographic systems and methods
CN116998131A (zh) 支持多个数据记录上的交错加密和认证操作的标记聚合和校正
US20220311598A1 (en) Tag aggregation and correction to support interleaved encryption and authentication operations on multiple data records
CN115883212A (zh) 信息处理方法、装置、电子设备和存储介质
US20240205204A1 (en) Data transmission protocol execution methods and apparatuses
CN117201033A (zh) 一种盲签名设备、系统以及方法
Raj et al. Performance Analysis of Hybrid Cryptographic Algorithms in Serverless Platforms

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