WO2000076119A1 - Systeme de traitement cryptographique - Google Patents

Systeme de traitement cryptographique Download PDF

Info

Publication number
WO2000076119A1
WO2000076119A1 PCT/US2000/015872 US0015872W WO0076119A1 WO 2000076119 A1 WO2000076119 A1 WO 2000076119A1 US 0015872 W US0015872 W US 0015872W WO 0076119 A1 WO0076119 A1 WO 0076119A1
Authority
WO
WIPO (PCT)
Prior art keywords
cryptographic
commands
set forth
executing
processing system
Prior art date
Application number
PCT/US2000/015872
Other languages
English (en)
Inventor
Daniel Z. Simon
Original Assignee
General Instrument Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Instrument Corporation filed Critical General Instrument Corporation
Priority to AU57302/00A priority Critical patent/AU5730200A/en
Publication of WO2000076119A1 publication Critical patent/WO2000076119A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Definitions

  • This invention related in general to cryptographic processing systems and more specifically to apparatuses and methods for allowing execution of a number encryption functions by a specialized encryption processor.
  • Cryptographic processing systems are used to provide security to data transmissions.
  • Implementation of the cryptographic algorithms can introduce latencies which are undesirable in data transmission. Accordingly, there is a general need to improve the data transmission speed through cryptographic systems.
  • Some conventional systems use general purpose processors and software to perform cryptographic processing.
  • the algorithms reside in firmware and are executed like any other software.
  • the firmware implements the algorithms with the instruction set of the general purpose processor. If the algorithms change, these systems can be reprogrammed with new firmware to implement the new algorithms.
  • the general purpose processors perform the cryptographic computations slowly because the instruction set is not specialized to include cryptographic instructions. For example, a general purpose processor may only have multiply instruction where some cryptographic algorithms routinely use Montgomery multiplications. Accordingly, performing a
  • Montgomery multiplication would require execution of a series of processor instructions on a general purpose processor. For this reason, general purpose processors execute cryptographic algorithms slowly which increases data transmission latency.
  • general purpose processors have functionality not required in cryptographic processors.
  • some general purpose processors include branch prediction, integrated interfaces and interrupt support. These processors have evolved to provide a moderate level of support to many different functions.
  • the specialized needs of cryptography are not well served because of the overhead needed to support other functions. For example, servicing an interrupt while calculating a Montgomery multiply will slow down the execution of that algorithm which may increase latency. Accordingly, general purpose processors are slowed down by the overhead required to process different types of tasks.
  • Conventional systems have attempted to solve these problems by relying upon specialized cryptographic processors. For example, specialized circuits which implement DES algorithms are well known. These systems have specialized hardware which quickly implements a desired cryptographic algorithm such as encrypt or decrypt. These specialized circuits are typically very large in order to quickly implement the desired function. In contrast to the hardware in the general purpose processor, little of the circuitry is reused is a conventional cryptographic processor.
  • the specialized cryptographic processors cannot be reprogrammed. Once the hardware for the algorithms is produced, it cannot be changed. Accordingly, changing the algorithm would require redesigning the circuit and replacing all integrated circuits incorporating the algorithm. The ability to change the algorithm is desirable because it produces a moving target for hackers or pirates which may attempt to circumvent the cryptographic process.
  • the implementation should be flexible to allow for changes in the algorithm and should require less circuitry to implement than specialized hardware cryptographic processors.
  • apparatuses and methods allow for execution of a number encryption functions by a specialized encryption processor.
  • a method for executing a plurality of commands in a cryptographic processing system is disclosed. A first set of commands are received and executed, whereafter a flag is set. A second set of commands are also received and executed.
  • a cryptographic processing system includes a cryptographic processor, a general purpose processor and a bus. The cryptographic processor executes a function which is sent by the general purpose processor. For this purpose, the bus couples the cryptographic processor to the general purpose processor.
  • Another embodiment describes a cryptographic processor which includes a bus interface, a sequencer, operand memory, and a math unit. The sequencer stores a function received from the bus interface.
  • the math unit is coupled to the bus interface, operand memory and sequencer.
  • a method for processing cryptographic functions is disclosed.
  • a function is received which is comprised of a number of commands.
  • the commands include at least a loop or branch. At least one of the commands is converted to a number of subcommands. After conversion, the number of subcommands are executed.
  • FIG. 1 is a block diagram depicting one embodiment of the cryptographic processing system
  • Fig. 2 is a block diagram which illustrates an embodiment of a cryptographic engine
  • Fig. 3 is a flow diagram which shows a process for performing a single datapath operation under the control of a central processing unit
  • Fig. 4 is a flow diagram which shows a process for performing a cryptographic function comprised of a number of datapath operations under the control of a sequencer.
  • FIG. 1 A block diagram of one embodiment of the cryptographic processing system 100 is illustrated in Fig. 1.
  • the system 100 includes a central processing unit (CPU) 104, a crypto engine 108, one or more peripherals 112, memory 116, and firmware storage memory 120 which are all interconnected by a system bus 124.
  • the CPU 104 is inefficient at performing cryptographic computations, they are passed over the system bus 124 to the crypto engine 108 for execution. Either a single datapath operation or a complete function containing multiple datapath operations may be passed to the crypto engine 108 for execution.
  • the CPU 104 generally controls operation of the cryptographic processing system 100.
  • the CPU 104 is a general purpose processor which performs a variety of tasks. To support this variety, general purpose processors 104 typically have many more instructions than, for example, the cryptographic engine 108. When cryptographic processing is required, the CPU 104 has the cryptographic engine perform the processing. In the mean time, the CPU 104 can process other tasks needed to control the processing system 100.
  • the CPU 104 is a MIPS ® embedded core, however, any number of processing cores could be used.
  • the CPU 104 uses software code or firmware to control operation of the cryptographic processing system 100.
  • the code is stored in firmware storage memory 120 which is a nonvolatile memory such as battery backed random access memory (RAM).
  • firmware storage memory 120 is a nonvolatile memory such as battery backed random access memory (RAM).
  • the CPU 104 uses additional memory 116 to assist execution of the code within the CPU 104.
  • This memory 116 is volatile and rewritable memory which does not retain its value if power is removed. However, other embodiments could use nonvolatile and rewritable form of memory. Variables and data needed during program execution are stored in this memory 116.
  • a number of peripherals 112 are used by the CPU 104 to perform specialized tasks. For example, in the context of a television set-top box, these peripherals 112 could be dedicated to such tasks as modem data transmission to a telephone network.
  • the information sent to and received from the telephone network would be converted by the peripheral 1 12 into a format used by the CPU 104 such that the CPU 104 could interface with the telephone network using the peripheral 112.
  • the crypto engine 108 which performs any cryptographic algorithms.
  • the crypto engine 108 has limited functionality specialized for efficient cryptography. In contrast, the CPU 104 has greater functionality but cannot perform cryptographic functions efficiently.
  • the crypto engine 108 performs computations required for the Rivest, Shamir and Adleman (RSA) cryptographic algorithm.
  • interrupts are used as flags to indicate to the CPU 104 when processing by the crypto engine 108 is complete.
  • polled interrupts or any other technique for setting a flag.
  • the system bus 124 allows communication between all circuits attached to the bus.
  • the system bus 124 allows sending information between the CPU 104 and any other circuit attached to the system bus 124. Additionally, a block of information can be exchanged between the memory 116 and the crypto engine 108 using a direct memory access (DMA) circuit.
  • DMA direct memory access
  • the CPU 104 places a number of data words in the system memory and tells a DMA circuit the output for the data.
  • the DMA transfer directly transfers the data from memory to the crypto engine 108 over the system bus 124.
  • DMA circuits can considerably improve the bandwidth of data transfer because the latencies of the CPU 104 shepherding the transfer of each word of data are avoided.
  • the crypto engine 108 includes a sequencer 200, a math unit 204, configuration registers 208, a bus interface 212, and operand memory 216.
  • This embodiment can accept from the CPU 104 either a single datapath operation or a function including a number of datapath operations.
  • the transfer of data associated with executing a function or datapath operations uses DMA transfers.
  • the bus interface 212 attaches to the system bus 124 and allows data exchange with the crypto engine 108.
  • the bus interface 212 contains control logic which grafts handshaking and data transfer needs of the crypto engine 108 into the memory space of the CPU 104. From the viewpoint of the system bus 124, all the interaction with the crypto engine 108 is memory mapped into the address space of the CPU 104. Some of the circuitry required to enable DMA transfers is also located in the bus interface 212, but most of the DMA circuitry is located elsewhere in the cryptographic processing system 100.
  • the bus interface 212 passes information between the CPU 104 and the configuration registers 208, sequencer 200 and math unit 204.
  • the configuration registers 208 contain parameters associated with execution of a datapath operation such as operand length, datapath operation desired, start address of operand, etc.
  • the math unit 204 uses the information in the configuration registers written by the CPU 104 or sequencer 200.
  • the math unit 204 performs datapath operations upon the operands in the operand memory. Which operation to perform and which operands to perform the datapath operation upon are designated in the configuration. registers 208. Once the information required to execute an datapath operation is written into the configuration registers 208, the math unit 208 waits for the writing into the configuration registers 208 of a,flag which indicates processing should commence. Next, the math unit 208 reads the input operands and configuration information and executes the datapath operation. After execution, a resulting output operand is written into the operand memory 216.
  • the math unit 204 includes a number of submodules such as a math operator 232, an address generator 240 and a math datapath 236.
  • the math operator 232 retrieves the datapath operation from the configuration registers 208 and manages execution of that datapath operation.
  • a state machine within the math operator 232 determines the operation desired, controls the math datapath 236 to perform the arithmetic and controls the address generator 240 to load and store operands from the operand memory 216.
  • the math datapath 236 performs multiplies, squares, additions, subtractions, shifts, Montgomery multiplies, and various other operations on words of data.
  • the operands are comprised of a number of words which are subdivided down to single words during execution by the math operator 232 prior to processing by the math datapath 236.
  • the input operands are 1024 bits, but the word size processed by the math datapath 236 is thirty-two bits.
  • the math operator 232 iteratively has the math datapath perform thirty-two bit word operations to achieve a desired 1024 bit datapath operation.
  • the math datapath 236 Since the math datapath 236 only performs thirty-two bit word operations, the complexity and size of that circuit is greatly reduced. As can be appreciated, a 1024 bit multiply is an extremely large circuit if the multiply is not subdivided into word operations. Accordingly, the present invention reduces circuit size and complexity without resorting to the use of software algorithms performed on a general purpose processor.
  • the address generator 240 and math datapath 236 work under the control of the math operator 232 to perform the word operations.
  • the state machine in the math operator 232 causes the address generator 240 to activate the proper connection between the math datapath 236 and operand memory 216 when reading and writing operands. Additionally, the state machine connects the input operand word and output operand word to the correct word operation in the math datapath 236. For example, in the case of an addition word operation, the state machine connects the appropriate words of the input operands from the operand memory 216 by manipulating the address generator 240 to the input of the addition operation. The output word from the addition is written to the output operand word addressed by the address generator 240.
  • the operand memory 216 stores the input written by the CPU 104 and output operands written by the math datapath 236. Additionally, intermediate results from executing the datapath operation may also be stored in the operand memory 216. In this embodiment, the operand memory 216 is organized in eight blocks, where each block is 2048 bits long. Each operand can span up to two blocks and have a size of up to 4096 bits. Each block is subdivided into sixty- four words which are each thirty-two bits wide.
  • the configuration registers 208 are also written with the length of the each input operand, the block(s) which contain each operand and the start address of the operand within those block(s). In this way, an operand may be written into any location of the operand memory and need not be aligned with any block boundary. In a similar way, the location of the output operand is designated in the configuration registers 208.
  • the operand memory 216 is designed for efficiently writing and reading operands.
  • dual port memory is used as the operand memory 216.
  • the three read busses share one port on each memory cell while the write bus has its own port on each memory cell.
  • only one bus is able to read or write to a given block at a time so the datapath algorithms are designed such that they do not attempt to simultaneously access the two ports of the memory cell at the same time. Since there are three read buses and one write bus, there can be three input operands and one output operand for a given word operation.
  • Addressing of the operand memory 216 includes a select bus which chooses the proper block and a word address bus which selects the proper word within that block. There are additional enable lines and bus gating lines to enable the above described functionality.
  • the CPU 104 can either pass a single datapath operation to the crypto engine 108 for execution or can send a function which contains a number of datapath operations for execution. An example of a function would be some type of RSA task such as key generation.
  • the sequencer 200 is employed to execute the function.
  • the sequencer 200 includes sequencer registers 220, an operation store 224 and a sequence controller 228.
  • a function contains both datapath operations and sequencer operations. Sequencer operations are executed in the sequence controller 228 and include simple operations such as increments, decrements and conditionals. As described above, the datapath operations are executed by the math unit 204.
  • the CPU 104 writes the datapath and sequencer operations to the operation store 224 by way of the sequencer registers 220.
  • the sequencer registers 200 contain other configuration information to assist handshaking between the sequencer 200 and CPU 104. Similar to the configuration registers 208, the sequencer registers 220 appear in the memory map of the CPU 104 and are addressable from the system bus 124 like any other part of the memory map.
  • the operation store 224 holds the datapath and sequence operations which comprise the function.
  • a memory block within the operation store 224 is used to hold these operations.
  • Decode logic within the operation store 224 assists in reading and writing the memory block.
  • the memory block is sixty-four words long where each word is thirty-two bits wide.
  • a program counter in the sequence controller 228 is used to sequence through the operations in the operation store.
  • the sequence controller 228 uses the operations in the operation store 224 along with any information in the sequencer registers to execute the function. Included in the sequence controller 228 are a program counter, operand registers, an arithmetic logic unit (ALU), and a stack. As mentioned above, the program counter addresses the operations in the operand store 224. The stack allows saving the program counter values and any operand registers in order to execute sub-functions which may be part of a function. Increment, decrement and conditional sequencer operations are executed in the ALU so that looping and branching is possible.
  • ALU arithmetic logic unit
  • sequencer 200 When the sequencer 200 encounters a datapath operation, it is sent to the math unit 204 for execution.
  • the sequence controller 228 writes the configuration registers 208 with the necessary information so that the math operator 232 can properly address the operands. Additionally, the datapath operation is written to the configuration registers 208 so that the math operator 232 can formulate the proper word operations necessary to implement the datapath operation.
  • the sequencer 200 sends them to the math unit 204 for execution. In contrast, when the sequencer operations are encountered they are executed locally by the sequencer 200. In this way, a function which contains many datapath and sequencer operations can be executed without intervention by the CPU 104 which allows the CPU 104 to attend to other tasks while the crypto engine 108 executes the function. Additionally, system bus 124 bandwidth is preserved because communication from the CPU 104 is not needed while the crypto engine 108 is executing the function. Upon completion of the function, a flag is set for the CPU 104 so that it knows when to retrieve the output operand from the operand memory 216.
  • a flow diagram depicts the process for executing a single datapath operation sent from the CPU 104.
  • the crypto engine 108 can execute single datapath operations or functions which may contain many datapath operations as well as sequencer operations.
  • the CPU 104 can query the configuration registers 208 to determine if the crypto engine 108 is available for processing the datapath operation. If available, the CPU writes the input operand(s) into operand memory 216 in step 300. As mentioned above, there can be one to three input operands for the various datapath operations.
  • the access to the operand memory 216 is through the math datapath 236 for writing data and through the address generator 240 for addressing data.
  • step 304 information is written to the configuration registers 208 by the CPU 104.
  • This information includes operand location, operand size and datapath operation desired.
  • the operation start flag is activated in step 308.
  • the operation start flag corresponds to a bit in a configuration register which is written by the CPU.
  • any method for setting a flag could be used to begin execution of the operation.
  • step 312 the datapath operation is executed. As discussed above, this involves a state machine in the math operator 232 which issues a series of word operations.
  • the CPU 104 is notified when the execution has completed by setting an execution complete flag in step 316.
  • the complete flag is a bit in the configuration registers 208.
  • other embodiments could use a discrete signal, such as an interrupt, instead of a status bit.
  • the output operand is read from the operand memory 216 by the CPU 104 to complete the process of executing a datapath operation. Referring next to Fig.
  • step 400 the CPU 104 writes the function into the operation store 224 within the sequencer 200.
  • the operations which comprise the function are formulated by the firmware running on the CPU 104. Examples of functions which might be sent the crypto engine 108 include RSA key generation, data encryption or data decryption.
  • the input operands are written into operand memory in step 404. During execution the various datapath operations which comprise the function, these input operands will take many intermediate forms before resulting in an output operand.
  • step 408 a sequencer start flag is activated to signal the crypto engine 108 to begin processing of the input operands according to the function.
  • the first operation in the operation store 224 is fetched in step 410, whereafter the program counter is incremented to point to the next operation in the store 224.
  • step 412 a determination is made whether the operation is a datapath operation for execution by the math unit 204 or a sequencer operation for execution by the sequencer 200.
  • step 416 the sequencer 200 reads information from the program store 224 and writes the appropriate information into the configuration registers 208.
  • step 412 If it is determined in step 412 that the operation is a sequencer operation, processing proceeds to step 424.
  • Execution of the sequencer operation involves performing the operation with the ALU and operand registers within the sequence controller 228. As described above, the sequencer operations are used to branch and loop with ⁇ the function. After either executing a datapath or sequencer operation, a determination is made in step 428 whether execution of the function has completed. If there are more operations to perform, processing loops back to step 410 where the next operation is fetched. If execution of the function has completed, the sequencer sets the execution complete flag in the configuration registers 208 in step 430. The execution complete flag signals the CPU 104 that the output operand is read for retrieval. In step 432, the output operand is retrieved by the CPU 104. In this way, a large function with many operations is executed without intervention by the CPU 104.
  • the crypto engine is faster than software implementations run on general purpose processors. Additionally, the functions are not hard coded into the crypto engine which allows for subsequent changes in the algorithm. Further, the crypto engine requires less circuitry than specialized hardware cryptographic processors because the math operator reuses word size operators in the math datapath. A number of variations and modifications of the invention can also be used.
  • the crypto engine has the ability to execute single datapath operations. In some embodiments, this capability could be removed so that only functions could be executed by the sequencer. However, the functions could only contain one datapath operation. Additionally, some embodiments could use the crypto engine for any variety of cryptographic processing or hash operations using any number of different algorithms. Further, the present invention is not limited to executing a single function at a time. Other embodiments could pass a number of functions to the crypto engine for execution before the CPU retrieves the result.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Advance Control (AREA)

Abstract

L'invention concerne des procédés et des appareils permettant d'exécuter un certain nombre de fonctions de cryptage au moyen d'un processeur (108, 200, 204, 208, 212, 216) de cryptage spécialisé. Dans un mode de réalisation, un procédé traite des fonctions cryptographiques. Une fonction comprenant un certain nombre de commandes est reçue. Les commandes comprennent au moins une boucle ou un branchement. Au moins une des commandes est convertie en un certain nombre de sous-commandes. Après la conversion, ces sous-commandes sont exécutées.
PCT/US2000/015872 1999-06-08 2000-06-08 Systeme de traitement cryptographique WO2000076119A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU57302/00A AU5730200A (en) 1999-06-08 2000-06-08 Cryptographic processing system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13814799P 1999-06-08 1999-06-08
US60/138,147 1999-06-08
US39314799A 1999-09-10 1999-09-10
US09/393,147 1999-09-10

Publications (1)

Publication Number Publication Date
WO2000076119A1 true WO2000076119A1 (fr) 2000-12-14

Family

ID=26835912

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/015872 WO2000076119A1 (fr) 1999-06-08 2000-06-08 Systeme de traitement cryptographique

Country Status (2)

Country Link
AU (1) AU5730200A (fr)
WO (1) WO2000076119A1 (fr)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2834154A1 (fr) * 2001-12-21 2003-06-27 Oberthur Card Syst Sa Unite electronique incluant des moyens de cryptographie capables de traiter des informations a haut debit
EP1324175A1 (fr) * 2001-12-28 2003-07-02 Bull S.A. Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
EP1469371A2 (fr) * 2003-04-18 2004-10-20 IP-First LLC Dispositif microprocesseur et procédé pour accomplir des fonctions cryptographiques de chiffrage par blocs
WO2004099971A2 (fr) * 2003-05-05 2004-11-18 Sun Microsystems Inc. Procedes et systemes permettant d'integrer efficacement un co-processeur cryptographique
EP1496421A2 (fr) * 2003-04-18 2005-01-12 IP-First LLC Dispositif et procédé pour accomplir des fonctions transparentes cryptographiques de chiffrage par blocs
WO2005031575A2 (fr) * 2003-09-26 2005-04-07 Ati Technologies, Inc. Procede et appareil pour controler et reinitialiser un coprocesseur
US7376967B1 (en) * 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
CN100391145C (zh) * 2003-12-04 2008-05-28 智慧第一公司 重组透明化区块密码编译方法及装置
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
CN100463392C (zh) * 2003-09-29 2009-02-18 威盛电子股份有限公司 执行组态区块密码编译演算法的微处理器装置和方法
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
EP2158718A1 (fr) * 2007-05-18 2010-03-03 Verimatrix, Inc. Système et procédé pour définir des étapes de traitement programmables appliquées lors de la protection des données
US7702955B2 (en) 2005-12-28 2010-04-20 De Almeida Adrian S Method and apparatus for detecting a fault condition and restoration thereafter using user context information
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US8321687B2 (en) 2003-11-28 2012-11-27 Bull S.A.S. High speed cryptographic system with modular architecture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111504A (en) * 1990-08-17 1992-05-05 General Instrument Corporation Information processing apparatus with replaceable security element
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US6026490A (en) * 1997-08-01 2000-02-15 Motorola, Inc. Configurable cryptographic processing engine and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111504A (en) * 1990-08-17 1992-05-05 General Instrument Corporation Information processing apparatus with replaceable security element
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US6026490A (en) * 1997-08-01 2000-02-15 Motorola, Inc. Configurable cryptographic processing engine and method

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003054670A1 (fr) * 2001-12-21 2003-07-03 Oberthur Card Systems Sa Unite electronique agencee dans une carte a microcircuit et incluant des moyens de cryptographie capables de traiter des informations a haut debit
US8412956B2 (en) 2001-12-21 2013-04-02 Oberthur Technologies Electronic unit provided in a microcircuit card and including cryptographic means for high-speed data processing
FR2834154A1 (fr) * 2001-12-21 2003-06-27 Oberthur Card Syst Sa Unite electronique incluant des moyens de cryptographie capables de traiter des informations a haut debit
EP1324175A1 (fr) * 2001-12-28 2003-07-02 Bull S.A. Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
FR2834361A1 (fr) * 2001-12-28 2003-07-04 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
US7437569B2 (en) 2001-12-28 2008-10-14 Bull, S.A. Module for secure management of digital date by encryption/decryption and/or signature/verification of signature which can be used for dedicated servers
US7376967B1 (en) * 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
US8429738B1 (en) 2002-01-14 2013-04-23 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
US8091125B1 (en) * 2002-01-14 2012-01-03 Fs Networks, Inc. Method and system for performing asynchronous cryptographic operations
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
EP1469371A3 (fr) * 2003-04-18 2006-06-07 IP-First LLC Dispositif microprocesseur et procédé pour accomplir des fonctions cryptographiques de chiffrage par blocs
EP1469371A2 (fr) * 2003-04-18 2004-10-20 IP-First LLC Dispositif microprocesseur et procédé pour accomplir des fonctions cryptographiques de chiffrage par blocs
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
EP1496421A2 (fr) * 2003-04-18 2005-01-12 IP-First LLC Dispositif et procédé pour accomplir des fonctions transparentes cryptographiques de chiffrage par blocs
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
EP1496421A3 (fr) * 2003-04-18 2006-04-05 IP-First LLC Dispositif et procédé pour accomplir des fonctions transparentes cryptographiques de chiffrage par blocs
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
GB2416224B (en) * 2003-05-05 2007-02-14 Sun Microsystems Inc Methods and systems for efficiently integrating a cryptographic co-processor
WO2004099971A2 (fr) * 2003-05-05 2004-11-18 Sun Microsystems Inc. Procedes et systemes permettant d'integrer efficacement un co-processeur cryptographique
US7392399B2 (en) 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
WO2004099971A3 (fr) * 2003-05-05 2006-01-19 Sun Microsystems Inc Procedes et systemes permettant d'integrer efficacement un co-processeur cryptographique
US8250412B2 (en) 2003-09-26 2012-08-21 Ati Technologies Ulc Method and apparatus for monitoring and resetting a co-processor
WO2005031575A3 (fr) * 2003-09-26 2005-05-19 Ati Technologies Inc Procede et appareil pour controler et reinitialiser un coprocesseur
WO2005031575A2 (fr) * 2003-09-26 2005-04-07 Ati Technologies, Inc. Procede et appareil pour controler et reinitialiser un coprocesseur
CN100463392C (zh) * 2003-09-29 2009-02-18 威盛电子股份有限公司 执行组态区块密码编译演算法的微处理器装置和方法
US8321687B2 (en) 2003-11-28 2012-11-27 Bull S.A.S. High speed cryptographic system with modular architecture
CN100391145C (zh) * 2003-12-04 2008-05-28 智慧第一公司 重组透明化区块密码编译方法及装置
US7702955B2 (en) 2005-12-28 2010-04-20 De Almeida Adrian S Method and apparatus for detecting a fault condition and restoration thereafter using user context information
EP2158718A1 (fr) * 2007-05-18 2010-03-03 Verimatrix, Inc. Système et procédé pour définir des étapes de traitement programmables appliquées lors de la protection des données
EP2158718A4 (fr) * 2007-05-18 2014-09-24 Verimatrix Inc Système et procédé pour définir des étapes de traitement programmables appliquées lors de la protection des données
US9268949B2 (en) 2007-05-18 2016-02-23 Verimatrix, Inc. System and method for defining programmable processing steps applied when protecting the data

Also Published As

Publication number Publication date
AU5730200A (en) 2000-12-28

Similar Documents

Publication Publication Date Title
WO2000076119A1 (fr) Systeme de traitement cryptographique
EP1047989B1 (fr) Processeur de signal numerique pourvu d'un tampon de cadrage des donnees permettant d'acceder aux donnees non cadrees
US7568086B2 (en) Cache for instruction set architecture using indexes to achieve compression
JP3789454B2 (ja) 暗号コプロセッサを有するストリームプロセッサ
US6141376A (en) Single chip communication device that implements multiple simultaneous communication channels
CN101201811B (zh) 用于soc的加解密协处理器
GB2380834A (en) Thread ending method
JP3184834B2 (ja) マイクロコントローラ
US20200334042A1 (en) Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations
CN102521535A (zh) 通过特定指令集来进行相关运算的信息安全协处理器
CN110704109B (zh) 一种椭圆曲线密码协处理器
CN114154640A (zh) 用于实现后量子密码Saber算法的处理器
JP3479385B2 (ja) 情報処理装置
US4967339A (en) Operation control apparatus for a processor having a plurality of arithmetic devices
US7917707B2 (en) Semiconductor device
CN115248701B (zh) 一种处理器寄存器堆之间的零拷贝数据传输装置及方法
US6701388B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
US6055620A (en) Apparatus and method for system control using a self-timed asynchronous control structure
KR20010110202A (ko) 2사이클 고속 푸리에 변환
JPH11307725A (ja) 半導体集積回路
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
KR100639146B1 (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
GB2138182A (en) Digital processor
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP3139310B2 (ja) ディジタル信号処理装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP