home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / sci / crypt / 3240 < prev    next >
Encoding:
Internet Message Format  |  1992-09-14  |  23.6 KB

  1. Path: sparky!uunet!usc!wupost!waikato.ac.nz!aukuni.ac.nz!cs18.cs.aukuni.ac.nz!pgut1
  2. Newsgroups: sci.crypt
  3. Subject: SHS/SHA document
  4. Message-ID: <1992Sep15.071041.3309@cs.aukuni.ac.nz>
  5. From: pgut1@cs.aukuni.ac.nz (Peter Gutmann)
  6. Date: Tue, 15 Sep 1992 07:10:41 GMT
  7. Sender: pgut1@cs.aukuni.ac.nz (PeterClaus          Gutmann        )
  8. Organization: Computer Science Dept. University of Auckland
  9. Lines: 598
  10.  
  11. So many people asked for this after my recent postings that I've decided to
  12. post it here....
  13.  
  14.                   -------------
  15.  
  16.      On January 31, 1992, NIST published in the Federal Register a proposed
  17. Secure Hash Standard (SHS) designed to work with the proposed Digital
  18. Signature Standard (DSS).  I am taking the liberty to send you an electronic
  19. copy of the proposed standard's announcement section, technical
  20. specifications and appendix A.  Because of mail limitations, I left off
  21. appendix B which is just a second example and the federal register
  22. solication for comments.  Miles Smid is the point of contact for comments
  23. which are due in 90 days.  The following is the core of the proposed
  24. standard.  Note that the name implies only that the algorithm, to the best
  25. of our knowledge, exhibits the qualities needed for a hashing algorithm
  26. acceptable to work with the DSS.  Also note the credit to Ron Rivest.
  27.  
  28.  
  29.            SECURE HASH STANDARD (SHS)
  30.  
  31.  
  32.                    Abstract
  33.  
  34.    This standard specifies a Secure Hash Algorithm (SHA) which can
  35. be used to generate a message digest for a message.  A message
  36. digest is a condensed version of the original message.  This
  37. algorithm can be used with the Digital Signature Standard (DSS). 
  38.  
  39. Key words: ADP security, computer security, digital signatures,
  40. Federal Information Processing Standard, hash algorithm.
  41.  
  42. Name of Standard: Secure Hash Standard.
  43.  
  44. Category of Standard: ADP Operations, Computer Security.
  45.  
  46. Explanation: This Standard specifies a Secure Hash Algorithm (SHA),
  47. which is necessary to ensure the security of the Digital Signature
  48. Algorithm (DSA). When a message of any length < 2^64 bits is input,
  49. the SHA produces a 160-bit output called a message digest.  The
  50. message digest is then input to the DSA which computes the
  51. signature for the message.  Signing the message digest rather than
  52. the message often improves the efficiency of the process, because
  53. the message digest is usually much smaller than the message.  The
  54. same message digest should be obtained by the verifier of the
  55. signature when the received version of the message is used as input
  56. to the SHA.  The SHA is called secure because it is designed to be
  57. computationally infeasible to recover a message corresponding to a
  58. given message digest, or to find two different messages which
  59. produce the same message digest.  Any change to a message in
  60. transit will, with very high probability, result in a different
  61. message digest, and the signature will fail to verify.  The SHA is
  62. based on principles similar to those used by Professor Ronald L. Rivest
  63. of MIT when designing the MD4 hash algorithm ("The MD4 Message Digest 
  64. Algorithm," Advances in Cryptology - CRYPTO '90 Proceedings, 
  65. Springer-Verlag, 1991, pp. 303-311).
  66.  
  67. Approving Authority: Secretary of Commerce.
  68.  
  69. Maintenance  Agency: Computer Systems Laboratory, National
  70. Institute of Standards and Technology.
  71.  
  72.  
  73. Applicability: This standard is applicable to all Federal
  74. departments and agencies for the protection of unclassified
  75. information that is not subject to section 2315 of Title 10, United
  76. States Code, or section 3502(2) of Title 44, United States Code. 
  77. This standard is required for use with the Digital Signature
  78. Standard and whenever a secure hash algorithm is required for
  79. federal applications.  Private and commercial organizations are
  80. encouraged to adopt and use this standard. 
  81.  
  82. Applications: The SHA is appropriate for use with the Digital
  83. Signature Standard, which in turn may be used in electronic mail,
  84. electronic funds transfer, software distribution, data storage, and
  85. other applications which require data integrity assurance and data
  86. origin authentication.  The SHA can also be used whenever it is
  87. necessary to generate a condensed version of a message.
  88.  
  89. Implementations: The SHA may be implemented in software, firmware,
  90. hardware, or any combination thereof.  Only implementations of the
  91. SHA that are validated by NIST will be considered as complying with
  92. this standard.  Information about the requirements for validating
  93. implementations of this standard can be obtained from the National
  94. Institute of Standards and Technology, Computer Systems Laboratory,
  95. Attn: SHS Validation, Gaithersburg, MD 20899.
  96.  
  97. Export Control: Implementations of this standard are subject to
  98. Federal Government export controls as specified in Title 15, Code
  99. of Federal Regulations, Parts 768 through 799.  Exporters are
  100. advised to contact the Department of Commerce, Bureau of Export
  101. Administration for more information.
  102.  
  103. Patents: Implementations of the SHA in this standard may be covered
  104. by U.S. and foreign patents.
  105.  
  106. Implementation Schedule: This standard becomes effective six months
  107. after the publication date of this FIPS PUB.
  108.  
  109. Specifications: Federal Information Processing Standard (FIPS YY)
  110. Secure Hash Standard (affixed).
  111.  
  112. Cross Index:
  113.  
  114.    a. FIPS PUB 46-1, Data Encryption Standard.
  115.  
  116.    b. FIPS PUB 73, Guidelines for Security of Computer            
  117.       Applications.
  118.  
  119.    c. FIPS PUB 140-1, Security Requirements for Cryptographic     
  120.       Modules.
  121.  
  122.    d. FIPS PUB XX, Digital Signature Standard.
  123.  
  124. Qualifications: While it is the intent of this standard to specify
  125. a secure hash algorithm, conformance to this standard does not
  126. assure that a particular implementation is secure.  The responsible
  127. authority in each agency or department shall assure that an overall
  128. implementation provides an acceptable level of security.  This
  129. standard will be reviewed every five years in order to assess its
  130. adequacy.
  131.  
  132. Waiver Procedure: Under certain exceptional circumstances, the
  133. heads of Federal departments and agencies may approve waivers to
  134. Federal Information Processing Standards (FIPS).  The head of such
  135. agency may redelegate such authority only to a senior official
  136. designated pursuant to section 3506(b) of Title 44, United States
  137. Code.  Waiver shall be granted only when:
  138.  
  139.    a. Compliance with a standard would adversely affect the       
  140.       accomplishment of the mission of an operator of a Federal   
  141.       computer system; or
  142.  
  143.    b. Compliance with a standard would cause a major adverse
  144.       financial impact on the operator which is not offset by
  145.       Government-wide savings.
  146.  
  147. Agency heads may act upon a written waiver request containing the
  148. information detailed above.  Agency heads may also act without a
  149. written waiver request when they determine that conditions for
  150. meeting the standard cannot be met.  Agency heads may approve
  151. waivers only by a written decision which explains the basis on
  152. which the agency head made the required finding(s).  A copy of
  153. each decision, with procurement sensitive or classified portions
  154. clearly identified, shall be sent to: National Institute of
  155. Standards and Technology; ATTN: FIPS Waiver Decisions, Technology
  156. Building, Room B-154, Gaithersburg, MD 20899.
  157.  
  158. In addition, notice of each waiver granted and each delegation of
  159. authority to approve waivers shall be sent promptly to the
  160. Committee on Government Operations of the House of Representatives
  161. and the Committee on Government Affairs of the Senate and shall be
  162. published promptly in the Federal Register.
  163.  
  164. When the determination on a waiver applies to the procurement of
  165. equipment and/or services, a notice of the waiver determination
  166. must be published in the Commerce Business Daily as a part of the
  167. notice of solicitation for offers of an acquisition or, if the
  168. waiver determination is made after that notice is published, by
  169. amendment to such notice.
  170.  
  171. A copy of the waiver, any supporting documents, the document
  172. approving the waiver and any accompanying documents, with such
  173. deletions as the agency is authorized and decides to make under 5
  174. United States Code Section 552(b), shall be part of the procurement
  175. documentation and retained by the agency.
  176.  
  177.  
  178.              Specifications for a
  179.  
  180.  
  181.                SECURE HASH STANDARD (SHS)
  182.  
  183.  
  184.                 1. INTRODUCTION
  185.  
  186.    The Secure Hash Algorithm (SHA) specified in this standard is
  187. necessary to ensure the security of the Digital Signature Standard. 
  188. When a message of length < 2^64 bits is input, the SHA produces a
  189. 160-bit representation of the message called the message digest. 
  190. The message digest is used during generation of a signature for the
  191. message.  The same message digest should be computed for the
  192. received version of the message, during the process of verifying
  193. the signature.  Any change to the message in transit will, with
  194. very high probability, result in a different message digest, and
  195. the signature will fail to verify.
  196.  
  197.    The SHA is designed to have the following properties: it is
  198. computationally infeasible to recover a message corresponding to a
  199. given message digest, or to find two different messages which
  200. produce the same message digest.
  201.  
  202.              2. BIT STRINGS AND INTEGERS
  203.  
  204.    The following terminology related to bit strings and integers
  205. will be used:
  206.       
  207.    a. hex digit = 0, 1, ... , 9, a, ... , f.  A hex digit is the  
  208.       representation of a 4-bit string.  Examples: 7 = 0111, a =  
  209.       1010.
  210.  
  211.    b. word = 32-bit string b(31) b(30) ... b(0).  A word may be represented
  212.  
  213.       as a sequence of 8 hex digits.  To convert the latter to    
  214.       a 32-bit string, each hex digit is converted to a 4-bit     
  215.       string as in (a).  Example: 
  216.  
  217.      a103fe23 = 1010 0001 0000 0011 1111 1110 0010 0011.
  218.  
  219.       A word is also the representation of an unsigned integer    
  220.       between 0 and 2^32 - 1, inclusive, with the most significant 
  221.       bit first.  Example: the hex string a103fe23 represents     
  222.       the decimal integer 2701393443.
  223.  
  224.    c. block = 512-bit string.  A block may be represented as a    
  225.       sequence of 16 words.
  226.  
  227.    d. integer: each integer x in the standard will satisfy 0 <=
  228.       x < 2^64.  For the purpose of this standard, "integer" and   
  229.       "unsigned integer" are equivalent.  If an integer x         
  230.       satisfies 0 <= x < 2^32, x may be represented as a word as in     
  231.       (b).  If 2^32 <= x < 2^64, then x = 2^32 y + z where 0 <= y < 2^32 
  232.       and 0 <= z < 2^32.  Hence y and z can be represented as words A and B,
  233.  
  234.       respectively, and x can be represented as the pair of       
  235.       words (A,B).
  236.  
  237.    Suppose 0 <= x < 2^32.  To convert x to a 32-bit string, the
  238. following algorithm may be employed:
  239.  
  240.       y(0) = x;
  241.       for i = 0 to 31 do
  242.     {
  243.     b(i) = 1 if y(i) is odd, b(i) = 0 if y(i) is even;
  244.     y(i+1) = (y(i) - b(i))/2;
  245.     }
  246.  
  247.    Then x has the 32-bit representation b(31) b(30) ... b(0).  Example:
  248.  
  249.       25 = 00000000 00000000 00000000 00011001
  250.      = hex 00000019.
  251.  
  252.    If 2^32 <= x < 2^64, the 2-word representation of x is obtained
  253. similarly. 
  254. Example:
  255.  
  256.       2^35 + 25 = 8 * 2^32 + 25
  257.            = 00000000 00000000 00000000 00001000
  258.          00000000 00000000 00000000 00011001
  259.            = hex 00000008 00000019.
  260.  
  261.    Conversely, the string b(31) b(30) ... b(0) represents the integer
  262.  
  263.       b(31) * 2^31 + b(30) * 2^30 + ... + b(1) * 2 + b(0).
  264.  
  265.               3. OPERATIONS ON WORDS
  266.    
  267.    The following logical operators will be applied to words:   
  268.  
  269.       AND    =  bitwise logical and.
  270.  
  271.       OR    =  bitwise logical inclusive-or.
  272.     
  273.       XOR  =  bitwise logical exclusive-or.
  274.  
  275.       ~x   =  bitwise logical complement of x.
  276.  
  277.    Example: 
  278.  
  279.         01101100101110011101001001111011
  280.       XOR   01100101110000010110100110110111
  281.         --------------------------------
  282.     =   00001001011110001011101111001100.
  283.  
  284.    Another operation on words is A + B.  This is defined as
  285. follows: words A and B represent integers x and y, where 0 <= x < 2^32
  286. and 0 <= y < 2^32.  Compute 
  287.  
  288.       z = (x + y) mod 2^32.
  289.  
  290.    Then 0 <= z < 2^32. Convert z to a word, C, and define A + B = C.
  291.  
  292.    Another function on words is S(n,X), where X is a word and n is
  293. an integer with 0 <= n < 32.  This is defined by
  294.  
  295.       S(n,X) = (X << n) OR (X >> 32-n).
  296.  
  297.    In the above, X << n is obtained as follows: discard the
  298. leftmost n bits of X and then pad the result with n zeroes on the
  299. right (the result will still be 32 bits).  X >> m is obtained by
  300. discarding the rightmost m bits of X and then padding the result
  301. with m zeroes on the left.  Thus S(n,X) is equivalent to a circular
  302. shift of X by n positions to the left.
  303.  
  304.             4. MESSAGE PADDING
  305.  
  306.    The SHA takes bit strings as input.  Thus, for the purpose of
  307. this standard, a message will be considered to be a bit string. 
  308. The length of the message is the number of bits (the empty message
  309. has length 0).  If the number of bits in a message is a multiple of
  310. 8, for compactness we can represent the message in hex.
  311.  
  312.    Suppose a message has length L < 2^64.  Before it is input to the
  313. SHA, the message is padded on the right as follows:
  314.  
  315.    a. "1" is appended.  Example: if the original message is       
  316.       "01010011", this is padded to "010100111".
  317.  
  318.    b. If necessary, "0"s are then appended until the number of bits 
  319.       in the padded message is congruent to 448 modulo 512.       
  320.       Example: suppose the original message is the bit string
  321.      
  322.      01100001 01100010 01100011 01100100 01100101.
  323.  
  324.       After step (a) this gives
  325.  
  326.      01100001 01100010 01100011 01100100 01100101 1.
  327.  
  328.       The number of bits in the above is 41; we pad with 407 "0"s 
  329.       to make the length of the padded message congruent to 448   
  330.       modulo 512.  This gives (in hex)
  331.  
  332.  
  333.      61626364 65800000 00000000 00000000
  334.      00000000 00000000 00000000 00000000
  335.      00000000 00000000 00000000 00000000
  336.      00000000 00000000.
  337.  
  338.       Note that the padding is arranged so that at this point
  339.       the padded message contains 16s + 14 words, for some s >=
  340.       0.
  341.  
  342.    c. Obtain the 2-word representation of L = the number of bits in 
  343.       the original message.  If L < 2^32 then the first word is all 
  344.       zeroes.  Append these two words to the padded message.      
  345.       Example: suppose the original message is as in (b). Then L = 
  346.       40 (note that L is computed before any padding). The two-word 
  347.       representation of 40 is hex 00000000 00000028.  Hence the   
  348.       final padded message is hex
  349.  
  350.      61626364 65800000 00000000 00000000
  351.      00000000 00000000 00000000 00000000
  352.      00000000 00000000 00000000 00000000
  353.      00000000 00000000 00000000 00000028.
  354.  
  355.    The final padded message will contain 16N words for some N > 0.
  356. Example: in (c) above, the final padded message has N = 1. The
  357. final padded message may be regarded as a sequence of N blocks M(1)
  358. , M(2), ... , M(N), where each M(i) contains 16 words and M(1) is leftmost.
  359.  
  360.              5. FUNCTIONS USED
  361.  
  362.    A sequence of logical functions f(0,x,y,z), ... , f(79,x,y,z) is used in
  363. the
  364. SHA.  Each f operates on three 32-bit words {x,y,z} and produces a 32-bit
  365. word as output.  f(t,x,y,z) is defined as follows: for words x,y,z,
  366.  
  367.       f(t,x,y,z) = (x AND y) OR (~x AND z)             (0  <= t <= 19)
  368.  
  369.       f(t,x,y,z) = x XOR y XOR z                  (20 <= t <= 39)
  370.  
  371.       f(t,x,y,z) = (x AND y) OR (x AND z) OR (y AND z)    (40 <= t <= 59)
  372.  
  373.       f(t,x,y,z) = x XOR y XOR z                  (60 <= t <= 79).
  374.  
  375.               6. CONSTANTS USED
  376.  
  377.    A sequence of constant words K(0), K(1), ... , K(79) is used in the SHA.
  378. In hex these are given by
  379.  
  380.       K(t) = 5a827999         (0  <= t <= 19)
  381.  
  382.       K(t) = 6ed9eba1         (20 <= t <= 39)
  383.  
  384.       K(t) = 8f1bbcdc         (40 <= t <= 59)
  385.  
  386.       K(t) = ca62c1d6         (60 <= t <= 79).
  387.  
  388.              7. COMPUTING THE MESSAGE DIGEST
  389.    
  390.    The message digest is computed using the final padded message.
  391. The computation uses two buffers, each consisting of five 32-bit
  392. words, and a sequence of eighty 32-bit words.  The words of the
  393. first 5-word buffer are labeled A,B,C,D,E.  The words of the second
  394. 5-word buffer are labeled h0, h1, h2, h3, h4.  The words of the 80-
  395. word sequence are labeled W(0), W(1), ... , W(79).  A single word buffer
  396. TEMP is also employed.
  397.    
  398.    To generate the message digest, the 16-word blocks M(1), M(2), ...
  399. , M(N) defined in Section 4 are processed in order.  The processing
  400. of each M(i) involves 80 steps.
  401.  
  402.    Before processing any blocks, the {hj} are initialized as
  403. follows: in hex,
  404.  
  405.       h0 = 67452301
  406.  
  407.       h1 = efcdab89
  408.  
  409.       h2 = 98badcfe
  410.  
  411.       h3 = 10325476
  412.  
  413.       h4 = c3d2e1f0.
  414.  
  415.    Now M(1), M(2), ... , M(N) are processed.  To process M(i), we proceed as
  416. follows:
  417.  
  418.    a. Divide M(i) into 16 words W(0), W(1), ... , W(15), where W(0) is the
  419.       leftmost word.
  420.  
  421.    b. For t = 16 to 79 let W(t) = W(t-3) XOR W(t-8) XOR W(t-14) XOR W(t-16).
  422.  
  423.    c. Let A = h0, B = h1, C = h2, D = h3, E = h4.
  424.  
  425.    d. For t = 0 to 79 do
  426.  
  427.     TEMP = S(5,A) + f(t,B,C,D) + E + W(t) + K(t);
  428.  
  429.     E = D;  D = C;  C = S(30,B);  B = A; A = TEMP;
  430.  
  431.    e. Let h0 = h0 + A, h1 = h1 + B, h2 = h2 + C, h3 = h3 + D, h4 = h4 + E.
  432.  
  433.    After processing M(N), the message digest is the 160-bit string
  434. represented by the 5 words
  435.  
  436.       h0 h1 h2 h3 h4.
  437.  
  438.    The above assumes that the sequence W(0), ... , W(79) is implemented
  439. as an array of eighty 32-bit words.  This is efficient from the
  440. standpoint of minimization of execution time, since the addresses
  441. of W(t-3), ... , W(t-16) in step (b) are easily computed.  If space is at
  442. a premium, an alternative is to regard { W(t) } as a circular queue,
  443. which may be implemented using an array of sixteen 32-bit words
  444. W[0], ... W[15].  In this case, in hex let MASK = 0000000f.  Then
  445. processing of M(i) is as follows:
  446.  
  447.    aa. Divide M(i) into 16 words W[0], ... , W[15], where W[0] is the 
  448.        leftmost word.
  449.  
  450.    bb. Let A = h0, B = h1, C = h2, D = h3, E = h4.
  451.  
  452.    cc. For t = 0 to 79 do
  453.     
  454.      s = t AND MASK;
  455.  
  456.      if (t >= 16) W[s] = W[(s + 13) AND MASK] XOR W[(s + 8) AND 
  457.         
  458.         MASK] XOR W[(s + 2) AND MASK] XOR W[s];
  459.  
  460.      TEMP = S(5,A) + f(t,B,C,D) + E + W[s] + K(t);
  461.   
  462.      E = D; D = C; C = S(30,B); B = A; A = TEMP;
  463.  
  464.    dd. Let h0 = h0 + A, h1 = h1 + B, h2 = h2 + C, h3 = h3 + D, h4    
  465.        = h4 + E.
  466.  
  467.    Both (a) - (d) and (aa) - (dd) yield the same message digest.
  468. Although using (aa) - (dd) saves sixty-four 32-bit words of
  469. storage, it is likely to lengthen execution time due to the
  470. increased complexity of the address computations for the { W[t] }
  471. in step (cc).  Other computation methods which give identical
  472. results may be implemented in conformance with the standard.
  473.  
  474.    Examples are given in the appendices.
  475.  
  476.        APPENDIX A. A SAMPLE MESSAGE AND ITS MESSAGE DIGEST
  477.  
  478.    This appendix is for informational purposes only and is not
  479. required to meet the standard.
  480.  
  481.    Let the message be the ASCII binary-coded form of "abc", i.e.
  482.  
  483.       01100001 01100010 01100011.
  484.  
  485.    This message has length L = 24.  In step (a) of Section 4, we
  486. append "1", giving a new length of 25.  In step (b) we append 423
  487. "0"s.  In step (c) we append hex 00000000 00000018, the 2-word
  488. representation of 24.  Thus the final padded message consists of
  489. one block, so that N = 1 in the notation of Section 4.  The single
  490. block has hex words
  491.  
  492. W[ 0] = 61626380
  493. W[ 1] = 00000000
  494. W[ 2] = 00000000
  495. W[ 3] = 00000000
  496. W[ 4] = 00000000
  497. W[ 5] = 00000000
  498. W[ 6] = 00000000
  499. W[ 7] = 00000000
  500. W[ 8] = 00000000
  501. W[ 9] = 00000000
  502. W[10] = 00000000
  503. W[11] = 00000000
  504. W[12] = 00000000
  505. W[13] = 00000000
  506. W[14] = 00000000
  507. W[15] = 00000018
  508.  
  509.    Initial hex values of h:
  510.      
  511.      h0        h1        h2        h3        h4
  512.  
  513.       67452301  efcdab89  98badcfe  10325476  c3d2e1f0
  514.  
  515.    Hex values of A,B,C,D,E after pass t of the "for t = 0 to 79"
  516. loop (step (d) or (cc)) in Section 7:
  517.  
  518.         A        B        C        D        E
  519.  
  520. t =  0:  0116fc33 67452301 7bf36ae2 98badcfe 10325476
  521. t =  1:  8990536d 0116fc33 59d148c0 7bf36ae2 98badcfe
  522. t =  2:  a1390f08 8990536d c045bf0c 59d148c0 7bf36ae2
  523. t =  3:  cdd8e11b a1390f08 626414db c045bf0c 59d148c0
  524. t =  4:  cfd499de cdd8e11b 284e43c2 626414db c045bf0c
  525. t =  5:  3fc7ca40 cfd499de f3763846 284e43c2 626414db
  526. t =  6:  993e30c1 3fc7ca40 b3f52677 f3763846 284e43c2
  527. t =  7:  9e8c07d4 993e30c1 0ff1f290 b3f52677 f3763846
  528. t =  8:  4b6ae328 9e8c07d4 664f8c30 0ff1f290 b3f52677
  529. t =  9:  8351f929 4b6ae328 27a301f5 664f8c30 0ff1f290
  530. t = 10:  fbda9e89 8351f929 12dab8ca 27a301f5 664f8c30
  531. t = 11:  63188fe4 fbda9e89 60d47e4a 12dab8ca 27a301f5
  532. t = 12:  4607b664 63188fe4 7ef6a7a2 60d47e4a 12dab8ca
  533. t = 13:  9128f695 4607b664 18c623f9 7ef6a7a2 60d47e4a
  534. t = 14:  196bee77 9128f695 1181ed99 18c623f9 7ef6a7a2
  535. t = 15:  20bdd62f 196bee77 644a3da5 1181ed99 18c623f9
  536. t = 16:  ed2ff4a3 20bdd62f c65afb9d 644a3da5 1181ed99
  537. t = 17:  565df73c ed2ff4a3 c82f758b c65afb9d 644a3da5
  538. t = 18:  550b1e7f 565df73c fb4bfd28 c82f758b c65afb9d
  539. t = 19:  fe0f9e4b 550b1e7f 15977dcf fb4bfd28 c82f758b
  540. t = 20:  b4d4c943 fe0f9e4b d542c79f 15977dcf fb4bfd28
  541. t = 21:  43993572 b4d4c943 ff83e792 d542c79f 15977dcf
  542. t = 22:  f7106486 43993572 ed353250 ff83e792 d542c79f
  543. t = 23:  775924e6 f7106486 90e64d5c ed353250 ff83e792
  544. t = 24:  45a7ef23 775924e6 bdc41921 90e64d5c ed353250
  545. t = 25:  ccead674 45a7ef23 9dd64939 bdc41921 90e64d5c
  546. t = 26:  02d0c6d1 ccead674 d169fbc8 9dd64939 bdc41921
  547. t = 27:  070c437f 02d0c6d1 333ab59d d169fbc8 9dd64939
  548. t = 28:  301e90be 070c437f 40b431b4 333ab59d d169fbc8
  549. t = 29:  b898c685 301e90be c1c310df 40b431b4 333ab59d
  550. t = 30:  669723e2 b898c685 8c07a42f c1c310df 40b431b4
  551. t = 31:  d9316f96 669723e2 6e2631a1 8c07a42f c1c310df
  552. t = 32:  db81a5c7 d9316f96 99a5c8f8 6e2631a1 8c07a42f
  553. t = 33:  99c8dfb2 db81a5c7 b64c5be5 99a5c8f8 6e2631a1
  554. t = 34:  6be6ae07 99c8dfb2 f6e06971 b64c5be5 99a5c8f8
  555. t = 35:  c01cc62c 6be6ae07 a67237ec f6e06971 b64c5be5
  556. t = 36:  6433fdd0 c01cc62c daf9ab81 a67237ec f6e06971
  557. t = 37:  0a33ccf7 6433fdd0 3007318b daf9ab81 a67237ec
  558. t = 38:  4bf58dc8 0a33ccf7 190cff74 3007318b daf9ab81
  559. t = 39:  ebbd5233 4bf58dc8 c28cf33d 190cff74 3007318b
  560. t = 40:  825a3460 ebbd5233 12fd6372 c28cf33d 190cff74
  561. t = 41:  b62cbb93 825a3460 faef548c 12fd6372 c28cf33d
  562. t = 42:  aa3f9707 b62cbb93 20968d18 faef548c 12fd6372
  563. t = 43:  fe1d0273 aa3f9707 ed8b2ee4 20968d18 faef548c
  564. t = 44:  57ad526b fe1d0273 ea8fe5c1 ed8b2ee4 20968d18
  565. t = 45:  93ebbe3f 57ad526b ff87409c ea8fe5c1 ed8b2ee4
  566. t = 46:  f9adf47b 93ebbe3f d5eb549a ff87409c ea8fe5c1
  567. t = 47:  875586d2 f9adf47b e4faef8f d5eb549a ff87409c
  568. t = 48:  d0a22ffb 875586d2 fe6b7d1e e4faef8f d5eb549a
  569. t = 49:  c12b6426 d0a22ffb a1d561b4 fe6b7d1e e4faef8f
  570. t = 50:  ebc90281 c12b6426 f4288bfe a1d561b4 fe6b7d1e
  571. t = 51:  e7d0ec05 ebc90281 b04ad909 f4288bfe a1d561b4
  572. t = 52:  7cb98e55 e7d0ec05 7af240a0 b04ad909 f4288bfe
  573. t = 53:  0d48dba2 7cb98e55 79f43b01 7af240a0 b04ad909
  574. t = 54:  c2d477bf 0d48dba2 5f2e6395 79f43b01 7af240a0
  575. t = 55:  236bd48d c2d477bf 835236e8 5f2e6395 79f43b01
  576. t = 56:  9b4364d6 236bd48d f0b51def 835236e8 5f2e6395
  577. t = 57:  5b8c33c9 9b4364d6 48daf523 f0b51def 835236e8
  578. t = 58:  be2a4656 5b8c33c9 a6d0d935 48daf523 f0b51def
  579. t = 59:  8ff296db be2a4656 56e30cf2 a6d0d935 48daf523
  580. t = 60:  c10c8993 8ff296db af8a9195 56e30cf2 a6d0d935
  581. t = 61:  6ac23cbf c10c8993 e3fca5b6 af8a9195 56e30cf2
  582. t = 62:  0708247d 6ac23cbf f0432264 e3fca5b6 af8a9195
  583. t = 63:  35d201f8 0708247d dab08f2f f0432264 e3fca5b6
  584. t = 64:  969b2fc8 35d201f8 41c2091f dab08f2f f0432264
  585. t = 65:  3cac6514 969b2fc8 0d74807e 41c2091f dab08f2f
  586. t = 66:  14cd9a35 3cac6514 25a6cbf2 0d74807e 41c2091f
  587. t = 67:  ba564047 14cd9a35 0f2b1945 25a6cbf2 0d74807e
  588. t = 68:  c241f74d ba564047 4533668d 0f2b1945 25a6cbf2
  589. t = 69:  2896b70f c241f74d ee959011 4533668d 0f2b1945
  590. t = 70:  564bbed1 2896b70f 70907dd3 ee959011 4533668d
  591. t = 71:  8fa15d5a 564bbed1 ca25adc3 70907dd3 ee959011
  592. t = 72:  9a226c11 8fa15d5a 5592efb4 ca25adc3 70907dd3
  593. t = 73:  f0b94489 9a226c11 a3e85756 5592efb4 ca25adc3
  594. t = 74:  1809d5e2 f0b94489 66889b04 a3e85756 5592efb4
  595. t = 75:  b86c5a40 1809d5e2 7c2e5122 66889b04 a3e85756
  596. t = 76:  dfe7e487 b86c5a40 86027578 7c2e5122 66889b04
  597. t = 77:  70286c07 dfe7e487 2e1b1690 86027578 7c2e5122
  598. t = 78:  24ff7ed5 70286c07 f7f9f921 2e1b1690 86027578
  599. t = 79:  9a1f95a8 24ff7ed5 dc0a1b01 f7f9f921 2e1b1690
  600.  
  601.    After processing, values of h:
  602.  
  603.      h0        h1        h2        h3        h4
  604.  
  605.       0164b8a9  14cd2a5e  74c4f7ff   082c4d97  f1edf880
  606.  
  607.    Message digest =  0164b8a9 14cd2a5e 74c4f7ff 082c4d97 f1edf880
  608.  
  609.