← Back to Patent Explorer
US5757913A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for data authentication in a data communication environment

Assignee: International Business Machines Corp
•
Filing: 1993-04-23
•
Granted: 1998-05-26
•
Expires: 2013-04-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for providing data authentication, within a data communication environment, in a manner which is simple, fast, and provably secure. A data message to be sent is partitioned into data blocks. Each data block is combined with a block index to create a word. A pseudo-random function is applied to each word to create a plurality of enciphered data strings. An identifying header, comprising the identity of the sender and a counter value, is also enciphered using a pseudo-random function. These enciphered data strings and header are logically combined to create a tag. As the enciphering of a particular word occurs independent of the other words, each block can be enciphered independently of the others. The method and system can thus be performed and structured in either a parallel or pipelined fashion. A receiving component or system generates a second tag which can then be compared with the transmitted tag to determine message authentication.

Inventors

  • 👤 Mihir Bellare
  • 👤 Roch Andre Guerin
  • 👤 Phillip Walder Rogaway

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 04:03
CPC Classifications
H; H04; H04L; H04L9/00; H04L9/32; H04L9/3236; H04L9/3242; H04L9/06; H04L9/0618; H04L9/0625; H04L9/0643; H04L9/3297; H04L2209/00; H04L2209/12; H04L2209/125; H04L2209/20

Claims Analysis

Total Claims: 55
Claim 1
Independent Claim 83 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to each said word to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 2
Independent Claim 83 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to each said word to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 3
Dependent Claim 15 words
The method of claim 1 wherein said pseudo-random function is a data encryption standard algorithm.
Claim 4
Dependent Claim 12 words
The method of claim 1 wherein said blocks are of fixed length.
Claim 5
Dependent Claim 15 words
The method of claim 1 wherein said step of combining comprises a logical exclusive-or operation.
Claim 6
Dependent Claim 17 words
The method of claim 1 wherein said tag is truncated or otherwise reduced to a given length.
Claim 7
Dependent Claim 11 words
The method of claim 1 wherein said pseudo-random function is multi-staged.
Claim 8
Dependent Claim 18 words
The method of claim 6 wherein a plurality of said words are pipelined to said multi-staged pseudo-random function.
Claim 9
Dependent Claim 21 words
The method of claim 1 wherein a plurality of said words are concurrently presented to a plurality of said pseudo-random functions.
Claim 10
Dependent Claim 24 words
The method of claim 1 further comprising the step of combining at least said tag with said identifier to create a message authentication code.
Claim 11
Dependent Claim 25 words
The method of claim 9 further comprising the step of combining at least the data and the message authentication code to create a data packet.
Claim 12
Independent Claim 93 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) a header for said data to create a plurality of enciphered words; and combining said plurality of enciphered words to create a message authentication code.
Claim 13
Independent Claim 93 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) a header for said data to create a plurality of enciphered words; and combining said plurality of enciphered words to create a message authentication code.
Claim 14
Dependent Claim 15 words
The method of claim 11 wherein said pseudo-random function is a data encryption standard algorithm.
Claim 15
Dependent Claim 12 words
The method of claim 11 wherein said blocks are of fixed length.
Claim 16
Dependent Claim 15 words
The method of claim 11 wherein said step of combining comprises a logical exclusive-or operation.
Claim 17
Dependent Claim 14 words
The method of claim 11 wherein said header comprises an identifier and a counter.
Claim 18
Dependent Claim 17 words
The method of claim 11 wherein said tag is truncated or otherwise reduced to a given length.
Claim 19
Dependent Claim 11 words
The method of claim 11 wherein said pseudo-random function is multi-staged.
Claim 20
Dependent Claim 18 words
The method of claim 17 wherein a plurality of said words are pipelined to said multi-staged pseudo-random function.
Claim 21
Dependent Claim 21 words
The method of claim 11 wherein a plurality of said words are concurrently presented to a plurality of said pseudo-random functions.
Claim 22
Dependent Claim 21 words
The method of claim 11 further comprising combining at least said tag with said identifier to create a message authentication code.
Claim 23
Dependent Claim 25 words
The method of claim 20 further comprising the step of combining at least the data and the message authentication code to create a data packet.
Claim 24
Independent Claim 142 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to each said word to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least said data and said tag to create a data packet; transmitting said data packet via said nonsecure communication channel; receiving the data packet; extracting the tag and the data from the data packet; generating a second tag from at least the extracted data and a local key; and comparing the extracted tag and the second tag to determine data authenticity of the data packet.
Claim 25
Independent Claim 142 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to each said word to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least said data and said tag to create a data packet; transmitting said data packet via said nonsecure communication channel; receiving the data packet; extracting the tag and the data from the data packet; generating a second tag from at least the extracted data and a local key; and comparing the extracted tag and the second tag to determine data authenticity of the data packet.
Claim 26
Independent Claim 70 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; concatenating to each of said blocks a block identifier to create a word; applying a pseudo-random function to each said word to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 27
Independent Claim 70 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; concatenating to each of said blocks a block identifier to create a word; applying a pseudo-random function to each said word to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 28
Dependent Claim 15 words
The method of claim 23 wherein said block identifier is based upon a block index.
Claim 29
Dependent Claim 11 words
The method of claim 23 wherein said pseudo-random function is multi-staged.
Claim 30
Dependent Claim 18 words
The method of claim 25 wherein a plurality of said words are pipelined to said multi-staged pseudo-random function.
Claim 31
Independent Claim 154 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least the data and the tag to create a data packet; transmitting the data packet via said nonsecure communication channel; receiving a received data packet; extracting received data and a received tag from the received data packet; generating a local tag from at least the received data and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 32
Independent Claim 154 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least the data and the tag to create a data packet; transmitting the data packet via said nonsecure communication channel; receiving a received data packet; extracting received data and a received tag from the received data packet; generating a local tag from at least the received data and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 33
Independent Claim 180 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least the data, the tag, a sender identity and a time variant parameter to create a data packet; transmitting the data packet via said nonsecure communication channel; receiving a received data packet; decomposing the received data packet to extract received data, a received tag, a received sender identity and a received time variant parameter; generating a local tag from at least the received data, the received sender identity, the received time variant parameter and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 34
Independent Claim 180 words
A method for secure transfer of data using a nonsecure communication channel, comprising the steps of: partitioning said data into a plurality of blocks; for each of said blocks, encoding said block to create a word that represents both a value of said block and an identifier of said block; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; combining said plurality of enciphered words to create a tag; combining at least the data, the tag, a sender identity and a time variant parameter to create a data packet; transmitting the data packet via said nonsecure communication channel; receiving a received data packet; decomposing the received data packet to extract received data, a received tag, a received sender identity and a received time variant parameter; generating a local tag from at least the received data, the received sender identity, the received time variant parameter and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 35
Dependent Claim 30 words
The method of claim 28 wherein said step of comparing further comprises comparing said received time variant parameter to a local time variant parameter to further determine said data authenticity.
Claim 36
Dependent Claim 15 words
The method of claim 29 wherein said received time variant parameter comprises a received counter.
Claim 37
Dependent Claim 15 words
The method of claim 29 wherein said received time variant parameter comprises a time stamp.
Claim 38
Dependent Claim 15 words
The method of claim 29 wherein said received time variant parameter comprises a sequence number.
Claim 39
Independent Claim 78 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; concatenating to each of said blocks a block identifier to create a word; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 40
Independent Claim 78 words
A method for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising the steps of: partitioning said data into a plurality of blocks; concatenating to each of said blocks a block identifier to create a word; applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; and combining said plurality of enciphered words to create a tag.
Claim 41
Independent Claim 87 words
A method for determining authenticity of a received data packet, comprising the steps of: extracting a plurality of blocks of received data, a received tag and a received time variant parameter from the received data packet; generating a local tag from a plurality of enciphered words each representing a respective one of the plurality of blocks of the received data, the received time variant parameter and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 42
Independent Claim 87 words
A method for determining authenticity of a received data packet, comprising the steps of: extracting a plurality of blocks of received data, a received tag and a received time variant parameter from the received data packet; generating a local tag from a plurality of enciphered words each representing a respective one of the plurality of blocks of the received data, the received time variant parameter and a local key; and comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 43
Dependent Claim 15 words
The method of claim 34 wherein said received time variant parameter comprises a received counter.
Claim 44
Dependent Claim 15 words
The method of claim 34 wherein said received time variant parameter comprises a time stamp.
Claim 45
Dependent Claim 15 words
The method of claim 34 wherein said received time variant parameter comprises a sequence number.
Claim 46
Dependent Claim 15 words
The method of claim 34 wherein said received data packet further comprises a sender identity.
Claim 47
Dependent Claim 19 words
The method of claim 38 further comprising obtaining said local key from a local table using said sender identity.
Claim 48
Independent Claim 89 words
A system for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising: means for partitioning said data into a plurality of blocks; means for encoding each of said blocks to create a word that represents both a value of each of said blocks and an identifier of each of said blocks; means for applying a pseudo-random function to each said word to create a plurality of enciphered words; and means for combining said plurality of enciphered words to create a tag.
Claim 49
Independent Claim 89 words
A system for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising: means for partitioning said data into a plurality of blocks; means for encoding each of said blocks to create a word that represents both a value of each of said blocks and an identifier of each of said blocks; means for applying a pseudo-random function to each said word to create a plurality of enciphered words; and means for combining said plurality of enciphered words to create a tag.
Claim 50
Independent Claim 83 words
A system for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising: means for partitioning said data into a plurality of blocks; means for combining with each of said blocks a block identifier to create a word; means for applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; and means for combining said plurality of enciphered words to create a tag.
Claim 51
Independent Claim 83 words
A system for determining an authentication tag for use in conjunction with transfer of data using a communication channel, comprising: means for partitioning said data into a plurality of blocks; means for combining with each of said blocks a block identifier to create a word; means for applying a pseudo-random function to (i) each said word and (ii) an identifier for said data to create a plurality of enciphered words; and means for combining said plurality of enciphered words to create a tag.
Claim 52
Independent Claim 90 words
A system for determining authenticity of a received data packet, comprising: means for extracting a plurality of blocks of received data, a received tag and a received time variant parameter from the received data packet; means for generating a local tag from a plurality of enciphered words each representing a respective one of the plurality of blocks of the received data, the received time variant parameter and a local key; and means for comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 53
Independent Claim 90 words
A system for determining authenticity of a received data packet, comprising: means for extracting a plurality of blocks of received data, a received tag and a received time variant parameter from the received data packet; means for generating a local tag from a plurality of enciphered words each representing a respective one of the plurality of blocks of the received data, the received time variant parameter and a local key; and means for comparing the received tag and the local tag to determine data authenticity of the received data packet.
Claim 54
Dependent Claim 15 words
The system of claim 42 wherein said received data packet further comprises a sender identity.
Claim 55
Dependent Claim 21 words
The system of claim 43 further comprising means for accessing said local key from a local table using said sender identity.

References Cited (Backward Citations)

US4349695A Cited
US4747050A Cited
US4890323A Cited
US4933969A Cited
US4965827A Cited
US4881264A Cited
US4908861A Cited
US4969189A Cited
US4933869A Cited
US5007089A Cited
US5010572A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-25 2001-11-24 2002-05-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-25 2005-11-24 2006-05-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-25 2009-11-24 2010-05-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag