The present invention provides a method for performing an inversion and
multiply in a single operation as a polynomial divide operation. As a
result, the invention reduces the number of mathematical operations needed
to perform point doubling and point addition operations. An elliptic curve
cryptosystem using the present invention can be made to operate more
efficiently using the present invention. An elliptic curve
crypto-accelerator can be implemented using the present invention to
dramatically enhance the performance of the elliptic curve cryptosystem.
The invention uses five registers A, B, U, V, and M, to accomplish a
polynomial divide operation. Four registers A, B, U, and V are initialized
with values so that the registers maintain a number of invariant
relationships. The registers store initial values a(t)=x(t), u(t)=y(t),
b(t)=prime(t), and v(t)=0. Here the polynomials in registers A, U, B, and
V are denoted as a(t), u(t), b(t), and v(t), respectively. Register M
stores the irreducible polynomial prime(t). By applying a series of
invariant operations to the registers, the register values are
systematically reduced until registers A and B have a value of one. At
that point, register U stores a value which represents y(t)/x(t) mod
prime(t), solving the polynomial division.
La présente invention fournit une méthode pour exécuter une inversion et se multiplie dans une opération simple comme polynôme divisent l'opération. En conséquence, l'invention réduit le nombre d'opérations mathématiques requises pour effectuer doubler de point et des opérations d'addition de point. Un cryptosystem elliptique de courbe employant la présente invention peut être fait pour fonctionner plus efficacement en utilisant la présente invention. Une courbe elliptique crypto-accelerator peut être mise en application en utilisant la présente invention pour augmenter nettement l'exécution du cryptosystem elliptique de courbe. Les utilisations d'invention cinq registres A, B, U, V, et M, d'accomplir un polynôme divisent l'opération. Quatre registres A, B, U, et V sont initialisés avec des valeurs de sorte que les registres maintiennent un certain nombre de rapports invariables. Les registres stockent l'a(t)=x(t), l'u(t)=y(t), le b(t)=prime(t), et le v(t)=0 de valeurs initiales. Ici les polynômes enregistre dedans A, U, B, et V sont dénotés comme a(t), u(t), b(t), et v(t), respectivement. Le registre M stocke le prime(t) polynôme irréductible. En appliquant une série d'opérations invariables aux registres, les valeurs de registre sont systématiquement réduites jusqu'aux registres A et B ont une valeur d'une. À ce point, le registre U stocke une valeur qui représente y(t)/x(t) le prime(t) de mod, résolvant la division polynôme.