EP2304549A1 - Verfahren und prozessor-einrichtung zum implementieren einer charakteristik-2-multiplikation - Google Patents

Verfahren und prozessor-einrichtung zum implementieren einer charakteristik-2-multiplikation

Info

Publication number
EP2304549A1
EP2304549A1 EP09779527A EP09779527A EP2304549A1 EP 2304549 A1 EP2304549 A1 EP 2304549A1 EP 09779527 A EP09779527 A EP 09779527A EP 09779527 A EP09779527 A EP 09779527A EP 2304549 A1 EP2304549 A1 EP 2304549A1
Authority
EP
European Patent Office
Prior art keywords
bit string
bits
xmm3
multiplication
mask
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.)
Withdrawn
Application number
EP09779527A
Other languages
English (en)
French (fr)
Inventor
Bernd Meyer
Jean Georgiades
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
Publication of EP2304549A1 publication Critical patent/EP2304549A1/de
Withdrawn legal-status Critical Current

Links

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

Definitions

  • the invention relates to a method and a processor device for implementing a characteristic-2 multiplication of at least two input bit strings.
  • the characteristic 2 multiplication comes in a variety of cryptographic methods, in particular in public-key methods, such as. in a hardware implementation of elliptic curve cryptographic techniques.
  • the numbers used in such characteristic 2 arithmetic can be efficiently represented as bit strings on a processor device, a processor or a computer. Such a bit string can be cached by a register. The addition of two numbers in such a representation corresponds to the bitwise XOR operation of the representative bit strings.
  • a multiplication of two bit strings or operands in the characteristic 2 arithmetic corresponds mathematically to the product of two polynomials from GF (2) [X].
  • the bit strings, which are used to represent the numbers, correspond to the 0/1 sequence of the coefficients of the respective polynomials.
  • the mathematical basis for characteristic 2-multiplication is to return the product of two numbers to a predetermined amount of partial products, which are then added to the result.
  • the partial products and the sum are given below: 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1
  • an addition of the partial products is carried out by a column-wise XOR combination.
  • basic operations for performing such a multiplication sliding operations and bitwise AND operations for calculating the partial products in the rows of the table above and bitwise XOR operations for calculating the respective total columns of the partial products are used.
  • window methods are known as optimized variants of this multiplication method.
  • the windowing methods reduce the number of additions of partial products needed, especially because of a small amount of additions
  • Precomputed table of multiples of the one operand With the help of this precalculated table, then in each subsequent step, several bits can be used at once for the calculation of partial products. Consequently, the calculation of the partial products is attributed to a lookup in the precalculated table. With an optimized choice of the parameters, the saving of additions of partial products by executing several bits at once can be higher than the necessary effort which is necessary for the additional precalculation of the table.
  • windowing methods can be efficiently combined with shift commands. If the processor used for implementation provides efficient shift instructions for particular step sizes, it may be advantageous to add the partial products in multiple subtotals. For example, in a processor with a bus width of 8 bits and the application of a windowing method with 4-bit wide windows, the intermediate result in the accumulator is shifted by 4 bits to the left between two additions. If, however, two different accumulators are used alternately to add up the partial sums, the contents of the accumulators can be shifted by 8 bits in each case. A shift by 1 byte, ie 8 bits, can be achieved very efficiently on a conventional processor by copying the data in the memory.
  • the use of asymptotically faster algorithms to compute the multiplication such as Karatsuba or Fourier multiplication, may be advantageous.
  • the multiplication method described above can then also be applied to shorter sections of the numbers to be multiplied.
  • a method for implementing a characteristic-2 multiplication of at least two input bit strings each having a number N of bits by means of a hardware hardware implementation.
  • a processor device for implementing a characteristic-2 multiplication of at least two input bit strings each having a number of N bits, which comprises: a generation device which is suitable for recording a sequence of a number K of zero bits Ke ⁇ l, ..., N ⁇ , by means of a first transformation of the respective input bit string at at least one predetermined position in the respective input bit string to generate at least a first intermediate bit string; a logical link suitable for carrying the at least two first intermediate bit strings by a hardware-technical integer multiplication for generating at least a second intermediate bit string to link; and a transformation device configured to transform the at least one second intermediate bit string by means of at least one second transformation to form a result bit string.
  • An advantage of the present invention is that a characteristic 2 multiplication of two bit strings, input bit strings or numbers is made possible by means of a conventional processor or a conventional processor device, which is suitable only for hardware integer multiplication.
  • the characteristic 2 multiplication and the conventional integer multiplication differ, in particular, in the way in which the calculated partial products are added up.
  • Characteristic 2 multiplication a column-wise XOR operation is used, which corresponds to a sum without carry-over
  • conventional column integer multiplication calculates the column sums with carries. Traditionally, however, these carries can also affect and alter the column sum of adjacent columns.
  • gaps are artificially inserted in the numbers to be multiplied by means of the sequence of the number K of zero bits into which the carryforces which are forcibly produced in the conventional integer multiplication can be collected.
  • these resulting transfers can no longer change or influence the farther left column sums.
  • the method of the invention 2-multiplication can be carried out.
  • the individual assembler command can cause the calculation and addition of the partial products, including the necessary shift operations.
  • a software-implemented characteristic-2-multiplication algorithm generally can not achieve such fast and efficient implementation as the hardware of the processor device already offers.
  • the present invention is particularly advantageous when the processor device used provides only a bitwise shift or the provided shift instructions have long execution times.
  • the number K of the zero bits of the sequence is determined as a function of the number N of bits of the input bit strings.
  • the step a) of the method described above is configured by masking the respective input bit string with at least two different masks by a respective bitwise AND operation of the respective input bit string with the respective mask for generating at least two first masks Intermediate bitstrings.
  • the respective sequence with the number K of the zero bits forms in each case a mask window in the respective predetermined mask with a number N of bits, where K satisfies the following condition:
  • the respective mth mask is formed from at least part of a periodic pattern consisting of a respective one bit and subsequently a respective sequence of K zero bits.
  • the respective (m + 1) -th mask is formed by a bit shift of the respective m-th mask by 1 bit.
  • step c) of the method described above is configured by: masking each of the at least four second intermediate bit strings with the at least two different masks having a respective doubled length by bitwise ANDing to generate at least four third intermediate strings - bit strings; and XORing the at least four third intermediate bit strings to produce the result bit string.
  • the step a) of the method described above is configured by spreading the respective input bit string by inserting the sequence of K zero bits between all N bits of the corresponding input bit strings (total NI times) for generating a respective intermediate bit string for each input bit string.
  • the respective sequence with the number K of zero bits forms a window in the respective first intermediate bit string, wherein K satisfies the following condition:
  • the step b) of the method described above is configured by linking the two first intermediate bit strings by the integer multiplication of the processor device to produce a single second intermediate bit string.
  • step c) is formed by: extracting bits of the generated second intermediate bit string at predetermined positions i- (K + 1) starting with ie ⁇ 0, ..., 2N-2 ⁇ at the least significant bit of the second intermediate bit string with the position 0.
  • a computer program product such as a computer program means can be provided or supplied, for example, as a storage medium, such as memory card, USB stick, floppy disk, CD stick, CD-ROM, DVD or even in the form of a downloadable file from a server in a network. This can be done, for example, in a wireless communication network by transmitting a corresponding file with the computer program product or the computer program means.
  • Figure 1 is a schematic flow diagram of a first embodiment of the method according to the invention for implementing a characteristic 2 multiplication
  • FIG. 2 shows a schematic flow diagram of a second exemplary embodiment of the method according to the invention for implementing a characteristic 2 multiplication
  • FIG. 3 is a schematic example of an application of the second embodiment of the method according to the invention of Figure 2;
  • FIG. 4 shows a schematic flow diagram of a third exemplary embodiment of the method according to the invention for implementing a characteristic 2 multiplication
  • FIG. 5 is a schematic example of an application of the third embodiment of the method according to the invention of Figure 4.
  • FIG. 6 shows a schematic block diagram of an exemplary embodiment of the processor device according to the invention for implementing a characteristic-2 multiplication
  • FIG. 7 shows a schematic example of an integer multiplication of two first intermediate bit strings.
  • the same or functionally identical means and devices - unless otherwise indicated - provided with the same reference numerals.
  • FIG. 1 shows a schematic flow diagram of a first exemplary embodiment for implementing a characteristic 2 multiplication of at least two input bit strings EB1, EB2, each with a number N of bits, by means of a processor device 10 suitable for performing an integer multiplication.
  • reference character EBi with i e ⁇ 1,2 ⁇ denotes the respective i-th input bit string EB1, EB2.
  • MIi denotes the respective first mask MI1, M12.
  • M2i denotes the respective second mask M21, M22.
  • ZIj denotes j e ⁇ 1,2,3,4 ⁇ the respective first intermediate bit string ZI1, Z12, Z13 and Z14.
  • Z2j denotes the respective second intermediate bit string Z21, Z22, Z23, Z24.
  • E denotes the result bit string
  • reference symbols rl-r6 respectively denote a line in Figs. 3 and 5 for improved referencing in these figures.
  • the method according to the invention according to FIG. 1 has the method steps R1 to R3:
  • At least one sequence F of a number K of zero bits, with K e ⁇ 1,..., N ⁇ , is generated by means of a first transformation of the respective input bit string EB1, EB2 at at least one predetermined position in the respective input bit string EB1, EB2 generates at least a first intermediate bit string Z11-Z14.
  • the number K of the zero bits of the sequence F are preferably determined as a function of the number N of bits of the input bit strings EB1, EB2.
  • the at least two first intermediate bit strings Z11-Z14 are logically linked by the hardware-technical integer multiplication of the processor device 10 to generate at least one second intermediate bit string Z21-Z24.
  • the at least one second intermediate bit string Z21-Z24 is transformed to form a result bit string E.
  • FIG. 2 shows a schematic flow diagram of a second exemplary embodiment of the method according to the invention for implementing a characteristic-2 multiplication of at least two input bit strings EB1, EB2 each having a number N of bits by means of a processor suitable for performing integer multiplication Device 10 shown.
  • the second exemplary embodiment according to FIG. 2 has the following method steps S1-S4:
  • the respective input bit string EB1, EB2 of the at least two input bit strings EB1, EB2 is generated with at least two different masks MI1, M12 by a respective bitwise AND operation of the respective input bit string EB1, EB2 with the respective mask MI1, M12 of at least two first intermediate bit strings Z11-Z14 masked.
  • the first transformation illustrated with reference to method step R1 of FIG. 1 is designed as a mask according to FIG.
  • the respective sequence F with the number K of the zero bits forms in each case a mask window in the respective predetermined mask MI1, M12 with a number N of bits, where K satisfies the following condition:
  • 3 shows a schematic example of an application of the second exemplary embodiment of the method according to the invention according to FIG. 2.
  • the example also shows that the respective (m + 1) -th mask M12, MI1 is formed by a bit shift of the respective m-th masks MI1, M12 by one bit.
  • line r3 shows the first intermediate bit strings Z11-Z14 which represent the result of a masking of the input bit strings EB1, EB2 with the masks MI1, M12.
  • line r4 shows an abstract representation of the row r3, wherein the hexadecimal numbers A-H of the row r3 are each replaced by an abstract "*", which indicates only that the respective value may be non-zero.
  • Step S2 The four second intermediate bit strings Z21-Z24 according to row r5 result from a logical combination of the first intermediate bit strings Z11-Z14 according to row r4 by means of the integer multiplication of the processor device 10.
  • the products Z11 * Z13, Z11 * Z14, Z12 * Z13 and Z12 * Z14 calculated by means of the integer multiplication of the processor device 10.
  • the results of these calculation steps form the second intermediate bit strings Z21-Z24.
  • the four second intermediate bit strings Z21-Z24 with the two different masks M21, M22 according to row r6 are masked by a bitwise AND operation to generate at least four third intermediate bit strings (not shown).
  • the at least four fourth intermediate bit strings are also bit-wise XOR-linked to generate the result bit string E.
  • FIG. 4 shows a schematic flowchart of a third exemplary embodiment of the inventive method for implementing a characteristic 2 multiplication of at least two input bit strings EB1, EB2, each with a number N of bits, by means of a processor device suitable for performing integer multiplication.
  • the exemplary embodiment according to FIG. 4 has the method steps T1-T3:
  • the respective input bit string EB1, EB2 is generated by inserting a sequence F of a number K of zero bits between all adjacent bits of the corresponding input bit string EB1, EB2 (total NI times) for generating a respective first intermediate bit string ZIl, Z12 for each input bit string EBl, EB2 spread.
  • 5 shows in row rl two different input bit strings EB1, EB2, and row r2 shows the respective input bit strings EB1, EB2 spread with the sequence F for generating the corresponding first intermediate bit strings Z11, Z12.
  • the left first intermediate bit string ZIL results from the spreading of the first input bit string EB1
  • the right first intermediate bit string Z12 results from the spreading of the second input bit string EB2.
  • the respective sequence F with the number K of zero bits forms a window in the respective first intermediate bit string ZIII, Z12.
  • the first two intermediate bit strings Z11, Z12 according to row r2 of FIG. 5 are logically combined by the integer multiplication of the processor means 10 to produce a single second intermediate bit string Z2 according to row r3.
  • FIG. 5 shows a schematic block diagram of an exemplary embodiment of the processor device 10 according to the invention for implementing a characteristic 2 multiplication of at least two input bit strings EB1, EB2, each with a number N of bits.
  • the processor device 10 has a generation device 11, a logical combination device 12 and a transformation device 13.
  • the generation device 11 is suitable for generating a sequence F of a number K of zero bits, with K e ⁇ 1,..., N ⁇ , by means of a first transformation of the respective input bit string EB 1, EB 2 at at least one predetermined position in the respective input Bit string EB1, EB2 to generate at least a first intermediate bit string Z11-Z12.
  • the logical combination device 12 is set up to provide the at least two first intermediate logic devices.
  • Bitstrings Z11-Z12 by an integer multiplication to generate at least a second intermediate bit string Z21 to link.
  • the transformation device 13 is set up to transform the at least one second intermediate bit string Z21 by means of at least one second transformation to form a result bit string E.
  • Fig. 7 shows a schematic example of an integer multiplication of two first intermediate bit strings.
  • these two first intermediate bit strings are given by the bit patterns "ABCD” and "EFGH".
  • these first intermediate bit strings are masked with the "0101" and “1010” masks, that is to say bit-wise ANDed. This results in the four bit patterns or numbers “OBOD”, "A0C0", “OFOH” and "E0G0".
  • all bit patterns resulting from "ABCD” are combined with all "EFGH” existing bit patterns using conventional integer multiplication. This multiplication is shown by way of example for the patterns "OBOD” and "OFOH” in FIG. 7.
  • the non-zero entries in the partial products table of Figure 7 necessarily form a regular row and column grid with one-bit gaps between the entries.
  • the carry-over that can result from adding the column sums using integer multiplication can be precisely inserted into these artificially formed gaps in the masked numbers.
  • this possible carry "BH AND DF" is represented as a "*”. If the result is bitwise ANDed with the mask "1010101", then the carry-outs fall out (as indicated in FIG. 3) and a part of the result of the desired characteristic-2 multiplication is obtained.
  • the three remaining products between the different masked numbers provide the remaining values and are calculated by means of appropriately adapted bit masks. A bitwise XOR operation of the four values calculated in this way yields the result of the characteristic 2 multiplication.
  • the present invention uses only bitwise ANDing to mask the numbers and to mask the partial products, the conventional integer multiplication of the processor means, and a bitwise XORing to add up the various partial results.
  • bitwise ANDing to mask the numbers and to mask the partial products
  • the conventional integer multiplication of the processor means to mask the partial products
  • bitwise XORing to add up the various partial results.
  • no shift commands are necessary anymore. These are implicitly executed by the integer multiplication.
  • the assembler routine below is used to characterize-2 multiplication of 64-bit numbers with 128-bit results. This assembler routine below can be translated with the nasm assembler and is under the gcc
  • pand xmmO [mask4] movdqa xmm3, xmmO pmuludq xmm3, xmm4; mask4 * mask 1 pand xmm3, [mask4] pxor xmm2, xmm3 movdqa xmm3, xmmO pmuludq xmm3, xmm5; mask4 * mask 2 pand xmm3, [maskl] pxor xmm2, xmm3 movdqa xmm3, xmmO pmuludq xmm3, xmm ⁇ ; mask4 * mask 3 pand xmm3, [mask2] pxor xmm2, xmm3 pmuludq xmmO, xmm7; mask4 * mask 4pmm xmmO, [mask3] pxor xmm2, xmmO

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

Das Verfahren zum Implementieren einer Charakteristik-2- Multiplikation von zumindest zwei Eingangs-Bitstrings mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozessor-Einrichtung hat folgende Schritte: 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; b) Verknüpfen der zumindest zwei ersten Zwischen-Bitstrings durch die 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.

Description

Beschreibung
Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2 -Multiplikation
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 Charakteris- tik-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 wer- den, 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: 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1
1 1 1 1 1 1 1
Zur Bereitstellung des Ergebnisses wird eine Addition der Partialprodukte durch eine spaltenweise XOR-Verknüpfung aus- gefü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 Be- rechnung 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ätzli- che 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 Me- thode 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, eine Charakteristik-2-Multiplikation von zumindest zwei Bitstrings mit einer zur Integer-Multiplikation geeigneten Prozessor- Einrichtung zu ermöglichen. Erfindungsgemäß wird diese gestellte Aufgabe durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 und/oder durch eine Prozessor-Einrichtung mit den Merkmalen des Patentan- spruchs 14 gelöst.
Demgemäß wird ein Verfahren zum Implementieren einer Charak- teristik-2-Multiplikation von zumindest zwei Eingangs- Bitstrings mit jeweils einer Anzahl N von Bits mittels eines zur Durchführung einer hardware-technischen Integer-
Multiplikation geeigneten Prozessor-Einrichtung vorgeschlagen, welches die folgenden Schritte aufweist: a) Erzeugen zumindest einer Folge einer Anzahl K von Nullbits, mit Ke{l, ...,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 vorgeschla- gen, welche aufweist: eine Erzeugungseinrichtung, welche dazu geeignet ist, eine Folge einer Anzahl K von Nullbits, mit Ke{l, ...,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 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 eingerich- tet 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 spalten- weise 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 ent- stehen, 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 Überträge 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 As- semblerbefehl 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 einzel- ne Assemblerbefehl die Berechnung und Addition der Partial- produkte 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 Imp- lementierung 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 Beschrei- bung 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:
N log
K + l <κ
Gemäß einer weiteren bevorzugten Weiterbildung ist eine Anzahl M der vorbestimmten, unterschiedlichen Masken gleich K+l (M = K+l) .
Gemäß einer weiteren bevorzugten Weiterbildung wird die jeweilige m-te Maske, mit m e{l, ...,M}, aus zumindest einem Teil eines periodischen Musters bestehend aus einem jeweili- gen Einsbit und darauf folgend eine jeweilige Folge von K Nullbits gebildet.
Gemäß einer weiteren bevorzugten Weiterbildung wird die jeweilige (m+l)-te Maske durch eine Bitverschiebung der jewei- ligen 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-I 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:
[1Og2(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+l), mit ie { 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 Bei- spiel 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:
Figur 1 ein schematisches Ablaufdiagramm eines ersten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik- 2 -Multiplikation;
Figur 2 ein schematisches Ablaufdiagramm eines zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik- 2 -Multiplikation;
Figur 3 ein schematisches Beispiel einer Anwendung des zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach Figur 2 ;
Figur 4 ein schematisches Ablaufdiagramm eines dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik- 2 -Multiplikation;
Figur 5 ein schematisches Beispiel einer Anwendung des dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach Figur 4 ;
Figur 6 ein schematisches Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Prozessor- Einrichtung zum Implementieren einer Charakteris- tik-2-Multiplikation; und
Figur 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.
Figur 1 zeigt ein schematisches Ablaufdiagramm eines ersten Ausführungsbeispiels zum Implementieren einer Charakteristik- 2-Multiplikation von zumindest zwei Eingangs-Bitstrings EBl, EB2 mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozes- sor-Einrichtung 10.
Nachfolgend wird das erfindungsgemäße Verfahren anhand des Blockschaltbildes in Fig. 1 mit Bezug auf die Beispiele in den Fig. 3 und Fig. 5 erläutert.
In den Fig. 3 und 5 bezeichnet das Bezugszeichen EBi mit i e {1,2} den jeweiligen i-ten Eingangs-Bitstring EBl, EB2. Weiterhin bezeichnet MIi die jeweilige erste Maske MIl, M12. Weiter bezeichnet M2i die jeweilige zweite Maske M21, M22. Ferner bezeichnet ZIj mit j e {1,2,3,4} den jeweiligen ersten Zwischen-Bitstring ZIl, 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 rl-r6 bezeichnen jeweils eine Zeile in den Fig. 3 und 5 zur verbesserten Referenzierung in diesen Figuren .
Das erfindungsgemäße Verfahren nach Fig. 1 weist die Verfahrensschritte Rl bis R3 auf:
Verfahrensschritt Rl:
Zumindest eine Folge F einer Anzahl K von Nullbits, mit K e {1, ...,N}, wird mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings EBl, EB2 an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring EBl, EB2 zur Erzeugung von zumindest einem ersten Zwischen- Bitstring Z11-Z14 erzeugt. Dabei wird die Anzahl K der Null- bits der Folge F vorzugsweise in Abhängigkeit von der Anzahl N der Bits der Eingangs-Bitstrings EBl, 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 Fig. 2 ist ein schematisches Ablaufdiagramm eines zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation von zumin- dest zwei Eingangs-Bitstrings EBl, 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äß Fig. 2 weist die folgenden Verfahrensschritte S1-S4 auf:
Verfahrensschritt Sl:
Der jeweilige Eingangs-Bitstring EBl, EB2 der zumindest zwei Eingangs-Bitstrings EBl, EB2 wird mit zumindest zwei unterschiedlichen Masken MIl, M12 durch eine jeweilige bitweise UND-Verknüpfung des jeweiligen Eingangs-Bitstrings EBl, EB2 mit der jeweiligen Maske MIl, M12 zur Erzeugung von zumindest zwei ersten Zwischen-Bitstrings Z11-Z14 maskiert. Damit ist die mit Bezug auf den Verfahrensschritt Rl nach Fig. 1 dargestellte erste Transformation als eine Maskierung gemäß Fig. 2 ausgebildet . Dabei bildet die jeweilige Folge F mit der Anzahl K der Nullbits jeweils ein Maskenfenster in der jeweiligen vorbestimmten Maske MIl, M12 mit einer Anzahl N von Bits, wobei K die folgende Bedingung erfüllt:
N log
K + l <κ
Die Anzahl M der vorbestimmten unterschiedlichen Masken MIl, M12 ist vorzugsweise gleich K+l (M = K+l) .
Dabei wird die jeweilige m-te Maske MIl, M12, mit m e {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 Fig. 3 ein schematisches Beispiel einer Anwendung des zweiten Ausführungsbeispiels des erfindungsgemäßen Verfahrens nach Fig. 2. Dabei zeigt die Zeile rl zwei Eingangs- Bitstrings EBl, EB2 mit EBl = "ABCD" und EB2 = "EFGH". Weiter zeigt die Zeile r2 zwei Masken MIl und M12 mit MIl = "0101" und M12 = "1010". Nach dem Beispiel der Zeile r2 der Fig. 3 ist K=I und M=2. Das Beispiel zeigt auch, dass die jeweilige (m+l)-te Maske M12, MIl durch eine Bitverschiebung der jeweiligen m-ten Masken MIl, 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 EBl, EB2 mit den Masken MIl, 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 zumin- dest 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 .
Fig. 4 zeigt ein schematisches Ablaufdiagramm eines dritten Ausführungsbeispiels des erfindungsgemäßen Verfahrens zum Implementieren einer Charakteristik-2-Multiplikation von zumindest zwei Eingangs-Bitstrings EBl, EB2 mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer- Multiplikation geeigneten Prozessor-Einrichtung.
Das Ausführungsbeispiel gemäß Fig. 4 weist die Verfahrensschritte T1-T3 auf:
Verfahrensschritt Tl:
Der jeweilige Eingangs-Bitstring EBl, EB2 wird durch Einfügen einer Folge F einer Anzahl K von Nullbits zwischen allen benachbarten Bits des entsprechenden Eingangs-Bitstrings EBl, EB2 (insgesamt N-I mal) zur Erzeugung eines jeweiligen ersten Zwischen-Bitstrings ZIl, Z12 für jeden Eingangs-Bitstring EBl, EB2 gespreizt. Dazu zeigt Fig. 5 in Zeile rl zwei unterschiedliche Eingangs-Bitstrings EBl, EB2, und Zeile r2 zeigt die mit der Folge F gespreizten jeweiligen Eingangs- Bitstrings EBl, EB2 zur Erzeugung der entsprechenden ersten Zwischen-Bitstrings ZIl, Z12. So ergibt sich der linke erste Zwischen-Bitstring ZIl aus der Spreizung des ersten Eingangs- Bitstrings EBl und der rechte erste Zwischen-Bitstring Z12 ergibt sich aus der Spreizung des zweiten Eingangs- Bitstrings EB2.
Wie in Zeile r2 der Fig. 5 gezeigt, bildet die jeweilige Folge F mit der Anzahl K von Nullbits ein Fenster in dem jewei- ligen ersten Zwischen-Bitstring ZIl, Z12.
Ferner genügt die Anzahl K von Nullbits einer jeweiligen Folge F der folgenden Bedingung:
[1Og2(N)]< K
Verfahrensschritt T2 :
Die beiden ersten Zwischen-Bitstrings ZIl, Z12 gemäß Zeile r2 der Fig. 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+l), mit i e {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) ex- trahiert. Durch die Extraktion ergibt sich der Ergebnis- Bitstring E gemäß Zeile r5 der Fig. 5. Fig. 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 EBl, 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 e {1, ...,N}, mittels einer ersten Transformation des jeweiligen Eingangs- Bitstrings EBl, EB2 an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring EBl, EB2 zur Erzeugung von zumindest einem ersten Zwischen-Bitstring Z11-Z12 zu erzeugen .
Weiter ist die logische Verknüpfungseinrichtung 12 dazu ein- gerichtet, 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 Fig. 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 Mas- ken "0101" und "1010" maskiert, das heißt bitweise UND- verknüpft. Dadurch entstehen die vier Bitmuster oder Zahlen "OBOD", "A0C0", "OFOH" und "E0G0". Anschließend werden alle aus "ABCD" entstandenen Bitmuster mit allen aus "EFGH" ent- standenen Bitmustern unter Verwendung der herkömmlichen Inte- ger-Multiplikation multipliziert. Diese Multiplikation ist exemplarisch für die Muster "OBOD" und "OFOH" in Fig. 7 gezeigt .
Durch die Maskierung bilden die von Null verschiedenen Einträge in der Tabelle der Partialprodukte nach Fig. 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 Fig. 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 Fig. 3 angedeutet) und es wird ein Teil des Ergebnisses der gewünschten Charakteris- tik-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 Aufaddieren der verschiedenen Teilergeb- nisse. Insbesondere sind erfindungsgemäß keine Schiebebefehle mehr notwendig. Diese werden implizit durch die Integer- Multiplikation ausgeführt.
Die exakte Wahl der Masken zur Implementierung der vorliegen- den 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 EBl, EB2 oder Zahlen die Breiten der Fenster in den Masken in Bits sowie die Anzahl der benötigten Integer-Multiplikationen aufgeführt:
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 xmmO - 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:
Assemblerroutine zur Multiplikation ueber GF (2) : 64x64->128
[SECTION .text]
; void mul64 (uint32_t c[], uint32_t a[], uint32_t b[] ; c <- a*b
global mul64 mul64 : berechne maskierte Werte des 2. Operanden in xmm4 bis xmm7 vor mov eax, [esp+12] Adresse des 2. Operanden movq xmm4 , [eax] xmm4 = (0, 0, X, Y) pshufd xmm4, xmm4 , 0x98 xmm4 = (0, X, 0, Y) movdqa xmm5 , xmm4 pand xmm4, [maskl] movdqa xmmδ, xmm5 pand xmm5, [mask2] movdqa xmm7 , xmmδ pand xmmδ, [mask3] pand xmm7 , [mask4]
; erster Block des 1. Operanden laden mov eax, [esp+8] ; Adresse des 1. Operanden movd xmmO, [eax] ; xmmO = (0, 0, 0, X) punpcklqdq xmmO, xmmO ; xmmO = (0, X, 0, X)
movdqa xmml , xmmO pand xmml, [maskl] movdqa xmm2 , xmml pmuludq xmm2 , xmm4 ; maskl * mask 1 pand xmm2, [maskl] movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; maskl * mask 2 pand xmm3, [mask2] pxor xmm2, xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; maskl * mask 3 pand xmm3, [mask3] pxor xmm2, xmm3 pmuludq xmml, xmm7 ; maskl * mask 4 pand xmml, [mask4] pxor xmm2 , xmml
movdqa xmml , xmmO pand xmml, [mask2] movdqa xmm3 , xmml pmuludq xmm3, xmm4 ; mask2 * mask 1 pand xmm3, [mask2] pxor xmm2, xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; mask2 * mask 2 pand xmm3, [mask3] pxor xmm2, xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; mask2 * mask 3 pand xmm3, [mask4] pxor xmm2, xmm3 pmuludq xmml, xmm7 ; mask2 * mask 4 pand xmml, [maskl] pxor xmm2 , xmml
movdqa xmml , xmmO pand xmml, [mask3] movdqa xmm3 , xmml pmuludq xmm3, xmm4 ; mask3 * mask 1 pand xmm3, [mask3] pxor xmm2, xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; mask3 * mask 2 pand xmm3, [mask4] pxor xmm2, xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; mask3 * mask 3 pand xmm3, [maskl] pxor xmm2, xmm3 pmuludq xmml, xmm7 ; mask3 * mask 4 pand xmml, [mask2] pxor xmm2 , xmml
pand xmmO, [mask4] movdqa xmm3 , xmmO pmuludq xmm3, xmm4 ; mask4 * mask 1 pand xmm3, [mask4] pxor xmm2 , xmm3 movdqa xmm3 , xmmO pmuludq xmm3, xmm5 ; mask4 * mask 2 pand xmm3, [maskl] pxor xmm2 , xmm3 movdqa xmm3 , xmmO pmuludq xmm3, xmmδ ; mask4 * mask 3 pand xmm3, [mask2] pxor xmm2 , xmm3 pmuludq xmmO, xmm7 ; mask4 * mask 4 pand xmmO, [mask3] pxor xmm2, xmmO
pxor xmm3, xmm3 ; loesche xmm3 movq xmm3 , xmm2 ; kopiere untere 64 Bit von xmm2 nach xmm3 pxor xmm2 , xmm3 ; loesche untere 64 Bit von xmm2 pshufd xmm2, xmm2 , 0x38 ; Permutation 0, 3, 2, 0 pxor xmm2 , xmm3
movdqa [tmp] , xmm2 ; temporar Zwischenspeichern
; zweiter Block des 1. Operanden laden movd xmmO, [eax+4] ; xmmO = (0, 0, 0, Y) punpcklqdq xmmO, xmmO ; xmmO = (0, Y, 0, Y)
movdqa xmml , xmmO pand xmml, [maskl] movdqa xmm2 , xmml pmuludq xmm2 , xmm4 ; maskl * mask 1 pand xmm2 , [maskl] movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; maskl * mask 2 pand xmm3, [mask2] pxor xmm2 , xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; maskl * mask 3 pand xmm3, [mask3] pxor xmm2 , xmm3 pmuludq xmml, xmm7 ; maskl * raask 4 pand xmml, [mask4] pxor xmm2, xmml
movdqa xmml , xmmO pand xmml, [mask2] movdqa xmm3 , xmml pmuludq xmm3, xmm4 ; mask2 * mask 1 pand xmm3, [mask2] pxor xmm2 , xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; mask2 * mask 2 pand xmm3, [mask3] pxor xmm2 , xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; mask2 * mask 3 pand xmm3, [mask4] pxor xmm2 , xmm3 pmuludq xmml, xmm7 ; mask2 * mask 4 pand xmml, [maskl] pxor xmm2, xmml
movdqa xmml , xmmO pand xmml, [mask3] movdqa xmm3 , xmml pmuludq xmm3, xmm4 ; mask3 * mask 1 pand xmm3, [mask3] pxor xmm2 , xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmm5 ; mask3 * mask 2 pand xmm3, [mask4] pxor xmm2 , xmm3 movdqa xmm3 , xmml pmuludq xmm3, xmmδ ; mask3 * mask 3 pand xmm3, [maskl] pxor xmm2 , xmm3 pmuludq xmml, xmm7 ; mask3 * mask 4 pand xmml , [mask2] pxor xmm2, xmml
pand xmmO, [mask4] pmuludq xmm4 , xmmO ; mask4 * mask 1 pand xmm4, [mask4] pxor xmm2 , xmm4 pmuludq xmm5, xmmO ; mask4 * mask 2 pand xmm5, [maskl] pxor xmm2, xmm5 pmuludq xmmδ, xmmO ; mask4 * mask 3 pand xmmδ, [mask2] pxor xmm2 , xmmδ pmuludq xmm7 , xmmO ; mask4 * mask 4 pand xmm7 , [mask3] pxor xmm2, xmm7
pxor xmm3, xmm3 ; loesche xmm3 movq xmm3 , xmm2 ; kopiere untere 64 Bit von xmm2 nach xmm3 pxor xmm2 , xmm3 ; loesche untere 64 Bit von xmm2 pshufd xmm3, xmm3, 0xd3 ; Permutation 3, 1, 0, 3 pxor xmm2 , xmm3
pxor xmm2 , [ tmp ]
mov eax, [ esp+4 ] ; Adresse der Zielvariablen movdqu [ eax ] , xmm2
ret
[ SECTION . data ] align 16 maskl dd 0x11111111, 0x11111111, 0x11111111, 0x11111111 mask2 dd 0x22222222, 0x22222222, 0x22222222, 0x22222222 mask3 dd 0x44444444, 0x44444444, 0x44444444, 0x44444444 mask4 dd [SECTION .bss] align 16 tmp resb 16
Obwohl die vorliegende Erfindung vorstehend anhand der bevorzugten Ausführungsbeispiele beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar .

Claims

Patentansprüche
1. Verfahren zum Implementieren einer Charakteristik-2- Multiplikation von zumindest zwei Eingangs-Bitstrings (EBl, EB2) mit jeweils einer Anzahl N von Bits mittels einer zur Durchführung einer Integer-Multiplikation geeigneten Prozessor-Einrichtung, mit den Schritten: a) Erzeugen zumindest einer Folge (F) einer Anzahl K von Nullbits, mit K e {1, ...,N}, mittels einer ersten Transfor- mation des jeweiligen Eingangs-Bitstrings (EBl, EB2) an zumindest einer vorbestimmten Position in dem jeweiligen Ein- gangs-Bitstring (EBl, EB2) zur Erzeugung von zumindest einem ersten Zwischen-Bitstring (Z11-Z14) für den jeweiligen Ein- gangs-Bitstring (EBl, 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 (EBl, EB2) bestimmt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Schritt a) ausgestaltet wird durch:
Maskieren des jeweiligen Eingangs-Bitstrings (EBl, EB2) mit zumindest zwei unterschiedlichen Masken (MIl, M12) durch eine jeweilige bitweise UND-Verknüpfung des jeweiligen Eingangs- Bitstrings (EBl, EB2) mit der jeweiligen Maske zur Erzeugung von zumindest zwei ersten Zwischen-Bitstrings (Z11-Z14) für den jeweiligen Eingangs-Bitstring (EBl, 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 (MIl, M12) mit einer Anzahl N von Bits bildet, wobei K die folgende Bedingung erfüllt: log N
K + l <κ
5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass eine Anzahl M der vorbestimmten, unterschiedlichen Masken (MIl, M12) K+l ist (M = K+l) .
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die jeweilige m-te Maske (MIl, M12), mit m e {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+l)-te Maske (M12, MIl) durch eine Bitverschiebung der jeweiligen m-ten Maske (MIl, 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 (EBl, EB2) durch Einfügen der Folge (F) der K Nullbits zwischen allen benachbarten N Bits des entsprechenden Eingangs-Bitstrings (EBl, EB2) zur Erzeugung eines jeweiligen ersten Zwischen- Bitstrings (Zll-Z14)für jeden Eingangs-Bitstring (EBl, 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 (ZU- Z14) bildet, wobei K die folgende Bedingung erfüllt:
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass der Schritt b) ausgebildet wird durch:
Verknüpfen der zwei ersten Zwischen-Bitstrings (ZIl, 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+l), mit i e { 0 , ... , 2N-2 } , beginnend beim niedrigstwertigen Bit des zweiten Zwischen-Bitstrings (Z2) mit der Position 0 (Pl) .
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 Cha- rakteristik-2-Multiplikation von zumindest zwei Eingangs- Bitstrings (EBl, EB2) mit jeweils einer Anzahl N Bits, mit: einer Erzeugungseinrichtung (11), welche dazu geeignet ist, eine Folge (F) einer Anzahl K von Nullbits, mit K e
{1, ...,N}, mittels einer ersten Transformation des jeweiligen Eingangs-Bitstrings (EBl, EB2) an zumindest einer vorbestimmten Position in dem jeweiligen Eingangs-Bitstring (EBl, 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.
EP09779527A 2008-07-21 2009-05-22 Verfahren und prozessor-einrichtung zum implementieren einer charakteristik-2-multiplikation Withdrawn EP2304549A1 (de)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
EP2304549A1 true EP2304549A1 (de) 2011-04-06

Family

ID=40941502

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09779527A Withdrawn EP2304549A1 (de) 2008-07-21 2009-05-22 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 周炜 一种计算机处理大整数的算法
KR102430873B1 (ko) * 2017-12-29 2022-08-09 제넨테크, 인크. 전달 시그니처를 갖는 주입 모니터링 디바이스
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
EP1595357A4 (de) 2003-02-06 2006-03-01 Discretix Technologies Ltd Einrichtung und verfahren zum manipulieren maskierter daten
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
See references of WO2010009917A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102005028662B4 (de) Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie
DE102008033962B4 (de) Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
DE60314584T2 (de) Maskierung von in einem Restklassensystem zerlegten bzw. faktorisierten Daten
EP1360579B1 (de) Verfahren und vorrichtung zum modularen multiplizieren und rechenwerk zum modularen multiplizieren
DE68923262T2 (de) Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer.
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
EP3593483A1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
WO2004070497A2 (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
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP1628206A2 (de) Verfahren und Vorrichtung zum modularen Multiplizieren
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
DE3854284T2 (de) Paralleladdierer mit entfernten Abhängigkeiten.
EP0829803B1 (de) Digitaler Signalprozessor und Verfahren zur Durchführung einer Multiplikation mit einem digitalen Signalprozessor
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
DE102021123727B4 (de) Bytefehlerkorrektur
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

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20101220

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA RS

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS AKTIENGESELLSCHAFT

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20151201