DE102020210695A1 - Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern - Google Patents

Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern Download PDF

Info

Publication number
DE102020210695A1
DE102020210695A1 DE102020210695.9A DE102020210695A DE102020210695A1 DE 102020210695 A1 DE102020210695 A1 DE 102020210695A1 DE 102020210695 A DE102020210695 A DE 102020210695A DE 102020210695 A1 DE102020210695 A1 DE 102020210695A1
Authority
DE
Germany
Prior art keywords
clock
clock signal
processing
encryption
scaling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020210695.9A
Other languages
English (en)
Inventor
Sebastien Leger
Benjamin Hettwer
Kallyan Das
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102020210695.9A priority Critical patent/DE102020210695A1/de
Priority to CN202110966839.0A priority patent/CN114089810A/zh
Publication of DE102020210695A1 publication Critical patent/DE102020210695A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft eine Takterzeugungsschaltung zur Bereitstellung eines Verarbeitungstaktsignals, die einen Taktgenerator und ein Taktaufbereitungsmodul umfasst. Der Taktgenerator ist dazu eingerichtet, ein erstes Taktsignal mit einer ersten Taktfrequenz, die entsprechend einer ersten Zufallsauswahl aus einer ersten Anzahl vorbestimmter Taktfrequenzen zufällig ausgewählt wird, zu erzeugen, wobei die erste Zufallsauswahl mittels eines in einem Prozessorkern ausgeführten Frequenzwahlprogramms getroffen wird, das eingerichtet ist, die erste Zufallsauswahl zu bestimmten Auswahlzeitpunkten erneut zu treffen. Das Taktaufbereitungsmodul ist mit dem Taktgenerator verbunden, um das erste Taktsignal zu empfangen, und dazu eingerichtet, das Verarbeitungstaktsignal zu erzeugen und dem Verschlüsselungskern bereitzustellen, wobei eine Verarbeitungsfrequenz des Verarbeitungstaktsignals durch Multiplikation mit einem entsprechend einer zweiten Zufallsauswahl aus einer zweiten Anzahl von Skalierungsfaktoren zufällig ausgewählten Skalierungsfaktor aus der ersten Taktfrequenz abgeleitet wird, wobei die zweite Zufallsauswahl nach jeweils einer bestimmten Anzahl von Takten des Verarbeitungstaktsignals erneut getroffen wird. Weiter werden eine Verschlüsselungsschaltung, ein Verfahren zur Bereitstellung eines Verarbeitungstaktsignals und ein Verfahren zur Durchführung von Verschlüsselungen bereitgestellt.

Description

  • Die vorliegende Erfindung betrifft eine Takterzeugungsschaltung und ein Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern sowie eine Verschlüsselungsschaltung und ein Verfahren zur Durchführung einer oder mehrerer Verschlüsselungen.
  • Stand der Technik
  • Viele moderne elektronische Geräte, etwa Mikrocontroller in Smartcards oder Steuergeräten, implementieren kryptographische Verfahren (z.B. AES - Advanced Encryption Standard, oder DES - Data Encryption Standard), um eine Verschlüsselung von Daten oder eine verschlüsselte Kommunikation mit anderen Geräten zu ermöglichen. Diese Verschlüsselung kann mittels sogenannter Seitenkanalangriffe angegriffen werden, bei denen die physische Implementierung des verwendeten Verschlüsselungsverfahrens analysiert wird.
  • Spezifischer kann der Energieverbrauch oder eine elektromagnetische Abstrahlung einer elektronischen Schaltung, z.B. eines Mikroprozessors oder eines FPGA (Field Programmable Gate Array, programmierbares Logikgatter), in der das Verschlüsselungsverfahren implementiert ist, während der Durchführung kryptographischer Verfahren Hinweise auf den verwendeten Schlüssel geben. Grundlage hierfür ist die Annahme, dass der Energieverbrauch einzelner Schritte des Verschlüsselungsverfahrens von den jeweiligen verarbeiteten Daten (zu verschlüsselnde Daten, Schüssel) abhängig ist, etwa weil unterschiedliche binäre Werte (die unterschiedlichen Daten entsprechen) eine unterschiedliche Anzahl von ‚0‘ bzw. ‚1‘ aufweisen und sich der Energieverbrauch bei der Verarbeitung einer ‚0‘ von dem der Verarbeitung einer‚1‘ unterscheidet.
  • Basierend auf dieser Annahme kann (für angenommene zu verschlüsselnde Daten) für die möglichen Schlüssel bzw. für die möglichen Teile von Schlüsseln (etwa sogenannte Teil- bzw. Rundenschlüssel im AES) der jeweilige Energieverbrauch zu bestimmten Zeitpunkten, an denen ein charakteristischer Energieverbrauch auftritt (im AES-Verfahren bietet sich etwa die Ein- oder Ausgabe der ‚SubBytes‘-Funktion als Zeitpunkt an), innerhalb des Verschlüsselungsverfahrens modelliert werden, um eine Vielzahl von hypothetischen Energieverbrauchswerten zu erhalten. Weiter kann eine Vielzahl von Energieverbrauchsverläufen (engl. ‚power traces‘) während der Durchführung des Verfahrens (mit den angenommenen zu verschlüsselnden Daten) gemessen werden und die Korrelation zwischen dieser gemessenen Vielzahl und der Vielzahl von hypothetischen Energieverbrauchswerten analysiert werden, um einen wahrscheinlichen (Teil-)Schlüssel zu finden. Wesentlich ist hier, dass die Messungen jeweils zu einem bestimmten Zeitpunkt innerhalb des Verschlüsselungsverfahrens erfolgen.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden eine Takterzeugungsschaltung und ein Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern sowie eine Verschlüsselungsschaltung und ein Verfahren zur Durchführung einer oder mehrerer Verschlüsselungen mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Erfindungsgemäß wird durch die Takterzeugungsschaltung bzw. das Verfahren zur Bereitstellung eines Verarbeitungstaktsignal und entsprechend durch die Verschlüsselungsschaltung bzw. das Verfahren zur Durchführung von Verschlüsselungen zunächst eine erste Taktfrequenz entsprechend einer ersten Zufallsauswahl aus einer ersten Anzahl von Taktfrequenzen ausgewählt und die Verarbeitungstaktfrequenz, mit der die Verschlüsselung durchgeführt wird, wird durch Skalierung der ersten Taktfrequenz mit einem entsprechend einer zweiten Zufallsauswahl aus einer zweiten Anzahl von Skalierungsfaktoren ausgewählten Skalierungsfaktor erhalten. Die erste Zufallsauswahl und die zweite Zufallsauswahl werden fortlaufend, zu bestimmten Auswahlzeitpunkten bzw. nach einem oder mehreren Verarbeitungstakten, geändert. Dadurch wird erreicht, dass vom Verschlüsselungskern für und während der Verschlüsselungen eine sich fortlaufend ändernde Taktfrequenz verwendet wird, d.h. die Takte des Verarbeitungstaktsignals weisen eine sich fortlaufend ändernde Zeitdauer auf, so dass der genaue Zeitpunkt, zu dem ein bestimmter Verschlüsselungsschritt durchgeführt wird, für einen potentiellen Angreifer in unbekannter Weise variiert, es dem Angreifer also erschwert wird, eine Energieverbrauchsmessung einem genauen Schritt des Verschlüsselungsverfahrens zuzuordnen. Im Prinzip muss der Angreifer umso mehr Energieverbrauchsverläufe messen, je mehr verschiedene Frequenzen, d.h. verschiedene Taktlängen, im Verarbeitungstaktsignal enthalten sind.
  • Ein weiterer Vorteil liegt darin, dass bei der Erzeugung des Verarbeitungstaktsignals eine zweifache Zufallsauswahl erfolgt, so dass die Gesamtzahl verschiedener Frequenzen durch das Produkt der beiden Zufallsauswahlmöglichkeiten gegeben ist, d.h. durch (erste Anzahl) x (zweite Anzahl). Auf diese Weise kann eine sehr hohe Gesamtzahl (größer 100.000, oder auch größer als 1.000.000) verschiedener Frequenzen im Verarbeitungstaktsignal enthalten sein, selbst wenn die erste und die zweite Anzahl im Vergleich zur Gesamtzahl relativ gering sind. Dies ermöglicht es, die hohe Gesamtzahl verschiedener Frequenzen auf ressourcenschonende Weise zu erreichen, z.B. ohne große Tabellen (Look-up-Tabellen), denen die jeweiligen Frequenzen in zufälliger Weise entnommen werden.
  • Die Implementierung der ersten Zufallsauswahl im Prozessorkern durch ein Auswahlprogramm ermöglicht weiterhin eine hohe Konfigurierbarkeit des Verschlüsselungsverfahrens bzw. der Verschlüsselungsschaltung.
  • Vorzugsweise umfasst das Taktaufbereitungsmodul wenigstens eine Taktskalierungseinheit, die das erste Taktsignal empfängt, wobei eine ausgewählte (falls nur eine Taktskalierungseinheit eingeschlossen ist, ist diese offensichtlich die ausgewählte Taktskalierungseinheit) Taktskalierungseinheit dazu eingerichtet ist, zweite Taktsignale entsprechend der zweiten Anzahl zu erzeugen, wobei zweite Taktfrequenzen der zweiten Taktsignale jeweils durch Multiplikation der ersten Taktfrequenz mit einem jeweiligen der Skalierungsfaktoren bestimmt sind; einen Zufallszahlengenerator, insbesondere ein linear rückgekoppeltes Schieberegister, auf dessen Ausgabe basierend die zweite Zufallsauswahl getroffen wird, wobei der Zufallszahlengenerator durch das Verarbeitungstaktsignal getaktet wird; und einen Multiplexer, der dazu eingerichtet ist, die zweiten Taktsignale zu empfangen und entsprechend der Ausgabe des Zufallszahlengenerators eines der zweiten Taktsignale auszuwählen und als Verarbeitungstaktsignal auszugeben.
  • Diese Ausführung ermöglicht insbesondere eine einfache Implementierung in einem programmierbaren Logikgatter (FPGA). Der Multiplexer sollte dazu eingerichtet sein, ein störungsfreies Ausgangs-Taktsignal (‚glitch-free clock‘) zu erzeugen. Dass der Zufallszahlengenerator durch das Verarbeitungstaktsignal getaktet wird, impliziert, dass dieser nach jedem Takt oder nach einer bestimmten Anzahl von Takten jeweils eine neue Zufallszahl generiert. Im Falle eines linear rückgekoppelten Schieberegisters könnten z.B. mit jedem Takt die Bits verschoben werden. Wird noch ein Flipflop vorgeschaltet, könnte z.B. mit jedem zweiten Takt eine Verschiebung erreicht werden, usw.
  • Bevorzugt ist die wenigstens eine Taktskalierungseinheit dazu eingerichtet, einen oder mehrere Sätze von Skalierungswerten zu speichern und entsprechend einem Status der Taktskalierungseinheit einen der Sätze auszuwählen, wobei die ausgewählte Taktskalierungseinheit den entsprechend ihrem Status ausgewählten Satz von Skalierungswerten als die Skalierungsfaktoren verwendet. Die Skalierungswerte stellen sozusagen potentielle Skalierungsfaktoren dar. Insgesamt kann so die Anzahl unterschiedlicher Taktlängen im Verarbeitungstaktsignal erhöht werden. Der Status wird durch das Auswahlprogramm festgelegt.
  • Vorzugsweise ist das Taktaufbereitungsmodul dazu eingerichtet, die Skalierungsfaktoren zu rekonfigurieren, wobei die Skalierungsfaktoren neu festgelegt werden, wobei das Rekonfigurieren zu bestimmten Rekonfigurationszeitpunkten erfolgt, die bevorzugt mit Auswahlzeitpunkten zusammenfallen. Auch hier wird die Anzahl unterschiedlicher Taktlängen im Verarbeitungstaktsignal erhöht. Das Ändern des Status einer Taktskalierungseinheit stellt auch eine Form des Rekonfigurierens dar.
  • Insbesondere können beim Rekonfigurieren die Skalierungswerte (in den entsprechenden Sätzen der wenigstens einen Taktskalierungseinheit) neu festgelegt werden; wobei (wenn mehrere Taktskalierungseinheiten vorgesehen sind) bevorzugt Skalierungswerte von zum jeweiligen Rekonfigurationszeitpunkt nicht ausgewählten Taktskalierungseinheiten neu festgelegt werden. Die Ausgabe des Verarbeitungstaktsignals braucht so während der Rekonfiguration nicht unterbrochen zu werden.
  • Bevorzugt sind das Taktaufbereitungsmodul und/oder der Taktgenerator in einem programmierbaren Logikgatter implementiert. Dadurch kann u.a. erreicht werden, dass die zweite Zufallsauswahl mit hoher Geschwindigkeit und sehr häufig durchgeführt werden kann.
  • Eine erfindungsgemäße Verschlüsselungsschaltung umfasst eine erfindungsgemäße Takterzeugungsschaltung und einen Verschlüsselungskern, der dazu eingerichtet ist, Verschlüsselungen entsprechend dem von der Takterzeugungsschaltung bereitgestellten Verarbeitungstaktsignal durchzuführen.
  • Bevorzugt ist der Prozessorkern mit dem Verschlüsselungskern verbunden, wobei der Prozessorkern und der Verschlüsselungskern so eingerichtet sind, dass der Prozessorkern über diese Verbindung Startzeitpunkte von Verschlüsselungen im Verschlüsselungskern steuern kann; und/oder dem Prozessorkern über diese Verbindung vom Verschlüsselungskern Endzeitpunkte von Verschlüsselungen übermittelt werden oder das Verarbeitungstaktsignal übermittelt wird. Bevorzugt werden die Auswahlzeitpunkte so bestimmt, dass sie zwischen zwei aufeinanderfolgenden Verschlüsselungen liegen, wobei weiter bevorzugt eine bestimmte Anzahl von Verschlüsselungen zwischen jeweils zwei aufeinanderfolgenden Auswahlzeitpunkten liegt.
  • Während die erste Zufallsauswahl erneut getroffen wird, oder während die Skalierungsfaktoren neu konfiguriert werden (siehe unten), kann es vorkommen, dass kein stabiles Verarbeitungstaktsignal erzeugt wird, sondern dass dieses Störungen (engl. ‚glitch‘) aufweist. Dies könnte zu einer fehlerhaften Verschlüsselung führen, so dass es vorteilhaft ist, während dieser Zeit keine Verschlüsselungen durchzuführen. Endzeitpunkte von Verschlüsselungen können dem Prozessorkern vom Verschlüsselungskern direkt übermittelt werden oder vom Prozessorkern bzw. dem darin ausgeführten Auswahlprogramm, der/das die Anzahl von Takten des Verarbeitungstaktsignals kennt, die für die Verschlüsselung benötigt werden, ausgehend vom Startzeitpunkt berechnet werden. Für letzteres muss allerdings das Verarbeitungstaktsignal, das dem Prozessorkern aufgrund der zweiten Zufallsauswahl zunächst nicht bekannt ist, dem Prozessorkern übermittelt werden, dies kann vom Verschlüsslungskern aus erfolgen oder auch vom Taktaufbereitungsmodul aus.
  • Als ‚Verschlüsselung‘ ist hier ein Verschlüsselungsvorgang zu verstehen, bei dem ausgehend von einem Klartext, der vom Verschlüsselungsverfahren auf einmal verarbeitet werden kann, etwa ein Block in Blockverschlüsselungsverfahren wie z.B. AES, ein verschlüsselter Text erzeugt wird. Dieser Vorgang besteht im Allgemeinen aus mehreren Verschlüsselungsschritten (z.B. Schlüsselexpansion und Runden in AES). Diese Verschlüsselungsschritte werden im Verschlüsselungskern ausgeführt, der mit dem Verarbeitungstaktsignal getaktet wird. Typischerweise entspricht jeder Verschlüsselungsschritt einer bestimmten Anzahl (größer gleich eins) von Takten des Verarbeitungstaktsignals, d.h. des wird eine entsprechende Anzahl von Takten benötigt. Es ist auch möglich, dass der Verschlüsselungskern mehrere Verschlüsselungsschritte, die zu verschiedenen Verschlüsselungen gehören, parallel verarbeitet.
  • Ein erfindungsgemäßes Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern, umfasst ein Erzeugen eines ersten Taktsignals mit einer ersten Taktfrequenz, die entsprechend einer ersten Zufallsauswahl aus einer ersten Anzahl vorbestimmter Taktfrequenzen zufällig ausgewählt wird, wobei die erste Zufallsauswahl zu bestimmten Auswahlzeitpunkten erneut getroffen wird; ein Erzeugen des Verarbeitungstaktsignals basierend auf dem ersten Taktsignal, wobei eine Verarbeitungsfrequenz des Verarbeitungstaktsignals durch Multiplikation mit einem entsprechend einer zweiten Zufallsauswahl aus einer zweiten Anzahl von Skalierungsfaktoren zufällig ausgewählten Skalierungsfaktor aus der ersten Taktfrequenz abgeleitet wird, wobei die zweite Zufallsauswahl nach jeweils einer bestimmten Anzahl von Takten des Verarbeitungstaktsignals erneut getroffen wird; und ein Bereitstellen des Verarbeitungstaktsignals für den Verschlüsselungskern. Die vorstehend genannten Vorteile, insbesondere, dass eine hohe Anzahl verschiedener Taktlängen im Verarbeitungstaktsignal umfasst sind, werden ebenso durch das erfindungsgemäße Verfahren verwirklicht.
  • Bevorzugt umfasst das Verfahren ein Rekonfigurieren der Skalierungsfaktoren, wobei die Skalierungsfaktoren neu festgelegt werden, wobei das Rekonfigurieren zu bestimmten Rekonfigurationszeitpunkten erfolgt, die bevorzugt mit Auswahlzeitpunkten zusammenfallen. Durch neues Festlegen der Skalierungsfaktoren kann die Gesamtzahl unterschiedlicher Verarbeitungsfrequenzen erhöht werden. Im Allgemeinen können die Rekonfigurationszeitpunkte beliebig bestimmt werden. Vorzugsweise wird die Rekonfiguration allerdings an Auswahlzeitpunkten, an denen die ersten Zufallsauswahl erneut getroffen wird, durchgeführt, da beides je nach konkreter Implementierung mit einer Unterbrechung des Verarbeitungstaktsignals verbunden sein kann.
  • Vorzugsweis werden im Verfahren die erste Zufallsauswahl durch eine Software, nämlich ein Auswahlprogramm, getroffen und/oder die zweite Zufallsauswahl durch eine Hardware, nämlich einen Zufallszahlengenerator, getroffen. Durch die Verwendung einer Software wird eine hohe Flexibilität des Verfahrens gewährleistet, da diese von einem Anwender nach seinen Bedürfnissen programmiert werden kann. Die Verwendung eines als Hardware implementieren Zufallszahlengenerators für die zweite Zufallsauswahl stellt sicher, dass die zweite Zufallsauswahl mit einer hohen Frequenz erneut getroffen werden kann, im Prinzip kann diese mit jedem Takt des Verarbeitungstaktsignals erneuert werden. Eine konkrete Implementierung ist durch eine erfindungsgemäße Taktsignalerzeugungsschaltung gegeben.
  • Bevorzugt umfasst das Erzeugen des Verarbeitungstaktsignals ein Erzeugen von zweiten Taktsignalen entsprechend der zweiten Anzahl, wobei zweite Taktfrequenzen der zweiten Taktsignale durch Multiplikation der ersten Taktfrequenz mit jeweils einem der Skalierungsfaktoren bestimmt sind; ein zufälliges Auswählen eines der zweiten Taktsignale entsprechend der zweiten Zufallsauswahl; und ein Verwenden des ausgewählten zweiten Taktsignals als Verarbeitungstaktsignal. Diese Ausführung ermöglicht eine schnelle Implementierung der zweiten Zufallsauswahl, da diese auf Grundlage bereits erzeugter zweiter Taktsignale erfolgen kann (d.h. es muss lediglich eines der zweiten Taktsignale ausgewählt werden) und nicht erst ein Taktsignal nach Auswahl des entsprechenden Skalierungsfaktors erzeugt werden muss.
  • Ein erfindungsgemäßes Verfahren zur Durchführung einer oder mehrerer Verschlüsselungen in einem Verschlüsselungskern, umfasst ein Bereitstellen eines Verarbeitungstaktsignals für den Verschlüsselungskern gemäß einem erfindungsgemäßen Verfahren zur Bereitstellung eines Verarbeitungstaktsignals und ein Durchführen von Verschlüsselungsschritten in dem Verschlüsselungskern entsprechend Takten des Verarbeitungstaktsignals.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Figurenliste
    • 1 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform des Verfahrens zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern;
    • 2 zeigt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer bevorzugten Ausführungsform der Erfindung; und
    • 3 zeigt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer weiteren bevorzugten Ausführungsform der Erfindung.
  • Ausführungsform(en) der Erfindung
  • 1 stellt ein Ablaufdiagramm eines Verfahrens zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern gemäß einer bevorzugten Ausführungsform der Erfindung dar. Zunächst wird im optionalen Schritt 10 eine zweite Anzahl von Skalierungsfaktoren konfiguriert, d.h. diese werden (neu) eingestellt bzw. vorgegeben. Die Skalierungsfaktoren können im Prinzip auch unveränderlich vorgegeben sein, dann erübrigt sich eine Konfiguration.
  • In Schritt 12 wird ein erstes Taktsignal mit einer ersten Taktfrequenz erzeugt, wobei die erste Taktfrequenz zufällig aus mehreren (d.h. einer ersten Anzahl) vorbestimmten Taktfrequenzen ausgewählt wird. Diese zufällige Auswahl wird als erste Zufallsauswahl bezeichnet. Die Schritte 10 (Konfiguration der Skalierungsfaktoren) und 12 (Erzeugen des ersten Taktsignals) können auch in umgekehrter Reihenfolge durchgeführt werden.
  • In Schritt 14 werden zweite Taktsignale aus dem ersten Taktsignal abgeleitet, d.h. es wird eine zweite Anzahl (gleich der Anzahl von Skalierungsfaktoren) von zweiten Taktsignalen mit zweiten Taktfrequenzen erzeugt, wobei jede der zweiten Taktfrequenzen aus der ersten Taktfrequenz durch Multiplikation mit einem jeweiligen der Skalierungsfaktoren erhalten wird.
  • In Schritt 16 wird eine zweite Zufallsauswahl getroffen, in der aus den in Schritt 14 erzeugten zweiten Taktsignalen eines zufällig ausgewählt wird. Das ausgewählte zweite Taktsignal wird in Schritt 18 dem Verschlüsselungskern als Verarbeitungstaktsignal bereitgestellt, wobei in Schritt 18 jeweils ein Takt bereitgestellt wird. Die nachfolgenden Schritte werden jeweils nach jedem Takt des Verarbeitungstaktsignals durchgeführt.
  • In Schritt 20 wird geprüft, ob ein bestimmter Zeitpunkt (als Auswahlzeitpunkt bezeichnet) erreicht wurde. Dies kann z.B. ein Zeitpunkt nach Beendigung einer Verschlüsselung und vor Beginn der nächsten Verschlüsselung sein. Wenn dies der Fall ist, Pfeil 22, wird wieder mit Schritt 12, dem Erzeugen des ersten Taktsignals entsprechend einer ersten Zufallsauswahl, fortgefahren, d.h. die erste Zufallsauswahl wird erneut getroffen, so dass sich die erste Taktfrequenz im Allgemeinen ändert.
  • Wenn kein bestimmter Auswahlzeitpunkt erreicht wurde, Pfeil 24, wird im optionalen Schritt 26 geprüft, ob eine Rekonfiguration der Skalierungsfaktoren erfolgen soll. Auf diesen Schritt kann im Prinzip auch verzichtet werden, etwa wenn die Skalierungsfaktoren in Schritt 10 nur einmalig konfiguriert werden sollen oder wenn auf Schritt 10 verzichtet wurde, da ein fest vorgegebener Satz von Skalierungsfaktoren verwendet wird. Wenn eine Rekonfiguration erfolgen soll, Pfeil 28, wird mit Schritt 10, dem Konfigurieren der Skalierungsfaktoren fortgefahren.
  • Wenn keine Rekonfiguration erfolgen soll, Pfeil 30, wird in Schritt 32 geprüft, ob dem Verschlüsselungskern eine vorbestimmte Anzahl von Takten des Verarbeitungssignals mit einer bestimmten Verarbeitungstaktfrequenz, die durch die zweite Zufallsauswahl in Schritt 16 festgelegt wurde, bereitgestellt wurde. Wenn dies nicht der Fall ist, Pfeil 34, wird zu Schritt 18 zurückgesprungen und dem Verschlüsselungskern ein weiterer Takt des Verarbeitungstaktsignals (mit unveränderter Verarbeitungstaktfrequenz) bereitgestellt.
  • Wenn andererseits die vorbestimmte Anzahl von Takten des Verarbeitungstaktsignals erreicht wurde, Pfeil 36, wird mit Schritt 16 fortgefahren und die zweite Zufallsauswahl erneut getroffen, so dass im Allgemeinen ein anderes der zweiten Taktsignale ausgewählt wird und sich entsprechend die Verarbeitungstaktfrequenz ändert. Vorzugsweise ist die vorbestimmte Anzahl von Takten des Verarbeitungstaktsignals gleich eins, so dass die zweite Zufallsauswahl nach jedem Takt des Verarbeitungstaktsignals erneut getroffen wird.
  • Es sie darauf hingewiesen, dass sich im Rahmen dieser Anmeldung der Begriff ‚Verarbeitungstaktfrequenz‘ jeweils auf einzelne Takte bezieht, d.h. die jeweilige, augenblickliche Verarbeitungstaktfrequenz ist z.B. durch den Kehrwert des zeitlichen Abstands zweier aufeinanderfolgender aufsteigender Flanken des Verarbeitungstaktsignals gegeben. Die Verarbeitungstaktfrequenz ist also keine Frequenz im üblichen Sinne, die sich auf einen periodischen Vorgang bezieht. Die erste Taktfrequenz und die zweiten Taktfrequenzen sind hingegen im üblichen Sinne definiert, da das erste Taktsignal und die zweiten Taktsignale eine sich periodisch wiederholende Form aufweisen.
  • Das Verfahren wird bevorzugt durch eine Takterzeugungsschaltung oder eine Verschlüsselungsschaltung implementiert, wobei die erste Zufallsauswahl im Wesentlichen in einem Auswahlprogramm, d.h. als Software, und die zweite Zufallsauswahl im Wesentlichen in einer elektronischen Schaltung, d.h. als Hardware, implementiert sind. Eine solche Takterzeugungsschaltung bzw. Verschlüsselungsschaltung wird im Folgenden beschrieben.
  • 2 stellt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer bevorzugten Ausführungsform der Erfindung dar. Die Verschlüsselungsschaltung umfasst einen Taktgenerator 52, ein Taktaufbereitungsmodul 54, einen Prozessorkern 56 und einen Verschlüsselungskern 58. Taktgenerator 52, Taktaufbereitungsmodul 54 und Prozessorkern 56 bilden zusammen eine Takterzeugungsschaltung, die ein Verarbeitungstaktsignal für den Verschlüsselungskern 58 bereitstellt.
  • Der Taktgenerator 52 ist dazu eingerichtet, ein erstes Taktsignal 62 mit einer ersten Taktfrequenz zu erzeugen, wobei die erste Taktfrequenz zufällig aus einer ersten Anzahl von Taktfrequenzen ausgewählt wird. Diese erste Zufallsauswahl wird im Wesentlichen durch ein Auswahlprogramm getroffen, das im Prozessorkern 56 ausgeführt wird.
  • Im Einzelnen kann dies beispielsweise wie im Folgenden erreicht werden. Zunächst stellt eine Taktquelle 64 ein ursprüngliches Taktsignal 65 mit einer bestimmten Frequenz bereit. Die Taktquelle kann z.B. ein in der Schaltung umfasster Oszillator sein oder, bevorzugt, ein Anschluss an eine externe Taktquelle, durch die das ursprüngliche Taktsignal für die Schaltung bereitgestellt wird.
  • Das ursprüngliche Taktsignal wird durch eine Frequenzteilereinheit 66 verarbeitet, die die Frequenz des ursprünglichen Taktsignals entsprechend einem Teilungsverhältnis vermindert. Das Teilungsverhältnis wird durch das im Prozessorkern 56 ausgeführte Auswahlprogramm zufällig (entsprechend einer ersten Zufallsauswahl) aus einer ersten Anzahl von Teilungsverhältnissen bestimmt und über die Verbindung 68 zwischen Prozessorkern und Frequenzteilereinheit an der Frequenzteilereinheit 66 eingestellt. Hierzu kann beispielsweise eine Tabelle mit möglichen Teilungsverhältnissen (entsprechend der ersten Anzahl) bereitgestellt sein, wobei das Auswahlprogramm aus dieser Tabelle in zufälliger Weise einen Eintrag entnimmt. Das Auswahlprogramm kann dazu z.B. Pseudozufallszahlen generieren oder auch von einem anderen Zufallsgenerator (als Soft- oder Hardware implementiert) Zufallszahlen übernehmen. Die Frequenzteileinheit 66 kann einen oder mehrere in Reihe geschaltete Frequenzteiler umfassen. Im Falle mehrerer Frequenzteiler ist das Teilungsverhältnis durch mehrere Teiler bestimmt. Sind beispielsweise zwei Frequenzteiler (z.B. 6-Bit-Frequenzteiler) vorgesehen, wird das Teilungsverhältnis durch zwei Teiler (z.B. 6-Bit-Zahlen) bestimmt, die Tabelle enthält dann entsprechend Paare von Teilern.
  • Das Auswahlprogramm ist weiterhin dazu eingerichtet, die zufällige Auswahl der ersten Frequenz zu bestimmten Auswahlzeitpunkten erneut durchzuführen.
  • Das Ausgangssignal 67 der Frequenzteilereinheit 66, deren Frequenz durch das zufällige Teilungsverhältnis aus der Frequenz des ursprünglichen Taktsignals gegeben ist, kann über eine Taktausgangseinheit 70 als erstes Taktsignal 62 ausgeben bzw. an das Taktaufbereitungsmodul 54 weitergeleitet werden. Die Taktausgangseinheit 70 dient dazu ein störungsfreies Taktsignal (engl. ‚glitch-free clock‘) bereitzustellen. Störungen können hier auftreten, wenn die zufällige Auswahl durch das Auswahlprogramm erneut getroffen wird und es so zu einer Frequenzänderung im ersten Taktsignal kommt, so dass am Übergang eine Störung (‚glitch‘) Signalverlauf entstehen kann, der zu Fehlern in der nachgeschalteten Logikschaltung führen kann. Geeignete Schaltungen, mit diesem Problem umzugehen, sind dem Fachmann bekannt.
  • Das erste Taktsignal 62 wird zu dem Taktaufbereitungsmodul 54 geleitet, das dazu eingerichtet ist, das Verarbeitungstaktsignal 60 zu erzeugen und bereitzustellen, wobei eine Frequenz, genannt Verarbeitungsfrequenz, des Verarbeitungstaktsignals durch Multiplikation mit einem aus einer zweiten Anzahl von Skalierungsfaktoren zufällig ausgewählten Skalierungsfaktor bestimmt ist. Diese Auswahl wird als zweite Zufallsauswahl bezeichnet.
  • In der gezeigten Ausführungsform umfasst das Taktaufbereitungsmodul 54 eine Taktskalierungseinheit 72, einen Multiplexer 76 und einen Zufallszahlengenerator 78. Darin werden aus dem ersten Taktsignal 62 in der Taktskalierungseinheit 72 zunächst eine zweite Anzahl von zweiten Taktsignalen 74 abgeleitet bzw. erzeugt. Die Frequenzen (zweite Frequenzen) der zweiten Taktsignale 74 sind durch Multiplikation der ersten Frequenz des ersten Taktsignals mit jeweils einem der Skalierungsfaktoren gegeben. Die Skalierungsfaktoren sind zu diesem Zweck in der Taktskalierungseinheit 72 gespeichert, wobei vorzugsweise die Skalierungsfaktoren neu eingestellt bzw. konfiguriert werden können.
  • Die zweiten Taktsignale 74 werden an den Multiplexer 76 geleitet, durch den aus den zweiten Taktsignalen eines ausgewählt und als Verarbeitungstaktsignal 60 bereitgestellt wird. Dies Auswahl (zweite Zufallsauswahl) erfolgt basierend auf einem Signal, das von dem Zufallszahlengenerator 78 an den Multiplexer 76 geleitet wird. Der Zufallszahlengenerator 78 erzeugt also Zufallszahlen entsprechend der zweiten Anzahl. Der Zufallszahlengenerator 78 kann z.B. als linear rückgekoppeltes Schieberegister realisiert sein. Vorzugsweise ist der Zufallszahlengenerator 78 durch das Ausgangssignal des Multiplexers 76, d.h. durch das Verarbeitungstaktsignal, getaktet.
  • Das Verarbeitungstaktsignal 60 wird an den Verschlüsselungskern 58 geleitet, dem dieses als Taktsignal dient.
  • Weiter ist in der 2 noch eine Verbindung 80 gezeigt, über die der Prozessorkern 56 mit dem Taktaufbereitungsmodul 54 und insbesondere mit der Taktskalierungseinheit 72 kommunizieren kann. Über diese Verbindung 80 kann das im Prozessorkern 56 ausgeführte Auswahlprogramm insbesondere die, gegebenenfalls in der Taktskalierungseinheit 72 gespeicherten, Skalierungsfaktoren neu einstellen, d.h. das Auswahlprogramm kann eine Rekonfiguration der Skalierungsfaktoren vornehmen. Über diese Verbindung könnte auch das Verarbeitungstaktsignal an den Prozessorkern übertragen werden (im Einzelnen nicht dargestellt).
  • Ebenso kann die Taktskalierungseinheit 72 so eingerichtet sein, dass sie mehrere Sätze von Skalierungswerten speichern kann, wobei die Anzahl von Skalierungswerten in jedem Satz gleich der zweiten Anzahl ist. Entsprechend einem Zustand bzw. einem Status der Taktskalierungseinheit wird dann einer dieser Sätze von Skalierungswerten als Skalierungsfaktoren ausgewählt und wie vorstehend angewandt. Der Status kann über die Verbindung 80 durch das im Prozessorkern ausgeführte Auswahlprogramm geändert werden. Dies kann als eine weitere Form der Rekonfiguration der Skalierungsfaktoren gesehen werden. Weiterhin können über diese Verbindung auch die Sätze von Skalierungswerten geändert werden, d.h. neue Skalierungswerten in den Sätzen gespeichert werden, wobei vorteilhafterweise Skalierungswerten von Sätzen geändert werden, die zum jeweiligen Zeitpunkt nicht vermöge des Status als Skalierungsfaktoren ausgewählt sind.
  • Insgesamt kann durch eine Rekonfiguration der Skalierungsfaktoren die Anzahl möglicher unterschiedlicher Verarbeitungsfrequenzen deutlich erhöht werden, so dass zusätzliche Sicherheit vor Seitenkanalangriffen erreicht wird.
  • Auch ist eine Verbindung 82 zwischen Prozessorkern 56 und Verschlüsselungskern 58 gezeigt. Hierüber kann einerseits der Prozessorkern Verschlüsselungen durch den Verschlüsselungskern steuern, insbesondere Startzeitpunkte einzelner Verschlüsselungen bestimmen und/oder zu verschlüsselnde Daten an den Verschlüsselungskern übermitteln, und andererseits kann der Verschlüsselungskern Endzeitpunkte von Verschlüsselungen, das Verarbeitungstaktsignal und/oder verschlüsselte Daten an den Prozessorkern übermitteln.
  • Bevorzugt sind die Takterzeugungsschaltung und/oder die Verschlüsselungsschaltung als FPGA (Field Programmable Gate Array, programmierbares Logikgatter) implementiert.
  • 3 stellt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer weiteren bevorzugten Ausführungsform der Erfindung dar. Diese ist in großen Teilen identisch zur in der 2 dargestellten Ausführungsform und unterscheidet sich lediglich in der Gestaltung des Taktaufbereitungsmoduls 54. Im Folgenden werden lediglich die Unterschiede erläutert, ansonsten gilt das vorstehend Ausgeführte. Die Verschlüsselungsschaltung umfasst wieder einen Taktgenerator 52 (nur schematisch ohne Einzelheiten dargestellt, vgl. jedoch 2), ein Taktaufbereitungsmodul 54 und einen Prozessorkern 56, die zusammen die Takterzeugungsschaltung bilden, und einen Verschlüsselungskern 58.
  • Das Taktaufbereitungsmodul 54 umfasst hier mehrere Taktskalierungseinheiten 721,722, ... 72N, die über jeweilige Verbindungen 801, 802, ... 80N, mit dem Prozessorkern 56 verbunden sind. In jeder der Taktskalierungseinheiten sind ein oder mehrere Sätze von Skalierungswerten (die Anzahl von Skalierungswerten in jedem Satz ist wieder die zweite Anzahl) gespeichert, wobei, falls mehrere Sätze gespeichert sind, einer der Sätze entsprechend einem Zustand der Taktskalierungseinheit, der über die entsprechende Verbindung mit dem Prozessorkern durch das in diesem ausgeführte Auswahlprogramm bestimmt wird, ausgewählt werden kann. In jeder der Taktskalierungseinheiten wird das erste Taktsignal 62 als Eingangssignal verwendet. Die Funktion jeder der Taktskalierungseinheiten entspricht der Funktion der Taktskalierungseinheit 72 der 2, d.h. aus dem Eingangssignal wird eine zweite Anzahl von Ausgangssignalen erzeugt, deren Frequenzen durch Multiplikation der Frequenz des Eingangssignals mit den (ausgewählten) Skalierungswerten gegeben sind.
  • Von den Taktskalierungseinheiten kann weiterhin eine über die Verbindungen 801, 802, ... 80N, oder alternativ durch den Multiplexer 76, der dann über eine eigene Verbindung mit dem Prozessorkern verfügt (nicht gezeigt), ausgewählt werden. Diese Auswahl erfolgt wieder durch das Auswahlprogramm. Die Ausgangssignale der ausgewählten Taktskalierungseinheit (d.h. eine der gezeigten Mengen von Taktsignalen 741, 742, ... 74N) werden dann vom Multiplexer 76 verwendet (diese stellen also die zweite Anzahl von zweiten Taktsignalen dar), um entsprechend der vom Zufallsgenerator 78 generierten Zufallszahl (zweite Zufallsauswahl) ein Taktsignal als Verarbeitungstaktsignal für die Verschlüsselungskern 58 bereitzustellen.
  • Die Auswahl der Taktskalierungseinheit kann vom Auswahlprogramm geändert werden, so dass die Anzahl unterschiedlicher Verarbeitungsfrequenzen weiter erhöht wird. Diese Ausführungsform mit mehreren Taktskalierungseinheiten ist insbesondere zweckmäßig in Kombination mit einer Rekonfiguration der Taktskalierungseinheiten, da die Skalierungswerten bzw. der Status von nicht ausgewählten Taktskalierungseinheiten geändert werden kann während die zweite Zufallsauswahl basierend auf den Ausgangssignalen der ausgewählten Taktskalierungseinheit getroffen werden kann. Der Verschlüsselungskern kann also ohne Unterbrechung weiterbetrieben werden.

Claims (14)

  1. Takterzeugungsschaltung zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern (58), umfassend: einen Taktgenerator (52), der dazu eingerichtet ist, ein erstes Taktsignal (62) mit einer ersten Taktfrequenz, die entsprechend einer ersten Zufallsauswahl aus einer ersten Anzahl vorbestimmter Taktfrequenzen zufällig ausgewählt wird, zu erzeugen, wobei die erste Zufallsauswahl mittels eines in einem Prozessorkern (56) ausgeführten Frequenzwahlprogramms getroffen wird, das dazu eingerichtet ist, die erste Zufallsauswahl zu bestimmten Auswahlzeitpunkten erneut zu treffen; ein Taktaufbereitungsmodul (54), das mit dem Taktgenerator verbunden ist, um das erste Taktsignal zu empfangen, und das dazu eingerichtet ist, das Verarbeitungstaktsignal (60) zu erzeugen und dem Verschlüsselungskern bereitzustellen, wobei eine Verarbeitungsfrequenz des Verarbeitungstaktsignals durch Multiplikation mit einem entsprechend einer zweiten Zufallsauswahl aus einer zweiten Anzahl von Skalierungsfaktoren zufällig ausgewählten Skalierungsfaktor aus der ersten Taktfrequenz abgeleitet wird, wobei die zweite Zufallsauswahl nach jeweils einer bestimmten Anzahl von Takten des Verarbeitungstaktsignals erneut getroffen wird.
  2. Takterzeugungsschaltung nach Anspruch 1, wobei das Taktaufbereitungsmodul umfasst: wenigstens eine Taktskalierungseinheit (72; 721, 722, ... 72N), die das erste Taktsignal empfängt, wobei eine ausgewählte Taktskalierungseinheit der wenigstens einen Taktskalierungseinheit dazu eingerichtet ist, zweite Taktsignale entsprechend der zweiten Anzahl zu erzeugen, wobei zweite Taktfrequenzen der zweiten Taktsignale jeweils durch Multiplikation der ersten Taktfrequenz mit einem jeweiligen der Skalierungsfaktoren bestimmt sind; einen Zufallszahlengenerator (78), insbesondere ein linear rückgekoppeltes Schieberegister, auf dessen Ausgabe basierend die zweite Zufallsauswahl getroffen wird, wobei der Zufallszahlengenerator durch das Verarbeitungstaktsignal getaktet wird; und einen Multiplexer (76), der dazu eingerichtet ist, die zweiten Taktsignale zu empfangen und entsprechend der Ausgabe des Zufallszahlengenerators eines der zweiten Taktsignale auszuwählen und als Verarbeitungstaktsignal auszugeben.
  3. Takterzeugungsschaltung nach Anspruch 2, wobei die wenigstens eine Taktskalierungseinheit (72; 721, 722, ... 72N) dazu eingerichtet ist, einen oder mehrere Sätze von Skalierungswerten zu speichern und entsprechend einem Status der Taktskalierungseinheit einen der Sätze auszuwählen; und wobei die ausgewählte Taktskalierungseinheit den entsprechend ihrem Status ausgewählten Satz von Skalierungswerten als die Skalierungsfaktoren verwendet.
  4. Takterzeugungsschaltung nach einem der vorstehenden Ansprüche, wobei das Taktaufbereitungsmodul (54) dazu eingerichtet ist, die der Skalierungsfaktoren zu rekonfigurieren, wobei die Skalierungsfaktoren neu festgelegt werden, wobei das Rekonfigurieren zu bestimmten Rekonfigurationszeitpunkten erfolgt, die bevorzugt mit Auswahlzeitpunkten zusammenfallen.
  5. Takterzeugungsschaltung nach Anspruch 3 und 4, wobei beim Rekonfigurieren die Skalierungswerte neu festgelegt werden; wobei bevorzugt Skalierungswerte von zum jeweiligen Rekonfigurationszeitpunkt nicht ausgewählten Taktskalierungseinheiten neu festgelegt werden.
  6. Takterzeugungsschaltung nach einem der vorstehenden Ansprüche, wobei das Taktaufbereitungsmodul (54) und/oder der Taktgenerator (52) in einem programmierbaren Logikgatter implementiert sind.
  7. Verschlüsselungsschaltung, umfassend: eine Takterzeugungsschaltung gemäß einem der vorstehenden Ansprüche; und einen Verschlüsselungskern (58), der dazu eingerichtet ist, Verschlüsselungen entsprechend dem von der Takterzeugungsschaltung bereitgestellten Verarbeitungstaktsignal durchzuführen.
  8. Verschlüsselungsschaltung nach Anspruch 7, wobei der Prozessorkern (56) mit dem Verschlüsselungskern (58) verbunden ist, wobei der Prozessorkern und der Verschlüsselungskern so eingerichtet sind, dass der Prozessorkern über diese Verbindung Startzeitpunkte von Verschlüsselungen im Verschlüsselungskern steuern kann und/oder dem Prozessorkern über diese Verbindung vom Verschlüsselungskern Endzeitpunkte von Verschlüsselungen übermittelt werden oder das Verarbeitungstaktsignal übermittelt wird; wobei bevorzugt die Auswahlzeitpunkte so bestimmt werden, dass sie zwischen zwei aufeinanderfolgenden Verschlüsselungen liegen, wobei weiter bevorzugt eine bestimmte Anzahl von Verschlüsselungen zwischen jeweils zwei aufeinanderfolgenden Auswahlzeitpunkten liegt.
  9. Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern, umfassend: Erzeugen (12) eines ersten Taktsignals mit einer ersten Taktfrequenz, die entsprechend einer ersten Zufallsauswahl aus einer ersten Anzahl vorbestimmter Taktfrequenzen zufällig ausgewählt wird, wobei die erste Zufallsauswahl zu bestimmten Auswahlzeitpunkten erneut getroffen wird; Erzeugen (14, 16) des Verarbeitungstaktsignals basierend auf dem ersten Taktsignal, wobei eine Verarbeitungsfrequenz des Verarbeitungstaktsignals durch Multiplikation mit einem entsprechend einer zweiten Zufallsauswahl aus einer zweiten Anzahl von Skalierungsfaktoren zufällig ausgewählten Skalierungsfaktor aus der ersten Taktfrequenz abgeleitet wird, wobei die zweite Zufallsauswahl nach jeweils einer bestimmten Anzahl von Takten des Verarbeitungstaktsignals erneut getroffen wird; und Bereitstellen (18) des Verarbeitungstaktsignals für den Verschlüsselungskern.
  10. Verfahren nach Anspruch 9, umfassend: Rekonfigurieren (10) der Skalierungsfaktoren, wobei die Skalierungsfaktoren neu festgelegt werden, wobei das Rekonfigurieren zu bestimmten Rekonfigurationszeitpunkten erfolgt, die bevorzugt mit Auswahlzeitpunkten zusammenfallen.
  11. Verfahren nach einem der Ansprüche 9 bis 10, wobei die erste Zufallsauswahl durch eine Software, insbesondere ein Auswahlprogramm, getroffen wird und/oder die zweite Zufallsauswahl durch eine Hardware, insbesondere einen Zufallszahlengenerator, getroffen wird.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei das Erzeugen des Verarbeitungstaktsignals umfasst: Erzeugen (14) von zweiten Taktsignalen entsprechend der zweiten Anzahl, wobei zweite Taktfrequenzen der zweiten Taktsignale durch Multiplikation der ersten Taktfrequenz mit jeweils einem der Skalierungsfaktoren bestimmt sind; zufälliges Auswählen (16) eines der zweiten Taktsignale entsprechend der zweiten Zufallsauswahl; Verwenden des ausgewählten zweiten Taktsignals als Verarbeitungstaktsignal.
  13. Verfahren zur Durchführung einer oder mehrerer Verschlüsselungen in einem Verschlüsselungskern, umfassend: Bereitstellen eines Verarbeitungstaktsignals für den Verschlüsselungskern gemäß dem Verfahren nach einem der Ansprüche 9 bis 12; und Durchführen von Verschlüsselungsschritten in dem Verschlüsselungskern entsprechend Takten des Verarbeitungstaktsignals.
  14. Verfahren nach Anspruch 13, wobei die Auswahlzeitpunkte dadurch bestimmt werden, dass jeweils eine vorbestimmte Anzahl von Verschlüsselungen im Verschlüsselungskern durchgeführt wurde.
DE102020210695.9A 2020-08-24 2020-08-24 Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern Pending DE102020210695A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020210695.9A DE102020210695A1 (de) 2020-08-24 2020-08-24 Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern
CN202110966839.0A CN114089810A (zh) 2020-08-24 2021-08-23 用于为加密核提供处理时钟信号的方法和时钟产生电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020210695.9A DE102020210695A1 (de) 2020-08-24 2020-08-24 Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern

Publications (1)

Publication Number Publication Date
DE102020210695A1 true DE102020210695A1 (de) 2022-02-24

Family

ID=80112725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020210695.9A Pending DE102020210695A1 (de) 2020-08-24 2020-08-24 Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern

Country Status (2)

Country Link
CN (1) CN114089810A (de)
DE (1) DE102020210695A1 (de)

Also Published As

Publication number Publication date
CN114089810A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
EP3028140B1 (de) Konstruieren einer schaltung geeignet zur erzeugung von zufallsbits und schaltung zur erzeugung von zufallsbits
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE602004008516T2 (de) Verfahren und schaltung zum generieren von zufallszahlen und computerprogrammprodukt dafür
DE60122787T2 (de) Digitaler frequenzvervielfacher
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE10325287A1 (de) Scrambler, De-Scrambler und sich darauf beziehendes Verfahren
DE102012014512A1 (de) Spreizung eines Taktsignals
DE112005001517T5 (de) Synchronisation zwischen Niedrigfrequenz- und Hochfrequenzdigitalsignalen
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE10219135B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallszahl
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102020210695A1 (de) Takterzeugungsschaltung und Verfahren zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern
DE2829709A1 (de) Verfahren und anordnung zur erzeugung zeitlich unmittelbar aufeinanderfolgender impulszyklen
DE102008064063B4 (de) Steuersignalerzeugungsschaltung zur Einstellung eines Periodenwerts eines erzeugten Taktsignals als die Periode eines Referenzsignals, multipliziert mit oder dividiert durch eine beliebige reelle Zahl
DE10006144B4 (de) Zeitgeberschaltung und Verfahren zur Erzeugung einer Zeitsteuerung für ein Halbleiterprüfsystem
DE19910729C1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE102008051222A1 (de) Schaltung eines Funksystems, Verwendung und Verfahren zum Betrieb
WO2015128015A1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
DE102013213385A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102013204272A1 (de) Verfahren zum Erkennen einer Korrelation
DE102013213392A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102004010562A1 (de) Schnittstellenvorrichtung und Verfahren zur Synchronisation von Daten
DE10345163B4 (de) Verfahren und Vorrichtung zur Frequenzteilung und zum Demultiplexen
WO2016020098A1 (de) Erzeugen eines identifizierers für eine schaltung
EP1126615A1 (de) Verfahren zur Frequenzteilung eines Taktsignals und Frequenzteilerschaltung zur Realisierung des Verfahrens