-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung beziehen sich auf Schaltungen, die in einer Vielzahl von
Funktionsweisen betrieben werden können, die beispielsweise unterschiedliche
Sicherheitsebenen oder unterschiedliche Widerstandsebenen bezüglich Angriffen
bieten.
-
Schaltungen
und integrierte Schaltungen werden heutzutage in vielen Technologiegebieten angewendet.
Die Vielfalt dieser Gebiete ist enorm, da Schaltungen und integrierte
Schaltungen nicht nur zum Erfassen von Einflüssen, Durchführen von
Messungen, Ausführen
von Berechnungen und andere Datenmanipulationen verwendet werden,
sondern auch Implementierungen äußerst komplexer
Algorithmen umfassen, die beispielsweise auf dem Gebiet verwendet
werden können,
was normalerweise als Informationstechnologie bezeichnet wird.
-
Schaltungen
und integrierte Schaltungen werden beispielsweise häufig auf
dem Gebiet von sicherheitsbezogenen Anwendungen verwendet, die Verschlüsselung,
digitales Unterschreiben und weiteres Verarbeiten von Informationen
umfassen können. Andere
sicherheitsbezogene Anwendungen umfassen Zugriffssteuersysteme,
Privilegien, Zugriffs- oder Rechteverwaltungssysteme und Systeme,
die andere Informationen, Besitztümer, Güter, Rechte oder Privilegien
vor Zugriff oder Übernahme
durch unbefugte Personen schützen.
Diese und andere Systeme werden manchmal als Sicherheitssysteme
bezeichnet.
-
Aufgrund
der Werte im Zusammenhang mit diesen Informationen, Privilegien,
Rechten, Zugriffsmöglichkeiten,
Gütern
oder anderen Werten erfahren Schaltungen und integrierte Schaltungen,
die auf dem Gebiet von sicherheitsbezogenen Anwendungen verwendet
werden, häufig
Angriffe, um unbefugten Zugriff auf diese Werten zu gewinnen, die
durch eine jeweilige Schaltung oder integrierte Schaltung gesichert
werden.
-
Folglich
besteht der Bedarf, die Sicherheit zu erhöhen oder Schaltungen und integrierten
Schaltungen zu stärken
hinsichtlich Angriffen, die ausgeführt werden können, um
Informationen oder andere privilegierte Daten zu erhalten, um Sicherheitssysteme zu überwinden,
die zum Schützen
von Werten verwendet werden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Schaltung, die
in einer ersten und einer zweiten Funktionsweise betrieben werden
kann, eine integrierte Schaltung, eine Vorrichtung, ein Verfahren sowie
ein Computerprogramm mit verbesserten Charakteristika zu schaffen.
-
Die
Aufgabe wird gelöst
durch die Merkmale der unabhängigen
Ansprüche.
Weiterbildungen finden sich in den abhängigen Ansprüchen.
-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung basieren auf der Erkenntnis, dass ein Sicherheitspegel
oder Widerstandspegel hinsichtlich von Angriffen auf eine Schaltung
erhöht
werden kann im Fall einer Schaltung, die in zumindest einer ersten Funktionsweise
und einer zweiten Funktionsweise betrieben werden kann, wobei die
Schaltung angepasst ist, um zu einer jeweiligen Funktionsweise zu schalten,
basierend auf einem Zustand, der an einer Speicherstelle gespeichert
ist, durch Schalten der Schaltung zu der ersten Funktionsweise,
wenn die Speicherstelle einen ersten Zustand erfasst, der der ersten
Funktionsweise entspricht, oder einen dritten Zustand, und durch
Schalten zu der zweiten Funktionsweise, wenn die Speicherstelle
einen zweiten Zustand erfasst, der der zweiten Funktionsweise entspricht.
Durch Schalten zu der ersten Funktionsweise, die beispielsweise
einen höheren
Sicherheitspegel oder einen höheren
Widerstandspegel hinsichtlich Angriffen auf die Schaltung bieten
kann, wenn die Speicherstel le den dritten Zustand erfasst, der normalerweise
nicht der ersten oder zweiten Funktionsweise entspricht, kann eine
Last für
einen Angreifer auf die Schaltung beispielsweise erhöht werden wenn
ein Ausführungsbeispiel
gemäß der vorliegenden
Erfindung verwendet wird.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm eines Ausführungsbeispiels
gemäß der vorliegenden
Erfindung; und
-
2 schematisch
das Schalten zu unterschiedlichen Funktionsweisen basierend auf
einer Speicherstelle, die vier Bits umfasst.
-
Nachfolgend
wird ein erstes Ausführungsbeispiel
gemäß der vorliegenden
Erfindung mit Bezugnahme auf 1 und 2 beschrieben.
-
Schaltungen,
integrierte Schaltungen und elektronische Bauelemente werden in
vielen Gebieten der Technologie angewendet, die beispielsweise von
Datenerfassung, Datenübertragung,
einfachen Berechnungen und Manipulationen bis zu Implementierungen
von hochkomplexen Datenverarbeitungsprozeduren reichen. Beispiele
komplexer Datenmanipulationsprozeduren finden sich beispielsweise
auf dem Gebiet der Kryptographie und Kryptoanalyse.
-
Da
sich die letzteren beiden Beispiele auf dem Gebiet des Schützens von
Daten und anderen Informationen vor unbefugtem Zugriff finden, betonen
diese Beispiele, dass Schaltungen, integrierte Schaltungen und andere
elektronische Bauelemente auf dem Gebiet von Sicherheitssystemen
verwendet werden, wie z. B. Sicherheitsverwaltungssystemen, Rechteverwaltungssystemen
und Privilegverwaltungssystemen, die Zugriff auf Daten, Informationen, begrenzte
Bereiche, Güter,
Privilegien oder jedes andere Objekt steuern, das einen bestimmten
Wert darstellt, so dass die jeweiligen Objekte durch eines der obigen
Systeme geschützt
werden. Beispiele finden sich beispielsweise auf dem Gebiet von
Zugriffssteuersystemen oder Zugriffsverwaltungssystemen, die einen
unbefugten Zugang zu einem begrenzten Bereich verhindern, wie z.
B. den Geschäftsräumen einer
Firma, einer Abteilung, einem Labor oder anderen Versuchseinrichtungen
oder anderen Bereiche mit begrenztem Zugang. Andere Beispiele finden sich
in Privilegs-, Zugriffs- oder
Rechteverwaltungssystemen, die Zugriff auf privilegierte Informationsdaten
steuern und begrenzen, wie z. B. vertrauliche E-Mails, vertrauliche
Dateien, vertrauliche Dokumente, Zugriff auf Bankkonten und andere
geheime Informationen.
-
Schaltungen
und integrierte Schaltungen, die diese Sicherheitssysteme umfassen,
basieren häufig
auf verteilten Schaltungen, die integrierte Schaltungen verwenden,
wie z. B. elektronische Token, Smartcards, Chipcards oder andere
elektronische Bauelemente auf der einen Seite und entsprechende
Komponenten (z. B. einen Kartenleser) auf der anderen Seite. Aufgrund
des Werts der Güter,
die durch diese Schaltungen und integrierte Schaltungen geschützt werden,
unterliegen dieselben Angriffen, die von einfachen Trial- und Error-Versuchen
zum Knacken eines Codes zu äußerst komplexen
Angriffen reichen, die eine detaillierte Analyse des Layouts der
integrierten Schaltung oder Schaltung die Manipulation der Umgebungsbedingungen
während
des Betriebs, und selbst physikalische Angriffe auf die Schaltung
oder integrierte Schaltung selbst umfassen, beispielsweise durch Ätzen oder
Entfernen bestimmter Teile der Schaltung, häufig begleitet durch direkte
physikalische Manipulation des Betriebs der Schaltung durch Anlegen
eines Lasers, von Spannungsabtastimpulsen oder anderen Störungen.
Andere Angriffsszenarien umfassen die Manipulation eines Programms,
das auf einem Prozessor läuft,
der in der Schaltung oder einer integrierten Schaltung ent halten
ist, oder einem Prozessor, von dem die Schaltung oder die integrierte
Schaltung ein Teil ist.
-
Folglich
besteht der Bedarf, die Sicherheit vieler Schaltungen und integrierter
Schaltungen zu stärken,
und Angriffe auf diese Schaltungen schwieriger zu machen durch Verwenden
von Sicherheitsgegenmaßnahmen
und Sicherheitsschemata.
-
In
vielen Fällen
umfasst eine Schaltung oder integrierte Schaltung eine Speicherstelle,
wie z. B. ein Register oder Steuerregister, an die Informationen
geschrieben werden können,
die eine Funktionsweise der Schaltung oder integrierten Schaltung
bestimmen. In solchen Schaltungen kann ein Angriff beispielsweise
an die Speicherstelle gerichtet sein, die die Funktionsweise der
Schaltung steuert, durch Ändern
oder Manipulieren des Zustands der Speicherstelle. Wie es vorher
skizziert wurde, kann dies erreicht werden durch Verwenden eines
Lasers zum direkten Ändern
oder Beeinflussen des Inhalts der Speicherstelle oder durch Verwenden
einer manipulierten Programmierung der Schaltung oder integrierten
Schaltung, um die Manipulation basierend auf Befehlen eines Programms
durchzuführen,
das durch die Schaltung selbst ausgeführt wird. Als Folge können Informationen über die
Prozesse der Schaltungen beispielsweise durch Angriffsstrategien durchsickern,
wie z. B. (elementare) Leistungsanalyse, differentielle Leistungsanalyse
oder Zeitanalyse von Berechnungen der Schaltung, was dazu führt, dass
verarbeitete oder rohe Daten direkt offenbart werden.
-
1 zeigt
ein Blockdiagramm einer Schaltung 100 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung, die eine Speicherstelle 110 umfasst.
Die Schaltung 100 kann in einer Mehrzahl von Funktionsweisen
betrieben werden, die zumindest eine erste und eine zweite Funktionsweise
umfassen, abhängig
von einem Zustand, der durch die Speicherstelle 110 erfasst
wird. Die Schaltung 100 ist konfiguriert, um zu der ersten
Funktionsweise zu schalten, wenn die Speicherstelle einen ersten
Zustand erfasst, der der ersten Funktionsweise entspricht. Darüber hinaus
ist die Schaltung 100 angepasst, um zu der zweiten Funktionsweise
zu schalten, wenn die Speicherstelle 110 einen zweiten
Zustand erfasst, der der zweiten Funktionsweise entspricht, der
sich von dem ersten Zustand unterscheidet.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist die Speicherstelle ferner in der
Lage, zumindest einen dritten Zustand zu erfassen, der nicht einer
Funktionsweise zugeordnet sein muss. Dies kann beispielsweise daran
liegen, dass die Speicherstelle in der Lage ist, mehr Zustände als notwendig
zu speichern oder zu erfassen, um jede der unterschiedlichen Funktionsweisen
der Schaltung 100 zu adressieren. Wenn die Speicherstelle 110 den
dritten Zustand erfasst, ist die Schaltung 100 angepasst,
um zu einer definierten oder vordefinierten Funktionsweise zu schalten,
beispielsweise der ersten Funktionsweise, die beispielsweise einen
höheren
Sicherheitspegel oder einen höheren
Widerstandspegel bezüglich
eines Angriffs bietet als die zweite Funktionsweise. Beispiele unterschiedlicher Funktionsweisen,
die unterschiedliche Sicherheitspegel oder unterschiedliche Widerstandspegel
bezüglich
Angriffen auf die Schaltung 100 bieten, werden im weiteren
Verlauf der Beschreibung näher
beschrieben. Darüber
hinaus kann die erste Funktionsweise beispielsweise eine Funktionsweise
sein, bei der zumindest Teile des Betriebs der Schaltung 100 angehalten
werden, so dass keine Datenverarbeitung oder nur eine begrenzte
Datenverarbeitung durch die Schaltung 100 ausgeführt wird.
-
Bei
Ausführungsbeispielen
gemäß der vorliegenden
Erfindung kann die Speicherstelle 110 beispielsweise ein
Register, ein Steuerregister oder ein Spezialfunktionsregister (SFR)
sein, das den Betrieb der Schaltung 100 steuert. Selbstverständlich kann die
Speicherstelle 110 auch Teil eines Cachespeichers oder
anderen Speichers sein, der mehr Speicherstellen umfasst als nur
die Speicherstelle 110. Die Technologie, die hinter der
Speicherstelle 110 steckt, kann beispielsweise diejenige
eines dynamischen Direktzugriffsspeichers (DRAM; DRAM = dynamic
random access memory), diejenige eines statischen Direktzugriffsspeichers
(SRAM; SRAM = static random access memory), diejenige eines nichtflüchtigen
Speichers (NVM; NVM = non-volatile memory) oder jede andere Technologie
sein, die sowohl zumindest eine einmalige Speicherung von Daten
in als auch mehrere Auslesungen von Daten von der Speicherstelle 100 ermöglicht.
-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung basieren auf der Erkenntnis, dass ein Sicherheitspegel
oder Widerstandspegel bezüglich eines
Angriffs auf die Schaltung 100 erhöht werden kann durch Schalten
der Schaltung 100 zu einer Funktionsweise (erste Funktionsweise),
die einen höheren
Sicherheitspegel oder einen höheren
Widerstandspegel bezüglich
eines Angriffs bietet, wenn der Zustand einer Speicherstelle 110 nicht
dem Zustand (explizit) entspricht, der jeder der beabsichtigten Funktionsweisen
gemäß der Spezifikation
des Bauelements zugeordnet ist. Als Folge führt absichtliche oder zufällige Manipulation
des Inhalts der Speicherstelle 110 in vielen Fällen zu
einer Stärkung
der Schaltung 100 gegen den aktuellen Angriff.
-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung basieren auf der Tatsache, dass viele Register und Speicherstellen
Breiten von n Bits anbieten, wobei n eine positive Ganzzahl ist,
beispielsweise 2 bis 8, 10, 12, 14, 16, 20, 24, 32 oder 64. Jeder
dieser Register oder Speicherstellen 110 bietet 2n potentielle Zustände, die an der Speicherstelle speicherbar
sind. Die Anzahl m von erforderlichen Zuständen, wobei m ebenfalls eine
positive Ganzzahl ist, die erforderlich sind, um die unterschiedlichen Funktionsweisen
zu codieren, ist häufig
wesentlich kleiner als die Anzahl potentieller Zustände (m < 2n). Somit
basiert dieser Lösungsansatz
auf einer Situation, bei der die n Bits nicht vollständig verwendet
werden beim Codieren der unterschiedlichen Funktionsweisen.
-
Anders
ausgedrückt,
die Speicherstelle oder das Register 110 ist angepasst,
um zumindest die Summe einer ersten Anzahl von Zuständen und
einer zweiten Anzahl von Zuständen
zu speichern, wobei jeder Zustand einer ersten Anzahl von Zuständen genau
einer Funktionsweise einer Mehrzahl von Funktionsweisen entspricht,
und wobei eine vorbestimmte Funktionsweise ausgewählt wird,
wenn der Zustand des Registers 110 einer der zweiten Anzahl
von Zuständen
ist. Bei vielen Ausführungsbeispielen
gemäß der vorliegenden
Erfindung ist die erste Anzahl zumindest 3, und die zweite Anzahl
ist zumindest 1, so dass das Register in der Lage ist, vier unterschiedliche
Zustände
zu speichern. Die Zustände
einer ersten Anzahl von Zuständen
unterscheiden sich nicht nur untereinander, sondern auch von den
Zuständen der
zweiten Anzahl von Zuständen.
Selbstverständlich
unterscheiden sich die Zustände
einer zweiten Anzahl von Zuständen
auch voneinander und von den Zuständen der ersten Anzahl von
Zuständen.
-
Darüber hinaus
ist das Register 110 oder die Speicherstelle 110 bei
Ausführungsbeispielen
gemäß der vorliegenden
Erfindung in der Lage, die Summe der ersten Anzahl von Zuständen und
der zweiten Anzahl von Zuständen
genau zu speichern. In dem obigen Fall entsprechen alle Zustände der Speicherstelle 110 „definierten
Funktionsweisen”.
Alternativ oder zusätzlich
ist die zweite Anzahl normalerweise größer als die erste Anzahl, bei
Ausführungsbeispielen
gemäß der vorliegenden
Erfindung. Die zweite Anzahl kann beispielsweise gleich oder größer zweimal
der ersten Anzahl von Zuständen, gleich
oder größer dreimal
der ersten Anzahl von Zuständen
oder gleich oder größer N mal
der ersten Anzahl von Zuständen
sein, wobei N eine positive Ganzzahl ist, die gleich oder größer 4 ist.
-
Da
die vorbestimmte Funktionsweise oder die erste Funktionsweise einen
höheren
Sicherheitspegel oder einen höheren
Widerstandspegel bezüglich
eines Angriffs bietet, muss ein Angreifer ein erhöhtes Risiko
akzeptieren, dass der Angriff selbst zu einem weniger vielversprechenden
und schwierigeren Anfangspunkt für
genau diesen Angriff führt.
Als Folge wird die Wahrscheinlichkeit eines erfolgreichen Zufallsangriffs
verringert und die Anzahl von notwendigen Versuchen steigt höchstwahrscheinlich
an.
-
Somit
bieten Ausführungsbeispiele
gemäß der vorliegenden
Erfindung die Möglichkeit,
in eine sicherere Funktionsweise zu schalten, wenn der Zustand,
der in der Speicherstelle 110 oder dem Register 110 gespeichert
ist, einen „ungültigen Code” anzeigt.
Die vorbestimmte oder erste Funktionsweise ist somit weniger kritisch
bezüglich
Sicherheitsproblemen als weitere Funktionsweisen. Der Grund dafür, dass
ein solcher ungültiger
Code in der Speicherstelle 110 gespeichert wird, kann beispielsweise
ein Angriff sein (z. B. über
einen Laser) oder eine fehlerhafte oder falsche Programmierung über eine
Software.
-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung bieten eine sicherere oder stärkere Implementierung von Schaltungen
bezüglich
Angriffen bei vergleichsweise niedrigen Kosten. Darüber hinaus
kann bei einigen Ausführungsbeispielen
gemäß der vorliegenden
Erfindung eine erforderliche Fläche des
Chips für
die Schaltung 100, die auch als der Chipflächenmehraufwand
bezeichnet wird, und/oder eine erforderliche zusätzliche Laufzeit für Sicherheitsprozeduren,
die auch als Laufzeitmehraufwand bezeichnet wird, eingespart werden,
da eine Modifikation oder Verifikation von sicherheitsbezogenen (Steuer-)Registern
typischerweise einen wesentlichen Aufwand bezüglich Schreiben, Lesen, Vergleichen
der gespeicherten Werte erfordert, oder sogar eine doppelte Implementierung
der sicherheitsbezogenen Komponenten, die wesentliche Ressourcen wie
Chipfläche
und Zugriffszeit binden. Anders ausgedrückt, indem bezüglich der
Speicherstelle 110 oder des Registers 110 einfach
einige Bits mehr verwendet werden, kann die Sicherheit der Schaltung 100 erhöht werden.
-
Bei
Ausführungsbeispielen
gemäß der Erfindung
sind die Zustände
der ersten Anzahl von Zuständen,
die unterschiedlichen Funktionsweisen der Schaltung 100 entsprechen,
in vielen Fällen
nicht fortlaufend nummeriert bezüglich
der Werte, die durch die Bits in der Speicherstelle 110 dargestellt werden.
Wie es im Zusammenhang mit 2 näher skizziert
wird, müssen
die Werte, die den unterschiedlichen Zuständen entsprechen, die unterschiedlichen
Funktionsweisen zugeordnet sind, nicht fortlaufend nummeriert sein
bezüglich
ihrer binären Darstellungen,
da beispielsweise ein spezifisches Bit des Register 110 direkt
verwendet werden kann zum Aktivieren oder Deaktivierungen einer
oder mehrerer Komponenten der Schaltung 100. Somit existieren
in diesen Fällen
zumindest zwei Werte, die zwei Zuständen zugeordnet sind, die zwei
unterschiedlichen Funktionsweisen entsprechen, so dass ein absoluter Wert
der Differenz der beiden Werte größer als 1 ist, und dass kein
Wert, der einer anderen Funktionsweise entspricht als der ersten
Funktionsweise oder der vorbestimmten Funktionsweise, zwischen den
beiden Werten liegt. Ein Beispiel dafür wird im Zusammenhang mit 2 näher beschrieben.
-
Bei
weiteren Ausführungsbeispielen
gemäß der vorliegenden
Erfindung kann die Schaltung 100 ferner eine Schaltschaltung 120 als
eine optionale Komponente umfassen, die mit der Speicherstelle 110 gekoppelt
ist. Die Schaltschaltung 120 kann angepasst sein, um den
Zustand der Speicherstelle 110 zu bestimmen, beispielsweise
durch Auslesen des Werts derselben. Dann kann die Schaltschaltung 120 den
Wert, der von der Speicherstelle 110 ausgelesen wird, mit
einer Liste von Werten vergleichen, die den Zuständen der ersten Anzahl von
Zuständen
entsprechen. In diesem Fall kann die Schaltschaltung 120 angepasst
sein, um ein optionales Schaltsignal 130 zu liefern, das
die Funktionsweise anzeigt, die identisch sein kann mit dem Wert,
der in der Speicherstelle 110 gespeichert ist. Die Schaltschaltung 120 kann
jedoch auch optional ein oder mehrere Signale liefern, die Datenschalter,
Multi plexer oder andere Komponenten der Schaltung aktivieren oder deaktivieren,
oder kann die Funktionsweise der Schaltung 100 auf eine
andere Weise verändern.
-
Falls
der Wert, der von der Speicherstelle 110 ausgelesen wird,
nicht in der oben erwähnten Liste
enthalten ist, erzeugt die Schaltschaltung 120 ein Schaltsignal,
das einer vorbestimmten Funktionsweise einer Mehrzahl von Funktionsweisen
entspricht, wie es oben beschrieben ist. Optional kann die Schaltschaltung
den Wert liefern, der von der Speicherstelle 110 auf codierte
Weise als Schaltsignal 130 gelesen wird. In dem Fall, dass
eine Schaltschaltung 120 in der Lage ist, ein oder mehrere
Signale zu liefern, um die oben erwähnten Komponenten zu aktivieren
oder zu deaktivieren, werden diese Signale gemäß der vorbestimmten Funktionsweise
erzeugt.
-
Die
Schaltschaltung 120 sowie die gesamte Schaltung 100 können als
eine integrierte Schaltung, eine diskrete Schaltung oder eine Kombination
von beiden implementiert sein. Darüber hinaus kann ein Ausführungsbeispiel
eines Verfahrens gemäß der vorliegenden
Erfindung auch als ein Software- oder Firmwareprogramm implementiert
sein, das in einem entsprechenden Speicher gespeichert ist und durch einen
Prozessor ausgeführt
wird. In diesem Fall kann das Bestimmen eines Zustands sowie das
Vergleichen von Werten oder Zuständen
das Lesen von und Schreiben in implementierungsspezifische Adressen eines
Speichers umfassen, oder andere implementierungsspezifische Prozeduren.
-
2 stellt
schematisch das Schalten der Schaltung 100 in unterschiedliche
Funktionsweisen dar, abhängig
von dem Zustand einer Speicherstelle oder eines Registers 110 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Das in 2 dargestellte
Ausführungsbeispiel
basiert jedoch auf den Implementierungseinzelheiten und Spezifikationen
dieser Schaltungen, die im Zusammenhang von 1 beschrieben
sind. Hier umfasst die Speicherstelle 110 4 Bits, die in
der Lage sind, Werte in dem Bereich von 0 (= 0000) bis 15 (= 1111) zu
erfassen, wobei die Werte in den Klammern binäre Darstellungen sind. Auf
der linken Seite von 2 sind die 16 unterschiedlichen
Werte 200 in der binären
Darstellung zusammen mit ihren entsprechenden dezimalen Darstellungen 210 gezeigt.
-
Auf
der rechten Seite von 2 sind drei Funktionsweisen 220-1 (Modus
1), 220-2 (Modus 2) und 220-3 (Modus 3) durch
drei Rechtecke dargestellt. Wie es durch einen Pfeil 230 in 2 dargestellt
ist, umfasst Modus 1 einen höheren
Sicherheits- oder Widerstandspegel als Modus 2 und Modus 3, während Modus
2 einen höheren
Sicherheits- oder Widerstandspegel als Modus 3 umfasst.
-
Wie
es durch die fetten Linien 240-1, 240-2 und 240-3 angezeigt
ist, ist der Modus 1 220-1 einem Zustand 200 zugeordnet,
der dem Dezimalwert 3 entspricht, als ein beabsichtigter Wert zum
Schalten der Schaltung 100 zu Modus 1. Der Zustand 200,
der dem Dezimalwert 7 entspricht, ist dem Modus 2 220-2 zugeordnet,
während
der Zustand 200, der dem Dezimalwert 12 entspricht, dem
Modus 3 220-3 zugeordnet ist. Folglich sind diese drei
Zustände,
die die Dezimalwerte 3, 7, 12 aufweisen, die Zustände, die
zu der ersten Anzahl von Zuständen
gehören,
wie es oben beschrieben ist. Bei dem in 2 gezeigten Ausführungsbeispiel
gehören
die anderen Zustände 200 mit
Dezimalwerten 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15 zu der
zweiten Anzahl von Zuständen.
Für alle diese
Zustände
ist die zugeordnete oder vorbestimmte Funktionsweise der Mehrzahl
von Funktionsweisen 220 der erste Modus 220-1,
wie es durch die dünnen
Linien 250 in 2 dargestellt ist.
-
Wie
es angezeigt ist, stellt 2 ein Ausführungsbeispiel gemäß der vorliegenden
Erfindung dar, bei dem alle potentiellen Zustände des Registers oder der
Speicherstelle 110 einer Funktionsweise zugeordnet sind.
Anders ausgedrückt,
die erste Anzahl ist gleich 3, was den Werten 3, 7, 12 entspricht,
und die zweite Anzahl ist gleich 13, was den anderen Zuständen 200 entspricht,
so dass die Gesamtanzahl von Zuständen dieser Speicherposition 110 genau gleich
der Summe der ersten Anzahl und der zweiten Anzahl ist. Darüber hinaus
sind die Werte der Zustände,
die den drei Funktionsweisen gemäß der Spezifikation
der Schaltung 100 zugeordnet sind, nicht fortlaufend nummeriert.
Abgesehen von der Tatsache, dass 3, 7 und 12 keine fortlaufende
Ganzzahlen sind, gibt es zwischen dem Wert von 3 und 7 keinen anderen
der zugeordneten Werte der ersten Anzahl von Zuständen (was
12 wäre),
und der absolute Wert der Differenz der beiden Werte der entsprechenden
Zustände
ist 4 = |7 3| = |3 7|, wie es oben beschrieben ist.
-
Anders
ausgedrückt,
bei dem in 2 gezeigten Ausführungsbeispiel
entspricht der erste Zustand dem Wert von 3, der zweite Zustand
dem Wert von 7 und der dritte Zustand beispielsweise dem Wert von
4.
-
Ferner
zeigt 2 ein Ausführungsbeispiel gemäß der vorliegenden
Erfindung, bei dem ein Verhältnis
zwischen der zweiten Anzahl von Zuständen (13) und der
ersten Anzahl von Zuständen
(3) mehr als 4 ist. Wie bei dem in 2 gezeigten
Ausführungsbeispiel
existieren nur drei unterschiedliche Funktionsweisen 220,
in diesem Fall ist die Anzahl von Bits, die erforderlich ist, um
zwischen den unterschiedlichen Funktionsweisen zu schalten, 2. Da
das Register 110 4 Bits umfasst, ist jedoch das vorher
erwähnte
Verhältnis
mehr als 4 = 22. Bei Ausführungsbeispielen
gemäß der vorliegenden
Erfindung ist das Verhältnis
zwischen der zweiten Anzahl von Zuständen und der ersten Anzahl
von Zuständen
häufig gleich
oder größer als
2, was jedoch keine Bedingung ist. Mit einem steigenden Verhältnis ist
ein zunehmender Sicherheitspegel gegenüber zufälligen Angriffen und anderen
Angriffen auf die Speicherstelle oder das Register 110 erreichbar.
-
Bevor
weitere Ausführungsbeispiele
gemäß der vorliegenden
Erfindung beschrieben werden, wobei der Schwerpunkt der Beschreibung
auf die unterschiedlichen Funktionsweisen gelegt wird, sollte erneut
darauf hingewiesen werden, dass Ausführungsbeispiele gemäß der vorliegenden
Erfindung auf alle Schaltungen mit sicherheitsbezogenen oder sicherheitskritischen
Anwendungen anwendbar sind. Solche Schaltungen können als integrierte Schaltungen oder
Sicherheitsbauelemente gebildet sein, die eine oder mehrere integrierte
Schaltungen umfassen. Eine integrierte Schaltung oder Schaltung
kann beispielsweise eine Smartcard, eine Chipcard, ein Prozessor,
eine anwendungsspezifische integrierte Schaltung (ASIC; ASIC = application
specific integrated circuit) oder eine integrierte Schaltung sein,
die in einem Sicherheitstoken implementiert werden soll. Im Fall
einer Schaltung für
eine Smartcard oder eine Chipcard kann die Schaltung beispielsweise
eine Chipcardsteuerung sein, und die Speicherstelle 110 kann
Teil des entsprechenden Steuerspeichers oder Steuerregisters der
Chipcardsteuerung sein. Beispiele von Prozessoren sind neben zentralen
Verarbeitungseinheiten (CPU; CPU = central processing unit), mathematische
Prozessoren und Kryptoprozessoren, die Arithmetik-Logik-Einheiten
(ALU; ALU = arithmetic logical unit) umfassen, die in der Lage sind,
spezifische komplexe mathematische Operationen, wie z. B. Verschlüsselung,
Entschlüsselung,
Berechnung von Hash-Werten und andere Operationen äußerst effektiv
und/oder sicher auszuführen.
-
Ausführungsbeispiele
gemäß der vorliegenden
Erfindung bieten die Möglichkeit
sicherer Handhabung von absichtlichen oder zufälligen falschen Eingaben in
ein Steuerregister, wie es oben beschrieben ist. In diesem Fall
wird das jeweilige Register (z. B. ein Spezialfunktionsregister) „zurückgesetzt” auf einen
sicheren Wert, der der vorbestimmten Funktionsweise entspricht.
-
In
dem Fall eines Ausführungsbeispiels
gemäß der vorliegenden
Erfindung ist eine Schaltung 100 in der Lage, Daten, die
mit einer anderen Komponente ausgetauscht werden, wie z. B. einer
weiteren Schaltung oder einem Chipkartenleser, durch Verwenden einer Übertragungsmaske
zu verbergen oder zu tarnen, so dass die ausgetauschten Daten gegen
einfaches Ausschnüffeln
während
des Austausches geschützt
sind. Eine solche Übertragungsmaske
kann beispielsweise XOR-verknüpft
werden mit den Daten, die zu übertragen
sind, um die echten Daten zu tarnen oder zu verbergen. In diesem
Fall ist die Übertragungsmaske
typischerweise ein Binärmuster,
das nur Nullen und Einsen umfasst, mit denen die Daten, die zu übertragen
sind, XOR-verknüpft werden
vor und nach der Übertragung,
so dass der Einfluss der Übertragungsmaske
eliminiert wird nach dem Empfang der maskierten Daten durch die
Empfangskomponente.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung kann die Schaltung 100 angepasst
sein, um eine Frequenz der Änderungen
der Übertragungsmaske
zu modifizieren, abhängig
von einem Steuerregister, das beispielsweise vier Bits enthält. In diesem
Fall entsprechen die unterschiedlichen Funktionsweisen Modi mit
unterschiedlichen Frequenzen der Änderung der Übertragungsmaske. Die
Speicherstelle 110 ist in diesem Fall das 4 Bit lange Steuerregister.
Die gültigen
Zustände,
die in vier Bits codiert sind, können
beispielsweise die Werte 15 (= 1111), einer Änderung der Übertragungsmaske
mit jedem Zyklus eines Taktsignals zugeordnet, 7 (= 0111), dem Ändern der Übertragungsmaske
alle 4 Taktzyklen zugeordnet, 3 (= 0011), dem Ändern der Übertragungsmaske alle 16 Taktzyklen
zugeordnet, 1 (= 0001), dem Ändern
der Übertragungsmaske
alle 64 Taktzyklen zugeordnet, und 0 (= 0000) sein, dem zugeordnet,
dass die Übertragungsmaske
niemals verändert
oder überhaupt
nicht verwendet wird. Somit gehören
die fünf
Zustände,
die oben erwähnt
wurden, zu einer ersten Anzahl von Zuständen.
-
Wenn
jedoch das Steuerregister 110 mit einem falsch codierten
Zustand versorgt wird, der einem anderen Wert entspricht als den
oben erwähnten
Werten, wird die Schaltung 100 zu der Funktionsweise geschaltet,
die den häufigsten
Maskenänderungen
entspricht. Anders ausgedrückt,
bei dieser Implementierung wird jeder andere Wert als der Zustand
interpretiert, der dem Dezimalwert 15 (= 1111) entspricht, so dass
die Übertragungsmaske
mit jedem Taktzyklus geändert
wird.
-
Als
Folge muss ein Angreifer ein erhöhtes
Risiko in Kauf nehmen, das ein Angriff beinahe immer zu einer schwierigeren
Ausgangsposition für
genau diesen Angriff führt.
Somit wird die Wahrscheinlichkeit eines erfolgreichen Zufallszugriffs
wesentlich verringert und die Anzahl von notwendigen Versuchen wird
möglicherweise
drastisch ansteigen.
-
Die
unterschiedlichen Übertragungsmasken sowie
die Masken und Schlüssel
zum Verbergen können
beispielsweise bestimmt werden unter Verwendung eines Pseudozufallszahlengenerators
oder eines Echte-Zufallszahlengenerators. Selbstverständlich können Ausführungsbeispiele
gemäß der vorliegenden
Erfindung mit einer unterschiedlichen Anzahl von Funktionsweisen
oder Frequenzen oder Änderungsfrequenzen
der Übertragungsmaske
implementiert werden, mit einem längeren oder einem kürzeren Register
als der Speicherstelle 110 oder mit einer anderen Codierung
für die
jeweilige Frequenz von Maskenänderungen.
-
Bei
einem ähnlichen
Ausführungsbeispiel gemäß der vorliegenden
Erfindung, das gegenüber einem
Differentielle-Leistungsanalyse-Angriff
gestärkt
oder abgehärtet
wird, kann eine Schaltung 100 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung mit unterschiedlichen Funktionsweisen
implementiert werden, die unterschiedlichen Frequenzen einer Maskenänderung
für eine
interne Verwendung der Schaltung 100 entsprechen. Eine
solche Schaltung 100 kann – als eine Gegenmaßnahmestrategie
gegen eine differentielle Leistungsanalyse – eine Maskierung der jeweiligen
Eingangsdaten vor den Berechnungen verwenden, und eine Demaskierung
der Ausgabe der Berechnungen, nachdem die mathematischen Prozeduren
angewendet wurden. Abhängig
von den Implementierungseinzelheiten kann es sein, dass nicht alle
potentiellen Algorithmen auf solch eine Weise implementiert werden
können.
-
Gemäß einem
weiteren Ausführungsbeispiel der
vorliegenden Erfindung, das eine weitere Gegenmaßnahmestrategie gegen differentielle
Leistungsanalyse verwendet, die ähnlich
ist wie das Maskieren, wie es vorher beschrieben wurde, können Schaltungen 100 eine
algorithmische Modifikation umfassen, wie z. B. dass eine kryptographische
Operation an Daten auftritt, die sich auf den tatsächlichen
Wert beziehen, durch eine mathematische Beziehung, die die kryptographische
Operation überlebt.
Diese Technik wird Verbergen (Blinding) genannt und impliziert sehr
häufig
einen Algorithmus, der auf Zahlentheorie basiert, wie z. B. Factoring-
oder diskrete Logarithmen. Bei Ausführungsbeispielen gemäß der vorliegenden
Erfindung, die diese Technik verwenden, kann die Schaltung in unterschiedlichen
Funktionsweisen betrieben werden, entsprechend unterschiedlichen
Frequenzen von Schlüsseländerungen der
darunterliegenden kryptographischen Funktion.
-
Gemäß einem
weiteren Ausführungsbeispiel der
vorliegenden Erfindung kann die Schaltung 100 ein symmetrischer
Kryptoprozessor sein, und die Speicherstelle 110 kann in
diesem Fall ein Kryptoprozessorsteuerregister sein. Ein solches
Ausführungsbeispiel
gemäß der vorliegenden
Erfindung kann beispielsweise zehn Funktionsweisen umfassen, die
basierend darauf ausgewählt
werden, dass das Register 110 5 Bits umfasst. Bei diesem
Ausführungsbeispiel
gemäß der vorliegenden
Erfindung kann der Zustand, der einem Wert 0 (= 0000) entspricht,
einer Funktionsweise zugeordnet sein, die anzeigt, dass kein kryptographischer
Modus ausgewählt
wurde. Diese Funktionsweise kann die vorbestimmte Funktionsweise
sein und kann ferner als ein Rücksetzmodus
dienen, um den Prozessor anzuhalten, zu unterbrechen oder neu zu
starten im Fall eines ungültigen Werts,
der einem Zustand entspricht, der nicht zu der ersten Anzahl von
Zuständen
gehört.
Das Auswählen dieser
Funktionsweisen kann es für
einen Angreifer schwieriger machen, einen Zufallsangriff auszuführen.
-
Die
unterschiedliche Funktionsweise eines solchen kryptographischen
Prozessors kann sich beispielsweise bezüglich unterschiedlicher kryptographischer
Algorithmen, Schlüssellängen und
Frequenzen für
Schlüsseländerungen
unterscheiden, wie es oben beschrieben ist. Der kryptographische Prozessor
kann beispielsweise zwischen DES, AES, IDEA, CAST und anderen Algorithmen
schalten, die auf elliptischen Kurven basieren. Darüber hinaus kann
der Prozessor 100 bezüglich Ein-Weg-Hash-Funktionen zwischen
MD5, RIPE160, SHA1, SHA1a und SHA2 schalten. Natürlich können bei anderen Ausführungsbeispielen
andere Funktionsweisen, ein Teilsatz der oben erwähnten Modi und
andere implementierungsspezifische Einzelheiten implementiert werden.
-
Bei
einem weiteren Ausführungsbeispiel
gemäß der vorliegenden
Erfindung kann ein Steuerregister 110 die Schaltung 100 über die
optionale Schaltschaltung 120 zwischen unterschiedlichen ALUs
schalten, von denen eine beispielsweise äußerst effektiv implementiert
sein kann, aber einen geringen Widerstand gegenüber einem differentiellen Leistungsangriff
oder anderen Angriffen umfasst, und einer, die den sogenannten Doppel-Schiene-Lösungsansatz
verwendet, der auf dem gleichzeitigen Verarbeiten der Daten und
der invertierten Daten basiert, um weniger oder keine Leistungsfluktuationen zu
erzeugen, abhängig
von den Daten, die verarbeitet werden. Darüber hinaus kann die Schaltung 100 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ferner in der Lage sein, sogenanntes
Vorladen oder Vor-Entladen zu aktivieren, abhängig von dem Zustand des entsprechenden
Steuerregisters 110. In der vorgeladenen Funktionsweise
werden alle Doppel-Schiene-Signalleitungen
vor der tatsächlichen
algorithmischen Operation auf einen logischen Wert 1 für jeden
Taktzyklus initialisiert. In diesem Fall einer vor-entladenen Funktionsweise
werden alle Signalleitungen der Doppel-Schiene-Architektur auf einen
logischen Zustand initialisiert, der für beide Signalleitungen jeweils
0 entspricht. Anders ausgedrückt,
das Verwenden der Vorladungs- oder Vor-Entladungsfunktionsweise am
Anfang jedes Taktzyklus wird dazu führen, dass das Signalleitungspaar
in einem „illegalen
Zustand” ist,
da unter normalen Bedingungen eine der beiden Signalleitungen einen
invertierten Signalpegel der anderen umfasst.
-
Bei
Ausführungsbeispielen
gemäß der vorliegenden
Erfindung, die beispielsweise zwei unterschiedliche ALUs verwenden,
können
die unterschiedlichen Funktionsweisen beispielsweise das Verwenden
der effizienten ALU, das Verwenden der verstärkten ALU ohne Vorladen oder
Vor-Entladen, das Verwenden der verstärkten ALU mit Vorladen und
das Verwenden der verstärkten
ALU mit Vor-Entladen umfassen. Als vorbestimmte Funktionsweise kann
beispielsweise der Modus verwendet werden, der die gestärkte ALU
mit Vor-Entladung verwendet. Da die Anzahl unterschiedlicher Funktionsweisen
bei diesem Ausführungsbeispiel
gemäß der vorliegenden
Erfindung 4 beträgt,
so dass ein Register mit zumindest 2 Bits erforderlich ist, um alle
4 Modi zu bezeichnen, da die erste Anzahl von Zuständen in
diesem Fall 4 ist, sollte das Register 110 zumindest 3 Bits
umfassen, um zumindest 8 unterschiedliche Zustände zu speichern. Selbstverständlich kann
die Anzahl von Bits des Registers 110 höher sein, was dazu führt, dass
die Schaltung 100 noch sicherer ist gegenüber Zufallsangriffen
gegen das Register 110 der Schaltung 100. Darüber hinaus
können
bei unterschiedlichen Ausführungsbeispielen
eine unterschiedliche Anzahl von ALUs, unterschiedliche Funktionsweisen
und andere implementierungsspezifische Einzelheiten implementiert
werden.
-
Bei
einem weiteren Ausführungsbeispiel
gemäß der vorliegenden
Erfindung kann die Schaltung 100 in unterschiedlichen Funktionsweisen
betrieben werden, die unterschiedliche Korrelationswerte von Leistungsaufnahme
zu verarbeiteten Daten umfassen. Dies kann beispielsweise erreicht
werden durch eine (Pseudo-)Zufallsaktivierung von dissipativen elektrischen
Elementen, die ausreichende Rauschpegel-Maskenfluktuationen der
durch die Datenverarbeitung verursachten Leistungsaufnah me umfassen.
Dies kann beispielsweise erreicht werden durch Aktivieren oder Deaktivieren
von Widerstandselementen, die parallel geschaltet sind, wie z. B. pn-Übergänge, ohmsche
Widerstände
oder andere elektrische Elemente, die physikalische Rauschquellen
(z. B. Schrotrauschen) umfassen.
-
In
solch einem Ausführungsbeispiel
gemäß der vorliegenden
Erfindung können
sich die unterschiedlichen Funktionsweisen erneut unterscheiden bezüglich einer
potentiellen Bandbreite von Leistungsaufnahmen, einer Frequenz des
Aktivierens oder Deaktivierens bestimmter dissipativer Elemente.
Abhängig
von der beabsichtigten Anwendung kann es empfehlenswert sein, in
der Lage zu sein, zwischen einer Niedrigleistungsfunktionsweise
mit nur einer begrenzten Anzahl von oder keinen aktivierten dissipativen
Elementen, was daher die Gesamtleistungsaufnahme reduziert, aber
einem potentiellen Angreifer mehr Informationen offenbaren kann,
und Funktionsweisen mit einer höheren
Leistungsaufnahme zu schalten. Als ein Beispiel kann es empfehlenswert
sein, eine Funktionsweise beispielsweise nur für eine kurzfristige Periode
zu implementieren, in der die höhere
Gesamtleistungsaufnahme ein weniger wichtiger Nachteil ist im Vergleich
zu einer verstärkten
Sicherheit gegenüber
Angriffen, beispielsweise kann eine lange Batterielebensdauer im
Fall eines Angriffs weniger wichtig sein.
-
Erneut
können
sich Ausführungsbeispiele gemäß der vorliegenden
Erfindung abhängig
von den Implementierungseinzelheiten unterscheiden bezüglich eines
großen
Bereichs von Parametern, wie z. B. der Anzahl von dissipativen Elementen,
Frequenzen der Aktivierung und Deaktivierung und der Bandbreite
von Leistungsverbrauchsfluktuationen, die dadurch verursacht werden,
dass die unterschiedlichen Elemente aktiviert werden. In solch einem
Fall kann die vorbestimmte Funktionsweise der Modus mit höchsten und
häufigsten
Leistungsfluktuationen sein, um Spuren der Daten, die verarbeitet
werden, in der Leistungsaufnahme so gut wie möglich zu maskieren.
-
Ein
weiteres Ausführungsbeispiel
gemäß der vorliegenden
Erfindung ist eine Schaltung 100, die sowohl einen Pseudozufallszahlengenerator
als auch einen Echte-Zufallszahlengenerator umfasst. Der Echte-Zufallszahlengenerator
ist typischerweise eine Komponente, die eine inhärente physikalische Rauschquelle
umfasst. Ein Beispiel dafür
ist beispielsweise eine Phasenregelschleife (PLL; PLL = phase locked
loop), ein Widerstand oder ein Tunnelübergang (z. B. ein umgekehrt
vorgespannter pn-Übergang),
der eine physikalische Rauschquelle umfasst, wie z. B. das vorher
erwähnte
Schrotrauschen oder andere regelmäßig auftretende Störungen,
die zufällig
beherrscht werden.
-
Ein
Pseudozufallszahlengenerator wird andererseits häufig als ein lineares Rückkopplungsschieberegister
(LFSR; LFSR = linear feedback shift register) implementiert, basierend
auf einem Polynom mit einer maximalen Länge einer Sequenz von Bits,
die für
viele Anwendungen ein ausreichend nützliches statistisches Verhalten
zeigt. Ein Pseudozufallszahlengenerator ist jedoch ein deterministisches
System, so dass die Ausgabe im Wesentlichen bestimmt wird durch
einen Initialisierungsvektor, der an den Pseudozufallszahlengenerator
geliefert wird.
-
Die
Energieaufnahme eines Pseudozufallszahlengenerators ist jedoch normalerweise
wesentlich niedriger als diejenige eines Echte-Zufallszahlengenerators,
da eine Energiemenge, die an die physikalische Rauschquelle geliefert
wird, wesentlich niedriger ist als diejenige eines Echte-Zufallszahlengenerators,
da eine Energiemenge, die an die physikalische Rauschquelle geliefert
wird, in vielen Fällen wesentlich
größer ist
als diejenige, die für
eine effiziente Implementierung eines Pseudozufallszahlengenerators
erforderlich ist. Daher kann es empfehlenswert sein, einen Pseudozufallszahlengenerator
zu initialisieren basierend auf einem Initialisierungsvektor, der
durch den Echte-Zufallszahlengenerator erzeugt wird. Abhängig von
den Sicherheitsanforderungen einer Anwendung kann in diesem Fall
auch die Frequenz einer Aktivierung des Echte-Zufallszahlengenerators
zum Initialisieren des Pseudozufallszahlengenerators in unterschiedlichen
Funktionsweisen unterschiedlich sein. Wie bei dem vorher beschriebenen
Ausführungsbeispiel
gemäß der vorliegenden Erfindung
mit unterschiedlichen Frequenzen für eine Änderung einer Übertragungsmaske
können
auch bei diesem Ausführungsbeispiel
gemäß der vorliegenden
Erfindung unterschiedliche Funktionsweisen mit unterschiedlichen
Frequenzen einer Initialisierung des Pseudozufallszahlengenerators
implementiert werden, wobei die vorbestimmte Funktionsweise diejenige
mit der höchsten
Anzahl von Initialisierungen ist.
-
Abhängig von
bestimmten Implementierungsanforderungen von Ausführungsbeispielen
erfindungsgemäßer Verfahren
können
Ausführungsbeispiele
der erfindungsgemäßen Verfahren
in Hardware oder in Software implementiert sein. Die Implementierung
kann durchgeführt
werden unter Verwendung eines digitalen Speichermediums, insbesondere
einer Platte, einer CD oder DVD mit darauf gespeicherten elektronisch
lesbaren Steuersignalen, die mit einem programmierbaren Computer
oder Prozessor zusammenarbeiten, so dass ein Ausführungsbeispiel der
erfindungsgemäßen Verfahren
ausgeführt
wird. Allgemein ist ein Ausführungsbeispiel
der vorliegenden Erfindung daher ein Computerprogrammprodukt mit
einem Programmcode, der auf einem maschinenlesbaren Träger gespeichert
ist, wobei der Programmcode wirksam ist zum Durchführen eines
Ausführungsbeispiels
des erfindungsgemäßen Verfahrens,
wenn das Computerprogrammprodukt auf dem Computer oder Prozessor
läuft.
Anders ausgedrückt, Ausführungsbeispiele
der erfindungsgemäßen Verfahren
sind daher ein Computerprogramm mit einem Programmcode zum Durchführen von
zumindest einem der Ausführungsbeispiele
der erfindungsgemäßen Verfahren,
wenn das Computerprogramm auf dem Computer oder Prozessor läuft. Ein
Prozessor kann gebildet werden durch einen Computer, eine Chipcard,
eine Smartcard, eine anwendungsspezifische integrierte Schaltung
(ASIC) oder eine integrierte Schaltung (IC).
-
Obwohl
das Vorhergehende insbesondere mit Bezugnahme auf bestimmte Ausführungsbeispiele
desselben gezeigt und beschrieben wurde, ist es für Fachleute
auf diesem Gebiet klar, dass verschiedene andere Änderungen
in den Formen und Einzelheiten durchgeführt werden können, ohne
von der Wesensart und dem Schutzbereich desselben abzuweichen. Es
ist klar, dass verschiedene Änderungen beim
Anpassen an unterschiedliche Ausführungsbeispiele durchgeführt werden
können,
ohne von dem hierin offenbarten breiteren Konzept abzuweichen, das
die folgenden Ansprüche
umfassen.