`Technology Administration
`National Institute of Standards and Technology
`
`FIPS PUB 180-1
`
`FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION
`(Supersedes FIPS PUB 180—1993 May 11)
`
`SECURE HASH STANDARD
`
`Category: Computer Security
`
`1995 APRIL 17
`
`o
`
`0Q 3
`Q.
`</>
`CL
`
`ta
`
`0.A3
`
`NO.180-1
`
`1995
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 1
`
`
`
`Patent Owner, Bot M8 LLC - EX. 2020, p. 2 .
`
`0
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 2
`
`
`
`FIPS PUB 180-1
`
`FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION
`(Supersedes FIPS PUB 180—1993 May 11)
`
`SECURE HASH STANDARD
`
`Category: Computer Security
`
`Computer Systems Laboratory
`National Institute of Standards and Technology
`Gaithersburg, MD 20899-0001
`
`Issued April 17, 1995
`
`U.S. Department of Commerce
`Ronald H. Brown, Secretary
`
`Technology Administration
`Mary L. Good, Under Secretary for Technology
`
`National Institute of Standards
`and Technology
`Arati Prabhakar, Director
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 3
`
`
`
`Foreword
`
`The Federal Information Processing Standards Publication Series of the National
`Institute of Standards and Technology (NIST) is the official publication relating to
`standards and guidelines adopted and promulgated under the provisions of Section
`111(d) of the Federal Property and Administrative Services Act of 1949 as amended by
`the Computer Security Act of 1987, Public Law 100-235. These mandates have given the
`Secretary of Commerce and NIST important responsibilities for improving the utilization
`and management of computer and related telecommunications systems in the Federal
`Government. The NIST, through its Computer Systems Laboratory, provides leadership,
`technical guidance, and coordination of Government efforts in the development of stan¬
`dards and guidelines in these areas.
`Comments concerning Federal Information Processing Standards Publications are
`welcomed and should be addressed to the Director, Computer Systems Laboratory,
`National Institute of Standards and Technology, Gaithersburg, MD 20899.
`
`James H. Burrows, Director
`Computer Systems Laboratory
`
`Abstract
`
`This standard specifies a Secure Hash Algorithm (SHA-1) which can be used to
`generate a condensed representation of a message called a message digest. The SHA-1
`is required for use with the Digital Signature Algorithm (DSA) as specified in the Digital
`Signature Standard (DSS) and whenever a secure hash algorithm is required for Federal
`applications. The SHA-1 is used by both the transmitter and intended receiver of a
`message in computing and verifying a digital signature.
`
`Key words: computer security; digital signatures; Federal Information Processing
`Standard (FIPS); hash algorithm.
`
`National Institute of Standards
`and Technology
`FIPS PUB 180-1
`25 pages (Apr. 17, 1995)
`CODEN: FIPPAT
`
`U.S. Government Printing Office
`Washington: 1995
`
`For sale by the National
`Technical Information
`Service
`U.S. Department of Commerce
`Springfield, VA 22161
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 4
`
`
`
`FIPS PUB 180-1
`
`Federal Information
`Processing Standards Publication 180-1
`
`1995 April 17
`
`Announcing the
`
`SECURE HASH STANDARD
`
`Federal Information Processing Standards Publications (FIPS PUBS) are issued by the National
`Institute of Standards and Technology (NIST) after approval by the Secretary' of Commerce
`pursuant to Section 111(d) of the Federal Property and Administrative Services Act of 1949 as
`amended by the Computer Security Act of 1987, Public Law 100-235.
`
`Name of Standard: Secure Hash Standard.
`
`Category of Standard: Computer Security.
`
`Explanation: This Standard specifies a secure hash algorithm, SHA-1, for computing a
`condensed representation of a message or a data file. When a message of any length < 2M bits
`is input, the SHA-1 produces a 160-bit output called a message digest. The message digest can
`then be input to the Digital Signature Algorithm (DSA) which generates or verifies the signature
`for the message (see Figure 1). Signing the message digest rather than the message often
`improves the efficiency of the process because the message digest is usually much smaller in size
`than the message. The same hash algorithm must be used by the verifier of a digital signature
`as was used by the creator of the digital signature.
`
`The SHA-1 is called secure because it is computationally infeasible to find a message which
`corresponds to a given message digest, or to find two different messages which produce the
`same message digest. Any change to a message in transit will, with very high probability, result
`in a different message digest, and the signature will fail to verify. SHA-1 is a technical revision
`of SHA (FIPS 180). A circular left shift operation has been added to the specifications in
`section 7, line b, page 9 of FIPS 180 and its equivalent in section 8, line c, page 10 of FIPS
`180. This revision improves the security provided by this standard. The SHA-1 is based on
`principles similar to those used by Professor Ronald L. Rivest of MIT when designing the MD4
`message digest algorithm1, and is closely modelled after that algorithm.
`
`lHThe MD4 Message Digest Algorithm," Advances in Cryptology - CRYPTO ’90
`Proceedings, Springer-Verlag, 1991, pp. 303-311.
`
`1
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 5
`
`
`
`FIPS PUB 180-1
`
`HH! Signature Generation HH§ HIH Signature Verification H§H
`
`Message X
`J-
`
`SHA-1
`
`Message Digest
`
`Received Message
`
`SHA-1
`
`Message Digest
`
`t
`X
`Digital "J" Public
`^^7 Operation
`
`Pri vate Digi tal
`DSA Sign
`Opera ti on
`Key Si gna tux e Signature Key
`
`DSA Verify
`
`Yes - Signature Verified
`or
`No - Signature Verification Failed
`
`Figure 1: Using the SHA-1 with the DSA
`
`Approving Authority: Secretary of Commerce.
`
`Maintenance Agency: U.S. Department of Commerce, National Institute of Standards and
`Technology, Computer Systems Laboratory.
`
`Applicability: This standard is applicable to all Federal departments and agencies for the
`protection of unclassified information that is not subject to section 2315 of Title 10, United
`States Code, or section 3502(2) of Title 44, United States Code. This standard is required for
`use with the Digital Signature Algorithm (DSA) as specified in the Digital Signature Standard
`(DSS) and whenever a secure hash algorithm is required for Federal applications. Private and
`commercial organizations are encouraged to adopt and use this standard.
`
`Applications: The SHA-1 may be used with the DSA in electronic mail, electronic funds
`transfer, software distribution, data storage, and other applications which require data integrity
`assurance and data origin authentication. The SHA-1 may also be used whenever it is necessary
`to generate a condensed version of a message.
`
`2
`
`#
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 6
`
`
`
`FIPS PUB 180-1
`
`Implementations: The SHA-1 may be implemented in software, firmware, hardware, or any
`combination thereof. Only implementations of the SHA-1 that are validated by NIST will be
`considered as complying with this standard. Information about the requirements for validating
`implementations of this standard can be obtained from the National Institute of Standards and
`Technology, Computer Systems Laboratory, Attn: SHS Validation, Gaithersburg, MD 20899.
`
`Export Control: Implementations of this standard are subject to Federal Government export
`controls as specified in Title 15, Code of Federal Regulations, Parts 768 through 799. Exporters
`are advised to contact the Department of Commerce, Bureau of Export Administration for more
`information.
`
`Patents: Implementations of the SHA-1 in this standard may be covered by U.S. and foreign
`patents.
`
`Implementation Schedule: This standard becomes effective October 2, 1995.
`
`Specifications: Federal Information Processing Standard (FIPS) 180-1, Secure Hash Standard
`(affixed).
`
`Cross Index:
`
`a. FIPS PUB 46-2, Data Encryption Standard.
`
`b. FIPS PUB 73, Guidelines for Security of Computer Applications.
`
`c. FIPS PUB 140-1, Security Requirements for Cryptographic Modules.
`
`d. FIPS PUB 186, Digital Signature Standard.
`
`e. Federal Information Resources Management Regulations (FIRMR) subpart 201.20.303,
`Standards, and subpart 201.39.1002, Federal Standards.
`
`Objectives: The objectives of this standard are to:
`
`a. Specify the secure hash algorithm required for use with the Digital Signature Standard
`(FIPS 186) in the generation and verification of digital signatures;
`
`b. Specify the secure hash algorithm to be used whenever a secure hash algorithm is
`required for Federal applications; and
`
`c. Encourage the adoption and use of the specified secure hash algorithm by private and
`commercial organizations.
`
`3
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 7
`
`
`
`FIPS PUB 180-1
`
`Qualifications: While it is the intent of this standard to specify a secure hash algorithm,
`conformance to this standard does not assure that a particular implementation is secure. The
`responsible authority in each agency or department shall assure that an overall implementation
`provides an acceptable level of security. This standard will be reviewed every five years in
`order to assess its adequacy.
`
`Waiver Procedure: Under certain exceptional circumstances, the heads of Federal departments
`and agencies may approve waivers to Federal Information Processing Standards (FIPS). The
`head of such agency may redelegate such authority only to a senior official designated pursuant
`to section 3506(b) of Title 44, United States Code. Waiver shall be granted only when:
`
`a. Compliance with a standard would adversely affect the accomplishment of the mission
`of an operator of a Federal computer system; or
`
`b. Compliance with a standard would cause a major adverse financial impact on the operator
`which is not offset by Govemmentwide savings.
`
`Agency heads may act upon a written waiver request containing the information detailed above.
`Agency heads may also act without a written waiver request when they determine that conditions
`for meeting the standard cannot be met. Agency heads may approve waivers only by a written
`decision which explains the basis on which the agency head made the required finding(s). A
`copy of each decision, with procurement sensitive or classified portions clearly identified, shall
`be sent to: National Institute of Standards and Technology; ATTN: FIPS Waiver Decisions,
`Technology Building, Room B-154, Gaithersburg, MD 20899.
`
`In addition, notice of each waiver granted and each delegation of authority to approve waivers
`shall be sent promptly to the Committee on Government Operations of the House of
`Representatives and the Committee on Governmental Affairs of the Senate and shall be published
`promptly in the Federal Register.
`
`When the determination on a waiver applies to the procurement of equipment and/or services,
`a notice of the waiver determination must be published in the Commerce Business Daily as a
`part of the notice of solicitation for offers of an acquisition or, if the waiver determination is
`made after that notice is published, by amendment to such notice.
`
`A copy of the waiver, any supporting documents, the document approving the waiver and any
`accompanying documents, with such deletions as the agency is authorized and decides to make
`under 5 United States Code Section 552(b), shall be part of the procurement documentation and
`retained by the agency.
`
`4
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 8
`
`
`
`FIPS PUB 180-1
`
`Where to Obtain Copies of the Standard: Copies of this publication are for sale by the
`National Technical Information Service, U.S. Department of Commerce, Springfield, VA 22161.
`When ordering, refer to Federal Information Processing Standards Publication 180-1
`(FIPSPUB180-1), and identify the title. When microfiche is desired, this should be specified.
`Prices are published by NTIS in current catalogs and other issuances. Payment may be made
`by check, money order, deposit account or charged to a credit card accepted by NTIS.
`
`%
`
`5
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 9
`
`
`
`FIPS PUB 180-1
`
`Federal Information
`Processing Standards Publication 180-1
`
`1995 April 17
`
`Specifications for the
`
`SECURE HASH STANDARD
`
`1. INTRODUCTION
`
`The Secure Hash Algorithm (SHA-1) is required for use with the Digital Signature Algorithm
`(DSA) as specified in the Digital Signature Standard (DSS) and whenever a secure hash
`algorithm is required for federal applications. For a message of length < 264 bits, the SHA-1
`produces a 160-bit condensed representation of the message called a message digest. The
`message digest is used during generation of a signature for the message. The SHA-1 is also
`used to compute a message digest for the received version of the message during the process of
`verifying the signature. Any change to the message in transit will, with very high probability,
`result in a different message digest, and the signature will fail to verify.
`
`The SHA-1 is designed to have the following properties: it is computationally infeasible to find
`a message which corresponds to a given message digest, or to find two different messages which
`produce the same message digest.
`
`2. BIT STRINGS AND INTEGERS
`
`The following terminology related to bit strings and integers will be used:
`
`a. A hex digit is an element of the set {0, 1, ... , 9, A, ... , F}. A hex digit
`is the representation of a 4-bit string. Examples: 7 = 0111, A = 1010.
`
`b. A word equals a 32-bit string which may be represented as a sequence of 8 hex digits.
`To convert a word to 8 hex digits each 4-bit string is converted to its hex equivalent as
`described in (a) above. Example:
`
`1010 0001 0000 0011 1111 1110 0010 0011. = A103FE23
`
`c. An integer between 0 and 2s2 - 1 inclusive may be represented as a word. The least
`significant four bits of the integer are represented by the right-most hex digit of the word
`representation. Example: the integer 291 = 28+25+2'+2° = 256+32+2 + 1 is
`represented by the hex word, 00000123.
`
`6
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 10
`
`
`
`FIPS PUB 180-1
`
`If z is an integer, 0 < z < 2M, then z = 232x + y where 0 < x < 232 and 0 < y <
`232. Since x and y can be represented as words X and Y, respectively, z can be
`represented as the pair of words (X,Y).
`
`d. block = 512-bit string. A block (e.g., B) may be represented as a sequence of 16
`words.
`
`3. OPERATIONS ON WORDS
`
`The following logical operators will be applied
`
`to words:
`
`Bitwise logical word operations
`
`X A Y
`
`X V Y
`
`= bitwise logical
`
`"and" of X and Y.
`
`= bitwise logical
`
`"inclusive-or" of X and Y.
`
`X XOR Y
`
`= bitwise logical
`
`"exclusive-or" of X and Y.
`
`~X
`
`Example:
`
`= bitwise logical
`
`"complement" of X.
`
`01101100101110011101001001111011
`XOR 01100101110000010110100110110111
`
`00001001011110001011101111001100
`
`b. The operation X + Y is defined as follows: words X and Y represent integers x and y,
`where 0 < x < 232 and 0 < y < 232. For positive integers n and m, let n mod m be
`the remainder upon dividing n by m. Compute
`
`z = (x + y) mod 232.
`
`Then 0 < z < 232. Convert z to a word, Z, and define Z = X + Y.
`
`c. The circular left shift operation !?(X), where X is a word and n is an integer with 0 <
`n < 32, is defined by
`
`S“(X) = (X < < n) V (X > > 32-n).
`
`In the above, X < < n is obtained as follows: discard the left-most n bits of X and then
`pad the result with n zeroes on the right (the result will still be 32 bits). X > > n is
`obtained by discarding the right-most n bits of X and then padding the result with n
`
`7
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 11
`
`
`
`FIPS PUB 180-1
`
`zeroes on the left. Thus Sn(X) is equivalent to a circular shift of X by n positions to the
`left.
`
`4. MESSAGE PADDING
`
`The SHA-1 is used to compute a message digest for a message or data file that is provided as
`input. The message or data file should be considered to be a bit string. The length of the
`message is the number of bits in the message (the empty message has length 0). If the number
`of bits in a message is a multiple of 8, for compactness we can represent the message in hex.
`The purpose of message padding is to make the total length of a padded message a multiple of
`512. The SHA-1 sequentially processes blocks of 512 bits when computing the message digest.
`The following specifies how this padding shall be performed. As a summary, a "1" followed
`by m "0"s followed by a 64-bit integer are appended to the end of the message to produce a
`padded message of length 512 x n. The 64-bit integer is /, the length of the original message.
`The padded message is then processed by the SHA-1 as n 512-bit blocks.
`
`Suppose a message has length / < 2M. Before it is input to the SHA-1, the message is padded
`on the right as follows:
`
`a. "1" is appended. Example: if the original message is "01010000", this is padded to
`"010100001".
`
`b. "0"s are appended. The number of "0"s will depend on the original length of the
`message. The last 64 bits of the last 512-bit block are reserved for the length / of the
`original message.
`
`Example: Suppose the original message is the bit string
`
`01100001 01100010 01100011 01100100 01100101.
`
`After step (a) this gives
`
`01100001 01100010 01100011 01100100 01100101 1.
`
`Since / = 40, the number of bits in the above is 41 and 407 "0"s are appended, making
`the total now 448. This gives (in hex)
`
`61626364
`00000000
`00000000
`00000000
`
`65800000
`00000000
`00000000
`00000000.
`
`00000000
`00000000
`00000000
`
`00000000
`00000000
`00000000
`
`c. Obtain the 2-word representation of /, the number of bits in the original message. If
`/ < 232 then the first word is all zeroes. Append these two words to the padded
`message.
`
`8
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 12
`
`
`
`FIPS PUB 180-1
`
`Example: Suppose the original message is as in (b). Then / = 40 (note that / is
`computed before any padding). The two-word representation of 40 is hex 00000000
`00000028. Hence the final padded message is hex
`
`61626364 65800000 00000000 00000000
`00000000 00000000 00000000 00000000
`00000000 00000000 00000000 00000000
`00000000 00000000 00000000 00000028.
`
`The padded message will contain 16n words for some n > 0. The padded message is regarded
`as a sequence of n blocks Mj , M2, ... , M„, where each contains 16 words and Mj contains
`the first characters (or bits) of the message.
`
`5. FUNCTIONS USED
`
`A sequence of logical functions f0, f,, ... , f79 is used in the SHA-1. Each f„ 0 < t < 79,
`operates on three 32-bit words and produces a 32-bit word as output. ft is defined as follows:
`for words, B, C, D,
`
`ft(B,C,D) = (B A C)
`
`V (~B A D)
`
`ft(B,C,D) = B XOR
`
`C XOR D
`
`(0 < t < 19)
`
`(20 < t < 39)
`
`ft(B,C,D) = (B A C)
`
`V (BAD) V (C A
`
`D) (40 < t < 59)
`
`ft(B,C,D) = B XOR
`
`C XOR D
`
`(60 < t < 79).
`
`A sequence of constant words Ko, K,, ... , K79 is used in the SHA-1. In hex these are given by
`
`6. CONSTANTS USED
`
`Kt = 5A827999
`
`(0 < t < 19)
`
`K, = 6ED9EBA1
`
`(20 < t < 39)
`
`K, = 8F1BBCDC
`
`(40 < t < 59)
`
`= CA62C1D6
`
`(60 < t < 79).
`
`9
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 13
`
`
`
`FIPS PUB 180-1
`
`7. COMPUTING THE MESSAGE DIGEST
`
`The message digest is computed using the final padded message. The computation uses two
`buffers, each consisting of five 32-bit words, and a sequence of eighty 32-bit words. The words
`of the first 5-word buffer are labeled A,B,C,D,E. The words of the second 5-word buffer are
`labeled H0, H,, H2, H3, H4. The words of the 80-word sequence are labeled W0, Wlt ... , W79.
`A single word buffer TEMP is also employed.
`
`To generate the message digest, the 16-word blocks M,, M2, ... , Mn defined in Section 4 are
`processed in order. The processing of each involves 80 steps.
`
`Before processing any blocks, the {Hj} are initialized as follows: in hex,
`
`H0 = 67452301
`
`H, = EFCDAB89
`
`H2 = 98BADCFE
`
`H3 = 10325476
`
`H4 = C3D2E1F0.
`
`Now M,, M2, ... , M„ are processed. To process M;, we proceed as follows:
`
`a. Divide M; into 16 words W0, W,, ... , W15, where W0 is the left-most word.
`
`b. For t = 16 to 79 let Wt = S'(Wt_3 XOR Wt_8 XOR WM4 XOR Wt,16).
`
`c. Let A = H0, B = H„ C = H2, D = H3, E = H4.
`
`d. For t = 0 to 79 do
`
`TEMP = S5(A) -(- ft(B,C,D) + E + Wt + Kt;
`
`E = D; D = C; C = S30(B); B = A; A = TEMP;
`
`e. Let H0 = H0 + A, H, = H, + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.
`
`After processing Mn, the message digest is the 160-bit string represented by the 5 words
`
`H0 H, H2 H3 H4.
`
`10
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 14
`
`
`
`FIPS PUB 180-1
`
`8. ALTERNATE METHOD OF COMPUTATION
`
`The above assumes that the sequence W0, , W79 is implemented as an array of eighty 32-bit
`words. This is efficient from the standpoint of minimization of execution time, since the
`addresses of Wt.3, ... , Wt.,6 in step (b) are easily computed. If space is at a premium, an
`alternative is to regard { Wt} as a circular queue, which may be implemented using an array
`of sixteen 32-bit words W[0], ... W[15]. In this case, in hex let MASK = 0000000F. Then
`processing of M; is as follows:
`
`a. Divide into 16 words W[0], ... , W[15], where W[0] is the left-most word.
`
`b. Let A = H0, B = H„ C = H2, D = H3, E = H4.
`
`c. For t = 0 to 79 do
`
`s = t A MASK;
`
`if (t > 16) W[s] = S'(W[(s + 13) A MASK] XOR W[(s + 8) A MASK] XOR
`W[(s 4- 2) A MASK] XOR W[s]);
`
`TEMP = S5(A) + ft(B,C,D) + E + W[s] + K,;
`
`E = D; D = C; C = S30(B); B = A; A = TEMP;
`
`d. Let H0 = H0 + A, Hj = H, + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.
`
`9. COMPARISON OF METHODS
`
`The methods of Sections 7 and 8 yield the same message digest. Although using the method of
`Section 8 saves sixty-four 32-bit words of storage, it is likely to lengthen execution time due to
`the increased complexity of the address computations for the {W[t]} in step (c). Other
`computation methods which give identical results may be implemented in conformance with the
`standard.
`
`11
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 15
`
`
`
`FIPS PUB 180-1
`
`APPENDIX A. A SAMPLE MESSAGE AND ITS MESSAGE DIGEST
`
`This appendix is for informational purposes only and is not required to meet the standard.
`
`Let the message be the ASCII binary-coded form of "abc", i.e.,
`
`01100001 01100010 01100011.
`
`This message has length / = 24. In step (a) of Section 4, we append "1". In step (b) we
`append 423 "0"s. In step (c) we append hex 00000000 00000018, the 2-word representation
`of 24. Thus the final padded message consists of one block, so that n = 1 in the notation of
`Section 4.
`
`The initial hex values of {Hj} are
`
`H0 = 67452301
`
`Hj = EFCDAB89
`
`H2 = 98BADCFE
`
`H3 = 10325476
`
`H4 = C3D2E1F0.
`
`Start processing block 1. The words of block 1 are
`
`W[0]
`W[l]
`W [ 2 ]
`W[3]
`W[4]
`W [ 5 ]
`W[6]
`W [ 7 ]
`W [ 8 ]
`W [ 9 ]
`W[10]
`W[ll]
`W[12]
`W [ 13 ]
`W [ 14 ]
`W [ 15 ]
`
`= 61626380
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000000
`= 00000018.
`
`The hex values of A,B,C,D,E after pass t of the "for t = 0 to 79" loop (step (d) of Section 7
`or step (c) of Section 8) are
`
`12
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 16
`
`
`
`A
`
`B
`
`C
`
`D
`
`E
`
`FIPS PUB 180-1
`
`t —
`0116FC3 3
`0
`t =
`8990536D
`1
`t =
`2 A1390F08
`t =
`3 CDD8E11B
`t =
`4 CFD499DE
`t =
`5
`3FC7CA40
`t =
`6
`993E30C1
`t =
`7
`9E8C07D4
`t =
`8
`4B6AE328
`t =
`9
`8351F929
`t = 10
`FBDA9E89
`t = 11
`63188FE4
`t = 12
`4607B664
`t = 13
`9128F695
`t = 14
`196BEE77
`t = 15
`20BDD62F
`t = 16
`4E925823
`t = 17
`82AA6728
`t = 18 DC64901D
`t = 19
`FD9E1D7D
`t = 20
`1A37B0CA
`t = 21
`33A23BFC
`t = 22
`21283486
`t = 23 D541F12D
`t = 24 C7567DC6
`t = 25
`48413BA4
`t = 26 BE35FBD5
`t = 27
`4AA84D97
`t = 28
`8370B52E
`t = 29 C5FBAF5D
`t = 30
`1267B407
`t = 31
`3B845D33
`t = 32
`046FAA0A
`t = 33
`2C0EBC11
`t = 34
`21796AD4
`t = 35 DCBBBOCB
`t = 36
`0F511FD8
`t = 37 DC63973F
`t = 38
`4C986405
`t = 39
`32DE1CBA
`t = 40
`FC87DEDF
`t = 41
`970A0D5C
`t = 42
`7F193DC5
`t = 43
`EE1B1AAF
`t = 44
`40F28E09
`t = 45
`1C51E1F2
`t = 46 A01B846C
`t = 47 BEAD02CA
`
`67452301
`0116FC33
`8990536D
`A1390F08
`CDD8E11B
`CFD499DE
`3FC7CA40
`993E30C1
`9E8C07D4
`4B6AE328
`8351F929
`FBDA9E89
`63188FE4
`4 607B664
`9128F695
`196BEE77
`20BDD62F
`4E925823
`82AA6728
`DC64901D
`FD9E1D7D
`1A37B0CA
`33A23BFC
`21283486
`D541F12D
`C7567DC6
`48413BA4
`BE35FBD5
`4AA84D97
`8370B52E
`C5FBAF5D
`1267B407
`3B845D33
`046FAA0A
`2C0EBC11
`21796AD4
`DCBBBOCB
`0F511FD8
`DC63973F
`4C986405
`32DE1CBA
`FC87DEDF
`970A0D5C
`7F193DC5
`EE1B1AAF
`40F28E09
`1C51E1F2
`A01B846C
`
`98BADCFE
`7BF36AE2
`59D148C0
`C045BF0C
`626414DB
`284E43C2
`F3763846
`B3F52677
`0FF1F290
`664F8C3 0
`27A301F5
`12DAB8CA
`60D47E4A
`7EF6A7A2
`18C623F9
`1181ED99
`64 4A3DA5
`C65AFB9D
`C82F758B
`D3A49608
`2 0AA99CA
`77192407
`7F67875F
`868DEC32
`0CE88EFF
`884A0D21
`75507C4B
`B1D59F71
`12104EE9
`6F8D7EF5
`D2AA13 65
`A0DC2D4B
`717EEBD7
`C499ED01
`CEE1174C
`811BEA82
`4B03AF04
`085E5AB5
`F72EEC32
`03D447F6
`F718E5CF
`53261901
`8CB7872E
`FF21F7B7
`25C28357
`5FC64F71
`FB86C6AB
`503CA382
`
`10325476
`98BADCFE
`7BF36AE2
`59D148C0
`C045BF0C
`626414DB
`284E43C2
`F3763846
`B3F52677
`0FF1F290
`664F8C30
`27A301F5
`12DAB8CA
`60D47E4A
`7EF6A7A2
`18C623F9
`1181ED99
`644A3DA5
`C65AFB9D
`C82F758B
`D3A49608
`2 0AA99CA
`77192407
`7F67875F
`868DEC32
`0CE88EFF
`884A0D21
`75507C4B
`B1D59F71
`12104EE9
`6F8D7EF5
`D2AA13 65
`A0DC2D4B
`717EEBD7
`C499ED01
`CEE1174C
`811BEA82
`4B03AF04
`085E5AB5
`F72EEC32
`03D447F6
`F718E5CF
`53261901
`8CB7872E
`FF21F7B7
`25C28357
`5FC64F71
`FB86C6AB
`
`7BF36AE2
`59D148C0
`C045BF0C
`626414DB
`284E43C2
`F3763846
`B3F52677
`0FF1F290
`664F8C30
`27A301F5
`12DAB8CA
`60D47E4A
`7EF6A7A2
`18C623F9
`1181ED99
`644A3DA5
`C65AFB9D
`C82F758B
`D3A49608
`20AA99CA
`77192407
`7F67875F
`868DEC32
`0CE88EFF
`884A0D21
`75507C4B
`B1D59F71
`12104EE9
`6F8D7EF5
`D2AA13 65
`A0DC2D4B
`717EEBD7
`C499ED01
`CEE1174C
`811BEA82
`4B03AF04
`085E5AB5
`F72EEC32
`03D447F6
`F718E5CF
`53261901
`8CB7872E
`FF21F7B7
`25C28357
`5FC64F71
`FB86C6AB
`503CA382
`8714787C
`
`13
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 17
`
`
`
`FIPS PUB 180-1
`
`t = 48 BAF39337
`t = 49
`120731C5
`t = 50
`641DB2CE
`t = 51
`3847AD66
`t = 52 E490436D
`t = 53
`27E9F1D8
`t = 54
`7B71F76D
`t = 55
`5E6456AF
`t = 56 C846093F
`t = 57 D262FF50
`t = 58
`09D785FD
`t = 59
`3F52DE5A
`t = 60 D756C147
`t = 61
`548C9CB2
`t = 62 B66C020B
`t = 63
`6B61C9E1
`t = 64
`19DFA7AC
`t = 65
`101655F9
`t = 66
`0C3DF2B4
`t = 67
`78DD4D2B
`t = 68
`497093C0
`t = 69
`3F2588C2
`t = 70 C199F8C7
`t = 71
`39859DE7
`t = 72
`EDB42DE4
`t = 73
`11793F6F
`t = 74
`5EE76897
`t = 75
`63F7DAB7
`t = 76 A079B7D9
`t = 77
`860D2ICC
`t = 78
`5738D5E1
`t = 79
`42541B35
`
`BEAD02CA
`BAF39337
`120731C5
`641DB2CE
`3847AD66
`E490436D
`27E9F1D8
`7B71F76D
`5E6456AF
`C846093F
`D262FF50
`09D785FD
`3F52DE5A
`D756C147
`548C9CB2
`B66C020B
`6B61C9E1
`19DFA7AC
`101655F9
`0C3DF2B4
`78DD4D2B
`497093C0
`3F2588C2
`C199F8C7
`39859DE7
`EDB42DE4
`11793F6F
`5EE76897
`63F7DAB7
`A079B7D9
`860D2ICC
`5738D5E1
`
`2806E11B
`AFAB40B2
`EEBCE4CD
`4481CC71
`99076CB3
`8E11EB59
`792410DB
`09FA7C76
`5EDC7DDB
`D79915AB
`F211824F
`3498BFD4
`4275E17F
`8FD4B7 9 6
`F5D5B051
`9523272C
`ED9B0082
`5AD87278
`0677E9EB
`4405957E
`030F7CAD
`DE37534A
`125C24F0
`8FC96230
`F0667E31
`CE616779
`3B6D0B79
`C45E4FDB
`D7B9DA25
`D8FDF6AD
`681E6DF6
`21834873
`
`8714787C
`2806E11B
`AFAB40B2
`EEBCE4CD
`4481CC71
`99076CB3
`8E11EB59
`792410DB
`09FA7C76
`5EDC7DDB
`D79915AB
`F211824F
`3498BFD4
`4275E17F
`8FD4B796
`F5D5B051
`9523272C
`ED9B0082
`5AD87278
`0677E9EB
`4405957E
`030F7CAD
`DE37534A
`125C24F0
`8FC96230
`F0667E31
`CE616779
`3B6D0B7 9
`C45E4FDB
`D7B9DA25
`D8FDF6AD
`681E6DF6
`
`503CA382
`8714787C
`2806E11B
`AFAB40B2
`EEBCE4CD
`4481CC71
`99076CB3
`8E11EB59
`792410DB
`09FA7C7 6
`5EDC7DDB
`D79915AB
`F211824F
`3498BFD4
`4275E17F
`8FD4B7 9 6
`F5D5B051
`9523272C
`ED9B0082
`5AD87278
`0677E9EB
`4405957E
`03 0F7CAD
`DE37534A
`125C24F0
`8FC96230
`F0667E31
`CE616779
`3B6D0B79
`C45E4FDB
`D7B9DA25
`D8FDF6AD
`
`Block 1 has been processed. The values of {H;} are
`
`H0 = 67452301 +
`
`42541B35 = A9993E36
`
`H, = EFCDAB89 +
`
`5738D5E1 =
`
`4706816A
`
`h2 = 98BADCFE + 21834873 = BA3E2571
`
`H3 = 10325476 +
`
`681E6DF6 =
`
`7850C26C
`
`h4 = C3D2E1F0 + D8FDF6AD =
`
`9CD0D89D.
`
`Message digest = A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
`
`14
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 18
`
`
`
`FIPS PUB 180-1
`
`APPENDIX B. A SECOND SAMPLE MESSAGE AND ITS MESSAGE DIGEST
`
`This appendix is for informational purposes only and is not required to meet the standard.
`
`Let the message be the binary-coded form (cf. Appendix A) of the ASCII string
`
`"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".
`
`Since each of the 56 characters is converted to 8 bits, the length of the message is / = 448. In
`step (a) of Section 4, we append "1". In step (b) we append 511 "0"s. In step (c) we append
`the 2-word representation of 448, i.e., hex 00000000 000001C0. This gives n = 2.
`
`The initial hex values of {Hj} are
`
`H0 = 67452301
`
`Hj = EFCDAB89
`
`H2 = 98BADCFE
`
`H3 = 10325476
`
`H4 = C3D2E1F0.
`
`Start processing block 1. The words of block 1 are
`
`W[0]
`W[l]
`W[2]
`W[3]
`W [ 4 ]
`W [ 5 ]
`W[6]
`W[7]
`W [ 8 ]
`W[9]
`W[10]
`W[ll]
`W[12]
`W [ 13 ]
`W [ 14 ]
`W [ 15 ]
`
`61626364
`62636465
`63646566
`64656667
`65666768
`66676869
`6768696A
`68696A6B
`696A6B6C
`6A6B6C6D
`6B6C6D6E
`6C6D6E6F
`6D6E6F7 0
`6E6F7071
`80000000
`00000000.
`
`The hex values of A,B,C,D,E after pass t of the "for t = 0 to 79" loop (step (d) of Section 7
`or step (c) of Section 8) are
`
`15
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 19
`
`
`
`FIPS PUB 180-1
`
`A
`
`B
`
`C
`
`D
`
`E
`
`t =
`0116FC17
`0
`t =
`1 EBF3B4 52
`t =
`2
`5109913A
`t =
`2C4F6EAC
`3
`t =
`4
`33F4AE5B
`t =
`96B85189
`5
`t =
`6 DB04CB58
`t =
`45833F0F
`7
`t =
`8 C565C35E
`t =
`9
`63 50AFDA
`t = 10
`8993EA77
`t = 11
`E19ECAA2
`t = 12
`8603481E
`t = 13
`32F94A85
`t = 14 B2E7A8BE
`t = 15
`42 637E39
`t = 16
`6B068048
`t — 17
`426B9C35
`t = 18
`94 4B1BD1
`t = 19
`6C445652
`t = 20
`95836DA5
`t = 21
`09511177
`t = 22 E2B92DC4
`t = 23
`FD22457 5
`t = 24
`EEB82D9A
`t = 25
`5A142C1A
`t = 26
`2972F7C7
`t = 27 D526A644
`t = 28 E1122421
`t = 29
`05B457B2
`t = 30 A9C84BEC
`t = 31
`52E31F60
`t = 32
`5AF3242C
`t = 33
`31C756A9
`t = 34 E9AC987C
`t = 35 AB7C32EE
`t = 36
`5933FC99
`t = 37
`4 3F87AE9
`t = 38
`24957F22
`t = 39 ADEB7478
`t = 40 D70E5010
`t = 41
`79BCFB08
`t = 42
`F9BCB8DE
`t = 43
`63 3E9561
`t = 44
`98C1EA64
`t = 45 C6EA241E
`t = 46 A2AD4F02
`t = 47 C8A69090
`t = 48
`88341600
`t = 49
`7E846F58
`
`67452301
`0116FC17
`EBF3B4 52
`5109913A
`2C4F6EAC
`3 3F4AE5B
`96B85189
`DB04CB58
`45833F0F
`C565C35E
`63 50AFDA
`8993EA77
`E19ECAA2
`8603481E
`32F94A85
`B2E7A8BE
`42637E39
`6B068048
`426B9C35
`944B1BD1
`6C445652
`95836DA5
`09511177
`E2B92DC4
`FD224575
`EEB82D9A
`5A142C1A
`2972F7C7
`D526A644
`E1122421
`05B457B2
`A9C84BEC
`52E31F60
`5AF3242C
`31C756A9
`E9AC987C
`AB7C32EE
`5933FC99
`4 3F87AE9
`24957F22
`ADEB7478
`D70E5010
`79BCFB08
`F9BCB8DE
`633E9561
`98C1EA64
`C6EA241E
`A2AD4F02
`C8A69090
`88341600
`
`7BF36AE2
`59D148C0
`C045BF05
`BAFCED14
`9442644E
`0B13DBAB
`CCFD2B96
`65AE14 62
`36C132D6
`D160CFC3
`B15970D7
`98D42BF6
`E264FA9D
`B867B2A8
`A180D207
`4CBE52A1
`ACB9EA2F
`5098DF8E
`1AC1A012
`509AE70D
`6512C6F4
`9B111594
`6560DB69
`C254445D
`3 8AE4B71
`7F48915D
`BBAE0B66
`96850B06
`CA5CBDF1
`3549A991
`78448908
`816D15EC
`2A7212FB
`14B8C7D8
`16BCC90B
`4C71D5AA
`3A6B261F
`AADFOCBB
`564CFF2 6
`50FE1EBA
`89255FC8
`2B7ADD1E
`35C39404
`1E6F3EC2
`BE6F2E37
`58CFA558
`26307A99
`B1BA8907
`A8AB53C0
`3229A424
`
`16
`
`98BADCFE
`7BF36AE2
`59D148C0
`C045BF05
`BAFCED14
`9442644E
`0B13DBAB
`CCFD2B96
`65AE14 62
`36C132D6
`D160CFC3
`B15970D7
`98D42BF6
`E264FA9D
`B867B2A8
`A180D207
`4CBE52A1
`ACB9EA2F
`5098DF8E
`1AC1A012
`509AE70D
`6512C6F4
`9B111594
`6560DB69
`C254445D
`38AE4B71
`7F48915D
`BBAE0B66
`96850B06
`CA5CBDF1
`3549A991
`78448908
`816D15EC
`2A7212FB
`14B8C7D8
`16BCC90B
`4C71D5AA
`3A6B261F
`AADFOCBB
`564CFF2 6
`50FE1EBA
`89255FC8
`2B7ADD1E
`35C39404
`1E6F3EC2
`BE6F2E37
`58CFA558
`26307A99
`B1BA8907
`A8AB53C0
`
`10325476
`98BADCFE
`7BF36AE2
`59D148C0
`C045BF05
`BAFCED14
`9442644E
`0B13DBAB
`CCFD2B96
`65AE14 62
`36C132D6
`D160CFC3
`B15970D7
`98D42BF6
`E264FA9D
`B867B2A8
`A180D207
`4CBE52A1
`ACB9EA2F
`5098DF8E
`1AC1A012
`509AE70D
`6512C6F4
`9B111594
`6560DB69
`C254445D
`38AE4B71
`7F48915D
`BBAE0B66
`96850B06
`CA5CBDF1
`3549A991
`78448908
`816D15EC
`2A7212FB
`14B8C7D8
`16BCC90B
`4C71D5AA
`3A6B261F
`AADFOCBB
`564CFF2 6
`50FE1EBA
`89255FC8
`2B7ADD1E
`35C39404
`1E6F3EC2
`BE6F2E37
`58CFA558
`26307A99
`B1BA8907
`
`Patent Owner, Bot M8 LLC - Ex. 2020, p. 20
`
`
`
`t = 50
`86E358BA
`t = 51
`8D2E76C8
`t = 52 CE892E10
`t = 53
`EDEA95B1
`t = 54
`36D1230A
`t = 55
`776C3910
`t = 56 A681B723
`t = 57 AC0A794F
`t = 58 F03D3782
`t = 59
`9EF775C3
`t = 60