Blame fip180-1.html

Packit Service b886ba
<html><body bgcolor="FFFFFF"><title>FIPS 180-1 - Secure Hash Standard </TITLE>
Packit Service b886ba
Packit Service b886ba
Packit Service b886ba

Packit Service b886ba
<center>Return to the FIPS
Packit Service b886ba
Home Page</CENTER>
Packit Service b886ba

Packit Service b886ba
-->
Packit Service b886ba
FIPS PUB 180-1
Packit Service b886ba
Supersedes FIPS PUB 180
Packit Service b886ba
1993 May 11

Packit Service b886ba
Packit Service b886ba
<center>Federal Information
Packit Service b886ba
Processing Standards Publication 180-1
Packit Service b886ba

Packit Service b886ba
1995 April 17
</CENTER>
Packit Service b886ba
<center>Announcing the Standard for</CENTER>
Packit Service b886ba

Packit Service b886ba
<center>

SECURE HASH STANDARD

</CENTER>
Packit Service b886ba
<menu>
Packit Service b886ba
<font size=2>(The Foreword, Abstract, and
Packit Service b886ba
Key Words
can be found at the end of this document.) </font>
Packit Service b886ba
</MENU>
Packit Service b886ba
Packit Service b886ba
Federal Information Processing Standards Publications (FIPS PUBS)
Packit Service b886ba
are issued by the National Institute of Standards and Technology after
Packit Service b886ba
approval by the Secretary of Commerce pursuant to Section 111(d) of the
Packit Service b886ba
Federal Property and Administrative Services Act of 1949, as amended by the
Packit Service b886ba
Computer Security Act of 1987, Public Law 100-235.
Packit Service b886ba

Packit Service b886ba
Name of Standard:  Secure Hash Standard.
Packit Service b886ba


Packit Service b886ba
Category of Standard:  Computer Security.
Packit Service b886ba


Packit Service b886ba
Explanation:  This Standard specifies a Secure Hash Algorithm,
Packit Service b886ba
SHA-1, for computing a condensed representation of a message or a data file.
Packit Service b886ba
When  a message of any length < 2<sup><font size=1>64</font></sup> bits is
Packit Service b886ba
input, the SHA-1 produces a 160-bit  output called a message digest.  The
Packit Service b886ba
message digest can then be input to the Digital Signature Algorithm (DSA)
Packit Service b886ba
which generates or verifies the  signature for the message.  Signing the
Packit Service b886ba
message
Packit Service b886ba
digest rather than the  message often improves the efficiency of the process
Packit Service b886ba
because the message  digest is usually much smaller in size than the message. 
Packit Service b886ba
The same hash  algorithm must be used by the verifier of a digital signature as
Packit Service b886ba
was used  by the creator of the digital signature.  
Packit Service b886ba


Packit Service b886ba
The SHA-1 is called secure because it is computationally infeasible to find 
Packit Service b886ba
a message which corresponds to a given message digest, or to find two 
Packit Service b886ba
different messages which produce the same message digest.  Any change to a 
Packit Service b886ba
message in transit will, with very high probability, result in a different 
Packit Service b886ba
message digest, and the signature will fail to verify.  SHA-1 is a technical 
Packit Service b886ba
revision of SHA (FIPS 180).  A circular left shift operation has been added 
Packit Service b886ba
to the specifications in section 7, line b, page 9 of FIPS 180 and its 
Packit Service b886ba
equivalent in section 8, line c, page 10 of FIPS 180.  This revision improves
Packit Service b886ba
the security provided by this standard.  The SHA-1 is based on principles
Packit Service b886ba
similar to those used by Professor Ronald L. Rivest of MIT when designing 
Packit Service b886ba
the MD4 message digest algorithm ("The MD4 Message Digest Algorithm," 
Packit Service b886ba
Advances in Cryptology - CRYPTO '90 Proceedings, Springer-Verlag, 1991, 
Packit Service b886ba
pp. 303-311), and is closely modelled after that algorithm.
Packit Service b886ba

Packit Service b886ba
<center>
Packit Service b886ba
Figure 1:  Using the SHA-1 with the DSA</CENTER>

Packit Service b886ba
Approving Authority:  Secretary of Commerce.
Packit Service b886ba


Packit Service b886ba
Maintenance Agency:  U.S. Department of Commerce, National
Packit Service b886ba
Institute of  Standards and Technology, Computer Systems Laboratory.
Packit Service b886ba


Packit Service b886ba
Applicability:  This standard is applicable to all Federal departments
Packit Service b886ba
and agencies for the protection of unclassified information that is not subject
Packit Service b886ba
to section 2315 of Title 10, United States Code, or section 3502(2) of Title
Packit Service b886ba
44, United States Code.  This standard is required for use with the Digital
Packit Service b886ba
Signature Algorithm (DSA) as specified in the Digital Signature Standard
Packit Service b886ba
(DSS) and whenever a secure hash algorithm is required for Federal applica-
Packit Service b886ba
tions.  Private and commercial organizations are encouraged to adopt and use
Packit Service b886ba
this standard. 
Packit Service b886ba


Packit Service b886ba
Applications:  The SHA-1 may be used with the DSA in electronic
Packit Service b886ba
mail, electronic funds transfer, software distribution, data storage, and other 
Packit Service b886ba
applications which require data integrity assurance and data origin 
Packit Service b886ba
authentication.  The SHA-1 may also be used whenever it is necessary to 
Packit Service b886ba
generate a condensed version of a message.
Packit Service b886ba


Packit Service b886ba
Implementations:  The SHA-1 may be implemented in software,
Packit Service b886ba
firmware, hardware, or any combination thereof.  Only implementations of
Packit Service b886ba
the
Packit Service b886ba
SHA-1 that are validated by NIST will be considered as complying with this 
Packit Service b886ba
standard.  Information about the requirements for validating
Packit Service b886ba
implementations
Packit Service b886ba
of this standard can be obtained from the National Institute of Standards 
Packit Service b886ba
and Technology, Computer Systems Laboratory, Attn: SHS Validation, 
Packit Service b886ba
Gaithersburg, MD 20899.
Packit Service b886ba


Packit Service b886ba
Export Control:  Implementations of this standard are subject to
Packit Service b886ba
FederalGovernment export controls as specified in Title 15, Code of Federal 
Packit Service b886ba
Regulations, Parts 768 through 799.  Exporters are advised to contact the
Packit Service b886ba
Department of Commerce, Bureau of Export Administration for more
Packit Service b886ba
information.
Packit Service b886ba


Packit Service b886ba
Patents:  Implementations of the SHA-1 in this standard may be
Packit Service b886ba
covered by U.S. and foreign patents.
Packit Service b886ba


Packit Service b886ba
Implementation Schedule:  This standard becomes effective October
Packit Service b886ba
2, 1995.
Packit Service b886ba


Packit Service b886ba
Specifications:  Federal Information Processing Standard (FIPS
Packit Service b886ba
180-1) Secure Hash Standard (affixed).
Packit Service b886ba


Packit Service b886ba
Cross Index:
Packit Service b886ba
Packit Service b886ba
a. FIPS PUB 46-2, Data Encryption Standard.
Packit Service b886ba


Packit Service b886ba
b. FIPS PUB 73, Guidelines for Security of Computer Applications.
Packit Service b886ba


Packit Service b886ba
c. FIPS PUB 140-1, Security Requirements for Cryptographic Modules.
Packit Service b886ba


Packit Service b886ba
d. FIPS PUB 186, Digital Signature Standard.
Packit Service b886ba


Packit Service b886ba
e. Federal Informations Resources Management Regulations (FIRMR)
Packit Service b886ba
subpart 201.20.303, Standards, and subpart 201.39.1002, Federal Standards.
Packit Service b886ba

Packit Service b886ba
Objectives:  The objectives of this standard are to:
Packit Service b886ba
Packit Service b886ba
a. Specify the secure hash algorithm required for use with the Digital
Packit Service b886ba
      Signature Standard (FIPS 186)  in the generation and verification of 
Packit Service b886ba
      digital signatures;
Packit Service b886ba


Packit Service b886ba
b. Specify the secure hash algorithm to be used whenever a secure hash
Packit Service b886ba
      algorithm is required for Federal applications; and

Packit Service b886ba
   
Packit Service b886ba
c. Encourage the adoption and use of the specified secure hash algorithm
Packit Service b886ba
      by private and commercial organizations.
Packit Service b886ba

Packit Service b886ba
Qualifications:  While it is the intent of this standard to specify a
Packit Service b886ba
secure hash algorithm, conformance to this standard does not assure that a
Packit Service b886ba
particular implementation is secure.  The responsible authority in each agency
Packit Service b886ba
or department shall assure that an overall implementation provides an
Packit Service b886ba
acceptable level of security.  This standard will be reviewed every five years in
Packit Service b886ba
order to assess its adequacy.
Packit Service b886ba


Packit Service b886ba
Waiver Procedure:  Under certain exceptional circumstances, the
Packit Service b886ba
heads of Federal departments and agencies may approve waivers to Federal
Packit Service b886ba
Information Processing Standards (FIPS).  The head of such agency may
Packit Service b886ba
redelegate such authority only to a senior official designated pursuant to
Packit Service b886ba
section 3506(b) of Title 44, United States Code.  Waiver shall be granted only
Packit Service b886ba
when:
Packit Service b886ba
Packit Service b886ba
a. Compliance with a standard would adversely affect the
Packit Service b886ba
accomplishment of the mission of an operator of a Federal computer system;
Packit Service b886ba
or

Packit Service b886ba
b. Compliance with a standard would cause a major adverse financial
Packit Service b886ba
impact on the operator which is not offset by Government-wide savings.
Packit Service b886ba

Packit Service b886ba
Agency heads may act upon a written waiver request containing the
Packit Service b886ba
information detailed above.  Agency heads may also act without a written
Packit Service b886ba
waiver request when they determine that conditions for meeting the standard
Packit Service b886ba
cannot be met. Agency heads may approve waivers only by a written decision
Packit Service b886ba
which explains the basis on which the agency head made the required
Packit Service b886ba
finding(s).  A copy of each decision, with procurement sensitive or classified
Packit Service b886ba
portions clearly identified, shall be sent to: National Institute of Standards
Packit Service b886ba
and
Packit Service b886ba
Technology; ATTN: FIPS Waiver Decisions, Technology Building, Room
Packit Service b886ba
B-154, Gaithersburg, MD 20899.
Packit Service b886ba


Packit Service b886ba
In addition, notice of each waiver granted and each delegation of authority
Packit Service b886ba
to approve waivers shall be sent promptly to the Committee on Government
Packit Service b886ba
Operations of the House of Representatives and the Committee on
Packit Service b886ba
Government Affairs of the Senate and shall be published promptly in the
Packit Service b886ba
Federal Register.
Packit Service b886ba


Packit Service b886ba
When the determination on a waiver applies to the procurement of equipment
Packit Service b886ba
and/or services, a notice of the waiver determination must be published in
Packit Service b886ba
the Commerce Business Daily as a part of the notice of solicitation for
Packit Service b886ba
offers of an acquisition or, if the waiver determination is made after that
Packit Service b886ba
notice is published, by amendment to such notice.
Packit Service b886ba


Packit Service b886ba
A copy of the waiver, any supporting documents, the document approving the
Packit Service b886ba
waiver and any accompanying documents, with such deletions as the agency is
Packit Service b886ba
authorized and decides to make under 5 United States Code Section 552(b),
Packit Service b886ba
shall be part of the procurement documentation and retained by the agency.
Packit Service b886ba


Packit Service b886ba
Where to Obtain Copies of the Standard:  Copies of this publication
Packit Service b886ba
are for sale by the National Technical Information Service, U.S. Department
Packit Service b886ba
of
Packit Service b886ba
Commerce, Springfield, VA 22161.  When ordering, refer to Federal
Packit Service b886ba
Information Processing Standards Publication 180-1 (FIPSPUB180-1), and
Packit Service b886ba
identify the title. When microfiche is desired, this should be specified.  Prices
Packit Service b886ba
are published by NTIS in current catalogs and other issuances.  Payment may
Packit Service b886ba
be made by check, money order, deposit account or charged to a credit card
Packit Service b886ba
accepted by NTIS.

Packit Service b886ba


Packit Service b886ba
FIPS PUB 180-1
Packit Service b886ba
Supersedes FIPS PUB 180
Packit Service b886ba
1993 May 11
Packit Service b886ba

Packit Service b886ba
<center>Federal Information
Packit Service b886ba
Processing Standards Publication 180-1

Packit Service b886ba
1995 April 17
</CENTER>
Packit Service b886ba
<center>Specifications for</CENTER>
Packit Service b886ba

Packit Service b886ba
<center>

SECURE HASH STANDARD

</CENTER>
Packit Service b886ba


Packit Service b886ba
<center>1. INTRODUCTION</CENTER>
Packit Service b886ba


Packit Service b886ba
The Secure Hash Algorithm (SHA-1) is required for use with the Digital 
Packit Service b886ba
Signature Algorithm (DSA) as specified in the Digital Signature Standard
Packit Service b886ba
(DSS) and whenever a secure hash algorithm is required for federal applica-
Packit Service b886ba
tions.   For a message of length < 2^64 bits, the SHA-1 produces a 160-bit
Packit Service b886ba
condensed representation of the message called a message digest.  The
Packit Service b886ba
message
Packit Service b886ba
digest is used during generation of a signature for the message.  The SHA-1
Packit Service b886ba
is also used to compute a message digest for the received version of the
Packit Service b886ba
message during the process of verifying the signature.  Any change to the
Packit Service b886ba
message in transit will, with very high probability, result in a different
Packit Service b886ba
message digest, and the signature will fail to verify.
Packit Service b886ba


Packit Service b886ba
The SHA-1 is designed to have the following properties: it is computationally
Packit Service b886ba
infeasible to find a message which corresponds to a given message digest, or
Packit Service b886ba
to find two different messages which produce the same message digest.
Packit Service b886ba


Packit Service b886ba
<center>2. BIT STRINGS AND INTEGERS</CENTER>
Packit Service b886ba


Packit Service b886ba
The following terminology related to bit strings and integers will be used:
Packit Service b886ba
Packit Service b886ba
a. A hex digit is an element of the set {0, 1, ... , 9, A, ... , F}. A hex digit
Packit Service b886ba
is the representation of a 4-bit string.  Examples: 7 = 0111, A = 1010.
Packit Service b886ba


Packit Service b886ba
b. A word equals a 32-bit string which may be represented as a sequence
Packit Service b886ba
of 8 hex digits. To convert a word to 8 hex digits each 4-bit string is  converted
Packit Service b886ba
to its hex equivalent as described in (a) above.  Example: 

Packit Service b886ba
<center>
Packit Service b886ba
        1010 0001 0000 0011 1111 1110 0010 0011 = A103FE23.
Packit Service b886ba
</CENTER>
Packit Service b886ba
c. An integer between 0 and 2<sup><font size=1>32</font></sup> - 1
Packit Service b886ba
inclusive may be represented as a word. The least significant four bits of the
Packit Service b886ba
integer are represented by the 
Packit Service b886ba
right-most hex digit of the word representation.  Example: the
Packit Service b886ba
integer 
Packit Service b886ba
291 = 2<sup><font size=1>8</font></sup>+2<sup>
Packit Service b886ba
size=1>5</font></sup>+2<sup><font size=1>1</font></sup>+2<sup>
Packit Service b886ba
size=1>0</font></sup> = 256+32+2+1 is represented by the hex word,
Packit Service b886ba
00000123.
Packit Service b886ba


Packit Service b886ba
If z is an integer, 0 <= z < 2<sup><font size=1>64</font></sup>, then z =
Packit Service b886ba
2<sup><font size=1>32</font></sup>x + y where 
Packit Service b886ba
     0 <= x < 2<sup><font size=1>32</font></sup> and 0 <= y < 2<sup>
Packit Service b886ba
size=1>32</font></sup>.  Since x and y can be represented as 
Packit Service b886ba
     words X and Y, respectively, z can be represented as the pair of words
Packit Service b886ba
     (X,Y).
Packit Service b886ba


Packit Service b886ba
d. block = 512-bit string. A block (e.g., B) may be represented as a
Packit Service b886ba
     sequence of 16 words.
Packit Service b886ba
<center>3. OPERATIONS ON WORDS</CENTER>
Packit Service b886ba


Packit Service b886ba
The following logical operators will be applied to words:
Packit Service b886ba
Packit Service b886ba
a. Bitwise logical word operations
Packit Service b886ba
 
Packit Service b886ba
X ^ Y         =  bitwise logical "and" of  X and Y.
Packit Service b886ba
Packit Service b886ba
X \/ Y        =  bitwise logical "inclusive-or" of X and Y.
Packit Service b886ba
    
Packit Service b886ba
X XOR Y       =  bitwise logical "exclusive-or" of X and Y.
Packit Service b886ba
Packit Service b886ba
~ X           =  bitwise logical "complement" of X.
Packit Service b886ba

Packit Service b886ba
     
Example:
Packit Service b886ba
Packit Service b886ba
            01101100101110011101001001111011
Packit Service b886ba
      XOR   01100101110000010110100110110111
Packit Service b886ba
            --------------------------------
Packit Service b886ba
        =   00001001011110001011101111001100
Packit Service b886ba
Packit Service b886ba
 
b. The operation X + Y is defined as follows: words X and Y represent
Packit Service b886ba
     integers x and y, where 0 <= x < 2<sup><font size=1>32</font></sup> and
Packit Service b886ba
0
Packit Service b886ba
<= y < 2<sup><font size=1>32</font></sup>.  For positive 
Packit Service b886ba
     integers n and m, let n mod m be the remainder upon dividing n by m.
Packit Service b886ba
     Compute 
Packit Service b886ba
Packit Service b886ba
z = (x + y) mod 2<sup><font size=1>32</font></sup>.
Packit Service b886ba

Packit Service b886ba
Then 0 <= z < 2<sup><font size=1>32</FONT></sup>. Convert z to a
Packit Service b886ba
word,  Z, and define Z = X + Y.
Packit Service b886ba


Packit Service b886ba
 
c. The circular left shift operation S<sup>
Packit Service b886ba
size=1>n</font></sup>(X), where X is a word and n is an 
Packit Service b886ba
     integer with 0 <= n <sup><font size=1>32</font></sup>, is defined by
Packit Service b886ba
Packit Service b886ba
S<sup><font size=1>n</font></sup>(X) = (X << n) OR (X >> 32-n).
Packit Service b886ba

Packit Service b886ba
In the above, X << n is obtained as follows: discard the left-most n
Packit Service b886ba
     bits of X and then pad the result with n zeroes on the right (the result
Packit Service b886ba
     will still be 32 bits).  X >> n is obtained by discarding the right-most 
Packit Service b886ba
     n bits of X and then padding the result with n zeroes on the left.  Thus
Packit Service b886ba
     S<sup><font size=1>n</font></sup>(X) is equivalent to a circular shift of
Packit Service b886ba
X
Packit Service b886ba
by n positions to the left.
Packit Service b886ba
Packit Service b886ba
<center>4. MESSAGE PADDING</CENTER>
Packit Service b886ba


