Keyed-hash message authentication code processors, methods, systems, and instructions
US-2016380772-A1 · Dec 29, 2016 · US
US2019109715A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2019109715-A1 |
| Application number | US-201715726608-A |
| Country | US |
| Kind code | A1 |
| Filing date | Oct 6, 2017 |
| Priority date | Oct 6, 2017 |
| Publication date | Apr 11, 2019 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Provided is a method and system for producing message authentication tags and a method and system for producing hash values using bit-mixers. The methods include producing a message authentication or hash value by obtaining a message; segmenting, padding by an electronic processor, the message into a number of equal sized message blocks comprising a first message block, one or more subsequent message blocks, and a final message block; performing, by the electronic processor, a first bit-mixing operation on the first message block with an initialization value; performing, by the electronic processor, subsequent bit-mixing operations on the one or more subsequent message blocks and the final message block with a previous message block; and producing, by the electronic processor, the message authentication tag based on the first bit-mixing operation and the subsequent bit-mixing operations, employing a secret key material.
Opening claim text (preview).
What is claimed is: 1 . A computer-implemented method for producing a message authentication tag, the method comprising: obtaining a message; segmenting, by an electronic processor, the message into a number of equal sized message blocks comprising a first message block, one or more subsequent message blocks, and a final message block; performing, by the electronic processor, a first bit-mixing operation on the first message block with an initialization value; performing, by the electronic processor, subsequent bit-mixing operations on the one or more subsequent message blocks and the final message block with a previous message block; and producing, by the electronic processor, the message authentication tag based on the first bit-mixing operation and the subsequent bit-mixing operations. 2 . The method of claim 1 , wherein the message is a plaintext message or an encrypted message. 3 . The method of claim 1 , further comprising encrypting each of the equal sized message blocks with a block encryption algorithm to produce a number of encrypted message blocks. 4 . The method of claim 1 , wherein the first message block, the one or more subsequent message blocks, and the final message block are encrypted message blocks. 5 . The method of claim 1 , further comprising sending the message authentication tag with the message to a receiver, wherein the message is in plain text. 6 . The method of claim 1 , further comprising sending the message authentication tag with the message to a receiver, wherein the message is encrypted. 7 . The method of claim 1 , wherein the first bit-mixing operation and the subsequent bit-mixing operations are performed by a bit-mixer construction based on a double-mix Feistel network, a substitution-permutation network, an exclusive OR (XOR) tree, or a parallel combination of two or more bit-mixer constructions. 8 . The method of claim 1 , wherein the first bit-mixing operation and the subsequent bit-mixing operations are performed using a key material. 9 . The method of claim 8 , wherein the key material is kept secret and the message authentication tag is a message authentication code. 10 . The method of claim 1 , further comprising: performing a final bit-mixing operation with an output of based on the final message block and a concatenation of a length of authentication data and a length of encrypted text blocks; and performing an exclusive OR operation with an output of the final bit-mixing operation and an encrypted null counter that is encrypted using a block encryption algorithm, under a secret key. 11 . The method of claim 1 , further comprising padding the final message block to make the message blocks of equal size. 12 . A computer-implemented method for producing a hash value for a message, the method comprising: obtaining the message; segmenting, by an electronic processor, the message into a number of equal sized message blocks comprising a first message block, one or more subsequent message blocks, and a final message block; performing, by the electronic processor, a first bit-mixing operation on the first message block with an initialization value; performing, by the electronic processor, subsequent bit-mixing operations on the one or more subsequent message blocks and the final message block with a previous message block; and producing, by the electronic processor, the hash value based on the first bit-mixing operation and the subsequent bit-mixing operations. 13 . The method of claim 12 , wherein the message is a plaintext message, an encrypted message, or arbitrary other type of data in electronic format. 14 . The method of claim 12 , wherein the first bit-mixing operation and the subsequent bit-mixing operations use key material that is public. 15 . The method of claim 12 , further comprising performing a final bit-mixing operation on the final message block, the final bit-mixing operation being different from the first bit-mixing operation and the subsequent bit-mixing operations performed in computing the hash value, wherein a difference is a construction of a bit-mixer used in the first bit-mixing operation and the subsequent bit-mixing operations, a key material, or both. 16 . The method of claim 12 , further comprising encrypting each of the equal sized message blocks with a block encryption algorithm to produce a number of encrypted message blocks. 17 . The method of claim 12 , wherein the first message block, the one or more subsequent message blocks, and the final message block are encrypted message blocks. 18 . The method of claim 12 , wherein the first bit-mixing operation and the subsequent bit-mixing operations are performed by a bit-mixer construction based on double-mix Feistel network, a substitution-permutation network, an XOR tree, or a parallel combination of two or more bit-mixer constructions. 19 . A computer system comprising: an electronic processor; a non-transitory computer readable medium storing instructions that when executed by the electronic processor, perform a method for producing a message authentication tag, the method comprising: obtaining a message; segmenting the message into a number of equal sized message blocks comprising a first message block, one or more subsequent message blocks, and a final message block; performing a first bit-mixing operation on the first message block with an initialization value; performing subsequent bit-mixing operations on the one or more subsequent message blocks and the final message block with a previous message block; and producing the message authentication tag based on the first bit-mixing operation and the subsequent bit-mixing operations. 20 . The computer system of claim 19 , wherein the first bit-mixing operation and the subsequent bit-mixing operations are performed by a bit-mixer construction based on double-mix Feistel network, a substitution-permutation network, an XOR tree, or a parallel combination of two or more bit-mixer constructions. 21 . The computer system of claim 19 , wherein the electronic processor is further operable to perform the method comprising: performing a final bit-mixing operation with an output of based on the final message block and a concatenation of a length of authentication data and a length of encrypted text blocks; and performing an exclusive OR operation with an output of the final bit-mixing operation and an encrypted null counter that is encrypted using a block encryption algorithm. 22 . A computer system comprising: an electronic processor; a non-transitory computer readable medium storing instructions that when executed by the electronic processor, perform a method for producing a hash value, the method comprising: obtaining a message; segmenting the message into a number of equal sized message blocks comprising a first message block, one or more subsequent message blocks, and a final message block; performing a first bit-mixing operation on the first message block with an initialization value; performing subsequent bit-mixing operations on the one or more subsequent message blocks and the final message block with processed previous message block; and producing the hash value based on the first bit-mixing operation and the subsequent bit-mixing operations. 23 . The computer system of claim 22 , wherein the first bit-mixing operation and the subsequent bit-mixing operations are performed by a bit-mixer construction based on d
Hash functions, e.g. MD5, SHA, HMAC or f9 MAC · CPC title
received data contents, e.g. message integrity · CPC title
involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC · CPC title
Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM] · CPC title
Generation of secret information including derivation or calculation of cryptographic keys or passwords · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.