throbber
Declaration of Rachel J. Watters on Authentication of Publication
`
`I, Rachel J. Watters, am a librarian, and the Director of Wisconsin TechSearch
`
`("WTS"), located at 728 State Street, Madison, Wisconsin, 53706. WTS is an
`
`interlibrary loan department at the University of Wisconsin-Madison. I have worked as
`
`a librarian at the University of Wisconsin library system since 1998. I have been
`
`employed at WTS since 2002, first as a librarian and, beginning in 2011, as the Director.
`
`Through the course of my employment, I have become well informed about the
`
`operations of the University of Wisconsin library system, which follows standard library
`
`practices.
`
`This Declaration relates to the dates of receipt and availability of the following:
`
`Davida, G.I. and Danes, F. B. (1988). A crypto-engine. In
`Pomerance, C. (Ed.) Advances in Cryptology- CRYPTO '87.
`Springer-Verlag. pp. 257-268.
`
`Standard operating procedures for materials at the University of Wisconsin-
`
`Madison Libraries. When a volume was received by the Library, it would be checked
`
`in, stamped with the date of receipt, added to library holdings records, and made
`
`available to readers as soon after its arrival as possible. The procedure normally took a
`
`few days or at most 2 to 3 weeks.
`
`Exhibit A to this Declaration is a true and accurate copy of the cover with library
`
`date stamp of Advances in Cryptology- CRYPTO '87 (1988), from the University of
`
`Wisconsin-Madison Library collection. Exhibit A also includes an excerpt of pages 257
`
`to 268 of that volume, showing the article entitled A crypto-engine (1988). Based on
`
`1
`
`Oracle-1037 p. 1
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`Declaration of Rachel J. Watters on Authentication of Publication
`
`this information, the date stamp on the journal title page indicates A crypto-engine
`
`(1988) was received by the University of Wisconsin-Madison Libraries in 1990.
`
`Members of the interested public could locate the Advances in Cryptology -
`
`CRYPTO '87 (1988) publication after it was cataloged by searching the public library
`
`catalog or requesting a search through WTS. The search could be done by title and/or
`
`subject key words. Members of the interested public could access the publication by
`
`locating it on the library's shelves or requesting it from WTS.
`
`I declare that all statements made herein of my own knowledge are true and that
`
`all statements made on information and belief are believed to be true; and further that
`
`these statements were made with the knowledge that willful false statements and the like
`
`so made are punishable by fine or imprisonment, or both, under Section 1001 of Title 18
`
`of the United States Code.
`
`Date: September 24, 2020
`
`Wisconsin TechSearch
`Memorial Library
`728 State Street
`Madison, Wisconsin 53706
`
`Director
`
`2
`
`Oracle-1037 p. 2
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`
`
`Oracle-1037 p. 3
`Oracle v. Teleputers
`|PR2021-00078
`
`Oracle-1037 p. 3
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`• CLASS SEP •.
`Lecture Notes In sER\Al
`Computer Science
`
`Edited by G. Goos and J. Hartmanis
`
`293
`
`Carl Pomerance (Ed.)
`
`Advances in Cryptology -
`CRYPTO '87
`
`Proceedings
`
`kbkf ?. WtNDI EIBRARI
`COLLEGE OF ENGINE~R1NG
`UNIVERSITY OF WISCONSIN
`MADISON, WI 53706
`
`i
`
`Springer-Verlag
`Berlin Heidelberg New York London Paris Tokyo
`
`Oracle-1037 p. 4
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`Editorial Board
`D. Barstow W. Brauer P. Brinch Hansen D. Gries D. Luckham
`C . Moler A. Pnueli G. Seegmuller J. Stoer N. Wirth
`
`Editor
`Carl Pomerance
`Department of Mathematics, The University of Georgia
`Athens, Georgia 30602, USA
`
`CR Subject Classification (1987): E.3
`
`ISBN 3-540-18796-0 Springer-Verlag Berlin Heidelberg New York
`ISBN 0-387-18796-0 Springer-Verlag New York Berlin Heidelberg
`
`This work is subject to copyright. All rights are reserved, whether the whole or part of the material
`is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation,
`broadcasting, reproduction on microfilms or in other ways, and storage in data banks. Duplication
`of this publication or parts thereof is only permitted under the provisions of the German Copyright
`Law of September 9, 1965, in its version of June 24, 1985, and a copyright fee must always be
`paid. Violations fall under the prosecution act of the German Copyright Law.
`CC> Springer-Verlag Berlin Heidelberg 1988
`Printed in Germany
`Printing and binding: Druckhaus Beltz, Hemsbach/Bergstr.
`2145/3140-543210
`
`Oracle-1037 p. 5
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`TABLE OF CONTENTS
`
`SECT.ION l: COMMUNICATION NETWORKS AND STANDARDS
`
`Standards for data security -
`W. L. Price
`
`a change of direction
`
`Integrating. cryptography in ISDN
`K. Presttun
`
`SECTION 2:
`
`PROTOCOLS
`
`Special uses and abuses of the Fiat-Shamir passport protocol
`(Extended abstract)
`. . • . . • • • . . • • . •
`Y. Desmedt, C. Goutier, and S. Bengio
`
`Direct minimum-knowledge computations (Extended abstract)
`R. Impagliazzo and M. Yung
`
`Non-interactive zero-knowledge proof systems .
`A. De Santis, S. Micali, and G. Persiano
`
`How to solve any protocol problem - an efficiency improvement
`(Extended abstract)
`.
`.
`.
`.
`. . . . • • . . • . . •
`O. Goldrei.ch and R. Vainish
`
`Multiparty computations ensuring privacy of each party's input and
`correctness of the result
`. . . • •
`D. Chaum, I. B. Damg!rd, and J. van de Graaf
`
`3
`
`9
`
`21
`
`40
`
`52
`
`73
`
`87
`
`Society and group oriented cryptography: A new concept • • . . • • . . . 120
`Y. Desmedt
`
`A simple and s.ecure way to show the validity of you1· public key • • . • . 128 '
`J. van de Graaf and R. Peralta
`
`Cryptographic computation: Secure fault-tolerant protocols
`and the public-key model (Extended abstract) • • • • . . . • • • • • . . • 135
`z. Galil, S. Haber, and M. Yung
`
`Oracle-1037 p. 6
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`VIII
`
`Gradual and verifiable release of a secret (Extended abstract) • • • • • . 156
`E. F. Brickell, D. Chaum, I. B. Damglrd, and J. van de Graaf
`
`, Strong practical protocols • •
`J. H. Moore
`
`. • • • 167
`
`SECTION 3: KEY DISTRIBUTION SYSTEMS
`
`Identity-based conference key distribution systems . . . •
`K. Koyama and K. Ohta
`
`.
`
`• 175
`
`On the key predistribution system:
`distribution problem ••
`T. Matsumoto and H. Imai
`
`A practical solution to the key
`
`• . • 185
`
`Key distribution systems based on identification information . . . • • . • 194
`E. Okamoto
`
`Secret distribution of keys for public-key systems (Extended abstract) . • 203
`J.-J. Quisquater
`
`SECTION 4: PUBLIC KEY SYSTEMS
`
`An impersonation-proof identity verification scheme
`G. J. Simmons
`
`• • . . . . . . . . 211
`
`Arbitration in tamper proof systems (If DES~ RSA then what's the
`difference between true signature and arbitrated signature schemea1) • • • 216
`G. I: Davida and B. J. Matt
`
`Efficient digital public-key signatures with shadow (Abstract) . • . . . . 223
`L. Guillou and J.-J. Quisquater
`
`Security-related comments regarding McEliece's public-key
`cryptosystem .
`.
`.
`.
`.
`.
`.
`C. M. Adams and H. Meijer
`
`. . . . . . . . 224
`
`SECTION 5: DESIGN AND ANALYSIS OF CRYPTOGRAPHIC SYSTEMS
`
`Components and cycles of a random function
`J.M. DeLaurentis
`
`. • • 231
`
`Fast spectral tests for measuring nonrandomness and the DES . . . . . . . 243
`F. A. Feldman
`
`Other cycling tests for DES (Abstract) • • . . • . . . . . • • . . . . . . 255
`J.-J. Quisquater and J.-P. Delescaille
`
`Oracle-1037 p. 7
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`IX
`
`.
`.
`.
`• • • •
`.
`•
`A crypto-engine
`G. I. Davida and F. B. Danes
`
`•
`
`.
`
`.
`
`.
`
`• • • • • • • • • • • • • • • • 257
`
`A natural taxonomy for digital information authentication schemes
`G. J. Simmons
`
`. •. • • • 269
`
`Analyzing encryption pr.otocols using formal verification techniques
`(Extended abstract)
`.
`•
`.
`•
`.
`• •
`.
`•
`.
`.
`.
`.
`.
`.
`.
`•
`.
`• • • •
`R. A. Kemmerer
`
`.
`
`• 289
`
`Cryptosystems based on an analog of heat flow
`G. R. Blakley and W. Rundell
`
`.
`
`.
`
`• • • • •
`
`.
`
`• •
`
`.
`
`• • • 306
`
`A combinatorial approach to threshold schemes . . . . • • • • . • • • . • 330
`D.R. Stinson and S. A. Vanstone
`
`A realization scheme for the identity-based cryptosystem . . • • • • . • • 340
`H. Tanaka
`
`Equivalence between two flavours .. of oblivious transfers • • . • • • • • . 350
`C. Crepeau
`
`A constr.uction for authentication/ secrecy codes from. certain
`combinatorial designs
`.
`.
`.
`.
`.
`.
`.
`•
`.
`•
`.
`.
`.
`.
`.
`.
`.
`.
`.
`D.R. Stinson
`
`.
`
`•
`
`.
`
`• • •
`
`. 355
`
`SECTION 6: APPLICATIONS
`
`A digital signature based on a conventional encryption function . . . . • 369
`R. C. Merkle
`
`How to make replicated data secure
`M. P. Herlihy and J. D. Tygar
`
`A study of password security
`M. Luby and C. Rackoff
`
`. . . . . . . . . . • . . • • • 379
`
`. . . . . . . . . . • . . . . . . . . . 392
`
`A video scrambling technique based on space filling curves
`(Extended abstract)
`.
`.
`.
`.
`.
`•
`.
`.
`.
`•
`.
`.
`.
`.
`.
`.
`Y. Matias and A. Shamir
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`• 398
`
`Secure audio teleconference . . . . . . . . . . . . . . . . . . . . . . • 418
`E. F. Brickell, P. J. Lee, and Y. Yacobi
`
`SECTION 7:
`
`INFORMAL CONTRIBUTIONS
`
`Attack on the Koyama-Ohta identity based key distribution scheme . . • • • 429
`Y. Yacobi
`
`On the F-function of FEAL . . . . . . . . . . . . . . . • • . . • • • • • 434
`W. Fumy
`
`Oracle-1037 p. 8
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`X
`
`Patterns of entropy drop of the key in an S-box of the DES
`(Extended abstract)
`• • • •
`K. C. Zeng, J. H. Yang, and z. T. Dai
`
`. • • . • • • • 438
`
`The Rao-Nam scheme is insecure against a chosen-plaintext attack • • • • • 445
`R. Struik and J. van .Tilburg
`
`On Struik-Tilburg cryptanalysis of Rao-Nam scheme • . • • • • • • • • • • 458
`T. R. N. Rao
`
`A generalization of Hellman's extension of Shannon's approach to
`cryptography (Abstract) . . • . . • . • . • . • . . • • . • • . . • • • • 461
`P. Beauchemin and G. Brassard
`
`Multiparty unconditionally secure protocols (Abstract) • . . • • . . . • • 462
`D. Chaum, C. Crepeau, and I. Damgird
`
`'I
`
`AUTHOR INDEX . . • • . • . . . . • • • . . . . . . . . . • • . . • • . • • 463
`
`Oracle-1037 p. 9
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`A Crypto-Engine
`
`George I. Davida
`Frank B. Danes
`
`University of Wisconsin-Milwaukee
`Milwaukee.WI 53201
`
`Abstract
`
`In this paper we present a design for a crypto-engine. We shall discuss the design
`and show the instruction set of this coprocessor and then show how this could be used
`to implement most of the known encryption algorithms. We will discuss why a copro(cid:173)
`cessor approach may be a better solution than adoption of specific encryption algorithms
`which can be broken or decertified.
`
`L Introduction
`
`With the ever increasing use of encryption techniques to safeguard data, a need has
`become apparent for special hardware to implement these schemes due to the ineffl.ciency
`of software methods. Special hardware such as DES chips have the draw back of being
`useful for only one encryption technique. Many have discussed the week.ness of the
`method and site potential problems with the sboxs. Furthermore, if DES is not certified
`as the standard for encryption, many existing chips will become obsolete.
`Taking this into consideration, a hardware design that could increase the effl.ciency
`of computation while allowing versatility for many existing encryption algorithms and
`possibly future ones has been considered. Much like a floating point coprocessor, we
`have designed an encryption coprocessor. With basic instructions common to the variety
`of algorithms used today, the design presented in this paper facilitates implementing of
`most encryption algorithms.
`The design of this coprocessor has been based on the Motorola 680001 coprocessor
`protocol. It has been implemented in software for testing purposes. Implementation de(cid:173)
`tails will also be discussed later in the paper.
`
`ssol'Cio:esearch reported in this paper was supported in part by NSF grant OCR-
`
`Oracle-1037 p. 10
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`II. Need For a Coprocessor
`
`258
`
`With chip prices coming down, replacing software tools with hardware tools has be(cid:173)
`come more practical. The problem with hardware is that it may not always be as flexi(cid:173)
`ble as one would want. Take for example the DES chips that are on the market.
`Although they are excellent for preforming their assigned tasks, they can only preform
`one task and that is encrypting data with the DES standard. If this standard is broken
`or decertified as the standard, these chips would be obsolete. Replacement costs for this
`specialized hardware could be expensive.
`Unlike other types of hardware, encryption hardware has the drawback of poten(cid:173)
`tially becoming useless with the ever possible chance that the algorithm the hardware
`implements is broken. Other types of hardware could become obsolete with the advent
`of a new and better device, however; the old hardware is still useful.
`The other disadvantage of a standard encryption chip is that standards can be
`changed. A specialized chip can only implement one encryption technique. If the stan(cid:173)
`dard would change then those using the standard would not be able to communicate
`with those using the old standard. Since reprogramming is not possible, this desired ver(cid:173)
`satility cannot be achieved by these specialized chips. After all, what is the difference
`between a calculator and a computer? It is not the greater capability of the computer or
`its faster processing. It is the versatility of the computer brought about by the ability
`to be programmed for many different applications.
`With this in mind a coprocessor with special instructions that would be useful for
`encryption appears to be a better solution. If a standard encryption technique is
`decertified a coprocessor could easily be reprogrammed. A new technique could easily be
`installed. Not only could a new standard be adopted without any hardware changes,
`different techniques could be used simultaneously for different applications. Further(cid:173)
`more, techniques could be altered to meet specific requirements of local environments.
`The advantage over just pure software implementations of the encryption techniques is,
`of course, special instructions implemented in hardware would bring about a speed ad(cid:173)
`vantage.
`
`IIL Coprocessor Design
`
`To make a hardware device that can implement most of the known algorithms of
`today and still leave room for tomorrows, we need to consider what are the basic opera(cid:173)
`tions of encryption algorithms. There are two basic operations that are used for encryp(cid:173)
`tion. They are substitution and transposition 2• Most crytographic techniques use a
`combination of both.
`Substitution operations can be table lookup, many types of arithmetic operations
`such as multiplication, exponentiation, etc. Transposition operations on the other hand
`are of the form, permutation on the bits of a word, shift registers, and modular arith(cid:173)
`metic, where the permutation is of the entire message space.
`With this in mind, we propose a set of encryption primitives. The substitution in(cid:173)
`structions include all arithmetic in large register form, an actual table lookup and its
`supporting instructions, and three of the boolean operators, and, or, and xor. For the
`permutation operations, we included a bit permuter, three different shift operations, and
`the modular arithmetic operation.
`
`Oracle-1037 p. 11
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`IV. Design Details
`
`259
`
`The registers, illustrated below, that will be needed to support these instructions
`must be of a larger than normal size. For example, RSA uses numbers approximately of
`200 decimal digits large. For this type of arithmetic, there are four large registers, 1024
`bits each. This will allow for roughly 300 decimal digits. These registers will support
`all the arithmetic instructions. There will also be the need for smaller registers for sub(cid:173)
`stitution and permutation operations. There are five 128 bit registers. One of these re(cid:173)
`gisters, the general register, can be addressed as four 32 bit registers, two 64 bit registers,
`or the entire 128 bit register. Finally, there are 16 tables consisting of 256 bytes each
`supporting the table lookup operation.
`
`Register Layout of the Encryption Copr~r
`
`The larger register layout
`1024 bits L1 Large Purpose register
`1024 bits L2 Large Purpose register
`1024 bits L3 Large Purpose register
`1024 bits L4 Large Purpose register (ML) Modules constant
`
`General register, key register and modular constant layout (128 bits)
`Ghl(high.left) I Ghr(high.right) I Gll(low.left) I Glr(low.right)
`128 bits KO key register
`128 bits Kt key register
`128 bits K2 key register
`128 bits MS Small Modular constant register
`
`. Sbox Array
`Array For Slice 1
`
`Array For Slice 2
`
`Array For Slice 16
`
`The instructions listed in Appendix A are the instructions that we have considered
`necessary to fulfill the requirements of our list of basic operations. The instructions
`listed in the Appendix follow these rules of use. Those that have <reg>, <greg>, or
`<lreg> can support the register direct addressing mode on any register, the general re-
`
`Oracle-1037 p. 12
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`260
`
`gister only, and one of the large registers only, respectively. The instructions that have
`<regl> or <reg2> as their operands have the following addressing modes: register
`direct, register indirect, memory immediate, and memory indirect. Furthermore, the in(cid:173)
`direct addressing mode using the main processors registers a{), a6, and a7 has the follow(cid:173)
`ing subdivisions: register indirect, register indirect with au~increment, register indirect
`with au~ecrement, and register indirect with index.
`
`V. Detailed Description Of Some Selected Instructions
`
`The brief description of each instruction presented in the Appendix may not give
`enough information on some of the more complex instructions, and may not completely
`show the versatility of them.
`The sbox substitution is probably the most complex operation. The esbox instruc(cid:173)
`tion can do substitution on a number of bit combinations. The programmer can choose
`from 8, 6, or 4 bits into the substitution and 8, 6, or 4 bits out of the substitution. The
`number of input bits does not have to be the same as the number of output bits. To ini(cid:173)
`tialiu this we will need the .einitsbox instruction. This will set up the esbox instruction
`for operation with one of these combinations of input bits and output bits. We will
`refer to a string of bits that will be used for one atomic substitution, either 8, 6, or 4
`bits in si7.C, as a substitution word.
`As seen by the register layout diagram, there are 16 sbox arrays, each having 256
`bytes of storage. Each of these arrays are to be used for one substitution. That is, one
`substitution word will be an index to one of these sbox arrays. When the substitution
`· word indexs one of the bytes in the array, 8 bits, 6 bits, or 4 bits will be used depending
`on the number of bits that has been set up by the einitsbox instruction for output.
`All of the memory in the sbox array will not be utilized for every substitution
`· combination. For example, if a programmer where to initialiu this operation to 4 bits in
`and 8 bits out with a 64 bit register, all of the 16 sbox arrays would be used, however,
`only 16 bytes out of each array would be used.
`To load the sbox arrays the el.dsbox instruction will be used. The number of the ar(cid:173)
`ray will be needed as well as the number of bytes in that array. In the example above,
`there will be 16 el.dsbox instructions needed to load all of the arrays. Each of these in(cid:173)
`struction will specify n-1 as the number of bytes to load and m for the slice number.
`The only address mode that will be allowed is memory indirect. This will allow the
`programmer to initialiu their sbox arrays somewhere in memory with a label, and use
`that label with the instruction.
`There are two permutation instructions, eperms and epermd, representing control
`from the source and control for the destination. These will be used for two different
`types of permutations. The eperms instruction will allow permutation of one bit to
`multiple bits, while, the epermd instruction, will allow multiple bits to be permuted to
`one bit. Below is a diagram that should clear up the two different permutation instruc(cid:173)
`ti.ons. Note, only four bits of the general register is used, and the first four bytes of the
`l1 registers are used. In the ll registers we will store the following first four control
`bytes, these will control the first four bits in the general register signified by a letter in
`the alphabet.
`14 1 1 1 2 1 4 I
`
`Oracle-1037 p. 13
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`261
`
`This is what is stored in the first four bits of the original general register, g.
`IA I BI CID I
`Permuting the original with the instruction: e-perms ll ,g
`ID I A IBID I
`Permuting the original with the instruction: epermd ll ,g
`IBICIOIAEBDI
`The example above points out the situation for the epermd instruction where no bit was
`assigned to destination of the third bit location. In this case, the third location obtains
`the value zero. Furthermore, if two or more bits go to the same destination, the values
`of those two or more bits are xored together.
`The e-perms instruction would be used in something like the sbox expansion of DE$,
`and the epermd instruction would be used in something like a linear shift register with a
`finite state machine.
`
`VL Details Qf Various Algorithm Implementation
`
`The following implementations are written in the high level language of C and the
`program listings are found in Appendix B. The asm is a construct that allows a pro(cid:173)
`grammer to give an instruction directly to the assembler. After compiling this code the
`modified assembler can translate the coprocessor instructions into machine language. All
`of the coprocessors instructions are noted by italics. Note, some parts of main line,
`functions, and array initia117.ations are omitted to conserve space.
`DES3 was an important consideration in the design of the coprocessor. As long as
`DES is the standard there will be a need to implement it.
`A few points need to be noted for clarity. First, the sbox expansion is done like a
`standard DES sbox expansion. However, after the xor with the key, the bits must be
`permuted again to facilitate the b5b0b4b3b2bl pattern. In other words, since the sbox
`substitution instruction of the coprocessor does a direct table look.up on the address that
`the six given bits generate, they must be permuted to follow the pattern that is neces(cid:173)
`sary to follow the DES algorithm. This is because the algorithm calls for the first and
`last bit of the six bit substitution word be the index to the row and the middle bits be
`the index to the column. In the coprocessor the data is layed out continuously instead
`of having a row and column; thus, the last bit needs to be moved to the second bit. Since
`the large registers are capable of holding a 128 bit permutation, the sbox_expansion ar(cid:173)
`ray will hold both permutations, which in tum is moved to the l4 register.
`The RSA implementation is pretty straight forward since the algorithm is nothing
`more than:
`(encrypt)
`C • ~ mod n
`M - CC1 mod n
`(decrypt)
`where e is the encryption key and d is the decryption key. This means that the only
`steps that need to be done are load one of the large registers with the data, do an ex(cid:173)
`ponential instruction with an automatic modular arithmetic with the ml. register, and
`move the data from the large register back into memory.
`The Pohlig-Hellman scheme is another exponential encryption technique; however,
`it could be implemented in two different ways. The basic algorithm is 4
`c-~modp
`
`Oracle-1037 p. 14
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`262
`
`M-c1modp
`where e is the enciphering key and d is the deciphering key. The p could either be a
`prime or a GF(2m) irreducible polynomial. Either way, it could be implemented quick.ly
`and easily.
`The first implementation, where p is a prime, could be done exactly like the RSA
`listed in Appendix B, except ml would receive the prime value. To do the next imple(cid:173)
`mentation, do the exact implementation as the RSA example with these two changes.
`Put a irreducible polynomial in ml, and replare the following line:
`asmc■ eexpml
`ll,l2•);
`
`with
`
`VII. Remarks
`
`Many other algorithms could be implemented. For example, the Shamir 5 Lagrange
`Interpolating Polynomial Scheme could be done with the arithmetic under Galois Fields
`instructions. All the neassary instructions are available to implement this scheme: ad(cid:173)
`dition, division and multiplication all in GF(2m). Consider the irreducible polynomial
`p(x) - x3 + x + 1; the corresponding binary representation would be 1011. This number
`would be put in the ml or ms register depending on the siu of the integer arithmetic.
`This would then mean that all the arithmetic would be done under the Galois Field
`GF(23) with 1011 as the irreducible polynomial.
`Another method for encryption could be implemented just as easily. The Block. Ci(cid:173)
`phers with Subkeys 6 could be implemented with the basic arithmetic mod instructions.
`In this scheme the basic operations are inverse (edivml), multiplication (emultml), and
`addition (eaddml).
`The software implementation was done on a Motorola 68010 based system. The
`68000 protocol for coprocessor instruction identification is what is referred to as an P(cid:173)
`line instruction. This F-line instruction will precede any coprocessor instruction. It will
`have the coprocessor identification number as well as other information. If the coproces(cid:173)
`sor doesn't exist in hardware, the processor will invoke a F-line emulation trap (vector
`11). With this, we can trap the instruction in the kernel and start the emulation pro(cid:173)
`cess. On a UNIX bsd 4.2 system this is just a quick. addition in the trap.c code to cap(cid:173)
`ture the interrupt and a function call to the emulation routines. In the emulation rou(cid:173)
`tines, the first step is to check. what the instruction is and call the appropriate emulation
`function.
`The implementation of the Galois fields followed the Scott, Stafford and Peppard7
`algorithm for multiplication and the Davida and Litow8 algorithm for inverse. Other
`implementations of arithmetic were done by methods that made the software easiest to
`write, not considering hardware problems.
`
`Appendix A
`
`Instruction Set
`
`eadd <regl>,<reg2>
`
`The eadd instruction adds the source < regl >
`to
`the destination < reg2> and stores the result in the
`
`Oracle-1037 p. 15
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`eaddms <regl> ,<reg2>
`eaddml < regl > , < reg2 >
`
`eaddgfms < regl >, < reg2 >
`eaddgfml < regl >, < reg2 >
`
`esub < regl >, < reg2 >
`
`esubms <regl>,<reg2>
`esubml < regl >, < reg2 >
`
`esubgfms < regl >, < reg2 >
`esubgfml < regl >, < reg2 >
`
`emult <regl>,<reg2>
`
`emultms <regl>,<reg2>
`emultml <regl>,<reg2>
`
`emultgfms <regl>,<reg2>
`emultgfml < regl >, <reg2>
`
`ediv <regl>,<reg2>
`
`edivms <regl> ,<reg2>
`edivml < regl > , < reg2 >
`
`edivgfms < regl >, < reg2 >
`edivgfml <regl>,<reg2>
`
`eexp <regl> ,<reg2>
`
`eexpms <regl> ,<reg2>
`
`263
`
`destination < reg2>.
`
`The eaddms and eaddml instructions do the same
`addition mod the (ms) and (ml) registers respec(cid:173)
`tively.
`
`The eaddgf ms and eaddgfml instructions do the ad(cid:173)
`dition in the Galios Field GF(2m) using the (ms)
`and (ml) registers respectively to store tlie irreduci(cid:173)
`ble polynomial P(x).
`
`The esub instruction subtracts the source < regl >
`from the destination <reg2> and stores the result
`in the destination < reg2>.
`
`The esubms and esubml instructions do the same
`subtraction mod the (ms) and (ml) registers respec(cid:173)
`tively.
`
`The esubgfms and esubgfml instructions do the
`subtraction in the Galios Field GF(2m) using the
`(ms) and (ml) r e~ i:espectively to store tlie ir(cid:173)
`reducible polynomial P(x).
`
`The emult
`the source
`instruction multiplies
`to the destination(reg2) and stores the
`< regl >
`result in the destination <reg2::>.
`
`The emultms and emultml instructions do the same
`multiplication mod the (ms) · and (ml) registers
`respectively.
`
`The emultgf ms and emultgfml instructions do the
`multiplication in the Galios Field GF(2m) using the
`(ms) and (ml) ~ i:espectively to store tlie ir(cid:173)
`reducible polynomial P(x).
`
`The ediv instruction divides the source < regl >
`into the destination < ~2> and stores the result
`in the destination <reg2>.
`
`The edivms and edivml instructions do the same
`division mod the (ms) and (ml) registers respec(cid:173)
`tively.
`
`The edivgfms and edivrlml instructions do the
`division in the Galios Field GF(2m) using the (ms)
`and (ml) r e~ ,;:espectively to store the irreduci(cid:173)
`ble polynomial P(xJ.
`
`The eexp instruction takes destination < reg2> to
`the power of the source <regl> and stores the
`result in the destination < reg2>.
`
`Oracle-1037 p. 16
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`ccxpml < rcgl >, < rcg2 >
`
`ccxpgf ms < regl >, < reg2 >
`ccxpgfml <rcgl> ,<rcg2>
`
`cunsetsign
`csctsign~
`
`cmod <regl>,<rcg2>
`
`cmov <regl>,<rcg2>
`
`264
`
`The eexpms and eexpml instructions do the same
`exponentiation mod the (ms) and (ml) registers
`respectively.
`
`The eexJ>gf ms and eexP2f ml instructions do the ex(cid:173)
`ponentiation in the Galios Field GF(2m) usin.ng the
`lms) and (ml) r e~ r_espectivcly to store tlie ir(cid:173)
`reducible polynomial P(x).
`
`These two instructions will set all arithmetic in an
`unsigned mode and set all arithmetic in a signed
`mode, ~vely.
`
`The emod instruction will do a modular arithmetic
`operation. The destination < ~2> mod source
`<regl> and place the results in the destination
`<reg2>.
`
`instruction will move <i:egl>
`to
`The emov
`< rq2>. This can also be used to load registers
`witli the different address modes available.
`
`cldsbox #array ,#bytcs,_mcmory _location
`Tne eldsbox instruction will load one of the 16
`sbox arrays. It will load the amount of b~ in
`that table that is specified by the #bytes field. The
`only ~ mode allowed is memory indirect,
`thus the Pf!)gl'am will have to give the location of
`where the sbox array is stored in memory.
`
`cinitsbox #cl,#c2
`
`cs box < greg>
`
`cperms <lrcg>,'<rcg>
`
`cpcnnd <lreg>,<rcg>
`
`cand < rcgl >, < reg2 >
`
`cor <rcgl>,<rcg2>
`
`The einitsbox instruction will initialize the control
`for the sbox instruction. The #cl will be the
`number of bits inputed for each substitution in the
`sbox ~ation and #c2 will be the number of bits
`output for each substitution. These bits can have
`the values four, six and eight.
`
`The esbox instruction does a sbox array look.up
`with the < greg> and stores the result in the same
`register.
`
`The epenn instruction will do a permutation on a
`the destination < reg> with the large control regi.!1-
`ter <~>. Each oyte in the control r:egister will
`control where each bit in the destination <reg>
`will come from.
`
`The epenn instruction will do a permutation on a
`the destination < reg> with the large control reglll-:(cid:173)
`ter <lre2>. Each 6yte in the control revster will
`control the destination of corresponding "bit in the
`destination <reg>.
`
`The eand instruction will do a bitwise and on the
`two ~ given and stores the result in the des(cid:173)
`tination <reg2>.
`
`The eor instruction will do a bitwise or on the two
`registers given and stores the result in the destina(cid:173)
`tion <reg2>.
`
`Oracle-1037 p. 17
`Oracle v. Teleputers
`IPR2021-00078
`
`

`

`265
`
`exor <regl>,<reg2>
`
`The exor instruction will do a bitwise xor on the
`two registers given and stores the result in the des(cid:173)
`tination <reg2>.
`
`elshiftl #mnn of bits,<reg>
`ershiftl #num of bits, <reg> The elshiftl and ershiftl will do a left or right
`respectively logical shift on the register specified l>y
`the number of bits given.
`
`elshiftc #num of bits,<reg>
`ershiftc #num of bits,< reg> The elshiftc and ershiftc will do a left or r!gh!
`respectively circular shift on the register specified
`by the number of bits given.
`
`elshifta #num of bits,< reg>
`ershifta #num of bits,< reg> The elshifta and ershifta will do a left or r!ght
`respectively arithmetic shift on the register specified
`by the number of bits given.
`
`A

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