Packit Service b886ba
The SHA-1 is used to compute a message digest for a message or data file that
Packit Service b886ba
is provided as input.  The message or data file should be considered to be a 
Packit Service b886ba
bit string.  The length of the message is the number of bits in the message 
Packit Service b886ba
(the empty message has length 0).  If the number of bits in a message is a 
Packit Service b886ba
multiple of 8, for compactness we can represent the message in hex.  The 
Packit Service b886ba
purpose of message padding is to make the total length of a padded message a 
Packit Service b886ba
multiple of 512.  The SHA-1 sequentially processes blocks of 512 bits when 
Packit Service b886ba
computing the message digest.  The following specifies how this padding shall
Packit Service b886ba
be performed.  As a summary, a "1" followed by m "0"s followed by a 64-bit
Packit Service b886ba
integer are appended to the end of the message to produce a padded message
Packit Service b886ba
of length 512 * n.  The 64-bit integer is l, the length of the original message.
Packit Service b886ba
The padded message is then processed by the SHA-1 as n 512-bit blocks.
Packit Service b886ba


Packit Service b886ba
Suppose a message has length l < 2<sup><font size=1>64</font></sup>. 
Packit Service b886ba
Before it is input to the SHA-1, the 
Packit Service b886ba
message is padded on the right as follows:
Packit Service b886ba
Packit Service b886ba
 
a. "1" is appended. Example: if the original message is
Packit Service b886ba
"01010000", this is padded to "010100001".
Packit Service b886ba


Packit Service b886ba
 
b. "0"s are appended. The number of "0"s will depend on the original
Packit Service b886ba
length of the message.  The last 64 bits of the last 512-bit block are reserved 
Packit Service b886ba
for the length l of the original message.
Packit Service b886ba
Packit Service b886ba
Example: Suppose the original message is the bit string
Packit Service b886ba
Packit Service b886ba
<center>01100001 01100010 01100011 01100100 01100101.</CENTER>
Packit Service b886ba
 
Packit Service b886ba
After step (a) this gives
Packit Service b886ba

Packit Service b886ba
<center>01100001 01100010 01100011 01100100 01100101 1.</CENTER>
Packit Service b886ba


Packit Service b886ba
Since l = 40, the number of bits in the above is 41 and 407 "0"s are
Packit Service b886ba
     appended, making the total now 448. This gives (in hex)
Packit Service b886ba
Packit Service b886ba
61626364 65800000 00000000 00000000
Packit Service b886ba
00000000 00000000 00000000 00000000
Packit Service b886ba
00000000 00000000 00000000 00000000
Packit Service b886ba
00000000 00000000.
Packit Service b886ba

Packit Service b886ba
 
c. Obtain the 2-word representation of l, the number of bits in the
Packit Service b886ba
original message.  If l < 2<sup><font size=1>32</font></sup> then the first
Packit Service b886ba
word is all zeroes.  Append these two words to the padded message. 
Packit Service b886ba
Packit Service b886ba
Example: Suppose the original message is as in (b). Then l = 40
Packit Service b886ba
(note that l is computed before any padding). The two-word representation of
Packit Service b886ba
40 is hex 00000000 00000028. Hence the final padded message is hex
Packit Service b886ba
Packit Service b886ba
61626364 65800000 00000000 00000000
Packit Service b886ba
00000000 00000000 00000000 00000000
Packit Service b886ba
00000000 00000000 00000000 00000000
Packit Service b886ba
00000000 00000000 00000000 00000028.
Packit Service b886ba

Packit Service b886ba
The padded message will contain 16 * n words for some n > 0.  The padded 
Packit Service b886ba
message is regarded as a sequence of n blocks M<sub>
Packit Service b886ba
size=1>1</font></sub> , M<sub><font size=1>2</font></sub>, ... ,
Packit Service b886ba
M<sub><font size=1>n</font></sub>, where 
Packit Service b886ba
each M<sub><font size=1>i</font></sub> contains 16 words and
Packit Service b886ba
M<sub>
Packit Service b886ba
size=1>1</font></sub> contains the first characters (or bits)
Packit Service b886ba
of the message.

Packit Service b886ba
<center>5. FUNCTIONS USED</CENTER>
Packit Service b886ba


Packit Service b886ba
A sequence of logical functions f<sub><font size=1>0</font></sub>,
Packit Service b886ba
f<sub><font size=1>1</font></sub>,..., f<sub><font size=1>79</font></sub>
Packit Service b886ba
is
Packit Service b886ba
used in the SHA-1.
Packit Service b886ba
Each f<sub><font size=1>t</font></sub>, 0 <= t <= 79, operates on three
Packit Service b886ba
32-bit words B, C, D and produces
Packit Service b886ba
a 32-bit word as output.  f<sub><font size=1>t</font></sub>(B,C,D) is defined
Packit Service b886ba
as follows:
Packit Service b886ba
for words B, C, D,
Packit Service b886ba
Packit Service b886ba
f<sub><font size=1>t</font></sub>(B,C,D) = (B AND C) OR ((NOT B)
Packit Service b886ba
AND D)              ( 0 <= t <= 19)
Packit Service b886ba


Packit Service b886ba
f<sub><font size=1>t</font></sub>(B,C,D) = B XOR C XOR D
Packit Service b886ba
Packit Service b886ba
            (20 <= t <= 39)
Packit Service b886ba


Packit Service b886ba
f<sub><font size=1>t</font></sub>(B,C,D) = (B AND C) OR (B AND
Packit Service b886ba
D) 
Packit Service b886ba
OR  (C AND D)     (40 <= t <= 59)
Packit Service b886ba


Packit Service b886ba
f<sub><font size=1>t</font></sub>(B,C,D) = B XOR C XOR D
Packit Service b886ba
Packit Service b886ba
            (60 <= t <= 79).
Packit Service b886ba

Packit Service b886ba
<center>6. CONSTANTS USED</CENTER>
Packit Service b886ba


Packit Service b886ba
    A sequence of constant words K(0), K(1), ... , K(79) is used in the SHA-1.
Packit Service b886ba
In hex these are given by
Packit Service b886ba
Packit Service b886ba
K = 5A827999 ( 0 <= t <= 19)
Packit Service b886ba


Packit Service b886ba
K<sub><font size=1>t</font></sub> = 6ED9EBA1 (20 <= t <= 39)
Packit Service b886ba


Packit Service b886ba
K<sub><font size=1>t</font></sub> = 8F1BBCDC (40 <= t <= 59)
Packit Service b886ba


Packit Service b886ba
K<sub><font size=1>t</font></sub> = CA62C1D6 (60 <= t <= 79).
Packit Service b886ba

Packit Service b886ba
<center>7. COMPUTING THE MESSAGE DIGEST</CENTER>
Packit Service b886ba


Packit Service b886ba
    The message digest is computed using the final padded message. The
Packit Service b886ba
computation uses two buffers, each consisting of five 32-bit words, and a
Packit Service b886ba
sequence of eighty 32-bit words.  The words of the first 5-word buffer are
Packit Service b886ba
labeled A,B,C,D,E.  The words of the second 5-word buffer are labeled
Packit Service b886ba
H<sub><font size=1>0</font></sub>, H<sub><font size=1>1</font></sub>,
Packit Service b886ba
H<sub><font size=1>2</font></sub>, H<sub><font size=1>3</font></sub>,
Packit Service b886ba
H<sub><font size=1>4</font></sub>.  The words of the 80-word sequence are
Packit Service b886ba
labeled W<sub><font size=1>0</font></sub>, W<sub>
Packit Service b886ba
size=1>1</font></sub>,...,
Packit Service b886ba
W<sub><font size=1>79</font></sub>.  A single word buffer TEMP is also
Packit Service b886ba
employed.
Packit Service b886ba


Packit Service b886ba
    To generate the message digest, the 16-word blocks M<sub>
Packit Service b886ba
size=1>1</font></sub>, M<sub><font size=1>2</font></sub>,...,
Packit Service b886ba
M<sub>
Packit Service b886ba
size=1>n</font></sub>
Packit Service b886ba
defined in Section 4 are processed in order.  The processing of each
Packit Service b886ba
M<sub><font size=1>i</font></sub>
Packit Service b886ba
involves 80 steps.
Packit Service b886ba


Packit Service b886ba
    Before processing any blocks, the {H<sub><font size=1>i</font></sub>} are
Packit Service b886ba
initialized as follows: in hex,
Packit Service b886ba
Packit Service b886ba
H<sub><font size=1>0</font></sub> = 67452301
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>1</font></sub> = EFCDAB89
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>2</font></sub> = 98BADCFE
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>3</font></sub> = 10325476
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>4</font></sub> = C3D2E1F0.
Packit Service b886ba

Packit Service b886ba
    Now M<sub><font size=1>1</font></sub>, M<sub>
Packit Service b886ba
size=1>2</font></sub>, ... , M<sub><font size=1>n</font></sub> are
Packit Service b886ba
processed.  To process M<sub><font size=1>i</font></sub>, we proceed as
Packit Service b886ba
follows:
Packit Service b886ba
Packit Service b886ba
a. Divide M<sub><font size=1>i</font></sub> into 16 words
Packit Service b886ba
W<sub><font size=1>0</font></sub>, W<sub><font size=1>1</font></sub>,
Packit Service b886ba
...
Packit Service b886ba
, W<sub><font size=1>15</font></sub>, where W<sub>
Packit Service b886ba
size=1>0</font></sub> is the left-most word.
Packit Service b886ba


Packit Service b886ba
b. For t = 16 to 79 let W<sub><font size=1>t</font></sub> =
Packit Service b886ba
S<sup>
Packit Service b886ba
size=1>1</font></sup>(W<sub><font size=1>t-3</font></sub> XOR
Packit Service b886ba
W<sub><font size=1>t-8</font></sub> XOR W<sub><font size=1>t-
Packit Service b886ba
14</font></sub> XOR W<sub><font size=1>t-16</font></sub>).
Packit Service b886ba


Packit Service b886ba
c. Let A = H<sub><font size=1>0</font></sub>, B = H<sub>
Packit Service b886ba
size=1>1</font></sub>, C = H<sub><font size=1>2</font></sub>, D =
Packit Service b886ba
H<sub><font size=1>3</font></sub>, E = H<sub>
Packit Service b886ba
size=1>4</font></sub>.

Packit Service b886ba
d. For t = 0 to 79 do
Packit Service b886ba
Packit Service b886ba
TEMP = S<sup><font size=1>5</font></sup>(A) + f<sub>
Packit Service b886ba
size=1>t</font></sub>(B,C,D) + E + W<sub><font size=1>t</font></sub> +
Packit Service b886ba
K<sub><font size=1>t</font></sub>;
Packit Service b886ba


Packit Service b886ba
E = D; D = C; C = S<sup><font size=1>30</font></sup>(B); B = A; A =
Packit Service b886ba
TEMP;
Packit Service b886ba

Packit Service b886ba
e. Let H<sub><font size=1>0</font></sub> = H<sub>
Packit Service b886ba
size=1>0</font></sub> + A, H<sub><font size=1>1</font></sub> =
Packit Service b886ba
H<sub><font size=1>1</font></sub> + B, H<sub>
Packit Service b886ba
size=1>2</font></sub>
Packit Service b886ba
= H<sub><font size=1>2</font></sub> + C, H<sub>
Packit Service b886ba
size=1>3</font></sub> = H<sub><font size=1>3</font></sub> + D,
Packit Service b886ba
H<sub><font size=1>4</font></sub> = H<sub><font size=1>4</font></sub> +
Packit Service b886ba
E.
Packit Service b886ba

Packit Service b886ba
   After processing M<sub><font size=1>n</font></sub>, the message digest is
Packit Service b886ba
the 160-bit string
Packit Service b886ba
represented by the 5 words
Packit Service b886ba
Packit Service b886ba
H<sub><font size=1>0</font></sub> H<sub>
Packit Service b886ba
size=1>1</font></sub> H<sub><font size=1>2</font></sub> H<sub>
Packit Service b886ba
size=1>3</font></sub> H<sub><font size=1>4</font></sub>.
Packit Service b886ba

Packit Service b886ba
<center>8.  ALTERNATE METHOD OF COMPUTATION
Packit Service b886ba
</CENTER>

Packit Service b886ba
   The above assumes that the sequence W<sub><font size=1>0</font></sub>,
Packit Service b886ba
... , W<sub><font size=1>79</font></sub> is implemented
Packit Service b886ba
as an array of eighty 32-bit words.  This is efficient from the standpoint
Packit Service b886ba
of minimization of execution time, since the addresses of W<sub>
Packit Service b886ba
size=1>t-3</font></sub>, ... ,W<sub><font size=1>t-16</font></sub>
Packit Service b886ba
in step (b) are easily computed.  If space is at a premium, an alternative is
Packit Service b886ba
to regard { W<sub><font size=1>t</font></sub> } as a circular queue, which
Packit Service b886ba
may be implemented using an
Packit Service b886ba
array of sixteen 32-bit words W[0], ... W[15].  In this case, in hex let
Packit Service b886ba
MASK = 0000000F.  Then processing of M<sub><font size=1>i</font></sub>
Packit Service b886ba
is as follows:
Packit Service b886ba
Packit Service b886ba
a. Divide M<sub><font size=1>i</font></sub> into 16 words W[0], ... ,
Packit Service b886ba
W[15], where W[0] is the 
Packit Service b886ba
      left-most word.
Packit Service b886ba


Packit Service b886ba
b. Let A = H<sub><font size=1>0</font></sub>, B = H<sub>
Packit Service b886ba
size=1>1</font></sub>, C = H<sub><font size=1>2</font></sub>, D =
Packit Service b886ba
H<sub>3<font size=1></font></sub>, E = H<sub>
Packit Service b886ba
size=1>4</font></sub>.
Packit Service b886ba


Packit Service b886ba
c. For t = 0 to 79 do
Packit Service b886ba
 
Packit Service b886ba
s = t ^ MASK;
Packit Service b886ba


Packit Service b886ba
if (t >= 16) W[s] = S<sup><font size=1>1</font></sup>(W[(s + 13) ^
Packit Service b886ba
MASK] XOR W[(s + 8) AND MASK]
Packit Service b886ba
XOR W[(s + 2) ^ MASK] XOR W[s]);
Packit Service b886ba


Packit Service b886ba
TEMP = S<sup><font size=1>5</font></sup>(A) + f<sub>
Packit Service b886ba
size=1>t</font></sub>(B,C,D) + E + W[s] + K<sub>
Packit Service b886ba
size=1>t</font></sub>;
Packit Service b886ba


Packit Service b886ba
E = D; D = C; C = S<sup><font size=1>30</font></sup>(B); B = A; A =
Packit Service b886ba
TEMP;
Packit Service b886ba

Packit Service b886ba
d. Let H<sub><font size=1>0</font></sub> = H<sub>
Packit Service b886ba
size=1>0</font></sub> + A, H<sub><font size=1>1</font></sub> =
Packit Service b886ba
H<sub><font size=1>1</font></sub> + B, H<sub>
Packit Service b886ba
size=1>2</font></sub>
Packit Service b886ba
= H<sub><font size=1>2</font></sub> + C, H<sub>
Packit Service b886ba
size=1>3</font></sub> = H<sub><font size=1>3</font></sub> + D,
Packit Service b886ba
H<sub><font size=1>4</font></sub> = H<sub><font size=1>4</font></sub> +
Packit Service b886ba
E.
Packit Service b886ba

Packit Service b886ba
<center>9. COMPARISON OF METHODS</CENTER>
Packit Service b886ba


Packit Service b886ba
The methods of Sections 7 and 8 yield the same message digest.  Although
Packit Service b886ba
using the method of Section 8 saves sixty-four 32-bit words of storage, it
Packit Service b886ba
is likely to lengthen execution time due to the increased complexity of the
Packit Service b886ba
address computations for the { W[t] } in step (c).  Other computation methods
Packit Service b886ba
which give identical results may be implemented in conformance with the
Packit Service b886ba
standard.
Packit Service b886ba


Packit Service b886ba
<center>APPENDIX A.  A SAMPLE MESSAGE AND ITS MESSAGE
Packit Service b886ba
DIGEST</CENTER>
Packit Service b886ba


Packit Service b886ba
This appendix is for informational purposes only and is not required to meet 
Packit Service b886ba
the standard.
Packit Service b886ba


Packit Service b886ba
Let the message be the ASCII binary-coded form of "abc", i.e.,
Packit Service b886ba

Packit Service b886ba
01100001 01100010 01100011.
Packit Service b886ba

Packit Service b886ba
This message has length l = 24.  In step (a) of Section 4, we append "1".  In
Packit Service b886ba
step (b) we append 423 "0"s.  In step (c) we append hex 00000000 00000018, 
Packit Service b886ba
the 2-word representation of 24.  Thus the final padded message consists of
Packit Service b886ba
one block, so that n = 1 in the notation of Section 4. 
Packit Service b886ba


Packit Service b886ba
The initial hex values of {H<sub><font size=1>i</font></sub>} are
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>0</font></sub> = 67452301
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>1</font></sub> = EFCDAB89
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>2</font></sub> = 98BADCFE
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>3</font></sub> = 10325476
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>4</font></sub> = C3D2E1F0.
Packit Service b886ba


Packit Service b886ba
Start processing block 1.  The words of block 1 are
Packit Service b886ba


Packit Service b886ba
W[0]  = 61626380
Packit Service b886ba
W[1]  = 00000000
Packit Service b886ba
W[2]  = 00000000
Packit Service b886ba
W[3]  = 00000000
Packit Service b886ba
W[4]  = 00000000
Packit Service b886ba
W[5]  = 00000000
Packit Service b886ba
W[6]  = 00000000
Packit Service b886ba
W[7]  = 00000000
Packit Service b886ba
W[8]  = 00000000
Packit Service b886ba
W[9]  = 00000000
Packit Service b886ba
W[10] = 00000000
Packit Service b886ba
W[11] = 00000000
Packit Service b886ba
W[12] = 00000000
Packit Service b886ba
W[13] = 00000000
Packit Service b886ba
W[14] = 00000000
Packit Service b886ba
W[15] = 00000018.
Packit Service b886ba


Packit Service b886ba
The hex values of A,B,C,D,E after pass t of the "for t = 0 to 79" loop 
Packit Service b886ba
(step (d) of Section 7 or step (c) of Section 8) are
Packit Service b886ba
       
Packit Service b886ba
            A           B           C           D           E
