-
Stand der Technik
-
Die Erfindung betrifft eine Recheneinrichtung mit einer primären Recheneinheit und wenigstens einer sekundären Recheneinheit, wobei die primäre Recheneinheit dazu ausgebildet ist, primäre digitale Eingangsdaten einer vorgebbaren ersten Datenverarbeitung zu unterziehen, und wobei die sekundäre Recheneinheit dazu ausgebildet ist, sekundäre digitale Eingangsdaten einer vorgebbaren zweiten Datenverarbeitung zu unterziehen.
-
Die Erfindung betrifft ferner ein Verfahren zum Betreiben einer Recheneinrichtung der vorstehend genannten Art.
-
Die eingangs genannten Vorrichtungen bzw. Verfahren sind an sich bekannt und werden u.a. zur Ausführung von kryptografischen Verfahren oder allgemein zur Verarbeitung von sicherheitsrelevanten Daten, insbesondere auch im Bereich der IT-Sicherheit, benutzt. Es ist ebenfalls bekannt, dass die vorstehend genannten Systeme und Verfahren bzw. genauer deren konkrete hard- und softwaremäßige Implementierung in einem Zielsystem wie z.B. einem multi-core Mikrocontroller oder dergleichen mittels sog. Seitenkanalattacken (engl.: side channel attack) angreifbar sind. Bei diesen Seitenkanalattacken werden ein oder mehrere physikalische Parameter (z.B. Stromverbrauch, elektromagnetische Abstrahlungen usw.) eines anzugreifenden Systems erfasst und im Hinblick auf eine Korrelation mit geheimen Daten wie z.B. geheimen Schlüsseln von kryptografischen Verfahren untersucht. Daraus kann ein Angreifer Informationen über den geheimen Schlüssel und/oder die verarbeiteten Daten erlangen.
-
Eine weitere Klasse von Angriffen auf die eingangs genannten Systeme und Verfahren besteht darin, aktiv Fehler bei der Ausführung eines Verfahrens in das System einzubringen, d.h. zu injizieren. Diese Angriffe werden auch als "Fault Injection attacks" bezeichnet.
-
Offenbarung der Erfindung
-
Demgemäß ist es Aufgabe der vorliegenden Erfindung, eine Recheneinrichtung und ein Verfahren der eingangs genannten Art dahingehend zu verbessern, dass eine gesteigerte Sicherheit gegenüber Seitenkanalattacken und/oder Fehlerattacken gegeben ist.
-
Diese Aufgabe wird bei der Recheneinrichtung der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass die Recheneinrichtung dazu ausgebildet ist, die zweite Datenverarbeitung durch die wenigstens eine sekundäre Recheneinheit zumindest zeitweise gegenüber der ersten Datenverarbeitung durch die primäre Recheneinheit zu verzögern. Dadurch wird vorteilhaft erreicht, dass eine geringere Korrelation zwischen möglicherweise identischen oder ähnlichen auf den verschiedenen Recheneinheiten ausgeführten Algorithmen beziehungsweise Datenverarbeitungsprozessen erhalten wird, was die Sicherheit gegenüber Seitenkanalattacken steigert. Dieser Effekt kann auch als Verstärkung des "algorithmic noise" aufgefasst werden, also eines algorithmisch bedingten "Rauschens", welches die Seitenkanalattacken erschwert.
-
Bei einer bevorzugten Ausführungsform ist vorgesehen, dass die Recheneinrichtung dazu ausgebildet ist, die zweite Datenverarbeitung zufallsabhängig und/oder pseudozufallsabhängig zu verzögern. Hierzu können geeignete Quellen für die Generierung von Zufallsereignissen beziehungsweise Zufallszahlen beziehungsweise Pseudozufallszahlen vorgesehen sein. Generell kann die erfindungsgemäße Verzögerung durch die Recheneinrichtung beispielsweise dadurch herbeigeführt werden, dass ein Referenztaktsignal für die entsprechend zu verzögernde Recheneinheit durch die Recheneinrichtung beeinflusst wird, beispielsweise hinsichtlich seiner Taktfrequenz verringert wird oder zeitweise sogar angehalten wird. Zufallsabhängige und pseudozufallsabhängige Verzögerungen können einer Ausführungsform zufolge auch miteinander kombiniert werden, oder es werden zeitweise zufallsabhängige und zeitweise pseudozufallsabhängige Verzögerungen vorgesehen. Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinrichtung dazu ausgebildet ist, einzelne Datenverarbeitungsschritte und/oder Gruppen von mehreren aufeinanderfolgenden Datenverarbeitungsschritten der zweiten Datenverarbeitung zu verzögern. Bei der Verzögerung der zweiten Datenverarbeitung zwischen jeweils einzelnen Datenverarbeitungsschritten ergibt sich eine besonders gesteigerte Sicherheit.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinrichtung dazu ausgebildet ist, eine Art und Weise (bzw. ein Verfahren), nach der (bzw. nach dem) die zweiten Datenverarbeitung zufallsabhängig und/oder pseudozufallsabhängig verzögert wird, zeitabhängig und/oder ereignisabhängig und/oder zufallsabhängig und/oder pseudozufallsabhängig zu modifizieren. Das bedeutet, die Vorschrift, nach der die erfindungsgemäße Verzögerung der mindestens einen sekundären Recheneinheit erfolgt, kann beispielsweise von dem Auftreten eines oder mehrerer Ereignisse und/oder abhängig von einer Zeit gemacht werden sowie alternativ oder ergänzend abhängig von Zufallsdaten und/oder Pseudozufallsdaten.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinrichtung dazu ausgebildet ist, die primären digitalen Eingangsdaten zumindest zeitweise zu invertieren, um die sekundären digitalen Eingangsdaten zu erhalten. Dadurch ist es möglich, für im Wesentlichen identische oder wenigstens ähnliche Datenverarbeitungsprozesse in verschiedenen Recheneinheiten diesen Recheneinheiten zueinander inverse Eingangsdaten zur Verfügung zu stellen, wodurch die Sicherheit gegenüber Seitenkanalattacken weiter gesteigert werden kann. Insbesondere können sich bei der Verarbeitung von den primären digitalen Eingangsdaten und den hierzu inversen sekundären digitalen Eingangsdaten in den verschiedenen Recheneinheiten zumindest zeitweise Kompensationseffekte hinsichtlich der im Rahmen von Seitenkanalattacken erfassbaren physikalischen Parameter (z.B. Stromverbrauch, elektromagnetische Abstrahlungen usw.) ergeben, die die Sicherheit der Recheneinrichtung noch weiter steigern.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinrichtung dazu ausgebildet ist, in Abhängigkeit von digitalen Ausgangsdaten der primären Recheneinheit und der wenigstens einen sekundären Recheneinheit auf einen Betriebszustand, insbesondere einen Fehler, der primären Recheneinheit und/oder der wenigstens einen sekundären Recheneinheit zu schließen. Hierdurch kann besonders vorteilhaft die Robustheit der erfindungsgemäßen Recheneinrichtung gegenüber Fehlern gesteigert werden.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass eine Invertierungseinheit vorgesehen ist, die dazu ausgebildet ist, die sekundären digitalen Eingangsdaten in Abhängigkeit der primären digitalen Eingangsdaten zu bilden.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass eine Hardwarestruktur wenigstens einer sekundären Recheneinheit im Wesentlichen identisch zu einer Hardwarestruktur der primären Recheneinheit ist.
-
Bei einer weiteren vorteilhaften Erfindungsvariante ist vorgesehen, dass die erste Datenverarbeitung im Wesentlichen identisch zur zweiten Datenverarbeitung ist.
-
Durch die vorstehend genannten Erfindungsvarianten können beispielsweise sogenannte Multi-Core-Recheneinrichtungen bereitgestellt werden, welche in redundanter Weise vorgebbare Algorithmen im Wege einer entsprechenden Datenverarbeitung abarbeiten, wodurch eine gesteigerte Sicherheit gegenüber Fehlern einzelner Recheneinheiten gegeben ist. In Kombination mit der optional möglichen Versorgung wenigstens einer (sekundären) Recheneinheit durch Eingangsdaten, welche invers sind zu den Eingangsdaten anderer Recheneinheiten, ist gleichzeitig eine gesteigerte Sicherheit gegenüber Seitenkanalattacken erzielbar.
-
Bei einer besonders bevorzugten Ausführungsform ist die Recheneinrichtung dazu ausgebildet, ein kryptografisches Verfahren und/oder wenigstens einen Teil hiervon auszuführen, wobei insbesondere die erste und zweite Datenverarbeitung wenigstens Teilschritte von einem oder mehreren kryptografischen Algorithmen umfasst. Bei einer besonders bevorzugten Erfindungsvariante erfolgt die erfindungsgemäße Verzögerung der zweiten Datenverarbeitung durch die sekundäre Recheneinheit in Abhängigkeit der Art des kryptografischen Verfahrens beziehungsweise des kryptografischen Algorithmus.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die primäre Recheneinheit und die sekundäre Recheneinheit auf demselben Halbleiterchip angeordnet und/oder mit derselben elektrischen Energieversorgung verbunden sind, wodurch Seitenkanalattacken weiter erschwert werden.
-
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Verfahren gemäß Patentanspruch 12 angegeben.
-
Weitere Ausgestaltungen, Merkmale und Vorteile der vorliegenden Erfindung sind in der nachstehenden Beschreibung unter Bezugnahme auf die Zeichnung aufgeführt.
-
In der Zeichnung zeigt:
-
1 schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Recheneinrichtung, und
-
2 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens.
-
1 zeigt schematisch eine Recheneinrichtung 100, welche eine primäre Recheneinheit 110a sowie eine sekundäre Recheneinheit 110b aufweist. Optional können auch noch weitere sekundäre Recheneinheiten vorhanden sein, wie dies durch die weitere sekundäre Recheneinheit 110c und die vertikale Punktierung zwischen den Komponenten 110b, 110c angedeutet ist.
-
Die primäre Recheneinheit 110a ist dazu ausgebildet, primäre digitale Eingangsdaten E1 einer vorgebbaren ersten Datenverarbeitung DV1 zu unterziehen, und die sekundäre Recheneinheit 110b ist dazu ausgebildet, sekundäre digitale Eingangsdaten E2 einer vorgebbaren zweiten Datenverarbeitung DV2 zu unterziehen.
-
Bei den Datenverarbeitungen DV1, DV2 kann es sich beispielsweise um kryptografische Verfahren beziehungsweise Teile hiervon beziehungsweise entsprechende Algorithmen handeln.
-
Zur elektrischen Energieversorgung ist eine Energieversorgungseinrichtung E vorgesehen, welche vorliegend alle Recheneinheiten 110a, 110b, 110c speist.
-
Erfindungsgemäß ist vorgeschlagen, dass die Recheneinrichtung 100 dazu ausgebildet ist, die zweite Datenverarbeitung DV2 durch die wenigstens eine sekundäre Recheneinheit 110b zumindest zeitweise gegenüber der ersten Datenverarbeitung DV1 durch die primäre Recheneinheit 110a zu verzögern. Auf diese Weise ergibt sich eine Dekorrelation des Betriebs der beiden Recheneinheiten 110a, 110b, die insbesondere im Falle der Abarbeitung von ähnlichen beziehungsweise identischen Datenverarbeitungsschritten auf mitunter denselben bzw. ähnlichen Daten vorteilhaft ist, um die Sicherheit gegenüber Seitenkanalattacken zu steigern.
-
Besonders bevorzugt ist die Recheneinrichtung 100 dazu ausgebildet, die zweite Datenverarbeitung DV2 zufallsabhängig und/oder pseudozufallsabhängig zu verzögern. Beispielsweise kann eine derartige Verzögerung dadurch erfolgen, dass ein der sekundären Recheneinheit 110b über eine Taktleitung zugeleitetes Taktsignal CLK durch die Recheneinrichtung 100 beeinflusst wird, beispielsweise hinsichtlich seiner Frequenz. Es ist auch möglich, dass die Recheneinrichtung 100 zumindest zeitweise das Taktsignal CLK für die sekundäre Recheneinheit 110b anhält beziehungsweise in dem aktuell vorliegenden Zustand "einfriert", um die erfindungsgemäße Verzögerung zu bewirken. Das Maß der Verzögerung kann dabei wie bereits beschrieben, zufallsabhängig oder pseudozufallsabhängig oder durch Kombination hieraus ermittelt werden.
-
Alternativ oder ergänzend kann eine Verzögerung der zweiten Datenverarbeitung DV2 dadurch erfolgen, dass Pseudoinstruktionen in den von der sekundären Recheneinheit 110b abzuarbeitenden Strom von Instruktionen eingeschleust werden, z.B. ein oder mehrere "NOP"(Nulloperation)-Instruktionen. Alternativ oder ergänzend kann eine Verzögerung der zweiten Datenverarbeitung DV2 dadurch erfolgen, dass ein Programmzeiger der zweiten Recheneinheit im Sinne der Verzögerung modifiziert wird, usw. Eine vergleichbare Verzögerung ist auch für den Betrieb weiterer sekundärer Recheneinheiten 110c der Recheneinrichtung 100 denkbar.
-
Bei einer bevorzugten Ausführungsform kann die zufallsabhängige und/oder pseudozufallsabhängige Ermittlung der erfindungsgemäß anzuwenden Verzögerung in Abhängigkeit eines für jede Recheneinheit 110a, 110b, 110c spezifischen Initialisierungswerts vorgenommen werden, welcher beispielsweise in einem Speicher (nicht gezeigt) der Recheneinrichtung 100 beziehungsweise der jeweiligen Recheneinheit 110a, 110b, 110c angeordnet ist.
-
Eine besondere Steigerung der Sicherheit der Recheneinrichtung 100 gegenüber Seitenkanalattacken ist dann gegeben, wenn die erfindungsgemäße Verzögerung der mindestens einen sekundären Recheneinheit 110b, 110c auf Basis einzelner Datenverarbeitungsschritte beziehungsweise von Gruppen hiervon erfolgt, wenn also zwischen einzelnen Datenverarbeitungsschritten oder wenigstens zwischen wenige Schritte umfassenden Gruppen jeweils zufallsabhängige beziehungsweise pseudozufallsabhängige Verzögerungen bewirkt werden.
-
Bei einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass die Wertebereiche für die anzuwenden Verzögerungen beziehungsweise die Pseudozufallsmuster oder sonstige Charakteristika der anzuwenden Verzögerungen in Abhängigkeit der durch die Recheneinheiten 110a, 110b, 110c zu bearbeitenden Datenverarbeitungsschritte beziehungsweise Algorithmen festgelegt werden, z.B. auch dynamisch, also während einer laufenden Datenverarbeitung DV1, DV2.
-
Besonders vorteilhaft ist ferner, wenn eine Art und Weise, nach der die zweite Datenverarbeitung DV2 zufallsabhängig und/oder pseudozufallsabhängig verzögert wird, zeitabhängig und/oder ereignisabhängig und/oder zufallsabhängig und/oder pseudozufallsabhängig modifiziert wird. Diese Funktionalität kann z.B. durch die Recheneinrichtung 100 beziehungsweise einen gegebenenfalls speziell hierfür vorgesehen Rechenkern beziehungsweise eine weitere Recheneinheit, die ähnlich oder gleichartig zu den Recheneinheiten 110a, 110b, 110c ausgebildet sein kann, ausgeführt werden.
-
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Recheneinrichtung 100 dazu ausgebildet ist, die primären digitalen Eingangsdaten E1 zumindest zeitweise zu invertieren, um die sekundären digitalen Eingangsdaten E2 zu erhalten. Hierdurch können beispielsweise die Recheneinheiten 110a, 110b im Wesentlichen vergleichbare Algorithmen auf zueinander inversen Eingangsdaten durchführen, wodurch eine Möglichkeit eines Abgleichs der entsprechend erhaltenen Ausgangsdaten A1, A2 gegeben ist, was eine weitere Steigerung der Zuverlässigkeit der Recheneinrichtung 100 bewirkt.
-
Beispielsweise kann in Abhängigkeit der digitalen Ausgangsdaten A1, A2 auf einen Betriebszustand, insbesondere einen Fehler, der primären Recheneinheit 110a und/oder der wenigstens einen sekundären Recheneinheit 110b, 110c geschlossen werden.
-
Optional kann auch eine Invertierungseinheit 120 vorgesehen sein, welche die Invertierung der Eingangsdaten vornimmt.
-
Besonders bevorzugt sind bei einer Erfindungsvariante die Hardwarestruktur der primären und sekundären Recheneinheit 110a, 110b im Wesentlichen identisch zueinander, und optional können auch die Datenverarbeitungen DV1, DV2 bzw. zugrundeliegenden Algorithmen im Wesentlichen identisch zueinander sein, wodurch ein redundantes Rechnersystem erhalten werden kann.
-
2 zeigt schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens. In Schritt 200 wird eine zweite Datenverarbeitung DV2 (1) durch die wenigstens eine sekundäre Recheneinheit 110b erfindungsgemäß zumindest zeitweise gegenüber der ersten Datenverarbeitung DV1 durch die primäre Recheneinheit 110a verzögert. In Schritt 210 schließlich wird die verzögerte Datenverarbeitung DV2 durch die sekundäre Recheneinheit 110b ausgeführt. Die erste Datenverarbeitung DV1 kann hierbei z.B. während des Schrittes 200 ausgeführt werden.
-
Die Erfindung kann vorteilhaft bei bestehenden Recheneinrichtungen wie z.B. Mikrocontrollern und/oder (Mikro-)Prozessoren und/oder digitalen Signalprozessoren angewandt werden und kann die Sicherheit gegenüber Seitenkanalattacken und Fault-Injection-Attacken wesentlich steigern. Insbesondere können hiermit auch parallel auf mehreren Recheneinheiten bzw. Rechnerkernen einer Mehrkern-Recheneinrichtung ausführbare Algorithmen, insbesondere kryptografische Algorithmen, abgesichert werden.