-
Die
Erfindung betrifft eine Schaltungsanordnung sowie ein Verfahren
zum Initialisieren eines Zufallsgenerators.
-
Zufallszahlen
finden auch, aber nicht nur, in sicherheitsrelevanten Schaltungsanordnungen
Verwendung. Sie dienen in solch einer Schaltungsanordnung beispielsweise
als Testsignale zur Übertragung über Dummy-Leitungen
oder über
aktive Schildleitungen, oder um die Funktionsweise der Schaltungsanordnung
zu verschleiern. Zufallszahlen finden auch für kryptografische Zwecke Verwendung.
-
Die
Generierung von echten, auf einem zufälligen Prozess basierenden
Zufallszahlen, wie sie beispielsweise bei Rauschprozessen auftreten,
ist sehr aufwändig.
Entsprechend ausgebildete Zufallsgeneratoren werden als „echte" Zufallsgeneratoren bezeichnet.
Herkömmliche
echte Zufallsgeneratoren bedingen das Vorhandensein von analogen
Schaltungselementen, vor deren Implementierung in vornehmlich digitalen
Schaltungen jedoch wegen des Aufwandes oft zurückgeschreckt wird.
-
Die
Entgegenhaltung
DE
10344327 B3 betrifft einen Zufallsgenerator. Die Zufallszahlengeneration
basiert auf so einem genannten Random-Telegraph-Signal, bei dem
es sich um ein Rauschsignal eines oder mehrerer Transistoren handelt.
Das Random-Telegraph-Signal weist zwei Zustände auf. Die Signalzustände werden überabgetastet
und basierend auf der Dauer detektierten Zustände wird eine binäre Zufallszahlenfolge
erzeugt.
-
Um
dennoch unvorhersagbare Zufallsfolgen generieren zu können, werden
so genannte Pseudo-Zufallsgeneratoren eingesetzt. Die von Pseudo-Zufallsgeneratoren
generierten Zufallsfolgen sind keine echten, also zufälligen Zufallsfolgen,
sondern durch einen Algorithmus reproduzierbar generierte Folgen,
mit statistischen Eigenschaften von echten Zufallsfolgen.
-
Pseudo-Zufallsfolgen
können
jedoch wie echte Zufallsfolgen eingesetzt werden, solange der generierende
Algorithmus für
Außenstehende
nicht ermittelbar ist. Dieses ist jedoch häufig der Fall, denn die Kenntnis
einer langen Pseudo-Zufallsfolge oder insbesondere eines Startwertes
für den
Zufallsgenerator lässt
auf den Algorithmus und damit auf die nachfolgenden Pseudo-Zufallswerte
schließen.
Die Kenntnis des Algorithmus und damit der dadurch generierten Pseudo-Zufallsfolge
ermöglicht
es dann, die Schaltungsanordnung anzugreifen, um beispielsweise
verschlüsselte
Daten zu entschlüsseln.
-
Um
zu verhindern, dass die Pseudo-Zufallsfolge für einen Angreifer vorhersagbar
ist, muss der Startwert des Pseudo-Zufallsgenerators unbekannt sein. Sogar
dem Hersteller muss der Startwert unbekannt sein, da der Hersteller
ansonsten die Möglichkeit
hätte,
beim Anwender die Schaltungsanordnung anzugreifen oder einem Dritten
den Angriff durch Preisgabe des Startwertes zu erleichtern.
-
Ein
möglicher
Ansatz, um einen unbekannten Startwert zu generieren, ist, diesen
Startwert schaltungsintern durch einen weiteren Zufallsgenerator
zu generieren. Will man echte Zufallsgeneratoren zu diesem Zweck
vermeiden, treten bei der Generierung des Startwertes die gleichen
Probleme auf, wie die oben beschriebenen Probleme zur Generierung der
eigentlichen Zufallsfolge.
-
Es
stellt sich somit die Aufgabe, schaltungsintern einen echten Zufallswert
als Startwert für
einen Pseudo-Zufallsgenerator
mit geringem schaltungstechnischem Aufwand zu generieren.
-
Die
Aufgabe wird durch eine Schaltungsanordnung und ein Verfahren mit
den Merkmalen der entsprechenden nebengeordneten Patentansprüche gelöst.
-
Die
Schaltungsanordnung zum Initialisieren eines Zufallsgenerators umfasst
einen flüchtigen Schreib-Lese-Speicher
und eine Zugriffsvorrichtung zum Abspeichern und Auslesen von Informationen
in den Schreib-Lese-Speicher, wobei die Zugriffsvorrichtung an den
Schreib-Lese-Speicher gekoppelt ist und ausgebildet ist, Information
aus zumindest einen Bereich des Schreib-Lese-Speichers auszulesen. Die
Zugriffsvorrichtung ist ferner ausgebildet, die ausgelesene Information
in einen Startwert zu transformieren und den Startwert ausgangsseitig
bereitzustellen, oder die ausgelesene Information ausgangsseitig
als Startwert bereitzustellen. Des Weiteren umfasst die Schaltungsanordnung
eine Schaltvorrichtung, die an die Zugriffsvorrichtung gekoppelt
ist und die ausgebildet ist, den zumindest einen Bereich des Schreib-Lese-Speichers
für einen
Zeitraum von einem Anschluss zur Bereitstellung einer Versorgungsspannung
zu entkoppeln, oder ausgebildet ist, während eines Zeitraums ein dem
Schreib-Lese-Speicher die Bereitstellung eines informationserhaltenden
Signals, zur Erhaltung der Information in dem zumindest einen Bereich
des Schreib-Lese-Speichers, für
den Schreib-Lese-Speicher zu deaktivieren, sowie eine Zufallsgeneratorvorrichtung
mit einem Zufallsgenerator, der ausgebildet ist, eine Zufallsfolge basierend
auf dem von der Zugriffsvorrichtung bereitgestellten Startwert zu
generieren.
-
Dabei
zielt die Unterbrechung der Versorgungsspannung auf ein statisches
RAM, oder so genanntes SRAM, bei dem die gespeicherte Information
schwindet, wenn die Versorgungsspannung entkoppelt ist.
-
Die
Unterbrechung des informationserhaltenden Signals zielt auf ein
dynamisches RAM, oder DRAM, in dem das informationserhaltendes Signal, auch
als Refresh-Signal bezeichnet, bereitgestellt wird, um eine bei
diesem Speichertyp grundsätzlich erforderliche
regelmäßige Auffrischung
des Speicherinhalts durch speicherinterne Schaltungen zu steuern.
Wenn die Bereitstellung des Signals unterbrochen wird, unterbleibt
die Auffrischung und die gespeicherte Information schwindet. Die
Deaktivierung kann mittels eines Deaktivierungsmittels erfolgen, das
das informationserhaltende Signal vom Schreib-Lese-Speicher entkoppelt
der das informationserhaltende Signal unterdrückt.
-
Der
Vorteil dieser Schaltungsanordnung ist, dass der eigentlich als
Arbeitsspeicher vorgesehene Schreib-Lese-Speicher genutzt wird,
um den Startwert für
den Zufallsgenerator zu generieren. Diese Schaltungsanordnung ist
mit wenig zusätzlichem schaltungstechnischem
Aufwand zu realisieren. Sie kann in Security Controllern im Chipkartenbereich Platz
sparend eingesetzt werden.
-
Durch
die beschriebene Schaltungsanordnungen und das entsprechende Verfahren
zum Betreiben ist eine Lösung
gefunden worden, die es erlaubt, Zufallszahlen bereitzustellen,
ohne dass die theoretische Möglichkeit
besteht, dass der Hersteller des Security Controllers diese Zufallszahlen
vorausberechnen kann, indem er neben dem Algorithmus auch den Startwert
kennt.
-
Es
sei bemerkt, dass, wenn im Folgenden von einem „Zufallsgenerator" und „Zufallsfolgen" die Rede ist, sich
die Ausführungen
auf einen Pseudo-Zufallsgenerator beziehen, der aus dem Startwert
unter Verwendung eines Algorithmus eine Pseudo-Zufallsfolge generiert.
-
Beim
Abschalten der Stromversorgung beziehungsweise Spannungsversorgung
des Schreib-Lese-Speichers, der beispielsweise als RAM (Random Access
Memory)-Baustein oder als Speichermodul ausgebildet ist, schwindet
die gespeicherte Information nach einer gewissen Zeit.
-
Die
Flüchtigkeit
der im Schreib-Lese-Speicher gespeicherten Information bei Unterbrechung der
Versorgungsspannung wird ausgenutzt, um schaltungsintern einen zufälligen Wert
als Basis für den
Startwert des Zufallsgenerators zu generieren. Das Abschalten der
Versorgungsspannung führt
in der Regel nicht zu einem plötzlichen,
totalen Datenverlust, sondern der binäre Wert eines Bits ist nicht mehr
stabil und kann sich verändern.
Dieser Vorgang wird auch als „Kippen" eines Bits bezeichnet.
Die Wahrscheinlichkeit hierfür
steigt mit zunehmender Zeitdauer seit der Unterbrechung der Spannungsversorgung,
sodass eine zunehmende Anzahl von Bits kippt. Dieser Vorgang ist
zufällig,
denn es lässt
sich nicht vorhersagen, wann das einzelne Bit kippt.
-
Vorteilhafterweise
umfasst die Zugriffsvorrichtung eine Transformationsvorrichtung,
um mit einer komprimierenden oder selektierenden Funktion, beispielsweise
einer Hash-Funktion, aus einer großen Anzahl von Zufallsbits
den Startwert, der wesentlich weniger Bits umfasst, zu generieren.
Auf diese Weise gehen mehr zufällige
Hits aus dem Schreib-Lese-Speicher in den Startwert ein, als wenn nur
die ausgelesene Information als Startwert bereitgestellt wird.
-
In
einer vorteilhaften Ausgestaltung wird bei jedem Start der Schaltungsanordnung
der Zufallsgenerator mit einem neuen Startwert initialisiert. Dieses erhöht die Sicherheit.
-
In
einer alternativen Ausgestaltung ist dem eigentlichen Zufallsgenerator
eine Speichervorrichtung vorangeschaltet, um den Startwert zu speichern.
In dieser Ausgestaltung wird der Startwert lediglich einmal, beispielsweise
nur bei der Produktion oder bei der Inbetriebnahme der Schaltungsanordnung,
mittels des Schreib-Lese-Speichers generiert und in der Speichervorrichtung
abgespeichert. In Abhängigkeit
der mit diesem ersten Startwert generierten Zufallsfolge speichert
der Zufallsgenerator einen neuen Startwert in die Speichervorrichtung,
sodass die Zufallszahlen sich bei einem Neustart der Schaltungsanordnung
weder wiederholen noch dass Zeit durch die Generierung des Startwertes
verloren geht.
-
Vorteilhafterweise
wird in den Schreib-Lese-Speicher vor dem Entkoppeln eine vorgegebene Information
geschrieben, sodass durch die Anzahl der gekippten Bits bestimmbar
ist, um daraus Rückschlüsse auf
die Güte
die Startwertes zu ziehen.
-
In
einer vorteilhaften Ausgestaltung ist eine Vergleichsvorrichtung
ausgebildet, zu überprüfen, ob eine
vorgegebene Testinformation und eine ausgelesene Testinformation
in einem vorgegebenen Zusammenhang stehen. Die ausgelesene Testinformation
wird aus demselben Speicherbereich ausgelesen, in dem die vorgegebene
Testinformation vor der Entkopplung der Versorgungsspannung abgelegt worden
ist. Sie unterscheiden sich durch die gekippten Bits. Der Bereich,
aus dem die Testinformation ausgelesen wird, und der Bereich, aus
dem die Information für
den Startwert ausgelesen wird, können, zumindest
zum Teil, übereinstimmen,
oder sich von einander in Gänze
unterscheiden.
-
Durch
die Ausgestaltung der Zugriffsvorrichtung mit der Vergleichsvorrichtung
kann die Güte
der Zufallsfolge überprüft werden.
Beispielsweise kann durch einen Vergleich der vorgegebenen Testinformation
und der ausgelesenen Testinformation überprüft werden, ob in ausreichendem
Maße Bits
gekippt sind, sodass davon auszugehen ist, dass die ausgelesene
Information ausreichen dekorreliert und zufällig ist, um als Basis eines
Startwertes zu dienen.
-
In
einer einfach zu realisierenden Ausgestaltung ist die Zeitdauer,
währenddessen
die Versorgungsspannung entkoppelt wird, vorgegeben. Dieses kann
beispielsweise auf einfache Weise mit einem Zähler oder einem RC-Glied realisiert
werden. Wenn dieser Zeitraum ausreichend lang ist, kann dadurch
sichergestellt werden, dass üblicherweise
genügend
Bits kippen, sodass die ausgelesene Information ausreichend zufällig ist.
-
Um
eine vorgegebene Güte
der ausgelesenen Information zu erreichen, ist in einer vorteilhaften Ausgestaltung
die Vergleichsvorrichtung derart ausgebildet, dass sie die Entkopplung
der Versorgungsspannung steuert, bis die vorgegebene Testinformation
und die ausgelesene Testinformation in dem vorgegebenen Zusammenhang
stehen. Dies kann beispielsweise der Fall sein, wenn die Hälfte der
Testinformation verloren gegangen ist beziehungsweise die Hälfte der
Bits gekippt ist.
-
In
einer alternativen Ausgestaltung können sich Entkopplungs- und Prüfschritte
abwechseln, sodass schrittweise die Güte der ausgelesenen Information
als Startwert verbessert wird.
-
In
einer besonders einfach zu realisierenden Ausgestaltung ist der
gesamte Schreib-Lese-Speicher von der Versorgungsspannung entkoppelbar.
-
Eine
zweckmäßige Ausgestaltung
nutzt als Kriterium, um den vorgegebenen Zusammenhang zu überprüfen, die
Hamming-Distanz. Dabei werden die Anzahl der Bits, in denen sich
die vorgegebene und die ausgelesene Testinformation unterscheiden,
verglichen.
-
Unter
der Vorrausetzung, dass die vorgegebene Information nur gleiche
Bits umfasst, kann als Gütekriterium
das Hamming-Gewicht
der ausgelesen Testinformation benutzt werden, das angibt wie viele der
Bits gekippt sind.
-
Das
Verfahren, um einen Zufallsgenerator mittels eines flüchtigen
Schreib-Lese-Speichers zu initialisieren, wobei Information in zumindest
einen Bereich des flüchtigen
Schreib-Lese-Speichers
gespeichert ist, umfasst die Schritte:
- – Unterbrechen
einer Versorgungsspannung für den
zumindest einen Bereich des Schreib-Lese-Speichers während eines
Zeitraums oder Unterbrechen der Bereitstellung eines informationserhaltenden
Signals für
den zumindest einen Bereich des Schreib-Lese-Speichers während eines Zeitraums,
- – Auslesen
von Information aus dem zumindest einen Bereich des Schreib-Lese-Speichers
und
- – Bereitstellen
der ausgelesenen Information als Startwert für den Zufallsgenerator oder
Transformieren der ausgelesenen Information in einen Startwert und
Bereitstellen des Startwertes für den
Zufallsgenerator.
-
Vorteil
dieses Verfahrens ist, dass dem Zufallsgenerator ein echter Zufallswert,
basierend auf dem Informationsverlustef fekt des flüchtigen Schreib-Lese-Speichers,
als Startwert bereitgestellt wird, was die Vorhersagbarkeit der
generierten Zufallsfolge für
einen Angreifer unmöglicht
macht.
-
Um
die Güte
des Startwerts weiter zu verbessern, kann auf eine größere Anzahl
von Bits als ausgelesener Information, als eigentlich als Startwert benötigt wird,
zurückgegriffen
werden. Die ausgelesene Information wird mittels einer komprimierenden oder
selektierenden Funktion zum Startwert mit der erforderlichen Anzahl
Bits transformiert. Ein Beispiel für solch eine komprimierende
oder selektierende Funktion ist eine Hash-Funktion.
-
Um
die Güte
der ausgelesenen Information zu überprüfen, werden
die vorgegebene Testinformation und die ausgelesene Testinformation
hinsichtlich eines vorgegebenen Zusammenhangs nach dem Entkoppeln
und vor dem Bereitstellen überprüft.
-
Diese
Prüfung
kann entfallen, wenn die Dauer des Entkopplungszeitraums derart
vorgegeben ist, dass davon auszugehen ist, dass eine ausreichende Anzahl
von Bits gekippt ist, sodass die ausgelesene Information ausreichend
zufällig
und dekorreliert ist. Allerdings ist bei dem vorgegebenen Entkopplungszeitraum
darauf zu achten, dass dessen Dauer so zu wählen ist, dass auch nicht zu
viele Bits gekippt sind. In diesem Fall wären im Extremfall alle Bits
gekippt, wodurch die Information im Schreib-Lese-Speicher wieder
vorhersagbar wäre.
-
In
einer vorteilhaften Verfahrensausgestaltung werden das Speichern,
das Entkoppeln und das Prüfen
wiederholt, bis die vorgegebene Information und die ausgelesene
Information in einem vorgegebenen Zusammenhang stehen. Dabei wird
vorteil hafterweise der Entkopplungszeitraum mit jedem Schritt variiert.
Auf diese Weise werden mit jedem Schritt neue Bitmuster im Schreib-Lese-Speicher
erzeugt, bis die gewünschte
Güte erreicht
ist.
-
In
einer alternativen Verfahrensausgestaltung kann auf das erneute
Speichern verzichtet werden. Mit jedem Entkopplungsschritt kippen
mehr und mehr Bits. Das Entkoppeln und das Prüfen werden wiederholt, bis
die ausgelesene Testinformation und die vorgegebene Testinformation
in dem vorgegebenen Zusammenhang stehen.
-
Auch
bei dieser Verfahrensausgestaltung kann die Dauer der Entkopplungsschritte
variiert werden, um sich schrittweise an das vorgegebene Gütekriterium
anzunähern.
-
Auch
beim Verfahren können
die Vorteile des Hamming-Abstands oder des Hamming-Gewichts als Gütekriterium
genutzt werden.
-
Weitere
vorteilhafte Ausgestaltungen ergeben sich aus den abhängigen Patentansprüchen.
-
Im
Folgenden wird die Erfindung anhand von Ausführungsbeispielen veranschaulicht.
-
Es
zeigen:
-
1 ein
erstes Ausführungsbeispiel
einer Schaltungsanordnung,
-
2 ein
zweites Ausführungsbeispiel
der Schaltungsanordnung,
-
3 ein
drittes Ausführungsbeispiel
der Schaltungsanordnung,
-
4 ein
viertes Ausführungsbeispiel
der Schaltungsanordnung und
-
5 ein
rückgekoppeltes
Schieberegister als Pseudo-Zufallsgenerator.
-
In 1 ist
als erstes Ausführungsbeispiel ein
schematisches Schaltbild einer Schaltungsanordnung mit einem flüchtigen
Schreib-Lese-Speicher 1 dargestellt. Solch eine Schaltungsanordnung
kann beispielsweise von einem Security Controller umfasst sein,
der neben dem flüchtigen
Schreib-Lese-Speicher 1,
der beispielsweise als SRAM ausgebildet ist, noch eine zentrale
Verarbeitungsvorrichtung und verschiedene Peripheriemodule umfasst. Der
Security Controller kann integriert als Chip ausgeführt sein.
-
Der
Schreib-Lese-Speicher 1 umfasst eine Vielzahl von Speicherplätzen 10,
in denen jeweils ein Bit speicherbar ist. Der Übersichtlichkeit halber beschränkt sich
die Darstellung in der 1 auf eine sehr geringe Anzahl
von Speicherplätzen 10.
-
Ferner
umfasst die Schaltungsanordnung eine Zugriffsvorrichtung 2,
um vorgegebene Information I1 in den flüchtigen Schreib-Lese-Speicher 1 zu schreiben.
Die vorgegebene Information I1 ist einem Register 9 gespeichert.
Dieses ist zweckmäßig, wenn
ein Bitmuster in den Schreib-Lese-Speicher 1 geschrieben
werden soll. Wenn dagegen dasselbe Bit in jedem Speicherplatz 10 gespeichert
werden soll, kann auf dieses Register 9 verzichtet werden und
eine entsprechende Routine ausgeführt werden, sodass im Speicher
beispielsweise nur Bits „0" stehen. Die Zugriffsvorrichtung 2 ist
ferner ausgebildet, im Schreib-Lese-Speicher 1 bereitgestellte
Information, hier als I2 gekennzeichnet, auszulesen.
-
Die
vorgegebene Information I1 kann in alle Speicherplätze 10 des
Schreib-Lese-Speicher 1 geschrieben werden oder nur in
einen Teilbereich 15, beispielsweise von der Größe eines
Segments oder eines beziehungsweise mehrerer Wörter.
-
Es
ist auch denkbar, den Schreib-Lese-Speicher 1 derart auszubilden,
dass beim Betriebsstart der Schreib-Lese-Speicher 1 so
initialisiert wird, dass ein vorgegebenes Informationsmuster, beispielsweise
nur die Bits „1" umfassend, im Schreib-Lese-Speicher 1 gespeichert
ist. In diesem Fall ist der oben genannte Schreibschritt nicht erforderlich.
-
Beim
Auslesen wird die Information I2 aus dem Teilbereich 15 ausgelesen,
in dem die vorgegebene Information I1 zuvor abgespeichert worden
ist. Somit sind die vorgegebene, abgespeicherte und die ausgelesene
Information I1, I2 identisch, wenn keine Bits gekippt sind. Dies
ist üblicherweise
der Fall, solange der Schreib-Lese-Speicher 1 an einen
Anschluss zur Spannungsversorgung mit der Versorgungsspannung V
gekoppelt ist. Die Versorgungsspannung V ist über einen Schalter 4 entkoppelbar.
-
Es
ist auch denkbar, den Schreib-Lese-Speicher 1 derart auszubilden,
dass lediglich der Bereich 15, in dem die vorgegebene Information
I1 gespeichert worden ist, von der Versorgungsspannung V entkoppelt
ist. Diese Ausgestaltung ist jedoch schaltungstechnisch aufwändiger.
-
Im
normalen Betrieb wird durch die Zugriffsvorrichtung 2 auf
den Schreib-Lese-Speicher 1 zugegriffen, sodass Daten für eine Datenverarbeitung ausgelesen
und dort nach erfolgter Datenverarbeitung abgelegt werden. Der Schreib-Lese-Speicher 1 dient
im normalen Betrieb als Arbeitsspeicher.
-
Des
Weiteren umfasst die Schaltungsanordnung eine Schaltvorrichtung 3,
um den Schalter 4 zur Unterbrechung der Versorgungsspannung
V anzusteuern. Im hier dargestellten Ausführungsbeispiel ist die Schaltvorrichtung 3 derart
ausgestaltet, dass die Versorgungsspannung V für einen vorgegebenen Zeitraum
T unterbrochen wird.
-
Ferner
umfasst die Schaltungsanordnung einen Zufallsgenerator 5,
an dem eingangsseitig ein von der Zugriffsvorrichtung 2 bereitgestellter
Startwert S anliegt. Der Zufallsgenerator 5 ist ausgebildet, in
Abhängigkeit
des Startwertes S, eine Zufallsfolge Z zu generieren.
-
Um
den Zufallsgenerator 5 zu initialisieren, wird die vorgegebene
Information I1 zunächst
in den Schreib-Lese-Speicher 1 geschrieben. Im einfachsten
Fall wird stets dasselbe Bit, entweder "0" oder "1", in jede Speicherzelle geschrieben.
Es ist aber auch denkbar, ein anderes vorgegebenes Muster, beispielsweise
eine Folge alternierender Bits "0" und "1", oder eine vorgegebene Folge von Bits,
die im Register 9 gespeichert sind, zu verwenden.
-
Solange
der Schreib-Lese-Speicher 1 an die Versorgungsspannung
V gekoppelt ist, treten keine Datenverluste auf. Bei Abschaltung
der Stromversorgung beziehungsweise Entkopplung der Versorgungsspannung
V für den
Zeitraum T ist die Stabilität der
im Schreib-Lese-Speicher 1 gespeicherten Information nicht
mehr gewährleistet.
Vielmehr schwindet die gespeicherte vorgegeben Information mit zunehmender
Zeit, da eine zunehmende Anzahl von Bits kippt. Mit fortschreitender
Zeit seit Entkoppelung der Versorgungsspannung verschwindet die
vorgegebene Information mehr und mehr und die Zufälligkeit
der im Schreib-Lese-Speicher bereitgestellten Information steigt
an.
-
Auf
Grund dieses Effekts verändern
sich die Bits im Schreib-Lese-Speicher 1.
Diese Bits sind von Außen
nicht direkt detektierbar. Sie hängen
auch nicht direkt von Umgebungsparametern ab. Einflüsse wie
Temperatur oder die Versorgungsspannung verändern lediglich die Geschwindigkeit,
mit der die vorgegebene Information schwindet. Wenn der Chip sehr
stark gekühlt
wird, beispielsweise in flüssigem Stickstoff,
ist die Anzahl der gekippten Bits geringer, als wenn dieselbe Zeitdauer
bei normaler Umgebungstemperatur gekoppelt würde. Bei hohen Temperaturen
ist die Anzahl der gekippten Bits, im Vergleich zur normalen Umgebungstemperatur,
bei selber Entkopplungsdauer deutlich erhöht. Das von diesem Effekt herrührende Bitmuster
im Schreib-Lese-Speicher 1 ist nicht vorhersehbar.
-
Bei
Wiederankopplung der Versorgungsspannung V an den Schreib-Lese-Speicher 1 werden die
im Zeitraum T, in dem die Versorgungsspannung V entkoppelt war,
angenommenen Bitzustände
beigehalten. Diese Zustände
werden mittels der Zugriffsvorrichtung 2 ausgelesen. Die
Zugriffsvorrichtung 2 liest die durch das Entkoppeln veränderte Information
I2 aus.
-
Im
in 1 dargestellten Ausführungsbeispiel wird ein Bereich 15 des
Schreib-Lese-Speichers 1 ausgelesen und die ausgelesene
Information I2 von der Zugriffsvorrichtung 2 dem Pseudo-Zufallsgenerator 5 als
Startwert S bereitgestellt. Der Pseudo-Zufallsgenerator 5 generiert
basierend auf diesem Startwert eine Zufallsfolge Z.
-
In
diesem Ausführungsbeispiel
wird der Zufallsgenerator 5 bei jedem Betriebsbeginn erneut
initialisiert. Selbstverständlich
ist es denkbar, ihn auch während
des Betriebs nochmals zu initialisieren.
-
5 veranschaulicht
die Funktionsweise eines typischen Pseudo-Zufallsgenerators 5,
der als rückgekoppeltes
Schieberegister 20 ausgebildet ist.
-
Das
Schieberegister 20 umfasst eine Vielzahl von Registerplätzen 21,
in denen jeweils ein Bit gespeichert ist. Einige der Registerplätze 21,
in 3 schraffiert dargestellt, werden abgegriffen
und über
EXKLUSIV-ODER-Verknüpfungen 22 miteinander
verknüpft.
Das daraus resultierende Bit ZB ist ein Bit der Zufallsfolge Z.
Dieses Bit ZB wird links in das Schieberegister 20 geschoben,
sodass die sich darin bereits befindlichen Bits um eine Position
nach rechts verschoben werden. Das äußerst rechte Bit wird aus dem
Schieberegister 20 geschoben. Es sei bemerkt, dass Länge und
Anzapfungen des Schieberegisters 20 beispielhaft dargestellt
sind. Dem Fachmann sind Schieberegister verschiedener Längen mit
geeigneten Anzapfungen hinreichend bekannt.
-
Das
nächste
Bit ZB der Zufallsfolge Z wird auf ebensolche Weise generiert. Mit
jedem Takt wird ein neues Bit ZB der Zufallsfolge Z durch das rückgekoppelte
Schieberegister generiert. Es ist auch denkbar, als Bit für die Zufallsfolge
das heraus geschobene Bit zu verwenden.
-
Um
das Schieberegister 20 zu initialisieren, werden in die
Registerplätze 21 das
Bitmuster des Startwertes S geladen.
-
Jedes
Bit der Zufallsfolge Z hängt
von den sich im Schieberegister befindenden Bits ab. Die Zufallsfolge
wiederholt sich, sobald wieder der Startzustand S im Schieberegister 20 steht.
Da die Folgen sehr lang sein können,
idealerweise 2n-1 Bits, wobei n die Länge des
Schieberegisters ist, bevor sie sich wiederholen, kann auch aus
der Kenntnis der ausgegebenen Zufallsfolge Z mit einigen Bits kaum
auf den Zustand des Schieberegisters und damit auf die nachfolgenden
Bits geschlossen werden.
-
2 zeigt
ein zweites Ausführungsbeispiel einer
Schaltungsanordnung als schematisches Schaltbild.
-
Gleiche
Bezugszeichen kennzeichnen gleiche Anordnungsmerkmale. Zur Vermeidung
von Wiederholungen wird im Wesentlichen auf die Unterschiede eingegangen.
-
In 2 ist
eine Zufallsgeneratoranordnung 8 vorgesehen, die den eigentlichen
Zufallsgenerator 5 sowie eine Speichervorrichtung 6 umfasst.
Die dem Zufallsgenerator 5 vorangeschaltete Speichervorrichtung 6 ist
an die Zugriffsvorrichtung 2 gekoppelt.
-
In
dieser Anordnung wird der Startwert S von der Zugriffsvorrichtung 2 der
Speichervorrichtung 6 bereitgestellt und in dieser abgespeichert.
Der Zufallsgenerator 5 lädt den Startwert S aus der
Speichervorrichtung 6 als Startzustand in den Zufallsgenerator 5.
Der Zustand verändert
sich bei Generierung der Zufallsfolge Z. Während des Betriebs der Schaltungsanordnung
bleibt der aktuelle Zustand im Schieberegister ste hen, um in Abhängigkeit
davon eine weitere Zufallsfolge generieren zu können. Vor dem Herunterfahren
der Schaltungsanordnung wird der aktuelle Zustand, d.h. das im Schieberegister
stehende Bitmuster S1 in der Speichervorrichtung 6 gespeichert,
um beim nächsten
Start der Schaltungsanordnung als Startwert S1 dem Zufallsgenerator
bereitgestellt zu werden. Die Speichervorrichtung 6 ist als
nichtflüchtiger
Speicher ausgebildet, sodass lediglich bei Inbetriebnahme der Schaltungsanordnung die
Generierung des Startwertes S mittels des Schreib-Lese-Speichers 1 durchgeführt werden muss.
Es kann jedoch eine spezielle Prozedur oder ein so genanntes Reset
vorgesehen sein, um die Generierung des Startwertes S mittels des
Schreib-Lese-Speichers 1 zu vorgegebenen oder vom Anwender
gewählten
Zeitpunkten erneut durchzuführen.
-
Die
Zugriffsvorrichtung 2 umfasst in diesem Ausführungsbeispiel
eine Transformationsvorrichtung 7, die ausgebildet ist,
aus der ausgelesenen Information I2 den Startwert S zu generieren.
Zur Generierung wird eine Hash-Transformation H verwendet, die aus
der großen
Anzahl von Bits der ausgelesenen Information I2 die als Startwert
benötigte
Anzahl Bits generiert. Aber auch eine andere selektierende oder
komprimierende Funktion ist denkbar. Auf diese Weise kann die Güte beziehungsweise
Zufälligkeit
des Startwertes S erhöht
werden, da der Bereich 15 und damit auch die Anzahl der
Speicherplätze,
aus denen der Startwert S generiert wird, über die für den Startwert S benötigte Anzahl
Bits hinausgeht.
-
Ferner
umfasst die Zugriffsvorrichtung 2 eine Vergleichsvorrichtung 17,
die ausgebildet ist, eine vorgegebene Testinformation TI1 und eine
ausgelesene Testinformation TI2 auf einen vorgegebenen Zusammenhang
hin zu überprüfen. Die
vorgegebene Testinformation TI1 wird in einen Bereich 16 des Schreib- Lese-Speichers 1 abgespeichert
und nach dem Entkoppeln der Versorgungsspannung V von dort wieder
ausgelesen. Dieser Bereich 16 kann Teil des Bereiches 15 sein,
in dem die vorgegebene Information I1 abgespeichert wird. Die beiden
Bereichen 15, 16 können in Gänze oder gar nicht übereinstimmen.
Es ist lediglich erforderlich, dass die Bereiche 15, 16 in
gleicher Weise von der Versorgungsspannung V entkoppelbar sind.
Diese Prüfung
in der Vergleichsvorrichtung 17 ermöglicht, die Güte des Startwertes
S sicherzustellen. In diesem Ausführungsbeispiel ist, im Gegensatz
zu dem in 1 dargestellten, kein Register
zur Bereitstellung der vorgegebenen Information I1 vorgesehen. Durch
eine Löschprozedur
kann in allen Speicherplätzen 10 das
gleiche Bit, z. B. „0" gespeichert werden.
Somit umfasst die vorgegebene Information I1 und die vorgegebene Testinformation
IT1 ein Folge von Bits „0".
-
Die
Güte der
ausgelesenen Information I2 für den
Startwert S lässt
sich anhand des Unterschiedes zwischen der vorgegebenen Information
I1 und der ausgelesenen Information I2 mittels des so genannten
Hamming-Abstandes bemessen. Dieser gibt die Anzahl der Positionen,
in der sich zwei binäre
Bitfolgen voneinander unterscheiden, an. Zwischen der Folge "01001 10011 00010
10111", wie in 1 im Schreib-Lese-Speicher 1 dargestellt,
und der Folge "11101
10011 01010 01101",
wie in 2 im Schreib-Lese-Speicher 1 dargestellt,
beträgt
der Hamming-Abstand 6.
-
Es
ist anzustreben, dass der Hamming-Abstand der ausgelesenen Testinformation
I2 und der vorgegebenen Testinformation I1 einen vorgegebenen Wert
nicht unterschreitet. Obwohl ähnliche
Startwerte für
ein rückgekoppeltes
Scheiberegister keinesfalls mit ähnlichen,
daraus generierten Zufallsfolgen Z einhergehen, sinkt mit geringem
Hamming-Abstand die Menge mögli cher
Startwerte, denn die ausgelesene Information I2 unterscheidet sich
nur um wenige Bits von der vorgegebenen Information I1. Dieses kann
einen Angriff begünstigen.
-
Wenn
der vorgegebene Hamming-Abstand nicht durch einmaliges Entkoppeln
erreicht worden ist, wird der Informationsverlust in den Speicherzellen 10 durch
weitere Entkopplungsschritte solange fortgeführt, bis eine ausreichende
Veränderung
des Speicherinhaltes des Schreib-Lese-Speichers 1 stattgefunden
hat. Der Schreib-Lese-Speicher 1 wird hierzu kurzzeitig
wieder mit Strom versorgt und das Hamming-Gewicht zwischen vorgegebener
und ausgelesener Testinformation TI1, TI2 bestimmt. Bei diesem Vorgehen
werden lediglich der Entkopplungs- und Prüfschritt wiederholt. Die Dauer
T1, T2 der Entkopplungsschritte kann gleich sein, oder variieren.
-
Alternativ
kann wiederholt die vorgegebene Information I1 im Schreib-Lese-Speicher 1 gespeichert,
entkoppelt und geprüft
werden. Hierbei kann die Dauer des Entkopplungsschritts vorgegeben sein.
In diesem Fall ist die vorgegebene Dauer so zu wählen, dass üblicherweise das Gütekriterium
erfüllt wird,
sodass durch den Prüfschritt
nur Ausreißer
mit zufällig
zu wenigen gekippten Bits detektiert werden. Alternativ ist auch
denkbar, dass die Dauer der Entkopplungsschritte mit zunehmender
Wiederholung der Schritte verlängert
wird, um sich schrittweise an das geforderte Gütekriterium heranzutasten.
-
Es
ist möglich,
zum Prüfen
die ausgelesene Information I2 als Testinformation TI2 zu betrachten. In
diesem Fall ist nach dem erfolgreichen Prüfen kein weiterer Ausleseschritt
erforderlich. Es auch möglich, zum
Prüfen
Testinformation aus einen kleineren Bereich 16, als dem
Bereich 15, in dem die ausgelesene Information I2 für den Startwert
S gespeichert wird, oder aus einen darüber hinaus gehenden Bereich oder
aus einen anderen Bereich oder aus dem gesamten Schreib-Lese-Speicher 1 heranzuziehen.
-
Das
Bestimmen des Hamming-Abstands der Bitfolge aus dem zu prüfenden Bereich
soll lediglich einen Anhaltspunkt liefern, inwiefern der Informationsverlust
im Schreib-Lese-Speicher 1 fortgeschritten ist. Eine kleine
Stichprobe, beispielsweise die ersten acht Byte im Schreib-Lese-Speicher 1 ist
zur Bewertung ausreichend. Wenn diese Stichprobe das Gütekriterium
erfüllt,
wird die auszulesende Information I2 ausgelesen.
-
Alternativ
kann die Zufälligkeit
der Stichprobe anhand des so genannten Hamming-Gewichts bestimmt
werden. Das Hamming Gewicht ist die Anzahl eines vergebenen binären Werts, üblicherweise „1", in einer Bitfolge.
Somit ist das Hamming-Gewicht der
Hamming-Abstand von einem leeren Wort, einer Abfolge von Bits „0", und gleichbedeutend
mit der Anzahl der gesetzten Bits „1". So hat die Bitfolge „11101 10011
01010 01101", die
im Schreib-Lese-Speicher 1 der 2 dargestellt
ist, das Hamming-Gewicht 12.
-
Wenn
als vorgegebene Information lediglich die Bits „0" in den Schreib-Lese-Speicher geschrieben
werden, so kann die Güte
der ausgelesenen Information I2 im Vorwege durch die Bestimmung
des Hamming-Gewichts einer Stichprobe, wie oben beschrieben, bestimmt
werden. Natürlich
kann auch das Hamming-Gewicht
der ausgelesenen Information I2 aus dem Bereich 15 oder
dem gesamten Schreib-Lese-Speicher 1 als Gütekriterium
dienen.
-
Die 3 und 4 zeigen
ein drittes beziehungsweise viertes Ausführungsbeispiel, bei denen der
Schreib-Lese-Speicher 1 als DRAM ausgebildet ist. Zur Vermeidung
von Wiederholungen wird im Folgenden nur auf die Unterschiede zwischen
den Ausführungsbeispielen
der 1 und 3 sowie zwischen den Ausführungsbeispielen
der 2 und 4 eingegangen. Die Versorgungsspannung
V für das
DRAM 1 ist nicht durch die Schalteinrichtung 4 entkoppelbar,
sondern speist den Schreib-Lese-Speicher 1 kontinuierlich.
Des Weiteren sind im dritten und vierten Ausführungsbeispiel, die in den 3 beziehungsweise 4 dargestellt
sind, jeweils ein Refresh-Signal R vorgesehen, das von der Zugriffseinrichtung 2 bereitgestellt
wird und an das DRAM 1 koppelbar ist, um eine bei diesem
Speichertyp grundsätzlich
erforderliche regelmäßige Auffrischung
des Speicherinhalts durch speicherinterne Schaltungen zu steuern.
Wenn die Bereitstellung des Refresh-Signals R unterbrochen wird,
unterbleibt die Auffrischung und die gespeicherte Information schwindet.
-
Die
Schalteinrichtung 3 ist ausgebildet, die Bereitstellung
des Refresh-Signals R zu unterbrechen, wie durch den von der Schalteinrichtung 3 gesteuerten
Schalter 4, der die Zuführung
des Refresh-Signals R zum Schreib-Lese-Speicher 1 unterbrechen
kann, angedeutet ist.
-
Es
sei darauf hingewiesen, dass die Merkmale der Ausführungsbeispiele
der 1, 2, 3 und 4 kombinierbar
sind.
-
- 1
- flüchtiger
Schreib-Lese-Speicher
- 2
- Zugriffsvorrichtung
- 3
- Schaltvorrichtung
- 4
- Schalter
- 5
- Zufallsgenerator
- 6
- Speichervorrichtung
- 7
- Transformationsvorrichtung
- 8
- Zufallsgeneratorvorrichtung
- 9
- Register
- 10
- Speicherplatz
- 14
- Bereitstellungsmittel
- 15,
16
- Bereich
- 17
- Vergleichsvorrichtung
- 20
- Schieberegister
- 21
- Registerplatz
- 22
- EXKLUSIV-ODER-Verknüpfung
- I1,
I2
- Information
- IT1,
IT2
- Testinformation
- H
- Hash-Funktion
- R
- Refresh-Signal
- S,
S1
- Startwert
- T,
T1, T2
- Dauer
- V
- Versorgungsspannung
- Z
- Zufallsfolge
- ZB
- Zufallsbit