DE102020210695A1 - Clock generation circuit and method for providing a processing clock signal to a cryptographic core - Google Patents

Clock generation circuit and method for providing a processing clock signal to a cryptographic core 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
German (de)
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/en
Priority to CN202110966839.0A priority patent/CN114089810A/en
Publication of DE102020210695A1 publication Critical patent/DE102020210695A1/en
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.The invention relates to a clock generation circuit for providing a processing clock signal, which circuit comprises a clock generator and a clock processing module. The clock generator is set up to generate a first clock signal with a first clock frequency, which is randomly selected according to a first random selection from a first number of predetermined clock frequencies, the first random selection being made by means of a frequency selection program executed in a processor core, which is set up to make the first random selection again at certain selection times. The clock conditioning module is connected to the clock generator to receive the first clock signal and configured to generate the processing clock signal and provide it to the encryption core, wherein a processing frequency of the processing clock signal is determined by multiplying it by a second random selection from a second number of scaling factors is derived from the first clock frequency, the second random selection being made again after a specific number of clock cycles of the processing clock signal. Furthermore, an encryption circuit, a method for providing a processing clock signal and a method for performing encryptions are provided.

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.The present invention relates to a clock generation circuit and a method for providing a processing clock signal for an encryption core and an encryption circuit and a method for performing one or more encryptions.

Stand der TechnikState of the art

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.Many modern electronic devices, such as microcontrollers in smart cards or control devices, implement cryptographic methods (e.g. AES - Advanced Encryption Standard, or DES - Data Encryption Standard) to enable data encryption or encrypted communication with other devices. This encryption can be attacked using so-called side-channel attacks, in which the physical implementation of the encryption method used is analyzed.

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.More specifically, the power consumption or electromagnetic emissions of an electronic circuit, e.g. a microprocessor or a FPGA (Field Programmable Gate Array, programmable logic gate), in which the encryption method is implemented, can give clues to the used key during the performance of cryptographic methods. The basis for this is the assumption that the energy consumption of individual steps of the encryption process depends on the data processed (data to be encrypted, key), for example because different binary values (corresponding to different data) have a different number of '0' or '1 ' and the energy consumption when processing a '0' differs from that of processing a '1'.

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.Based on this assumption (for accepted data to be encrypted) for the possible keys or for the possible parts of keys (e.g. so-called partial or round keys in AES) the respective energy consumption at specific times at which a characteristic energy consumption occurs (in AES method, for example, the input or output of the 'SubBytes' function as a point in time) can be modeled within the encryption method in order to obtain a large number of hypothetical energy consumption values. Furthermore, a large number of power consumption curves (engl. 'power traces') can be measured during the implementation of the method (with the assumed data to be encrypted) and the correlation between this measured large number and the large number of hypothetical power consumption values can be analyzed in order to derive a probable (part -) to find key. It is essential here that the measurements are made at a specific point in time within the encryption process.

Offenbarung der ErfindungDisclosure of Invention

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.According to the invention, a clock generation circuit and a method for providing a processing clock signal for an encryption core and an encryption circuit and a method for carrying out one or more encryptions with the features of the independent patent claims are proposed. Advantageous configurations are the subject of the dependent claims and the following description.

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.According to the invention, the clock generation circuit or the method for providing a processing clock signal and correspondingly the encryption circuit or the method for performing encryption first select a first clock frequency according to a first random selection from a first number of clock frequencies and the processing clock frequency with which the encryption is performed is obtained by scaling the first clock frequency by a scale factor selected at random from a second number of scale factors. The first random selection and the second random selection are changed continuously at specific selection times or after one or more processing cycles. This ensures that the encryption core uses a continuously changing clock frequency for and during the encryption, i.e. the cycles of the processing clock signal have a continuously changing time duration, so that the exact point in time at which a specific encryption step is carried out, for a potential attacker varies in an unknown way, making it difficult for the attacker to assign an energy consumption measurement to a precise step in the encryption process. In principle, the more different frequencies, i.e. different clock lengths, are contained in the processing clock signal, the more energy consumption curves the attacker has to measure.

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.Another advantage is that the generation of the processing clock signal is double randomized, so that the total number of different frequencies is given by the product of the two random choices, ie (first number) x (second number). In this way, a very high total number (greater than 100,000, or even greater than 1,000,000) ver different frequencies may be included in the processing clock signal, even if the first and second numbers are relatively small compared to the total number. This makes it possible to achieve the high total number of different frequencies in a resource-saving manner, for example without large tables (look-up tables) from which the respective frequencies are taken in a random manner.

Die Implementierung der ersten Zufallsauswahl im Prozessorkern durch ein Auswahlprogramm ermöglicht weiterhin eine hohe Konfigurierbarkeit des Verschlüsselungsverfahrens bzw. der Verschlüsselungsschaltung.The implementation of the first random selection in the processor core by a selection program also enables the encryption method or the encryption circuit to be highly configurable.

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.Preferably, the clock conditioning module comprises at least one clock scaling unit that receives the first clock signal, wherein a selected (if only one clock scaling unit is included, this is obviously the selected clock scaling unit) clock scaling unit is configured to generate second clock signals corresponding to the second number, wherein second clock frequencies of the second clock signals are each determined by multiplying the first clock frequency by a respective one of the scaling factors; a random number generator, in particular a linear feedback shift register, based on the output of which the second random selection is made, the random number generator being clocked by the processing clock signal; and a multiplexer configured to receive the second clock signals and to select one of the second clock signals according to the output of the random number generator and to output it as a processing clock signal.

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.In particular, this design enables a simple implementation in a programmable logic gate (FPGA). The multiplexer should be set up to produce a glitch-free clock output signal. The fact that the random number generator is clocked by the processing clock signal implies that it generates a new random number after each clock cycle or after a specific number of clock cycles. In the case of a linear feedback shift register, for example, the bits could be shifted with each clock. If a flip-flop is connected upstream, a shift could be achieved with every second clock, etc.

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.The at least one clock scaling unit is preferably configured to store one or more sets of scaling values and to select one of the sets according to a status of the clock scaling unit, the selected clock scaling unit using the set of scaling values selected according to its status as the scaling factors. The scaling values represent potential scaling factors, so to speak. Overall, the number of different clock lengths in the processing clock signal can be increased in this way. The status is determined by the selection program.

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.The clock processing module is preferably set up to reconfigure the scaling factors, the scaling factors being redefined, the reconfiguration taking place at specific reconfiguration times which preferably coincide with selection times. Here, too, the number of different clock lengths in the processing clock signal is increased. Changing the status of a clock scaling unit is also a form of reconfiguration.

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.In particular, when reconfiguring, the scaling values (in the corresponding sets of the at least one clock scaling unit) can be redefined; wherein (if a plurality of clock scaling units are provided) scaling values of clock scaling units not selected at the respective reconfiguration time are preferably redefined. In this way, the output of the processing clock signal does not have to be interrupted during the reconfiguration.

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.The clock processing module and/or the clock generator are preferably implemented in a programmable logic gate. This means, among other things, that the second random selection can be carried out at high speed and very frequently.

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.An encryption circuit according to the invention comprises a clock generation circuit according to the invention and an encryption core which is set up to carry out encryption in accordance with the processing clock signal provided by the clock generation circuit.

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.The processor core is preferably connected to the encryption core, the processor core and the encryption core being set up in such a way that the processor core can control the start times of encryptions in the encryption core via this connection; and/or end times of encryptions are transmitted to the processor core via this connection from the encryption core or the processing clock signal is transmitted. The selection times are preferably determined in such a way that they lie between two successive encryptions, with a specific number of encryptions also preferably lying between two successive selection times.

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.While the first random selection is being made again, or while the scaling factors are being reconfigured (see below), it may happen that a stable processing clock signal is not generated, but that it has glitches. This could lead to incorrect encryption, so it is advantageous not to perform any encryption during this time. Encryption end times can be transmitted directly to the processor core by the encryption core or can be calculated from the start time by the processor core or the selection program executed therein, which knows the number of cycles of the processing clock signal required for the encryption. For the latter, however, the processing clock signal, which is initially unknown to the processor core due to the second random selection, must be transmitted to the processor core; this can be done from the encryption core or from the clock processing module.

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.'Encryption' is to be understood here as an encryption process in which, starting from a plain text that can be processed by the encryption process at once, for example a block in block encryption processes such as AES, an encrypted text is generated. This process generally consists of several encryption steps (e.g. key expansion and rounds in AES). These encryption steps are performed in the encryption core, which is clocked with the processing clock signal. Typically, each encryption step corresponds to a certain number (greater than or equal to one) of clock cycles of the processing clock signal, i.e. a corresponding number of clock cycles is required. It is also possible for the encryption core to process several encryption steps belonging to different encryptions in parallel.

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.A method according to the invention for providing a processing clock signal for an encryption core comprises generating a first clock signal with a first clock frequency which is randomly selected according to a first random selection from a first number of predetermined clock frequencies, the first random selection being made again at specific selection times; generating the processing clock signal based on the first clock signal, wherein a processing frequency of the processing clock signal is derived from the first clock frequency by multiplication by a scaling factor randomly selected according to a second random selection from a second number of scaling factors, the second random selection being derived after a specific number of clock cycles in each case of the processing clock signal is hit again; and providing the processing clock signal to the encryption core. The advantages mentioned above, in particular that a large number of different clock lengths are included in the processing clock signal, are also realized by the method according to the invention.

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.The method preferably includes a reconfiguration of the scaling factors, with the scaling factors being redefined, with the reconfiguration taking place at specific reconfiguration times, which preferably coincide with selection times. By resetting the scaling factors, the total number of different processing frequencies can be increased. In general, the reconfiguration times can be determined arbitrarily. However, the reconfiguration is preferably carried out at selection times at which the first random selection is made again, since both can be associated with an interruption of the processing clock signal, depending on the specific implementation.

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.In the method, the first random selection is preferably made by software, namely a selection program, and/or the second random selection is made by hardware, namely a random number generator. The use of software ensures a high degree of flexibility of the method, since it can be programmed by a user according to his needs. The use of a random number generator implemented in hardware for the second random selection ensures that the second random selection can be made again with a high frequency, in principle this can be renewed with every cycle of the processing clock signal. A specific implementation is given by a clock signal generation circuit according to the invention.

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.Preferably, generating the processing clock signal includes generating second clock signals corresponding to the second number, wherein second clock frequencies of the second clock signals are determined by multiplying the first clock frequency by one of the scaling factors; randomly selecting one of the second clock signals according to the second random selection; and using the selected second clock signal as the processing clock signal. This embodiment enables the second random selection to be implemented quickly, since it can be based on already generated second clock signals (i.e. only one of the second clock signals has to be selected) and a clock signal does not first have to be generated after the corresponding scaling factor has been selected.

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.An inventive method for performing one or more encryptions in an encryption core includes providing a processing clock signal for the encryption core according to an inventive method for providing a processing clock signal and performing encryption steps in the encryption core according to clocks of the processing clock signal.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the attached drawing.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.

