DE3855497T2 - Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers - Google Patents
Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen KörpersInfo
- Publication number
- DE3855497T2 DE3855497T2 DE3855497T DE3855497T DE3855497T2 DE 3855497 T2 DE3855497 T2 DE 3855497T2 DE 3855497 T DE3855497 T DE 3855497T DE 3855497 T DE3855497 T DE 3855497T DE 3855497 T2 DE3855497 T2 DE 3855497T2
- Authority
- DE
- Germany
- Prior art keywords
- forms
- calculating
- linear
- inverse
- subfield
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000007792 addition Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/7209—Calculation via subfield, i.e. the subfield being GF(q) with q a prime power, e.g. GF ((2**m)**n) via GF(2**m)
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
- Detection And Correction Of Errors (AREA)
Description
- Die Erfindung betrifft das Berechnen der multiplikativen Inversion eines Galois-Feldelements in GF(qm), wenn dieses Element in Vektordarstellung vorliegt. Hierin ist q eine zur Potenz erhobene Primzahl, üblicherweise q=2¹=2. Für viele Anwendungen ist m gerade, und häufig ist m = 8. Solche Berechnungen stellen dann byte-weise Datenverarbeitung zur Kryptographie, für Fehlerschutz z.B. mit Hilfe von Reed-Solomon-Codes, schnelle Fouriertransformationen und anderes dar. Die Daten entsprechen dann Videodaten, Audiodaten, in denen ein mit "Compact Disc" oder "Digital Audio Tape" aufgezeichneter Audioabtastwert von 2 Bytes gebildet würde, oder Meßergebnissen. Als Referenz sei die US-Patentschrift 4.587.627 genannt. Im folgenden werden elementare Eigenschaften und Rechenoperationen in einem Galois-Feld als Standardwissen betrachtet. Allgemein kann ein Gabis-Feldelement mit Hilfe einer Übersetzungstabelle (PROM oder ROM) invertiert werden, die für sinnvolle Felder, wie GF(2&sup8;), eine sehr umfangreiche Hardware erfordert. Ein alternatives Verfahren, das beispielsweise einen programmierten Prozessor verwendet, würde erhebliches Pipelining benötigen und daher viel Rechenlaufzeit mit sich bringen. Die vorliegende Erfindung benutzt ein Konzept von Subfeldem und berechnet insbesondere das multiplikative Inverse eines vektoriell repräsentierten Elements eines endlichen Feldes, dem Hauptfeld, mit Hilfe von Inversion in einem Subfeld des Hauptfeldes. Ein endliches Feld GF(qm) enthält jetzt GF(qn) als Subfeld, wenn m =rn, wobei zur Beschreibung der vorliegenden Erfindung eine Beschränkung vorgenommen wird, nämlich r=2. Das Prinzip der Erfindung ist jedoch auch auf andere Werte von r anwendbar. Der Index des Hauptfeldes über dem Subfeld ist r. Weil jetzt eine Berechnung in einem Subfeld mit weniger Vektorkoeffizienten arbeitet, ist die erstgenannte Berechnung einfacher und/oder schneller.
- WO 89/01660 (früheres Patentdokument, aber nach dem Anmeldedatum der vorliegenden Erfindung veröffentlicht) beschreibt ein Gerät zum Berechnen multiplikativer Inverser in Datencodier- und -decodiereinrichtungen. Hierbei werden zwei Elemente, X und Y, von GF(2m), mit m = 2n, dividiert. Die Operation Y/X wird ausgeführt, indem erst das multiplikative Inverse des Divisors X gefunden wird und dann das Inverse X&supmin;¹ mit dem Dividenden Y multipliziert wird.
- Bei diesem Stand der Technik wird weiterhin beschrieben, daß eine herkömmliche Galois-Feld-Division erfordert, daß das multiplikative Inverse des Divisors in einer Nachschlagetabelle mit 2n Elementen gefunden wird.
- Die Operationsfolge ist die folgende:
- a. ein Konversionsfaktor D = X2n wird berechnet, wobei die Berechnung von D in einem Galois-Feld mit der Basis 2 relativ einfach erscheint;
- b C, ein Element eines kleineren Galois-Feldes, GF(2n), das ein Subfeld von GF(2m) ist, wird berechnet: C = D X;
- c. das multiplikative Inverse von C in GF(2n) wird aus einer Tabelle zurückgewonnen, die die 2n Elemente von GF(2N) enthält;
- d. C&supmin;¹ D = X&supmin;¹ wird berechnet.
- Die vorliegende Erfindung nutzt auch das Konzept von Subfeldern, aber benötigt nicht den komplizierten endlichen Feldmultiplizierer für Schritt d.
- Der Erfindung liegt unter anderem die Aufgabe zugrunde, ein Datenverarbeitungsgerät zum Berechnen eines multiplikativ invertierten Elements in einem endlichen Feld zu verschaffen, das bei beschränkten Hardware-Anforderungen schnell arbeitet, indem es Inversionen in einem Subfeld verwendet, insbesondere in einem Subfeld vom Index 2, mit Hilfe einer vernünftigen Kombination quadratischer Formen, die bei dieser Reduktion eine Rolle spielen, zu Standardformen. Entsprechend einem Aspekt der Erfindung wird diese Aufgabe durch ein Gerät zum Berechnen der Komponenten X&supmin;¹k mit k = 0, 1, ..., 2n-1 eines Elements X&supmin;¹ gelöst, das das Inverse eines Eingangselements X des Hauptfeldes GF(2m) mit m =2n ist, wobei X durch ein Signal repräsentiert wird, das eine Menge von Vektorkoeffizienten (X&sub0;, X&sub1;; X&sub2;; ...; 2n-1) aufweist, und wobei (α&sup0;, α¹, ..., α2n-1) eine Basis in GF(2m) ist, so daß
- gemäß der Gleichung:
- wobei das genannte Gerät umfaßt:
- a. erste Mittel (22), die zusammen die 2n Bits eines Signais empfangen, das das genannte Element X repräsentiert, zum Erzeugen einer ersten Matrix aus 2n² Linearformen Lj,i(X), mit j = 0, ..., n-1 und i =0, ..., 2n-1, und einer zweiten Matrix aus 2n² Linearformen Wjk(X), mit j = 0, ..., n-1 und k = 0,.. 2n-1,
- wobei für bestimmte Zahlen cij und dijk GF(2) gilt:
- und
- b. zweite Mittel (28), die Signale empfangen, die die Linearformen Lj,i(X) repräsentieren, zum paarweise Kombinieren und Addieren der Linearformen, wobei alle Additionen modub 2 ausgeführt werden, zum Berechnen quadratischer Formen Qj(X), die Elemente von GF (2n) sind, gemäß der Gleichung:
- fü rj = 0, 1, ... , n-1
- c. dritte Mittel (30), die Signale empfangen, die die quadratischen Formen Qj(X) repräsentieren, zum Berechnen von Rj(X) in dem Subfeld GF(2n) durch Invertieren von Qj(X);
- d. vierte Mittel (32), die für die inversen Formen Rj(X) und die Formen Wjk(X) repräsentative Signale empfangen, zum Berechnen der k-ten Komponente des Elements X&supmin;¹ gemäß der Gleichung:
- Die Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben, und zwar erst die mathematischen Aspekte, dann die sich ergebende Operationsfolge der Schritte und die Hardware-Schaltung und schließlich ein spezielles Beispiel. Es zeigen:
- Figur 1 ein Basis-Blockschaltbild eines erfindungsgemaßen Geräts und Tabelle 1A - 1E eine Gatter-Auflistung einer Inversionseinrichtung für GF(2&sup8;).
- Aus Gründen der Vereinfachung wird die Erfindung für das endliche Feld GF(2n) beschrieben, mit m =2n. Der Fall q = 3 würde statt zu binären Elementen zu dreiwertigen Elementen führen, die im Prinzip mit Hilfe bekannter Logikschaltungen realisiert werden können. Das Hauptfeld GF(2m) hat für m=8 beispielsweise ein erzeugendes Polynom g(X) = X&sup8;+X&sup4;+X³+X²+1. Seine Elemente werden bezüglich einer Standardbasis (1,d...d&sup7;) ausgedrückt, die durch die Lösungen von g(d) =0 gegeben wird. Ausgangspunkt der Erfindung ist die Berechnung des multiplikativen inversen Elements X&supmin;¹ eines Elements X, das in GF(2m) durch X X&supmin;¹ =1 bestimmt wird, durch Verwendung des Ausdrucks: X&supmin;¹=(x2n+1)-1 X2n. Hierin ist der Ausdruck in Klammern ein Element des Subfeldes, während X ein Element des Hauptfeldes ist.
- Wir definieren eine Linearform L(X) über GF(2m) als Funktion L(X)=L(0) X0+L1 X1+...+Lm-1 Xm-1, von GF(2m) bis GF(2m), wobei jedes Li ein Element von GF(2) ist. Eine solche Linearform wie hierin definiert ist eine Modulo-2- Summe selektierter Koeffizienten der Vektordarstellung von X. Eine quadratische Form Q(X) über GF(2m), von GF(2m) bis GF(2), wird definiert als Funktion:
- wobei ci, aij GF(2). " " bedeutet hierbei "ist ein Element von". Daher ist eine solche quadratische Form, wie hier definiert, eine modulo-2-Summe selektierter Koeffizienten und selektierter, UND-verknüpfter Koeffizientenpaare der Vektordarstellung von X. In nahezu ähnlicher Weise könnten Formen höherer Ordnung definiert werden.
- Jetzt kann für L(X)=X2n und Q(X)=X2n+1, mit X GF(2m=2n), L(X) geschrieben werden als L(X)=(L0(X), ...Lm-1(X)), bezüglich einer Basis in GF(2m), die nicht die Standardbasis (1...dm-1) zu sein braucht, die entsprechend einer Standardisierungskonvention festgelegt worden ist. Hierin ist jeder Koeffizient Li(x) eine Linearform. Tatsächlich gilt für X, Y GF(2m), (X+Y)²=X²+2XY+Y²=²+Y², weil XY+XY=0 und auch (X+Y)2n=X2n+y2n. Somit ist der Übergang von. X nach L(X) eine Linearoperation und jedes Li(X) ist eine Linearform.
- Nun ist für X GF(2m) Q(X) in GF(2n). Tatsächlich genügen die Elemente X von GF(2m) X2m = X. Außerdem sind die Elemente Y von GF(2n) GF(2m) genau gleich denen, die y2n=y erfüllen. Jetzt gilt (Q(X))2n = X22n+2n + X22n X22n = X X2n = Q(X). Für eine Basis b0, b1, ...bn-1 in GF(2n) kann Q(X) geschrieben werden als Q(X) = (Q0(X), Q1(X), ..., Qn-1(X)), wobei die Wahl der Basis die Werte der Koeffizienten beeinflußt.
- Jetzt ist jeder Koeffizient Qi(X) eine quadratische Form. Faktisch ist für
- B(X,Y)=Q(X+Y)+Q(X)+Q(Y) offenbar
- B(X,Y)=(X2n+Y2n(X+Y)+X2n+1+Y2n+1=X2n Y+X Y2n=L(X) Y+X L(Y), so daß B(X,Y) tatsächlich eine bilineare Operation definiert. Dies beweist die Behauptung zu Qj(X).
- Für eine gegebene Basis α0..αm-1 in GF(2m) und β0..βn-1 in GF(2n) gibt es einfache Möglichkeiten, eher erwähnte Ausdrücke für die Linearformen Li(X), i=0..m-1, und die quadratischen Formen Qj(X), j=0,..n-1, zu berechnen. Somit kann eine solche Berechnung mit Hilfe eines Computerprogramms automatisch ausgeführt werden.
- Für alle i, j gilt αi αj2n αj GF(2n); αi2n αj GF(2n); αi2n αj GF(2m). Dagegen gilt für alle i,j:
- und
- für bestimmte Zahlen cij, bik, aijk GF(2). Daher ist
- Als Ergebnis wird erhalten:
- In Fortsetzung zum Vorstehenden können die so definierten quadratischen Formen erneut in besser hantierbarer Darstellung ausgedrückt werden. Man betrachte jetzt M(X,Y), definiert als ( X2n Y ), wobei X GF(2m) und Y GF(2n).
- Hierin gilt X2n = Lj(x) αj; Lj(X) = cij Xj;
- Y = Yk βk. Daher gilt
- M(X,Y) = Lj(X) Yj αj βk.
- Man schreibe aj βk = djkl α1
- Dann finden wir Setze
- Jetzt kann bewiesen werden, daß wlk (X) eine Linearform über GF(2m) ist. Folglich hat M(X, Y) Komponenten (0, ..m-1):
- Eine Funktion L(X) von GF(2m) bis GF(2) kann jetzt im wesentlichen linear genannt werden, wenn entweder L(X) selbst oder 1+L(X) eine Linearform ist. Es zeigt sich, daß folgendes zutrifft. Um Q(X) eine quadratische Form über GF(2m) werden zu lassen, können im wesentlichen lineare Formen Li(X) gefunden werden, so daß
- Q(X)=L1(X) L2(X)+L2(X) L3(X)+..L2k-1(X) L2k(X), oder L1(X)...L2k(X)+1, wobei die geforderte Zahl 2k solcher für Q(X) benötigter Linearformen nur durch die Anzahl Nullstellen von Q(X) in GF(2m) beherrscht wird. Es hat sich gezeigt, daß die Anzahl Nullstellen der quadratischen Formen Qi(X) gleich 1+(2n+1)(2n-1-1) ist und unabhängig von den tatsächlich verwendeten Basen (aj) in GF(22n) und (βj) in GF(2n)
- Tatsächlich würde eine solche Nullstelle für x2n+1=y2n+1 erzeugt werden, was der Fall ist, wenn entweder X=Y=0 oder (X/Y)2n+1=1. Da α in GF(2m) ein primitives Element ist, hat die Gleichung Z2n+1=1 tatsächlich genau 2n+1 Lösungen Zj=αj(2n-1) für j=0, .. 2n. Daher nimmt Q(X)=X2n+1 jeden von null unterschiedlichen Wert genau 2n+1-mal an. Da Q(X) GF(2n), hat GF(22n) 22n Elemente und hat GF(2n) 2nElemente, Q(X) nimmt jeden von null unterschiedlichen Wert in GF(2n) genau 2n+1-mal an und den Wert null genau einmal. Wenn jetzt Y alle Elemente von GF(2n) durchläuft, wird jeder Koeffizient von Y bezüglich irgendeiner festen Basis aus Symmetriegründen genau in der Hälfte der Fälle null sein. So wird irgendein bestimmter Koeffizient aller Elemente ungleich null in GF(2n) genau 2n-1-1-mal null sein.
- Die Anzahl 2k von für die Ausdrücke für die quadratischen Formen Qi(X) notwendigen im wesentlichen linearen Formen wird durch die Zahl der Nullstellen einer quadratischen Form Q(X) über GF(2n) bestimmt, nämlich 1+(2k+1)+(2k-1-1) Im wesentlichen lineare Formen geben somit die quadratische Form als:
- Qi(X) = Li,1(X) Li,2(X)+..+Li,2n-1(X) Li,2n(X).
- Entsprechend dem Vorstehenden wird das multiplikative Inverse folgendermaßen berechnet:
- X-1=X2n+1 X2n
- Hierin, L(X):=X2n GF(2m),
- Q(X):=X2n+1 GF(2n).
- Zunächst werden zwei Basen gewählt, nämlich:
- GF(2m) : α0, α1...α2n-1
- GF(2n) : β0, β1...βn-1.
- Insbesondere die Wahl für die zweite Basis ist willkürlich. Ausgedrückt in der ersten Basis gilt L(X)=((L0(X),...L2n-1(X)), wobei die Koeffizienten Linearformen sind, die jedoch nicht explizit berechnet werden. Außerdem gilt Q(X) = ((Q0(X),...Qn-1(X)), wobei die Koeffizienten quadratische Formen sind. Man beachte, daß die Basis für das zweite Galois-Feld frei gewählt werden kann.
- Nun ist die erste Aufgabe, R(X)=((R0(X),...R2n-1(X)) zu berechnen, das das Inverse von Q(X) in dem Subfeld GF(2n) ist. Dann wird das folgende Produkt berechnet:
- Definiert werde die Linearform
- Dies sind die Linearformen, die insbesondere berechnet werden müssen.
- Schließlich wird die k-Komponente der gesuchten inversen Größe gegeben durch
- Von Rj(X)(j) muß jetzt die Größe Qj(X)(j) erzeugt werden. Im vorigen wurde gefunden, daß
- wobei die Größen Lj, ... Linearformen sind. Folglich müssen die folgenden Größen erzeugt werden:
- Ijs(X), für s=0..2n-1, j=0...n-1
- wjk(X), für k=0..2n-j, j=0..n-1.
- Wie in den Beispielen gezeigt, können im weiteren gewisse Teile dieser Berechnungen kombiniert werden. Als nächstes werden die Größen Qj(X) gebildet, die zusammen die Größe Q(X) ergeben. Danach wird in dem Subfeld mit Hilfe seiner Koeffizienten Rj(X) das Inverse von Q(X), R(X) genannt, berechnet. Diese Berechnung wird generell in klassischer Weise ausgeführt. Alternativ könnte das Subfeldinverse noch in einer weiteren Inversion in ein sekundäres Subfeld aufgespalten werden. Schließlich werden die Koeffizienten des inversen Wertes in dem Hauptfeld durch den Ausdruck für &supmin;¹k gegeben.
- Figur list ein Basis-Blockschaltbild eines erfindungsgemäßen Geräts. Auf einem ersten Niveau werden die verschiedenen Teilsysteme nur als Blöcke beschrieben. Diese können einerseits als festverdrahtete Legik für superschnelles Arbeiten an einem einzigen Galois-Feld realisiert werden, wie es für das Hifi-Audio-Compact-Disc-System definiert worden ist, z.B. zum Ausführen von Fehlerkorrektur auf der Grundlage von "cross-interleaved Reed-Solomen "-Codes und anderen Signalverarbeitungsmöglichkeiten. Andererseits könnten die verschiedenen Blöcke mit Hilfe von Programmsteuerung allgemeinerer, anwendbarer Prozessorblöcke, wie einem 8 = Bit-Mikroprozessor realisiert werden. Im letztgenannten Fall w::je Time-Sharing verschiedener Blöcke unter einer Vielzahl von Funktionen noch möglich und würde die Chipfläche abnehmen, und/oder es würde andere Vorteile bieten. Natürlich werden Verarbeitungsleistung und Verarbeitungsgeschwindigkeit gegeneinander aufgewogen. Letztere Realisierung würde noch eine Verbesserung hinsichtlich des für direkte Inversion in einem Hauptfeld notwendigen längeren Pipelining bedeuten. Außerdem gibt es keine explizite Beschränkung, nur in einem einzigen Galois-Hauptfeld zu arbeiten, und Austausch zwischen verschiedenen Feldern und/oder verschiedenen Basen für entsprechende Felder wäre sehr gut möglich. Der Kürze halber ist die Beschreibung solcher Standardbausteine weggelassen worden.
- Der Eingang 20 führt in der Schaltung die 2n Bits der Eingangsgröße parallel. In Block 22 erfolgt die Berechnung der Linearformen Lij(X) und wlk(X), wobei jede Kategorie 2n² Linearformen erzeugt. Im Falle unscharfer Logik beträgt die Gattertiefe der Anordnung höchstens (1+k), wobei k=2log n oder die nächsthöhere ganze Zahl ist. Somit ist für die Compact Disc k=3. Im vorstehenden ist der Effekt einer Kombination von Berechnungen für die Größen L und w nicht betrachtet worden. Die Linearformen werden auf der Verbindungsleitung 24 zu Block 24 hin ausgegeben; die Linearformen Lij(X) am Ausgang 26 direkt zum Block 32. Die Bitbreite der Verbindungsleitungen 24, 26 wird nicht explizit dargestellt.
- Im Block 28 werden die Linearformen paarweise kombiniert und addiert, 10 um die Größen Qi(X) zu erzeugen, mit i=0, .. n-1, wobei alle Additionen modub 2 ausgeführt werden. Dies erfordert insgesamt n² UND-Operationen und n(n-1) XOR- Operationen bis zu einer Legikgattertiefe von 1+k. Das Ergebnis wird als n Bit breite Größe zu Block 30 hin ausgegeben.
- In Block 30 wird die inverse Größe R(X)=Q(X)&supmin;¹ in dem Subfeld GF(2n) berechnet.beispielsweise mit Hilfe eines programmierten Tabellenspeichers. Das Ergebnis wird als n Bit breite Größe zu Block 32 hin ausgegeben.
- In Block 32 wird das Inverse in dem Subfeld empfangen und auch die Linearformen wlk(X) zum Berechnen des Ausdrucks:
- &supmin;¹1=M(X,R(X)01=R0(X) W10(X)+...+Rn-1(X) W1,n-1(X),
- wobei 1=0, ..2n-1. Diese Operation erfordert insgesamt 2n² UND-Operationen und 2n(n-1) XOR-Operationen, mit einer gesamten Legikgattertiefe von (k+1). Die Gesamtzahl von Operationen beträgt 8n³-n-3n XOR-Operationen, die für sinnvolle Werte von n (≥ 4) ungefähr 8n³ ist. Außerdem sind 3n² UND-Operationen notwendig, was angesichts der einfacheren Struktur der UND-Operationen ziemlich vernachlässigbar ist. Die gesamte Logiktiefe beträgt 3+3k.
- Die Struktur der oben genannten Konversionen kann festgelegt sein, aber es besteht noch immer eine beträchtliche Freiheit hinsichtlich der genauen Realisierung. Selbst wenn die Basis in dem Hauptfeld festgelegt worden ist, gibt es noch die folgenden Wahlmöglichkeiten:
- a. Wahl der Basis β0..n-1 in GF(2n). Diese Wahl beeinflußt die Linearformen wlk(X), die quadratischen Formen Qi(X) und damit auch die Linearformen Lij(X);
- b. selbst nach Wahl der Basis (β0..βn-1) in GF(2n) die Darstellungen für Qi(X) als Produkte von im wesentlichen Linearformen, d.h. die genaue Formulierung der Linearformen Lij(X) ist wahlfrei.
- Insbesondere die zweite Wahl kann vorteilhaft sein. In vielen Fällen können die Linearformen so gewählt werden, das jede nur höchstens n der Koeffizienten benötigt (statt 2n). In diesem Fall wird die Logiktiefe um 1 verringert, und die Anzahl von XORs zum Berechnen der Lij(X) wird halbiert. Außerdem können verschiedene Berechnungen sich verschiedene Zwischenergebnisse teilen, sowohl zur Berechnung der Größen Lij(X) als auch der Größen wlk(X) zur noch weiteren Verringerung der Anzahl XOR-Operationen. Faktisch braucht die Anzahl XOR-Operationen nur (1...11/2) n³ zu betragen. In beiden Fällen sind α und β wahlfrei, wobei empfohlen wird, eine normale Basis zu wählen. In dem Fall kann genau die gleiche Hardware verwendet werden, um jeden der Koeffizienten des Inversen zu berechnen. Die Gesamtstruktur der Hardware würde dann regelmäßiger werden. Auch wenn die Koeffizienten des Inversen sequentiell berechnet werden können, kann die gleiche Hardware für jeden der aufeinanderfolgenden Koeffizienten verwendet werden.
- Im folgenden wird als Beispiel eine Inversion in GF(2&sup4;) beschrieben: m=2n=4. Das endliche Feld GF(2&sup4;) wird von dem nicht reduzierbaren Polynom g(X) = X&sup4;+X+1 über GF(2) erzeugt. Sei a eine formale Nullstelle von g(X), also: α&sup4; = α+1. Als Basis in GF(2&sup4;) nehmen wir: (1α,α²,α³). Jetzt enthält GF(2&sup4;) GF(2²). Tatsächlich können die Elemente von GF(2²) geschrieben werden als {0, 1,α&sup5;,α¹&sup0;} Als Basis in GF(2²) wird die normale Basis (α&sup5;,α¹&sup0;) gewählt.
- Der zu invertierende Vektor ist jetzt:
- X=(X0,X1,X2,X3)=X0+X1α+X2α²+X3α³.
- Man schreibe Q(X)=Q0(X)α&sup5;+Q1(X)α¹&sup0;. Dies führt unmittelbar zu den Ausdrücken für die nur zwei, jetzt benötigten quadratischen Formen
- Q0(X)=X0+X1+X3+X0X1+X0X2+X1X2+X1X3
- Q1(X)=X0+X2+X3+X0X1+X0X2+X0X3+X2X3.
- Hierin wird der Ausdruck Q(X)=X2n+1 verwendet, der dann in seine Grundelemente aufgelöst wird.
- Das Inverse von Element Y1α&sup5;+Y2α¹&sup0; kann in diesem einfachen Subfeld direkt als Y2α&sup5;1+Y1α¹&sup0; geschrieben werden, so daß R1(X)=Q0(X) und R0(X) = Q1(X). In einem größeren Subfeld würde die Inversion selbst mit Hilfe eines Tabellen- ROM in herkömmlicher Weise erfolgen. Berechnung der Formen wlk(X) führt jetzt zu:
- X0&supmin;¹=R0 (X2)+R1 (X0+X1+X3)
- Xn&supmin;¹=R0 (X0+X1)+R1 (X0+X3)
- X2&supmin;¹=R0 (X0+X2+X3)+R1 (X0)
- X3&supmin;¹=R0 (X1+X2)=R1 (X1+X2+X3).
- Eine alternative Darstellung für Q0(X), Q1(X) ist die folgende:
- Hierin stellen die Ausdrücke in Klammern im wesentlichen lineare Formen dar, wobei die Überstreichung den inversen Logikwert andeutet. Die Teilglieder werden mehrmals verwendet und können mittels:
- a1=X0+X1 a4=a1+X3=X0+X1+X3
- a2=X0+X3 a5=a2+X2=X0+X2+X3
- a3=X1+X2 a6=a3+X3=X1+X2+X3
- miteinander geteilt werden.
- Die erforderliche Anzahl XOR-Additionen ist viel kleiner als die eher festgelegte obere Grenze: 4n²(2n-1)=48.
- In einem größeren Hauptfeld und damit größeren zugehörigen Subfeld umfassen die Berechnungen mehr Größen und haben somit die notwendigen Gatter mehr Eingänge, und auch die Logiktiefe ist größer. Alles in allem ist das Prinzip der Berechnung das gleiche und wird entsprechend den allgemeinen bereits beschriebenen Ansatzregeln ausgeführt.
- Tabelle 1 A-1 E gibt eine tabellenförmige Darstellung einer bevorzugten Ausführungsform zur Inversion in dem Compact-Disc-Galois-Feld, GF(2&sup8;). Die Stan-30 dardanzahl Gatter würde in der Größenordnung 4n²(2n-1)=448 liegen. Die Gatterdarstellung ist dreispaltig. Die erste Spalte listet den Namen des Gatters auf, der auch als Name für das Ausgangssignal des Gatters verwendet wird. Die zweite Spalte gibt die Funktion des Gatters an. Die dritte Spalte listet die Eingangssignale des betreffenden Gatters auf. Die oberen beiden Zeilen der Tabelle 1A definieren die acht Komponenten (I7, ...I0) des Eingangsvektors und die acht Komponenten (J7 ...J0) des Ausgangsvektors, der das multiplikative Inverse des Eingangsvektors ist.
- 35 D-Gatter bewirken jetzt die Inversion in dem Subfeld, das an sich faktisch dem Nachschlagen in einer Tabelle entspricht. Diese Inversion verwendet als Eingangssignale verschiedene C..-Signale, die im weiteren näher besprochen werden sollen, und auch verschiedene in der Inversionsmatrix selbst erzeugten Zwischensignale. Die Gatter-Bibliothek hat die folgenden bei der vorliegenden Inversion verwendeten Elemente:
- QNOR2 ist ein NOR-Gatter mit zwei Eingängen
- QNAND2 ist ein NAND-Gatter mit zwei Eingängen
- QIN1 ist ein Inverter mit einem Eingang
- QIN2 ist ein Inverter mit einem Eingang mit größerer Ausgangsauffächerung
- QAND3 ist ein UND-Gatter mit drei Eingängen
- QNOR3 ist ein NOR-Gatter mit drei Eingängen
- QAND4 ist ein UND-Gatter mit vier Eingängen
- QNAND3 ist ein NAND-Gatter mit drei Eingängen
- QXNOR ist ein XNOR-Gatter mit zwei Eingängen
- QOR3 ist ein ODER-Gatter mit drei Eingängen
- QIN3 ist ein Inverter mit einem Eingang mit noch größerer Ausgangsauffächerung
- QFO6 ist eine erste spezielle Funktion, die für eine Folge von vier Eingangssignalen a1...a4 folgendermaßen ausgedrückt wird: (a1+a2+a3 a4)
- QF08 ist eine zweite spezielle Funktion, die für eine Folge von fünf Eingangssignalen a1...a5 folgendermaßen ausgedrückt wird: (a1+a2 a3+a4 a5).
- Weitere Elemente der Bibliothek werden der Kürze halber nicht spezifiziert.
- In Block 22 von Figur 1 werden jetzt die verschiedenen Linearformen berechnet. Dies geschieht mit Hilfe der Menge von Gattern, die mit Gatter N47 beginnt bis zu B256 (oder bis zu Gatter N5). Diese Formen sind nur XOR-Gatter, XNOR-Gatter und Inverter. In Block 28 werden die quadratischen Formen berechnet. Dies geschieht mit Hilfe der Menge von Gattern, die mit Gatter NC01 beginnt bis zu Gatter C3. Danach sind die notwendigen Vektorkomponenten C0...C3 bereit für die Verarbeitung in Block 30. Nach Ausführung der Inversion in dem Subfeld zum Erzeugen der Vektorkomponenten D0...D3 erfolgt die Multiplikation in Block 32. Dies geschieht mit Hilfe der Gitter, die mit Gitter NJ01 beginnen.
- Die gesamte Gitteranzahl ist jetzt:
- Block 22: 76
- Block 28: 32
- Block 30: 35
- Block 32: 64
- insgesamt: 207
- Zur Verdeutlichung soll die folgende kurze Übersicht des im Vorstehenden gefolgten Verfahrens gegeben werden. Das Endergebnis sollte X&supmin;¹k sein, d.h. die k- te Komponente des inversen Vektors =
- Um Rj(X) (j=0..n-1) zu erhalten, mußte die quadratische Form Qj(X) (j=0...n-1) berechnet werden. Hierzu wurde geschrieben:
- wobei beide L Linearformen sind. Faktisch waren die Linearformen
- Ljs(X) s=0...2n-1, j=0...n-1
- wjk(X) k=0...2n-1 j=0...n-1
- zu berechnen.
- Qj(X) folgt aus Gleichung (B), mit dem Ergebnis Q(X). Rj(X) (j=0...n-1) wird durch Invertieren von Q(X) erhalten. Schließlich folgt &supmin;¹ aus Gleichung (A).
Claims (2)
1. Gerät zum Berechnen der Komponenten X&supmin;¹k mit k 0, 1, ..., 2n-1 eines
Elements X&supmin;¹, das das Inverse eines Eingangselements X des Hauptfeldes GF(2m) mit
m=2n ist, wobei X durch ein Signal repräsentiert wird, das eine Menge von
Vektorkoeffizienten (X&sub0;, X&sub1;; X&sub2;; ...; X2n-1) aufweist, und wobei (α&sup0;, α¹, ..., α2n-1) eine Basis
in GF (2m) ist, so daß
gemaß der Gleichung:
wobei das genannte Gerät umfaßt:
a. erste Mittel (22), die zusammen die 2n Bits eines Signais empfangen, das das
genannte Element X repräsentiert, zum Erzeugen einer ersten Matrix aus 2n²
Linearformen Lj,i(X) mitj = 0, ..., n-1 und i = 0, ..., 2n-1, und einer zweiten
Matrix aus 2n² Linearformen Wjk(X) mitj = 0, ..., n-1 und k = 0, ..., 2n-1,
wobei für bestimmte Zahlen cij und dijk E GF(2) gilt:
und
b. zweite Mittel (28), die Signale empfangen, die die Linearformen Lj,i(X)
repräsentieren, zum paarweise Kombinieren und Addieren der Linearformen, wobei
alle Additionen modub 2 ausgeführt werden, zum Berechnen quadratischer
Formen Qj(X), die Elemente von GF (2(X) sind, gemäß der Gleichung:
für j = 0, 1, ... , n-1
c. dritte Mittel (30), die Signale empfangen, die die quadratischen Formen Qj(X)
repräsentieren, zum Berechnen von Rj(X) in dem Subfeld GF(2(X) durch
Invertieren von (Qj(X);
d. vierte Mittel (32), die für die inversen Formen Rj(X) und die Formen Wjk(X)
repräsentative Signale empfangen, zum Berechnen der k-ten Komponente des
Elements X&supmin;¹ gemäß der Gleichung:
2. Gerät nach Anspruch 1, in dem der genannte Eingang 2n Bits breit ist,
mit einem Matrixevaluierer, der einen weiteren Ausgang hat, der 2n Bits breit ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP88202324A EP0364627B1 (de) | 1988-10-18 | 1988-10-18 | Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3855497D1 DE3855497D1 (de) | 1996-10-02 |
DE3855497T2 true DE3855497T2 (de) | 1997-03-13 |
Family
ID=8199867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3855497T Expired - Fee Related DE3855497T2 (de) | 1988-10-18 | 1988-10-18 | Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers |
Country Status (5)
Country | Link |
---|---|
US (1) | US4989171A (de) |
EP (1) | EP0364627B1 (de) |
JP (1) | JP2744091B2 (de) |
KR (1) | KR100202206B1 (de) |
DE (1) | DE3855497T2 (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0431629A3 (en) * | 1989-12-08 | 1993-07-21 | Sony Corporation | Mutual division circuit |
US5210710A (en) * | 1990-10-17 | 1993-05-11 | Cylink Corporation | Modulo arithmetic processor chip |
KR940001147B1 (ko) * | 1991-03-20 | 1994-02-14 | 삼성전자 주식회사 | 부분체 GF(2^m/2)을 이용한 GF(2^m)상의 연산방법 및 장치 |
JP3232602B2 (ja) * | 1991-09-06 | 2001-11-26 | ソニー株式会社 | ユークリッドの互除回路 |
US5442578A (en) * | 1991-12-12 | 1995-08-15 | Sony Corporation | Calculating circuit for error correction |
US5379243A (en) * | 1992-08-31 | 1995-01-03 | Comstream Corporation | Method and apparatus for performing finite field division |
KR950010452B1 (ko) * | 1992-11-30 | 1995-09-18 | 삼성전자 주식회사 | 유한체상의 역수 산출방법 및 장치 |
AU3073595A (en) * | 1994-07-29 | 1996-03-04 | Certicom Corp. | Elliptic curve encryption systems |
FR2723455B1 (fr) * | 1994-08-05 | 1996-10-31 | Sgs Thomson Microelectronics | Circuit d'inversion d'elements d'un corps de galois |
US6782100B1 (en) | 1997-01-29 | 2004-08-24 | Certicom Corp. | Accelerated finite field operations on an elliptic curve |
US6098192A (en) * | 1997-09-17 | 2000-08-01 | Cirrus Logic, Inc. | Cost reduced finite field processor for error correction in computer storage devices |
US6044389A (en) * | 1997-12-29 | 2000-03-28 | Quantum Corporation | System for computing the multiplicative inverse of a field element for galois fields without using tables |
US6199088B1 (en) * | 1998-06-30 | 2001-03-06 | Quantum Corp. | Circuit for determining multiplicative inverses in certain galois fields |
US7277540B1 (en) * | 1999-01-20 | 2007-10-02 | Kabushiki Kaisha Toshiba | Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography |
US6779011B2 (en) * | 2001-02-28 | 2004-08-17 | Maxtor Corporation | System for performing multiplication and division in GF(22M) |
US20030065697A1 (en) * | 2001-08-29 | 2003-04-03 | Shimman Patel | Fast, iterative system and method for evaluating a modulo operation without using division |
GB2380370B (en) * | 2001-09-28 | 2004-03-03 | Motorola Inc | Convolutional encoder and method of operation |
US7167886B2 (en) * | 2003-05-06 | 2007-01-23 | Lsi Logic Corporation | Method for constructing logic circuits of small depth and complexity for operation of inversion in finite fields of characteristic 2 |
KR100564599B1 (ko) * | 2003-12-24 | 2006-03-29 | 삼성전자주식회사 | 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체 |
US7668895B2 (en) * | 2004-12-01 | 2010-02-23 | Integrated System Solution Corp. | Galois field computation |
JP5068176B2 (ja) | 2005-01-18 | 2012-11-07 | サーティコム コーポレーション | デジタル署名と公開鍵の促進された検証 |
US8467535B2 (en) * | 2005-01-18 | 2013-06-18 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
US8745376B2 (en) | 2011-10-14 | 2014-06-03 | Certicom Corp. | Verifying implicit certificates and digital signatures |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4037093A (en) * | 1975-12-29 | 1977-07-19 | Honeywell Information Systems, Inc. | Matrix multiplier in GF(2m) |
US4162480A (en) * | 1977-01-28 | 1979-07-24 | Cyclotomics, Inc. | Galois field computer |
US4538240A (en) * | 1982-12-30 | 1985-08-27 | International Business Machines Corporation | Method and apparatus for performing hashing operations using Galois field multiplication |
JPH0680491B2 (ja) * | 1983-12-30 | 1994-10-12 | ソニー株式会社 | 有限体の演算回路 |
WO1985003371A1 (en) * | 1984-01-21 | 1985-08-01 | Sony Corporation | Circuit for calculating finite fields |
US4745568A (en) * | 1986-12-16 | 1988-05-17 | Onyszchuk Ivan M | Computational method and apparatus for finite field multiplication |
US4797848A (en) * | 1986-04-18 | 1989-01-10 | Hughes Aircraft Company | Pipelined bit-serial Galois Field multiplier |
US4975867A (en) * | 1987-06-26 | 1990-12-04 | Digital Equipment Corporation | Apparatus for dividing elements of a Galois Field GF (2QM) |
-
1988
- 1988-10-18 EP EP88202324A patent/EP0364627B1/de not_active Expired - Lifetime
- 1988-10-18 DE DE3855497T patent/DE3855497T2/de not_active Expired - Fee Related
-
1989
- 1989-10-12 US US07/420,844 patent/US4989171A/en not_active Expired - Fee Related
- 1989-10-18 KR KR1019890014972A patent/KR100202206B1/ko not_active IP Right Cessation
- 1989-10-18 JP JP1269241A patent/JP2744091B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH02148225A (ja) | 1990-06-07 |
KR100202206B1 (ko) | 1999-06-15 |
US4989171A (en) | 1991-01-29 |
EP0364627B1 (de) | 1996-08-28 |
DE3855497D1 (de) | 1996-10-02 |
JP2744091B2 (ja) | 1998-04-28 |
KR900006851A (ko) | 1990-05-09 |
EP0364627A1 (de) | 1990-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3855497T2 (de) | Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE69326314T2 (de) | Durchführung aritmetische Operationen auf Daten | |
DE69330848T2 (de) | Einrichtung und Verfahren zur digitalen Unterschrift | |
DE69430838T2 (de) | Schaltung und Verfahren zur parallelen Verschiebung und Addition | |
DE69716331T2 (de) | Schaltung für Modulo-Multiplikations- und Exponentiationsarithmetik | |
DE69811877T2 (de) | ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert. | |
DE69421362T2 (de) | Galois-Feldmultiplizierverfahren und Multiplizierer zur Durchführung dieses Verfahrens | |
DE3879373T2 (de) | Residuen-arithmetische Rechenschaltung. | |
DE68923262T2 (de) | Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer. | |
DE69130581T2 (de) | Verfahren zur Berechnung einer Operation des Typus A.X modulo N, in einem Kodierverfahren gemäss der RSA-Methode | |
DE60210494T2 (de) | Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung | |
DE68906063T2 (de) | Parametrischer galois-koerper-multiplizierer-addierer und dessen benutzung in einem digitalen signalprozessor. | |
DE102014100108A1 (de) | Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur | |
DE2135590A1 (de) | Vorrichtung und Verfahren zur Er zeugung trigonometrischer und anderer Funktionen | |
DE4403917C2 (de) | Vorrichtung zum Berechnen einer Bit-Besetzungszählung | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE2946846A1 (de) | Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus | |
DE2524749C2 (de) | Digitale Filteranordnung | |
DE69326793T2 (de) | Parallelisierter Grössevergleicher zum Vergleichen einer Binärzahl mit einer bestimmten Zahl | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
EP0628183B1 (de) | Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen | |
DE3303269C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N |
|
8339 | Ceased/non-payment of the annual fee |