Packit Service b886ba
Packit Service b886ba
t =  0: 0116FC33    67452301    7BF36AE2    98BADCFE    10325476
Packit Service b886ba
t =  1: 8990536D    0116FC33    59D148C0    7BF36AE2    98BADCFE
Packit Service b886ba
t =  2: A1390F08    8990536D    C045BF0C    59D148C0    7BF36AE2
Packit Service b886ba
t =  3: CDD8E11B    A1390F08    626414DB    C045BF0C    59D148C0
Packit Service b886ba
t =  4: CFD499DE    CDD8E11B    284E43C2    626414DB    C045BF0C
Packit Service b886ba
t =  5: 3FC7CA40    CFD499DE    F3763846    284E43C2    626414DB
Packit Service b886ba
t =  6: 993E30C1    3FC7CA40    B3F52677    F3763846    284E43C2
Packit Service b886ba
t =  7: 9E8C07D4    993E30C1    0FF1F290    B3F52677    F3763846
Packit Service b886ba
t =  8: 4B6AE328    9E8C07D4    664F8C30    0FF1F290    B3F52677
Packit Service b886ba
t =  9: 8351F929    4B6AE328    27A301F5    664F8C30    0FF1F290
Packit Service b886ba
t = 10: FBDA9E89    8351F929    12DAB8CA    27A301F5    664F8C30
Packit Service b886ba
t = 11: 63188FE4    FBDA9E89    60D47E4A    12DAB8CA    27A301F5
Packit Service b886ba
t = 12: 4607B664    63188FE4    7EF6A7A2    60D47E4A    12DAB8CA
Packit Service b886ba
t = 13: 9128F695    4607B664    18C623F9    7EF6A7A2    60D47E4A
Packit Service b886ba
t = 14: 196BEE77    9128F695    1181ED99    18C623F9    7EF6A7A2
Packit Service b886ba
t = 15: 20BDD62F    196BEE77    644A3DA5    1181ED99    18C623F9
Packit Service b886ba
t = 16: 4E925823    20BDD62F    C65AFB9D    644A3DA5    1181ED99
Packit Service b886ba
t = 17: 82AA6728    4E925823    C82F758B    C65AFB9D    644A3DA5
Packit Service b886ba
t = 18: DC64901D    82AA6728    D3A49608    C82F758B    C65AFB9D
Packit Service b886ba
t = 19: FD9E1D7D    DC64901D    20AA99CA    D3A49608    C82F758B
Packit Service b886ba
t = 20: 1A37B0CA    FD9E1D7D    77192407    20AA99CA    D3A49608
Packit Service b886ba
t = 21: 33A23BFC    1A37B0CA    7F67875F    77192407    20AA99CA
Packit Service b886ba
t = 22: 21283486    33A23BFC    868DEC32    7F67875F    77192407
Packit Service b886ba
t = 23: D541F12D    21283486    0CE88EFF    868DEC32    7F67875F
Packit Service b886ba
t = 24: C7567DC6    D541F12D    884A0D21    0CE88EFF    868DEC32
Packit Service b886ba
t = 25: 48413BA4    C7567DC6    75507C4B    884A0D21    0CE88EFF
Packit Service b886ba
t = 26: BE35FBD5    48413BA4    B1D59F71    75507C4B    884A0D21
Packit Service b886ba
t = 27: 4AA84D97    BE35FBD5    12104EE9    B1D59F71    75507C4B
Packit Service b886ba
t = 28: 8370B52E    4AA84D97    6F8D7EF5    12104EE9    B1D59F71
Packit Service b886ba
t = 29: C5FBAF5D    8370B52E    D2AA1365    6F8D7EF5    12104EE9
Packit Service b886ba
t = 30: 1267B407    C5FBAF5D    A0DC2D4B    D2AA1365    6F8D7EF5
Packit Service b886ba
t = 31: 3B845D33    1267B407    717EEBD7    A0DC2D4B    D2AA1365
Packit Service b886ba
t = 32: 046FAA0A    3B845D33    C499ED01    717EEBD7    A0DC2D4B
Packit Service b886ba
t = 33: 2C0EBC11    046FAA0A    CEE1174C    C499ED01    717EEBD7
Packit Service b886ba
t = 34: 21796AD4    2C0EBC11    811BEA82    CEE1174C    C499ED01
Packit Service b886ba
t = 35: DCBBB0CB    21796AD4    4B03AF04    811BEA82    CEE1174C
Packit Service b886ba
t = 36: 0F511FD8    DCBBB0CB    085E5AB5    4B03AF04    811BEA82
Packit Service b886ba
t = 37: DC63973F    0F511FD8    F72EEC32    085E5AB5    4B03AF04
Packit Service b886ba
t = 38: 4C986405    DC63973F    03D447F6    F72EEC32    085E5AB5
Packit Service b886ba
t = 39: 32DE1CBA    4C986405    F718E5CF    03D447F6    F72EEC32
Packit Service b886ba
t = 40: FC87DEDF    32DE1CBA    53261901    F718E5CF    03D447F6
Packit Service b886ba
t = 41: 970A0D5C    FC87DEDF    8CB7872E    53261901    F718E5CF
Packit Service b886ba
t = 42: 7F193DC5    970A0D5C    FF21F7B7    8CB7872E    53261901
Packit Service b886ba
t = 43: EE1B1AAF    7F193DC5    25C28357    FF21F7B7    8CB7872E
Packit Service b886ba
t = 44: 40F28E09    EE1B1AAF    5FC64F71    25C28357    FF21F7B7
Packit Service b886ba
t = 45: 1C51E1F2    40F28E09    FB86C6AB    5FC64F71    25C28357
Packit Service b886ba
t = 46: A01B846C    1C51E1F2    503CA382    FB86C6AB    5FC64F71
Packit Service b886ba
t = 47: BEAD02CA    A01B846C    8714787C    503CA382    FB86C6AB
Packit Service b886ba
t = 48: BAF39337    BEAD02CA    2806E11B    8714787C    503CA382
Packit Service b886ba
t = 49: 120731C5    BAF39337    AFAB40B2    2806E11B    8714787C
Packit Service b886ba
t = 50: 641DB2CE    120731C5    EEBCE4CD    AFAB40B2    2806E11B
Packit Service b886ba
t = 51: 3847AD66    641DB2CE    4481CC71    EEBCE4CD    AFAB40B2
Packit Service b886ba
t = 52: E490436D    3847AD66    99076CB3    4481CC71    EEBCE4CD
Packit Service b886ba
t = 53: 27E9F1D8    E490436D    8E11EB59    99076CB3    4481CC71
Packit Service b886ba
t = 54: 7B71F76D    27E9F1D8    792410DB    8E11EB59    99076CB3
Packit Service b886ba
t = 55: 5E6456AF    7B71F76D    09FA7C76    792410DB    8E11EB59
Packit Service b886ba
t = 56: C846093F    5E6456AF    5EDC7DDB    09FA7C76    792410DB
Packit Service b886ba
t = 57: D262FF50    C846093F    D79915AB    5EDC7DDB    09FA7C76
Packit Service b886ba
t = 58: 09D785FD    D262FF50    F211824F    D79915AB    5EDC7DDB
Packit Service b886ba
t = 59: 3F52DE5A    09D785FD    3498BFD4    F211824F    D79915AB
Packit Service b886ba
t = 60: D756C147    3F52DE5A    4275E17F    3498BFD4    F211824F
Packit Service b886ba
t = 61: 548C9CB2    D756C147    8FD4B796    4275E17F    3498BFD4
Packit Service b886ba
t = 62: B66C020B    548C9CB2    F5D5B051    8FD4B796    4275E17F
Packit Service b886ba
t = 63: 6B61C9E1    B66C020B    9523272C    F5D5B051    8FD4B796
Packit Service b886ba
t = 64: 19DFA7AC    6B61C9E1    ED9B0082    9523272C    F5D5B051
Packit Service b886ba
t = 65: 101655F9    19DFA7AC    5AD87278    ED9B0082    9523272C
Packit Service b886ba
t = 66: 0C3DF2B4    101655F9    0677E9EB    5AD87278    ED9B0082
Packit Service b886ba
t = 67: 78DD4D2B    0C3DF2B4    4405957E    0677E9EB    5AD87278
Packit Service b886ba
t = 68: 497093C0    78DD4D2B    030F7CAD    4405957E    0677E9EB
Packit Service b886ba
t = 69: 3F2588C2    497093C0    DE37534A    030F7CAD    4405957E
Packit Service b886ba
t = 70: C199F8C7    3F2588C2    125C24F0    DE37534A    030F7CAD
Packit Service b886ba
t = 71: 39859DE7    C199F8C7    8FC96230    125C24F0    DE37534A
Packit Service b886ba
t = 72: EDB42DE4    39859DE7    F0667E31    8FC96230    125C24F0
Packit Service b886ba
t = 73: 11793F6F    EDB42DE4    CE616779    F0667E31    8FC96230
Packit Service b886ba
t = 74: 5EE76897    11793F6F    3B6D0B79    CE616779    F0667E31
Packit Service b886ba
t = 75: 63F7DAB7    5EE76897    C45E4FDB    3B6D0B79    CE616779
Packit Service b886ba
t = 76: A079B7D9    63F7DAB7    D7B9DA25    C45E4FDB    3B6D0B79
Packit Service b886ba
t = 77: 860D21CC    A079B7D9    D8FDF6AD    D7B9DA25    C45E4FDB
Packit Service b886ba
t = 78: 5738D5E1    860D21CC    681E6DF6    D8FDF6AD    D7B9DA25
Packit Service b886ba
t = 79: 42541B35    5738D5E1    21834873    681E6DF6    D8FDF6AD.
Packit Service b886ba
     
Packit Service b886ba
Block 1 has been processed.  The values of {H<sub>
Packit Service b886ba
size=1>i</font></sub>} are
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>0</font></sub> = 67452301  +  42541B35  =  A9993E36
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>1</font></sub> = EFCDAB89  +  5738D5E1  = 
Packit Service b886ba
4706816A
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>2</font></sub> = 98BADCFE  +  21834873  = 
Packit Service b886ba
BA3E2571
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>3</font></sub> = 10325476  +  681E6DF6  =  7850C26C
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>4</font></sub> = C3D2E1F0  +  D8FDF6AD  = 
Packit Service b886ba
9CD0D89D.
Packit Service b886ba


Packit Service b886ba
Message digest = A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D         
Packit Service b886ba



Packit Service b886ba
<center>APPENDIX B. A SECOND SAMPLE MESSAGE AND ITS
Packit Service b886ba
MESSAGE DIGEST</CENTER>
Packit Service b886ba


Packit Service b886ba
This appendix is for informational purposes only and is not required to 
Packit Service b886ba
meet the standard.
Packit Service b886ba


Packit Service b886ba
Let the message be the binary-coded form (cf. Appendix A) of the ASCII
Packit Service b886ba
string
Packit Service b886ba

Packit Service b886ba
<center>"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".
Packit Service b886ba
</CENTER>
Packit Service b886ba
Since each of the 56 characters is converted to 8 bits, the length of the 
Packit Service b886ba
message is l = 448.  In step (a) of Section 4, we append "1".  In step (b) 
Packit Service b886ba
we append 511 "0"s.  In step (c) we append the 2-word representation of 448, 
Packit Service b886ba
i.e., hex 00000000 000001C0.  This gives n = 2.
Packit Service b886ba


Packit Service b886ba
The initial hex values of {H<sub><font size=1>i</font></sub>} are
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>0</font></sub> = 67452301
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>1</font></sub> = EFCDAB89
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>2</font></sub> = 98BADCFE
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>3</font></sub> = 10325476
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>4</font></sub> = C3D2E1F0.
Packit Service b886ba


Packit Service b886ba
Start processing block 1.  The words of block 1 are
Packit Service b886ba


Packit Service b886ba
W[0]  = 61626364
Packit Service b886ba
W[1]  = 62636465
Packit Service b886ba
W[2]  = 63646566
Packit Service b886ba
W[3]  = 64656667
Packit Service b886ba
W[4]  = 65666768
Packit Service b886ba
W[5]  = 66676869
Packit Service b886ba
W[6]  = 6768696A
Packit Service b886ba
W[7]  = 68696A6B
Packit Service b886ba
W[8]  = 696A6B6C
Packit Service b886ba
W[9]  = 6A6B6C6D
Packit Service b886ba
W[10] = 6B6C6D6E
Packit Service b886ba
W[11] = 6C6D6E6F
Packit Service b886ba
W[12] = 6D6E6F70
Packit Service b886ba
W[13] = 6E6F7071
Packit Service b886ba
W[14] = 80000000
Packit Service b886ba
W[15] = 00000000.
Packit Service b886ba


Packit Service b886ba
The hex values of A,B,C,D,E after pass t of the "for t = 0 to 79" loop (step 
Packit Service b886ba
(d) of Section 7 or step (c) of Section 8) are
Packit Service b886ba
 
      
Packit Service b886ba
            A           B           C           D           E
Packit Service b886ba
Packit Service b886ba
t =  0: 0116FC17    67452301    7BF36AE2    98BADCFE    10325476
Packit Service b886ba
t =  1: EBF3B452    0116FC17    59D148C0    7BF36AE2    98BADCFE
Packit Service b886ba
t =  2: 5109913A    EBF3B452    C045BF05    59D148C0    7BF36AE2
Packit Service b886ba
t =  3: 2C4F6EAC    5109913A    BAFCED14    C045BF05    59D148C0
Packit Service b886ba
t =  4: 33F4AE5B    2C4F6EAC    9442644E    BAFCED14    C045BF05
Packit Service b886ba
t =  5: 96B85189    33F4AE5B    0B13DBAB    9442644E    BAFCED14
Packit Service b886ba
t =  6: DB04CB58    96B85189    CCFD2B96    0B13DBAB    9442644E
Packit Service b886ba
t =  7: 45833F0F    DB04CB58    65AE1462    CCFD2B96    0B13DBAB
Packit Service b886ba
t =  8: C565C35E    45833F0F    36C132D6    65AE1462    CCFD2B96
Packit Service b886ba
t =  9: 6350AFDA    C565C35E    D160CFC3    36C132D6    65AE1462
Packit Service b886ba
t = 10: 8993EA77    6350AFDA    B15970D7    D160CFC3    36C132D6
Packit Service b886ba
t = 11: E19ECAA2    8993EA77    98D42BF6    B15970D7    D160CFC3
Packit Service b886ba
t = 12: 8603481E    E19ECAA2    E264FA9D    98D42BF6    B15970D7
Packit Service b886ba
t = 13: 32F94A85    8603481E    B867B2A8    E264FA9D    98D42BF6
Packit Service b886ba
t = 14: B2E7A8BE    32F94A85    A180D207    B867B2A8    E264FA9D
Packit Service b886ba
t = 15: 42637E39    B2E7A8BE    4CBE52A1    A180D207    B867B2A8
Packit Service b886ba
t = 16: 6B068048    42637E39    ACB9EA2F    4CBE52A1    A180D207
Packit Service b886ba
t = 17: 426B9C35    6B068048    5098DF8E    ACB9EA2F    4CBE52A1
Packit Service b886ba
t = 18: 944B1BD1    426B9C35    1AC1A012    5098DF8E    ACB9EA2F
Packit Service b886ba
t = 19: 6C445652    944B1BD1    509AE70D    1AC1A012    5098DF8E
Packit Service b886ba
t = 20: 95836DA5    6C445652    6512C6F4    509AE70D    1AC1A012
Packit Service b886ba
t = 21: 09511177    95836DA5    9B111594    6512C6F4    509AE70D
Packit Service b886ba
t = 22: E2B92DC4    09511177    6560DB69    9B111594    6512C6F4
Packit Service b886ba
t = 23: FD224575    E2B92DC4    C254445D    6560DB69    9B111594
Packit Service b886ba
t = 24: EEB82D9A    FD224575    38AE4B71    C254445D    6560DB69
Packit Service b886ba
t = 25: 5A142C1A    EEB82D9A    7F48915D    38AE4B71    C254445D
Packit Service b886ba
t = 26: 2972F7C7    5A142C1A    BBAE0B66    7F48915D    38AE4B71
Packit Service b886ba
t = 27: D526A644    2972F7C7    96850B06    BBAE0B66    7F48915D
Packit Service b886ba
t = 28: E1122421    D526A644    CA5CBDF1    96850B06    BBAE0B66
Packit Service b886ba
t = 29: 05B457B2    E1122421    3549A991    CA5CBDF1    96850B06
Packit Service b886ba
t = 30: A9C84BEC    05B457B2    78448908    3549A991    CA5CBDF1
Packit Service b886ba
t = 31: 52E31F60    A9C84BEC    816D15EC    78448908    3549A991
Packit Service b886ba
t = 32: 5AF3242C    52E31F60    2A7212FB    816D15EC    78448908
Packit Service b886ba
t = 33: 31C756A9    5AF3242C    14B8C7D8    2A7212FB    816D15EC
Packit Service b886ba
t = 34: E9AC987C    31C756A9    16BCC90B    14B8C7D8    2A7212FB
Packit Service b886ba
t = 35: AB7C32EE    E9AC987C    4C71D5AA    16BCC90B    14B8C7D8
Packit Service b886ba
t = 36: 5933FC99    AB7C32EE    3A6B261F    4C71D5AA    16BCC90B
Packit Service b886ba
t = 37: 43F87AE9    5933FC99    AADF0CBB    3A6B261F    4C71D5AA
Packit Service b886ba
t = 38: 24957F22    43F87AE9    564CFF26    AADF0CBB    3A6B261F
Packit Service b886ba
t = 39: ADEB7478    24957F22    50FE1EBA    564CFF26    AADF0CBB
Packit Service b886ba
t = 40: D70E5010    ADEB7478    89255FC8    50FE1EBA    564CFF26
Packit Service b886ba
t = 41: 79BCFB08    D70E5010    2B7ADD1E    89255FC8    50FE1EBA
Packit Service b886ba
t = 42: F9BCB8DE    79BCFB08    35C39404    2B7ADD1E    89255FC8
Packit Service b886ba
t = 43: 633E9561    F9BCB8DE    1E6F3EC2    35C39404    2B7ADD1E
Packit Service b886ba
t = 44: 98C1EA64    633E9561    BE6F2E37    1E6F3EC2    35C39404
Packit Service b886ba
t = 45: C6EA241E    98C1EA64    58CFA558    BE6F2E37    1E6F3EC2
Packit Service b886ba
t = 46: A2AD4F02    C6EA241E    26307A99    58CFA558    BE6F2E37
Packit Service b886ba
t = 47: C8A69090    A2AD4F02    B1BA8907    26307A99    58CFA558
Packit Service b886ba
t = 48: 88341600    C8A69090    A8AB53C0    B1BA8907    26307A99
Packit Service b886ba
t = 49: 7E846F58    88341600    3229A424    A8AB53C0    B1BA8907
Packit Service b886ba
t = 50: 86E358BA    7E846F58    220D0580    3229A424    A8AB53C0
Packit Service b886ba
t = 51: 8D2E76C8    86E358BA    1FA11BD6    220D0580    3229A424
Packit Service b886ba
t = 52: CE892E10    8D2E76C8    A1B8D62E    1FA11BD6    220D0580
Packit Service b886ba
t = 53: EDEA95B1    CE892E10    234B9DB2    A1B8D62E    1FA11BD6
Packit Service b886ba
t = 54: 36D1230A    EDEA95B1    33A24B84    234B9DB2    A1B8D62E
Packit Service b886ba
t = 55: 776C3910    36D1230A    7B7AA56C    33A24B84    234B9DB2
Packit Service b886ba
t = 56: A681B723    776C3910    8DB448C2    7B7AA56C    33A24B84
Packit Service b886ba
t = 57: AC0A794F    A681B723    1DDB0E44    8DB448C2    7B7AA56C
Packit Service b886ba
t = 58: F03D3782    AC0A794F    E9A06DC8    1DDB0E44    8DB448C2
Packit Service b886ba
t = 59: 9EF775C3    F03D3782    EB029E53    E9A06DC8    1DDB0E44
Packit Service b886ba
t = 60: 36254B13    9EF775C3    BC0F4DE0    EB029E53    E9A06DC8
Packit Service b886ba
t = 61: 4080D4DC    36254B13    E7BDDD70    BC0F4DE0    EB029E53
Packit Service b886ba
t = 62: 2BFAF7A8    4080D4DC    CD8952C4    E7BDDD70    BC0F4DE0
Packit Service b886ba
t = 63: 513F9CA0    2BFAF7A8    10203537    CD8952C4    E7BDDD70
Packit Service b886ba
t = 64: E5895C81    513F9CA0    0AFEBDEA    10203537    CD8952C4
Packit Service b886ba
t = 65: 1037D2D5    E5895C81    144FE728    0AFEBDEA    10203537
Packit Service b886ba
t = 66: 14A82DA9    1037D2D5    79625720    144FE728    0AFEBDEA
Packit Service b886ba
t = 67: 6D17C9FD    14A82DA9    440DF4B5    79625720    144FE728
Packit Service b886ba
t = 68: 2C7B07BD    6D17C9FD    452A0B6A    440DF4B5    79625720
Packit Service b886ba
t = 69: FDF6EFFF    2C7B07BD    5B45F27F    452A0B6A    440DF4B5
Packit Service b886ba
t = 70: 112B96E3    FDF6EFFF    4B1EC1EF    5B45F27F    452A0B6A
Packit Service b886ba
t = 71: 84065712    112B96E3    FF7DBBFF    4B1EC1EF    5B45F27F
Packit Service b886ba
t = 72: AB89FB71    84065712    C44AE5B8    FF7DBBFF    4B1EC1EF
Packit Service b886ba
t = 73: C5210E35    AB89FB71    A10195C4    C44AE5B8    FF7DBBFF
Packit Service b886ba
t = 74: 352D9F4B    C5210E35    6AE27EDC    A10195C4    C44AE5B8
Packit Service b886ba
t = 75: 1A0E0E0A    352D9F4B    7148438D    6AE27EDC    A10195C4
Packit Service b886ba
t = 76: D0D47349    1A0E0E0A    CD4B67D2    7148438D    6AE27EDC
Packit Service b886ba
t = 77: AD38620D    D0D47349    86838382    CD4B67D2    7148438D
Packit Service b886ba
t = 78: D3AD7C25    AD38620D    74351CD2    86838382    CD4B67D2
Packit Service b886ba
t = 79: 8CE34517    D3AD7C25    6B4E1883    74351CD2    86838382.
Packit Service b886ba

