Abstract:
A cryptographic engine (10) that includes a scalable cryptographic coprocessor (14) that is controlled by, and separate from, a main engine processor (12). The coprocessor includes a register bank (40) for receiving and storing data packets to be encrypted, and cryptographic processing slices (34a-34n) coupled to the register bank (40) with a processing capacity that is scalable based on application-specific parameters. The coprocessor (14) also includes a control device (38) coupled to the register bank (40) and the cryptographic processing device (34a-34n) for instructing the cryptographic processing slices to perform a cryptographic processing operation unique to each cryptographic processing slice (34a-34n) based on externally-received processing instructions.
Abstract:
Parallel modulo arithmetic calculations are carried out on a device adapted to perform bitwise logical operations by storing the numbers to be operated upon in a vector form, and performing arithmetical operations on multiple numbers in parallel. The invention finds particular application in cryptosystems, as well as in other fields.
Abstract:
Montgomery multipliers and methods modular multiply a residue multiplicand by a residue multiplier to obtain a residue product, using a scalar multiplier, a first vector multiplier and a second vector multiplier. A controller is configured to control the scalar multiplier, the first vector multiplier and the second vector multiplier, to overlap scalar multiplies using a selected digit of the multiplier and vector multiplies using a modulus and the multiplicand. The scalar multiplier is configured to multiply a least significant digit of the multiplicand by a first selected digit of the multiplier, to produce a scalar multiplier output. The first vector multiplier is configured to multiply the scalar multiplier output by a modulus, to produce a first vector multiplier output. The second vector multiplier is configured to multiply a second selected digit of the multiplier by the multiplicand, to produce a second vector multiplier output. An accumulator is configured to add the first vector multiplier output, and the second vector multiplier output, to produce a product output. The latency of Montgomery multiplication thereby can be reduced to nearly the latency of a single scalar multiplication.
Abstract:
A cryptographic engine (10) that includes a scalable cryptographic coprocessor (14) that is controlled by, and separate from, a main engine processor (12). The coprocessor includes a register bank (40) for receiving and storing data packets to be encrypted, and a cryptographic processing device (34a-34n) coupled to the register bank (40) with a processing capacity that is scalable based on application-specific parameters. The coprocessor (14) also includes a control device (38) coupled to the register bank (40) and the cryptographic processing device (34a-34n) for instructing the cryptographic processing device to perform a cryptographic processing operation unique to the cryptographic processing device (34a-34n) based on externally-received processing instructions.
Abstract:
A method, apparatus, and article of manufacture for a computer implemented packet processor. The packet processor (104) processes packets in parallel. In particular, the packet processor performs a combination of encryption (108) and authentication (110) on data packets. The encryption and authentication processing of a second data packet may begin before the encryption and authorization processes of a first data packet have completed.
Abstract:
In order to encipher data while enciphering other data, a memory (55) is arranged in parallel to a feedback line (65) for feedback to a selector (54) from an enciphering module (51) using an encryption key (K). If an interrupt (IT) for processing plaintext block data (Ni) occurs during the processing of plaintext block data (Mi), the cryptogram block data (Ci) being in process when the interrupt (IT) occurs is stored in a register (56). When the processing of the plaintext block data Ni is completed, a selector (54) selects the cryptogram block data (Ci) stored in the memory (55), and the processing of plaintext block data (Mi+1) is started.
Abstract:
A technique which implements a primitive for computing, e.g., checksum, this primitive replaces a mod(M) operation with a series of simple elementary register operations (20). These operations include mod 2 multiplications, order manipulations (e.g., byte or word swaps), and additions - all of which are extremely simple to implement and require very few processing cycles to execute. Hence, use of our inventive technique can significantly reduce the processing time to compute various cryptographic parameters, such as, e.g., a message authentication code (MAC) (400), or to implement a stream cipher (23) over that conventionally required. This technique has both invertible and non-invertible variants.
Abstract:
The invention relates to a data processing device (100) and to a method for operating the data processing device, notably a chip card. Said device comprises an integrated circuit which in accordance with a clock pulse carries out calculating operations, especially cryptographic operations, data inputs and outputs and data transfers from and to registers of the integrated circuit. To this end the integrated circuit (10) is controlled such that the calculating operations, on the one hand, and the input/output of data and data transfer from register to register or between registers, on the other hand, are carried out time-parallel.
Abstract:
An encryption chip is programmable to process a variety of secret key and public key encryption algorithms. The chip includes a pipeline of processing elements, each of which can process a round within a secret key algorithm. Data is transferred between the processing elements through dual port memories. A central processing unit allows for processing of very wide data words from global memory in single cycle operations. An adder circuit is simplified by using plural relatively small adder circuits with sums and carries looped back in plural cycles. Multiplier circuitry can be shared between the processing elements and the central processor by adapting the smaller processing element multipliers for concatenation as a very wide central processor multiplier.
Abstract:
A ciphering apparatus of common key type, wherein a plurality of rounding units are connected in cascade, the i-th rounding unit is fed with input data Li, Ri, the input data Ri are subjected to nonlinear transformation by a nonlinear function unit depending upon the key data, the exclusive-OR output of the output of the nonlinear function unit and the input data Li is outputted as data Ri+1 to the (i+1)-th rounding unit, and the input data Ri are outputted as data Li+1 to the (i+1)-th rounding unit. The nonlinear function unit includes: a key-dependent linear transforming unit for subjecting the input Ri to key-dependent linear transformation; a dividing unit for dividing the output into four data in0, in1, in2 and in3; first nonlinear transforming units for subjecting the divided data to nonlinear transformation to output data mid00, mid01, mid02 and mid03; a key-dependent linear transforming unit for correlating these transformed outputs to each other and subjecting them to linear transformation based upon the key data to output data mid10, mid11, mid12 and mid13; second nonlinear trasnforming units for subjecting the transformed outputs to nonlinear transformation to output data out0, out1, out2 and out3; and a coupling unit for coupling the transformed outputs to output data Y.