CN107615273A - 组合数据块的散列 - Google Patents
组合数据块的散列 Download PDFInfo
- Publication number
- CN107615273A CN107615273A CN201580080542.7A CN201580080542A CN107615273A CN 107615273 A CN107615273 A CN 107615273A CN 201580080542 A CN201580080542 A CN 201580080542A CN 107615273 A CN107615273 A CN 107615273A
- Authority
- CN
- China
- Prior art keywords
- hashed value
- matrix
- value
- data block
- combined
- 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
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
示例实施例涉及对数据块的散列进行组合。本文公开的示例针对数据块的序列中的每个数据块计算散列值。将散列值组合成组合值,其中组合值具有与数据块的序列相同的序列。然后针对组合值计算主散列值。
Description
背景技术
散列函数是可以将任意大小的数据映射到固定大小的数据的函数。散列表是在用于快速数据查找的计算中广泛使用的数据结构。安全散列函数允许容易地验证输入数据映射到给定的散列值,但是在根据散列值重构输入数据方面有意地造成困难。
附图说明
以下具体实施方式参考附图,其中:
图1是用于对数据块的散列进行组合的示例计算设备的框图;
图2A是用于通过矩阵相乘来对数据块的散列进行组合的示例计算设备的框图;
图2B是具有用于将散列值组合成矩阵的指令的示例非暂时性机器可读存储介质的框图;
图2C是具有用于利用三角形数来将散列值组合成矩阵的指令的示例非暂时性机器可读存储介质的框图;
图3是用于通过字符串连结来对数据块的散列进行组合的示例计算设备的框图;
图4A是示例散列化过程的示意流程图;
图4B是通过矩阵相乘来对散列进行组合的示例过程的示意流程图;
图5是用于对数据块的散列进行组合的示例方法的流程图;
图6是示例M(r,n)矩阵的示意图;以及
图7是示出对数据块的散列进行组合的示例散列化过程的示意流程图。
具体实施方式
通过计算机和计算网络生成、存储、计算以及传输的数据量随着计算机用于托管商业应用、网站、云等的迅速扩张而爆发性地增长。由于更多的数据被传送,数据保护的重要性同样增加。安全地处理批量数据方面的重要问题在于通过加密散列函数对数据块的序列进行安全散列化。这个过程出现在数据消息传递和标准数据处理中,用于检查数据完整性以及免于非法数据修改或数据损坏。加密散列函数具有许多应用,尤其是数字签名、消息认证以及其他形式的认证。
用于构造安全散列的标准方法可能要求数据块的序列中的所有数据块都存在以用于构造散列以及在稍后的时间再次检查散列。该过程可以开始于利用默认初始化对第一块进行散列化,以及传递该散列值作为散列化第二数据块的开始点,并且以此类推直到达到最后的数据块并且可以产生结果散列为止。因此,最后的数据块的散列取决于在正确序列中取得的所有先前块的散列,并且典型地被视为完整序列的结果散列。
然而,这可能导致显著的成本,因为数据块典型地仍然可以按正确的次序一起访问,以便于计算完整序列的总体安全散列。此外,诸如Merkle散列树的现有技术涉及对单独的数据块进行散列化,但是随后利用严格的方式对其进行组合。
本文公开的示例通过提供安全的部分散列化解决了这些技术挑战,其中有利地以灵活的方式构造所获得的散列的结构形式,并且该结构形式支持组合的关联性。例如,计算设备可以针对数据块的序列中的每个数据块计算散列值。散列值可以被组合成组合值,该组合值保持与数据块的序列相同的序列。然后,可以针对组合值计算主散列值。用于对散列值进行组合的函数既可以是关联的也可以是非交换的。以这种方式,本文的示例可以产生满足若干标准(包括抗原像性、抗第二原像性以及抗冲突性)的总体输出散列值。
现在参考附图,图1描绘了用于对数据块的散列进行组合的示例计算设备100。计算设备100可以是例如云服务器、局域网服务器、网络服务器、大型计算机、移动计算设备、笔记本或台式计算机、智能TV、销售点设备、可穿戴设备、任何其他合适的电子设备、或者执行本文描述的功能的设备(例如,通过云或互联网网络连接的设备)的组合。在图1所示的示例中,计算设备100包括处理器110和编码有用于对散列值进行组合的指令的非暂时性机器可读存储介质120。
处理器110可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器、和/或适合于取回并执行存储在机器可读存储介质120中的指令的其他硬件设备。处理器110可以取出、解码以及执行指令121、122、123、和/或其他指令,以实现本文描述的过程。作为对取回并执行指令的替代或除了取回并执行指令之外,处理器110可以包括一个或多个电子电路,其包括用于执行指令121、122以及123中的一个或多个指令的功能的电子部件。
在一个示例中,程序指令121、122、123、和/或其他指令可以是可以由处理器110执行以实现本文所描述的功能的安装包的一部分。在这种情况下,存储器120可以是诸如CD、DVD、或闪存驱动器的便携式介质,或者是由计算设备维护的存储器,安装包可以从该存储器下载并安装。在另一示例中,程序指令可以是已经安装在计算设备100上的应用或多个应用的一部分。
机器可读存储介质120可以是包含或存储计算设备100可访问的可执行数据的任何电子、磁性、光学、或其他物理存储设备。因此,机器可读存储介质120可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储设备、光盘等。存储介质120可以是非暂时性存储介质,其中术语“非暂时性”不包含暂时性传播信号。存储介质120可以位于计算设备100中和/或位于与计算设备100通信的另一设备中。如下面详细描述的,机器可读存储介质120可以编码有接收计算散列值指令121、组合散列值指令122以及计算主散列值指令123。
计算散列值指令121在由处理器110执行时,可以针对数据块的序列中的每个数据块计算散列值。计算设备100的操作可以在图4A中示出,该操作将与图1相关地进行描述。例如,一些批量数据可以由数据块的序列构成或者可以分解成数据块的序列,例如,数据块411至419。每个数据块可以具有特定的大小。在一些示例中,每个数据块可以具有相同的大小。例如,每个块可以是4到64千字节。在其他示例中,数据块可以不具有相同的大小,和/或数据块可以在上述大小范围之外。
可以针对每个数据块计算散列值。例如,针对数据块411计算散列值421,针对数据块412计算散列值422,以此类推。散列值可以是由散列函数返回的值,散列函数可以是能够用于将任意大小的数据映射到固定大小的数据的任何函数。例如,散列函数可以对数据块411执行以获得散列值421。在本文的示例中可以利用各种类型和形式的散列函数。
在一些示例中,可以通过加密散列函数的操作分别根据数据块411-419计算散列值421-429。加密散列函数可以是实际上不可能反转(即,不可能单独根据其散列值来重建输入数据)的散列函数。在本文的示例中可以采用各种加密函数。非限制性示例包括SHA-2和SHA-3。
加密散列函数可能能够承受密码分析攻击。加密散列函数可以具有若干属性,包括抗原像性、抗第二原像性以及抗冲突性。具体地,抗原像性是指对从给定散列值发现消息的抵抗。因此,加密散列函数可以涉及单向函数。抗第二原像性是指对发现将产生与第一消息相同的散列值的第二消息的抵抗。抗冲突性是指对加密散列冲突(即,当两个消息产生相同的散列值时)的抵抗。另外,本文采用的加密函数可以具有各种其他属性。
组合散列值指令122在由处理器110执行时,可以将散列值组合成组合值。例如,可以将散列值421-429组合成组合值430。组合值可以是表示散列值的组合的中间值。
在一些示例中,可以通过连结来对散列值进行组合。例如,散列值421-429可以作为简单字符串依次连结在一起以形成包括所有散列值的组合值。可替代地或另外地,可以通过矩阵相乘来对散列值进行组合。这些对散列值进行组合的方法的细节在本文中关于图2A、2B以及图3详细地描述。此外,可以通过其他可用的方法来对散列值进行组合。
在一些示例中,散列值的组合值可以保持与数据块的序列相同的序列。这允许用于对散列值进行组合的操作是非交换的。非交换操作是在输入按照不同次序时产生不同结果的操作。例如,当对于某些x,y而言:(xθy)≠(yθx)时,操作θ是非交换的。因此,为了产生正确的组合散列,组合值中的散列值的序列应该保持数据块的序列。
此外,在一些示例中,用于对散列值进行组合的操作可以是关联的。关联操作是其中操作的次序与获得相同的结果无关的操作。例如,当对于x、y以及z而言:xθ(yθz)=(xθy)θz时,操作θ是关联的。作为结果,诸如连结的组合操作可以以多个步骤发生。例如,如图4A所示,散列值421和散列值422可以组合成组合值432。然后可以将每个散列值423-427顺序地组合成组合值。然而由于关联性,在将散列值428和散列值429组合成总体组合值以形成组合值430之前,可以先将散列值428和散列值429组合成组合值439。
继续参考图1,指令123在由处理器110执行时可以计算组合值的主散列值。例如,可以针对组合值430计算主散列值440,组合值430是数据块411-419的散列值421-429的组合。主散列是所有数据块的表示。例如,改变数据块或其位置可能会引起结果主散列的改变。可以采用各种散列函数来计算主散列。例如,可以利用与在指令121中执行的散列函数相同或不同的散列函数,例如,加密散列函数。
图2A描绘了用于通过矩阵相乘来对数据块的散列进行组合的示例计算设备200。类似于计算设备100,计算设备200可以是例如云服务器、局域网服务器、网络服务器、大型计算机、移动计算设备、笔记本或台式计算机、智能TV、销售点设备、可穿戴设备、任何其他合适的电子设备、或者执行本文描述的功能的设备(例如,通过云或互联网网络连接的设备)的组合。在图2A所示的示例中,计算设备200包括处理器210和编码有用于对数据块的散列值进行组合的指令的非暂时性机器可读存储介质220。
处理器210可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器、和/或适合于取回并执行存储在机器可读存储介质220中的指令的其他硬件设备。处理器220可以取出、解码以及执行指令221、222、223、224、和/或其他指令,以实现本文描述的过程。
计算散列值指令221在由处理器210执行时,可以针对数据块的序列中的每个数据块计算散列值。计算设备200的操作可以在图4A和图4B中示出,该操作将与图2A、图2B以及图2C相关地描述。例如,可以使用散列函数(例如,加密散列函数)针对数据块411-419计算散列值421-429。
组合散列值指令222在由处理器210执行时,可以将散列值组合成组合值。例如,散列值421-429可以组合成组合值430。在一些示例中,可以通过矩阵相乘来对散列值进行组合,如这里与图2A和图2B一起描述的。组合散列值指令222可以包括将散列值转换成矩阵指令222A和对矩阵进行矩阵相乘指令222B。
将散列值转换成矩阵指令222A在由处理器210执行时,可以将散列值转换成至少一个矩阵。例如,可以将每个散列值421-429转换成至少一个矩阵以形成多个矩阵。这在图4B中示出,其中可以将散列值451转换成矩阵461,并且可以将散列值452转换成矩阵462。将散列值转换成矩阵指令222A本身可以包括各种操作,这些操作在图2B中表示。例如,将散列值转换成矩阵指令222A可以包括将散列值转换成字节向量指令251和使用字节向量来构造矩阵指令252。
从散列到矩阵的转换操作的重要属性在于其是可逆的。因此,组合矩阵可以被转换回组合散列。因此,散列值到矩阵的映射可以涉及结构模式中的特定类别的矩阵,以使得其可以被投射回散列值。例如,下三角形为0条目、对角线为1、上三角形中为整数元素的矩阵。这种矩阵被称为M(n,r),其中n是维度(行,列)的数量,而r指定条目的类别为(整数对r取模)。例如,来自M(n,256)的矩阵可以在本文的示例中使用。图6的矩阵600示出了矩阵M(n,r)。
将散列值转换成字节向量指令251在由处理器210执行时,可以将散列值转换成字节向量。具体地,可以将散列值转换成字节的序列。然后,可以使用这些字节来填写条目以针对某个适当的行大小n构造M(n,256)形式的矩阵。这可以以各种方式确定性地执行。矩阵的上三角区域中的条目因此将对应于来自字节向量的特定字节值。
然而,M(n,k)形式的任何矩阵中的可填写条目的数量必然是第(n-1)个三角形数T(n-1)(其中T(n)=n(n+1)/2),即上三角形中的位置的数量。散列值可以具有不同的长度,并且因此可以采取某种规约,以使得散列值的每个字节直接有助于被定义的特定矩阵中的条目。可以采用多个过程来纠正这个问题,包括但不限于填充字节向量和/或将字节向量分解成多个矩阵。
填充字节向量指令252A在由处理器210执行时,可以将向量填充为适当的长度。例如,可以确定性地填充字节向量,以使得该字节向量包含适当的三角形数的字节,期望矩阵中的每个条目一个字节。可以采用多种填充方法。在示例中,可以将零值添加到字节向量中以填满矩阵中的剩余空间。
可替代地,三角形数指令252B在由处理器210执行时,可以使用字节向量针对每个散列值构造至多三个矩阵。在三角形数指令252B中采用的技术利用Gauss的三角形数定理,该定理阐述了每个非负整数可以表示为至多三个三角形数的和。因此,散列值的字节向量可以分解成一个到三个三角形数的和。然后可以将字节向量的条目映射到具有对应大小的一个到三个矩阵。虽然这种技术产生每个散列值多达三个矩阵,但是尽管如此,这些矩阵可以独立地用于对同样以相同方式分解的散列值进行组合。
一旦散列值已经转换成矩阵,则对矩阵进行矩阵相乘指令222B在由处理器210执行时可以对矩阵进行矩阵相乘以构造组合值。例如,矩阵461和矩阵462可以进行矩阵相乘以构造组合矩阵470。组合矩阵470可以表示对散列值421-429的所有矩阵进行矩阵相乘之后的最终矩阵。
一旦组合矩阵已经构造,则计算主散列值指令223在由处理器210执行时,可以针对组合矩阵值计算主散列值。例如,可以针对组合矩阵470计算主散列值480,组合矩阵470是数据块411-419的散列值421-429的组合。主散列是所有数据块的表示。在一些示例中,可以从组合矩阵中提取组合字节向量。这可以通过映射组合字节向量元素与组合矩阵中的特定条目来完成。然后可以将所提取的组合字节向量用作主散列值,或者可以对组合字节向量执行附加散列函数以计算主散列值。
此外,由于数据块的散列值被转换成矩阵以及数据块的散列值根据矩阵来转换,所以如果任何数据块等于其他数据块,则其对应的散列也可以相等。因此,其结果矩阵也可以相同。因此,构造唯一数据标头指令224在由处理器210执行时,可以针对每个数据块411-419构造唯一的数据标头。每个唯一的数据标头可以具有每个块不同的唯一标识值(UID)。一般地,每个UID可能不具有对数据块的内容的任何引用。该标头可以与数据块的内容一起散列化,以获得单个唯一散列值。
在一些示例中,数据标头可以嵌入每个对应的数据块内部,或者可替代地,以附加的对应元数据的形式单独地传送。在前一种情况下,可以执行后处理以从数据块中移除嵌入的数据标头,以便获得原始数据内容。
此外,这个挑战的另一解决方案是自然地提供唯一的数据块。例如,可以将数据分割成有编号的数据块(例如,针对联网分组进行的),以确保每个数据块具有散列唯一性。
图3描绘了用于通过字符连结来对数据块的散列进行组合的示例计算设备300。类似于计算设备100和200,计算设备300可以是例如云服务器、局域网服务器、网络服务器、大型计算机、移动计算设备、笔记本或台式计算机、智能TV、销售点设备、可穿戴设备、任何其他合适的电子设备、或者执行本文描述的功能的设备(例如,通过云或互联网网络连接的设备)的组合。在图3所示的示例中,计算设备300包括处理器310和编码有用于对数据块的散列值进行组合的指令的非暂时性机器可读存储介质320。
处理器310可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器、和/或适合于取回并执行存储在机器可读存储介质320中的指令的其他硬件设备。处理器320可以取出、解码以及执行指令321、322、323、324、和/或其他指令,以实现本文描述的过程。
如本文关于图1和图2A所描述的,计算散列值指令321在由处理器310执行时,可以针对数据块的序列中的每个数据块计算散列值。例如,可以使用散列函数(例如,加密散列函数)来针对数据块411-419计算图4A的散列值421-429。
组合散列值指令322在由处理器310执行时,可以将散列值组合成组合值。例如,散列值421-429可以组合成组合值430。在一些示例中,可以通过连结来对散列值进行组合。组合散列值指令322可以包括连结散列值指令322C。
连结散列值指令322C在由处理器510执行时,可以将散列值连结成散列字符串。在一些示例中,可以在数据块到达时计算数据块的散列值,并且然后将散列值***到字符串中的对应位置处的总体散列字符串中。因此,每个块的每个散列值在总体散列字符串中具有对应的位置。
此外,由于散列值是独立计算的,所以可以单独计算部分散列的片段,并且然后在之后将这些片段连结在一起。只要每个片段相对于其他片段正确地放置,则连结的次序就不会由于关联性而影响操作。例如,如图4A所示,可以在将组合散列值439连结到总体散列字符串之前通过对散列值428和429进行连结来计算组合散列值439。然而,数据块的次序被保持,因为操作是非交换的。换言之,改变散列在块的序列中的位置可能引起结果散列字符串的改变。
一旦构造了散列字符串,则计算主散列值指令323在由处理器310执行时,可以针对散列字符串计算主散列值。例如,可以针对作为散列字符串的组合值430计算主散列值440。主散列是所有数据块的表示。
此外,构造唯一数据标头指令324在由处理器310执行时,可以针对每个数据块411-419构造唯一的数据标头。每个唯一的数据标头可以具有每个块不同的唯一标识值(UID)。一般地,每个UID可能不具有对数据块的内容的任何引用。该标头可以与数据块的内容一起散列化,以获得单个唯一散列值。
在一些示例中,数据标头可以嵌入每个对应的数据块内部,或者可替代地,以附加的对应元数据的形式单独地传送。在前一种情况下,可以执行后处理以从数据块中移除嵌入的数据标头,以便获得原始数据内容。
此外,这个挑战的另一解决方案是自然地提供唯一的数据块。例如,可以将数据分割成有编号的数据块(例如,针对联网分组进行的),以确保每个数据块具有散列唯一性。
图5描绘了用于对数据块的散列进行组合的示例方法500。虽然下面参考图2A、图2B、图4A以及图4B中所示的示例来描述方法500的执行,但是用于执行该方法的其他合适的设备应该是显而易见的,包括图1和图3的示例。方法500可以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路的形式来实现。
在操作510中,可以针对数据块的序列中的每个数据块计算散列值。例如,计算设备200可以分别针对数据块411-419的序列计算散列值421-429。可以对数据块411-419执行各种散列函数以获得散列值421-429。
在一些示例中,可以通过加密散列函数的操作来分别根据数据块411-419计算散列值421-429。加密散列函数可以是实际上不可能反转(即,不可能单独根据其散列值来重建输入数据)的散列函数。加密散列函数可能能够承受密码分析攻击。加密散列函数可以具有若干属性,包括抗原像性、抗第二原像性以及抗冲突性。在本文的示例中可以采用各种加密函数。具体的非限制性示例包括SHA-2和SHA-3。
在操作520中,每个散列值可以转换成字节向量。例如,散列值可以转换成字节的序列。然后可以使用这些字节来填写条目以针对某个适当的矩阵大小n构造M(n,256)形式的矩阵。这可以以各种方式确定性地执行。矩阵中的条目因此将对应于来自字节向量的特定字节值。
在操作530中,可以使用字节向量针对每个散列值构造至少一个矩阵。例如,可以将字节向量的值映射到矩阵中的条目。
然而,M(n,k)形式的任何矩阵中的可填写条目的数量必然是第(n-1)个三角形数。散列值可以具有不同的长度,并且因此可以采取某种规约,以使得散列值的每个字节直接有助于被定义的特定矩阵。可以采用多个过程来纠正这个问题,包括但不限于填充字节向量和/或将字节向量分解成多个矩阵。可替代地,字节向量可以分解成一个到三个三角形数,其总和为字节向量的长度。然后这些三角形数可以确定字节向量的部分,每个部分可以映射到单独的矩阵。作为结果,每个字节向量可以映射到一个到三个矩阵。
在操作540中,对矩阵进行矩阵相乘以构造组合矩阵。例如,图4B的矩阵461和矩阵462可以进行矩阵相乘以构造组合矩阵470。组合矩阵470可以表示在对散列值421-429的所有矩阵进行矩阵相乘之后的最终矩阵。
在操作550中,可以针对组合矩阵计算主散列值。例如,可以针对组合矩阵470计算主散列值480,该组合矩阵470是数据块411-419的散列值421-429的组合。主散列是所有数据块的表示。在一些示例中,可以从组合矩阵中提取组合字节向量。这可以通过映射组合字节向量元素与组合矩阵中的特定条目来完成。然后可以将所提取的组合字节向量用作主散列值,或者可以对组合字节向量执行附加散列函数以计算主散列值。
作为对关于图5描述的矩阵相乘过程的替代,可以通过将散列值顺序地连结成散列字符串来对数据块的散列值进行组合。上面关于图3描述了这种操作的示例的细节。
图7示出了如本文教导的对散列的示例组合。图7示出了数据块的序列中的多个散列值,示为b1至b9。散列值b1-b9可以包括标识信息,例如唯一标头,其标识相应数据块在序列内的位置。在图7所示的示例中,在对散列值b1-b9进行处理时可以不按数字次序。本文教导的过程允许通过对数据块的子集中的部分散列进行组合来散列化数据块。
例如,由于本文中的函数的关联属性,所以可以按任何次序对散列进行组合,只要散列的序列反映数据块的序列。例如,b1可以与b2组合,b3可以与b4组合,并且然后可以将两个中间散列值组合。一旦后续散列按正确的次序被处理,就可以对散列进行组合。因此,本文的示例提供了对数据块的散列的灵活且高效的组合。
前述公开内容描述了用于对数据块的散列进行组合的多个示例实施例。所公开的示例可以包括***、设备、计算机可读存储介质以及用于对散列值进行组合的方法。为了解释的目的,参照图1-7所示的组件对特定示例进行描述。然而,所示出的组件的功能可以重叠,然而所示出的组件的功能可以存在于更少或更多数量的元件和组件中。所示出的元件的功能中的全部或部分功能可以共存或分布在若干地理上分散的位置之间。此外,所公开的示例可以在各种环境中实现,而不限于所示出的实现方式。
此外,结合图1-5描述的操作的序列是示例并且不旨在进行限制。在不脱离所公开的示例的范围的情况下,附加的或更少的操作或操作的组合可以被使用或者可以变化。此外,与所公开的示例一致的实现方式不需要按任何特定次序来执行操作的序列。因此,本公开仅阐述了实现方式的可能示例,并且可以对所描述的示例做出许多变化和修改。所有这样的修改和变化旨在包含于本公开的范围内,并且受到所附权利要求的保护。
Claims (15)
1.一种非暂时性机器可读存储介质,编码有能够由计算设备的处理器执行的指令,所述非暂时性存储介质包括用于进行以下操作的指令:
计算针对数据块的序列中的每个数据块的散列值;
将所述散列值组合成组合值,其中,所述组合值具有与所述数据块的序列相同的序列;以及
计算针对所述组合值的主散列值。
2.根据权利要求1所述的非暂时性机器可读存储介质,还包括用于针对每个数据块构造唯一的数据标头的指令。
3.根据权利要求1所述的非暂时性机器可读存储介质,其中,用于将所述散列值组合成所述组合值的指令包括用于进行以下操作的指令:
将每个散列值转换成至少一个矩阵以创建多个矩阵;以及
对所述多个矩阵中的矩阵进行矩阵相乘以构造组合矩阵,其中,所述组合值是所述组合矩阵。
4.根据权利要求3所述的非暂时性机器可读存储介质,其中,用于将每个散列值转换成至少一个矩阵的指令包括用于进行以下操作的指令:
将每个散列值转换成字节向量;以及
使用所述字节向量来针对每个散列值构造至少一个矩阵。
5.根据权利要求4所述的非暂时性机器可读存储介质,还包括用于将所述字节向量填充为适当的长度的指令。
6.根据权利要求4所述的非暂时性机器可读存储介质,还包括用于进行以下操作的指令:
将每个字节向量的长度分解成至多三个三角形数的和;
使用所述字节向量来针对每个散列值构造至多三个矩阵,其中,所述矩阵的大小对应于所述三角形数。
7.根据权利要求1所述的非暂时性机器可读存储介质,其中,用于对所述散列值进行组合的指令包括用于将所述散列值连结成散列字符串的指令,其中,所述组合值是所述散列字符串。
8.一种用于对数据块的散列进行组合的计算设备,所述计算设备包括:
散列引擎,其用于计算针对数据块的序列中的每个数据块的散列值;
组合引擎,其用于将每个散列值转换成至少一个矩阵以创建多个矩阵,并且用于对所述多个矩阵中的矩阵进行矩阵相乘以构造组合值;并且
所述散列引擎用于计算针对所述组合值的主散列值。
9.根据权利要求8所述的计算设备,其中,所述组合引擎用于:
将每个散列值转换成字节向量;以及
使用所述字节向量来针对每个散列值构造至少一个矩阵。
10.根据权利要求9所述的计算设备,其中,所述组合引擎用于:
将每个字节向量的长度分解成至多三个三角形数的和;
使用所述字节向量来针对每个散列值构造至多三个矩阵,其中,所述矩阵的大小对应于所述三角形数。
11.根据权利要求8所述的计算设备,其中,所述组合引擎用于将所述散列值连结成散列字符串,其中,所述组合值是所述散列字符串。
12.一种由计算设备执行以用于对数据块的散列进行组合的方法,所述方法包括:
计算针对数据块的序列中的每个数据块的散列值;
将每个散列值转换成字节向量;
使用所述字节向量来针对每个散列值构造至少一个矩阵;
对所述矩阵进行矩阵相乘以构造组合矩阵;
将所述组合矩阵转换成组合值;以及
计算针对所述组合值的主散列值。
13.根据权利要求12所述的方法,还包括将所述字节向量填充为适当的长度。
14.根据权利要求12所述的方法,还包括将每个字节向量的长度分解成至多三个三角形数的和,其中,所述至少一个矩阵是至多三个矩阵,并且其中,所述矩阵的大小对应于所述三角形数。
15.根据权利要求12所述的方法,还包括将所述散列值连结成散列字符串,以及计算针对所述散列字符串的所述主散列值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/063945 WO2017095435A1 (en) | 2015-12-04 | 2015-12-04 | Combining hashes of data blocks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107615273A true CN107615273A (zh) | 2018-01-19 |
Family
ID=58797676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580080542.7A Pending CN107615273A (zh) | 2015-12-04 | 2015-12-04 | 组合数据块的散列 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10686589B2 (zh) |
EP (1) | EP3384406A4 (zh) |
CN (1) | CN107615273A (zh) |
WO (1) | WO2017095435A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363000A (zh) * | 2019-07-10 | 2019-10-22 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN117555903A (zh) * | 2024-01-05 | 2024-02-13 | 珠海星云智联科技有限公司 | 一种数据处理方法、计算机设备及介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309336B (zh) * | 2018-03-12 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 图像检索方法、装置、***、服务器以及存储介质 |
US11271721B2 (en) * | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Distributed secure array using intra-dice communications to perform data attestation |
US11175826B2 (en) * | 2019-05-03 | 2021-11-16 | Government Of The United States Of America, As Represented By The Secretary Of Commerce | Diagonal node data block matrix for adding hash-linked records and deleting arbitrary records while preserving hash-based integrity assurance |
US12009034B2 (en) | 2020-03-02 | 2024-06-11 | Micron Technology, Inc. | Classification of error rate of data retrieved from memory cells |
US11029890B1 (en) | 2020-03-02 | 2021-06-08 | Micron Technology, Inc. | Compound feature generation in classification of error rate of data retrieved from memory cells |
US11740970B2 (en) | 2020-03-02 | 2023-08-29 | Micron Technology, Inc. | Dynamic adjustment of data integrity operations of a memory system based on error rate classification |
US11221800B2 (en) | 2020-03-02 | 2022-01-11 | Micron Technology, Inc. | Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells |
US11086572B1 (en) | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
US11081200B1 (en) | 2020-05-07 | 2021-08-03 | Micron Technology, Inc. | Intelligent proactive responses to operations to read data from memory cells |
US11257546B2 (en) | 2020-05-07 | 2022-02-22 | Micron Technology, Inc. | Reading of soft bits and hard bits from memory cells |
CN116186747A (zh) * | 2023-04-27 | 2023-05-30 | 暗链科技(深圳)有限公司 | 自适应哈希加密方法、非易失性可读存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210260A1 (en) * | 2004-03-17 | 2005-09-22 | Ramarathnam Venkatesan | Unimodular matrix-based message authentication codes (MAC) |
CN101061661A (zh) * | 2004-10-20 | 2007-10-24 | 思科技术公司 | 加密方法 |
US20110283085A1 (en) * | 2010-05-17 | 2011-11-17 | Oracle International Corporation | System and method for end-to-end data integrity in a network file system |
US20130262421A1 (en) * | 2012-04-01 | 2013-10-03 | Microsoft Corporation | Checksum and hashing operations resilient to malicious input data |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的***及方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742028B1 (en) * | 2000-09-15 | 2004-05-25 | Frank Wang | Content management and sharing |
US7577250B2 (en) * | 2004-08-12 | 2009-08-18 | Cmla, Llc | Key derivation functions to enhance security |
US7257711B2 (en) * | 2001-11-08 | 2007-08-14 | The Johns Hopkins University | Efficient authenticated dictionaries with skip lists and commutative hashing |
US7287164B2 (en) * | 2002-09-12 | 2007-10-23 | International Business Machines Corporation | Method and system for encoding signatures to authenticate files |
GB0229894D0 (en) | 2002-12-21 | 2003-01-29 | Ibm | Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes |
US7600125B1 (en) | 2004-12-23 | 2009-10-06 | Symantec Corporation | Hash-based data block processing with intermittently-connected systems |
GB2432433B (en) | 2005-10-29 | 2010-04-07 | Hewlett Packard Development Co | A method of providing a validatable data structure |
JP4735644B2 (ja) | 2005-11-04 | 2011-07-27 | 日本電気株式会社 | メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体 |
ITBO20060648A1 (it) * | 2006-09-20 | 2008-03-21 | Univ Degli Studi Roma Tre | Metodo per la gestione dinamica e sicura di una tabella relazionale autenticata in un database |
US8621240B1 (en) * | 2007-12-31 | 2013-12-31 | Emc Corporation | User-specific hash authentication |
US20100114832A1 (en) * | 2008-10-31 | 2010-05-06 | Lillibridge Mark D | Forensic snapshot |
US20100111292A1 (en) | 2008-10-31 | 2010-05-06 | Apple Inc. | Aggregate and parallelizable hash function |
JP5381543B2 (ja) | 2009-09-18 | 2014-01-08 | 富士通株式会社 | データ処理装置、署名処理プログラム、検証プログラム、及び署名プログラム |
US8538938B2 (en) * | 2010-12-02 | 2013-09-17 | At&T Intellectual Property I, L.P. | Interactive proof to validate outsourced data stream processing |
US10198248B2 (en) | 2012-07-11 | 2019-02-05 | Intel Corporation | Parallel processing of a single data buffer |
US9384145B2 (en) * | 2013-08-26 | 2016-07-05 | Oracle International Corporation | Systems and methods for implementing dynamically configurable perfect hash tables |
US9425953B2 (en) | 2013-10-09 | 2016-08-23 | Intel Corporation | Generating multiple secure hashes from a single data buffer |
US10013443B2 (en) * | 2015-06-25 | 2018-07-03 | Bank Of America Corporation | Comparing data stores using hash sums on disparate parallel systems |
US10353768B2 (en) * | 2015-06-29 | 2019-07-16 | Hitachi, Ltd. | Computer system and computer system control method |
WO2017177035A1 (en) * | 2016-04-07 | 2017-10-12 | IDfusion, LLC | Identity based behavior measurement architecture |
-
2015
- 2015-12-04 WO PCT/US2015/063945 patent/WO2017095435A1/en active Application Filing
- 2015-12-04 US US15/756,055 patent/US10686589B2/en active Active
- 2015-12-04 EP EP15909949.8A patent/EP3384406A4/en not_active Withdrawn
- 2015-12-04 CN CN201580080542.7A patent/CN107615273A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210260A1 (en) * | 2004-03-17 | 2005-09-22 | Ramarathnam Venkatesan | Unimodular matrix-based message authentication codes (MAC) |
CN101061661A (zh) * | 2004-10-20 | 2007-10-24 | 思科技术公司 | 加密方法 |
US20110283085A1 (en) * | 2010-05-17 | 2011-11-17 | Oracle International Corporation | System and method for end-to-end data integrity in a network file system |
US20130262421A1 (en) * | 2012-04-01 | 2013-10-03 | Microsoft Corporation | Checksum and hashing operations resilient to malicious input data |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的***及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363000A (zh) * | 2019-07-10 | 2019-10-22 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN110363000B (zh) * | 2019-07-10 | 2023-11-17 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN117555903A (zh) * | 2024-01-05 | 2024-02-13 | 珠海星云智联科技有限公司 | 一种数据处理方法、计算机设备及介质 |
CN117555903B (zh) * | 2024-01-05 | 2024-04-09 | 珠海星云智联科技有限公司 | 一种数据处理方法、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180254888A1 (en) | 2018-09-06 |
US10686589B2 (en) | 2020-06-16 |
EP3384406A4 (en) | 2018-11-14 |
WO2017095435A1 (en) | 2017-06-08 |
EP3384406A1 (en) | 2018-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107615273A (zh) | 组合数据块的散列 | |
US10838844B2 (en) | Static feature extraction from structured files | |
US10915664B2 (en) | Data masking systems and methods | |
US9720943B2 (en) | Columnar table data protection | |
US20190158296A1 (en) | Redactable document signatures | |
US8850583B1 (en) | Intrusion detection using secure signatures | |
CN106372500B (zh) | 用于确定代码片段执行完整性的方法及提供程序代码抽象表示的方法 | |
CN106971098A (zh) | 一种防重打包的方法及其装置 | |
JP6844696B2 (ja) | 認証タグ生成装置、認証タグ検証装置、方法及びプログラム | |
CN107315539B (zh) | 一种数据存储方法以及数据提取方法 | |
CN105814833A (zh) | 安全的数据变换 | |
JP6750674B2 (ja) | プログラム分析システム、プログラム分析方法、及び、コンピュータ・プログラム | |
US20230179401A1 (en) | Data validation techniques for sensitive data migration across multiple platforms | |
CN115001659A (zh) | 网页数据加密方法、装置、设备及存储介质 | |
Balasubramanian | Describing codimension two defects | |
CN108664796A (zh) | 一种so文件保护方法及装置 | |
CN114201176A (zh) | 一种智能合约编译匹配方法、装置、设备和存储介质 | |
CN103840935B (zh) | 开放***之函式库的加密及解密方法 | |
CN116235174A (zh) | 用于执行加密算法的设备和方法 | |
WO2021074272A1 (en) | Customizable delimited text compression framework | |
CN117708878B (zh) | 基于oram带隐私保护功能的版权信息可信检索方法 | |
Russek et al. | Fpga-accelerated algorithm for the regular expression matching system | |
Chuang et al. | Towards a Utopia of Dataset Sharing: A Case Study on Machine Learning-based Malware Detection Algorithms | |
CN117391862A (zh) | 具有防篡改的资产数据管理***、方法及计算机存储介质 | |
CN116522390A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180119 |
|
WD01 | Invention patent application deemed withdrawn after publication |