Abstract:
The invention relates to a cryptographic processor comprising a central processing unit and a coprocessor, said coprocessor having a large number of arithmetic subunits and a single control unit, which is coupled to each of the arithmetic subunits. The control unit divides a cryptographic operation among the individual subunits in the form of suboperations. The central processing unit, the large number of arithmetic subunits and the control unit are integrated into a single chip, said chip having a common power supply input for supplying the large number of arithmetic subunits and the control unit with current. The arrangement in series of different arithmetic subunits increases the throughput of the cryptographic processor and randomises the current profile, which can be detected at the power supply input, in such a way that it is impossible for an attacker to deduce the characters that are being processed in the individual arithmetic subunits.
Abstract:
Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren Bei einem Verfahren zum modularen Multiplizieren eines Multi-plikanden (C) mit einem Multiplikator (M) unter Verwendung eines Moduls (N), wobei der Multiplikand, der Multiplikator und der Modul Polynome einer Variablen sind, wird ein Multi-plikations-Vorausschau-Verfahren (210), um einen Multiplika-tions-Verschiebungswert (sZ) zu erhalten, ausgeführt. Ein Zwischenergebnis-Polynom (Z) wird um die Anzahl von Stellen des Multiplikations-Verschiebungs-Werts (sZ) nach links ver-schoben (214), um ein verschobenes Zwischenergebnis-Polynom (Z') zu erhalten. Darüber hinaus wird ein Reduktions-Vorausschau-Verfahren (212), um einen Reduktions-Verschiebungswert (sN) zu erhalten, ausgeführt, wobei der Re-duktions-Verschiebungswert gleich der Differenz des Grads des verschobenen Zwischenergebnis-Polynoms (Z') und des Grads des Modul-Polynoms (N) ist. Hierauf wird das Modul-Polynom um ei-ne Anzahl von Stellen gleich dem Reduktions-Verschiebungswert verschoben (216), um ein verschobenes Modul-Polynom zu erhal-ten. In einer Drei-Operanden-Addition (218) werden das ver-schobene Zwischenergebnis-Polynom (Z') und der Multiplikand (C) summiert, und das verschobene Modul-Polynom (N') wird subtrahiert, um ein aktualisiertes Zwischenergebnis-Polynom (Z) zu erhalten. Durch iteratives Ausführen (226) der vorste-henden Schritte wird die modulare Multiplikation nach und nach abgearbeitet, bis sämtliche Potenzen des Multiplikator-Polynoms verarbeitet sind. Durch eine Übertrag-Abschalt-Funktion ist es möglich, sowohl eine Z/NZ-Arithmetik als auch eine GF(2n)-Arithmetik auf einem einzigen Langzahl-Rechenwerk auszuführen.
Abstract:
Ein Addierer zum Addieren von Bits von zumindest drei Eingangsoperanden, um zumindest zwei Ausgabebits zu erhalten, umfaßt neben einer Eingangsstufe (10) eine Mehrzahl von Schaltstufen (12a, 12b, 12c) und jeder Schalstufe nachgeordnet eine Ausgabestufe (14a, 14b, 14c). In einem Datenmodus sind die Schaltstufen betreibbar, um entweder ein Bit oder ein invertiertes Bit an einem Ausgang (18a, 18b, 18c) zu der Ausgabestufe zu liefern, die der entsprechenden Schaltstufe nachgeordnet ist. Die Ausgabestufe ändert dann auf der Basis des von der entsprechenden Schaltstufe erhaltenen Bits ein Ausgabebit gegenüber dem vorausgehenden Vorbereitungsmodus und ergänzt das komplementäre Bit aus dem vorausgehenden Vorbereitungsmodus. Die Addiererschaltung ist flächeneffizient, da sie ohne komplette Dual-Rail-Logik auskommt und dennoch sicher gegen kryptographische Attacken ist.
Abstract:
The invention relates to a device for converting a dual rail input having two effective operand bits and two auxiliary operand bits into a one-hot coded output with three output operands. The device comprises a control device for operating said device in data mode and for operating the device in a preparation mode following said data mode. The device also comprises a logic circuit for combining the two effective operand bits and the two auxiliary operand bits so that two of the three output operands have a value differing from that of the third output operand in the data mode. The device is further configured in such a way as to bring all three output operands to the same value in the preparation mode. The conversion device can be used preferably in a three operand adder as interface between a dual-rail three bit half-adder and a sum-carry stage of a two-bit complete adder in order to achieve the same reliability as in three operand adder fully configured in dual-rail technology despite the fact that the two-bit complete adder is configured in single-rail technology.
Abstract:
The invention relates to a register cell which comprises a first input (10) for a data unit to be written into said register cell. The register cell further comprises a second input (12) for a negated data unit to be written into the register cell. A first pair (14) of cross-coupled inverters (14a, 14b) can be coupled with the first input (10) as the first memory circuit. A second pair of cross-coupled inverters (16a, 16b) can be coupled with the second input (12) as the second memory circuit. The use of two cross-coupled pairs of inverters allows to initialize (30) the first input (10) and the second input (12) of the register either at a high voltage status (precharge) or at a low voltage status (discharge) in such a manner as to render the power consumption of the register cell from one cycle to the next more uniform.
Abstract:
Disclosed is a processor comprising a source register (10) with a content, a destination register (12), an arithmetic unit (14) doing a calculation by using the content of the source register, said calculation being done in several cycles and only a portion of the content of the source register being usable in each cycle, a data bus (18) which is connected to the source register (10), the destination register (12), and the arithmetic unit (14), and a processor control unit which is operable so as to feed the content of the source register in portions to the arithmetic unit and the destination register via the data bus during the calculation process such that the content of the source register is written in the destination register once the calculation is done. The inventive processor makes it possible to copy a register for long operands that are to be processed portion by portion from a source register to a destination register via a limited data bus without using any additional machine cycles.
Abstract:
Eine Datenverarbeitungsschaltung umfaßt einen Single-Rail-Bus (10) mit einer Single-Rail-Leitung (12), einen Dual-Rail-Bus (14) mit einer ersten Dual-Rail-Leitung (14a) für Datenbits und einer zweiten Dual-Rail-Leitung (14b) für invertierte Datenbits sowie eine Umsetzungseinrichtung (16) zum Überführen von Signalen auf dem Single-Rail-Bus in Signale auf dem Dual-Rail-Bus und umgekehrt. Durch Einsetzen sowohl der Single-Rail-Technik als auch der Dual-Rail-Technik mit Precharge oder Pre-Discharge oder ohne Precharge in einer Datenverarbeitungsschaltung wird ein optimaler Kompromiß zwischen Sicherheit einerseits und Chipflächenverbrauch und Leistungsverbrauch andererseits erreicht, indem Bereiche, in denen sicherheitskritische Daten verarbeitet werden, in Dual-Rail-Technik ausgeführt werden, während Bereiche, in denen weniger sicherheitskritische Daten verarbeitet werden, in Single-Rail-Technik ausgeführt werden, und wobei Schnittstellen zwischen diesen Bereichen mit einer Umsetzungseinrichtung versehen werden.
Abstract:
Ein Rechenwerk umfaßt einen ersten Rechenwerksblock (10), einen zweiten Rechenwerksblock (12),eine Steuereinrichtung (16) und eine Verbindungseinrichtung, die Verbindungsleitungen aufweist, wobei für jede Elementarzelle gleicher Wertigkeit im ersten Rechenwerksblock (10) und im zweiten Rechenwerksblock (12) eine eigene Verbindungseinleitung (14a, 14b, 14c) vorgesehen ist, um einen schnellen Registeraustausch mittels der Steuereinrichtungen (16) der parallel arbeitenden Rechenwerks-blöcke zu erreichen.
Abstract:
Ein Rechenwerk umfaßt mehrere Addiererblöcke (10, 12, 14) mit Einzeladdierern, einen Taktgenerator (52) und eine Steuerein-richtung (50). Jedem Addiererblock ist eineÜbertrag-Durchlaufeinrichtung (26, 28, 30) zugeordnet, die bestimmt, ob ein Übertrag einenentsprechenden Addiererblock vollständig durchläuft. Wird bestimmt, daß ein Übertragkeinen Addiererblock durchläuft, so wird das Rechenwerk mit einer Taktperiode getaktet, die ausreichend ist, daß ein Übertrag einen Addiererblock nahezu vollständig durchlaufenkann und zumindest einen Teil eines vorausgehenden Addiererblocks durchlaufen kann. Wird bestimmt, daß ein Übertrag einen Addiererblock vollständig durchläuft, wird einPanik-Signal (260, 280, 300) erzeugt. Der Addierertakt wird verlangsamt, so daß die Takt-periode so groß ist, daß der Übertrag zusätzlich einen weite-ren Addiererblock vollständig durchlaufen kann. Erst im Falle von Panik-Signalen zweier benachbarter Addiererblöcke wird das Rechenwerk so stark verlangsamt, daß ein Übertrag von derniederstwertigen Stelle des Rechenwerks bis zur höchstwerti-gen Stelle des Rechenwerks laufen kann. Damit wird erreicht, daß die Blocklänge verkürzt wird, was in einemhöheren Normaltakt und bei Panik in einem nur leicht reduzierten Addierertakt resultiert.
Abstract:
Zum sicheren Laden von Nutzdaten auf einen Datenträger (10) wird zunächst eine Blinddateneinheit bereitgestellt (14), die eine Zufallszahl sein kann. Ferner wird eine Nutzdateneinheit bereitgestellt (14), die aus einer Folge von Nutzdateneinheiten stammt und Nutzinformationen darstellt. Um eine Leistungsanalyse zum Ermitteln des Hamming-Gewichts von verarbeiteten Nutzdaten abzuwehren, wird vor dem Laden einer Nutzdateneinheit auf den Datenträger (10), der z. B. ein Register oder ein Bus ist, zunächst eine Blinddateneinheit geladen. Damit kann ein Angreifer lediglich das Hamming-Gewicht aus einer Kombination von Nutzdateneinheit und Blinddateneinheit ermitteln, jedoch nicht das Hamming-Gewicht der Nutzdateneinheit selbst.