DE102008033962B4 - Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation - Google Patents

Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation Download PDF

Info

Publication number
DE102008033962B4
DE102008033962B4 DE102008033962A DE102008033962A DE102008033962B4 DE 102008033962 B4 DE102008033962 B4 DE 102008033962B4 DE 102008033962 A DE102008033962 A DE 102008033962A DE 102008033962 A DE102008033962 A DE 102008033962A DE 102008033962 B4 DE102008033962 B4 DE 102008033962B4
Authority
DE
Germany
Prior art keywords
bit string
bits
multiplication
input bit
intermediate bit
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
Application number
DE102008033962A
Other languages
English (en)
Other versions
DE102008033962A1 (de
Inventor
Dr. Georgiades Jean
Dr. Meyer Bernd
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102008033962A priority Critical patent/DE102008033962B4/de
Priority to PCT/EP2009/056228 priority patent/WO2010009917A1/de
Priority to CN2009801286003A priority patent/CN102105860A/zh
Priority to JP2011519095A priority patent/JP5449349B2/ja
Priority to US13/055,218 priority patent/US8732227B2/en
Priority to EP09779527A priority patent/EP2304549A1/de
Publication of DE102008033962A1 publication Critical patent/DE102008033962A1/de
Application granted granted Critical
Publication of DE102008033962B4 publication Critical patent/DE102008033962B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Verfahren zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings (EB1, EB2) mit jeweils einer Anzahl N von Bits mittels einer Prozessor-Einrichtung, wobei die Schiebebefehle mit langen Ausführungszeiten bereitstellt, mit den Schritten: a) Erzeugen zumindest einer Folge (F) einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings (EB1, EB2) an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring (EB1, EB2) zur Erzeugung von zumindest einem ersten Zwischen-Bitstring (Z11–Z14) für den jeweiligen Eingangs-Bitstring (EB1, EB2); b) Verknüpfen der zumindest zwei ersten Zwischen-Bitstrings (Z11–Z14) durch die Integer-Multiplikation der Prozessor-Einrichtung zur Erzeugung mindestens eines zweiten Zwischen-Bitstrings (Z21–Z24); und c) Transformieren des zumindest einen zweiten Zwischen Bitstrings (Z21–Z24) mittels einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings (E).

Description

  • Die Erfindung betrifft ein Verfahren und eine Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings.
  • Die Charakteristik-2-Multiplikation kommt bei einer Vielzahl kryptographischer Verfahren, dabei insbesondere bei Public-Key-Verfahren, wie z. B. bei einer hardwarenahen Implementierung von kryptographischen Verfahren auf der Basis elliptischer Kurven, zum Einsatz. Die bei einer solchen Charakteristik-2-Arithmetik verwendeten Zahlen lassen sich auf einer Prozessor-Einrichtung, einem Prozessor oder einem Computer effizient als Bitstrings darstellen. Solch ein Bitstring kann durch ein Register zwischengespeichert werden. Die Addition von zwei Zahlen in einer solchen Darstellung entspricht der bitweisen XOR-Verknüpfung der repräsentierenden Bitstrings. Eine Multiplikation von zwei Bitstrings oder Operanden in der Charakteristik-2-Arithmetik entspricht mathematisch dem Produkt zweier Polynome aus GF(2)[X]. Dabei entsprechen die Bitstrings, welche zur Repräsentation der Zahlen verwendet werden, der 0/1-Folge der Koeffizienten der jeweiligen Polynome.
  • Die mathematische Grundlage für eine Charakteristik-2-Multiplikation besteht darin, das Produkt zweier Zahlen auf eine vorbestimmte Menge von Partialprodukten zurückzuführen, welche anschließend zum Ergebnis aufaddiert werden. Als Beispiel werden für die Multiplikation der Zahlen 1011 und 1101 im Folgenden die Partialprodukte und die Summe angeführt:
    Figure 00020001
  • Zur Bereitstellung des Ergebnisses wird eine Addition der Partialprodukte durch eine spaltenweise XOR-Verknüpfung ausgeführt. Als Grundoperationen zur Durchführung einer solchen Multiplikation kommen dabei Schiebeoperationen und bitweise UND-Verknüpfungen zur Berechnung der Partialprodukte in den Zeilen der oben stehenden Tabelle sowie bitweise XOR-Verknüpfungen zur Berechnung der jeweiligen Spaltensumme der Partialprodukte zum Einsatz.
  • Als optimierte Varianten dieses Multiplikationsverfahrens sind die so genannten Fenstermethoden bekannt. Bei den Fenstermethoden lässt sich die Zahl der benötigten Additionen von Partialprodukten reduzieren, insbesondere weil eine kleine Tabelle von Vielfachen des einen Operanden vorberechnet wird. Mit Hilfe dieser vorberechneten Tabelle können dann in jedem anschließenden Schritt mehrere Bits auf einmal zur Berechnung von Partialprodukten verwendet werden. Folglich wird die Berechnung der Partialprodukte auf ein Nachschlagen in der vorberechneten Tabelle zurückgeführt. Bei einer optimierten Wahl der Parameter kann die Einsparung von Additionen von Partialprodukten durch ein Abarbeiten von mehreren Bits auf einmal höher als der notwendige Aufwand sein, der für die zusätzliche Vorberechnung der Tabelle nötig ist.
  • Ferner lassen sich Fenstermethoden auf effiziente Weise mit Schiebebefehlen kombinieren. Wenn der zur Implementierung verwendete Prozessor effiziente Schiebebefehle für bestimmte Schrittweiten bereitstellt, kann es vorteilhaft sein, die Partialprodukte in mehreren Teilsummen aufzuaddieren. Beispielsweise bei einem Prozessor mit einer Busbreite von 8 Bits und der Anwendung einer Fenstermethode mit 4 Bit breiten Fenstern wird das Zwischenergebnis im Akkumulator zwischen zwei Additionen um 4 Bits nach links geschoben. Werden aber zwei unterschiedliche Akkumulatoren zum Aufaddieren der Partialsummen abwechselnd verwendet, so kann der Inhalt der Akkumulatoren jeweils um 8 Bits geschoben werden. Eine Verschiebung um 1 Byte, also 8 Bits, kann auf einem herkömmlichen Prozessor sehr effizient durch Umkopieren der Daten im Speicher erreicht werden. Erst im abschließenden Schritt, wenn die bis dahin berechneten Zwischenergebnisse der beiden Akkumulatoren aufaddiert werden, muss der Inhalt eines Akkumulators um 4 Bits nach links geschoben werden. Bei dieser Vorgehensweise kann eine Vielzahl kostenintensiver Schiebebefehle während der Berechnung des Produktes eingespart werden.
  • Bei längeren Operanden kann die Verwendung asymptotisch schnellerer Algorithmen zur Berechnung der Multiplikation, wie beispielsweise die Karatsuba- oder Fourier-Multiplikation, vorteilhaft sein. Die oben beschriebene Methode zur Multiplikation kann dann auch auf kürzere Teilstücke der zu multiplizierenden Zahlen angewendet werden.
  • Obwohl allerdings nahezu alle herkömmlichen Prozessoren oder Prozessor-Einrichtungen Hardware zur schnellen Integer-Multiplikation zweier Bitstrings in der Busbreite der Prozessor-Einrichtung besitzen, unterstützt keiner dieser herkömmlichen Prozessoren die Charakteristik-2-Multiplikationen in Hardware.
  • Das bedeutet, dass eine solche Multiplikation stets in Software realisiert werden muss und daher im Allgemeinen deutlich langsamer als die hardware-technische Integer-Multiplikation ist.
  • Demnach ist es eine Aufgabe der vorliegenden Erfindung, ein Verfahren zur Charakteristik-2-Multiplikation von zumindest zwei Bitstrings anzugeben, welches im Vergleich zu bisher bekannten Verfahren eine deutlich kürzere Ausführungszeit aufweist.
  • Erfindungsgemäß wird diese gestellte Aufgabe durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 und/oder durch eine Prozessor-Einrichtung mit den Merkmalen des Patentanspruchs 14 gelöst.
  • Demgemäß wird ein Verfahren zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings mit jeweils einer Anzahl N von Bits mittels einer Prozessor-Einrichtung vorgeschlagen, wobei die Prozessoreinrichtung ein Bit-weises Schieben oder Schiebebefehle mit langen Ausführungszeiten bereitstellt, und bei dem das Verfahren die folgenden Schritte aufweist:
    • a) Erzeugen zumindest einer Folge einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring zur Erzeugung von zumindest einem ersten Zwischen-Bitstring für jeden Eingangs-Bitstring;
    • b) Verknüpfen der zumindest zwei ersten Zwischen-Bitstrings durch die hardware-technische Integer-Multiplikation der Prozessor-Einrichtung zur Erzeugung mindestens eines zweiten Zwischen-Bitstrings; und
    • c) Transformieren des zumindest einen zweiten Zwischen-Bitstrings mittels einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings.
  • Ferner wird eine Prozessor-Einrichtung zur Implementierung einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings mit jeweils einer Anzahl N Bits vorgeschlagen, wobei die Prozessoreinrichtung ein Bit-weises Schieben oder Schiebebefehle mit langen Ausführungszeiten bereitstellt, und aufweist:
    • – eine Erzeugungseinrichtung, welche dazu geeignet ist, eine Folge einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring zur Erzeugung von zumindest eifern ersten Zwischen-Bitstring zu erzeugen;
    • – eine logische Verknüpfungseinrichtung, welche dazu geeignet ist, die mindestens zwei ersten Zwischen-Bitstrings durch eine hardware-technische Integer-Multiplikation zur Erzeugung zumindest eines zweiten Zwischen-Bitstrings zu verknüpfen; und
  • – eine Transformationseinrichtung, welche dazu eingerichtet ist, den zumindest einen zweiten Zwischen-Bitstring mittels zumindest einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings zu transformieren.
  • Ein Vorteil der vorliegenden Erfindung liegt darin, dass eine Charakteristik-2-Multiplikation zweier Bitstrings, Eingangs-Bitstrings oder Zahlen mittels eines herkömmlichen Prozessors oder einer herkömmlichen Prozessor-Einrichtung, die nur zur hardware-technischen Integer-Multiplikation geeignet ist, ermöglicht wird.
  • Die Charakteristik-2-Multiplikation und die herkömmliche Integer-Multiplikation unterscheiden sich insbesondere in der Weise, wie die berechneten Partialprodukte aufaddiert werden. Während bei der Charakteristik-2-Multiplikation eine spaltenweise XOR-Verknüpfung eingesetzt wird, was einer Summe ohne Überträge entspricht, werden bei der herkömmlichen Integer-Multiplikation die Spaltensummen mit Überträgen berechnet. Herkömmlicherweise können diese Überträge aber auch die Spaltensumme von benachbarten Spalten beeinflussen und verändern.
  • Gemäß der vorliegenden Erfindung werden demnach künstlich Lücken in die zu multiplizierenden Zahlen mittels der Folge der Anzahl K von Nullbits eingefügt, in welche die Überträge, die bei der herkömmlichen Integer-Multiplikation zwangsweise entstehen, aufgesammelt werden können. Somit können diese entstehenden Überträge nicht mehr die weiter links liegenden Spaltensummen verändern oder beeinflussen.
  • Wie oben bereits ausgeführt, können die bei der herkömmlichen Integer-Multiplikation nach Verfahrensschritt b) zwangsweise entstehenden Übertrage aufgesammelt werden, ohne dass sie andere Summenbits für die Charakteristik-2-Multiplikation verfälschen könnten.
  • Viele herkömmliche Prozessoren besitzen Hardware zur schnellen und effizienten Durchführung einer Integer-Multiplikation. Herkömmlicherweise ist dazu ein einzelner Assemblerbefehl notwendig.
  • Während der Ausführung eines solchen Multiplikationsbefehls kann die erfindungsgemäße Methode zur Charakteristik-2-Multiplikation ausgeführt werden. Das heißt, dass der einzelne Assemblerbefehl die Berechnung und Addition der Partialprodukte inklusive der dazu notwendigen Schiebeoperationen bewirken kann. Im Gegensatz dazu kann bei einem in Software realisierten Algorithmus zur Charakteristik-2-Multiplikation im Allgemeinen nicht eine solche schnelle und effiziente Implementierung erreicht werden, wie sie die Hardware der Prozessor-Einrichtung bereits bietet.
  • Demnach ist die vorliegende Erfindung insbesondere dann vorteilhaft, wenn die verwendete Prozessor-Einrichtung nur ein bitweises Schieben bereitstellt oder die bereitgestellten Schiebebefehle lange Ausführungszeiten haben.
  • Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen sowie der Beschreibung unter Bezugnahme auf die Zeichnungen.
  • Gemäß einer bevorzugten Weiterbildung wird die Anzahl K der Nullbits der Folge in Abhängigkeit von der Anzahl N der Bits der Eingangs-Bitstrings bestimmt.
  • Gemäß einer weiteren bevorzugten Weiterbildung wird der Schritt a) des oben beschriebenen Verfahrens ausgestaltet durch ein Maskieren des jeweiligen Eingangs-Bitstrings mit zumindest zwei unterschiedlichen Masken durch eine jeweilige bitweise UND-Verknüpfung des jeweiligen Eingangs-Bitstrings mit der jeweiligen Maske zur Erzeugung von zumindest zwei ersten Zwischen-Bitstrings.
  • Gemäß einer weiteren bevorzugten Weiterbildung bildet die jeweilige Folge mit der Anzahl K der Nullbits jeweils ein Maskenfenster in der jeweiligen vorbestimmten Maske mit einer Anzahl N von Bits, wobei K die folgende Bedingung erfüllt:
    Figure 00090001
  • Gemäß einer weiteren bevorzugten Weiterbildung ist eine Anzahl M der vorbestimmten, unterschiedlichen Masken gleich K + 1 (M = K + 1).
  • Gemäß einer weiteren bevorzugten Weiterbildung wird die jeweilige m-te Maske, mit m ∊ {1, ..., M}, aus zumindest einem Teil eines periodischen Musters bestehend aus einem jeweiligen Einsbit und darauf folgend eine jeweilige Folge von K Nullbits gebildet.
  • Gemäß einer weiteren bevorzugten Weiterbildung wird die jeweilige (m + 1)-te Maske durch eine Bitverschiebung der jeweiligen m-ten Maske um 1 Bit gebildet.
  • Gemäß einer weiteren bevorzugten Weiterbildung wird der Schritt c) des oben beschriebenen Verfahrens ausgestaltet durch:
    • – Maskieren jeweils der zumindest vier zweiten Zwischen Bitstrings mit den zumindest zwei unterschiedlichen Masken mit einer jeweiligen verdoppelten Länge durch bitweise UND-Verknüpfen zur Erzeugung von zumindest vier dritten Zwischen-Bitstrings; und
    • – XOR-Verknüpfen der zumindest vier dritten Zwischen-Bitstrings zur Erzeugung des Ergebnis-Bitstrings.
  • Gemäß einer bevorzugten Ausgestaltung der Erfindung wird der Schritt a) des oben beschriebenen Verfahrens ausgestaltet durch ein Spreizen des jeweiligen Eingangs-Bitstrings durch Einfügen der Folge der K Nullbits zwischen allen N Bits des entsprechenden Eingangs-Bitstrings (insgesamt N – 1 mal) zur Erzeugung eines jeweiligen Zwischen-Bitstrings für jeden Eingangs-Bitstring.
  • Gemäß einer weiteren bevorzugten Ausgestaltung bildet die jeweilige Folge mit der Anzahl K von Nullbits ein Fenster in dem jeweiligen ersten Zwischen-Bitstring, wobei K die folgende Bedingung erfüllt: ⌊log2(N)⌋ ≤ K
  • Gemäß einer weiteren bevorzugten Ausgestaltung wird der Schritt b) des oben beschriebenen Verfahrens ausgestaltet durch ein Verknüpfen der zwei ersten Zwischen-Bitstrings durch die Integer-Multiplikation der Prozessor-Einrichtung zur Erzeugung eines einzigen zweiten Zwischen-Bitstrings.
  • Gemäß einer weiteren bevorzugten Ausgestaltung wird der Schritt c) ausgebildet durch:
    • – Extrahieren von Bits des erzeugten, zweiten Zwischen-Bitstrings an vorbestimmten Positionen i·(K + 1), mit i ∊ {0, ..., 2N – 2}, beginnend beim niedrigstwertigen Bit des zweiten Zwischen-Bitstrings mit der Position 0.
  • Weiter wird ein Computerprogramm-Produkt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung eines wie oben beschriebenen Verfahrens gemäß der Erfindung veranlasst.
  • Ein Computerprogramm-Produkt wie ein Computerprogramm-Mittel kann beispielsweise als Speichermedium, wie Speicherkarte, USB-Stick, Floppy, CD-Stick, CD-ROM, DVD oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogramm-Produkt oder dem Computerprogramm-Mittel erfolgen.
  • Die Erfindung wird nachfolgend anhand der in den schematischen Figuren angegebenen Ausführungsbeispielen näher erläutert. Es zeigen:
  • 1 ein schematisches Ablaufdiagramm eines ersten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation;
  • 2 ein schematisches Ablaufdiagramm eines zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation;
  • 3 ein schematisches Beispiel einer Anwendung des zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach 2;
  • 4 ein schematisches Ablaufdiagramm eines dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation;
  • 5 ein schematisches Beispiel einer Anwendung des dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach 4
  • 6 ein schematisches Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation; und
  • 7 ein schematisches Beispiel einer Integer-Multiplikation von zwei ersten Zwischen-Bitstrings.
  • In allen Figuren sind gleiche bzw. funktionsgleiche Mittel und Einrichtungen – sofern nichts anderes angegeben – mit denselben Bezugszeichen versehen.
  • 1 zeigt ein schematisches Ablaufdiagramm eines ersten Ausführungsbeispiels zum Implementieren einer Charakteristik 2-Multiplikation von zumindest zwei Eingangs-Bitstrings EB1, EB2 mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozessor-Einrichtung 10.
  • Nachfolgend wird das erfindungsgemäße Verfahren anhand des Blockschaltbildes in 1 mit Bezug auf die Beispiele in den 3 und 5 erläutert.
  • In den 3 und 5 bezeichnet das Bezugszeichen EBi mit i ∊ {1, 2} den jeweiligen i-ten Eingangs-Bitstring EB1, EB2. Weiterhin bezeichnet M1i die jeweilige erste Maske M11, M12. Weiter bezeichnet M2i die jeweilige zweite Maske M21, M22. Ferner bezeichnet Z1j mit j ∊ {1, 2, 3, 4} den jeweiligen ersten Zwischen-Bitstring Z11, Z12, Z13 und Z14. Des Weiteren bezeichnet Z2j den jeweiligen zweiten Zwischen-Bitstring Z21, Z22, Z23, Z24. E bezeichnet den Ergebnis-Bitstring, und die Bezugszeichen r1–r6 bezeichnen jeweils eine Zeile in den 3 und 5 zur verbesserten Referenzierung in diesen Figuren.
  • Das erfindungsgemäße Verfahren nach 1 weist die Verfahrensschritte R1 bis R3 auf:
  • Verfahrensschritt R1:
  • Zumindest eine Folge F einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, wird mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings EB1, EB2 an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring EB1, EB2 zur Erzeugung von zumindest einem ersten Zwischen-Bitstring Z11–Z14 erzeugt. Dabei wird die Anzahl K der Nullbits der Folge F vorzugsweise in Abhängigkeit von der Anzahl N der Bits der Eingangs-Bitstrings EB1, EB2 bestimmt.
  • Verfahrensschritt R2:
  • Die zumindest zwei ersten Zwischen-Bitstrings Z11–Z14 werden durch die Hardware-technische Integer-Multiplikation der Prozessor-Einrichtung 10 zur Erzeugung mindestens eines zweiten Zwischen-Bitstrings Z21–Z24 logisch verknüpft.
  • Verfahrensschritt R3:
  • Mittels einer zweiten vorbestimmten Transformation wird der zumindest eine zweite Zwischen-Bitstring Z21–Z24 zum Bilden eines Ergebnis-Bitstrings E transformiert.
  • In 2 ist ein schematisches Ablaufdiagramm eines zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings EB1, EB2 mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozessor-Einrichtung 10 dargestellt.
  • Das zweite Ausführungsbeispiel gemäß 2 weist die folgenden Verfahrensschritte S1–S4 auf:
  • Verfahrensschritt S1:
  • Der jeweilige Eingangs-Bitstring EB1, EB2 der zumindest zwei Eingangs-Bitstrings EB1, EB2 wird mit zumindest zwei unterschiedlichen Masken M11, M12 durch eine jeweilige bitweise UND-Verknüpfung des jeweiligen Eingangs-Bitstrings EB1, EB2 mit der jeweiligen Maske M11, M12 zur Erzeugung von zumindest zwei ersten Zwischen-Bitstrings Z11–Z14 maskiert. Damit ist die mit Bezug auf den Verfahrensschritt R1 nach 1 dargestellte erste Transformation als eine Maskierung gemäß 2 ausgebildet.
  • Dabei bildet die jeweilige Folge F mit der Anzahl K der Nullbits jeweils ein Maskenfenster in der jeweiligen vorbestimmten Maske M11, M12 mit einer Anzahl N von Bits, wobei K die folgende Bedingung erfüllt:
    Figure 00140001
  • Die Anzahl M der vorbestimmten unterschiedlichen Masken M11, M12 ist vorzugsweise gleich K + 1 (M = K + 1).
  • Dabei wird die jeweilige m-te Maske M11, M12, mit m ∊ {1, ..., N}, aus zumindest einem Teil eines periodischen Musters bestehend aus einem jeweiligen Einsbit und darauf folgend eine jeweilige Folge F von K Nullbits gebildet. Dazu zeigt 3 ein schematisches Beispiel einer Anwendung des zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach 2. Dabei zeigt die Zeile r1 zwei Eingangs-Bitstrings EB1, EB2 mit EB1 = ”ABCD” und EB2 = ”EFGH”. Weiter zeigt die Zeile r2 zwei Masken M11 und M12 mit M11 ”0101” und M12 ”1010”. Nach dem Beispiel der Zeile r2 der 3 ist K = 1 und M = 2. Das Beispiel zeigt auch, dass die jeweilige (m + 1)-te Maske M12, M11 durch eine Bitverschiebung der jeweiligen m-ten Masken M11, M12 um einen Bit gebildet wird.
  • Des Weiteren zeigt die Zeile r3 die ersten Zwischen-Bitstrings Z11–Z14, welche das Ergebnis einer Maskierung der Eingangs-Bitstrings EB1, EB2 mit den Masken M11, M12 darstellen.
  • Weiter zeigt die Zeile r4 eine abstrakte Darstellung der Zeile r3, wobei die Hexadezimalzahlen A–H der Zeile r3 jeweils durch ein Abstraktum ”*” ersetzt sind, welches nur angibt, dass der jeweilige Wert ungleich Null sein kann.
  • Verfahrensschritt S2: Die vier zweiten Zwischen-Bitstrings Z21–Z24 gemäß Zeile r5 ergeben sich aus einer logischen Verknüpfung der ersten Zwischen-Bitstrings Z11–Z14 gemäß Zeile r4 mittels der Integer-Multiplikation der Prozessor Einrichtung 10. Dazu werden die Produkte Z11*Z13, Z11*Z14, Z12*Z13 und Z12*Z14 mittels der Integer-Multiplikation der Prozessor-Einrichtung 10 berechnet. Die Ergebnisse dieser Berechnungsschritte bilden die zweiten Zwischen-Bitstrings Z21–Z24.
  • Verfahrensschritt S3:
  • Weiter werden die vier zweiten Zwischen-Bitstrings Z21–Z24 mit den zwei unterschiedlichen Masken M21, M22 gemäß Zeile r6 durch eine bitweise UND-Verknüpfung zur Erzeugung von zumindest vier dritten Zwischen-Bitstrings maskiert (nicht gezeigt).
  • Verfahrensschritt S4:
  • Die zumindest vier vierten Zwischen-Bitstrings werden zur Erzeugung des Ergebnis-Bitstrings E im Weiteren bitweise XOR-verknüpft.
  • 4 zeigt ein schematisches Ablaufdiagramm eines dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings EB1, EB2 mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozessor-Einrichtung.
  • Das Ausführungsbeispiel gemäß 4 weist die Verfahrensschritte T1–T3 auf:
  • Verfahrensschritt T1:
  • Der jeweilige Eingangs-Bitstring EB1, EB2 wird durch Einfügen einer Folge F einer Anzahl K von Nullbits zwischen allen benachbarten Bits des entsprechenden Eingangs-Bitstrings EB1, EB2 (insgesamt N – 1 mal) zur Erzeugung eines jeweiligen ersten Zwischen-Bitstrings Z11, Z12 für jeden Eingangs-Bitstring EB1, EB2 gespreizt. Dazu zeigt 5 in Zeile r1 zwei unterschiedliche Eingangs-Bitstrings EB1, EB2, und Zeile r2 zeigt die mit der Folge F gespreizten jeweiligen Eingangs-Bitstrings EB1, EB2 zur Erzeugung der entsprechenden ersten Zwischen-Bitstrings Z11, Z12. So ergibt sich der linke erste Zwischen-Bitstring Z11 aus der Spreizung des ersten Eingangs-Bitstrings EB1 und der rechte erste Zwischen-Bitstring Z12 ergibt sich aus der Spreizung des zweiten Eingangs Bitstrings EB2.
  • Wie in Zeile r2 der 5 gezeigt, bildet die jeweilige Folge F mit der Anzahl K von Nullbits ein Fenster in dem jeweiligen ersten Zwischen-Bitstring Z11, Z12.
  • Ferner genügt die Anzahl K von Nullbits einer jeweiligen Folge F der folgenden Bedingung: ⌊log2(N)⌋ ≤ K
  • Verfahrensschritt T2:
  • Die beiden ersten Zwischen-Bitstrings Z11, Z12 gemäß Zeile r2 der 5 werden durch die Integer-Multiplikation der Prozessor-Einrichtung 10 zur Erzeugung eines einzigen zweiten Zwischen-Bitstrings Z2 gemäß Zeile r3 logisch verknüpft.
  • Verfahrensschritt T3:
  • An den vorbestimmten Positionen i·(K + 1), mit i ∊ {0, ..., 2N – 2}, beginnend beim niedrigstwertigen Bit des zweiten Zwischen-Bitstrings Z2 mit der Position 0 werden Bits des erzeugten zweiten Zwischen-Bitstrings Z2 (siehe Zeile r4) extrahiert. Durch die Extraktion ergibt sich der Ergebnis-Bitstring E gemäß Zeile r5 der 5.
  • 6 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Prozessor-Einrichtung 10 zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings EB1, EB2 mit jeweils einer Anzahl N von Bits.
  • Die Prozessor-Einrichtung 10 weist dazu eine Erzeugungseinrichtung 11, eine logische Verknüpfungseinrichtung 12 und eine Transformationseinrichtung 13 auf.
  • Die Erzeugungseinrichtung 11 ist dazu geeignet, eine Folge F einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings EB1, EB2 an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring EB1, EB2 zur Erzeugung von zumindest einem ersten Zwischen-Bitstring Z11–Z12 zu erzeugen.
  • Weiter ist die logische Verknüpfungseinrichtung 12 dazu eingerichtet, die mindestens zwei ersten Zwischen-Bitstrings Z11–Z12 durch eine Integer-Multiplikation zur Erzeugung zumindest eines zweiten Zwischen-Bitstrings Z21 zu verknüpfen.
  • Des Weiteren ist die Transformationseinrichtung 13 dazu eingerichtet, den zumindest einen zweiten Zwischen-Bitstring Z21 mittels zumindest einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings E zu transformieren.
  • Ferner zeigt 7 ein schematisches Beispiel einer Integer-Multiplikation von zwei ersten Zwischen-Bitstrings. Beispielsweise seien diese beiden ersten Zwischen-Bitstrings durch die Bitmuster ”ABCD” und ”EFGH” gegeben. Im ersten Schritt werden diese ersten Zwischen-Bitstrings mit den Masken ”0101” und ”1010” maskiert, das heißt bitweise UND-verknüpft. Dadurch entstehen die vier Bitmuster oder Zahlen ”0B0D”, ”A0C0”, ”0F0H” und ”E0G0”. Anschließend werden alle aus ”ABCD” entstandenen Bitmuster mit allen aus ”EFGH” entstandenen Bitmustern unter Verwendung der herkömmlichen Integer-Multiplikation multipliziert. Diese Multiplikation ist exemplarisch für die Muster ”0B0D” und ”0F0H” in 7 gezeigt.
  • Durch die Maskierung bilden die von Null verschiedenen Einträge in der Tabelle der Partialprodukte nach 7 notwendigerweise ein regelmäßiges Zeilen- und Spaltengitter mit Einbit-Lücken zwischen den Einträgen. Demnach können die Überträge, welche sich bei der Addition der Spaltensummen unter Verwendung der Integer-Multiplikation ergeben können, genau in diese künstlich gebildeten Lücken der maskierten Zahlen eingefügt werden. Im Beispiel nach 7 ist dieser mögliche Übertrag ”BH UND DF” als ein ”*” dargestellt. Wird nun das Ergebnis mit der Maske ”1010101” bitweise UND-verknüpft, so fallen die Überträge heraus (wie in 3 angedeutet) und es wird ein Teil des Ergebnisses der gewünschten Charakteristik-2-Multiplikation erhalten. Die drei verbleibenden Produkte zwischen den verschiedenen maskierten Zahlen liefern die restlichen Werte und werden mittels entsprechend angepasster Bitmasken berechnet. Eine bitweise XOR-Verknüpfung der vier auf diese Weise berechneten Werte liefert das Ergebnis der Charakteristik-2-Multiplikation.
  • Insgesamt verwendet die vorliegende Erfindung lediglich bitweise UND-Verknüpfung zur Maskierung der Zahlen und zur Maskierung der Teilprodukte, die herkömmliche Integer-Multiplikation der Prozessor-Einrichtung sowie eine bitweise XOR-Verknüpfung zum Aufaddierender verschiedenen Teilergebnisse. Insbesondere sind erfindungsgemäß keine Schiebebefehle mehr notwendig. Diese werden implizit durch die Integer-Multiplikation ausgeführt.
  • Die exakte Wahl der Masken zur Implementierung der vorliegenden Erfindung hängt von der Länge (Anzahl N der Bits) der zu multiplizierenden Zahlen oder Eingangs-Bitstrings ab. In der nachfolgenden Tabelle sind für verschiedene Bitlängen N der zu multiplizierenden Eingangs-Bitstrings EB1, EB2 oder Zahlen die Breiten der Fenster in den Masken in Bits sowie die Anzahl der benötigten Integer-Multiplikationen aufgeführt:
    Bitlänge der Zahlen Bitlänge der Maskenfenster Anzahl Integer Multiplikationen
    4 1 4
    8 2 9
    16 2 9
    32 3 16
  • Im Folgenden wird ein Ausführungsbeispiel einer erfindungsgemäßen Implementierung einer Charakteristik-2-Multiplikation für einen 32-bit Intel Pentium 4 oder AMD Athlon Prozessor mit SSE2-Einheit beschrieben. Diese Prozessoren besitzen acht Register der Länge 128 bit mit den Bezeichnungen xmm0–xmm7. Dabei existieren Assembler-Befehle pand und pxor für eine bitweise UND- und XOR-Verknüpfung zweier Register oder eines Registers mit einem Speicherinhalt. Außerdem haben diese Prozessoren einen Befehl pmuludq, welcher zwei Integer-Multiplikationen mit jeweils 32-Bit-Operanden und 64-bit-Ergebnis parallel durchführt. Unter Verwendung dieser Befehle ist untenstehende Assembler-Routine zur Charakteristik-2-Multiplikation von 64-bit-Zahlen mit 128 Bit-Ergebnis erstellt. Diese untenstehende Assembler-Routine kann mit dem nasm-Assembler übersetzt werden und ist unter dem gcc-Compiler lauffähig. Es werden vier verschiedene Masken verwendet und die Bitlänge der Maskenfenster ist 3:
    Figure 00190001
    Figure 00200001
    Figure 00210001
    Figure 00220001
    Figure 00230001
    Figure 00240001
    Figure 00250001

Claims (14)

  1. Verfahren zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings (EB1, EB2) mit jeweils einer Anzahl N von Bits mittels einer Prozessor-Einrichtung, wobei die Prozessor-Einrichtung ein Bitweises Schieben oder Schiebebefehle mit langen Ausführungszeiten bereitstellt, mit den Schritten: a) Erzeugen zumindest einer Folge (F) einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings (EB1, EB2) an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring (EB1, EB2) zur Erzeugung von zumindest einem ersten Zwischen-Bitstring (Z11–Z14) für den jeweiligen Eingangs-Bitstring (EB1, EB2); b) Verknüpfen der zumindest zwei ersten Zwischen-Bitstrings (Z11–Z14) durch die Integer-Multiplikation der Prozessor-Einrichtung zur Erzeugung mindestens eines zweiten Zwischen-Bitstrings (Z21–Z24); und c) Transformieren des zumindest einen zweiten Zwischen Bitstrings (Z21–Z24) mittels einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings (E).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Anzahl K der Nullbits der Folge (F) in Abhängigkeit von der Anzahl N der Bits der Eingangs-Bitstrings (EB1, EB2) bestimmt wird.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Schritt a) ausgestaltet wird durch: Maskieren des jeweiligen Eingangs-Bitstrings (EB1, EB2) mit zumindest zwei unterschiedlichen Masken (M11, M12) durch eine jeweilige bitweise UND-Verknüpfung des jeweiligen Eingangs-Bitstrings (EB1, EB2) mit der jeweiligen Maske zur Erzeugung von zumindest zwei ersten Zwischen-Bitstrings (Z11–Z14) für den jeweiligen Eingangs-Bitstring (EB1, EB2).
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die jeweilige Folge (F) mit der Anzahl K der Nullbits jeweils ein Maskenfenster in der jeweiligen vorbestimmten Maske (M11, M12) mit einer Anzahl N von Bits bildet, wobei K die folgende Bedingung erfüllt:
    Figure 00270001
  5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass eine Anzahl M der vorbestimmten, unterschiedlichen Masken (M11, M12) K + 1 ist (M = K + 1).
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die jeweilige m-te Maske (M11, M12), mit m ∊ {1, ..., M}, aus zumindest einem Teil eines periodischen Musters bestehend aus einem jeweiligen Einsbit und darauf folgend eine jeweilige Folge (F) von K Nullbits gebildet wird.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die jeweilige (m + 1)-te Maske (M12, M11) durch eine Bitverschiebung der jeweiligen m-ten Maske (M11, M12) um 1 Bit gebildet wird.
  8. Verfahren nach einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass der Schritt c) ausgebildet wird durch: – Maskieren jeweils der zumindest vier zweiten Zwischen-Bitstrings (Z21–Z24) mit den zumindest zwei unterschiedlichen Masken (M21–M24) mit einer jeweiligen vergrößerten Länge durch bitweises UND-Verknüpfen zur Erzeugung von zumindest vier dritten Zwischen-Bitstrings; und – XOR-Verknüpfen der zumindest vier dritten Zwischen-Bitstrings zur Erzeugung des Ergebnis-Bitstrings (E).
  9. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Schritt a) ausgebildet wird durch: – Spreizen des jeweiligen Eingangs-Bitstrings (EB1, EB2) durch Einfügen der Folge (F) der K Nullbits zwischen allen benachbarten N Bits des entsprechenden Eingangs-Bitstrings (EB1, EB2) zur Erzeugung eines jeweiligen ersten Zwischen-Bitstrings (Z11–Z14) für jeden Eingangs-Bitstring (EB1, EB2).
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die jeweilige Folge (F) mit der Anzahl K von Nullbits ein Fenster in dem jeweiligen ersten Zwischen-Bitstring (Z11–Z14) bildet, wobei K die folgende Bedingung erfüllt: ⌊log2(N)⌋ ≤ K
  11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass der Schritt b) ausgebildet wird durch: – Verknüpfen der zwei ersten Zwischen-Bitstrings (Z11, Z12) durch die Integer-Multiplikation der Prozessor-Einrichtung zur Erzeugung eines einzigen zweiten Zwischen-Bitstrings (Z2).
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass der Schritt c) ausgebildet wird durch: – Extrahieren von Bits des erzeugten, zweiten Zwischen-Bitstrings (Z2) an vorbestimmten Positionen i·(K + 1), mit i ∊ {0, ..., 2N – 2}, beginnend beim niedrigstwertigen Bit des zweiten Zwischen-Bitstrings (Z2) mit der Position 0 (P1).
  13. Computerprogramm-Produkt, welches auf einer programmgesteuerten Einrichtung die Durchführung eines Verfahrens nach den Ansprüchen 1 bis 12 veranlasst
  14. Prozessor-Einrichtung (10) zur Implementierung einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings (EB1, EB2) mit jeweils einer Anzahl N Bits, wobei die Prozessor-Einrichtung ein Bit-weises Schieben oder Schiebebefehle mit langen Ausführungszeiten bereitstellt, mit: – einer Erzeugungseinrichtung (11), welche dazu geeignet ist, eine Folge (F) einer Anzahl K von Nullbits, mit K ∊ {1, ..., N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings (EB1, EB2) an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring (EB1, EB2) zur Erzeugung von zumindest einem ersten Zwischen-Bitstring (Z11–Z14) zu erzeugen; – einer logischen Verknüpfungseinrichtung (12), welche dazu geeignet ist, die mindestens zwei ersten Zwischen-Bitstrings (Z11–Z14) durch eine Integer-Multiplikation zur Erzeugung zumindest eines zweiten Zwischen-Bitstrings (Z21–Z22) zu verknüpfen; und – einer Transformationseinrichtung (13), welche dazu geeignet ist, den zumindest einen zweiten Zwischen-Bitstring (Z21–Z24) mittels zumindest einer zweiten Transformation zum Bilden eines Ergebnis-Bitstrings (E) zu transformieren.
DE102008033962A 2008-07-21 2008-07-21 Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation Expired - Fee Related DE102008033962B4 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102008033962A DE102008033962B4 (de) 2008-07-21 2008-07-21 Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
PCT/EP2009/056228 WO2010009917A1 (de) 2008-07-21 2009-05-22 Verfahren und prozessor-einrichtung zum implementieren einer charakteristik-2-multiplikation
CN2009801286003A CN102105860A (zh) 2008-07-21 2009-05-22 用于实施特征2乘法的方法和处理器设备
JP2011519095A JP5449349B2 (ja) 2008-07-21 2009-05-22 標数2の乗算を実現するための方法、コンピュータ装置およびコンピュータプログラム
US13/055,218 US8732227B2 (en) 2008-07-21 2009-05-22 Method and processor unit for implementing a characteristic-2-multiplication
EP09779527A EP2304549A1 (de) 2008-07-21 2009-05-22 Verfahren und prozessor-einrichtung zum implementieren einer charakteristik-2-multiplikation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008033962A DE102008033962B4 (de) 2008-07-21 2008-07-21 Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation

Publications (2)

Publication Number Publication Date
DE102008033962A1 DE102008033962A1 (de) 2010-01-28
DE102008033962B4 true DE102008033962B4 (de) 2011-11-24

Family

ID=40941502

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008033962A Expired - Fee Related DE102008033962B4 (de) 2008-07-21 2008-07-21 Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation

Country Status (6)

Country Link
US (1) US8732227B2 (de)
EP (1) EP2304549A1 (de)
JP (1) JP5449349B2 (de)
CN (1) CN102105860A (de)
DE (1) DE102008033962B4 (de)
WO (1) WO2010009917A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008033962B4 (de) 2008-07-21 2011-11-24 Siemens Aktiengesellschaft Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
FR2952773B1 (fr) * 2009-11-13 2012-07-20 Inst Telecom Telecom Paristech Circuit electronique de faible complexite protege par masquage personnalise
CN104636113A (zh) * 2015-02-06 2015-05-20 周炜 一种计算机处理大整数的算法
CA3086900A1 (en) * 2017-12-29 2019-07-04 Genentech, Inc. Injection monitoring device with delivery signature
KR102674032B1 (ko) 2019-12-26 2024-06-12 삼성전자주식회사 리페어 동작을 수행하는 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US11227641B1 (en) * 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE10107376A1 (de) 2001-02-16 2002-08-29 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
US7243292B1 (en) * 2002-10-17 2007-07-10 Telefonaktiebolaget Lm Ericsson (Publ) Error correction using finite fields of odd characteristics on binary hardware
JP2006517036A (ja) 2003-02-06 2006-07-13 ディスクレティックス・テクノロジーズ・リミテッド マスクされたデータを操作する装置及び方法
JP4986206B2 (ja) 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
DE102008033962B4 (de) 2008-07-21 2011-11-24 Siemens Aktiengesellschaft Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS ERMITTELT *

Also Published As

Publication number Publication date
US8732227B2 (en) 2014-05-20
JP2011528810A (ja) 2011-11-24
DE102008033962A1 (de) 2010-01-28
WO2010009917A1 (de) 2010-01-28
US20110131395A1 (en) 2011-06-02
CN102105860A (zh) 2011-06-22
JP5449349B2 (ja) 2014-03-19
EP2304549A1 (de) 2011-04-06

Similar Documents

Publication Publication Date Title
DE102008033962B4 (de) Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
DE102005028662B4 (de) Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie
DE60314584T2 (de) Maskierung von in einem Restklassensystem zerlegten bzw. faktorisierten Daten
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE102005009170B4 (de) Logikschaltung und zugehöriges Verfahren
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE69932740T2 (de) Verfahren und vorrichtung zur kryptographischen datenverarbeitung
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP1590731A2 (de) Modulare exponentiation mit randomisierten exponenten
EP1999571B1 (de) Verfahren und vorrichtung zur reduktion eines polynoms in einem binären finiten feld, insbesondere im rahmen einer kryptographischen anwendung
DE60022974T2 (de) Vorrichtung zur Ausführung eines Blockverschlüsselungsalgorithmus mit Wiederholungsrunden
EP1628206A2 (de) Verfahren und Vorrichtung zum modularen Multiplizieren
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
DE60215044T2 (de) Vorrichtung und verfahren zur erzeugung einer kodemaske
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
DE19637369A1 (de) Digitaler Signalprozessor
EP3504616B1 (de) Modul und verfahren zur abgesicherten berechnung von mathematischen operationen
DE10201450B4 (de) Carry-Skip-Addierer für verschlüsselte Daten
EP4270174A1 (de) Laufzeitunabhängige moduloreduktion und/oder division
DE102004022647B4 (de) Verfahren und Vorrichtung zur Ermittlung der Anzahl von abgelaufenen Taktzyklen eines binären Zufallsgenerators
EP1022653A1 (de) Verfahren zur Berechnung von modulo (2n+1)-Produkten und anschliessender modulo (2n)-Addition
DE102005005022A1 (de) Verfahren zum digitalen Filtern und digitales Filter mit einer Integratorstufe und einer Differenziatorstufe
DE1296425B (de) Rechenanordnung zur Durchfuehrung der vier Grundrechenoperationen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R020 Patent grant now final

Effective date: 20120225

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee