WO2000076119A1 - Systeme de traitement cryptographique - Google Patents
Systeme de traitement cryptographique Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 50
- 230000006870 function Effects 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000003213 activating effect Effects 0.000 claims 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 11
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000007792 addition Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures 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
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)
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)
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 |
-
2000
- 2000-06-08 AU AU57302/00A patent/AU5730200A/en not_active Abandoned
- 2000-06-08 WO PCT/US2000/015872 patent/WO2000076119A1/fr active Application Filing
Patent Citations (3)
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)
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) | 暗号コプロセッサを有するストリームプロセッサ | |
CN108009126B (zh) | 一种计算方法及相关产品 | |
GB2380834A (en) | Thread ending method | |
JP3184834B2 (ja) | マイクロコントローラ | |
CN107957976A (zh) | 一种计算方法及相关产品 | |
US20200334042A1 (en) | Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations | |
CN107957975B (zh) | 一种计算方法及相关产品 | |
CN110704109B (zh) | 一种椭圆曲线密码协处理器 | |
CN114154640A (zh) | 用于实现后量子密码Saber算法的处理器 | |
US20220197655A1 (en) | Broadcast synchronization for dynamically adaptable arrays | |
CN107957977A (zh) | 一种计算方法及相关产品 | |
EP0952528A2 (fr) | Appareil de traitement d'information et support de stockage | |
JP3479385B2 (ja) | 情報処理装置 | |
US4967339A (en) | Operation control apparatus for a processor having a plurality of arithmetic devices | |
JPH0581119A (ja) | レジスタ間接モードを用いる汎用メモリ・アクセス方式 | |
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 | |
KR20010110202A (ko) | 2사이클 고속 푸리에 변환 | |
US6584514B1 (en) | Apparatus and method for address modification in a direct memory access controller | |
CN116324741A (zh) | 用于可配置硬件加速器的方法和装置 | |
KR100639146B1 (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
GB2138182A (en) | Digital processor |
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 |