throbber

`
`
`
`2.x
`
` Vi
`mm mm
`
`fingermdm FIPS PUB 46
`197'? JANUARY “15
`
`FEDERAL. ENFORMATEQN
`PRQCESSHNG STANDARDS PUELICAWQN
`
`REAFFIRMED
`1&38 JANUARY 22
`
`
`
`FiPSFUR45-5
`
`
`
`Unified Patents Inc. Ex. 1015, pg. 1
`
`Unified Patents Inc. Ex. 1015, pg. 1
`
`

`

`M
`
`v.5. {DEPARTMENT OF COMMERCE, C. William Verity, Secrefmy,
`
`I
`
`NA'HONAL BUREAU OF STANDARDS, Emast Amman Dirmor
`
`FGWWQM
`
`Tm Federal Information Processing Standardg Publication Swim; of the: National Human: of
`Standards (NBS)1s Ehe cfficial publiamiuxx miating to stanéards and gu£detmes adopted 333:3 proxmm
`,
`gamd widest that pmvigiom of Smtion 111(d) of the: Fedaral Property and ‘admmistmtive Serviws :i
`Act of 1949 as ammdmi by the Compxums: Security Act; cf 198'! Public Law 100—235 Them man» , , V ,
`dates have: giwm the: Secrmary 0f Commerce. and NBS impartant rcspmnsibflities forImprovmg the:
`utflimtion and mazmgamemt of mmputer and related mmmmmunicatiam sygtams in the: Fefiesmi
`Gcavazmmem: The NBS through its Institum for Computer Scimcas and Tachnoiogy pmviciem
`Iaadcrship, tetahnical gmdanm, and cmrdmatian of Gavemmesm effortsm the deveflopnmm (Bf
`standards am: guidaiinas111 these: areas.
`
`Commants cancm’ning Fedaml Information Processing Standards Publications aw weimméd ,
`and should be acidmssed to the: Director, Institute: for Camputcr Scicnws and Tackmolagy? National ,
`Bureau 0f Standards, Gmthargburg, MI?) 20899
`,
`
`'
`,:
`
`‘
`
`James H. Burmws, Director
`Institute: for Compute-,3: Sciwczm am} Taclmology
`
`Abstract.
`
`Tim mlcctivc appiisatian of technological and mlatcd procaduml safeguazda {a an important rmpomibility of may '
`Fadcml mganizmion In providing adequate: samrity to its ADP systcma. This publicatiun provides a standard m be used by
`Fatima} arganizmians when them organizations specify that crypmgmphic pmmctian m to be m for mnsitiva m: valuabic
`camputcr dam. Pmtwticm 0f camputar data during transmission betwwn electmnic compozmnm (22‘ while‘m ammga may in:
`new :0 maintain the: confidentiality and mmgn‘ty of the: information mprmntad by that dam. The: Standard specifim an
`encryptim aigorithm whichas to be impiemanmdm an ammonia davicee for um in Fadgaml M)? systems and networlm The:
`adgomhm uniquely dcfinm the mathematical scape: rmmwd to maximal computer dam mm a crypmgmphic ciphm' It 211m
`spccffim the swaps; {exquimi ta transfarm the cipher back to its uriginal form. A dwica pufforming mm algorithm my 13% used
`in many applications areas Wham cryptographic (Eats memories: is nmw. Within the comma 9f :1 total :xccurity 13:0ng
`comprising phyaical maturity praccdurcs, good infarmafiou magamfint pmcticm and compumr system/metwmk 3cm
`centrols, the: Dam Encryptiw Standard is being mafia availabke; for use by Fedaral agmcim. This mvision superscdca
`FII’S 46.
`
`Key Worda: ADP wantiry; compumr wcutity; cncxypn'ou; Federal Inmrmation 32’}:ng Standard.
`
`Natl. Bur. Slaw. (113.) Fed. Info. Prawns. Stami Pub]. (FIPS PUB) 464, 16 pagea
`(1988)
`COHERFH’FAT
`
`Fm sale by the National Tachnical Infomtiou Service, US. Ditpammnt of Commune, Springfiald, VA 22161.
`
`'
`
`,
`
`‘
`
`
`
`Unified Patents Inc. Ex. 1015, pg. 2
`
`Unified Patents Inc. Ex. 1015, pg. 2
`
`

`

`
`
` Thie meiotic} may be protected by Copyright on: {Title “l? US Code)
`
`
`
`Federal Information
`
`Processing Standards Publication 46-1
`
`1988 January 22
`
`Announcing the
`
`DATA ENCRYP’I‘ION STANDARD
`
`FIPS PUB 46—1
`
`
`
`Federal Information Processing Standards Publications (FIPS PUBS) are issued by the National Bureau of Standards 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.
`
`1. Name of Standard. Data Encryption Standard (DES).
`
`2. Category of Standard. ADP Operations, Computer Security.
`
`3.. Explanation. The Data Encryption Standard (DES) specifies an algorithm to be implemented in elec«
`tronic hardware devices and used for the cryptographic protection of computer data. This publication pro—
`vides a complete description of a mathematical algorithm for encrypting (euciphering) and decrypting
`(deciphering) binary coded information. Encrypting data converts it to an unintelligible form called cipher.
`Decrypting cipher converts the data back to its original form. The algorithm described in this standard
`specifies both enciphering and deciphering operations which are based on a binary number called a key. The
`key cousists of 64 binary digits (“0”8 or “1”s) of which 56 bits are used directly by the algorithm and 8 bits
`are used for error detection.
`
`Binary coded data may be cryptographically protected using the DES algorithm in conjunction with a key.
`The key is generated in such a way that each of the 56 bits used directly by the algorithm are random and the
`8 error detecting bits are set to make the parity of each 8-bit byte of the key odd, 5.6., there is an odd number
`of “1”3 in each 8~bit byte. Each member of a group of authorized users of encrypted computer data must have
`the key that was used to encipher the data in order to use it. This key, held by each member in common, is
`used to decipher the data received in cipher form from other members of the group. The encryption al-
`gorithm specified in this standard is commonly known among those using the standard. The unique key
`chosen for use in a particular application makes the results of encrypting data using the algorithm unique.
`Selection of a different key causes the cipher that is produced for any given set of inputs to be different. The
`cryptographic security of the data depends on the security provided for the key used to encipher and
`decipher the data.
`
`Data can be recovered from cipher only by using exactly the same key used to encipher it. Unauthorized
`recipients of the cipher who know the algorithm but do not have the correct key cannot derive the original
`data algorithmically. However, anyone who does have the key and the algorithm can easily decipher the
`cipher and obtain the original data. A standard algorithm based on a secure key thus provides a basis for
`exchanging encrypted computer data by issuing the key used to encipher it to those authorized to have the
`data.
`
`4. Approving Authority. Secretary of Commerce.
`
`5. Mahxtenance Agency.
`
`Institute for Computer Sciences and Technology, National Bureau of Standards.
`
`6. Applicability; This standard will be used by Federal departments and agencies for the cryptographic
`protection of computer data when the following conditions apply:
`1. An authorized official or manager responsible for data security or the security of any computer
`system decides that, cryptographic protection is required; and
`,
`, 2. The date is not classified according to the National Security Act of 1947, as amended, or the Atomic
`Energy Act of 1.954, as amended.
`
`Unified Patents Inc. Ex. 1015, pg. 3
`
`Unified Patents Inc. Ex. 1015, pg. 3
`
`

`

`Ffl’S PUB 46-1
`
`However, Federal agenciss or dopartmcnts which use cryptographic dcviccs for protecting data classified
`according to cithcr of these: acts can use, those devices for protecting unclassifiod data in lieu of the standard.
`
`In addition, this standard may lac adoptcd and used by non-Federal Government organizations. Such use is
`encouraged when it provides the dcsircd security for commcrcial and private organizations.
`
`Data that is considered sensitive by tho responsible authority, data that has a high valuc, or data that repro-
`scnts a high value should be cryptographically protected if it is vulnerable to unauthorized disclosure or
`undetected modification during transmission or whilc in storage. A risk analysis should bc performed under
`the direction of a rcsponsiblc authority to dotcrminc potential throats. The costs of providing cryptographic
`protection using this standard as wcll as alternativc methods of providing this protection and their rcspcctivc
`costs should be projectcd. A responsiblc authority then should make: a decision, based on these analyscs,
`whether or not to use cryptographic protection and this standard.
`
`‘7. Applications. Data encryption (cryptography) may be utilized in various applications and in various
`cnvironmcnts. The specific utilization of encryption and the implementation of the DES will bc based on
`many factors particular to the computer systcm and its associated components. In general, cryptography is
`used to protcct data while it is being communicated between two points or whilc it is stored in a medium
`vulncrablc to physical theft. Communication accurity provides protection to data by cnciphcring it at the
`transmitting point and deciphering it at the receiving point. Filo socurity providcs promotion to data by
`enciphcring it whcn it is recorded on a storage medium and dcciphcring it when it is read back from the
`storage medium. In the first case, the key must be: available at the transmittcr and rcccivcr simultaneously
`during communication. In the second case, the key must bc maintained and acccssiblc for the duration of the
`storage poriod.
`
`8. Hardware Implementation. The algorithm specified in this standard is to bc implcmcntcd in computcr or
`rclatcd data communication devices using hardware (not software) technology. The specific implcmcntation
`may depend on several factors such as the application, the cnvironmcnt, tho technology used, ctc. Implcmom
`tations which comply with this standard include Large: Scale Integration (LSI) “chips" in individual cloc-
`tronic packages, devices built from Medium Scalc Integration (M81) clcctronic componcnts, or other
`electronic devices dedicated to performing the operations of tho algorithm. Micro-processors using Read
`Only Memory (ROM) or micro-programmcd dcviccs using microcode: for hardware lcvcl control instructions
`are cxamplcs of the latter. Hardwarc implementations of the algorithm which are tested and validated by
`NBS will be considered as complying with the: standard. Information about devices that have been validated
`and procedures for testing and validating equipment for conformance with this standard arc available from
`the National Bureau of Standards, Institute for Computer Sciences and Technology, Gaithcrsburg, MD
`20899. Software implementations in general purpose computers arc not in compliance with this standard.
`
`9. Export Control. Cryptographic devices and technical data regarding them arc suhjcct to Fodcral Gov-
`ernment cxport controls as specified in Title 22, Code of Federal Regulations, Parts 121 through 128. Cryptom
`graphic devices implementing this standard and technical data regarding them must comply with those
`Federal regulations.
`
`10. Patents. Cryptographic devices implementing this standard may be covered by US. and foreign
`patents issued to the International Businws Machines Corporation Howcvcr, IBM has granted noncxclusivc,
`royalty-frat: licenses undcr the patonts to makc, use and sell apparatus which complies with the standard. The
`terms, conditions and scope of the licenses arc set out in noticcs published in the May 13, 1975 and August 31,
`1976 issues of tho Official Gazctto of tho United States Patent and Trademark Officc (934 O. G. 452 and 949
`0.. G. 1717).
`
`11. Alternative Modes of Using tho DES. FlPS PUB Bl, DES Modcs of Operation, describes four diffcrcnt
`modes for using the algorithm described in this standard. These four modes are called the Elcctronic Code-
`booh (ECB) mode, the: Cipher Block Chaining (CBC) mode, tho Ciphcr Feedback (CFB) mode, and the
`Output Fccdback (OFB) mods. ECB is a direct application of the DES algorithm to encrypt and dccrypt
`data; CBC is an enhanced mode: of ECB which chains together blocks of cipher text; CFB uscs proviously
`
`M
`
`Unified Patents Inc. Ex. 1015, pg. 4
`
`Unified Patents Inc. Ex. 1015, pg. 4
`
`

`

`FIPS PUB 46-1
`
`generated cipher tcxt as input to tho DES to gcncratc psoudorandom outputs which are combined with the
`plain text to produce ciphcr text, thereby chaining togcthcr the resulting cipher text; OFB is identical to CFB
`except that the provious output of the DES is used as input in OFB while the provious cipher text is used as
`input in CFB. OFB does not chain the. cipher text.
`
`Implementation of (his standard. This standard became effective July 1977. It was rcaffirmcd in 1983
`12.
`and 1988. It applies to all Federal ADP systems and associated telecommunications notworks under develop-
`mcnt as well as to installed systems when it is determined that cryptographic protection is required. Each
`chcral department or agcncy will issue: internal directives for tho use of this standard by their operating units
`based on their data socurity rcquircmcnt dctcrrninations.
`
`NBS providcs technical assistance to Federal agencies in implcménting data cncryption through the issuance
`of gnidclincs and through individual rcimbursablc projects. The National Security Agency assists Federal
`departments and agoncics in communications security for classified applications and in determining specific
`security requirements. Instructions and regulations for procuring data processing cquipmcnt utilizing this
`standard arc inclndcd in the Federal information Resourccs Management Regulation (FIRMR) Subpart
`Mil-8.1114.
`
`13. Specifications. Federal Information Processing Standard (FIPS) 46-1, Data Encryption Standard
`(DES) (affixed).
`
`14. Cross Index.
`
`”‘1'"???msno.62»
`
`FIPS PUB 31, Guidelines to ADP Physical Security and Risk Managcmcnt.
`FIPS PUB 39, Glossary for Computer Systems Scourity.
`FIPS PUB 41, Computer Security Guidelines for lmplcmcnting the Privacy Act of 1974.
`FIPS PUB 65, Gnidclinc for Automatic Data Processing Risk Analysis.
`FIPS l’UB 73, Gnidclincs for Security of Computer Applications.
`FIPS PUB 74, Guidelines for Implementing and Using tho NBS Data Encryption Standard.
`FIPS PUB 81, DES Modes of Operation.
`FIPS PUB 87, Guidelines for ADP Contingoncy Planning.
`FIPS PUB 112, Password Usage.
`FIPS PUB 113, Computer Data Antlmntication
`0thcr FIPS and Federal Standards arc applicable to the implementation and use of this standard In
`particular, the Code for Information Interchange, "its Representations, Subsets, and Extensions (FIPS PUB
`1-2) and other related data storage media or data communications standards should be usedin conjunction
`with this standard. A list of currcntly approvcd FIPS may be ohtaincd from tho National Bureau of
`Standards, Institute for Compntcr Scicnccs and Technology, Gaithcrsburg, Ml) 20899.
`,
`
`15. Qualifications. The cryptographic algorithm specified in this standard transforms a 64bit binary Value
`into a unique 64—bit binary value hosed on a 56nbit variable. If the complete 64~bit input is used (in; 110116: of
`the input bits should be predetermined from block to block) and if the 56-bit variable is randomly chosen, no
`technique other than trying all possible: keys using known input and Output for thoDES will guarantee
`finding the chosen kcy. As there are ovor 70,000,000,000,000,000 (seventy quadrillion) poSSiblc keys of 56 hits. ,
`the feasiblity of deriving a particular keyIn this way is extremely unlikely in typical threat environments
`Moreover, if the: keyis changed frequently, the risk of this event is greatly diminishcd However, users should
`be: aware that it is theoretically possible: to derive: tho key in fcwcr trials (with a correspondingly lower
`probability of success depending on the number of lrcys tried) and should bc cautioned to change tho key as
`often as practical. Users must change: tho key and provide it a high lcvcl of protection in order to minimize
`tho potential risks of'Its unauthorized computation or acquisition The feasibility of computing theenrrcct key
`may change with advancesin technology A more complctc dcscription of the strength of this algorithm
`against various throatsrs contained111 FIPS PUB 74, Guldclincs int Irn’plcrncntingand Using the NBS Data
`Encryption Standard
`When correctly implemented and properly used, this standard Will providc a high level of cryptographic
`promotion to computer data. NBS, supported by the tcclmical assistsncc of Government agcncios responsible
`
`Unified Patents Inc. Ex. 1015, pg. 5
`
`Unified Patents Inc. Ex. 1015, pg. 5
`
`

`

`FIPS PUB 46~1
`
`for communication security, has determined that the algorithm specified in this standard will provide a high
`level of protection for a time period beyond the normal life cycle of its associated ADP equipment. The
`protection provided by this algorithm against potential new threats will be reviewed within 5 years to assess
`its adequacy (See Special Information Section). in addition. both the standard and possible threats reducing
`the security provided through the use of this standard will undergo continual review by NBS and other
`cognizant Federal organizations. The new technology available at that time will be evaluated to determine its
`impact on the standard. In addition, the awareness of any breakthrough in tcchnology or any mathematical
`weakness of the algorithm will cause NBS to reevaluate this standard and provide necessary revisions.
`
`16. Comments. Comments and suggestions regarding this standard and its use are welcomed and should be
`addressed to the National Bureau of Standards, Attm Director, Institute for Computer Sciences and
`Technology, Gaithersburg, MD 20899.
`
`1?. Waiver Procedure. The head of a Federal agency may waive the provisions of this FIPS PUB after the
`conditions and justifications for the waiver have been coordinated with the National Bureau of Standards. A
`waiver is necessary if cryptographic devices performing an algorithm other than that which is specified in this
`standard are to be used by a Federal agency for data subject to cryptographic protection under this standard.
`No waiver is necessary if classified communications security equipment is to be used. Software implementa-
`tions of this algorithm for operational use in general purpose computer systems do not comply with this
`standard and each such implementation must also receive a waiver. Implementation of the algorithm in
`software for testing or evaluation does not require waiver approval. Implementation of other special purpose
`cryptographic algorithms in software for limited use within a computer system (e.g., encrypting password
`files) or implementations of cryptographic algorithms in software which were being utilized in computer
`systems before the efiective date of this standard do not require a waiver. However, these limited uses should
`be converted to the use of this standard when the system or equipment involved is upgraded or redesigned to
`include general cryptographic protection of computer data. Waivers will be considered for devices certified
`by the National Security Agency as complying with the Commercial COMSEC Endorsement Program
`(CCEP) when such devices offer equivalent cost/performance features when compared with devices con-
`forming to this standard. Letters describing the nature of and reasons for the waiver should be addressed to
`the Director, Institute for Computer Sciences and Technology, as previously noted.
`
`Sixty days should be allowed for review and response by NBS. The waiver shall not be approved until a
`response {tom NBS is received; however, the final decision for granting the waiver is the responsibility of the
`head of the particular agency involved.
`
`In accordance with the Qualifications Section of this standard, reviews of this
`18. Special Information.
`standard have been conducted every 5 years since its adoption in 197?. The standard was reaffirmed during
`each of those reviews. This revision to the text of the standard contains only editorial and other nonsubstan-
`tive changes, mainly to update the reference list, provide current names and addresses, and supplemental
`information issued after 1977.
`
`19. Where to Obtain Copies. Copies of this publication are for sale by the National Technical Information
`Service, US. Department of Commerce, Springfield, VA 22161. When ordering, refer to Federal Informa-
`tion Processing Standards Publication 46—1 (FIPSPUBdéml), and title. Payment may be made by check,
`money order, or deposit account.
`
`Unified Patents Inc. Ex. 1015, pg. 6
`
`Unified Patents Inc. Ex. 1015, pg. 6
`
`

`

`
`
`Federal Information
`
`Processing Standards Publication 46-1
`
`1988 January 22
`
`SPECIFICATIONS FOR THE
`
`DATA ENCRYPTION STANDARD
`
`FIPS PUB 4&1
`
`
`
`The Data Encryption Standard (DES) shall consist of the following Data Encryption Algorithm to
`be implemented in special purpose electronic {lei/ices. These devices shall be designed in such a way
`that. they may be used in a computer system or networlc to provide cryptographic protection to
`binary coded data. The method of implementation will depend on the application and environment.
`The devices shall be implemented in such a way that they may be tested and validated as
`accurately performing the transformations specified in the following algorithm.
`
`DATA ENCRYPTION ALGORITHM
`
`Introduction
`
`The algorithm is designed to encipher and decipher blocks of data consisting of 64 bits under control
`of a 64~bit key.*Deciphering must be accomplished by using the same key as for enciphering, but
`with the schedule of addressing the key hits altered so that the deciphering process is the reverse of
`the enciphering process. A block to he enciphered is subjected to an initial permutation 1?, then to
`a complex key-dependent computation and finally to a permutation which is the inverse of the
`initial permutation IP 1. The key~dependent computation can be simply defined in terms of a
`function f, called the cipher function, and a function KS, called the key schedule. A description of
`the computation is given first, along with details as to how the algorithm is used for encipherment.
`Next, the use of the algorithm for decipherment is described. Finally, a definition of the cipher
`function f is given in terms of primitive functions which are called the selection functions 81‘ and the
`permutation function P. S i, P and KS of the algorithm are contained in the Appendix.
`
`The following notation is convenient: Given two blocks L and R of bits, LR denotes the block
`consisting of the hits of L followed by the bits of R. Since concatenation is associative 8182 .
`.
`. 83,
`for example, denotes the block consisting of the bits of 31 followed by the bits of 82 .
`.
`. followed by
`the bits of 88.
`
`Enciphering
`
`A sketch of the enciphering computation is given in figure 1.
`
`
`
`"Blocks are composed of bits numbered :5er left to right, i.e., the left most bit of a block is hit one.
`
`5
`
`Unified Patents Inc. Ex. 1015, pg. 7
`
`Unified Patents Inc. Ex. 1015, pg. 7
`
`

`

`Ffl’S I’UB 4&1
`
`
`
`ENPUT
`
`
`
`INITIAL PERMUTATIOWPD
`
`PERMUTED
`ENPUT
`
`
`
`
`
`
`OWEPSE lNlTIAL PERM )
`my 7
`1:“
`OUWTFEUT WWWM;
`
`}
`
`FIGURE 1. Encz‘pizering computatim’z.
`
`Unified Patents Inc. Ex. 1015, pg. 8
`
`Unified Patents Inc. Ex. 1015, pg. 8
`
`

`

`The 64 hits; of the input block to be enciphered are first subjected to the following permutation,
`cailed the initial permutation IP:
`
`FIPS PUB 46—1
`
`58
`60
`62
`64
`57
`59
`61
`63
`
`50
`52
`54
`56
`49
`51
`53
`55
`
`42
`44
`46
`48
`41
`43
`45
`47
`
`34
`36
`38
`40
`33
`35
`37
`39
`
`26
`28
`30
`32
`25
`27
`29
`31
`
`18
`20
`22
`24
`17
`19
`21
`23
`
`10
`12
`14
`16
`9
`11
`18
`15
`
`W—‘OOZDA‘AN
`
`5
`7
`
`That is the permuted input has hit 58 of the input as its, first bit, bit 50 as its second bit, and so on
`with bit ’7 «as its last bit. The permuted input block is then the input: to a complex key~dependent
`computation described below. The output of that computation, called the preoutput,
`is then
`subjected to the following permutation which is the inverse of the initial permutation:
`
`40
`39
`38
`37
`86
`85
`34
`33
`
`8
`7
`6
`5
`4
`3
`2
`1
`
`48
`47
`46
`45
`44
`43
`42
`41
`
`If:
`
`16
`15
`14
`13
`12
`11
`10
`9
`
`56
`55
`54
`58
`52
`51
`50
`49
`
`24
`23
`22
`21
`20
`19
`18
`17
`
`64
`63
`62
`61
`60
`59
`58
`57
`
`32
`31
`3O
`29
`28
`27
`26
`25
`
`That is, the output of the algorithm has hit 40 of the preoutpnt block as its first hit, bit 8 as its
`secomi bit, and so on, until bit 25 of the preoutput block is the last bit of the output.
`
`The computation which uses the permuted input block as its input to produce the preontput biock
`consisto, but for a final interchange of biocks, of 16 iterations of a calculation that is desseribed below
`in terms of the cipher function fwhich operates (in two blocks, one 01132 bits, and one of 48 bits, and
`produces a block of 32 bits.
`
`Let the 64 hits of the input block to an iteration consist of a 32 bit block [i followed by a 32 bit block
`It. Using the notation defined in the introduction, the input block is then LR.
`
`Let K be a block of 48 bits chosen from the 64~hit key. Then the output L‘R’ of an iteration with
`input LR is defined by:
`
`(I)
`
`L’ - 16
`R" = L ElafiRJk’)
`
`where 95’ denotes hitwby-bit addition moduio 2.
`
`As remarked bofoi‘a the. input of the first iteration of the calculation is the permuted input
`block. if L’R’ is the output of the 16th iteration then R’L’ is the preoutput block. At each
`iteration a different biock K of key bites is chosen from the, 64—bit key degignated by KEY.
`
`Unified Patents Inc. Ex. 1015, pg. 9
`
`Unified Patents Inc. Ex. 1015, pg. 9
`
`

`

`FIPS PUB 116-1
`
`With more notation we can describe the iterations of the computation in more detail. Let KS
`be a function which takes an integer 'n in the range from 1 to 18 and a 84bit block KEY as
`input and yields as output a 48—bit block Kn which is a permuted selection of bits from KEY.
`That is
`
`(2)
`
`K,,
`
`-‘- KS('n,KE'Y)
`
`with Kn determined by the bits in 48 distinct bit positions of KEY. K3 is called the key
`schedule because the block K used in the n’th iteration 0H1) is the block K" determined by (:3),
`
`As before, let the permuted input block be LR. Finally, let Li, and R” be respectively L and R
`and let Lu and R" be respectively L’ and R’ of(i) when L and R are respectively Ln , and RR»,
`and K is K”; that is, when n is in the range from 1 to 16,
`
`(8)
`
`Ln = Rn‘i
`Ru : L?i‘“l aafianh Kn)
`
`The preoutput block is then RmLm.
`
`The key schedule KS of the algorithm is described in detail in the Appendix. The key schedule
`produces the 16 Kn which are required for the algorithm.
`
`Deciphering
`
`The permutation [P ‘ applied to the preoutput block is the inverse of the initial permutation
`I1“ applied to the input. Further, from (1) it follows that:
`
`(4)
`
`R =L’
`L —, R' fiflL', K)
`
`Consequently, to decipher it is only necessary to apply the very same algorithm to an encéphered
`message block, taking care that at each iteration of the computation the same block of key bits
`K is used during deciphermont as was used during: the encipherment of the block. Using the
`notation of the previous section, this can he expressed by the equations:
`
`(5)
`
`Riki : [In
`Lnei r R71@flLniKnl
`
`where now Rm L“, is the permuted input block for the deciphering calculation and LOB0 is the
`preoutput block. That is, for the deeipherment calculation with R“; L16 as the permuted input.
`Km is used in the first iteration, K15 in the second, and so on, with K1 used in the 16th
`iteration.
`
`The Cipher Function 1?
`
`A sketch of the calculation off(R, Ki) is given in figure 2.
`
`Unified Patents Inc. Ex. 1015, pg. 10
`
`Unified Patents Inc. Ex. 1015, pg. 10
`
`

`

` (32 BITS)
`IW
`<0
`I
`
`48 BITS
`
`I:
`
`FIPS PUB 464
`
`
`C.
`K (48 BITS)
`J
`
`III III ‘I'ii' "II 'II' III III
`
`32 BITS
`
`FIGURE 2. Calculation off(R, K).
`
`Let E’ denote a function which takes a block of 32 bits as input and yields a block of 48 bits as
`output. Let E be such that the 48 hits 01" Its output, written as 8 blocks of 6 bits each, are
`obtained by selecting the bits in its inputs in ordes' according to the following" table:
`
`E BI’I‘~SELECTION TABLE
`
`32
`4
`8
`12
`16
`20
`24
`28
`
`1
`5
`9
`13
`17
`21
`25
`29
`
`2
`6
`10
`14
`18
`22
`26
`30
`
`3
`7
`II
`15
`19
`23
`27
`31
`
`4
`8
`12
`16
`20
`24
`28
`32
`
`5
`9
`13
`17
`21
`25
`29
`1
`
`Thus the first three bits of EU?) are the bits in positions 32, 1 and 2 01' R while the last 2 bits
`of EU?) are the bits in positions 32 and I.
`
`Unified Patents Inc. Ex. 1015, pg. 11
`
`Unified Patents Inc. Ex. 1015, pg. 11
`
`

`

`FH’S PUB 46»!
`
`., SK, takes a 6-bit block as input and yields a4~
`.
`Each of the unique selection functions Sh Se, .
`bit block as output and is illustrated by using a table containing the recommended 8,:
`
`é:
`
`Column Number
`
`Row
`
`
`No.0123456777789101112131415
`215118310612
`0
`14
`4
`13
`1
`5
`9
`O
`7
`14
`2
`13
`1
`10
`6
`12
`11
`1
`0
`15
`7
`4
`9
`5
`3
`8
`2
`4
`1
`l4 8
`13
`6
`2
`11
`15
`12
`9
`7
`3
`10
`5
`0
`8
`15
`12
`8
`2
`4
`9
`1
`7
`5
`11
`3
`14
`10
`0
`6
`13
`
`lfSl is the function defined in this table and B is a block of 6 bits, then 81(8) is determined as
`follows: The first and last bits ol‘B represent in base 2 a number in the range 0 to 3. Let that
`number he i. The middle 4. bits ofB represent in base 2 a number in the range 0 to 15. Let that
`number bej. Look up in the table the number in the i’th row andj’th column. It is a number
`in the range 0 to 15 and is uniquely represented by a 4 bit block. That block is the output
`81(8) ofS, for the input B. For example, for input 011011 the row is 01, that is row 1, and the
`column is determined by 1101, that is column 13. In row 1 column 13 appears 5 so that the
`output is 0101. Selection functions 5,, SE,
`.
`.
`., Sex of the algorithm appear in the Appendix.
`
`The permutation function P yields a 32-bit output from a 32bit input by permuting the bits of
`the input block. Such a function is defined by the following table:
`
`P
`
`7
`12
`15
`18
`8
`27
`13
`11
`
`20
`28
`23
`31
`24
`3
`30
`4
`
`16
`29
`1
`5
`2
`32
`19
`22
`
`21
`17
`26
`10
`14
`9
`6
`w
`25
`
`The output P(L) for the function P defined by this table is obtained from the input L by
`taking the 16th bit ofL as the first bit of P(L), the 7th hit as the second bit of P( L), and so on
`until the 25th bit of L is taken as the 82nd bit of PULL The permutation function P of the
`algorithm is repeated in the Appendix.
`
`., SS be eight distinct selection functions, let P be the permutation function and
`.
`Now let 8,, .
`let E be the function defined above.
`
`To defineflR, K) we first define 8,, .
`
`. ., Ba to be blocks of 6 bits each for which
`
`(6)
`
`8182...BS;K@E{R)
`
`The blockflR, K) is then defined to be
`
`(’7)
`
`P(SI(BI)SZ(BZ)«--SH(38))
`
`10
`
`Unified Patents Inc. Ex. 1015, pg. 12
`
`Unified Patents Inc. Ex. 1015, pg. 12
`
`

`

`Thus K GBEUB) is first divided into the 8 blockg as indicated in (6). Then each 81 is taken as an
`CL
`input to S,- and the 8 blocks 5108]), 32(82), .
`. ., $438) of 4 bits each are consolidated into “
`single block at" 32 him which forms the input to P. The output (7) is then the output of the
`function ffor the inputs R and K.
`
`FIPS PUB 46-1
`
`11
`
`Unified Patents Inc. Ex. 1015, pg. 13
`
`Unified Patents Inc. Ex. 1015, pg. 13
`
`

`

`Unified Patents Inc. Ex. 1015, pg. 14
`
`Unified Patents Inc. Ex. 1015, pg. 14
`
`

`

`APPENDIX
`
`PRIMITIVE FUNCTIONS FOR THE
`DATA EXNCRY PTION ALGORITHM
`
`FH’S PUB 46-1
`
`to the strength of an
`The choice of the primitive functiems KS, 8,, ..., 88 and P is critical
`encipherment 1031111ng from the algorithm. Specified below is the recommended set of functions,
`describing SI,
`.
`.
`., $8 and P in the same way they are described in the algorithm. For the
`interpretation of the tables describing these functions, see the discussion in the body of the
`algorithm.
`
`The primitive functions St, .
`
`.
`
`., SS, are:
`
`S:
`
`11
`13
`2
`1
`
`8
`1
`11
`7
`
`14
`O
`4
`15
`
`15
`3
`O
`13
`
`4
`15
`1
`12
`
`1
`18
`14
`8
`
`13
`’7
`14
`8
`
`8
`4
`7
`10
`
`1
`4
`8
`2
`
`14
`7
`11
`1
`
`14
`9
`9
`O
`
`2
`14
`13
`4
`
`6
`15
`1O
`3
`
`15
`2
`6
`9
`
`11
`2
`4
`15
`
`8
`3
`8
`6
`
`8
`4
`15
`9
`
`3
`8
`13
`4
`
`15
`6
`‘1
`8
`
`3
`10
`15
`5
`
`9
`12
`5
`11
`
`1O
`6
`12
`11
`
`7
`0
`8
`F)
`
`6
`12
`9
`3
`
`2
`1
`12
`7
`
`52
`
`4
`14
`1
`2
`
`S3
`
`5
`10
`0
`7
`
`1
`2
`11
`4
`
`13
`8
`1
`15
`
`12
`5
`2
`14
`
`12
`11
`7
`14
`
`5
`9
`8
`1O
`
`9
`5
`10
`0
`
`13
`10
`6
`12
`
`7
`14
`12
`3
`
`12
`6
`9
`0
`
`11
`12
`5
`11
`
`0
`9
`3
`5
`
`4
`11
`10
`5
`
`O
`3
`5
`6
`
`5
`11
`2
`14
`
`2
`15
`14
`2
`
`7
`8
`0
`13
`
`10
`5
`15
`9
`
`8
`1
`7
`12
`
`10
`13
`13
`1
`
`7
`18
`10
`3
`
`2
`14
`4
`11
`
`12
`10
`9
`4
`
`0
`7
`6
`10
`
`13
`8
`6
`15
`
`12
`11
`2
`8
`
`1
`15
`14
`3
`
`9
`0
`4
`13
`
`14
`11
`9
`O
`
`S4
`
`3
`5
`0
`6
`
`0
`6
`12
`10
`
`6
`15
`11
`1
`
`9
`0
`7
`13
`
`1O
`8
`13
`8
`
`1
`4
`15
`9
`
`2
`7
`1
`4
`
`8
`2
`3
`5
`
`5
`12
`14
`11
`
`12
`10
`2
`'7
`
`4
`14
`8
`2
`
`$5
`
`4
`2
`1
`12
`
`1
`12
`11
`7
`
`7.
`4
`10
`1
`
`1O 11
`7
`13
`13
`7
`14
`2
`
`8
`1
`8
`13
`
`Se
`
`10
`4
`15
`2
`
`15
`2
`5
`12
`
`9
`7
`2
`9
`
`‘
`12
`8
`5
`
`6
`9
`12
`15
`
`8
`5
`3
`10
`
`8
`5
`15
`6
`
`U
`b
`7
`11
`
`13
`
`5
`0
`9
`15
`
`3
`15
`12
`0
`
`15
`10
`5
`9
`
`O
`9
`3
`4
`
`15
`1
`O
`14
`
`3
`13
`4
`1
`
`4
`11
`10
`7
`
`14
`0
`1
`b
`
`7
`11
`1‘3
`(l
`
`11
`l
`5
`12
`
`18
`3
`6
`10
`
`15
`9
`4
`14
`
`9
`6
`14
`3
`
`11
`8
`8
`18
`
`111
`8
`0
`:3
`
`5
`8
`11
`8
`
`Unified Patents Inc. Ex. 1015, pg. 15
`
`Unified Patents Inc. Ex. 1015, pg. 15
`
`

`

`FIPSIPUB 464
`
`4
`13
`1
`6
`
`13
`1
`7
`2
`
`11
`0
`4
`11
`
`2
`15
`11
`1
`
`2
`11
`11
`13
`
`8
`13
`4
`14
`
`14
`7
`18
`8
`
`4
`8
`1
`7
`
`15
`4
`12
`1
`
`6
`10
`9
`4
`
`S:
`
`0
`9
`3
`4
`
`8
`1
`7
`10
`
`13
`10
`14
`7
`
`12
`8
`3
`14
`1O 15
`9
`5
`
`9
`5
`6
`0
`
`7
`12
`8
`15
`
`Sa
`
`15
`3
`12
`10
`
`11
`7
`14
`8
`
`1
`4
`2
`13
`
`10
`12
`O
`15
`
`9
`5
`6
`12
`
`3
`8
`10
`9
`
`14
`11
`13
`0
`
`5
`2
`0
`14
`
`5
`0
`15
`‘3
`
`10
`15
`5
`2
`
`0
`14
`3
`5
`
`6
`8
`9
`3
`
`12
`9
`5
`6
`
`1
`6
`2
`12
`
`7
`2
`8
`11
`
`The primitive function P is:
`
`16
`29
`1
`5
`2
`32
`19
`22
`
`7
`12
`15
`18
`8
`27
`13
`11
`
`20
`28
`23
`31
`24
`3
`3O
`4
`
`21
`17
`26
`1O
`14
`9
`6
`25
`
`Recall that K", for 1 $11316, is the block of 48 bits in (2) of the algorithm. Hence, to describe KS, it is
`sufficient t

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