Figurenlistecharacter list

  • 1 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform des Verfahrens zur Bereitstellung eines Verarbeitungstaktsignals für einen Verschlüsselungskern; 1 Figure 12 shows a flow chart according to a preferred embodiment of the method for providing a processing clock signal for a cryptographic core;
  • 2 zeigt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer bevorzugten Ausführungsform der Erfindung; und 2 Figure 12 shows a clock generation circuit and an encryption circuit according to a preferred embodiment of the invention; and
  • 3 zeigt eine Takterzeugungsschaltung und eine Verschlüsselungsschaltung gemäß einer weiteren bevorzugten Ausführungsform der Erfindung. 3 Figure 12 shows a clock generation circuit and an encryption circuit according to a further preferred embodiment of the invention.

Ausführungsform(en) der Erfindungembodiment(s) of the invention

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. 1 shows a flowchart of a method for providing a processing clock signal for an encryption core according to a preferred embodiment of the invention. First, in optional step 10, a second number of scaling factors are configured, ie they are (re)set or specified. In principle, the scaling factors can also be specified as unchangeable, in which case a configuration is unnecessary.

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 step 12, a first clock signal is generated at a first clock frequency, the first clock frequency being randomly selected from a plurality (i.e., a first number) of predetermined clock frequencies. This random selection is referred to as the first random selection. Steps 10 (configuration of the scaling factors) and 12 (generation of the first clock signal) can also be carried out in reverse order.

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 step 14, second clock signals are derived from the first clock signal, ie a second number (equal to the number of scaling factors) of second clock signals with second clock frequencies is generated, each of the second clock frequencies being obtained from the first clock frequency by multiplication with a respective one of the scaling factors will.

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 step 16 a second random selection is made in which one of the second clock signals generated in step 14 is randomly selected. The selected second clock signal is provided in step 18 to the encryption core as a processing clock signal, one clock being provided in step 18 at a time. The subsequent steps are each performed after each cycle of the processing clock signal.

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.In step 20, it is checked whether a specific point in time (referred to as the selection point in time) has been reached. This can, for example, be a point in time after the end of an encryption and before the start of the next encryption. If this is the case, arrow 22, proceeding again to step 12, generating the first clock signal according to a first random selection, i.e. the first random selection is made again, so that the first clock frequency generally changes.

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.If no specific selection time has been reached, arrow 24, it is checked in optional step 26 whether the scaling factors should be reconfigured. In principle, this step can also be dispensed with, for example if the scaling factors in step 10 are only to be configured once or if step 10 was dispensed with because a permanently prescribed set of scaling factors is used. If a reconfiguration is to take place, arrow 28, proceed to step 10, configuring the scaling factors.

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.If no reconfiguration is to take place, arrow 30, it is checked in step 32 whether the encryption core has been provided with a predetermined number of clock cycles of the processing signal with a specific processing clock frequency, which was determined by the second random selection in step 16. If this is not the case, arrow 34, a jump is made back to step 18 and another cycle of the processing clock signal (with an unchanged processing clock frequency) is provided to the encryption core.

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.On the other hand, if the predetermined number of clock cycles of the processing clock signal has been reached, arrow 36, step 16 is entered and the second random selection is made again, so that in general a different one of the second clock signals is selected and the processing clock frequency changes accordingly. Preferably the front certain number of clock pulses of the processing clock signal equal to one, so that the second random selection is made again after each clock pulse of the processing clock signal.

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.It is pointed out that in the context of this application, the term 'processing clock frequency' refers to individual clocks, i.e. the respective, instantaneous processing clock frequency is given, for example, by the reciprocal of the time interval between two consecutive rising edges of the processing clock signal. The processing clock frequency is therefore not a frequency in the usual sense that refers to a periodic process. In contrast, the first clock frequency and the second clock frequencies are defined in the usual sense, since the first clock signal and the second clock signals have a periodically repeating form.

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.The method is preferably implemented by a clock generation circuit or an encryption circuit, the first random selection being implemented essentially in a selection program, i.e. as software, and the second random selection being implemented essentially in an electronic circuit, i.e. as hardware. Such a clock generation circuit or encryption circuit is described below.

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. 2 12 illustrates a clock generation circuit and an encryption circuit according to a preferred embodiment of the invention. The encryption circuit comprises a clock generator 52, a clock conditioning module 54, a processor core 56 and an encryption core 58. Clock generator 52, clock conditioning module 54 and processor core 56 together form a clock generation circuit which generates a processing clock signal for the encryption core 58 provides.

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.The clock generator 52 is set up to generate a first clock signal 62 with a first clock frequency, the first clock frequency being randomly selected from a first number of clock frequencies. This first random selection is essentially made by a selection program that is executed in the processor core 56 .

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.Specifically, this can be achieved, for example, as follows. First, a clock source 64 provides an original clock signal 65 at a specific frequency. The clock source can be, for example, an oscillator included in the circuit or, preferably, a connection to an external clock source which provides the original clock signal for the circuit.

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.The original clock signal is processed by a frequency divider unit 66 which reduces the frequency of the original clock signal according to a dividing ratio. The division ratio is determined randomly (corresponding to a first random selection) from a first number of division ratios by the selection program executed in processor core 56 and is set at frequency divider unit 66 via connection 68 between processor core and frequency divider unit. For this purpose, for example, a table with possible division ratios (corresponding to the first number) can be provided, with the selection program randomly taking an entry from this table. For this purpose, the selection program can, for example, generate pseudo-random numbers or adopt random numbers from another random number generator (implemented as software or hardware). The frequency dividing unit 66 can comprise one or more series-connected frequency dividers. In the case of multiple frequency dividers, the division ratio is determined by multiple dividers. If, for example, two frequency dividers (e.g. 6-bit frequency dividers) are provided, the division ratio is determined by two dividers (e.g. 6-bit numbers), the table then contains corresponding pairs of dividers.

Das Auswahlprogramm ist weiterhin dazu eingerichtet, die zufällige Auswahl der ersten Frequenz zu bestimmten Auswahlzeitpunkten erneut durchzuführen.The selection program is also set up to carry out the random selection of the first frequency again at specific selection times.

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.The output signal 67 of the frequency divider unit 66, whose frequency is given by the random division ratio from the frequency of the original clock signal, can be output via a clock output unit 70 as the first clock signal 62 or forwarded to the clock processing module 54. The clock output unit 70 serves to provide a glitch-free clock signal. Disturbances can occur here if the random selection is made again by the selection program and there is a frequency change in the first clock signal, so that a disturbance ('glitch') signal curve can occur at the transition, which can lead to errors in the downstream logic circuit . Suitable circuits for dealing with this problem are known to those skilled in the art.

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.The first clock signal 62 is routed to the clock conditioning module 54, which is configured to generate and provide the processing clock signal 60, wherein a frequency, called processing frequency, of the processing clock signal is determined by multiplication by a randomly selected scaling factor from a second number of scaling factors. This selection is referred to as the second random selection.

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.In the embodiment shown, the clock processing module 54 includes a clock scaling unit 72, a multiplexer 76 and a random number generator 78. A second number of second clock signals 74 are first derived or generated from the first clock signal 62 in the clock scaling unit 72. The frequencies (second frequencies) of the second clock signals 74 are given by multiplying the first frequency of the first clock signal by one of the scaling factors, respectively. For this purpose, the scaling factors are stored in the clock scaling unit 72, it being possible for the scaling factors to be reset or reconfigured.

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.The second clock signals 74 are routed to the multiplexer 76 which selects one of the second clock signals and provides it as the processing clock signal 60 . This selection (second random selection) is based on a signal passed from the random number generator 78 to the multiplexer 76 . The random number generator 78 thus generates random numbers corresponding to the second number. The random number generator 78 can be implemented, for example, as a linear feedback shift register. Preferably, the random number generator 78 is clocked by the output of the multiplexer 76, i.e. by the processing clock signal.

Das Verarbeitungstaktsignal 60 wird an den Verschlüsselungskern 58 geleitet, dem dieses als Taktsignal dient.The processing clock signal 60 is provided to the encryption core 58, which uses it as a clock signal.

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).Next is in the 2 a connection 80 is also shown via which the processor core 56 can communicate with the clock conditioning module 54 and in particular with the clock scaling unit 72 . Via this connection 80, the selection program executed in the processor core 56 can in particular reset the scaling factors possibly stored in the clock scaling unit 72, ie the selection program can carry out a reconfiguration of the scaling factors. The processing clock signal could also be transmitted to the processor core via this connection (not shown in detail).

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.Likewise, clock scaling unit 72 may be configured to store multiple sets of scaling values, where the number of scaling values in each set is equal to the second number. According to a state or status of the clock scaling unit, one of these sets of scaling values is then selected as scaling factors and applied as above. The status can be changed via connection 80 by the selection program running in the processor core. This can be seen as another form of reconfiguration of the scale factors. Furthermore, the sets of scaling values can also be changed via this connection, i.e. new scaling values can be stored in the sets, with advantageously scaling values of sets being changed which are not currently selected as scaling factors by virtue of their status.

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.Overall, the number of possible different processing frequencies can be significantly increased by reconfiguring the scaling factors, so that additional security against side-channel attacks is achieved.

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.A connection 82 between processor core 56 and encryption core 58 is also shown. On the one hand, the processor core can use this to control encryptions by the encryption core, in particular determine the start times of individual encryptions and/or transmit data to be encrypted to the encryption core, and on the other hand the encryption core can transmit end times of encryptions, the processing clock signal and/or encrypted data to the processor core.

Bevorzugt sind die Takterzeugungsschaltung und/oder die Verschlüsselungsschaltung als FPGA (Field Programmable Gate Array, programmierbares Logikgatter) implementiert.The clock generation circuit and/or the encryption circuit are preferably implemented as an FPGA (Field Programmable Gate Array, programmable logic gate).

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. 3 FIG. 12 shows a clock generation circuit and an encryption circuit according to a further preferred embodiment of the invention. This is largely identical to that in FIG 2 illustrated embodiment and differs only in the design of the clock processing module 54. In the following only the differences are explained, otherwise what was said above applies. The encryption circuit again includes a clock generator 52 (shown only schematically without details, but cf 2 ), a clock conditioning module 54 and a processor core 56, which together form the clock generation circuit, and an encryption core 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.The clock conditioning module 54 here comprises a plurality of clock scaling units 72 1 , 72 2 . . . 72 N which are connected to the processor core 56 via respective connections 80 1 , 80 2 . One or more sets of scaling values (the number of scaling values in each set is again the second number) are stored in each of the clock scaling units, wherein if several sets are stored, one of the sets corresponds to a state of the clock scaling unit which is connected via the corresponding connection to the processor core by the selection pro executed in this core gram is determined can be selected. In each of the clock scaling units, the first clock signal 62 is used as an input signal. The function of each of the clock scaling units corresponds to the function of the clock scaling unit 72 of FIG 2 , ie a second number of output signals is generated from the input signal, the frequencies of which are given by multiplying the frequency of the input signal by the (selected) scaling values.

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.One of the clock scaling units can also be selected via the connections 80 1 , 80 2 , ... 80 N , or alternatively by the multiplexer 76, which then has its own connection to the processor core (not shown). This selection is again made by the selection program. The output signals of the selected clock scaling unit (i.e. one of the shown sets of clock signals 74 1 , 74 2 , ... 74 N ) are then used by the multiplexer 76 (these therefore represent the second number of second clock signals) in order to be scaled according to that generated by the random number generator 78 generated random number (second random selection) to provide a clock signal as a processing clock signal for the encryption core 58.

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.The selection of the clock scaling unit can be changed by the selection program, so that the number of different processing frequencies is further increased. This embodiment with multiple clock scaling units is particularly useful in combination with a reconfiguration of the clock scaling units, since the scaling values or the status of non-selected clock scaling units can be changed while the second random selection can be made based on the output signals of the selected clock scaling unit. The encryption core can therefore continue to operate without interruption.

Claims (14)

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.Clock generation circuitry for providing a processing clock signal to a cryptographic core (58), comprising: a clock generator (52) which is set up to generate a first clock signal (62) with a first clock frequency which is randomly selected according to a first random selection from a first number of predetermined clock frequencies, the first random selection being carried out by means of a processor core ( 56) executed frequency selection program is made, which is set up to make the first random selection again at specific selection times; a clock conditioning module (54) connected to the clock generator to receive the first clock signal and configured to generate the processing clock signal (60) and provide it to the encryption core, wherein a processing frequency of the processing clock signal is determined by multiplying it by a corresponding second Random selection from a second number of scaling factors randomly selected scaling factor is derived from the first clock frequency, the second random selection being made again after a specific number of clock cycles of the processing clock signal. 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.clock generation circuit claim 1 , wherein the clock conditioning module comprises: at least one clock scaling unit (72; 72 1 , 72 2 , ... 72 N ) receiving the first clock signal, wherein a selected clock scaling unit of the at least one clock scaling unit is configured to supply second clock signals corresponding to the second number generate second clock frequencies of the second clock signals each being determined by multiplying the first clock frequency by a respective one of the scaling factors; a random number generator (78), in particular a linear feedback shift register, based on the output of which the second random selection is made, the random number generator being clocked by the processing clock signal; and a multiplexer (76) which is set up to receive the second clock signals and to select one of the second clock signals according to the output of the random number generator and to output it as a processing clock signal. 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.clock generation circuit claim 2 , wherein the at least one clock scaling unit (72; 72 1 , 72 2 , ... 72 N ) is arranged to store one or more sets of scaling values and to select one of the sets according to a status of the clock scaling unit; and wherein the selected clock scaling unit uses the set of scaling values selected according to its status as the scaling factors. 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.Clock generation circuit according to one of the preceding claims, wherein the clock conditioning module (54) is set up to reconfigure the scaling factors, the scaling factors being newly determined, the reconfiguration taking place at specific reconfiguration times which preferably coincide with selection times. 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.clock generation circuit claim 3 and 4 , whereby the scaling values are redefined during reconfiguration; wherein preferably scaling values of clock scaling units not selected at the respective reconfiguration time are redefined. Takterzeugungsschaltung nach einem der vorstehenden Ansprüche, wobei das Taktaufbereitungsmodul (54) und/oder der Taktgenerator (52) in einem programmierbaren Logikgatter implementiert sind.Clock generation circuit according to one of the preceding claims, wherein the clock conditioning module (54) and/or the clock generator (52) are implemented in a programmable logic gate. 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.Encryption circuitry comprising: a clock generation circuit according to any one of the preceding claims; and an encryption core (58) which is set up to carry out encryptions in accordance with the processing clock signal provided by the clock generation circuit. 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.encryption circuit claim 7 , the processor core (56) being connected to the encryption core (58), the processor core and the encryption core being set up in such a way that the processor core can control the start times of encryptions in the encryption core via this connection and/or the processor core can control end times from the encryption core via this connection are transmitted by encryption or the processing clock signal is transmitted; wherein the selection times are preferably determined such that they lie between two consecutive encryptions, wherein more preferably a specific number of encryptions lies between two consecutive selection times. 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.A method of providing a processing clock signal to a cryptographic core, comprising: generating (12) a first clock signal having a first clock frequency which is randomly selected according to a first random selection from a first number of predetermined clock frequencies, the first random selection being made again at specific selection times; Generating (14, 16) the processing clock signal based on the first clock signal, wherein a processing frequency of the processing clock signal is derived from the first clock frequency by multiplication with a randomly selected scaling factor corresponding to a second random selection from a second number of scaling factors, the second random selection being based on one certain number of clocks of the processing clock signal is hit again; and providing (18) the processing clock signal to the encryption core. 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.procedure after claim 9 , comprising: reconfiguring (10) the scaling factors, wherein the scaling factors are redefined, the reconfiguration taking place at specific reconfiguration times, which preferably coincide with selection times. 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.Procedure according to one of claims 9 until 10 , wherein the first random selection is made by software, in particular a selection program, and/or the second random selection is made by hardware, in particular a random number generator. 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.Procedure according to one of claims 9 until 11 wherein generating the processing clock signal comprises: generating (14) second clock signals corresponding to the second number, second clock frequencies of the second clock signals being determined by multiplying the first clock frequency by a respective one of the scaling factors; randomly selecting (16) one of the second clock signals according to the second random selection; using the selected second clock signal as the processing clock signal. 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.Method for performing one or more encryptions in an encryption core, comprising: providing a processing clock signal for the encryption core according to the method according to any one of claims 9 until 12 ; and performing encryption steps in the encryption core according to timings of the processing clock signal. Verfahren nach Anspruch 13, wobei die Auswahlzeitpunkte dadurch bestimmt werden, dass jeweils eine vorbestimmte Anzahl von Verschlüsselungen im Verschlüsselungskern durchgeführt wurde.procedure after Claim 13 , the selection times being determined in that a predetermined number of encryptions has been carried out in the encryption core.
DE102020210695.9A 2020-08-24 2020-08-24 Clock generation circuit and method for providing a processing clock signal to a cryptographic core Pending DE102020210695A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020210695.9A DE102020210695A1 (en) 2020-08-24 2020-08-24 Clock generation circuit and method for providing a processing clock signal to a cryptographic core
CN202110966839.0A CN114089810A (en) 2020-08-24 2021-08-23 Method and clock generation circuit for providing a processing clock signal for an encryption core

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020210695.9A DE102020210695A1 (en) 2020-08-24 2020-08-24 Clock generation circuit and method for providing a processing clock signal to a cryptographic core

Publications (1)

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

Family

ID=80112725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020210695.9A Pending DE102020210695A1 (en) 2020-08-24 2020-08-24 Clock generation circuit and method for providing a processing clock signal to a cryptographic core

Country Status (2)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3028140B1 (en) Design of a circuit suitable for generating random bits and circuit for generating random bits
EP1643643B1 (en) Random number generator and method for random number generation
DE602004008516T2 (en) METHOD AND CIRCUIT FOR GENERATING RANDOM COUNTERS AND COMPUTER PROGRAM PRODUCT THEREFOR
DE60122787T2 (en) DIGITAL FREQUENCY RECYCLER
DE112011106024B4 (en) Device specific information generating apparatus and device specific information generating method
DE10325287A1 (en) Scrambler, de-scrambler and related process
DE102012014512A1 (en) Spreading a clock signal
DE112005001517T5 (en) Synchronization between low frequency and high frequency digital signals
DE10219135B4 (en) Device and method for generating a random number
DE102013204274A1 (en) Method for detecting a correlation
DE102020210695A1 (en) Clock generation circuit and method for providing a processing clock signal to a cryptographic core
DE2829709A1 (en) METHOD AND ARRANGEMENT FOR GENERATING IMPULSE CYCLES IN FOLLOWING TIMES
DE102008064063B4 (en) A control signal generating circuit for setting a period value of a generated clock signal as the period of a reference signal multiplied by or divided by an arbitrary real number
DE10006144B4 (en) A timer circuit and method for generating a timing for a semiconductor test system
DE19910729C1 (en) Random number generator and method for generating random numbers
DE102008051222A1 (en) Circuit of a radio system, use and method of operation
WO2015128015A1 (en) Apparatus and method for generating random bits
DE102013213385A1 (en) Method for evaluating an output of a random number generator
DE102013204272A1 (en) Method for detecting a correlation
DE102013213392A1 (en) Method for evaluating an output of a random number generator
DE102004010562A1 (en) Interface device and method for the synchronization of data
DE10345163B4 (en) Method and apparatus for frequency division and demultiplexing
WO2016020098A1 (en) Generating an identifier for a circuit
EP1126615A1 (en) Clock frequency dividing method and frequency divider for realising said method
DE10164174A1 (en) Datenverarbeidungsvorrichtung