A co-processor (44) executes a mathematical algorithm that computes modular
exponentiation equations for encrypting or decrypting data. A pipelined
multiplier (56) receives sixteen bit data values stored in an A/B RAM (72)
and generates a partial product. The generated partial product is summed
in an adder (58) with a previous partial product stored in a product RAM
(64). A modulo reducer (60) causes a binary data value N to be aligned and
added to the summed value when a particular data bit location of the
summed value has a logic one value. An N RAM (70) stores the data value N
that is added in a modulo reducer (60) to the summed value. The
co-processor (44) computes the Foster-Montgomery Reduction Algorithm and
reduces the value of (A*B mod N) without having to first compute the value
of .mu. as is required in the Montgomery Reduction Algorithm.
Un co-procesador (44) ejecuta un algoritmo matemático que compute las ecuaciones modulares del exponentiation para los datos que cifran o de descifres. Un multiplicador canalizado (56) recibe dieciséis valores de los datos del pedacito almacenados en un ESPOLÓN de A/B (72) y genera un producto parcial. El producto parcial generado se suma en una serpiente (58) con un producto parcial anterior almacenado en un ESPOLÓN del producto (64). Un reductor del modulo (60) hace un valor binario N de los datos ser alineado y ser agregado al valor sumado cuando una localización particular del bit de datos del valor sumado tiene una lógica un valor. Un ESPOLÓN de N (70) almacena el valor N de los datos que se agrega en un reductor del modulo (60) al valor sumado. El co-procesador (44) computa el algoritmo de la reducción de Fomentar-Montgomery y reduce el valor de (la MOD de A*B N) sin tener que primero computar el valor del mu. como se requiere en el algoritmo de la reducción de Montgomery.