throbber
U.S. DEPARTMENT OF COMMERCE
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket