System and method for implementing a hash algorithm
First Claim
Patent Images
1. A system generating a message digest, via a computer, said system comprising:
- a memory storage location for receiving a block of data; and
a processor for processing said block of data to acquire said message digest, said processing of said block of data includes (i) evaluating said block of data at cycle=t in terms of cycle=(t−
x), wherein x is greater than or equal to 2, and (ii) skipping one cycle per iteration in order to reduce a total number of cycles utilized for said processing of said block of data;
wherein said block of data is 512-bits;
wherein said message digest comprises 160-bits;
wherein said processor performs the following;
E(t)=C(t−
2);
D(t)=S30 [B(t−
2)];
C(t)=S30 [A(t−
2)];
B(t)=S5(A(t−
2))+ft(B(t−
2),C(t−
2),D(t−
2))+E(t−
2)+Wt−
1+Kt−
1; and
where A, B, C, D, E and W are words of a message, K is a constant word, f is a logical function, Sx represents a value circularly rotated by x bits;
said processor generating said message digest providing a message fingerprint for said data.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for generating a message digest comprising: receiving a block of data and processing the block of data to achieve a message digest, the processing of the block of data including evaluating the block of data at time (t) in terms of time (t−x), wherein x is greater than or equal to 2.
20 Citations
12 Claims
-
1. A system generating a message digest, via a computer, said system comprising:
-
a memory storage location for receiving a block of data; and a processor for processing said block of data to acquire said message digest, said processing of said block of data includes (i) evaluating said block of data at cycle=t in terms of cycle=(t−
x), wherein x is greater than or equal to 2, and (ii) skipping one cycle per iteration in order to reduce a total number of cycles utilized for said processing of said block of data;wherein said block of data is 512-bits; wherein said message digest comprises 160-bits; wherein said processor performs the following;
E(t)=C(t−
2);
D(t)=S30 [B(t−
2)];
C(t)=S30 [A(t−
2)];
B(t)=S5(A(t−
2))+ft(B(t−
2),C(t−
2),D(t−
2))+E(t−
2)+Wt−
1+Kt−
1; andwhere A, B, C, D, E and W are words of a message, K is a constant word, f is a logical function, Sx represents a value circularly rotated by x bits; said processor generating said message digest providing a message fingerprint for said data.
-
-
2. A system generating a message digest, via a computer, said system comprising:
-
a memory storage location for receiving a block of data; and a processor for processing said block of data to acquire said message digest, said processing of said block of data includes (i) evaluating said block of data at cycle=t in terms of cycle=(t−
x), wherein x is greater than or equal to 2, and (ii) skipping one cycle per iteration in order to reduce a total number of cycles utilized for said processing of said block of data;wherein said block of data is 512-bits; wherein said message digest comprises 128-bits; wherein said processor performs the following; where A, B, C, D, E and W are words of a message, F is a function, M is a message block, T is a value from a table and S represents a shifting function; said processor generating said message digest providing a message fingerprint for said data.
-
-
3. A system generating a message digest, via a computer, said system comprising:
-
a memory storage location for receiving a block of data; and a processor for processing said block of data to acquire said message digest, said processing of said block of data includes; if a message is less than m bits, then padding said message; dividing said message into n words, said n words further comprising W[0] through W[n]; performing the following; setting A equal to H0, setting B equal to H1, setting C equal to H2, setting D equal to H3, setting E equal to H4; establishing a counter for storing a value used in performing iteration, said counter being referred to as t; setting t to an initial value; setting a terminal value to an initial value; for t not equal to said terminal value, iteratively performing steps a–
e;a. setting S equal to (T AND MASK); b. if t is greater than or equal to a first defined value, then setting W[t]equal to a the value of a first shiftbit operation; c. setting TEMP equal to the value of a second shiftbit operation+f(B,C,D)+E+W[s]+Kt, wherein Kt further comprises a constant value; d. performing the following; setting E equal to D, setting D equal to C, setting C equal to the value of a third shiftbit operation, setting B equal to A, setting A equal to TEMP; e. incrementing t; and performing the following; setting H0 equal to H0+A, setting H1 equal to H1+B, setting H2 equal to H2+C, setting H3 equal to H3+D, setting H4 equal to H4+E; said processor generating said message digest providing a message fingerprint for said data. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification