IP Library Patent Application 14494654
Patent Application
App. No. 14/494,654

COMPUTATION OF HASH VALUE FOR A MESSAGE BASED ON RECEIVED PORTIONS OF THE MESSAGE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/494,654
Abstract

Hash values for a message may be computed by a receiving computer as portions of the message are received. In one embodiment, an intermediate hash value is computed for a portion of the message and a new intermediate hash value computed for each received portion of the message based on a previous intermediate hash value and the contents of the new received portion. When all portions of the message have been received, the final calculated intermediate hash value is the hash value for the entire message. In one embodiment, such a method of calculating a hash value may be based on the SHA-256 hash algorithm or other known or later developed hash algorithms. In one embodiment, the hash calculation for portions of received messages may be applied to keyed-hashing for message authentication (HMAC).

Claims (66)

1 . A method, comprising:

receiving an authentication key for authenticating a communications session;

receiving a first plurality of bits representing a portion of a message;

computing a first hash value based, at least in part, on a portion of the first plurality of bits and the authentication key;

receiving a second plurality of bits representing a second portion of the message; and

computing a second hash value based, at least in part, on the first hash value and at least a portion of the second plurality of bits.

2 . The method of claim 1 , further comprising:

determining whether a length of the first plurality of bits exceeds a threshold length;

when the length exceeds the threshold length, then computing the first hash value; and

when the length does not exceed the threshold length, receiving an additional portion of the first plurality of bits before computing the first hash value.

3 . The method of claim 1 , further comprising:

determining whether the first plurality of bits and the second plurality of bits comprise an entirety of the message;

when the first and second plurality of bits do not comprise the entirety of the message, receiving a third plurality of bits representing a third portion of the message; and

when the first and second plurality of bits do comprise the entirety of the message, returning the second hash value as a final hash value for the message.

4 . The method of claim 3 , further comprising, when the third plurality of bits are less than a threshold number of bits, padding the third plurality of bits with a padding digit to reach the threshold number of bits.

5 . The method of claim 1 , further comprising:

initializing a previous hash value to an initialization value, wherein the step of computing the first hash value is based, at least in part, on the previous hash value; and

updating the previous hash value with the computed first hash value before computing the second hash value, wherein the step of computing the second hash value comprises retrieving the stored previous hash value.

6 . The method of claim 1 , further comprising:

storing the first plurality of bits in a buffer after receiving the first plurality of bits; and

removing the portion of the first plurality of bits from the buffer after computing the first hash value.

7 . The method of claim 1 , wherein the step of computing the first hash value comprises computing the first hash value using a SHA-256 algorithm.

8 . A computer program product, comprising:

a non-transitory computer readable medium comprising code to perform the steps of:

receiving an authentication key for authenticating a communications session;

receiving a first plurality of bits representing a portion of a message;

computing a first hash value based, at least in part, on a portion of the first plurality of bits and the authentication key;

receiving a second plurality of bits representing a second portion of the message; and

computing a second hash value based, at least in part, on the first hash value and at least a portion of the second plurality of bits.

9 . The computer program product of claim 8 , wherein the medium further comprises code to perform the steps of:

determining whether a length of the first plurality of bits exceeds a threshold length;

when the length exceeds the threshold length, then computing the first hash value; and

when the length does not exceed the threshold length, receiving an additional portion of the first plurality of bits before computing the first hash value.

10 . The computer program product of claim 8 , wherein the medium further comprises code to perform the steps of:

determining whether the first plurality of bits and the second plurality of bits comprise an entirety of the message;

when the first and second plurality of bits do not comprise the entirety of the message, receiving a third plurality of bits representing a third portion of the message; and

when the first and second plurality of bits do comprise the entirety of the message, returning the second hash value as a final hash value for the message.

11 . The computer program product of claim 10 , wherein the medium further comprises code to perform the step of padding, when the third plurality of bits are less than a threshold number of bits, the third plurality of bits with a padding digit to reach the threshold number of bits.

12 . The computer program product of claim 8 , wherein the medium further comprises code to perform the steps of:

initializing a previous hash value to an initialization value, wherein the step of computing the first hash value is based, at least in part, on the previous hash value; and

updating the previous hash value with the computed first hash value before computing the second hash value, wherein the step of computing the second hash value comprises retrieving the stored previous hash value.

13 . The computer program product of claim 8 , wherein the medium further comprises code to perform the steps of:

storing the first plurality of bits in a buffer after receiving the first plurality of bits; and

removing the portion of the first plurality of bits from the buffer after computing the first hash value.

14 . The computer program product of claim 8 , wherein the step of computing the first hash value comprises computing the first hash value using a SHA-256 algorithm.

15 . An apparatus, comprising:

a memory;

a processor coupled to the memory, wherein the processor is further configured to perform the steps of:

receiving an authentication key for authenticating a communications session;

receiving a first plurality of bits representing a portion of a message;

computing a first hash value based, at least in part, on a portion of the first plurality of bits and the authentication key;

receiving a second plurality of bits representing a second portion of the message; and

computing a second hash value based, at least in part, on the first hash value and at least a portion of the second plurality of bits.

16 . The apparatus of claim 15 , wherein the processor is further configured to perform the steps of:

determining whether a length of the first plurality of bits exceeds a threshold length;

when the length exceeds the threshold length, then computing the first hash value; and

when the length does not exceed the threshold length, receiving an additional portion of the first plurality of bits before computing the first hash value.

17 . The apparatus of claim 15 , wherein the processor is further configured to perform the steps of:

determining whether the first plurality of bits and the second plurality of bits comprise an entirety of the message;

when the first and second plurality of bits do not comprise the entirety of the message, receiving a third plurality of bits representing a third portion of the message; and

when the first and second plurality of bits do comprise the entirety of the message, returning the second hash value as a final hash value for the message.

18 . The apparatus of claim 17 , wherein the processor is further configured to perform the step of padding, when the third plurality of bits are less than a threshold number of bits, the third plurality of bits with a padding digit to reach the threshold number of bits.

19 . The apparatus of claim 15 , wherein the processor is further configured to perform the steps of:

storing the first plurality of bits in a buffer after receiving the first plurality of bits; and

removing the portion of the first plurality of bits from the buffer after computing the first hash value.

20 . The apparatus of claim 15 , wherein the step of computing the first hash value comprises computing the first hash value using a SHA-256 algorithm.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY INTEREST Recorded Nov 4, 2014
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 034096/0984 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2014
From: CAMPBELL, RAYMOND
To: UNISYS CORPORATION
Reel/Frame 033812/0388 →