Packit Service b886ba
Block 1 has been processed.  The values of {H<sub>
Packit Service b886ba
size=1>i</font></sub>} are
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>0</font></sub> = 67452301  +  8CE34517  =  F4286818
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>1</font></sub> = EFCDAB89  +  D3AD7C25  = 
Packit Service b886ba
C37B27AE
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>2</font></sub> = 98BADCFE  +  6B4E1883  = 
Packit Service b886ba
0408F581
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>3</font></sub> = 10325476  +  74351CD2  =  84677148
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>4</font></sub> = C3D2E1F0  +  86838382  =  4A566572.
Packit Service b886ba
 

Packit Service b886ba
Start processing block 2.  The words of block 2 are
Packit Service b886ba


Packit Service b886ba
W[0]  = 00000000
Packit Service b886ba
W[1]  = 00000000
Packit Service b886ba
W[2]  = 00000000
Packit Service b886ba
W[3]  = 00000000
Packit Service b886ba
W[4]  = 00000000
Packit Service b886ba
W[5]  = 00000000
Packit Service b886ba
W[6]  = 00000000
Packit Service b886ba
W[7]  = 00000000
Packit Service b886ba
W[8]  = 00000000
Packit Service b886ba
W[9]  = 00000000
Packit Service b886ba
W[10] = 00000000
Packit Service b886ba
W[11] = 00000000
Packit Service b886ba
W[12] = 00000000
Packit Service b886ba
W[13] = 00000000
Packit Service b886ba
W[14] = 00000000
Packit Service b886ba
W[15] = 000001C0.
Packit Service b886ba


Packit Service b886ba
The hex values of A,B,C,D,E after pass t of the for "t = 0 to 79" loop 
Packit Service b886ba
(step (d) of Section 7 or step (c) of Section 8) are
Packit Service b886ba
       
Packit Service b886ba
            A           B           C           D           E
Packit Service b886ba
Packit Service b886ba
t =  0: 2DF257E9    F4286818    B0DEC9EB    0408F581    84677148
Packit Service b886ba
t =  1: 4D3DC58F    2DF257E9    3D0A1A06    B0DEC9EB    0408F581
Packit Service b886ba
t =  2: C352BB05    4D3DC58F    4B7C95FA    3D0A1A06    B0DEC9EB
Packit Service b886ba
t =  3: EEF743C6    C352BB05    D34F7163    4B7C95FA    3D0A1A06
Packit Service b886ba
t =  4: 41E34277    EEF743C6    70D4AEC1    D34F7163    4B7C95FA
Packit Service b886ba
t =  5: 5443915C    41E34277    BBBDD0F1    70D4AEC1    D34F7163
Packit Service b886ba
t =  6: E7FA0377    5443915C    D078D09D    BBBDD0F1    70D4AEC1
Packit Service b886ba
t =  7: C6946813    E7FA0377    1510E457    D078D09D    BBBDD0F1
Packit Service b886ba
t =  8: FDDE1DE1    C6946813    F9FE80DD    1510E457    D078D09D
Packit Service b886ba
t =  9: B8538ACA    FDDE1DE1    F1A51A04    F9FE80DD    1510E457
Packit Service b886ba
t = 10: 6BA94F63    B8538ACA    7F778778    F1A51A04    F9FE80DD
Packit Service b886ba
t = 11: 43A2792F    6BA94F63    AE14E2B2    7F778778    F1A51A04
Packit Service b886ba
t = 12: FECD7BBF    43A2792F    DAEA53D8    AE14E2B2    7F778778
Packit Service b886ba
t = 13: A2604CA8    FECD7BBF    D0E89E4B    DAEA53D8    AE14E2B2
Packit Service b886ba
t = 14: 258B0BAA    A2604CA8    FFB35EEF    D0E89E4B    DAEA53D8
Packit Service b886ba
t = 15: D9772360    258B0BAA    2898132A    FFB35EEF    D0E89E4B
Packit Service b886ba
t = 16: 5507DB6E    D9772360    8962C2EA    2898132A    FFB35EEF
Packit Service b886ba
t = 17: A51B58BC    5507DB6E    365DC8D8    8962C2EA    2898132A
Packit Service b886ba
t = 18: C2EB709F    A51B58BC    9541F6DB    365DC8D8    8962C2EA
Packit Service b886ba
t = 19: D8992153    C2EB709F    2946D62F    9541F6DB    365DC8D8
Packit Service b886ba
t = 20: 37482F5F    D8992153    F0BADC27    2946D62F    9541F6DB
Packit Service b886ba
t = 21: EE8700BD    37482F5F    F6264854    F0BADC27    2946D62F
Packit Service b886ba
t = 22: 9AD594B9    EE8700BD    CDD20BD7    F6264854    F0BADC27
Packit Service b886ba
t = 23: 8FBAA5B9    9AD594B9    7BA1C02F    CDD20BD7    F6264854
Packit Service b886ba
t = 24: 88FB5867    8FBAA5B9    66B5652E    7BA1C02F    CDD20BD7
Packit Service b886ba
t = 25: EEC50521    88FB5867    63EEA96E    66B5652E    7BA1C02F
Packit Service b886ba
t = 26: 50BCE434    EEC50521    E23ED619    63EEA96E    66B5652E
Packit Service b886ba
t = 27: 5C416DAF    50BCE434    7BB14148    E23ED619    63EEA96E
Packit Service b886ba
t = 28: 2429BE5F    5C416DAF    142F390D    7BB14148    E23ED619
Packit Service b886ba
t = 29: 0A2FB108    2429BE5F    D7105B6B    142F390D    7BB14148
Packit Service b886ba
t = 30: 17986223    0A2FB108    C90A6F97    D7105B6B    142F390D
Packit Service b886ba
t = 31: 8A4AF384    17986223    028BEC42    C90A6F97    D7105B6B
Packit Service b886ba
t = 32: 6B629993    8A4AF384    C5E61888    028BEC42    C90A6F97
Packit Service b886ba
t = 33: F15F04F3    6B629993    2292BCE1    C5E61888    028BEC42
Packit Service b886ba
t = 34: 295CC25B    F15F04F3    DAD8A664    2292BCE1    C5E61888
Packit Service b886ba
t = 35: 696DA404    295CC25B    FC57C13C    DAD8A664    2292BCE1
Packit Service b886ba
t = 36: CEF5AE12    696DA404    CA573096    FC57C13C    DAD8A664
Packit Service b886ba
t = 37: 87D5B80C    CEF5AE12    1A5B6901    CA573096    FC57C13C
Packit Service b886ba
t = 38: 84E2A5F2    87D5B80C    B3BD6B84    1A5B6901    CA573096
Packit Service b886ba
t = 39: 03BB6310    84E2A5F2    21F56E03    B3BD6B84    1A5B6901
Packit Service b886ba
t = 40: C2D8F75F    03BB6310    A138A97C    21F56E03    B3BD6B84
Packit Service b886ba
t = 41: BFB25768    C2D8F75F    00EED8C4    A138A97C    21F56E03
Packit Service b886ba
t = 42: 28589152    BFB25768    F0B63DD7    00EED8C4    A138A97C
Packit Service b886ba
t = 43: EC1D3D61    28589152    2FEC95DA    F0B63DD7    00EED8C4
Packit Service b886ba
t = 44: 3CAED7AF    EC1D3D61    8A162454    2FEC95DA    F0B63DD7
Packit Service b886ba
t = 45: C3D033EA    3CAED7AF    7B074F58    8A162454    2FEC95DA
Packit Service b886ba
t = 46: 7316056A    C3D033EA    CF2BB5EB    7B074F58    8A162454
Packit Service b886ba
t = 47: 46F93B68    7316056A    B0F40CFA    CF2BB5EB    7B074F58
Packit Service b886ba
t = 48: DC8E7F26    46F93B68    9CC5815A    B0F40CFA    CF2BB5EB
Packit Service b886ba
t = 49: 850D411C    DC8E7F26    11BE4EDA    9CC5815A    B0F40CFA
Packit Service b886ba
t = 50: 7E4672C0    850D411C    B7239FC9    11BE4EDA    9CC5815A
Packit Service b886ba
t = 51: 89FBD41D    7E4672C0    21435047    B7239FC9    11BE4EDA
Packit Service b886ba
t = 52: 1797E228    89FBD41D    1F919CB0    21435047    B7239FC9
Packit Service b886ba
t = 53: 431D65BC    1797E228    627EF507    1F919CB0    21435047
Packit Service b886ba
t = 54: 2BDBB8CB    431D65BC    05E5F88A    627EF507    1F919CB0
Packit Service b886ba
t = 55: 6DA72E7F    2BDBB8CB    10C7596F    05E5F88A    627EF507
Packit Service b886ba
t = 56: A8495A9B    6DA72E7F    CAF6EE32    10C7596F    05E5F88A
Packit Service b886ba
t = 57: E785655A    A8495A9B    DB69CB9F    CAF6EE32    10C7596F
Packit Service b886ba
t = 58: 5B086C42    E785655A    EA1256A6    DB69CB9F    CAF6EE32
Packit Service b886ba
t = 59: A65818F7    5B086C42    B9E15956    EA1256A6    DB69CB9F
Packit Service b886ba
t = 60: 7AAB101B    A65818F7    96C21B10    B9E15956    EA1256A6
Packit Service b886ba
t = 61: 93614C9C    7AAB101B    E996063D    96C21B10    B9E15956
Packit Service b886ba
t = 62: F66D9BF4    93614C9C    DEAAC406    E996063D    96C21B10
Packit Service b886ba
t = 63: D504902B    F66D9BF4    24D85327    DEAAC406    E996063D
Packit Service b886ba
t = 64: 60A9DA62    D504902B    3D9B66FD    24D85327    DEAAC406
Packit Service b886ba
t = 65: 8B687819    60A9DA62    F541240A    3D9B66FD    24D85327
Packit Service b886ba
t = 66: 083E90C3    8B687819    982A7698    F541240A    3D9B66FD
Packit Service b886ba
t = 67: F6226BBF    083E90C3    62DA1E06    982A7698    F541240A
Packit Service b886ba
t = 68: 76C0563B    F6226BBF    C20FA430    62DA1E06    982A7698
Packit Service b886ba
t = 69: 989DD165    76C0563B    FD889AEF    C20FA430    62DA1E06
Packit Service b886ba
t = 70: 8B2C7573    989DD165    DDB0158E    FD889AEF    C20FA430
Packit Service b886ba
t = 71: AE1B8E7B    8B2C7573    66277459    DDB0158E    FD889AEF
Packit Service b886ba
t = 72: CA1840DE    AE1B8E7B    E2CB1D5C    66277459    DDB0158E
Packit Service b886ba
t = 73: 16F3BABB    CA1840DE    EB86E39E    E2CB1D5C    66277459
Packit Service b886ba
t = 74: D28D83AD    16F3BABB    B2861037    EB86E39E    E2CB1D5C
Packit Service b886ba
t = 75: 6BC02DFE    D28D83AD    C5BCEEAE    B2861037    EB86E39E
Packit Service b886ba
t = 76: D3A6E275    6BC02DFE    74A360EB    C5BCEEAE    B2861037
Packit Service b886ba
t = 77: DA955482    D3A6E275    9AF00B7F    74A360EB    C5BCEEAE
Packit Service b886ba
t = 78: 58C0AAC0    DA955482    74E9B89D    9AF00B7F    74A360EB
Packit Service b886ba
t = 79: 906FD62C    58C0AAC0    B6A55520    74E9B89D    9AF00B7F.
Packit Service b886ba

Packit Service b886ba
Block 2 has been processed.  The values of {H<sub>
Packit Service b886ba
size=1>i</font></sub>} are
Packit Service b886ba


Packit Service b886ba
H<sub><font size=1>0</font></sub> = F4286818  +  906FD62C  =  84983E44
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>1</font></sub> = C37B27AE  +  58C0AAC0  = 
Packit Service b886ba
1C3BD26E
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>2</font></sub> = 0408F581  +  B6A55520  = 
Packit Service b886ba
BAAE4AA1
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>3</font></sub> = 84677148  +  74E9B89D  =  F95129E5
Packit Service b886ba

Packit Service b886ba
H<sub><font size=1>4</font></sub> = 4A566572  +  9AF00B7F  =  E54670F1.
Packit Service b886ba


Packit Service b886ba
Message digest = 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
Packit Service b886ba


Packit Service b886ba
<center>APPENDIX C.   A THIRD SAMPLE MESSAGE AND ITS
Packit Service b886ba
MESSAGE DIGEST</CENTER>
Packit Service b886ba


Packit Service b886ba
This appendix is for informational purposes only and is not required to meet
Packit Service b886ba
the standard.
Packit Service b886ba


Packit Service b886ba
Let the message be the binary-coded form of the ASCII string which consists 
Packit Service b886ba
of 1,000,000 repetitions of "a". 
Packit Service b886ba


Packit Service b886ba
Message digest = 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
Packit Service b886ba

Packit Service b886ba


Packit Service b886ba
Packit Service b886ba
<center>The Foreword,  Abstract, and Key Words follow:
Packit Service b886ba

</CENTER>
Packit Service b886ba

Packit Service b886ba
FIPS PUB 180-1
Packit Service b886ba
FEDERAL INFORMATION
Packit Service b886ba
 PROCESSING STANDARDS PUBLICATION

Packit Service b886ba
Packit Service b886ba
1995 April 17
Packit Service b886ba
U.S. DEPARTMENT OF COMMERCE/National Institute of Standards and
Packit Service b886ba
Technology 

Packit Service b886ba
Packit Service b886ba

<center>SECURE HASH STANDARD

Packit Service b886ba
</CENTER>
Packit Service b886ba
Packit Service b886ba
U.S. DEPARTMENT OF COMMERCE, Ronald H. Brown,
Packit Service b886ba
Secretary
Packit Service b886ba
Packit Service b886ba
National Institute of Standards and Technology, Arati Prabhakar,
Packit Service b886ba
Director
Packit Service b886ba


<center>Foreword</CENTER>
Packit Service b886ba
     The Federal Information Processing Standards Publication Series
Packit Service b886ba
of the National Institute of Standards and Technology (NIST) is the official
Packit Service b886ba
publication relating to standards and guidelines adopted and promulgated
Packit Service b886ba
under the provisions of Section 111(d) of the Federal Property and
Packit Service b886ba
Administrative Services Act of 1949 as amended by the Computer Security
Packit Service b886ba
Act
Packit Service b886ba
of 1987, Public Law 100-235. These  mandates have given the Secretary of
Packit Service b886ba
Commerce and NIST important responsibilities for improving the utilization
Packit Service b886ba
and management of computers and related telecommunications systems in the
Packit Service b886ba
Federal Government. The NIST, through its Computer Systems Laboratory,
Packit Service b886ba
provides leadership, technical guidance, and coordination of Government
Packit Service b886ba
efforts in the development of standards and guidelines in these areas.
Packit Service b886ba


Packit Service b886ba
     Comments concerning Federal Information Processing Standards
Packit Service b886ba
Publications are welcomed and should be addressed to the Director,
Packit Service b886ba
Computer Systems Laboratory, National Institute of Standards and
Packit Service b886ba
Technology, Gaithersburg, MD 20899.
Packit Service b886ba


Packit Service b886ba
James H. Burrows, Director
Packit Service b886ba
Computer Systems Laboratory

Packit Service b886ba
Packit Service b886ba
<center>Abstract</CENTER>
Packit Service b886ba
    This standard specifies a Secure Hash Algorithm (SHA-1) which can
Packit Service b886ba
be used to generate a condensed representation of a message called a 
Packit Service b886ba
message digest.  The SHA-1 is required for use with the Digital Signature 
Packit Service b886ba
Algorithm (DSA) as specified in the Digital Signature Standard (DSS) and 
Packit Service b886ba
whenever a secure hash algorithm is required for Federal applications.
Packit Service b886ba
The SHA-1 is used by both the transmitter and intended receiver of a 
Packit Service b886ba
message in computing and verifying a digital signature.
Packit Service b886ba


Packit Service b886ba
Packit Service b886ba
Key words: computer security; digital signatures; Federal
Packit Service b886ba
Information 
Packit Service b886ba
Processing Standard (FIPS); hash algorithm.

Packit Service b886ba
Packit Service b886ba



Packit Service b886ba
<center>
Packit Service b886ba
<menu>Go Back to the Top.</MENU>
Packit Service b886ba
Return to the FIPS
Packit Service b886ba
Home Page</CENTER>
Packit Service b886ba



Packit Service b886ba
-->
Packit Service b886ba
</BODY></HTML>