DE10207966B4 - Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern - Google Patents

Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern Download PDF

Info

Publication number
DE10207966B4
DE10207966B4 DE10207966A DE10207966A DE10207966B4 DE 10207966 B4 DE10207966 B4 DE 10207966B4 DE 10207966 A DE10207966 A DE 10207966A DE 10207966 A DE10207966 A DE 10207966A DE 10207966 B4 DE10207966 B4 DE 10207966B4
Authority
DE
Germany
Prior art keywords
codeword
information
units
state
codewords
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
DE10207966A
Other languages
English (en)
Other versions
DE10207966A1 (de
Inventor
Gerd Dipl.-Phys. Dirscherl
Norbert Dr. Dipl.-Phys. Janssen
Jean-Pierre Dr. Dipl.-Inf. Seifert
Stefan Dr.-Ing. Rueping
Franz Josef Dipl.-Ing. Bruecklmayr (FH)
Harald Dipl.-Ing. Hewel
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10207966A priority Critical patent/DE10207966B4/de
Priority to AU2003247308A priority patent/AU2003247308A1/en
Priority to PCT/EP2003/000690 priority patent/WO2003071399A1/de
Priority to TW092102938A priority patent/TW200303679A/zh
Publication of DE10207966A1 publication Critical patent/DE10207966A1/de
Application granted granted Critical
Publication of DE10207966B4 publication Critical patent/DE10207966B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Vorrichtung (10) zum Codieren eines Stroms von Informationseinheiten, wobei die Informationseinheiten unterschiedliche logische Zustände haben können, und wobei in dem Strom von Informationseinheiten zwei aufeinanderfolgende Informationseinheiten vorhanden sind, die den gleichen logischen Zustand haben, mit folgenden Merkmalen:
einer Einrichtung (16) zum Zuweisen eines Codeworts zu einer Informationseinheit gemäß einer Codiervorschrift, wobei ein erstes Codewort zu einer der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist, und wobei ein zweites Codewort zu einer anderen der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist,
wobei das erste und das zweite Codewort gemäß der Codiervorschrift definiert sind, wobei das erste Codewort von dem zweiten Codewort unterschiedlich ist, und wobei das erste und das zweite Codewort aus Codeworteinheiten bestehen,
wobei die Einrichtung (16) zum Zuweisen einen Eingang (12) aufweist, durch den der Strom von Informationseinheiten zuführbar ist, und
wobei die Einrichtung (16) zum Zuweisen eine Anzahl von Ausgangsleitungen (14a, 14b; 14c) aufweist, wobei die Anzahl von...

Description

  • Die vorliegende Erfindung bezieht sich auf Codierer/Decodiererkonzepte zum Codieren bzw. Decodieren von Daten und insbesondere auf solche Konzepte, die eine verbesserte Sicherheit gegenüber Leistungsanalyseattacken auf kryptographische Informationsverarbeitungssysteme liefern, und die daher für kryptographische Informationsverarbeitungssysteme von Bedeutung sind.
  • In Informationsverarbeitungssystemen und insbesondere natürlich auch in kryptographischen Informationsverarbeitungssystemen existiert typischerweise eine Datenquelle, wie z. B. ein Speicher für Daten, eine Übertragungseinrichtung für eine Übertragung von Daten aus der Datenquelle und eine Datensenke, die beispielsweise ein Rechenwerk sein kann, in dem die über die Übertragungseinrichtung übertragenen Informationen verarbeitet werden, oder die wiederum ein Speicher sein kann, in den über die Übertragungseinrichtung übertragene Daten abgespeichert werden.
  • Typische Übertragungseinrichtungen umfassen eine Busleitung beispielsweise in Form einer Leiterbahn auf einer Platine sowie einen Leitungstreiber, der dazu vorgesehen ist, je nach zu übertragender Information einen bestimmten Spannungspegel an die Leitung anzulegen. Wenn binäre Informationseinheiten betrachtet werden, so kann eine Informationseinheit einen von zwei logischen Zuständen haben, nämlich den logischen Zustand „0" oder den logischen Zustand „1". Jeder logische Zustand wird durch einen zugeordneten Spannungspegel auf der Leitung gekennzeichnet, wobei die Treiberschaltung dafür verantwortlich ist, diesen Spannungspegel auf der Leitung aufzubauen, damit er von einem Empfänger am Eingang der Datensenke erfaßt und entsprechend interpretiert werden kann. Je nach verwende ter Logikimplementation kann der „1"-Zustand durch einen positiven Spannungspegel dargestellt sein, während der „0"-Zustand durch einen negativen Spannungspegel gekennzeichnet sein kann. Alternativ kann der positive Spannungspegel auf einen „1"-Zustand hinweisen, während der logische „0"-Zustand durch einen Spannungspegel von 0 V auf der Leitung gekennzeichnet ist. Wieder alternativ kann der logische „1"-Zustand durch einen negativen Spannungspegel auf der Leitung dargestellt werden, während der „0"-Zustand durch 0 V auf der Leitung dargestellt wird. Die zwei voneinander unterscheidbaren Spannungspegel auf der Leitung, um einen logischen „0"-Zustand bzw. einen logischen „1-Zustand darzustellen, können auch durch zwei Spannungen unterschiedlicher Polarität darstellbar sein.
  • Soll der an der Leitung anliegende Spannungspegel von einem logischen Zustand in einen anderen logischen Zustand gebracht werden, so ist dafür die Leitungstreiberschaltung verantwortlich. Typischerweise stellt eine Leitung, insbesondere wenn sie eine größere Länge erhält bzw. wenn sie relativ hochfrequent betrieben wird, eine Kapazität dar, die umzuladen ist, wenn der Spannungspegel an der Leitung von einem Pegel zu einem anderen Pegel wechseln soll. Der hierfür erforderliche Strom zum Umladen der Leitungskapazität wird von der Leitungstreiberschaltung geliefert. Selbst wenn die Leitung hochohmig abgeschlossen ist, muß daher dennoch ein Strom zu der Leitung zugeführt werden, wenn der Spannungspegel auf der Leitung von einem Pegel zu einem anderen Pegel verändert werden soll. Es tritt daher ein Stromverbrauch auf, wenn der Zustand auf der Leitung wechselt, während, wenn besondere Vorkehrungen getroffen werden, kein Stromverbrauch auftritt, wenn sich der Spannungszustand auf der Leitung nicht ändert.
  • Typischerweise wird zur Implementation der Leitungstreiberschaltung eine CMOS-Technik verwendet. Es ist bekannt, daß die CMOS-Technik im Ruhezustand keinen Strom benötigt, weshalb sie insbesondere für Anwendungen, bei denen der Strom verbrauch eine Rolle spielt, bevorzugt wird. CMOS-Schaltungen benötigen lediglich dann Strom, wenn sich ihr Zustand ändert, d. h. wenn der Ausgangspegel einer CMOS-Schaltung von einem logischen Zustand in den anderen logischen Zustand umgeschaltet werden soll. Daraus ist ersichtlich, daß die CMOS-Schaltung ebenfalls bei einem Zustandswechsel Strom verbraucht, während kein bzw. nur ein vernachlässigbar geringer Stromverbrauch auftritt, wenn auf der Leitung kein Zustandswechsel stattfindet.
  • Wird daher auf einer Leitung ein Strom von binären Einsen und Nullen übertragen, so kann anhand des Stromverbrauchs der Leitungstreiberschaltung nachvollzogen werden, wann in dem Strom von Informationseinheiten, die auf der Leitung übertragen werden, ein Zustandswechsel stattgefunden hat, und wann nicht. Werden die Informationseinheiten, wie es üblicherweise der Fall ist, mit einem konstanten Takt übertragen, so ist es möglich, anhand des Stromverbrauchs zu eruieren, erstens welche Taktfrequenz vorliegt, und zweitens, wann ein Zustandswechsel stattgefunden hat. Zeigt das Stromprofil in Abständen, die dem Taktzyklus entsprechen, Stromimpulse, so kann daraus ohne weiteres abgeleitet werden, daß in dem Strom von Informationseinheiten immer eine 0 auf eine 1 oder eine 1 auf eine 0 gefolgt ist. Zeigt das Stromprofil dagegen, daß für eine Mehrzahl aufeinanderfolgender Taktzyklen kein Stromimpuls vorhanden war, so führt dies unmittelbar zu dem Schluß, daß der zuletzt vorhandene Zustand beibehalten worden ist, wie es beispielsweise der Fall ist, wenn in dem Strom von Informationseinheiten zwei oder mehr aufeinanderfolgende logischen Einsen oder zwei oder mehr aufeinanderfolgende logischen Nullen vorhanden waren.
  • Gelingt es nunmehr noch, ein einziges Bit des Stroms von Informationseinheiten explizit zu entschlüsseln, beispielsweise durch Vorkenntnisse über die Schaltung, den Algorithmus, den die Schaltung verarbeitet, oder durch Durchführung verschiedener Übertragungen und einer entsprechenden Auswertung, so kann allein anhand des Stromprofils der Strom von Informationseinheiten „mitgelesen" werden. Je nach Form der Schaltung können Stromprofile unmittelbar durch Abgriff am Ausgang der Leistungsversorgung oder aber durch Koppeln von Sonden entweder per Kontakt oder kontaktlos an entsprechende Versorgungsleitungen aufgenommen werden. Eine solche Maßnahme wird in der Technik auch als „Probing" bezeichnet.
  • Sind die über die Leitung zu übertragenden Daten z. B. Daten über einen geheimen Schlüssel für eine Informationsverarbeitungseinrichtung zum Ausführen eines Public-Key-Kryptoalgorithmus, wie z. B. des RSA-Algorithmus, so ist dieses Sicherheitsleck nicht akzeptabel. Angriffe auf das Kryptosystem bzw. die Informationsverarbeitungseinheit für kryptographische Anwendungen, die auf der Basis des Strom- oder Leistungsprofils arbeiten, werden in der Technik auch als SPA- oder DPA-Attacken bezeichnet, wobei SPA-Attacken sogenannte einfache Leistungsattacken sind (SPA = Simple Power Analysis), während DPA-Attacken als Differenz-Leistungsattacken bezeichnet werden (DPA = Differential Power Analysis).
  • Wie es dargelegt worden ist, ermöglichen es solche Power-Analysis-Attacken, dass Zustandsübergänge, d. h. bei binärer Anwendung 0 nach 0, 0 nach 1, 1 nach 0, 1 nach 1, aus dem Leistungsprofil, d. h. dem Strom-Profil, dem Spannungs-Profil bzw. dem Abstrahlungsprofil, etc., extrahiert werden können, um daraus Rückschlüsse auf geheime Daten zu gewinnen.
  • Zur Abwehr von Power-Analysis-Attacken wird üblicherweise die bekannte Dual-Rail-Schaltungstechnik mit Precharge eingesetzt, um damit SPA/DPA-sichere Schaltungen aufzubauen. In der Dual-Rail-Schaltungstechnik mit Precharge wird jede Leitung zur Übertragung geheimer Informationen doppelt ausgeführt und mit komplementären Spannungspegeln bzw. logischen Zuständen beaufschlagt. Wird beispielsweise auf der ersten der beiden Leitungen eine logische „1" übertragen, so wird auf der zweiten der beiden Leitungen eine logische „0" übertragen. Folgt auf die logische „1" eine logische „0", so folgt der logischen „0" auf der zweiten Leitung eine logische „1" auf der zweiten Leitung. Dies führt dazu, daß sämtliche Zustandsübergänge immer doppelt auftreten, d. h. wenn auf der ersten Leitung ein Zustand von „0" nach „1" stattfindet, so findet auf der zweiten Leitung der entgegengesetzte Zustand statt, was insbesondere dann von Vorteil ist, wenn die beiden Zustandsübergänge unterschiedlich viel Strom verbrauchen. Diese Modifikation verschleiert jedoch noch nicht, wenn zwei aufeinanderfolgende gleiche Informationseinheiten auf der Leitung vorhanden sind. Um diesen Fall zu vermeiden, wird daher nach jedem Arbeitstakt, in dem Nutzdaten übertragen werden, ein sogenannter Precharge-Takt eingefügt, der dazu führt, daß das Stromprofil auch für aufeinanderfolgende gleiche Informationseinheiten Impulse aufweist, die den Impulsen für sonstige Zustandsübergänge entsprechen. Ein Angreifer sieht daher eine Folge von identischen Impulsen und kann daraus nicht mehr ableiten, wann tatsächlich ein Zustandsübergang in den Informationseinheiten stattgefunden hat, bzw. wann ein „Zustand-Halten"-Ereignis war, d. h. wann aufeinanderfolgende Informationseinheiten mit demselben logischen Zustand aufgetreten sind.
  • Nachteilig an der Dual-Rail-Schaltungstechnik mit Precharge-Takt ist, daß eine Realisierung bisher nur durch ein Full-Custom-Schaltungsdesign möglich ist, d. h. daß jede Schaltung bis zu einem bestimmten Detaillierungsgrad extra entworfen werden muß, während typischerweise Schaltungen in normaler Ausführung wesentlich umfassender automatisch entworfen werden können.
  • Ein weiterer Nachteil der Dual-Rail-Precharge-Technik ist, daß jede Leitung doppelt ausgeführt werden muß, d. h. daß sich die benötigte Chipfläche stark vergrößert. Ein weiterer Nachteil der Dual-Rail-Technik mit Precharge ist, daß auch die Datenübertragungsrate halbiert wird, da nach jedem Ar beitstakt ein Precharge-Takt eingefügt wird, d. h. ein Takt, in dem keine Nutzinformationen übertragen werden.
  • Aus Sicherheitsgründen, d. h. aus Zwecken der Abwehr von DPA/SPA-Angriffen wird daher bei der Dual-Rail-Precharge-Technik die Chipfläche, die eine Schaltung benötigt, nahezu verdoppelt, und wird gleichzeitig der Nutztakt im Vergleich zu einer ungesicherten Schaltung halbiert, wobei solche Schaltungen ferner individuell zu entwerfen sind. Die Dual-Rail-Technik mit Precharge-Takt ist daher teuer und sehr zeitaufwendig in der Entwicklung, liefert jedoch einen hohen Schutz gegenüber den genannten Attacken.
  • Weitere Möglichkeiten zum Schutz von geheimen Daten bestehen darin, geheime Daten im Speicher verschlüsselt abzulegen, und erst unmittelbar am Eingang beispielsweise eines Rechenwerks zu entschlüsseln, Klartextdaten dann zu verarbeiten und am Ausgang wieder zu verschlüsseln. Ein Angreifer kann hier durch SPA- oder DPA-Angriffe lediglich den verschlüsselten Datenstrom eruieren, was bei einfachen Schaltungen hingenommen wird, da auf die Sicherheit des Schlüssels vertraut wird. Wenn die verschlüsselten Daten ferner in Dual-Rail-Technik mit Precharge verarbeitet werden, so liegt ein doppelter Schutz vor, da ein Angreifer, um die geheimen Daten zu eruieren, einerseits keine Informationen aus dem Stromprofil ziehen kann und darüber hinaus, wenn er irgendwie an den verschlüsselten Datenstrom kommt, zusätzlich noch den Schlüssel, mit dem die Daten verschlüsselt sind, herausfinden muß.
  • Das US-Patent Nr. 4,283,789 A offenbart ein Konzept zum binären/ternären Übertragen von Daten. Mehrere Züge von binären Signalen werden zeit-gemultiplext unter Verwendung von Registern, um eine erste Binärsequenz zu erzeugen, die an eine Codierer-Einheit angelegt wird, die ebenfalls eine zweite Binärsequenz und Taktinformationen empfängt. Wenn die Information der einen Sequenz bei einem Binärpegel ist, dann wird das resultierende Signal mittels eines Bipolar-Coces codiert, während dann, wenn die Information der Sequenz den anderen Binärpegel hat, das resultierende Signal in einem Bi-Phasen-Code codiert wird. Ferner wird ein Eingangs-Codewort durch zwei zeitlich folgende Zustände auf einer einzigen Ausgangs-Leitung dargestellt. Im Bi-Phasen-Code hängt ein Codewort von einem vorhergehenden Codewort ab.
  • Die Fachveröffentlichung „The Suitability of various Line Coding Techniques for the Simultaneous Transmission of Data with Voice over Copper Telephone Lines", D. Lynch, Saskatoon, Saskatchewan, 1997, Seiten 1 bis 59 bezieht sich auf die Eignung verschiedener Leitungscodierungstechniken für die gleichzeitige Übertragung von Daten und Sprache über Kupfertelefonleitungen. Beim Eiphasen-Leitungscodieren wird einem logischen Zustand eine von vier Signalformen zugeführt, wobei zwei Signalformen einen positiven und einen negativen Impuls umfassen, während die beiden anderen Signalformen einen positiven oder einen negativen Impuls umfassen.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung oder ein Verfahren zum Codieren bzw. Decodieren eines Stroms von Informationseinheiten bzw. von Codewörtern oder ein Informationsverarbeitungssystem oder ein Verfahren zum Verarbeiten von Informationen zu schaffen, durch die ein gutes Maß an Sicherheit gegenüber kryptographischen Attacken bei geringerem Aufwand geschaffen wird.
  • Diese Aufgabe wird durch eine Vorrichtung zum Codieren nach Patentanspruch, durch ein Verfahren zum Codieren nach Patentanspruch 15, durch ein Informationsverarbeitungssystem nach Patentanspruch 16, durch ein Verfahren zum Verarbeiten von Informationen nach Patentanspruch 20, durch eine Vorrichtung zum Decodieren nach Patentanspruch 21 oder durch ein Verfahren zum Decodieren nach Patentanspruch 27 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß SPA/DPA-Attacken wirkungslos sind, wenn die zu übertragenden Informationseinheiten in einem Strom von Informationseinheiten in einen Strom von Codewörtern codiert werden, wobei die Codierung gemäß einer Codiervorschrift erfolgt, gemäß der in dem Fall, in dem in dem Strom von Informationseinheiten zwei aufeinanderfolgende Informationseinheiten denselben logischen Zustand darstellen, die erste dieser Informationseinheiten ein erstes Codewort zugewiesen bekommt, während die zweite dieser Informationseinheiten ein zweites Codewort zugewiesen bekommt, das sich von dem ersten Codewort unterscheidet. Erfindungsgemäß wird daher der im Leistungsprofil besonders problematische Halten-Zustand durch Codierung eliminiert, derart, daß ein Halten-Zustand, d. h. eine Informationseinheit durch zwei unterschiedliche Codewörter dargestellt wird, derart, daß auch im Falle von zwei aufeinanderfolgenden gleichen Informationseinheiten im Leistungsprofil, das von den für die Codewörter zu erzeugenden Spannungszuständen abhängt, dennoch Peaks vorhanden sind. Ein Angreifer kann nun nicht mehr ohne weiteres durch Betrachten des Leistungsprofils erkennen, wann unterschiedliche Informationseinheiten oder gleiche Informationseinheiten im Strom von Informationseinheiten aufeinanderfolgend vorhanden waren.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, daß kein Precharge-Takt erforderlich ist, d. h. daß aufgrund der einfachen Codierung im Vergleich zur Dual-Rail-Technik mit Precharge der Arbeitstakt verdoppelt worden ist, da in jedem Arbeitstakt eine Informationseinheit codiert und übertragen wird. Die Codewörter bestehen aus Codewort-Einheiten, die im binären Fall Bits sind, wobei jedes Bit auf einer eigenen Leitung übertragen wird, derart, daß ein Codewort parallel übertragen wird. In diesem Fall wird, wenn ein Codewort eine Länge von zwei Bit hat, der Aufwand für die Übertragungsleitung verdoppelt werden. Dies bedeutet, daß in dem Fall, in dem im ungesicherten Fall eine einzige Übertragungsleitung vorhanden war, nunmehr zwei Übertragungsleitungen oder bei einem alternativen Ausführungsbeispiel der vorliegenden Erfindung drei Übertragungsleitungen oder noch mehre Übertragungsleitungen vorhanden sind. Im Gegensatz zur Dual-Rail-Technik mit Precharge, die ebenfalls einen vermehrten Schaltungsaufwand bedeutet, ist dagegen die Geschwindigkeit durch Wegfall des Precharge-Takts aufgrund der erfindungsgemäßen Codierung der Halten-Ereignisse im Strom von Informationseinheiten verdoppelt.
  • Während diese Maßnahme bereits eine erhebliche Sicherheitserhöhung darstellt, wird es ferner bevorzugt, daß die Codiervorschrift derart geartet ist, daß weitere Codewörter für einen logischen „0"-Zustand oder einen logischen „1"-Zustand derart gewählt werden, daß beim Wechseln zwischen zwei beliebigen Zuständen der Informationseinheiten in den entsprechenden zwei aufeinanderfolgenden Codewörtern immer gleich viele Codewort-Einheiten ihren Zustand verändern. Im binären Fall bedeutet dies, daß sämtliche Codewörter derart gestaltet sein müssen, daß sich für Zustandsübergänge im Strom von Informationseinheiten für den Fall 0:0, 0:1, 1:0 und 1:1 in den entsprechend zugewiesenen Codewörtern immer gleich viele Bits ändern, d. h. von 1 auf 0 bzw. von einem ersten Spannungszustand in einen zweiten Spannungszustand übergehen. Es sei darauf hingewiesen, daß auch ein „Übergang" von 0 auf 0 bzw. 1 auf 1 als „Zustandsübergang" angesehen wird.
  • Diese bevorzugte Codiervorschrift führt dazu, daß völlig unabhängig von der Beschaffenheit des Stroms von Informationseinheiten der durch die Einrichtung zum Zuweisen erzeugte Strom von Codewörtern so ausgebildet ist, daß sich in den Ausgangsleitungen, auf denen die Codewörter übertragen werden, und deren Anzahl größer ist als die Anzahl von Eingangsleitungen, wobei die Anzahl auch die Zahl „1" umfassen kann, immer von jedem Codewort zum anderen gleich viele Zustände von Codeworteinheiten ändern. Damit erzeugen die Leitungstreiber zum Treiben der Ausgangsleitungen der Einrichtung zum Zuweisen gemeinsam betrachtet bei jeder Taktflanke einen gleich großen Strompeak. Dies resultiert in einem homogenisierten Stromprofil, bei dem SPA- oder DPA-Attacken wirkungslos sind.
  • Falls, wie es bei bestimmten realen CMOS-Schaltungen der Fall ist, ein Übergang von „1" auf „0" ein unterschiedliches Stromprofil erzeugt als ein Übergang von „0" auf „1", wird es bevorzugt, die Codiervorschrift abhängig von einer Zufallsfolge zu invertieren, um ein Stromprofil zu erreichen, das auch in dieser Hinsicht angriffssicher ist.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 ein Blockschaltbild einer erfindungsgemäßen Codiervorrichtung;
  • 2 ein Blockschaltbild einer erfindungsgemäßen Decodiervorrichtung;
  • 3 eine Codier/Decodiervorschrift gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung;
  • 4a eine Codier/Decodiervorschrift in Tabellenform gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung;
  • 4b ein Zustandsdiagramm der Codier/Decodiervorschrift von 4a;
  • 5a eine Codier/Decodiervorschrift in Tabellenform gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung;
  • 5b eine Zustandsdarstellung der Codier/Decodiervorschrift von 5a;
  • 6 ein bevorzugtes Ausführungsbeispiel für einen Decodierer, der die Codier/Decodiervorschrift von 4a und 4b implementiert;
  • 7 ein bevorzugtes Ausführungsbeispiel für einen Codierer, der die Codier/Decodiervorschrift von 5a implementiert;
  • 8 ein bevorzugtes Ausführungsbeispiel für einen Decodierer der die Codier/Decodiervorschrift von 5a implementiert; und
  • 9 ein Prinzipblockschaltbild eines erfindungsgemäßen Informationsverarbeitungssystems.
  • 1 zeigt einen erfindungsgemäßen Codierer 10 mit einem Eingang 12 und einem Ausgang 14, wobei der Codierer 10 eine Einrichtung 16 zum Zuweisen von Codewörtern zu Informationseinheiten gemäß einer Codier/Decodiervorschrift aufweist. Bei dem in 1 gezeigten bevorzugten Ausführungsbeispiel der vorliegenden Erfindung liegt der binäre Fall vor, d. h. eine Informationseinheit in dem Strom von Informationseinheiten umfaßt ein Bit, derart, daß eine einzige Eingangsleitung 12 vorhanden ist. Jedes Codewort, das gemäß der Codier/Decodiervorschrift von der Einrichtung zum Zuweisen zugewiesen wird, umfaßt zwei oder mehr Codeworteinheiten, wobei jede Codeworteinheit auf einer eigenen Leitung 14a, 14b und gegebenenfalls 14c im wesentlichen parallel übertragen wird. In einem Taktzyklus wird daher eine Informationseinheit in die Einrichtung 16 zum Zuweisen eingespeist, wobei in jedem Takt auch ein Codewort von der Einrichtung 16 zum Zuweisen ausgegeben wird, derart, daß in jedem Arbeitstakt eine Informationseinheit verarbeitet wird. Um die Sicherheit einer Informationverarbeitungseinrichtung, in der sich der in 1 gezeigte erfindungsgemäße Codierer befindet, gegenüber Leistungsattacken zu erhöhen, ist die Codiervorschrift erfindungsgemäß derart ausgestaltet, daß zwei aufeinanderfolgenden gleichen Informationseinheiten zwei aufeinanderfolgende unterschiedliche Codewörter zugewiesen werden, derart, daß auch für aufeinanderfolgende gleiche Informationseinheiten am Eingang 12, also für ein „Halten"-Ereignis, Zustandsübergänge der Ausgangsleitungen 14a bis 14c auftreten. Damit führt ein „Halten"-Ereignis im Strom von Informationseinheiten ebenfalls zu einem Stromverbrauch durch die Leitungstreiber, die die Leitungen 14a bis 14c treiben.
  • Es sei darauf hingewiesen, daß die Codier/Decodiervorschrift, die durch die Einrichtung 16 implementiert wird, eine Redundanz hinzufügt, was sich im Schaltungsdesign derart bemerkbar macht, daß mehr Ausgangsleitungen als Eingangsleitungen vorhanden sind. Wenn also eine einzige Eingangsleitung vorhanden ist, müssen mindestens zwei Ausgangsleitungen vorhanden sein, bzw. wenn mehrere Eingangsleitungen vorhanden sind, wenn ein nicht-binärer Fall betrachtet wird, werden Ausgangsleitungen in einer Zahl vorhanden sein, die größer ist als die Zahl der Eingangsleitungen. Es sei darauf hingewiesen, daß das erfindungsgemäße Konzept nicht nur für binäre Verhältnisse anwendbar ist, bei denen Informationsbits bzw. Codewortbits vorhanden sind, die entweder einen logischen „0"-Zustand oder einen logischen „1"-Zustand haben können, sondern daß das erfindungsgemäße Konzept auch auf andere Verhältnisse anwendbar ist, wie z. B. auf Oktal-, Dezimal- oder Hexadezimalverhältnisse. Aus Gründen der Übersichtlichkeit der Darstellung wird jedoch nachfolgend das erfindungsgemäße Konzept anhand binärer Verhältnisse beschrieben.
  • 2 zeigt ein Blockschaltbild einer erfindungsgemäßen Decodiervorrichtung 20, die einen Decodierereingang 22 und einen Decodiererausgang 24 umfaßt, wobei bei dem in 2 gezeigten bevorzugten Ausführungsbeispiel der Decodierereingang zwei bzw. gegebenenfalls drei Decodierereingangsleitungen 22a, 22b und 22c umfaßt. Über den Eingang 22 werden einer Einrichtung 26 zum Zuweisen von Informationseinheiten zu Codewörtern gemäß einer Codier/Decodiervorschrift die Codewörter zugeführt, um ausgangsseitig, also am Ausgang 24 Informationseinheiten zu erhalten. Ein Strom von Codewörtern am Eingang 22 wird daher durch die Einrichtung 26 in einen Strom von Informationseinheiten am Ausgang 24 abgebildet. Die Codier/Decodiervorschrift, die durch die Einrichtung 26 zum Zuweisen zu implementieren ist, ist prinzipiell derart gestaltet, daß eine Informationseinheit zumindest zwei voneinander unterschiedlichen Codewörtern zugewiesen wird, um die durch den in 1 gezeigten Codierer eingeführte Redundanz wieder zu extrahieren.
  • Aus einem Vergleich der 1 und 2 wird klar, daß die Leitung 14a der Leitung 22a entsprechen kann, daß die Leitung 14b der Leitung 22b entsprechen kann, und daß die Leitung 14c der Leitung 22c entsprechen kann.
  • Im nachfolgenden wird Bezug nehmend auf 3 auf eine Codier/Decodiervorschrift gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung Bezug genommen. Die Codetabelle ist in 3 dargestellt. Wie es aus 3 ersichtlich ist, wird zwischen einem geraden Arbeitstakt und zwischen einem ungeraden Arbeitstakt unterschieden. Tritt eine Informationseinheit mit einem geraden Arbeitstakt in die Einrichtung 16 zum Zuweisen von 1 ein, so wird ihr das Codewort 0, 0 zugewiesen, während im anderen Fall, also wenn diese Informationseinheit mit einem ungeraden Takt in die Einrichtung 16 eintritt, derselben das Codewort 0, 1 zugewiesen wird. Ist der Zustand zu verarbeitenden Informationseinheit dagegen eine 1, so wird in einem geraden Takt das Codewort 1, 1 zugewiesen, während in einem ungeraden Takt das Codewort 1, 0 zugewiesen wird. Es sei darauf hingewiesen, daß die Zuweisungen für einen geraden bzw. einen ungeraden Takt auch umgekehrt werden können. Es ist lediglich wesentlich, daß in einem Takt gewissermaßen eine Codetabelle existiert, während in einem anderen Takt, der dem einen Takt folgt, eine andere Codetabelle existiert.
  • Der in 3 gezeigte Code hat ferner die erfindungsgemäß bevorzugte Eigenschaft, daß beim Wechseln zwischen zwei beliebigen Zuständen von Informationseinheiten immer gleich viele physikalische Bits in den Codewörtern von 0 nach 1 bzw. von 1 nach 0 wechseln bzw. flippen. Dies ist unmittelbar aus 3 ersichtlich. Insbesondere wird auf den Fall hingewiesen, daß zwei aufeinanderfolgende Informationseinheiten denselben Zustand haben, d. h. den Zustand „0". Es wird ferner angenommen, daß der Takt, mit dem die erste der beiden Nullen in die Einrichtung 16 zum Zuweisen von 1 eingespeist wird, ein gerader Takt ist. Gemäß der Codevorschrift in 3 wird daher der ersten „0" das Codewort 0, 0 zugewiesen, während der zweiten 0 das Codewort 0, 1 zugewiesen wird. Für den Decodierer bedeutet dies, daß der Code insgesamt so beschaffen ist, daß zwei voneinander unterschiedlichen Codewörtern, nämlich dem Codewort 0, 0 und dem Codewort 0, 1, die Informationseinheit mit dem Zustand „0" zugewiesen ist.
  • Während der erfindungsgemäße Codierer, der mit dem Code von 3 arbeitet, einfach dadurch implementiert werden kann, daß eine erste Codetabelle für den geraden Takt, also die mittlere Spalte von 3 existiert, und daß eine zweite Codetabelle für den ungeraden Takt existiert, also die dritte Spalte von 3, wobei diese beiden Codetabellen zusammen die Codier/Decodiervorschrift bilden, so benötigt der Codierer zum Implementieren des Codes von 3 auch eine Ein richtung zum Umschalten zwischen den beiden Codetabellen von jedem Takt zum nächsten. Es sei darauf hingewiesen, daß, wenn mehr als zwei Bits pro Codewort verwendet werden, mehrere Codetabellen aufgebaut werden können, so daß in zwei aufeinanderfolgenden Takten nicht zwischen den zwei Codetabellen hin- und hergeschaltet werden muß, sondern daß in mehreren aufeinanderfolgenden Takten zwischen mehreren Codetabellen umgeschaltet werden kann.
  • Andere Alternativen für Codier/Decodiervorschriften, bei denen drei Codeworteinheiten verwendet werden, um ein Codewort zu bilden, werden nachfolgend Bezug nehmend auf die 4a, 4b und 5a, 5b beschrieben.
  • Ein Decodierer zum Decodieren von Codewörtern aus der Codier/Decodiervorschrift von 3 ist ohne weiteres dadurch zu implementieren, daß immer dann, wenn ein Codewort 0, 0 oder 0, 1 ist, eine Informationseinheit mit einer logischen „0" zugewiesen wird, während ansonsten eine Informationseinheit mit einem logischen „1"-Zustand zugewiesen wird.
  • Wird der in 3 gezeigte Code dazu verwendet, eine Codiervorschrift zu implementieren, und zwar in Verbindung mit einer Schaltungstechnik, bei der Übergänge von 1 auf 0 und 0 auf 1 voneinander unterschieden werden können, wie es bei bestimmten realen CMOS-Schaltungen der Fall ist, so wird es bevorzugt, um auch diesen Angriffspunkt zu eliminieren, diese Codierung zufällig durch ihre inverse Codierung zu ersetzen. Anhand des Codes von 3 wird ersichtlich, daß diese Randomisierung für den Decodierer transparent ist, da die in 3 gezeigten Codewörter erfindungsgemäß so gewählt sind, daß die beiden Codewörter, die dieselbe Informationseinheit darstellen, zueinander invers sind. Für den Decodierer spielt es also keine Rolle, ob der invertierte oder nicht-invertierte Code gewählt worden ist, da die beiden Codewörter, die dasselbe Informationswort darstellen, zueinander invers sind.
  • Ein Vorteil des in 3 gezeigten Codes ist, daß gegenüber einer Dual-Rail-Logik eine Geschwindigkeitserhöhung um den Faktor 2 erreicht wird, da in jedem Takt eine Information verarbeitet wird. Darüber hinaus führt die erfindungsgemäße Codierer/Decodierertechnologie dazu, daß entsprechende Schaltungen synthetisierbar sind. Ferner sind solche Schaltungen Probing-sicherer.
  • Die Anzahl der benötigten Zufallsbits, wenn eine invertierte Codierung verwendet werden soll, ist gering, da nur ein Zufallsbit pro zwei Takte benötigt wird. Schließlich ist das erfindungsgemäße Codierer/Decodiererkonzept gemäß dem in 3 gezeigten Ausführungsbeispiel dahingehend vorteilhaft, da es eine implizite DFA-Sicherheit (DFA = Differential Fault Analysis) hat, da auch hier ebenfalls wie bei der Dual-Rail-Precharge-Logik nach verbotenen Zuständen gesucht werden kann. Ein beispielhafter verbotener Zustand ist, daß z. B. zwei aufeinanderfolgende Codewörter existieren, die die Codeworteinheiten 0, 0 und 1, 1 haben. Eine DFA-Sicherheit wird dadurch erreicht, daß der Strom von Codewörtern nach solchen verbotenen Kombinationen durchsucht wird. Eine weitere verbotene Kombination ist ein Codewort 0, 1 gefolgt von einem Codewort 1, 0. Wenn ein solcher verbotener Zustand entdeckt wird, können Maßnahmen getroffen werden, um die Ausgabe eines falschen Ergebnisses zu vermeiden, so daß eine DFA-Attacke zum Scheitern verurteilt ist.
  • Die Redundanz des erfindungsgemäßen Codes kann somit dazu genutzt werden, nicht nur eine Resistenz gegenüber Leistungsanalyseattacken zu erreichen, sondern auch eine Resistenz gegenüber DFA-Attacken, wobei die Resistenz gegenüber DFA-Attacken dadurch ausgenutzt werden kann, daß eine Einrichtung zum Überwachen des Stroms von Codewörtern vorgesehen ist, die, wenn sie eine verbotene Folge von Codewörtern entdeckt, Maßnahmen einleitet, um die Ausgabe eines falschen Werts einer Berechnung zu unterdrücken.
  • Es sei darauf hingewiesen, daß für symmetrische Gatter, also logische Funktionen, die bei Invertierung aller Eingangssignals alle Ausgänge invertieren, wie z. B. ein NOT-Gatter, ein XOR-Gatter, ein Addierer, etc., ohne weiteres gerechnet werden kann, wenn die Gatter für die Codierung aufgedoppelt werden. Mit den Codeworteinheiten kann also wie mit den Informationseinheiten gerechnet werden, ohne daß vor einem Rechenwerk eine Decodierung vorzunehmen ist. Es werden also für beide Codeworteinheiten der Codewörter gemäß der Codier/Decodiervorschrift von 3 die gleichen Gatter oder Zellen verwendet. Der Codierungszustand, also gerader/ungerader Takt oder direkte/inverse Codierung, ist für solche Gatterfunktionen unerheblich.
  • Umfaßt ein Rechenwerk lediglich symmetrische Gatter, so kann ein vollständig codiertes Rechenwerk aufgebaut werden, dahingehend, daß Daten aus einem Speicher ausgelesen werden, dann erfindungsgemäß codiert werden, um zu einem Rechenwerk mit solchen Gattern übertragen zu werden, und um dann, bevor sie wieder in den Speicher geschrieben werden, mit einem erfindungsgemäßen Decodierer decodiert zu werden. Selbstverständlich könnte ein Informationsverarbeitungssystem auch dahingehend aufgebaut sein, daß von einem Speicher ausgelesen wird, dann codiert wird, dann die Codewörter zu einem Rechenwerk übertragen werden, dann decodiert werden, um in uncodierter Form verarbeitet zu werden, und um dann, nach dem Rechenwerk, wieder codiert zu werden, um in codierter Form zum Speicher übertragen zu werden, und um dann, vor dem Einladen in den Speicher, wieder decodiert zu werden. Bezüglich solcher Anwendungen wird auf 9 verwiesen, auf die weiter unten detailliert eingegangen wird.
  • Im nachfolgenden wird anhand von 4a auf eine Codier/Decodiervorschrift gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung Bezug genommen, bei dem die Codewörter eine Länge von drei Codeworteinheiten haben, und bei dem im Gegensatz zu dem in 3 gezeigten Ausführungsbeispiel nicht zwischen zwei unterschiedlichen „Codetabellen" bzw. Unter-Codiervorschriften von Takt zu Takt umgewechselt werden muß.
  • Der in 4 tabellarisch dargestellte Code gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung ist in 4b als Zustandsdiagramm dargestellt. Wesentlich bei der in 4a gezeigten Codiervorschrift ist wieder die Tatsache, daß zwei aufeinanderfolgenden Informationseinheiten mit demselben Zustand unterschiedliche Codewörter zugewiesen werden. Dies ist aus der zweiten und fünften Zeile von 4a ersichtlich. War der Zustand der letzten Informationseinheit beispielsweise eine 0, und ist der Zustand der aktuellen Informationseinheit ebenfalls eine 0, liegen also zwei aufeinanderfolgende Informationseinheiten mit dem gleichen Zustand vor, so wird die „aktuelle" 0 mit dem Codewort 1, 0, 0 codiert, während, wie es beispielsweise aus der vierten Zeile von 4a ersichtlich ist, die „letzte" 0 mit dem Codewort 0, 0, 1 codiert wird. Analog hierzu verhält es sich, wenn zwei aufeinanderfolgende Einsen im Strom von Informationseinheiten vorliegen. War der Zustand der letzten Informationseinheit eine 1, und ist der Zustand der aktuellen Informationseinheit ebenfalls eine 1, so wird der aktuellen Informationseinheit das Codewort 1, 0, 0 zugewiesen, während der „letzten" 1, wie es aus der dritten Zeile von 4a ersichtlich ist, das Codewort 0, 1, 0 zugewiesen wird, das sich von dem Codewort 1, 0, 0 für die „aktuelle" 1 unterscheidet.
  • Der in 4a gezeigte Code hat ebenfalls die bevorzugte Eigenschaft, daß jedes Codewort dieselbe Anzahl von Einsen hat, so daß von einem Wechsel von einem beliebigen Codewort zu einem anderen beliebigen Codewort immer gleich viel Codeworteinheiten ihren Zustand ändern, nämlich bei dem in 4a gezeigten Ausführungsbeispiel zwei Bits der drei Codeworteinheitenbits. Der in 4a gezeigte Code ist ein Beispiel für einen 1-aus-n-Code, wobei bei dem in 4a gezeigten Bei spiel n gleich 3 ist. Für n können auch beliebige höhere Werte genommen werden, wobei jedoch der Code für n gleich 3 den geringsten Schaltungsmehraufwand bedeutet, da, wie es in 1 ersichtlich ist, für diesen Code eine Informationsleitung (Leitung 12) in drei Codeworteinheitenleitungen (Leitungen 14a, 14b, 14c) „expandiert" werden muß.
  • 4b zeigt ein Zustandsdiagramm des Codes. Die Pfeile in 4b zeigen an, daß von jedem der drei Codewörter in jedes andere der drei Codewörter übergegangen werden kann, und zwar in Pfeilrichtung, also in beide Drehrichtungen.
  • Um den in 4a und 4b gezeigten Code auch in den Fällen DPA/SPA-sicher zu machen, bei denen mehr als zwei Informationseinheiten aufeinander folgen, die den gleichen logischen Zustand darstellen, wird es bevorzugt, nach einem „Halten"-Codewort 1, 0, 0 das dritte Bit der drei gleichen Bits wieder mit dem ihm zugeordneten Bit für „0" oder „1" zu codieren. Ein Ausschnitt aus dem Strom von Informationseinheiten, der dreimal hintereinander den logischen Zustand „0" aufweist, würde daher durch eine Sequenz von Codewörtern codiert werden, die zunächst das Codewort 0, 0, 1 für die erste 0, das Codewort 1, 0, 0 für das „Halten" von 0 und dann wieder das Codewort 0, 0, 1 für die dritte 0 aufweist.
  • Der erfindungsgemäße Code von 4a und 4b und darüber hinaus auch der erfindungsgemäße Code von 5a und 5b, auf den nachfolgend eingegangen wird, liefern ein datenunabhängiges Stromprofil, in dem die Art und Anzahl der Schaltvorgänge innerhalb der Schaltung nicht von der Sequenz der zu verarbeitenden Datenbits abhängig ist. Bei dem in 4a und 4b gezeigten Code wird eine 1-aus-n-Codierung gewählt, wobei bei dem in 4a und 4b gezeigten Code die drei Bits die Zustände „0", „1" und „Halten" codieren.
  • Es wird bevorzugt, daß nach dem Zustand „Halten" immer entweder ein Codewort für eine „1" oder eine „0" folgt. Daraus wird deutlich, daß unabhängig von der Sequenz der logischen Pegel immer zwei der drei Signale ihren Pegel ändern. Damit ist das Stromprofil bei symmetrischen Leitungen immer gleich.
  • 5a zeigt einen weiteren erfindungsgemäßen Code, wobei 5b das entsprechende Zustandsdiagramm darstellt. Bei dem in 5a und 5b gezeigten Code ist nicht mehr die Einschränkung dahingehend erforderlich, daß der Fall berücksichtigt werden muß, bei dem mehr als zwei aufeinanderfolgende gleiche Informationseinheiten vorhanden sind. Aus den 5a und 5b ist ersichtlich, daß jedes der drei Codewörter jede Informationseinheit darstellen kann, und zwar abhängig von dem Zustand des letzten Codeworts. Graphisch ausgedrückt bedeutet dies, daß man sich in dem in 5b gezeigten Zustandsdiagramm in dem Fall, in dem die Informationseinheit eine 0 ist, in rechter Drehrichtung bewegt, während man sich in dem Fall, in dem die aktuell zu verarbeitende Informationseinheit den Zustand „1" hat, in linker Drehrichtung bewegt.
  • War das letzte Codewort beispielsweise das Codewort „0, 1, 0", und ist eine Informationseinheit mit einem logischen 0-Zustand zu codieren, so wird von 0 1 0 nach rechts gedreht, so daß man beim Codewort „0, 0, 1" ankommt. War die zu verarbeitende Informationseinheit dagegen eine Informationseinheit, die einen logischen 1-Zustand hat, so muß von dem Codewort „0, 1, 0" ausgehend eine Drehung nach links vollzogen werden, um beim Codewort „1, 0, 0" anzugelangen. Nachdem jede zu verarbeitende Informationseinheit entweder eine Drehung nach rechts oder nach links bedeutet, findet von jedem Takt zum nächsten ein Codewort-Wechsel statt. Aus der Betrachtung von 5a ist ferner ersichtlich, daß sich von jedem Codewort zum nächsten immer zwei Codewort-Einheiten verändern, so daß auf die bevorzugte Eigenschaft des erfindungsgemäßen Codeworts in den 5a und 5b erfüllt ist.
  • Auch der in 5a und 5b gezeigte Code hat eine implizite DFA-Sicherheit, da per Definition die Codewörter auftreten können, die zwei oder drei Einsen haben. Jedes Codewort mit zwei oder drei Einsen stellt daher einen verbotenen Zustand dar. Dasselbe gilt auch für den Code der 4a und 4b. Es sei darauf hingewiesen, daß die DFA-Untersuchung bei dem Code der 4a und 5a nicht durch Vergleichen von zwei aufeinanderfolgenden Codewörtern durchzuführen ist, sondern unmittelbar anhand der Codewörter selbst erfolgen kann. Dies liegt an der größeren Redundanz des Codes der 4a und 5a im Vergleich zum Code von 3.
  • Im nachfolgenden wird anhand von 6 auf eine mögliche Implementierung eines erfindungsgemäßen Decodierers für den in den 4a und 4b gezeigten Code eingegangen. Der Decodierer umfaßt drei Eingangsleitungen 22a, 22b, 22c, wobei die Eingangsleitung 22a als „0"-Leitung bezeichnet wird, wobei die Eingangsleitung 22b als „1"-Leitung bezeichnet wird, und wobei die Eingangsleitung 22c als „Halten"-Leitung bezeichnet wird. Die Einrichtung zum Zuweisen ist als einfacher Speicher und vorzugsweise als Latch 60 ausgeführt, wobei der Latch 60 ausgangsseitig eine decodierte Informationseinheit an seinem Ausgang 24 liefert. Bei der Betrachtung des Codes von 4a wird ersichtlich, daß im Falle einer 0, die auf eine 1 folgt, die 0-Leitung 22a einen logischen Zustand von 1 aufweist, während die beiden anderen Leitungen einen logischen Zustand von 0 aufweisen. Ferner weist die Leitung 22b in dem Fall, in dem eine 1 auf eine 0 folgt, einen logischen Zustand von 1 auf, während die beiden anderen Leitungen einen logischen Zustand von 0 aufweisen. Die Halten-Leitung 22c ist nur dann logisch hoch, wenn entweder zwei Nullen oder zwei Einsen aufeinander folgen. Daraus ist ersichtlich, daß für die eigentliche Rückgewinnung der Informationen nur eine der beiden Leitungen 22a, 22b benötigt wird, wobei hier beliebig die Leitung 22b als für die Informationsrückgewinnung benötigt eingezeichnet ist, während die Leitung 22a ignoriert werden kann. Es sei darauf hingewiesen, daß die Leitung 22a bei dem in den 4a und 4b gezeigten Code selbstverständlich vorhanden sein muß. Sie könnte im Decodierer einfach reflexionsfrei abgeschlossen werden. Ist die Halten-Leitung 22c niedrig, d. h. hat sie einen logischen Zustand 0, so wird der Latch 60 transparent geschaltet, derart, daß der Zustand auf der Leitung 22b einfach zum Ausgang durchgeschaltet wird. Ist die Halten-Leitung 22c dagegen in einem logischen 1-Zustand, so wird der Latch 60 auf Speichern geschaltet, derart, daß der letzte Zustand der Leitung 22b auch der aktuelle Zustand für die Leitung 24 sein wird.
  • 7 zeigt einen Codierer zum Implementieren des in den 5a und 5b gezeigten Codes. Die Eingangsleitung in ist in 7 wieder mit 12 bezeichnet. Die Ausgangsleitungen sind mit 14a, 14b und 14c bezeichnet bzw. mit b2, b1, b0 für die Bits 2, 1 und 0 der Codewörter, wobei diese Bits b2, b1, b0 die Codeworteinheiten der Codewörter sind. Der Codierer umfaßt als Einrichtung zum Zuweisen 16 drei Logikeinheiten 16a, 16b und 16c, die die logischen Gleichungen A, B bzw. C erfüllen, sowie eine Speichereinrichtung, die vorzugsweise in Form eines dreifachen D-Flip-Flops 16d ausgeführt ist. Die Bits b0, b1, b2 stellen in 7 den Zustand des letzten Codeworts dar, während über den Eingang 12 die aktuell zu verarbeitende Informationseinheit eingebracht wird, und wobei am Ausgang der Logikeinrichtungen 16a, 16b, 16c das aktuelle Codewort, das der aktuellen Informationseinheit zugewiesen wird, anliegt. Obgleich in 7 nicht gezeigt, werden sämtliche Einrichtungen durch einen Arbeitstakt gespeist, mit dem einerseits die Informationseinheiten zugeführt werden, und mit dem andererseits die Codewörter weggeführt werden.
  • In 7 sind ferner die logischen Gleichungen dargestellt, die die Einrichtungen 16a, 16b, 16c implementieren, um das aktuelle Codewort für die aktuelle Informationseinheit zu berechnen. Aus den logischen Gleichungen wird ersichtlich, daß jede Logikeinheit mit zwei UND-Gattern und einem ODER-Gatter sowie einem Invertierer implementiert werden kann. Für Fach leute ist es jedoch klar, daß die logischen Gleichungen durch eine große Vielzahl von Schaltungen mit verschiedenen Gattern implementiert werden können, die alle die in 7 gezeigten logischen Gleichungen erfüllen.
  • 8 zeigt einen Decodierer zum Decodieren von Codewörtern, die gemäß der Codier/Decodiervorschrift der 5a und 5b erzeugt worden sind. Insbesondere umfaßt die Einrichtung 26 zum Zuweisen von 2 eine Logikeinrichtung 26a zum Implementieren der in 8 mit Z bezeichneten logischen Gleichung sowie eine Speichereinrichtung 26b in Form eines dreifachen D-Flip-Flops als bevorzugte Ausführungsform. Die Bits q2, q1 und q0 stellen das aktuelle Codewort dar, während die Bits b2, b1, b0 das letzte Codewort darstellen. Am Ausgang 24 kann ferner ein weiteres D-Flip-Flop 28 vorgesehen sein, um das Ergebnis Z, das durch die Einrichtung 26a ausgegeben wird, zu speichern, damit dasselbe dann beim nächsten Arbeitstakt am Ausgang „out" ausgegeben werden kann. Aus 8 wird ersichtlich, daß die Logikgleichung der Logikeinrichtung 26a durch drei UND-Gatter, zwei Invertierer und zwei ODER-Gatter implementiert werden kann. Auch hier existieren jedoch viele weitere verschiedene Möglichkeiten, um die in 8 gezeigte Logikgleichung tatsächlich zu implementieren.
  • 9 zeigt ein erfindungsgemäßes Informationsverarbeitungssystem, das insbesondere für kryptographische Anwendungen geeignet ist, und das beispielsweise in einem Sicherheitsmodul in Form einer SmartCard, einer Trusted Platform etc. implementiert sein kann. Das Informationsverarbeitungssystem umfaßt eine Quelle 90 für Informationen, einen erfindungsgemäßen Codierer 92, eine Übertragungseinrichtung 94, einen Decodierer 96 sowie schließlich eine Senke 98 für Informationseinheiten. Die Übertragungseinrichtung 94 umfaßt Übertragungsleitungen 94a und Treiberschaltungen 94b zum Treiben der Übertragungsleitungen, wobei die Treiberschaltungen über eine gemeinsame Leistungsversorgung 100 verfügen. Aufgrund der durch den Codierer 92 eingeführten erfindungsgemäßen Codie rung ist das Stromprofil der Treiberschaltungen über der Zeit homogen, unabhängig davon, welche Sequenz von Informationseinheiten von der Quelle 90 für Informationseinheiten zu der Senke 98 für Informationseinheiten zu übertragen sind. Sowohl die Quelle als auch die Senke für Informationseinheiten kann ein Speicher sein, wenn ein Rechenwerk, das irgendwo zwischen dem Codierer 92 und dem Decodierer 96 angeordnet ist, mit den codierten Daten direkt arbeiten kann, wie es anhand von 3 ausgeführt worden ist. Ist dagegen in dem Informationsverarbeitungssystem ein Rechenwerk vorgesehen, das decodierte Informationseinheiten zum Rechnen benötigt, so könnte die Senke für Informationseinheiten das Rechenwerk sein, wobei die Daten dann lediglich für die Übertragung vom Speicher zum Rechenwerk codiert und wieder decodiert werden.
  • Das in 9 gezeigte Informationsverarbeitungssystem zeigt aufgrund der Codier/Decodiervorschrift, die durch das erfindungsgemäße Codier/Decodierverfahren implementiert wird, eine erhöhte Sicherheit gegenüber Leistungsanalyseattacken und, wie es ausgeführt worden ist, zudem die Möglichkeit einer Abwehr von DFA-Attacken, ohne daß die Verarbeitungsgeschwindigkeit deutlich reduziert werden muß.
  • 10
    Codierer
    12
    Eingang
    14
    Ausgang
    14a
    erste Ausgangsleitung
    14b
    zweite Ausgangsleitung
    14c
    dritte Ausgangsleitung
    16
    Einrichtung zum Zuweisen eines Codeworts
    16a
    erste Logikeinrichtung
    16b
    zweite Logikeinrichtung
    16c
    dritte Logikeinrichtung
    16d
    3-fach D-Flip-Flop
    20
    Decodierer
    22
    Eingang
    22a
    erste Ausgangsleitung
    22b
    zweite Ausgangsleitung
    22c
    dritte Ausgangsleitung
    24
    Ausgang
    26
    Einrichtung zum Zuweisen einer Informationseinheit
    26a
    Logikeinrichtung
    26b
    3-fach D-Flip-Flop
    60
    schaltbarer Latch
    90
    Quelle
    92
    Codierer
    94
    Übertragungseinrichtung
    94a
    Übertragungsleitungen
    94b
    Treiber
    96
    Decodierer
    98
    Senke
    100
    gemeinsame Leistungsversorgung für die Treiber

Claims (27)

  1. Vorrichtung (10) zum Codieren eines Stroms von Informationseinheiten, wobei die Informationseinheiten unterschiedliche logische Zustände haben können, und wobei in dem Strom von Informationseinheiten zwei aufeinanderfolgende Informationseinheiten vorhanden sind, die den gleichen logischen Zustand haben, mit folgenden Merkmalen: einer Einrichtung (16) zum Zuweisen eines Codeworts zu einer Informationseinheit gemäß einer Codiervorschrift, wobei ein erstes Codewort zu einer der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist, und wobei ein zweites Codewort zu einer anderen der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist, wobei das erste und das zweite Codewort gemäß der Codiervorschrift definiert sind, wobei das erste Codewort von dem zweiten Codewort unterschiedlich ist, und wobei das erste und das zweite Codewort aus Codeworteinheiten bestehen, wobei die Einrichtung (16) zum Zuweisen einen Eingang (12) aufweist, durch den der Strom von Informationseinheiten zuführbar ist, und wobei die Einrichtung (16) zum Zuweisen eine Anzahl von Ausgangsleitungen (14a, 14b; 14c) aufweist, wobei die Anzahl von Ausgangsleitungen gleich der Anzahl von Codeworteinheiten ist, und wobei die Einrichtung zum Zuweisen ausgebildet ist, um Codeworteinheiten parallel über die Anzahl von Ausgangsleitungen zu übertragen, wobei für jede Ausgangsleitung der Anzahl von Ausgangsleitungen eine eigene Treibereinrichtung (94b) vorhanden ist, wobei die Treibereinrichtungen (94b) für die Anzahl von Ausgangsleitungen einen gemeinsamen Versorgungsanschluß (100) haben, und wobei die Treibereinrichtungen (94b) in einer Schaltungstechnik ausgeführt sind, bei der eine Stromaufnahme zum Wechseln zwischen zwei Zuständen höher ist als eine Stromaufnahme, wenn auf einen Zustand der gleiche Zustand folgt.
  2. Vorrichtung nach Anspruch 1, bei der die Einrichtung (16) zum Zuweisen ferner ausgebildet ist, um in dem Fall, in dem zwei in dem Strom von Informationseinheiten aufeinanderfolgende Informationseinheiten unterschiedliche Zustände haben, einer der Informationseinheiten mit einem ersten Zustand ein drittes Codewort zuzuweisen, und dem anderen der Informationseinheiten, die einen zweiten Zustand hat, ein viertes Codewort zuzuweisen, wobei jedes der vier Codewörter aus einer Anzahl von Codeworteinheiten besteht, wobei die Anzahl von Codeworteinheiten in den vier Codewörtern gleich sind, und wobei die vier Codewörter alle zueinander unterschiedlich sind.
  3. Vorrichtung nach Anspruch 2, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um die vier Codewörter so zu bestimmen, daß eine Anzahl von Zustandsänderungen von Codeworteinheiten von einem beliebigen Codewort der vier Codewörter zu einem anderen beliebigen Codewort der vier Codewörter gleich ist.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Informationseinheiten binäre Informationseinheiten sind, deren Zustände ein logischer 1-Zustand oder ein logischer 0-Zustand sind, bei der die Codewörter binäre Codewörter sind, bei der die Codewörter aus Codeworteinheiten bestehen, wobei jede Codeworteinheit einen logischen „1"-Zustand oder einen logischen „0"-Zustand hat, und wobei jedes Codewort mindestens zwei Codeworteinheiten hat.
  5. Vorrichtung nach Anspruch 4, bei der die Informationseinheiten der Einrichtung zum Zuweisen (16) durch einen Takt zuführbar sind, der Taktzyklen hat, bei der die Einrichtung zum Zuweisen (16) ausgebildet ist, um einer Informationseinheit, die durch einen ersten Taktzyklus zuführbar ist, ein Codewort 0, 0 für einen ersten logischen Zustand der Informationseinheit und ein Codewort 1, 1 für einen zweiten logischen Zustand der Informationseinheit zuzuweisen, und um einer Informationseinheit, die durch einen zweiten Taktzyklus zuführbar ist, der auf den ersten Taktzyklus folgt, ein Codewort 0, 1 für den ersten logischen Zustand, und ein Codewort 1, 0 für den zweiten logischen Zustand zuzuweisen.
  6. Vorrichtung nach Anspruch 4, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um für einen weiteren Zyklus Codewörter zuzuweisen, die invertiert sind.
  7. Vorrichtung nach Anspruch 6, bei der der weitere Taktzyklus gemäß einer Zufallszahl ausgewählt ist.
  8. Vorrichtung nach Anspruch 5, 6 oder 7, bei der der erste Taktzyklus eine gerade Taktzahl hat, während der zweite Taktzyklus eine ungerade Taktzahl hat.
  9. Vorrichtung nach Anspruch 4, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um ein drittes Codewort einer Informationseinheit zuzuweisen, wobei jedes Codewort zumindest drei Codeworteinheiten aufweist, wobei in jedem Codewort eine Codeworteinheit einen anderen Zustand als die zumindest zwei anderen Codeworteinheiten des Codeworts hat, und wobei die Codeworteinheit, die einen anderen Zustand hat, in jedem Codewort eine andere Wertigkeit hat.
  10. Vorrichtung nach Anspruch 9, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um drei Codewörter zuzuweisen, die folgendermaßen definiert sind: erstes Codewort: 1, 0, 0 zweites Codewort: 0, 0, 1 drittes Codewort: 0, 1, 0 wobei „0" einen ersten logischen Zustand einer Codeworteinheit darstellt, und wobei „1" einen zweiten logischen Zustand der Codeworteinheit darstellt.
  11. Vorrichtung nach Anspruch 10, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um einer Informationseinheit, die einen Zustand hat, der einer logischen „0" entspricht, das zweite Codewort zuzuweisen, einer Informationseinheit, die einen Zustand hat, der einer logischen „1" entspricht, das dritte Codewort zuzuweisen, und im Falle von zwei aufeinanderfolgenden Codeworten, die den gleichen Zustand haben, dem zweiten der aufeinanderfolgenden Codewörter das erste Codewort zuzuweisen.
  12. Vorrichtung nach Anspruch 11, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um in dem Fall, in dem auf die zwei aufeinanderfolgenden gleichen Informationseinheiten eine Informationseinheit folgt, die denselben logischen Zustand hat, der dritten Informationseinheit je nach Zustand der Informationseinheit das zweite oder das dritte Codewort zuzuweisen.
  13. Vorrichtung nach Anspruch 10, bei der die Einrichtung (16) zum Zuweisen ausgebildet ist, um in dem Fall, in dem ein zuletzt zugewiesenes Codewort das erste Codewort war, einer zu verarbeitenden Informationseinheit, die einen ersten logischen Zustand hat, das dritte Codewort zuzuweisen, oder einer zu verarbeitenden Informationseinheit, die einen zweiten logischen Zustand hat, das zweite Codewort zuzuweisen, oder um in dem Fall, in dem ein zuletzt zugewiesenes Codewort das zweite Codewort war, einer zu verarbeitenden Informationseinheit, die einen ersten logischen Zustand hat, das erste Codewort zuzuweisen, oder einer zu verarbeitenden Informationseinheit, die einen zweiten logischen Zustand hat, das zweite Codewort zuzuweisen, oder um in dem Fall, in dem ein zuletzt zugewiesenes Codewort das dritte Codewort war, einer zu verarbeitenden Informationseinheit, die einen ersten logischen Zustand hat, das zweite Codewort zuzuweisen, oder einer zu verarbeitenden Informationseinheit, die einen zweiten logischen Zustand hat, das erste Codewort zuzuweisen.
  14. Vorrichtung nach Anspruch 13, bei der die Einrichtung zum Zuweisen folgende Merkmale aufweist: einen Speicher (16d) zum Speichern des zuletzt zugewiesenen Codeworts; eine erste Logikeinrichtung (16c) zum Ermitteln einer ersten Codeworteinheit (C), die ausgebildet ist, um folgende Gleichung zu erfüllen: C = in × b2 + in × b1;einer zweiten Logikeinrichtung (16b) zum Ermitteln einer zweiten Codeworteinheit (B), die ausgebildet ist, um folgende Gleichung zu erfüllen: B = in × B0 + in × b2;eine dritte Logikeinrichtung (16a) zum Ermitteln einer dritten Codeworteinheit (A), die ausgebildet ist, um folgende Gleichung zu erfüllen: A = in × B1 + in × b0,wobei „in" eine zu verarbeitende Informationseinheit ist, wobei A, B, C Codeworteinheiten des aktuell zugewiesenen Codeworts sind, wobei b0, b1, b2 Codeworteinheiten des zuletzt zugewiesenen Codeworts sind.
  15. Verfahren (10) zum Codieren eines Stroms von Informationseinheiten, wobei die Informationseinheiten unterschiedliche logische Zustände haben können, und wobei in dem Strom von Informationseinheiten zwei aufeinanderfolgende Informati onseinheiten vorhanden sind, die den gleichen logischen Zustand haben, mit folgenden Schritten: Zuweisen (16) eines Codeworts zu einer Informationseinheit gemäß einer Codiervorschrift, wobei ein erstes Codewort zu einer der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist, und wobei ein zweites Codewort zu einer anderen der zwei aufeinanderfolgenden Informationseinheiten zuweisbar ist, wobei das erste und das zweite Codewort gemäß der Codiervorschrift definiert sind, wobei das erste Codewort von dem zweiten Codewort unterschiedlich ist, und wobei das erste und das zweite Codewort aus Codeworteinheiten bestehen, und wobei der Schritt des Zuweisen folgende Schritte aufweist: Zuführen des Stroms von Informationseinheiten, und paralleles Übertragen der Codeworteinheiten über eine Anzahl von Ausgangsleitungen (14a, 14b; 14c), wobei die Anzahl von Ausgangsleitungen gleich der Anzahl von Codeworteinheiten ist, wobei für jede Ausgangsleitung der Anzahl von Ausgangsleitungen eine eigene Treibereinrichtung (94b) vorhanden ist, wobei die Treibereinrichtungen (94b) für die Anzahl von Ausgangsleitungen einen gemeinsamen Versorgungsanschluß (100) haben, und wobei die Treibereinrichtungen (94b) in einer Schaltungstechnik ausgeführt sind, bei der eine Stromaufnahme zum Wechseln zwischen zwei Zuständen höher ist als eine Stromaufnahme, wenn auf einen Zustand der gleiche Zustand folgt.
  16. Informationsverarbeitungssystem mit folgenden Merkmalen: einer Quelle (90) für einen Strom von Informationseinheiten; einer Senke (98) für den Strom von Informationseinheiten; einer Übertragungseinrichtung (94) zum Übertragen des Stroms von Informationseinheiten von der Quelle (90) zu der Senke (98); einer Vorrichtung (92) zum Codieren des Stroms von Informationseinheiten gemäß einem der Patentansprüche 1 bis 14, wobei die Vorrichtung zum Codieren (92) zwischen der Quelle (90) und der Übertragungseinrichtung (94) angeordnet ist; und einer Vorrichtung (96) zum Decodieren eines codierten Stroms von Informationseinheiten, die zwischen der Übertragungseinrichtung (94) und der Senke (98) angeordnet ist.
  17. Informationsverarbeitungssystem nach Anspruch 16, bei dem die Quelle (90) und die Senke (98) einen Speicher umfassen.
  18. Informationsverarbeitungssystem nach Anspruch 16, bei dem die Quelle (90) einen Speicher umfaßt, und bei dem die Senke (98) ein Rechenwerk umfaßt, oder bei dem die Quelle (90) ein Rechenwerk umfaßt und die Senke (98) einen Speicher umfaßt.
  19. Informationsverarbeitungssystem nach einem der Ansprüche 16 bis 18, das zur Verarbeitung von Informationen ausgebildet ist, die vor einem Zugriff zu schützen sind.
  20. Verfahren zum Verarbeiten von Informationen, mit folgenden Schritten: Liefern (90) eines Stroms von Informationseinheiten; Codieren (92) des Stroms von Informationseinheiten gemäß einem Codierverfahren nach Patentanspruch 15, um einen Strom von Codewörtern zu erzeugen; Übertragen (94) des Stroms von Codewörtern; Decodieren (96) des Stroms von Codewörtern, um wieder den Strom von Informationseinheiten zu erhalten; und Verarbeiten des durch das Decodieren erzeugten Stroms von Informationseinheiten.
  21. Vorrichtung (20) zum Decodieren eines Stroms von Codewörtern, der einen Strom von Informationseinheiten darstellt, wobei der Strom von Codewörtern gemäß einer Codiervorschrift codiert worden ist, derart, daß zwei Codewörter, die zwei aufeinanderfolgende Informationseinheiten darstellen, die einen gleichen logischen Zustand haben, unterschiedlich sind, und wobei die Codewörter aus Codeworteinheiten bestehen, mit folgenden Merkmalen: einer Einrichtung (26) zum Zuweisen einer Informationseinheit zu einem Codewort gemäß einer mit der Codiervorschrift korrespondierenden Decodiervorschrift, wobei die Decodiervorschrift so geartet ist, daß zumindest zwei Codewörter existieren, denen dieselbe Informationseinheit zuzuweisen ist, wobei die Einrichtung (26) zum Zuweisen eine Anzahl von Eingangsleitungen (22a, 22b; 22c) aufweist, wobei die Anzahl von Eingangsleitungen gleich der Anzahl von Codeworteinheiten ist, und wobei die Einrichtung zum Zuweisen ausgebildet ist, um die Codeworteinheiten parallel über die Anzahl von Eingangsleitungen zu erhalten, wobei für jede Eingangsleitung der Anzahl von Eingangsleitungen eine eigene Treibereinrichtung (94b) vorhanden ist, wobei die Treibereinrichtungen (94b) für die Anzahl von Eingangsleitungen einen gemeinsamen Versorgungsanschluß (100) haben, und wobei die Treibereinrichtungen (94b) in einer Schaltungstechnik ausgeführt sind, bei der eine Stromaufnahme zum Wechseln zwischen zwei Zuständen höher ist als eine Stromaufnahme, wenn auf einen Zustand der gleiche Zustand folgt, und wobei die Einrichtung (16) zum Zuweisen einen Ausgang (24) aufweist, durch den der Strom von Informationseinheiten ausgebbar ist.
  22. Vorrichtung nach Anspruch 21, bei der die Codiervorschrift ausgebildet ist, um einer Informationseinheit, die durch einen ersten Taktzyklus beim Codieren zuführbar ist, ein Codewort 0, 0 für einen ersten logischen Zustand der Informationseinheit und ein Codewort 1, 1 für einen zweiten logischen Zustand der Informationseinheit zuzuweisen, und um einer Informationseinheit, die durch einen zweiten Taktzyklus zuführbar ist, der auf den ersten Taktzyklus folgt, ein Codewort 0, 1 für den ersten logischen Zustand, und ein Codewort 1, 0 für den zweiten logischen Zustand zuzuweisen, und bei der die Einrichtung (26) zum Zuweisen einer Informationseinheit zu einem Codewort ausgebildet ist, um den Codewort 0, 0 und dem Codewort 0, 1 eine Informationseinheit mit dem ersten logischen Zustand zuzuweisen, und um dem Codewort 1, 1 und dem Codewort 1, 0 eine Informationseinheit mit dem zweiten logischen Zustand zuzuweisen.
  23. Vorrichtung nach Anspruch 21 bei der die Codiervorschrift ausgebildet ist, um drei Codewörter zu umfassen, die folgendermaßen definiert sind: erstes Codewort: 1, 0, 0 zweites Codewort: 0, 0, 1 drittes Codewort: 0, 1, 0 wobei „0" einen ersten logischen Zustand einer Codeworteinheit darstellt, und wobei „1" einen zweiten logischen Zustand der Codeworteinheit darstellt, und bei der die Codiervorschrift ausgebildet ist, um einer Informationseinheit, die einen Zustand hat, der einer logischen „0" entspricht, das zweite Codewort zuzuweisen, einer Informationseinheit, die einen Zustand hat, der einer logischen „1" entspricht, das dritte Codewort zuzuweisen, und im Falle von zwei aufeinanderfolgenden Codeworten, die den gleichen Zustand haben, dem zweiten der aufeinanderfolgenden Codewörter das erste Codewort zuzuweisen, bei der die Einrichtung (26) zum Zuweisen einer Informationseinheit zu einem Codewort ausgebildet ist, um dem zweiten Codewort eine Informationseinheit mit dem logischen Zustand „0" zuzuweisen, um dem dritten Codewort eine Informationseinheit mit dem logischen Zustand „1" zuzuweisen, und um dem ersten Codewort eine Informationseinheit zuzuweisen, die denselben logischen Zustand hat wie eine frühere zugewiesene Informationseinheit.
  24. Vorrichtung nach Anspruch 23, bei der die Einrichtung (26) zum Zuweisen folgende Merkmale aufweist: eine erste Eingangsleitung (22a); eine zweite Eingangsleitung (22b); eine dritte Eingangsleitung (22c), wobei auf den drei Leitungen die Codewörter mit einer ersten, zweiten und dritten Codeworteinheit übertragbar sind; und einem Ausgang (24) zum Ausgeben der zugewiesenen Informationseinheit; einer schaltbaren Speichereinrichtung (16), die mit der ersten oder der zweiten Leitung verbunden ist und einen Steuereingang aufweist, wobei die dritte Leitung (22c) mit dem Steuereingang verbunden ist, und wobei ein logischer 1-Zustand auf der dritten Leitung die schaltbare Speichereinrichtung auf Durchgang schaltet, und wobei ein zweiter logischer Zustand auf der dritten Leitung die Speichereinrichtung (60) auf Zwischenspeichern schaltet.
  25. Vorrichtung nach Anspruch 24, bei der die Einrichtung (26) zum Zuweisen folgende Merkmale aufweist: eine Einrichtung (26b) zum Speichern eines zuletzt zugewiesenen Codeworts; eine Einrichtung zum Kombinieren (26a) eines aktuellen zu verarbeitenden Codeworts mit dem gespeicherten zuletzt zugewiesenen Codewort gemäß der Codiervorschrift, um eine dem aktuellen Codewort zuzuweisende Informationseinheit zu erzeugen.
  26. Vorrichtung nach Anspruch 25, bei der die Einrichtung (26a) zum Kombinieren ausgebildet ist, um folgende Vorschrift zu erfüllen: Z = b2 × q1 + b2 × q0 + b1 × q0,wobei q0 und q1 Codeworteinheiten eines aktuell zu verarbeitenden Codeworts sind, und wobei b0, b1, b2 Codeworteinheiten eines zuletzt zugewiesenen Codeworts sind.
  27. Verfahren (20) zum Decodieren eines Stroms von Codewörtern, der einen Strom von Informationseinheiten darstellt, wobei der Strom von Codewörtern gemäß einer Codiervorschrift codiert worden ist, derart, daß zwei Codewörter, die zwei aufeinanderfolgende Informationseinheiten darstellen, die einen gleichen logischen Zustand haben, unterschiedlich sind, und wobei die Codewörter aus Codeworteinheiten bestehen, mit folgenden Schritten: paralleles Zuführen der Codewörter über eine Anzahl von Eingangsleitungen (22a, 22b; 22c), wobei die Anzahl von Eingangsleitungen gleich der Anzahl von Codeworteinheiten ist; Zuweisen (26) einer Informationseinheit zu einem parallel zugeführten Codewort gemäß einer mit der Codiervorschrift korrespondierenden Decodiervorschrift, wobei die Decodiervorschrift so geartet ist, daß zumindest zwei Codewörter existieren, denen dieselbe Informationseinheit zuzuweisen ist, wobei für jede Eingangsleitung der Anzahl von Eingangsleitungen eine eigene Treibereinrichtung (94b) vorhanden ist, wobei die Treibereinrichtungen (94b) für die Anzahl von Eingangsleitungen einen gemeinsamen Versorgungsanschluß (100) haben, und wobei die Treibereinrichtungen (94b) in einer Schaltungstechnik ausgeführt sind, bei der eine Stromaufnahme zum Wechseln zwischen zwei Zuständen höher ist als eine Stromaufnahme, wenn auf einen Zustand der gleiche Zustand folgt, und Ausgeben des Stroms von Informationseinheiten.
DE10207966A 2002-02-25 2002-02-25 Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern Expired - Fee Related DE10207966B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE10207966A DE10207966B4 (de) 2002-02-25 2002-02-25 Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern
AU2003247308A AU2003247308A1 (en) 2002-02-25 2003-01-23 Device and method for encoding a flow of information units or for decoding code words
PCT/EP2003/000690 WO2003071399A1 (de) 2002-02-25 2003-01-23 Vorrichtung und verfahren zum codieren eines stroms von informationseinheiten bzw. zum decodieren von codewörtern
TW092102938A TW200303679A (en) 2002-02-25 2003-02-12 Apparatus and method for encoding a stream of information units and for decoding code words, respectively

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10207966A DE10207966B4 (de) 2002-02-25 2002-02-25 Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern

Publications (2)

Publication Number Publication Date
DE10207966A1 DE10207966A1 (de) 2003-09-18
DE10207966B4 true DE10207966B4 (de) 2008-08-28

Family

ID=27740388

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10207966A Expired - Fee Related DE10207966B4 (de) 2002-02-25 2002-02-25 Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern

Country Status (4)

Country Link
AU (1) AU2003247308A1 (de)
DE (1) DE10207966B4 (de)
TW (1) TW200303679A (de)
WO (1) WO2003071399A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839008A (zh) * 2014-03-21 2014-06-04 彭岸峰 一句话脚本后门和php变量函数后门免疫安全服务

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4283789A (en) * 1978-10-09 1981-08-11 International Business Machines Corp. Data transmission method and devices for practicing said method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4283789A (en) * 1978-10-09 1981-08-11 International Business Machines Corp. Data transmission method and devices for practicing said method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lynch,D.: The suitability of various line coding techniques for the simultaneous transmission of data with voice over copper telephone lines. Saskatoon, Saskatchewan, 1997, S.1-59 *

Also Published As

Publication number Publication date
WO2003071399A1 (de) 2003-08-28
AU2003247308A1 (en) 2003-09-09
DE10207966A1 (de) 2003-09-18
TW200303679A (en) 2003-09-01

Similar Documents

Publication Publication Date Title
DE102004062825B4 (de) Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
DE69722367T2 (de) Pseudozufallsgenerator mit Taktauswahl
WO2013004489A1 (de) Verfahren zum prüfen eines m aus n codes
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE10244738B3 (de) Vorrichtung und Verfahren zum Umsetzen und Addierer
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
DE10207966B4 (de) Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern
DE102005037357B3 (de) Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
EP1221220A2 (de) Verfahren und vorrichtung zur bidirektionalen kommunikation wenigstens zweier kommunikationsteilnehmer
DE10227618B4 (de) Logikschaltung
DE102005037355B3 (de) Schaltung und Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden
DE19757370C2 (de) Verfahren zur taktilen Erzeugung pseudo-zufälliger Datenworte
DE10214118B4 (de) Schaltungsanordnung mit einem Sender und einem Empfänger
DE3905667A1 (de) Verfahren zum ver- und entschluesseln eines nachrichtenstromes
DE10201450B4 (de) Carry-Skip-Addierer für verschlüsselte Daten
WO2015176087A1 (de) Verfahren und vorrichtung zur durchführung einer symmetrischen stromverschlüsselung von daten
DE102004037814A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
DE10320883B3 (de) Schaltungsanordnung zur Verarbeitung eines Dual-Rail-Signals und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE102004042756B3 (de) Verfahren und Anordnung zur Erzeugung von Pseudozufallszahlen
DE10213267A1 (de) Registerzelle und Verfahren zum Schreiben auf die Registerzelle
EP1556754A2 (de) Vorrichtung und verfahren zum erzeugen einer pseudozufälligen folge von zahlen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee