DE102023126167A1 - QRNG with PRNG usage, associated procedure and associated data processing system - Google Patents
QRNG with PRNG usage, associated procedure and associated data processing system Download PDFInfo
- Publication number
- DE102023126167A1 DE102023126167A1 DE102023126167.3A DE102023126167A DE102023126167A1 DE 102023126167 A1 DE102023126167 A1 DE 102023126167A1 DE 102023126167 A DE102023126167 A DE 102023126167A DE 102023126167 A1 DE102023126167 A1 DE 102023126167A1
- Authority
- DE
- Germany
- Prior art keywords
- quantum
- random number
- spad
- circuit
- random numbers
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 187
- 238000012545 processing Methods 0.000 title description 46
- 101100353137 Homo sapiens PRCC gene Proteins 0.000 claims abstract description 425
- 102100040829 Proline-rich protein PRCC Human genes 0.000 claims abstract description 425
- 230000008569 process Effects 0.000 claims abstract description 117
- 230000015654 memory Effects 0.000 claims description 220
- 238000005516 engineering process Methods 0.000 claims description 42
- 101100370223 Mus musculus Tprg1 gene Proteins 0.000 claims description 25
- 238000011156 evaluation Methods 0.000 claims description 24
- 238000004377 microelectronic Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 22
- 230000006399 behavior Effects 0.000 claims description 8
- 230000007480 spreading Effects 0.000 claims description 7
- 238000003892 spreading Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 5
- 239000002243 precursor Substances 0.000 claims description 2
- 230000006870 function Effects 0.000 description 182
- 230000003287 optical effect Effects 0.000 description 121
- 239000004065 semiconductor Substances 0.000 description 121
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 96
- 229910052710 silicon Inorganic materials 0.000 description 96
- 239000010703 silicon Substances 0.000 description 96
- 238000000605 extraction Methods 0.000 description 78
- 239000000758 substrate Substances 0.000 description 78
- 230000004913 activation Effects 0.000 description 50
- 238000001994 activation Methods 0.000 description 50
- 239000003990 capacitor Substances 0.000 description 45
- 238000004519 manufacturing process Methods 0.000 description 43
- 238000001465 metallisation Methods 0.000 description 42
- 238000012360 testing method Methods 0.000 description 42
- 239000000463 material Substances 0.000 description 41
- 238000001514 detection method Methods 0.000 description 38
- 238000012546 transfer Methods 0.000 description 35
- 230000000630 rising effect Effects 0.000 description 32
- 229910052751 metal Inorganic materials 0.000 description 28
- 239000002184 metal Substances 0.000 description 28
- 230000001360 synchronised effect Effects 0.000 description 27
- 239000013078 crystal Substances 0.000 description 26
- 238000005070 sampling Methods 0.000 description 24
- 230000008878 coupling Effects 0.000 description 22
- 238000010168 coupling process Methods 0.000 description 22
- 238000005859 coupling reaction Methods 0.000 description 22
- 230000008901 benefit Effects 0.000 description 21
- FESBVLZDDCQLFY-UHFFFAOYSA-N sete Chemical compound [Te]=[Se] FESBVLZDDCQLFY-UHFFFAOYSA-N 0.000 description 20
- 235000012431 wafers Nutrition 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 238000009413 insulation Methods 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 12
- 230000007420 reactivation Effects 0.000 description 12
- 230000002441 reversible effect Effects 0.000 description 11
- 230000032258 transport Effects 0.000 description 11
- 230000001143 conditioned effect Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000004907 flux Effects 0.000 description 9
- 230000001965 increasing effect Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 230000009849 deactivation Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012805 post-processing Methods 0.000 description 8
- 239000000243 solution Substances 0.000 description 8
- 230000007547 defect Effects 0.000 description 7
- 238000004146 energy storage Methods 0.000 description 7
- 239000007943 implant Substances 0.000 description 7
- 238000002955 isolation Methods 0.000 description 7
- 230000005291 magnetic effect Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 239000013307 optical fiber Substances 0.000 description 7
- 238000010292 electrical insulation Methods 0.000 description 6
- 238000010791 quenching Methods 0.000 description 6
- 230000000171 quenching effect Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 239000004020 conductor Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000005670 electromagnetic radiation Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000002513 implantation Methods 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000002269 spontaneous effect Effects 0.000 description 4
- 238000000528 statistical test Methods 0.000 description 4
- 238000010521 absorption reaction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000002238 attenuated effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000002800 charge carrier Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005686 electrostatic field Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- AMGQUBHHOARCQH-UHFFFAOYSA-N indium;oxotin Chemical compound [In].[Sn]=O AMGQUBHHOARCQH-UHFFFAOYSA-N 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 238000005424 photoluminescence Methods 0.000 description 2
- 238000006862 quantum yield reaction Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 239000002250 absorbent Substances 0.000 description 1
- 230000002745 absorbent Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000000295 emission spectrum Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 229910000449 hafnium oxide Inorganic materials 0.000 description 1
- WIHZLLGSGQNAGK-UHFFFAOYSA-N hafnium(4+);oxygen(2-) Chemical compound [O-2].[O-2].[Hf+4] WIHZLLGSGQNAGK-UHFFFAOYSA-N 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 230000001678 irradiating effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Power Engineering (AREA)
- Optical Communication System (AREA)
- Light Receiving Elements (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
Die Erfindung betrifft einen quantenprozessbasierenden Generator (28) für echte Zufallszahlen (411, 418) (Englisch: Quantum Random Number Generator: QRNG).Der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) weist eine Entropiequelle (401) auf. Der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) wertet dabei ein Signal (405) der Entropiequelle (401) mittels eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) auswertet und erzeugt ein oder mehrere Zufallsbits (411) und ggf. Zufallszahlen (418).The invention relates to a quantum process-based generator (28) for true random numbers (411, 418) (English: Quantum Random Number Generator: QRNG). The quantum process-based generator (28) for true random numbers (411, 418) has an entropy source (401). The quantum process-based generator (28) for true random numbers (411, 418) evaluates a signal (405) of the entropy source (401) by means of a time-to-pseudo-random number converter (TPRC) (404.3) and generates one or more random bits (411) and possibly random numbers (418).
Description
Prioritätenpriorities
Diese Patentanmeldung nimmt die Priorität der deutschen Patentanmeldung
Feld der ErfindungField of invention
Die Erfindung richtet sich auf einen Mikrocontroller, der zumindest einen quantenprozessbasierenden Generator für echte Zufallszahlen (Englisch: Quantum Random Number Generator: QRNG) als Zufallszahlengenerator insbesondere für die Verschlüsselung umfasst. Die vorliegende Erfindung umfasst insbesondere einen Zufallszahlengenerator (RNG), insbesondere einen echten Zufallszahlengenerator (TRNG) einer verbesserten Art basierend auf Quantenprozessen und die Auswertung des Signals der Entropiequelle mittels Pseudozufallszahlengeneratoren (PRNG), die sich innerhalb der Entropieextraktion befinden.The invention is directed to a microcontroller that includes at least one quantum process-based generator for true random numbers (QRNG) as a random number generator, in particular for encryption. The present invention includes in particular a random number generator (RNG), in particular a true random number generator (TRNG) of an improved type based on quantum processes and the evaluation of the signal of the entropy source by means of pseudorandom number generators (PRNG) that are located within the entropy extraction.
Die vorliegende Erfindung bezieht sich somit auf eine Datenverarbeitungsvorrichtung mit einem quantentechnologiebasierenden Zufallszahlengenerator.The present invention thus relates to a data processing device with a quantum technology-based random number generator.
Hintergrund der ErfindungBackground of the invention
Die Automobilindustrie und andere Industrien sehen sich zunehmend verschiedensten Piraterieangriffen ausgesetzt. Die Fälscher kopieren die Ersatzteile und Produkte der betroffenen industriellen Produzenten und nutzen in der Regel deren Markennamen. Ein weiterer Angriffspunkt ist die Datenübertragung innerhalb der Produkte und/oder die Datenübertragung zum Produkt und zurück.The automotive industry and other industries are increasingly exposed to various piracy attacks. The counterfeiters copy the spare parts and products of the industrial producers concerned and usually use their brand names. Another point of attack is the data transfer within the products and/or the data transfer to the product and back.
Die Eigenschaften der Entropie gängiger Zufallszahlengeneratoren für solche Systeme sind typischerweise unzureichend. Aus dem Stand der Technik sind mit quantenprozessbasierenden Generatoren für echte Zufallszahlen (Englisch: Quantum Random Number Generator: QRNG) bekannt, die jedoch nur schwer integrierbar sind oder eine schlechte Quantenausbeute zeigen.The entropy properties of common random number generators for such systems are typically inadequate. Quantum process-based generators for true random numbers (QRNGs) are known from the state of the art, but they are difficult to integrate or show a poor quantum yield.
Es ist bekannt, dass Zufallszahlengeneratoren derzeit in vielen Anwendungen eingesetzt werden, die von der Wissenschaft bis hin zur Kryptographie reichen.It is well known that random number generators are currently used in many applications ranging from science to cryptography.
Aus dem Stand der Technik ist insbesondere die technische Lehre der
„Ein typisches Beispiel für den ersten Fall ist die Computerwissenschaft, die die Erzeugung einer bestimmten Anzahl von zufälligen Anfangszuständen erfordert, die als Beschreibung des Anfangszustands der Simulation dienen.“A typical example of the first case is computer science, which requires the generation of a certain number of random initial states that serve as a description of the initial state of the simulation.
Für diese Art von Anwendungen ist es im Allgemeinen erforderlich, dass die Anfangskonfigurationen nicht streng miteinander korreliert sind, sondern auf deterministische Weise reproduziert werden können, um zum Beispiel die Auswirkungen von Variationen auf die Codes, die die Simulationen durchführen, zu überprüfen. Aus diesem Grund werden diese Sequenzen korrekter als Pseudozufallszahlen (PRN) bezeichnet, da sie durch komplexe Algorithmen definiert werden, die von einem Ausgangswert ausgehen. Mit anderen Worten: Bei einer anfänglichen Zufallszahl, die im Fachjargon als „Seed“ bezeichnet wird, wird eine noch so komplexe Formel immer dieselbe Folge von Zufallszahlen reproduzieren. Die entsprechenden Generatoren werden als PseudoZufallszahlengeneratoren (PRNG) bezeichnet.For this type of application, it is generally necessary that the initial configurations are not strictly correlated with each other, but can be reproduced in a deterministic way, for example to check the effects of variations on the codes that perform the simulations. For this reason, these sequences are more correctly called pseudorandom numbers (PRN), since they are defined by complex algorithms that start from an initial value. In other words, given an initial random number, known in technical jargon as a "seed", a formula, no matter how complex, will always reproduce the same sequence of random numbers. The corresponding generators are called pseudorandom number generators (PRNG).
Im zweiten Fall hingegen, d.h. wenn Zufallszahlen in Kryptographietechniken zur Ausführung von z.B. Bankoperationen verwendet werden, scheint der oben beschriebene Ansatz schwach zu sein, da sichergestellt werden muss, dass die generierten Sequenzen absolut unvorhersehbar sind, um die Sicherheit hochsensibler Informationen gewährleisten zu können. In diesem Fall besteht der sicherste Ansatz in der Generierung von Zufallszahlen, die aus einem Generierungsprozess stammen, der wirklich ein Zufallsprozess sein muss und keine Vorhersage der generierten Sequenz zulassen darf. Diese Generatoren werden als True Random Number Generators (TRNG) bezeichnet. Insbesondere Quantenmechanismen, wie z. B. die Erzeugung von Photonen durch eine Lichtquelle, gehören zu den am besten untersuchten Methoden zur Gewinnung der besagten Sequenzen echter Zufallszahlen und beruhen auf der Unbestimmtheit des gemessenen Ereignisses, die zu den Eigenschaften des Quantensystems selbst gehört.In the second case, however, i.e. when random numbers are used in cryptography techniques to perform e.g. banking operations, the approach described above seems to be weak, since it must be ensured that the generated sequences are absolutely unpredictable in order to be able to guarantee the security of highly sensitive information. In this case, the safest approach is to generate generation of random numbers that come from a generation process that must be truly random and must not allow any prediction of the generated sequence. These generators are called True Random Number Generators (TRNG). In particular, quantum mechanisms, such as the generation of photons by a light source, are among the best studied methods for obtaining said sequences of true random numbers and are based on the uncertainty of the measured event, which is one of the properties of the quantum system itself.
Aus der Sicht der Informationstheorie kann der Grad der Unvorhersehbarkeit der mit den beiden oben genannten Techniken erzeugten Zufallszahlen durch den Parameter „Entropie“ ausgedrückt werden, der als die in einer Zufallsvariable vorhandene Unsicherheit oder Information bekannt ist.From the point of view of information theory, the degree of unpredictability of the random numbers generated using the two techniques mentioned above can be expressed by the parameter “entropy”, which is known as the uncertainty or information present in a random variable.
Darüber hinaus ist es wichtig zu betonen, dass das National Institute of Standards and Technology (NIST) in seiner Richtlinie NIST SP800-22 etwa fünfzehn statistische Tests festlegt, mit denen festgestellt werden kann, ob ein bestimmter Zufallszahlengenerator ein ausreichendes Maß an Entropie aufweist oder nicht.In addition, it is important to emphasize that the National Institute of Standards and Technology (NIST) in its NIST SP800-22 guideline specifies about fifteen statistical tests that can be used to determine whether a given random number generator has a sufficient level of entropy or not.
Wie bereits erwähnt, ist die Verwendung von PRNGs für kryptografische Zwecke gefährlich, nicht nur, weil bestimmte Algorithmen Schwächen aufweisen, die möglicherweise erst einige Zeit nach ihrer Einführung zutage treten, sondern auch, weil eine böswillige Person, die den Seed, aus dem alle Zufallssequenzen generiert werden, wiederherstellen könnte, alle nachfolgenden Ausgaben auf der Grundlage desselben Seeds mit absoluter Sicherheit vorhersagen könnte.As mentioned above, using PRNGs for cryptographic purposes is dangerous not only because certain algorithms have weaknesses that may not become apparent until some time after their introduction, but also because a malicious person who could recover the seed from which all random sequences are generated could predict all subsequent outputs based on the same seed with absolute certainty.
Eine Lösung, die sich auf physikalische Phänomene und insbesondere auf Quantenphänomene stützt, ist daher in Anbetracht der inhärenten Unvorhersehbarkeit dieser Ereignisse selbst für Personen, die die verwendeten Algorithmen genau kennen und über eine hohe Rechenkapazität verfügen, viel besser geeignet. Während jedoch die Algorithmen zur Erzeugung von Pseudozufallszahlen so gewählt werden können, dass sie Sequenzen mit bestimmten statistischen Eigenschaften erzeugen, die aufgrund ihres deterministischen Charakters mit absoluter Sicherheit bestimmt werden können, unterliegen die aus physikalischen Phänomenen gewonnenen Zufallszahlen praktischen Beschränkungen, die beispielsweise auf Schwankungen in der Produktionsqualität der Geräte, auf Schwankungen der Stromversorgung, auf Umweltfaktoren wie äußere Felder und Temperaturschwankungen zurückzuführen sind. Diese Abweichungen vom Idealfall bedingen im Allgemeinen eine Abweichung von einer statistischen Gleichverteilung, die unabhängig von den Ereignissen ist, die in einem Stichprobenraum gemessen werden können. Infolgedessen ist es möglich, sogar eine Verringerung der Entropie der genannten echten Zufallszahlengeneratoren zu beobachten.A solution based on physical phenomena, and in particular quantum phenomena, is therefore much more suitable, given the inherent unpredictability of these events, even for people with a thorough knowledge of the algorithms used and with a high computational capacity. However, while the algorithms for generating pseudorandom numbers can be chosen to generate sequences with certain statistical properties that can be determined with absolute certainty due to their deterministic nature, the random numbers obtained from physical phenomena are subject to practical limitations due, for example, to variations in the production quality of the equipment, to variations in the power supply, to environmental factors such as external fields and temperature variations. These deviations from the ideal case generally entail a deviation from a statistical uniform distribution that is independent of the events that can be measured in a sample space. As a result, it is possible to observe even a reduction in the entropy of the said true random number generators.
Um diesen Nachteil zu vermeiden, benötigen die besagten Echten Zufallszahlengeneratoren einen weiteren Schritt, die so genannte Nachbearbeitung, die nach der Extraktion der Zufallscodefolge, ausgehend von dem spezifischen physikalischen Phänomen, durchgeführt wird. Dieser Nachbearbeitungsschritt ermöglicht es in der Tat, die Gleichmäßigkeit der Wahrscheinlichkeitsverteilung der Zufallscodefolge zu verbessern. Nachteilig ist jedoch, dass sich dieser Nachbearbeitungsschritt auf die Bitrate auswirkt, die der Generator garantieren kann.To avoid this drawback, the said True Random Number Generators require a further step, the so-called post-processing, which is carried out after the extraction of the random code sequence, starting from the specific physical phenomenon. This post-processing step indeed makes it possible to improve the uniformity of the probability distribution of the random code sequence. The disadvantage, however, is that this post-processing step affects the bit rate that the generator can guarantee.
Wie bereits erwähnt, ist auch bekannt, dass eines der physikalischen Phänomene, die für die Erzeugung echter Zufallszahlen am meisten genutzt werden, die Quantenphotonik ist. Aus diesem Grund werden diese Generatoren, die zur Makrokategorie der TRNGs gehören, auch mit dem Akronym QRNG (Quantum Random Number Generator) bezeichnet. In diesen Generatoren erzeugt eine abgeschwächte Lichtquelle einige wenige Photonen (niedriger Wert des detektierten Photonenflusses λ), die von einem oder mehreren Einzelphotonendetektoren erfasst werden, von denen jeder unter dem Akronym SPAD (Single Photon Avalanche Diode) bekannt ist. Darüber hinaus umfasst das System entsprechende elektronische Schaltungen, die den oben genannten SPADs nachgeschaltet sind und aus Hilfsschaltungen und in der Regel aus einem oder mehreren TDCs (Time to Digital Converter) oder Zählern bestehen, die in der Lage sind, eine zufällige Bitfolge aus jedem der SPADs zu extrahieren, indem sie die Ankunftszeit der erfassten Photonen messen oder sie zählen.As already mentioned, it is also known that one of the physical phenomena most used to generate truly random numbers is quantum photonics. For this reason, these generators, which belong to the macro category of TRNGs, are also called by the acronym QRNG (Quantum Random Number Generator). In these generators, an attenuated light source generates a few photons (low value of the detected photon flux λ) that are detected by one or more single-photon detectors, each of which is known by the acronym SPAD (Single Photon Avalanche Diode). In addition, the system includes appropriate electronic circuits downstream of the aforementioned SPADs, consisting of auxiliary circuits and, usually, one or more TDCs (Time to Digital Converters) or counters capable of extracting a random bit sequence from each of the SPADs by measuring the arrival time of the detected photons or by counting them.
Bei diesen Generatoren sind die Lichtquelle und der oder die Detektoren separate Geräte, die in geeigneter Weise gekoppelt und abgeschirmt werden müssen. Nachteilig ist jedoch, dass diese Ausführung natürlich nicht gegen den Einfluss unkontrollierter äußerer Umweltfaktoren gefeit ist. Darüber hinaus macht die Tatsache, dass die Lichtquelle und der/die Detektor(en) getrennte Geräte sind, die nacheinander miteinander gekoppelt werden, den gesamten Zufallszahlengenerator sehr anfällig für jede Art von Beeinflussung oder Manipulation.In these generators, the light source and the detector(s) are separate devices that must be coupled and shielded in an appropriate manner. The disadvantage, however, is that this design is of course not immune to the influence of uncontrolled external environmental factors. In addition, the fact that the light source and the detector(s) are separate devices that are coupled one after the other makes the entire random number generator very vulnerable to any kind of influence or manipulation.
Ein weiterer Nachteil ist, dass diese Implementierung hohe Kosten für das Gerät mit sich bringt, da die beiden Geräte optisch ausgerichtet werden müssen.Another disadvantage is that this implementation entails high costs for the device because the two devices have to be optically aligned.
Nach den obigen Ausführungen sei darauf hingewiesen, dass auf dem Markt verschiedene Arten von Zufallszahlengeneratoren auf der Grundlage des QRNG-Konzepts erhältlich sind. Diese Generatoren decken ein breites Spektrum von Anwendungen ab, von tragbaren USB-Geräten, die nur einige hundert kbit/s liefern, bis zu großen elektronischen Systemen, die eine Bitrate von Hunderten von Mbit/s garantieren können. Darüber hinaus wurden in der vorhandenen Literatur zu diesem Thema mehrere Logiken und Architekturen vorgeschlagen, die für die Bestimmung von Sequenzen echter Zufallszahlen ausgehend von einem physikalischen Phänomen, insbesondere von der Photonendetektion, ausgelegt sind. Die meisten von ihnen erfassen die „Ankunftszeit“ oder die Anzahl der Photonen, die auf die empfindliche Oberfläche des oder der SPAD-Detektoren auftreffen. Ein Beispiel für einen bekannten Quantenzufallszahlengenerator, der auf der Ankunftszeit basiert, findet sich in der internationalen Veröffentlichung
Insbesondere bei der Technik, die auf der so genannten Ankunftszeit basiert, wurde vorgeschlagen, die Zeit zu messen, die zwischen dem Zeitpunkt, zu dem ein Photon mit einem einzelnen SPAD in Kontakt kommt, und dem Zeitpunkt, zu dem das nachfolgende Photon mit demselben SPAD in Kontakt kommt, vergeht. Mit dieser Technik lässt sich zwar eine hohe Bitrate erzielen, sie weist jedoch eine erhebliche Verzerrung auf, da, wie bereits erläutert, die Photonenquelle dem Poisson-Prozess gehorcht.In particular, the technique based on the so-called arrival time has been proposed to measure the time elapsed between the moment when a photon comes into contact with a single SPAD and the moment when the subsequent photon comes into contact with the same SPAD. Although this technique allows a high bit rate to be achieved, it suffers from significant distortion because, as explained above, the photon source obeys the Poisson process.
Um diesen Nachteil zu überwinden, schlägt der Stand der Technik vor, direkt auf die Photonenquelle einzuwirken, um den Fluss der von dieser Quelle erzeugten Photonen zu steuern. Dieser Vorgang umfasst insbesondere die Veränderung des Pilotstroms der Photonenquelle, um ihre statistische Verteilung über die Zeit so gleichmäßig wie möglich zu gestalten.To overcome this drawback, the state of the art proposes to act directly on the photon source to control the flux of photons produced by this source. This operation involves in particular varying the pilot current of the photon source in order to make its statistical distribution over time as uniform as possible.
Nachteilig bei diesem Ansatz ist jedoch, dass in den Zufallszahlengenerator eine spezielle elektronische Schaltung eingebaut werden muss, die, wie oben erläutert, die Photonenquelle steuern kann, was die Komplexität und die Größe des Generators selbst erhöht."The disadvantage of this approach, however, is that a special electronic circuit must be built into the random number generator that can control the photon source, as explained above, which increases the complexity and size of the generator itself."
AufgabeTask
Die vorliegende Erfindung zielt darauf ab, alle oben genannten Nachteile zu überwinden. Insbesondere ist es ein Ziel der Erfindung, einen Generator für echte Zufallszahlen bereitzustellen, der es ermöglicht, ein hohes Maß an Entropie zu garantieren, so dass er zumindest die vom NIST definierten statistischen Tests besteht.The present invention aims to overcome all the above-mentioned drawbacks. In particular, an object of the invention is to provide a true random number generator that makes it possible to guarantee a high level of entropy, so that it at least passes the statistical tests defined by NIST.
Ein weiteres Ziel der Erfindung ist es, einen Generator für echte Zufallszahlen zur Verfügung zu stellen, der es ermöglicht, eine noch höhere Bitrate bei der Erzeugung von Zufallsfolgen von Bits zu erreichen und die Zufälligkeit des Messergebnisses auch bei Ausfall der Entropiequelle sicherzustellen.A further aim of the invention is to provide a generator for true random numbers which makes it possible to achieve an even higher bit rate in the generation of random sequences of bits and to ensure the randomness of the measurement result even if the entropy source fails.
Ein weiteres Ziel der Erfindung ist es, einen echten Zufallszahlengenerator bereitzustellen, der eine kompaktere, robustere und weniger komplexe Struktur aufweist als die im Stand der Technik bekannten Zufallszahlengeneratoren, sodass dieser Zufallszahlengenerator im Pad-Rand einer monolithisch integrierten Halbleiterschaltung untergebracht werden kann.Another object of the invention is to provide a true random number generator having a more compact, robust and less complex structure than the random number generators known in the prior art, so that this random number generator can be accommodated in the pad edge of a monolithically integrated semiconductor circuit.
Ein weiteres Ziel der Erfindung ist es, einen echten Zufallszahlengenerator bereitzustellen, der ein hohes Maß an Sicherheit gegen jeden Versuch bietet, seine internen Komponenten gewaltsam zu verändern oder zu manipulieren.Another object of the invention is to provide a true random number generator that offers a high level of security against any attempt to forcibly alter or tamper with its internal components.
Ein weiteres Ziel der Erfindung ist es, einen echten Zufallszahlengenerator bereitzustellen, der ein hohes Maß an Sicherheit bietet, jeden Versuch, seine internen Komponenten gewaltsam zu verändern oder zu manipulieren, zu detektieren und zu melden.Another object of the invention is to provide a true random number generator that offers a high level of security by detecting and reporting any attempt to forcibly alter or tamper with its internal components.
Ein weiteres, aber nicht weniger wichtiges Ziel der Erfindung ist es, einen echten Zufallszahlengenerator bereitzustellen, der im Vergleich zu den Generatoren des bekannten Standes der Technik wirtschaftlicher ist.A further, but no less important, object of the invention is to provide a true random number generator which is more economical compared to the generators of the known prior art.
Die Vorrichtung des unabhängigen Anspruchs löst dieses Problem. Weiterbildungen sind Gegenstand der Unteransprüche.The device of the independent claim solves this problem. Further developments are the subject of the subclaims.
Lösung der AufgabeSolution to the task
Die Automobilindustrie und andere Industrien sehen sich zunehmend verschiedensten Piraterieangriffen ausgesetzt. Die Fälscher kopieren die Ersatzteile und Produkte der betroffenen industriellen Produzenten und nutzen in der Regel deren Markennamen. Ein weiterer Angriffspunkt ist die Datenübertragung innerhalb der Produkte und/oder die Datenübertragung zum Produkt und zurück.The automotive industry and other industries are increasingly exposed to various types of piracy attacks. Counterfeiters copy the spare parts and products of the industrial producers concerned and usually use their brand names. Another point of attack is the data transfer within the products and/or the data transfer to the product and back.
Die Eigenschaften der Entropie gängiger Zufallszahlengeneratoren für solche Systeme sind typischerweise unzureichend. Aus dem Stand der Technik sind mit quantenprozessbasierenden Generatoren für echte Zufallszahlen (Englisch: Quantum Random Number Generator: QRNG) bekannt, die jedoch nur schwer integrierbar sind oder eine schlechte Quantenausbeute zeigen.The entropy properties of common random number generators for such systems are typically inadequate. Quantum process-based generators for true random numbers (QRNGs) are known from the state of the art, but they are difficult to integrate or show a poor quantum yield.
Es ist aus dem Stand der Technik bekannt, einen integrierten Schaltkreis bereitzustellen, der neben anderen Merkmalen einen Prozessor enthält. Bei einigen Anwendungen muss sichergestellt werden, dass die verarbeiteten Daten, einschließlich des ausführbaren Codes, nicht von Unbefugten geändert werden können, die auf außerhalb des integrierten Schaltkreises gespeicherte Daten zugreifen, oder, falls ein solcher Zugriff erfolgt, dass er nicht unbemerkt erfolgen kann.It is known in the art to provide an integrated circuit which includes, among other features, a processor. In some applications, it is necessary to ensure that the data being processed, including the executable code, cannot be modified by unauthorized persons accessing data stored outside the integrated circuit or, if such access does occur, that it cannot be done unnoticed.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Gemäß einem Aspekt der vorliegenden Erfindung wird eine Vorrichtung bereitgestellt, die Folgendes umfasst: einen vorzugsweise einstückigen, vorzugsweise monolithischen, mikrointegrierten Schaltkreis, der einen oder mehrere Prozessoren (10-1, 10-2) und einen oder mehrere nichtflüchtige Speicher umfasst, der vorzugsweise mindestens einen Sicherheitscode speichert; einen ersten vorzugsweise schreib/lesbaren Speicher außerhalb oder innerhalb des integrierten Schaltkreises, der Daten speichert, wobei die Daten vorzugsweise in einem ersten Format kryptographisch geschützt sind; und vorzugsweise einen zweiten schreib/lesbaren Speicher außerhalb oder innerhalb des integrierten Schaltkreises zum Speichern von Daten; wobei die Vorrichtung so angeordnet ist, dass sie Daten vom ersten Speicher über eine Vorrichtung des integrierten Schaltkreises zum zweiten Speicher überträgt, damit der Prozessor vom zweiten Speicher aus darauf zugreifen kann; die integrierte Schaltung angeordnet ist, um während der Übertragung die aus dem ersten Speicher gelesenen Daten unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes zu validieren und, wenn die Daten validiert sind, einen kryptographischen Schutz in einem zweiten Format auf die validierten Daten unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes anzuwenden und die in dem zweiten Format geschützten Daten in dem zweiten Speicher zu speichern. Dabei nutzt die vorgeschlagene Vorrichtung einen quantentechnologiebasierenden mikrointegrierten Zufallszahlengenerator (QRNG 28) zur Verschlüsselung. Ein solcher Zufallszahlengenerator liefert eine echte Zufallszahl, da der Prozess der Zufallszahlenerzeugung auf einem nicht vorhersagbaren Quantenprozess beruht.According to one aspect of the present invention, there is provided a device comprising: a preferably one-piece, preferably monolithic, micro-integrated circuit comprising one or more processors (10-1, 10-2) and one or more non-volatile memories, preferably storing at least one security code; a first preferably read/write memory external or internal to the integrated circuit for storing data, the data preferably being cryptographically protected in a first format; and preferably a second read/write memory external or internal to the integrated circuit for storing data; the device being arranged to transfer data from the first memory to the second memory via a device of the integrated circuit for access by the processor from the second memory; the integrated circuit is arranged to validate the data read from the first memory during transmission using a security code stored in the non-volatile memory and, when the data is validated, to apply cryptographic protection in a second format to the validated data using a security code stored in the non-volatile memory and to store the data protected in the second format in the second memory. The proposed device uses a quantum technology-based micro-integrated random number generator (QRNG 28) for encryption. Such a random number generator delivers a true random number because the process of random number generation is based on an unpredictable quantum process.
Durch die Übertragung von Daten über die Vorrichtungen des integrierten Schaltkreises und die Verwendung der Vorrichtungen des integrierten Schaltkreises zur Validierung von Daten und zum Schutz der übertragenen Daten wird die Sicherheit aufrechterhalten, da die Validierung innerhalb des integrierten Schaltkreises erfolgt und der Schutz angewendet wird.By transmitting data over the integrated circuit devices and using the integrated circuit devices to validate data and protect the transmitted data, security is maintained because validation occurs and protection is applied within the integrated circuit.
Durch kryptografischen Schutz der Daten im ersten und im zweiten Speicher auf der Grundlage eines oder mehrerer Sicherheitscodes im nichtflüchtigen Speicher der integrierten Schaltung werden die Daten gesichert.The data is secured by cryptographically protecting the data in the first and second memories based on one or more security codes in the non-volatile memory of the integrated circuit.
In einer Ausführungsform werden nur validierte Daten aus dem ersten Speicher verarbeitet, und wenn Daten vom Prozessor aus dem zweiten Speicher gelesen werden, werden nur validierte Daten aus dem zweiten Speicher verarbeitet.In one embodiment, only validated data from the first memory is processed, and when data is read by the processor from the second memory, only validated data from the second memory is processed.
In einer Ausführungsform ist der zweite Speicher ein Speicher mit wahlfreiem Zugriff (RAM) für den Prozessor, der es dem Prozessor ermöglicht, einzelne Wörter zu speichern und abzurufen, die individuell geschützt sind, im Gegensatz zum ersten Speicher, der ein Nur-Lese-Speicher (ROM) ist und der nur Lesezugriff auf einen Datensatz erlaubt.In one embodiment, the second memory is a random access memory (RAM) for the processor that allows the processor to store and retrieve individual words that are individually protected, as opposed to the first memory, which is a read-only memory (ROM) that allows only read access to a record.
Die Erfindung sieht auch eine Datenverarbeitungsvorrichtung vor, die Folgendes umfasst:
- Eine integrierte Schaltung mit einem Prozessor, einem nichtflüchtigen Speicher, der mindestens einen Sicherheitscode speichert, einem Hash-Rechner und einer Schnittstelle an der Grenze der integrierten Schaltung; und einen Speicher innerhalb oder außerhalb der integrierten Schaltung zum Speichern von Daten zur Verwendung durch den Prozessor, wobei der Speicher, wenn er außerhalb der integrierten Schaltung liegt, vorzugsweise über eine Schnittstelle an der Grenze der integrierten Schaltung mit dem Prozessor gekoppelt ist, um Daten beispielsweise in Form von Datenwörtern vom Prozessor zu empfangen und Datenwörter an den Prozessor zu liefern. Der Prozessor und der Hash-Rechner sind so angeordnet, dass sie die Schritte
- a. Berechnen des Hashs mittels einer Hash-Funktion für jedes Datenwort in Abhängigkeit von einem in dem nichtflüchtigen Speicher gespeicherten Sicherheitscode und Speichern des Hashs in Verbindung mit dem Datenwort,
- b. Abrufen gespeicherter Datenwörter aus dem Speicher, Neuberechnen einer Hash-Funktion für jedes abgerufene Datenwort unter Verwendung des Sicherheitscodes und Vergleichen des neu berechneten Hash-Wertes mit dem gespeicherten Hash-Wert, und
- c. Zulassen des Verarbeitens des abgerufenen Datenworts durch die Datenverarbeitungsanlage nur dann, wenn die neu berechneten Hashes und die gespeicherten Hashes eine vorher festgelegte Beziehung aufweisen.
- An integrated circuit comprising a processor, a non-volatile memory storing at least one security code, a hash calculator and an interface at the boundary of the integrated circuit Circuit; and a memory inside or outside the integrated circuit for storing data for use by the processor, the memory, when outside the integrated circuit, preferably being coupled to the processor via an interface at the boundary of the integrated circuit for receiving data, for example in the form of data words, from the processor and for supplying data words to the processor. The processor and the hash calculator are arranged to carry out the steps
- a. Calculating the hash using a hash function for each data word depending on a security code stored in the non-volatile memory and storing the hash in connection with the data word,
- b. retrieving stored data words from the memory, recalculating a hash function for each retrieved data word using the security code and comparing the recalculated hash value with the stored hash value, and
- c. Allowing the data processing system to process the retrieved data word only if the newly calculated hashes and the stored hashes have a predetermined relationship.
Ausführungsformen des Vorschlags werden nun beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.Embodiments of the proposal will now be described by way of example with reference to the accompanying drawings.
Insbesondere umfasst der erfindungsgemäße Generator für echte Zufallszahlen (Quantenzufallszahlengenerator 28) eine Photonenquelle 54 mit einem Fluss detektierter Photonen λ horizontal in einem Lichtwellenleiter 44 transportierten Lichts 58, einen oder mehrere Photonendetektoren 55, vorzugsweise Einzelphotonendetektoren (SPADs), und elektronische Abtastmittel (403, 2022, 402, 403, 404.2) die operativ mit dem einen oder den mehreren Photonendetektoren 55 verbunden sind, um eine Bitfolge von Quantenzufallsbits 411 (Zufallsbitfolge) auf der Grundlage der Anzahl der in den Photonendetektoren 55 detektierten Photonen zu erzeugen.In particular, the true random number generator (quantum random number generator 28) according to the invention comprises a
Der besagte Generator für echte Zufallszahlen, im Folgenden Quantenzufallszahlengenerator 28 (QRNG) genannt, ist insbesondere dadurch gekennzeichnet, dass die Photonenquelle 54 und der oder die Photonendetektoren 55 möglichst nahe beieinander und optisch direkt oder indirekt gekoppelt angeordnet und in einem einzigen Halbleitersubstrat 49 integriert sind. Vorzugsweise sind die Photonenquelle 54 und der oder die Photonendetektoren 55 in einem gemeinsamen Halbleitersubstrat 49 in einer CMOS-Technologie, bevorzugt einer BCD-Technologie gefertigt. Vorzugsweise umfasst die Photonenquelle 54 eine Silizium-LED und/oder einen Silizium-Laser. Beispielsweise kann die Photonenquelle 54 eine erste SPAD-Diode 54 umfassen. Beispielsweise kann der Photonendetektor 55 eine Fotodiode umfassen, Beispielsweise kann der Photonendetektor 55 eine zweite SPAD-Diode 55 umfassen.The said generator for true random numbers, hereinafter referred to as quantum random number generator 28 (QRNG), is characterized in particular in that the
Der erfindungsgemäße Quantenzufallszahlengenerator 28 umfasst bevorzugt eine Photonenquelle 54 mit einem detektierten Photonenfluss gleich AThe quantum
Es ist nicht auszuschließen, dass der Quantenzufallszahlengenerator 28 in einer alternativen Ausführungsform mehr als eine Photonenquelle 54 umfasst. Dies hat jedoch den Nachteil eines größeren Chipflächenbedarfs.It cannot be ruled out that the quantum
Gemäß der bevorzugten Ausführungsform des Vorschlags umfasst der vorgeschlagene Quantenzufallszahlengenerator 28 vorzugsweise außerdem eine Anordnung von einem oder mehr Photonendetektoren 55.According to the preferred embodiment of the proposal, the proposed quantum
Vorzugsweise, aber nicht notwendigerweise, ist jeder dieser Photonendetektoren 55 ein Einzelphotonendetektor 55. Bei der Realisierung eines oder mehrerer Photonendetektoren 55 als in Sperrrichtung betriebene PN-Dioden in einem Halbleitersubstrat 49 mit einer Vorspannung in der Nähe der Durchbruchspannung der betreffenden PN-Diode und einer Begrenzung des Durchbruchsstroms der betreffenden PN-Diode spricht man im Allgemeinen von Einzelphotonenlawinendioden (single photon avalanche photo diodes), die das hier vorgelegte Dokument auch mit dem Akronym SPAD bezeichnet.Preferably, but not necessarily, each of these
Wie bereits erwähnt, ist ein einzelner Photonendetektor 55 in der Lage, Informationen über den Einfall eines einzelnen Photons in seinem empfindlichen Volumen und möglicherweise über die Ankunftszeit des letzteren innerhalb eines Beobachtungsfensters mit einer vorher festgelegten Dauer zu erfassen und als Ausgang zu liefern.As already mentioned, a
Zwischen zwei aufeinanderfolgenden Beobachtungsfenstern durchläuft jeder Photonendetektor 55 (jede zweite SPAD-Diode 55) eine Phase der Wiederherstellung der Ausgangsbedingungen, die das hier vorgelegte Dokument im Folgenden als Totzeit bezeichnet. Während der Totzeit einer zweiten SPAD-Diode 55 kann diese zweite SPAD 55 kein weiteres nachfolgendes Photon mehr sicher erkennen.Between two consecutive observation windows, each photon detector 55 (every second SPAD diode 55) goes through a phase of restoring the initial conditions, which the document presented here hereinafter refers to as dead time. During the dead time of a second
Typischerweise arbeiten in der Anordnung von Photonendetektoren 54 des SPAD-Typs jede jeweilige SPAD-Diode 55 unabhängig und parallel zu den anderen SPAD-Dioden 55. Typischerweise weist die Anordnung der SPAD-Dioden 55 einen einzigen gemeinsamen Ausgang zum Ablesen des jeweiligen Signals auf, das von der gleichen Anordnung von SPAD-Dioden 55 von außen erzeugt wird.Typically, in the SPAD-type array of
Der typische Vorteil einer Anordnung von dicht beieinanderliegender SPAD-Dioden 55 liegt typischerweise darin, dass der Raumwinkel der von der Photonenquelle 55 erzeugten Photonen 58 vergrößert wird und dass eventuelle Totzeiten reduziert werden, wodurch die Erzeugungsrate der Quantenzufallsbits 411 des Quantenzufallszahlengenerators 28 und damit die Rate der Quantenzufallsdatenwörter 418 selbst erhöht wird. Dies ermöglicht wiederum die Verschlüsselung größerer Datenmengen.The typical advantage of an arrangement of closely spaced
Während die technische Lehre der
Es kann jedoch nicht ausgeschlossen werden, dass gemäß einer alternativen Ausführungsform des Vorschlags der Quantenzufallszahlengenerator 28 immer ein Array von zweiten SPAD-Dioden 55 als Array von Photonendetektoren 55 umfasst, wobei jedoch jede SPAD-Diode 55, bzw. jeder Photonendetektor 55 unabhängig von den anderen sind, was bedeutet, dass diese Vorrichtungsteile jeweils einzeln für sich nach außen ein jeweiliges Signal erzeugen können, das typischerweise jeweils unabhängig von den Signalen der anderen SPAD-Dioden 55 bzw. von den anderen Photonendetektoren 55 ist. Gemäß einer anderen Ausführungsform des vorschlagsgemäßen Quantenzufallszahlengenerators 28 kann die Anordnung in Untergruppen von SPAD-Dioden 55 bzw. Untergruppen von Photonendetektoren 55 unterteilt werden, wobei jede Untergruppe eine vorher festgelegte Anzahl von SPAD-Dioden 55 bzw. Photonendetektoren 55 umfasst, die vorzugsweise jeweils so parallel miteinander verbunden sind, dass sie jeweils ein einziges Signal nach außen bezogen auf die Entropiequelle 401 des Quantenzufallszahlengenerators 28 erzeugen.However, it cannot be ruled out that according to an alternative embodiment of the proposal, the quantum
Im letzteren Fall kann jede der Untergruppen von SPAD-Dioden 55 bzw. Photonendetektoren 55 unabhängig von den anderen Untergruppen der SPAD-Dioden bzw. Photonendetektoren mit der Außenwelt der Entropiequelle 401 des Quantenzufallszahlengenerators 28 verbunden werden.In the latter case, each of the subgroups of
Diese Unabhängigkeit hat den Vorteil, dass die Extraktion der binären Zufallsfolgen aus Quantenzufallsbits 411 aus dem Quantenzufallszahlengenerator 28 parallelisiert werden kann, wodurch sich die Bitrate des Quantenzufallszahlengenerators 28 nochmals durch Raummultiplex erhöht.This independence has the advantage that the extraction of the binary random sequences from quantum
Gemäß einer anderen Ausführungsform kann der Quantenzufallszahlengenerator 28 des Vorschlags auch nur genau eine zweite SPAD-Diode 55 bzw. auch nur genau einen Photonendetektor 55 umfassen.According to another embodiment, the quantum
Wiederum kann eine weitere Ausführungsform des Quantenzufallszahlengenerator 28, wie bereits erwähnt, eine Vielzahl von Photonenquellen 54 bzw. Silizium-LEDs 54 bzw. ersten SPAD-Dioden 54 umfassen, die jeweils mit einem Array von Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 optisch über ein optisches System (44) außerhalb des Halbleitersubstrats 49 verbunden sind. Bevorzugt umfasst dieses optische System 44 mikrooptische Vorrichtungsteile. Bevorzugt umfassen diese mikrooptischen Vorrichtungsteile einen oder mehrere Lichtwellenleiter 44 und/oder ein oder mehrere spiegelnde Schichten 53 und/oder spiegelnde und/oder optisch brechende Strukturen 53. Vorzugsweise ist der Lichtwellenleiter 44 in dem Metallisierungsstapel auf dem Halbleitersubstrat 49 des mikroelektronischen Schaltkreises gefertigt, der typischerweise die Photonenquelle bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 und den Photonendetektor 55 bzw. die zweite SPAD-Diode 55 umfasst. Der das optische System - beispielsweise der Lichtwellenleiter 44 - die Photonenquellen 54 und die Photonendetektoren 55 sind daher vorzugsweise Teil des einstückigen Quantenzufallszahlengenerators 28.Again, a further embodiment of the quantum
Mit anderen Worten, wenn die Kombination einer Photonenquelle 55 bzw. einer Silizium-LED 54 bzw. einer SPAD-Diode 54 einerseits mit einem oder mehreren Photonendetektoren 55 bzw. einer oder mehrerer SPAD-Dioden 55 andererseits Pixel im Sinne des hier vorgelegten Dokuments definiert, kann die eine Ausführungsform der Entropiequelle 401 des vorschlagsgemäßen Quantenzufallszahlengenerators 28 beispielsweise als eine Pixelmatrix angesehen werden, die es ermöglicht, den Vorgang der Extraktion von Zufallszahlen zu parallelisieren.In other words, if the combination of a
Was die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 betrifft, so umfasst diese gemäß einer bevorzugten Ausführungsform ebenfalls vorzugsweise eine oder mehrere SPAD-Dioden 54. In diesem Fall sind sowohl die Anordnung der Photonendetektoren 54 bzw. der zweiten SPAD-Dioden 54, die als Empfänger dienen, als auch die Photonenquellen 54 bzw. die Silizium-LEDs 54, die vorzugsweise ein oder mehrere SPAD-Dioden 54 umfassen, so konfiguriert und polarisiert, dass sie im so genannten Geiger-Modus mit der gleichen Polarisationsspannung arbeiten.As regards the
Wie bereits oben erwähnt, umfasst der Quantenzufallszahlengenerator 28 des Vorschlags vorzugsweise auch elektronische Abtastmittel (403, 2022, 402, 403, 404.2) die vorzugsweise funktionell mit dem gemeinsamen Ausgang 417 verbunden sind, um das von der Anordnung der Photonendetektoren 54 bzw. der zweiten SPAD-Dioden 54 erzeugte Signal 405 zu lesen.As already mentioned above, the quantum
Es ist denkbar, dass in einer anderen Ausführungsform stattdessen ein oder mehrere der jeweiligen elektronische Abtastmittel (2022, 402, 403, 404.2) für jeden jeweiligen Photonendetektor 54 bzw. jede jeweilige zweite SPAD-Diode 54 jeweils vorgesehen werden, die jeweils zu dem Array gehört, während jeweils einzelne elektronische Abtastmittel der elektronischen Abtastmittel (2022, 402, 403, 404.2) für den jeweiligen einzelnen Photonendetektor 54 bzw. für die jeweilige einzelne zweite SPAD-Diode 54 vorhanden sind. Schließlich können in einer Ausführungsform einige oder mehrere jeweiligen Abtastmittel der elektronischen Abtastmittel (2022, 402, 403, 404.2,) für jedes Pixel vorgesehen sein, deren Abtastsignale (407, 407) zu einem gemeinsamen Quantenzufallsbitdatenstrom 411 mittels einer elektronischen Nachverarbeitung zusammengefasst werden.It is conceivable that in another embodiment, one or more of the respective electronic sampling means (2022, 402, 403, 404.2) are instead provided for each
Das hier vorgelegte Dokument schlägt vor, diese elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) zusammen oder zumindest in großen Teilen mit den Photonenquellen 54 bzw. Silizium-LEDs 54 bzw. ersten SPAD-Dioden 54 und zusammen mit den Photonendetektoren 55 bzw. den zweiten SPAD-Dioden 55 in einem gemeinsamen Halbleitersubstrat 49 als einstückigen mikrointegrierten Schaltkreis zu fertigen. Das hier vorgelegte Dokument schlägt vor, diese elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) zusammen mit den Photonenquellen 54 bzw. Silizium-LEDs 54 bzw. ersten SPAD-Dioden 54 und zusammen mit den Photonendetektoren 55 bzw. den zweiten SPAD-Dioden 55 über den Metallisierungsstapel des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats 49 mittels metallischer elektrischer Leiter untereinander elektrisch zu verbinden. Das hier vorgelegte Dokument schlägt vor, diese Photonenquellen 54 bzw. Silizium-LEDs 54 bzw. ersten SPAD-Dioden 54 und mit den Photonendetektoren 55 bzw. den zweiten SPAD-Dioden 55 über den Metallisierungsstapel des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats 49 mittels dielektrischer optischer Lichtwellenleiter 44 untereinander optisch zu verbinden. Der Metallisierungsstapel des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats 49 umfasst typischerweise strukturierte Metallschichten, die die elektrischen Leiterbahnen (141, 142) typischerweise in verschiedenen Ebenen des Metallisierungsstapels ausformen. Der Metallisierungsstapel des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats 49 umfasst typischerweise elektrische Insolationsschichten zwischen diesen strukturierten Metallisierungsschichten (141, 142), die die in den strukturierten Metallisierungsschichten ausgeformten elektrischen Leitungen (141, 142) zwischen verschiedenen Metallisierungsebenen untereinander elektrisch isolieren. Die elektrischen Insolationsschichten des Metallisierungsstapels des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats umfassen typischerweise elektrische Durchkontaktierungen 140 zwischen den elektrischen Leitungen (141, 142) der strukturierten Metallisierungsschichten, die die in den strukturierten Metallisierungsschichten ausgeformten elektrischen Leitungen (141, 142) zwischen diesen verschiedenen Metallisierungsebenen untereinander elektrisch verbinden (durchkontaktieren). Der Metallisierungsstapel des so gefertigten einstückigen mikrointegrierten Schaltkreises auf der Oberfläche des Halbleitersubstrats 49 umfasst typischerweise optisch transparente elektrische Insolationsschichten zwischen diesen strukturierten Metallisierungsschichten. Hierdurch können ein oder mehrere elektrische Isolationsschichten die Funktion eines optischen Lichtwellenleiters 44 für die Photonen der ersten SPAD-Diode 54 bzw. der Photonenquelle 54 bzw. der Silizium-LED 54 bei deren Transport zur zweiten SPAD-Diode 55 bzw. zum Photonendetektor 55 übernehmen. Bevorzugt sind hierzu die betreffenden Insolationsschichten strukturiert.The document presented here proposes to manufacture these electronic scanning means (403, 2022, 402, 403, 404.2) together or at least in large parts with the
In jedem Fall sind die elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) eines solchen einstückigen mikroelektronischen Schaltkreises bevorzugt so konfiguriert, dass sie ein vordefiniertes logisches Verfahren oder einen computer- oder hardwareimplementierten Algorithmus zur Extraktion einer binären Sequenz von Quantenzufallsbits 411 auf der Grundlage der Ankunftszeiten der Photonen auf der Ebene der jeweiligen Photonendetektoren 55 bzw. SPAD-Dioden 55 umsetzen. Einige bevorzugte Beispiele für das logische Extraktionsverfahren beschreibt das hier vorgelegte Dokument im Folgenden ausführlich.In any case, the electronic sampling means (403, 2022, 402, 403, 404.2) of such a one-piece microelectronic circuit are preferably configured to implement a predefined logical method or a computer or hardware implemented algorithm for extracting a binary sequence of quantum
Vorschlagsgemäß sind in dem Quantenzufallszahlengenerator 28 die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 und das Array von Photonendetektoren 55 bzw. von zweiten SPAD-Dioden 55 oder der einzelne SPAD-Detektor 54 nebeneinander oder untereinander angeordnet und vorzugsweise dicht beieinander mit einer kurzen optischen Verbindung zur optischen Kopplung über einen möglichst kurzen optischen Pfad angeordnet und in ein einziges Halbleitersubstrat 49 als mikroelektrooptisches System integriert.According to the proposal, in the quantum
Dies führt dazu, dass der von der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 erzeugte Photonenstrom λ beispielsweise durch den Lichtwellenleiter 44 im Metallisierungsstapel der mikroelektronischen Schaltung in Richtung der in der bevorzugt in der Nähe angeordneten Anordnung von Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 fließt (ein Phänomen, das eigentlich als „optisches Übersprechen“ bekannt ist), anders als bei den bekannten Zufallszahlengeneratoren, bei denen dieselben Photonen durch den leeren Kopplungszwischenraum zwischen den beiden Komponenten fließen, die physikalisch voneinander getrennt sind, also typischerweise nicht einstückig mit den Abtastmitteln auf einem Halbleitersubstrat 49 gefertigt sind. This results in the photon current λ generated by the
Vorteilhafterweise gestaltet diese integrierte Konfiguration den Quantenzufallszahlengenerator 28 des Vorschlags dieses Dokuments kompakter und strukturell weniger komplex als die Zufallszahlengeneratoren der bekannten Art.Advantageously, this integrated configuration makes the quantum
Dank der einstückigen Integration aller Komponenten des Quantenzufallszahlengenerators 28 ist dieser außerdem robuster und immun gegen äußere Umwelteinflüsse und gegen jegliche Manipulationsversuche durch böswillige Personen.Thanks to the integral integration of all components of the quantum
Ein Metalldeckel 142 aus einem vorzugsweise weichmetallischen und/oder einem elektrisch gut leitenden Material, beispielsweise einer Gold-Schicht auf einer Eisenschicht, kann die Entropiequelle abschirmen. Vorzugsweise verbindet eine elektrische Verbindung, die auch Durchkontaktierungen (z.B. 140) umfassen kann, den Metalldeckel 142 mit einem definierten elektrischen Potenzial, beispielsweise einer Masseleitung oder einer Versorgungsspannungsleitung.A metal cover 142 made of a preferably soft metal and/or a material with good electrical conductivity, for example a gold layer on an iron layer, can shield the entropy source. Preferably, an electrical connection, which can also include vias (e.g. 140), connects the metal cover 142 to a defined electrical potential, for example a ground line or a supply voltage line.
Diese integrierte Konfiguration und damit die direkte und/oder indirekte Kopplung zwischen der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 einerseits und dem oder den Photonendetektoren 55 bzw. den zweiten SPAD-Dioden 55 andererseits sind vorteilhaft gegenüber den Lösungen, bei denen beispielsweise diskrete Strahlteiler verwendet werden, da sie eine gleichmäßige Ausleuchtung der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 ermöglichen, ohne dass sichergestellt werden muss, dass der Strahlteiler ständig perfekt ausgerichtet ist.This integrated configuration and thus the direct and/or indirect coupling between the
Gemäß der bevorzugten Ausführungsform der Erfindung werden die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 und das Array der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 auf dem Halbleitersubstrat 49 in denselben Herstellungsschritten hergestellt, so dass die Elemente die gleiche chemisch-physikalische Struktur in Bezug auf die Dotierungsprofile aufweisen. Genauer gesagt kann, wie oben erwähnt, sogar die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 mit der gleichen chemisch-physikalischen Struktur wie ein anderer Photonendetektor 55 bzw. eine andere zweite SPAD-Diode 55 hergestellt werden. Die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 ist konstruktionsmäßig und realisierungsmäßig bis auf übliche Schwankungen von Bauteilen auf einem Wafer zu den Photonendetektoren 55 bzw. den zweiten SPAD-Detektoren 55, die zu dem Array gehören, in bestimmten Ausprägungen des Vorschlags völlig gleich.According to the preferred embodiment of the invention, the
Dies hat den Vorteil, dass die Herstellungskosten der verschiedenen Komponenten des vorschlagsgemäßen Quantenzufallszahlengenerators 28 drastisch gesenkt werden können, da es möglich ist, eine oder mehrere Photonenquellen 54 bzw. Silizium-LEDs 54 bzw. erste SPAD-Dioden 54 und/oder einen oder mehrere Photonendetektoren 55 bzw. SPAD-Dioden 55 auf demselben Halbleitersubstrat 49 herzustellen, ohne dass die Anzahl der Herstellungsschritte verändert, insbesondere erhöht werden muss. Damit bleiben die Herstellungskosten in etwa gleich.This has the advantage that the manufacturing costs of the various components of the proposed quantum
Bei dem Halbleitersubstrat 49 handelt es sich gemäß der bevorzugten Ausführungsformen des Vorschlags um ein Siliziumsubstrat 49.According to the preferred embodiments of the proposal, the
Es kann jedoch nicht ausgeschlossen werden, dass in verschiedenen Ausführungsformen der Erfindung das Halbleitersubstrat 49 aus einem anderen Halbleitermaterial als Silizium hergestellt wird, um die Effizienz der Emitter-Source-Kopplung zu erhöhen. Das hier vorgelegte Dokument erwähnt in diesem Zusammenhang besonders die Verwendung von direkten Halbleitern mit einem direkten Übergang für die Elektronen ohne Gitterstoß zur Impulsänderung.However, it cannot be ruled out that in various embodiments of the invention the
Was die Anordnung der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 betrifft, so ist bekannt, dass vorzugsweise jeder von ihnen hauptsächlich einen günstig dotierten p-n-Übergang umfasst, so dass das in der Fachsprache als „Lawinenbildung“ bekannte Phänomen eintreten kann, wenn derselbe Photonendetektor 55 bzw. SPAD-Diode 55, der günstig polarisiert ist, dem Auftreffen eines Photons in seinem photonenempfindlichen Volumen ausgesetzt wird.As regards the arrangement of the
Die Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 ist ebenfalls durch einen zweckmäßig dotierten p-n-Übergang so definiert, dass der detektierte Photonenfluss λ erzeugt wird, wenn die Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 zweckmäßigerweise in Durchlassrichtung oder (besser) in Sperrrichtung vorgespannt ist. Bei einer Polung einer ersten SPAD-Diode 54 in Sperrrichtung ergibt sich nämlich ein gepulster Dunkelstrom des Dioden-Stroms, der sogenannte Dark-Current, der mit einer gepulsten Emission von Photonen verbunden ist, die der Photonendetektor 54 bzw. die zweite SPAD-Diode 55 erfassen kann.The
Insbesondere ist gemäß der bevorzugten Ausführungsform der Erfindung die Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 so konfiguriert, dass ein Emissionsspektrum des erfassten Photonenstroms λ erhalten wird, das hauptsächlich zwischen 800 nm und 1000 nm liegt. In diesem Spektrum kann der Wirkungsgrad jedes Photonendetektors 55 bzw. jeder zweiten SPAD-Diode 55 als nicht übermäßig hoch angesehen werden und liegt bei weniger als 10 %. Daher wird geschätzt, dass zur Erzielung einer Detektionsrate von beispielsweise etwa 500.000 Zählungen/Sek. eine nutzbare Photonenrate (Photonenstrom, der das empfindliche Volumen des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 oder der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 von der Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 erreicht) von mehr als 5.000.000 ph/Sek. erforderlich ist.In particular, according to the preferred embodiment of the invention, the
Zurück zur Herstellung des Quantenzufallszahlengenerators 28: Die Tatsache, dass die Strukturen der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 beide einen p-n-Übergang als Hauptmerkmal haben, bestätigt den oben beschriebenen Vorteil, d.h. die Möglichkeit, die gleichen Herstellungsschritte für die Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 und der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 durchzuführen.Returning to the fabrication of the quantum
Vorzugsweise, aber nicht notwendigerweise, haben gemäß der bevorzugten Ausführungsform der Erfindung die Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 und die Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55, die durch die gleichen Herstellungsschritte erhalten werden, die gleiche chemisch-physikalische Struktur. Es kann jedoch nicht ausgeschlossen werden, dass in verschiedenen Ausführungsformen des erfindungsgemäßen Quantenzufallszahlengenerators 28 die Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 und die Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 mit unterschiedlichen chemisch-physikalischen Strukturen, insbesondere mit unterschiedlichen Größen und/oder unterschiedlichen Dotierungsniveaus, hergestellt werden können, selbst wenn sie durch die gleichen Herstellungsschritte erhalten werden.Preferably, but not necessarily, according to the preferred embodiment of the invention, the
Was die Technik zur Integration dieser Bauteile in das Halbleitersubstrat 49 betrifft, so handelt es sich gemäß der bevorzugten Ausführungsform der Erfindung um die CMOS- oder CMOS-kompatible Technik der Mikrofabrikation mikrointegrierter Schaltungen. Ganz besonders bevorzugt sind für die Herstellung der vorgeschlagenen einstückigen mikroelektronischen Schaltung des Quantenzufallszahlengenerators 28 auch sogenannte BCD-Technologien.As far as the technology for integrating these components into the
BCT-Technologien sind Schlüsseltechnologie für integrierte Leistungsschaltungen. Eine BCD-technologie ist durch die Kombination von bipolaren elektronischen Bauelementen (z.B. Bipolartransistoren und/oder PN-Dioden) mit CMOS-Bauelementen (z.B. CMOS-Transistoren oder CCD-Arrays) mit DMOS-Bauelementen (z.B. einem DMOS-Transistor)BCT technologies are key technologies for integrated power circuits. A BCD technology is the combination of bipolar electronic components (e.g. bipolar transistors and/or PN diodes) with CMOS components (e.g. CMOS transistors or CCD arrays) with DMOS components (e.g. a DMOS transistor)
Der DMOS-Transistor umfasst dabei typischerweise eine Struktur mit Doppeldiffusion, bei der der p-Bereich und der n-Bereich als Leitungen dienen. Es handelt sich um eine Art DMOS-Leistungstransistor, der für Hochfrequenzanwendungen (RF) entwickelt wurde. Er kann mit relativ hohen Versorgungsspannungen von 50 bis 100 V betrieben werden und zeichnet sich durch hohe Zuverlässigkeit, Spitzenleistung und Robustheit aus. Ein DMOS-Transistor (Double-Diffused Metal-Oxide-Semiconductor Transistor) ist ein entscheidendes Element in integrierten mikroelektronischen Schaltungen. Im Gegensatz zu herkömmlichen CMOS-Transistoren zeichnet sich ein DMOS-Transistor durch spezifische Merkmale aus, die seine Funktion und Anwendungsbereiche definieren.The DMOS transistor typically comprises a double-diffusion structure in which the p-region and the n-region serve as lines. It is a type of DMOS power transistor designed for radio frequency (RF) applications. It can operate with relatively high supply voltages of 50 to 100 V and is characterized by high reliability, peak performance and robustness. A DMOS transistor (double-diffused metal-oxide-semiconductor transistor) is a crucial element in integrated microelectronic circuits. In contrast to conventional CMOS transistors, a DMOS transistor is characterized by specific features that define its function and areas of application.
Ein DMOS-Transistor weist eine besondere Struktur auf. Bei dieser Struktur sind Dotierungsbereiche mit unterschiedlichen elektrischen Ladungsträgerkonzentrationen im Halbleitermaterial vorhanden. Diese Dotierungsbereiche ermöglichen es dem DMOS-Transistor, höhere Leistungen zu schalten und einen niedrigeren Durchlasswiderstand in Vergleich zu CMOS-Transistoren zu bieten. Diese Eigenschaften sind insbesondere in Hochleistungsanwendungen von Vorteil. In dem hiervorliegenden Fall eignen sich DMOS-Transistoren für die Verwendung in den Spannungswandlern 91 der monolithisch integrierten Schaltung. Gleichzeitig ermöglichen BCD-Technologien die kompakte Herstellung der ersten SPAD-Dioden für die Photonenquellen 54 und die zweiten SPAD-Dioden 55 die Photonendetektoren 55. Da die ersten SPAD-Dioden 54 bei der Verwendung als Photonenquellen 54 typischerweise eine höhere Versorgungsspannung erfordern, umfassen die Spannungswandler 91 sehr häufig eine Ladungspumpe oder dergleichen, um die ersten SPAD-Dioden 54 mit der erforderlichen hohen Versorgungsspannung zu versorgen. Für diese Ladungspumpen in den Spannungswandlern 91 des einstückigen mikrointegrierten Schaltkreises des Quantenzufallszahlengenerators 28 eignen sich die besagten DMOS-Transistoren besonders. Daher ist eine Ko-Integration der Entropiequelle 401 mit zumindest einem DMOS-Transistor oder mehreren DMOS-Transistoren auf einem gemeinsamen Halbleitersubstrat 49 besonders vorteilhaft. Bevorzugt umfasst daher ein Spannungswandler 91 eines einstückigen mikroelektronischen integrierten Schaltkreises eines Quantenzufallszahlengenerators 28 zumindest einen, besser mehrere DMOS-Transistoren. Bevorzugt befinden sich die DMOS-Transistoren eines betreffenden Spannungswandlers 91 eines einstückigen mikroelektronischen integrierten Schaltkreises eines Quantenzufallszahlengenerators 28 in einer Halbbrücke oder einer H-Brückenschaltung innerhalb dieses Spannungswandlers 91. Bevorzugt ist im Falle einer Halbbrücke ein Energiespeicher, beispielsweise ein Kondensator, mit einem Anschluss mit dem Ausgangsknoten dieser Halbbrücke verbunden und kann dann so durch diese Umgeladen werden. Bevorzugt ist im Falle einer H-Brücke ein Energiespeicher, beispielsweise ein Kondensator, mit einem ersten Anschluss mit dem Ausgangsknoten der ersten Halbbrücke der H-Brücke verbunden und mit einem zweiten Anschluss mit dem Ausgangsknoten der zweiten Halbbrücke der H-Brücke verbunden und kann dann so durch diese Umgeladen werden. Bevorzugt umfasst ein solcher Spannungswandler 91 dann einen elektronisch gesteuerten Transferschalter, der nach dem Hochschalten der Spannung an einem Anschluss des Kondensators den anderen Anschluss mit einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 verbinden kann. Diese Hochsetztechnik für die Versorgungsspannung kann auch mehrstufig sein, um größere Spannungshübe zu erzielen. Ein weiterer Spannungswandler 91 und ein Energiespeicher, beispielsweise ein weiterer Kondensator, können nachgeschaltet und der Entropiequelle 401 bzw. der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 vorgeschaltet sein, um die Versorgungsspannung der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 zu stabilisieren. Bevorzugt umfassen die Halbbrücke und/oder die H-Brücke und/oder die Transferschalter des Spannungswandlers 91 DMOS-Transistoren, um höhere Versorgungsspannungen bereitstellen zu können und so die Quantenzufallsbitdatenrate der Quantenzufallsbits 411 zu erhöhen, da die Erhöhung der Versorgungsspannung zu einer Erhöhung der Pulsdichte der Entropiequelle führt.A DMOS transistor has a special structure. In this structure, doping regions with different electrical charge carrier concentrations are present in the semiconductor material. These doping regions enable the DMOS transistor to switch higher powers and offer a lower on-resistance compared to CMOS transistors. These properties are particularly advantageous in high-performance applications. In the present case, DMOS transistors are suitable for use in the
Ein weiteres charakteristisches Merkmal eines DMOS-Transistors ist nämlich seine Fähigkeit, höhere Spannungen zu bewältigen, was ihn ideal für solche Anwendungen mit hohen Spannungsbereichen macht. Dieser Aspekt unterscheidet ihn von CMOS-Transistoren, die in der Regel für niedrigere Spannungen ausgelegt sind.Another characteristic feature of a DMOS transistor is its ability to handle higher voltages, making it ideal for such high voltage applications. This aspect distinguishes it from CMOS transistors, which are usually designed for lower voltages.
Das Wort Die BCD-Technologie steht für Bipolar-CMOS-DMOS-Technologie. Die BCD-Technologie ist eine Familie von Siliziumprozessen, die jeweils die Stärken von drei verschiedenen Prozesstechnologien auf einem einzigen Chip vereinen und so kompakte einstückige Quantenzufallszahlengeneratoren in Form eins einzigen mikrointegrierten Schaltkreises 2 ermöglichen.The word BCD technology stands for Bipolar CMOS-DMOS technology. BCD technology is a family of silicon processes that each combine the strengths of three different process technologies on a single chip, enabling compact, one-piece quantum random number generators in the form of a single
Der Vorteil der CMOS-Mikrofabrikationstechnik, genauer der BCD-Mikrofabrikationstechnik, besteht darin, dass es möglich ist, in das Halbleitersubstrat 49 auch die Abtastmittel (403, 2022, 402, 403, 404.2) für die Ausgangssignale des Arrays der Photonendetektoren 55 bzw. der zweiten SPAD-Dioden 55 zu integrieren.The advantage of the CMOS microfabrication technology, more precisely the BCD microfabrication technology, is that it is possible to integrate the sampling means (403, 2022, 402, 403, 404.2) for the output signals of the array of
Ein Beispiel für einen möglichen Quantenzufallszahlengenerator 28 des Vorschlags, der durch die BCD-Mikrofabrikationstechnik erhalten wird, verwendet vorzugsweise ein dotiertes Substrat/epitaktische Struktur vom Typ p 100. Der Herstellungsprozess erzeugt in dem dotierten Substrat/der dotierten epitaktische Struktur vom Typ p 100 typischerweise eine tiefe n-Wanne und die Verbindungen, die die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 definieren, mit einem Implantat vom Typ p+ 102 hergestellt werden. Um elektrische Felder zu vermeiden, die an den Rändern des empfindlichen Bereichs höher sind als in der Mitte desselben, werden vorzugsweise „Schutzring“-Strukturen vorgesehen, die einen Ring mit p-Well um das p+-Implantat 47 bilden.An example of a possible quantum
Es kann jedoch nicht ausgeschlossen werden, dass in verschiedenen Ausführungsformen der Erfindung die Technik, die zur Herstellung der Photonenquelle 54 bzw. der Silizium-LED bzw. der ersten SPAD-Diode 54, verwendet wird, eine Technik des kundenspezifischen Typs sein kann. Der Vorteil dieser letzten Lösung liegt darin, dass die Herstellungsschritte des erfindungsgemäßen Quantenzufallszahlengenerators 28 optimiert werden können, um die Photonenquelle 55 und/oder die Silizium-LED 55 bzw. die zweite SPAD-Diode 55 zu erhalten.However, it cannot be excluded that in various embodiments of the invention, the technique used to manufacture the
Gemäß einem Beispiel für die Implementierung eines Quantenzufallszahlengenerators 28 mit einer kundenspezifischen Herstellungstechnik können die Photonendetektoren 55 bzw. die zweiten SPAD-Dioden 55 und die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 in eine dotierte Epitaxie-Struktur/ein Substrat vom Typ p integriert werden, wobei ein sogenanntes „flaches“ Implantat und ein Anreicherungsimplantat in der Epitaxie-Struktur definiert sind, wobei das „flache“ Implantat oberflächlicher, vom Typ n+ und konzentrisch zur epitaktischen Struktur ist, aber eine geringere Ausdehnung aufweist, und das Anreicherungsimplantat vom Typ p- ist und eine geringere Dotierung, aber auf jeden Fall eine höhere Dotierung als die der epitaktischen Struktur aufweist.According to an example of implementing a quantum
Auf diese Weise wird eine sogenannte Struktur mit „virtuellem Schutzring“ geschaffen. Um Probleme im Zusammenhang mit dem „Ladungsübersprechen“ oder der „Ladungsinjektion“ zu vermeiden, die durch die gemeinsame epitaktische Struktur der beiden Implantate verursacht werden, ist es möglich, entweder die Photonenquelle 55 bzw. die Silizium-LED 55 bzw. die SPAD-Dioden 55 und den oder die Photonendetektoren 54 bzw. Silizium-LED 54 bzw. erste SPAD-Dioden 54 zu trennen, indem sie in geeigneten Abständen angeordnet werden, oder tiefe Gräben, sogenannte Trenches, zu schaffen, die sowohl den Bereich der Photonenquelle 54 bzw. Silizium-LED 54 bzw. ersten SPAD-Diode 54 als auch den Bereich des oder der Photonendetektoren 55 bzw. zweiten SPADs 55 umgeben. Schließlich besteht die Möglichkeit, eine Hilfsverbindung zu schaffen, die bei geeigneter Vorspannung die überschüssige Ladung auffängt, die von der Photonenquelle 54 bzw. bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 auf den oder die Photonendetektoren 55 bzw. die zweite SPAD-Diode 55 oder die zweiten SPAD-Dioden 55 übertragen werden kann. Die Schaffung von Gräben würde auch das optische Übersprechen reduzieren, was wiederum eine gewünschte Eigenschaft ist. Diese Verringerung übersteigt jedoch nicht einen Prozentsatz in der Größenordnung von 30-50 %, so dass sie akzeptabel ist, wenn sie den Vorteil mit sich bringt, das Problem vollständig zu beseitigen.In this way, a so-called "virtual guard ring" structure is created. In order to avoid problems related to "charge crosstalk" or "charge injection" caused by the common epitaxial structure of the two implants, it is possible either to separate the
Wie bereits oben erläutert, ist der vorschlagsgemäße Quantenzufallszahlengenerator 28 so konfiguriert, dass die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 zur Erzeugung des detektierten Photonenflusses λ wahlweise in Vorwärtsrichtung oder in Rückwärtsrichtung vorgespannt werden kann.As already explained above, the proposed quantum
Im Falle der Sperrvorspannung wird die Fotolumineszenz bei der Lawinenbildung in der Photonenquelle 54, hier der Silizium-LED 54 bzw. der ersten SPAD-Diode 54, genutzt, die kontrolliert, aber in quantenmechanisch zufälligen Zeitintervallen erfolgt.In the case of reverse bias, photoluminescence is used in the avalanche formation in the
Bei einer Vorwärtsspannung verhalten sich die erzeugten Photonen sehr ähnlich wie bei einer Rückwärtsspannung, und die Erzeugungseffizienz (Photonen pro durchgelassener elektrischer Ladung) ist relativ ähnlich oder höher, aber bei einer Vorwärtsspannung kann die Verlustleistung im Vergleich zu einer Rückwärtsspannung verringert werden, da eine niedrigere Spannung angelegt wird.At a forward bias, the photons generated behave very similarly to a reverse bias, and the generation efficiency (photons per electrical charge passed) is relatively similar or higher, but at a forward bias, the power dissipation can be reduced compared to a reverse bias because a lower voltage is applied.
Um eine Größenordnung anzugeben, benötigt eine vorwärtsgerichtete Photonenquelle 54 bzw. Silizium-LED 54 bzw. ersten SPAD-Diode 54 eine Spannung von einigen Volt, während eine rückwärtsgerichtete Photonenquelle eine Spannung von mehreren Dutzend Volt benötigt. Bei der Ausarbeitung der technischen Lehre dieses Dokuments wurde erkannt, dass für die Ko-Integrierbarkeit vorzugsweise aller relevanten Elektronikkomponeten eines Quantenzufallszahlengenerators 28, die Verwendung von DMOS-Transistoren besonders vorteilhaft ist. Solche DMOS-Transistoren ermöglichen die Zurverfügungstellung einer Spannung von mehreren Dutzend Volt zum Betrieb der rückwärtsgerichteten Photonenquellen 54, also hier der in Sperrrichtung betriebenen Silizium-LEDs 54 bzw. ersten SPAD-Dioden 54, durch einen Spannungswandler 91, der hier im Sinne des hier vorgelegten Dokuments jede Form von geeignetem Spannungswandler 91 Inhaltlich umfassen kann und der vorzugsweise in dem Halbleitersubstrats 49 der einstückigen mikroelektronischen integrierten Schaltung des hier dargelegten Quantenzufallszahlengenerators 28 ist. Bei der Ausarbeitung der technischen Lehre dieses Dokuments wurde somit erkannt, dass für die Ko-Integrierbarkeit dieser DMOS-Transistoren mit den anderen relevanten Elektronikkomponeten des hier vorgestellten Quantenzufallszahlengenerators 28, die Verwendung einer BCD-Halbleitertechnologie für die Herstellung des vorgestellten Quantenzufallszahlengenerators 28 besonders vorteilhaft ist. Das hier vorgestellte Dokument schlägt somit einen Quantenzufallszahlengenerator 28 vor, der einen Spannungswandler 91 mit einem oder mehreren DMOS-Transistoren und eine Entropiequelle 401 mit einer oder mehreren Photonenquellen 54 und/oder Silizium-LEDs 54 und/oder ersten SPAD-Dioden 54 und einen oder mehrere Photonendetektoren 55 und/oder zweite SPAD-Dioden 55 und vorzugsweise einen oder mehrere Prozessoren (10-1, 10-2) und/oder eine oder mehrere Datenbusschnittstellen 64 und/oder ein oder mehrere flüchtige und/oder nicht flüchtige Speicher (30, 6, 16, 8) und/oder eine Testschnittstelle 12 umfassen kann.To give an order of magnitude, a forward-directed
Eine in einer Vorrichtungsvariante in Vorwärtsrichtung vorgespannte Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 würde es daher vorteilhaft ermöglichen, auch den Raum zu reduzieren, der notwendig ist, um die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 selbst von der Anordnung der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 54 elektrisch zu isolieren. Infolgedessen ermöglicht die vorwärtsgerichtete Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 vorteilhafterweise eine kompaktere Bauweise des Quantenzufallszahlengenerators 28 und geringere Kosten aufgrund der geringeren Menge an Halbleitermaterial, die zur Herstellung des Generators selbst verwendet wird. Da jedoch die Struktur und die Herstellungstechnik der Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 und der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 ähnlich oder sogar identisch sind, besteht der Vorteil der Sperrvorspannung darin, dass die gleiche Spannung zur Vorspannung beider Komponenten verwendet werden kann.A forward biased
Insbesondere diese letzte Vorrichtungsvariante ermöglicht es, die Komplexität und die Gesamtabmessungen sowohl der Struktur als auch der potenziell noch notwendigen externen Schaltung zu reduzieren: Die Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 und die Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 können sich nämlich dasselbe Halbleitersubstrat 49 teilen, da sie einen gemeinsamen Anschluss haben. Hierdurch können sie nahe beieinander (übereinander und/oder nebeneinander) im Halbleitersubstrat 49 angeordnet werden, wodurch der belegte Raum reduziert und gleichzeitig ihre optische Kopplung verbessert wird.In particular, this last device variant makes it possible to reduce the complexity and overall dimensions of both the structure and the external circuitry that may still be necessary: the
In jedem Fall spricht die geringe Effizienz des Fotolumineszenzprozesses bei der Erzeugung weniger Photonen für eine „Quantendetektion“, da der oder die Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 definitionsgemäß für ein einzelnes Photon empfindlich ist/sind.In any case, the low efficiency of the photoluminescence process in generating a few photons suggests a “quantum detection” since the photon detector(s) 55 or second
Wie bereits erwähnt, sind bei der bevorzugten Ausführungsform des Vorschlags auch die elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) zusammen mit der Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 und der Anordnung von Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 in das Halbleitersubstrat 49 einstückig integriert.As already mentioned, in the preferred embodiment of the proposal, the electronic scanning means (403, 2022, 402, 403, 404.2) together with the
In diesem Fall können die elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) nicht nur so konfiguriert werden, dass sie das oder die von der Anordnung der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 erzeugten Signale 405 lesen, sondern auch so, dass sie die Betriebsbedingungen einer oder mehrerer Photonenquellen 54 bzw. einer oder mehrerer Silizium-LEDs 54 bzw. einer oder mehrerer erstes SPAD-Diode 54 direkt und einfach steuern und etwaige Vorspannungsparameter mittels Parameteränderung eines der besagten Spannungswandler 91 zur Energieversorgung einer oder mehrerer Photonenquellen 54 bzw. einer oder mehrerer Silizium-LEDs 54 bzw. einer oder mehrerer erster SPAD-Dioden 54 korrigieren oder eine oder mehrere Photonenquellen 54 bzw. eine oder mehrere Silizium-LEDs 54 bzw. eine oder mehrere erste SPAD-Dioden 54 aktivieren oder deaktivieren, um den gewünschten Photonenfluss oder die gewünschte Zufallsbitrate der Quantenzufallsbits 411 zu erhalten.In this case, the electronic scanning means (403, 2022, 402, 403, 404.2) can be configured not only to read the signal(s) 405 generated by the array of
In diesem Fall können die elektronischen Abtastmittel (403, 2022, 402, 403, 404.2) so konfiguriert werden, dass sie die Betriebsbedingungen einer oder mehrerer Photonendetektoren 55 bzw. einer oder mehrerer zweiter SPAD-Dioden 54 direkt und einfach steuern und etwaige Vorspannungsparameter mittels Parameteränderung eines der besagten Spannungswandler 91 zur Energieversorgung einer oder mehrerer Photonendetektoren 55 bzw. einer oder mehrerer zweiter SPAD-Dioden 55 korrigieren oder eine oder mehrere Photonendetektoren 55 bzw. eine oder mehrere zweite SPAD-Dioden 55 aktivieren oder deaktivieren, um den gewünschten empfangbaren Anteil des Photonenflusses oder die gewünschte Zufallsbitrate der Quantenzufallsbits 411 zu erhalten.In this case, the electronic sampling means (403, 2022, 402, 403, 404.2) can be configured to directly and easily control the operating conditions of one or
Gemäß einer bevorzugten Ausführungsform des Vorschlags des hier vorgelegten Dokuments ist der Quantenzufallszahlengenerator 28 auf der Höhe der Oberseite des Halbleitersubstrats 49 vorzugsweise mit einem Lichtschutzfilter oder einer Abdeckung, beispielsweise einer Metallschicht (53, 142) versehen. Insbesondere, vorzugsweise, aber nicht notwendigerweise, umfasst der Lichtschutzfilter eine Metallisierungsschicht (53, 142), die direkt während des Produktionsprozesses, zum Beispiel durch den Ablauf der Verfahrensschritte einer BCD-Technologie, beispielsweise als letzte Metallisierungsebene hergestellt werden kann. Diese Metallschicht (53, 142) muss nicht unbedingt als letzte hergestellt werden. Es reicht typischerweise aus, wenn die relevanten Vorrichtungsteile der Entropiequelle 401 abgedeckt sind. Bevorzugt sind weitere Vorrichtungsteile des einstückigen, mikrointegrierten Schaltkreises des Quantenzufallszahlengenerators 28 mit diesem Metalldeckel (53, 142) bedeckt, sodass dieser auch diese Schaltungsteile vor Manipulation mittels elektromagnetischer Strahlung und/oder thermischer, lokaler Belastung und/oder mittels Magnetfeldern und/oder anderen Eingriffen durch die Beeinflussung physikalischer Parameter solcher, anderer Schaltungsteile des Quantenzufallszahlengenerators 28 schützt. Dieser Schutz sollte bevorzugt insbesondere die Speicher (z.B. 404.9, 30, 6, 8, 16, 22, 20) und/oder den Prozessor (10-1, 10-2) und/oder die Überwachungsvorrichtungen - wie beispielsweise Watchdog 404.5, ADC 403, den Spannungsmonitor 413, - den Verstärker 402, die Finite-State-Machine 404.8 Diese Lösung hat die Funktion, den oder die Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 bzw. die anderen Schaltungsteile des Quantenzufallszahlengenerators 28 vom externen Licht und anderen physikalischen Störsignalen abzuschirmen. Diese Lösung hat somit auch die Funktion, den oder die Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 somit nur für die Photonen empfindlich zu machen, die aufgrund des Übersprechens von der Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 durch das Halbleitersubstrat 49 zu den Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 gelangen. Darüber hinaus hat die Metallisierungsschicht (53, 142) auch die Funktion, die Kopplung der von dem Halbleitersubstrat 49, insbesondere dem Siliziumsubstrat, emittierten Photonen zu verbessern. Hierzu reflektiert die Metallisierungsschicht 53, die von derselben Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 erzeugte elektromagnetische Strahlung nach dem Austritt aus dem Halbleitermaterial des Halbleitersubstrats 49 in die Isolationsschichten des Metallisierungsstapels auf dem Halbleitersubstrat 49 zurück, sodass diese Photonen das mikrooptische System des einstückigen mikroelektronischen Schaltkreises des Quantenzufallszahlengenerators 28 nicht verlassen können. Dies erhöht die Anzahl der Photonen, die den oder die Photonendetektoren 55 bzw. die zweite SPAD-Diode 55 bzw. die zweiten SPAD-Dioden 55 erreichen. Dies wiederum erhöht die Zufallsbitdatenrate der Quantenzufallsbits 411 des Quantenzufallszahlengenerators 28. Dies stärkt somit die optische Kopplung zwischen der Photonenquelle 54 bzw. Silizium-LED 54 bzw. erste SPAD-Diode 54 einerseits und dem Array der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 andererseits.According to a preferred embodiment of the proposal of the document presented here, the quantum
Darüber hinaus hat die Metallabdeckung 53 des Lichtwellenleiters 44 im Metallisierungsstapel des mikroelektronischen Schaltkreises auf dem Halbleitersubstrat 49 vorteilhafterweise auch die Funktion, den Quantenzufallszahlengenerator 28 vor jeglichen Beeinflussungsversuchen durch böswillige Personen in Bezug auf die Funktionalität des Systems der vorschlagsgemäßen Vorrichtung zu schützen.Furthermore, the
Folglich ermöglicht das Vorhandensein der Metallisierung in Form einer Metallabdeckung (53, 143), eine höhere Sicherheit und Zuverlässigkeit der von dem erfindungsgemäßen Quantenzufallszahlengenerator 28 erzeugten Zufallszahlen zu gewährleisten.Consequently, the presence of the metallization in the form of a metal cover (53, 143) makes it possible to ensure greater security and reliability of the random numbers generated by the quantum
Schließlich kann der vorschlagsgemäße Quantenzufallszahlengenerator 28 optional auch elektronische Nachbearbeitungsmittel (404.3, 404.4, 404.8) umfassen, die so konfiguriert sind, dass sie als Eingang die von den elektronischen Abtastmitteln (403, 2022, 402, 403, 404.2) extrahierten binären Sequenzen empfangen, die ihrerseits mit dem Array der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 verbunden sind.Finally, the proposed quantum
Die besagten elektronischen Nachbearbeitungsmittel (404.3, 404.4, 404.8) sind vorzugsweise so konfiguriert, dass sie die besagten binären Sequenzen 409, 415 so bearbeiten, dass eine sogenannte „Whitening“-Operation durchgeführt wird. Dieses letzte Wort bezeichnet eine Vielzahl von Komprimierungsoperationen, die dazu dienen, die statistischen Eigenschaften der erzeugten binären Sequenzen (415, 409) zu verbessern. Infolgedessen ist es vorteilhaft, dass dieser weitere Nachbearbeitungsschritt es ermöglicht, das Entropieniveau des vorschlagsgemäßen Quantenzufallszahlengenerators 28 zu erhöhen.Said electronic post-processing means (404.3, 404.4, 404.8) are preferably configured to process said
Wie bereits oben erwähnt, sind die Abtastmittel (403, 2022, 402, 403, 404.2), die gemäß der bevorzugten Ausführungsform mit dem Array der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 oder alternativ mit einer Teilmenge der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55 oder sogar mit einem einzelnen Pixel direkt oder indirekt verbunden sind, so konfiguriert, dass sie ein logisches Extraktionsverfahren implementieren, das dazu bestimmt ist, eine binäre Sequenz von Zufallsbits (409, 415) auf der Grundlage der Anzahl der in dem Array der Photonendetektoren 55 bzw. zweiten SPAD-Dioden 55, in der Teilmenge, in dem einzigen der Photonendetektor 55 bzw.in der einzigen zweiten SPAD-Diode 55 oder sogar in dem einzelnen Pixel erfassten Photonen zu extrahieren. Vorschlagsgemäß umfasst ein erstes logisches Extraktionsverfahren, das durch die Abtastmittel (2022, 402, 403, 404.2) des vorschlagsgemäßen Quantenzufallszahlengenerators 28 implementiert wird, die Unterteilung des Beobachtungsfensters jedes Photonendetektors 55 bzw. jeder zweiten SPAD-Diode 55 in eine Vielzahl von aufeinanderfolgenden Beobachtungsunterfenstern Tw mit typischerweise derselben Dauer. Sofern die Entropieextraktion einen Puls auf ihrer Ausgangsleitung 405 erzeugt, synchronisiert eine Einsynchronisationsstufe (403, 2022) den Puls mit dem Systemtakt 2106 des Quantenzufallszahlengenerators 28. Ein Beobachtungsunterfenstern Tw entspricht dabei typischerweise der zeitlichen Periodendauer des Systemtakts 2106.As already mentioned above, the sampling means (403, 2022, 402, 403, 404.2), which according to the preferred embodiment are directly or indirectly connected to the array of
Gemäß der im Stand der Technik üblichen Methoden müssten nun die Nachbearbeitungsmittel typischerweise die Ankunftszeiten der Photonen bei den Photonendetektoren 55 bzw. den zweiten SPAD-Dioden 55 detektierten Photonen bezogen auf einen Referenzzeitpunkt als digitalen Zahlenwert mittels eines Zeitzählers ermitteln. Dies hat jedoch den Nachteil, dass ein Angreifer diesen Zeitpunkt vielleicht über einen sogenannten Side-Channel manipulieren kann, ohne dass hier eine Angabe gemacht werden kann, wie dies gehen könnte. Im Rahmen des hier vorgelegten Dokuments wird nun angenommen, dass es auf einer unbekannte Weise dem Angreifer gelingt, diese Manipulation durchzuführen. Der Angreifer wäre dann in der Lage, die vermeintlichen „Zufallsbits“ zu manipulieren, wodurch sie einen deterministischen Charakter bekommen würden, der ggf. das Brechen von Verschlüsselungen und/oder Sperren ermöglichen würden. Dies verhindert der hier vorgelegte Vorschlag.According to the methods commonly used in the state of the art, the post-processing means would typically have to determine the arrival times of the photons at the
Der einstückige, integrierte mikroelektronische Schaltkreis des Quantenzufallszahlengenerators 28 erzeugt diese aufeinander folgenden Beobachtungsunterfenster Tw typischerweise ausgehend von dem Systemtakt 2106. Ein Beobachtungsfenster Tw im Sinne des hier vorgelegten Dokuments kann beispielsweise mit einer ersten Flanke des Systemtakts 2106 in einer ersten Flankenrichtung, die steigend oder fallend sein kann, beginnen und mit der nächsten direkt nachfolgenden Flanke des Systemtakts 2106 gleicher Flankenrichtung (steigend bzw. fallend) enden. Das Tastverhältnis dieses Systemtakts 2106 definiert typischerweise die Zeit, in der sich der Photonendetektoren 55 bzw. die zweite SPAD-Diode 55 auf dem Niveau der Totzeit befindet (Systemtakt 2106 = H [=High-Pegel]).The one-piece, integrated microelectronic circuit of the quantum
Das Besondere des hier vorgeschlagenen Verfahrens zur Entropieextraktion auf der Ebene jedes Unterfensters Tw ist die Erzeugung einer ersten Pseudozufallszahl, die der Ankunftszeit eines zweiten Photons der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 bei einem Photonendetektor 55 bzw. einer zweiten SPAD-Diode 55 bezogen auf die Ankunft Ankunftszeit eines vorzugsweise unmittelbar vorausgehenden ersten Photons der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 bei einem Photonendetektor 55 bzw. einer zweiten SPAD-Diode 55. Die hier vorgeschlagene Vorrichtung der einstückigen integrierten mikroelekt5onischen Schaltung des vorgeschlagenen Quantenzufallszahlengenerators 28 erzeugt diese erste Pseudozufallszahl mittels eines Zeit-zu-Zufallszahl-Wandlers (Time to Pseudo-Random-Number Converter, TPRC). Ein solcher Zeit-zu-Zufallszahl-Wandlers (Time to Pseudo-Random-Number Converter, TPRC) kann auch mehrstufig zusammengesetzt sein. Beispielsweise kann der Zeit-zu-Zufallszahl-Wandlers (Time to-Pseudo-Randomnumber-Converter, TPRC, 404.3) ein analoges Instrument, einen Time to Analog Converter (TAC), umfassen, der dann von einem Analog-zu-Pseudozufallszahl Wandler (APRC) im Datenpfad gefolgt würde, um wieder einen Zeit-zu-Pseudozufallszahl-Wandler (TPRC, 404.3) in Summe zu ergeben.The special feature of the method proposed here for entropy extraction at the level of each sub-window Tw is the generation of a first pseudo-random number which corresponds to the arrival time of a second photon from the
Das in
Das Spannungssignal 405 zeigt beispielhafte Pulse 2201, 2202, 2203, 2104 für zufällige Ereignisse des Spannungssignals 405. Die können spontane Spannungspulse des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 der Entropiequelle 401 sein, die nicht mit der Aktivität der Photonenquelle 54 bzw. der Silizium-LED54 bzw. der ersten SPAD-Diode 54 der Entropiequelle 401 zusammenhängen. Die Pulse 2201, 2202, 2203, 2204 des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 der Entropiequelle 401 können aber auch auf stimulierter Emission beruhen, die die Detektion eines Photons der einen oder der mehreren Photonenquellen 54 bzw. der eine oder der mehreren Silizium-LEDs 54 bzw. der eine oder der mehreren SPAD-Dioden 54 durch den Photonendetektor 55 bzw. durch die zweite SPAD-Diode 55 der Entropiequelle 401 hervorruft.The
Der zeitliche Abstand ist zufällig. Allerdings entsteht nach dem Empfang eines Photons durch den Photonendetektor 55 bzw. durch die zweite SPAD-Diode 55 der Entropiequelle 401 eine Totzeit, in der der Photonendetektor 55 bzw. die zweite SPAD-Diode 55 der Entropiequelle 401 nicht mehr empfangsfähig ist. Überschreitet der Betrag des Spannungssignal 405 der Entropiequelle 401 einen Schwellwert 2105, so erzeugt ein Analog-zu-Digitalwandler (ADC, 403), hier ein beispielhafter Ein-Bit-Analog-zu-Digitalwandler 403,The time interval is random. However, after the reception of a photon by the
Pulsverlängerungsschaltung, die vorzugsweise Teil der einstückigen mikroelektronischen Schaltung ist, auf einem einsynchronisierten Spannungssignal 415 einen Puls mit einer Mindestlänge von n Takten eines Systemtakts 2106 des Quantenzufallszahlengenerators 28, der vorzugsweise einer der Systemtakte der einstückigen mikrointegrierten Schaltung ist.Pulse extension circuit, which is preferably part of the integral microelectronic circuit, generates a pulse with a minimum length of n clock cycles of a
In dem Beispiel der
In dem Beispiel der
Mit einer fallenden Flanke eines ersten Pulses 2211 des einsynchronisierten Spannungssignals 415 setzt der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) einen Pseudozufallszahlengenerator beispielsweise auf einen vordefinierten Seed-Wert zurück. Beispielsweise kann der Pseudozufallszahlengenerator des Zeit-zu-Pseudozufallszahl-Wandler (TPRC) ein rückgekoppeltes Schieberegister sein, dass mit jedem Takt des Systemtakts 2106 seine Werte um eine Stelle nach links oder rechts je nach Konstruktion verschiebt und in das freiwerdende Bit den Rückkoppelwert des Rückkoppelpolynoms zurückspeist.With a falling edge of a
Wichtig ist, dass beginnend mit dem Startwert des Pseudozufallszahlengenerators (Seed-Wert) jedem Takt des Systemtakts 2106 ab der fallenden Flanke genau eine Pseudozufallszahl des Pseudozufallszahlengenerators bijektiv zugeordnet ist. D.h. aus dem Wert der Pseudozufallszahl muss auf die zeitliche Position des betreffenden Takts des Systemtaktes 2106 nach der fallenden Flanke des einsynchronisierten Spannungssignal 415 geschlossen werden können.It is important that, starting with the starting value of the pseudorandom number generator (seed value), each clock pulse of the
Mit der nächsten fallenden Flanke des zweiten Pulses 2212 einsynchronisierten Spannungssignal 415 übernimmt ein erstes Pseudozufallszahlenregister den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wieder auf den vordefinierten Seed-Wert zurück.With the next falling edge of the
Mit der nächsten fallenden Flanke des dritten Pulses 2213 einsynchronisierten Spannungssignal 415 übernimmt ein zweites Pseudozufallszahlenregister den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wieder auf den vordefinierten Seed-Wert zurück. Die Entropieextraktion 401 vergleicht den Wert in dem ersten Pseudozufallszahlenregister mit dem Wert in dem zweiten Pseudozufallszahlenregister. Ist der erste Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein Quantenzufallsbit 411 mit einem ersten logischen Pegel erzeugen. Ist der zweite Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein Quantenzufallsbit 411 mit einem zweiten logischen Pegel erzeugen, der vom ersten Pegel verschieden ist.With the next falling edge of the
Mit der nächsten fallenden Flanke des vierten Pulses 2214 des einsynchronisierten Spannungssignal 415 übernimmt das erste Pseudozufallszahlenregister den bisherigen Wert des ein zweites Pseudozufallszahlenregister und das zweite Pseudozufallszahlenregister übernimmt stattdessen wiederum den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wiederum auf den vordefinierten Seed-Wert zurück. Die Entropieextraktion 401 vergleicht dann wieder den Wert in dem ersten Pseudozufallszahlenregister mit dem Wert in dem zweiten Pseudozufallszahlenregister. Ist der erste Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein weiteres neues und hier zweites Quantenzufallsbit 411 mit einem ersten logischen Pegel erzeugen. Ist der zweite Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein weiteres neues und hier zweites Quantenzufallsbit 411 mit einem zweiten logischen Pegel erzeugen, der vom ersten Pegel verschieden ist.With the next falling edge of the
Auf diese Weise kann der Quantenzufallszahlengenerator 28 diesen Prozess der Quantenzufallsbiterzeugung fortsetzen und so einen kontinuierlichen, allerdings mit einem Phasenrauschen versehenen Strom von Quantenzufallsbits 411 erzeugen.In this way, the quantum
Die entscheidende Idee ist hier statt eines Digitalzählers wie im Stand der Technik einen Pseudozufallszahlengenerator zu verwenden, der den ersten und den zweiten Wert erzeugt. Der Vorteil ist, dass selbst bei einer erfolgreichen Einprägung einer Störung in das einsynchronisierten Spannungssignal 415, die Zufälligkeit des Quantenzufallsbits 411 nur marginal gestört wird, da der Angreifer ja das Rückkoppelpolynom ebenfalls kennen müsste.The key idea here is to use a pseudorandom number generator, which generates the first and second values, instead of a digital counter as in the prior art. The advantage is that even if a disturbance is successfully introduced into the
Um dies zu verhindern ist es sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 das Rückkoppelpolynom des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl m von Zufallsquantenbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Zufallsquantenbits 411 ändert.In order to prevent this, it is useful if, for example, the quantum
Um dies zu verhindern, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 die Schieberegisterlänge n des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl k von Quantenzufallsbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Quantenzufallsbits 411 ändert. Hierzu ist es sinnvoll, wenn der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder ein Prozessor (10-1, 10-2) den Wert des Rückkoppelpolynom-Auswahlregisters 2112 zu diesem Zweck neu beschreibt. Der in dem Rückkoppelpolynom-Auswahlregister 2112 gespeicherte Wert steuert bevorzugt den Rückkoppelmultiplexer 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Damit selektiert der in dem Rückkoppelpolynom-Auswahlregister 2112 gespeicherte Wert vorzugsweise, welches Rückkoppelpolynom der m Rückkoppelpolynom-Schaltungen RKN1 bis RKNm den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bestimmt. Vorzugsweise verhindern mittels einer Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8 der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung die Weitergabe eines erzeugten Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8, wenn dieses Quantenzufallsbit 411 für das Rückkoppelpolynom-Auswahlregister 2112 verwendet wird. Dies verhindert eine Doppelnutzung und erhöht somit die Sicherheit. Stattdessen verwenden bevorzugt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung dieses Quantenzufallsbit 411 für die Erzeugung eines Zufallsdatenworts zur Einspeicherung in das Rückkoppelpolynom-Auswahlregister 2112. Dies hat den Vorteil, dass das durch das Rückkoppelpolynom-Auswahlregister 2112 ausgewählte Rückkoppelpolynom der m Rückkoppelpolynom-Schaltungen RKN1 bis RKNm vollkommen zufällig ist. Damit ist es einem Angreifer nicht mehr möglich, einen deterministischen Bitdatenstrom an Stelle des Datenbitstroms der Quantenzufallsbits 411 einzuspeisen und zwar auch dann, wenn ein Angriff auf die Entropiequelle 401 erfolgreich ist.To prevent this, it is also useful if, for example, the quantum
Um den vorgeschlagenen mikrointegrierten Quantenzufallszahlengenerator 28 weiter zu härten, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 den Start-Wert (Seed-Wert) des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl p von Zufallsquantenbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Quantenzufallsbits 411 ändert. Hierzu ist es sinnvoll, wenn der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder ein Prozessor (10-1, 10-2) den Wert eines Seed-Nachladeregisters im Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu diesem Zweck mit Quantenzufallsbits 411 neu beschreibt. Die Bitbreite des eines Seed-Nachladeregisters im Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) entspricht bevorzugt der Zahl n der Schieberegisterbits SB1 bis SBn des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Der Schieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zählt bevorzugt die Anzahl der erfolgreich erzeugten Quantenzufallsbits 411. Vorzugsweise signalisiert die Finite-State-Machine 404.8 dem Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu diesem Zweck die Erzeugung eines gültigen Quantenzufallsbits 411. Statt der Zählung der gültigen Quantenzufallsbits 411 ist auch die Zählung der erfolgreich erzeugten Zufallsdatenworte 418 in der Finite-State-Machine 404.8 möglich. Der Schieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) lädt bevorzugt den neuen Seed-Wert des eines Seed-Nachladeregisters im Schieberegistercontroller 2103 bei einer oder mehreren der nachfolgenden Ereignisse in die Schieberegisterbits SB1 bis SBn des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC)
- • bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Quantenzufallsbits 411 und/oder
- • bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Zufallsdatenworte 418 und/oder
- • bei Änderung des Werts des Rückkoppelpolynom-
Auswahlregisters 2112 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) und damit des ausgewählten Rückkoppelpolynoms der m Rückkoppelpolynome RKN1 bis RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC).
- • upon reaching a predetermined number of successfully generated quantum
random bits 411 and/or - • upon reaching a predetermined number of successfully generated
random data words 418 and/or - • when changing the value of the feedback
polynomial selection register 2112 of the time-to-pseudo-random number converter 404.3 (TPRC) and thus of the selected feedback polynomial of the m feedback polynomials RKN 1 to RKN m of the time-to-pseudo-random number converter 404.3 (TPRC).
Dies Verhindert zuverlässig jede Art von Vorhersagbarkeit.This reliably prevents any kind of predictability.
Bevorzugt sind die Schaltungsteile des Quantenzufallszahlengenerators 28 mit einer Metallschicht 142, 53 abgedeckt, um jede Einflussnahme durch Temperatur oder elektromagnetische Strahlung oder elektrostatische Felder oder magnetische Felder abzuwehren. Bevorzugt umfasst die Metallschicht auch eine weichmagnetische Schicht zur Abwehr von Angriffsversuchen mittels magnetischer Felder.Preferably, the circuit parts of the quantum
Vorzugsweise verhindern mittels einer Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8 der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung die Weitergabe eines erzeugten Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8, wenn dieses Quantenzufallsbit 411 für das Seed-Nachladeregisters im Schieberegistercontroller 2103 im Zeit-zu-Pseudozufallszahl-Wandler 404.3 (TPRC) verwendet wird. Dies verhindert eine Doppelnutzung und erhöht somit die Sicherheit. Stattdessen verwenden bevorzugt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung dieses Quantenzufallsbit 411 für die Erzeugung eines Zufallsdatenworts zur Einspeicherung in das Seed-Nachladeregisters im Schieberegistercontroller 2103. Dies hat den Vorteil, dass der durch das Seed-Nachladeregisters im Schieberegistercontroller 2103 ausgewählte Seed-Wert des linear rückgekoppelten Schieberegisters der n Schieberegisterbits SB1 bis SBn vollkommen zufällig ist. Da ein linear rückgekoppeltes Schieberegister bei Verwendung von einfach primitivem Rückkoppelpolynomen zwei Zyklen aufweist, von denen einer nur einen Schieberegisterwert umfasst, muss dieser eine einzyklige Schieberegisterwert verhindert werden. Entsprich zufällig Nachladewert des Seed-Nachladeregisters im Schieberegistercontroller 2103 dem einzykligen Seed-Wert des linear rückgekoppelten Schieberegisters mit dem aktuellen Rückkoppelpolynom oder dem als nächstes vorgesehenen Rückkoppelpolynom, so Erzeugen der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung einen neuen zufälligen Nachladewert im Seed-Nachladeregister des Schieberegistercontrollers 2103.Preferably, by means of a line 2022 for preventing the use of a quantum
Bevorzugt sind die m Rückkoppelpolynome RKN1 bis RKNm so ausgewählt, dass die einzykligen Seed-Werte gleich sind. Dies reduziert den Aufwand für die Detektion des einzykligen-Schieberegisterwerts, da dann dieser nicht mehr von dem ausgewählten Rückkoppelpolynom der Rückkoppelpolynome RKN1 bis RKNm abhängt. Ohnehin ist zu empfehlen, dass der Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) im Falle der Verwendung linearrückgekoppelter Schieberegister eine Detektionsschaltung 2113 zur Detektion eines illegalen Werts des Zustandsvektors der n Schieberegisterbits SB1 bis SBn umfasst. Befindet sich der Zustandsvektor der n Schieberegisterbits SB1 bis SBn in einem solchen illegalen Zustand, so signalisiert vorzugsweise der Detektor 2113 diesen illegalen Zustand an den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung. Der Detektor 2113 oder der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung setzen dann den Wert des Zustandswerts des Zustandsvektors der n Schieberegisterbits SB1 bis SBn auf einen vorbestimmten Wert und/oder den Wert des Seed-Nachladeregisters im Schieberegistercontroller 2103 zurück. Bevorzugt sind diese Nachladewerte von dem einzykligen Schieberegisterwert verschieden. Dies geschieht bevorzugt auch, wenn der Watchdog 404.5 und/oder der Spannungsmonitor 413eine Störung oder einen vermuteten oder möglichen Angriff detektieren. Bevorzugt zählt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) die Anzahl dieser Störungen. Vorzugsweise reduziert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) diesen Zählerwert wieder in Abhängigkeit von der Anzahl erfolgreich insbesondere seit der letzten Störung erzeugter Zufallsquantenbits 411 und/oder Zufallsdatenworte 418. Überschreitet diese Anzahl und/oder die Ereignisdichte solcher Ereignisse eine bestimmte vorgegebene zeitliche Dichte und/oder einen bestimmten Zahlenwert, so signalisiert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise an den Watchdog 404.5 und/oder einen Prozessor (10-1, 10-2) einen Defekt des Quantenzufallszahlengenerators 28 oder einen erfolgreichen Angriff auf den Quantenzufallszahlengenerator 28. Typischerweise signalisiert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) der Finite-State-Machine 404.8 dann dass keine Zufallszahlen mehr erzeugt werden dürfen. Vorzugsweise muss ein Prozessor (10-1, 10-2) dann den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mittels eines vorbestimmten Reaktivierungs-Kode-Worts reaktivieren. Der Prozessor (10-1, 10-2) schreibt dieses Reaktivierungs-Kode-Wort dann über den interner Datenbus 419 des Quantenzufallszahlengenerators 28 in ein spezielles Reaktivierungsregister des Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), was den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) und den Quantenzufallszahlengenerator 28 reaktiviert und vorzugsweise alle Fehlerzähler zurücksetzt. Vorzugsweise ist die Zahl der möglichen Reaktivierungen begrenzt. Ist die Maximalzahl der Reaktivierungen überschritten, so kann der Quantenzufallszahlengenerator 28 bevorzugt nicht mehr reaktiviert werden. Vorzugsweise kann der Zähler für die Reaktivierungen des der Quantenzufallszahlengenerators 28 mittels eines besonderen Rücksetzbefehls zurückgesetzt werden bevor dieser Maximalwert erreicht ist. Bevorzugt gibt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 oder eine andere Vorrichtung des Quantenzufallszahlengenerators 28 vor Erreichen dieses Blockierungsgrenze eine Warnung heraus.Preferably, the m feedback polynomials RKN 1 to RKN m are selected such that the single-cycle seed values are equal. This reduces the effort for detecting the single-cycle shift register value, since this no longer depends on the selected feedback polynomial of the feedback polynomials RKN 1 to RKN m . In any case, it is recommended that the time-to-pseudo-random number converter 404.3 (TPRC) includes a
Beim Start des Quantenzufallszahlengenerators 28 trägt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als erstes dafür Sorge, dass der der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mittels eines vorbestimmten Seed-Werts und eines vorbestimmten Werts des Rückkoppelpolynom-Auswahlregisters 2112 zuerst einen neuen Seed-Wert auf Basis von Quantenzufallszahlen 411 und einen neuen Wert des Rückkoppelpolynom-Auswahlregisters 2112 auf Basis von Quantenzufallszahlen aus Quantenzufallsbits 411 bestimmt. Erst wenn der Seed-Wert und der Wert des Rückkoppelpolynom-Auswahlregisters 2112 auf Quantenzufallszahlen beruhen, ist die Initialisierungsphase des Quantenzufallszahlengenerators 28 abgeschlossen und der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) signalisiert der Finite-State-Machine 404.8, dass sie die Quantenzufallsbits 411 und die Quantenzufallsdatenwörter 418 (Quantenzufallszahlen) verwenden und weitergeben darf. Bevorzugt signalisiert die Finite-State-Machine 404.8 diesen Umstand an einen oder mehrere Prozessoren (10-1, 10-2). Dies hat den Vorteil, dass die Vorrichtung nur mit vollem Schutz erzeugte Quantenzufallszahlen 418 erzeugt.When the quantum
Durch die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) ist es einem Angreifer nicht mehr möglich, einen deterministischen Bitdatenstrom an Stelle des Datenbitstroms der Quantenzufallsbits 411 einzuspeisen und zwar auch dann, wenn ein Angriff auf die Entropiequelle 401 tatsächlich aus welchen Gründen auch immer erfolgreich ist.By using a time-to-pseudorandom number generator 404.3 (TPRC), an attacker is no longer able to generate a deterministic bit data stream instead of the data bit stream of the quantum ten
Um dies zu verhindern, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 diese Zahl m nach der vollständigen Bestimmung einer Anzahl m von Quantenzufallsbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Quantenzufallsbits 411 ändert.In order to prevent this, it is also useful if, for example, the quantum
Vorzugsweise gibt die Finite-State-Machine 404.8 des Quantenzufallszahlengenerator 28 diese bereits benutzten Quantenzufallsbits 411 nicht aus und verwendet sie nicht für die Erzeugung von Quantenzufallsdatenworten 418.Preferably, the finite state machine 404.8 of the quantum
Die Methode der Logikextraktion umfasst darüber hinaus drei Grenzfälle, die im Folgenden beschrieben werden.The logic extraction method also includes three borderline cases, which are described below.
Typischerweise verwendet der Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als Wert des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Ggf. kann ein Pufferverstärker vorgesehen sein, der den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) erfasst und als Wert des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ausgibt.Typically, the time-to-pseudo-random number generator 404.3 (TPRC) uses the logical value of the shift register reload
Die Entropie-Extraktion 404.4 vergleicht nun zwei verschiedene, von dem Zeit-zu-Pseudozufallszahl-Wandler 404.3 (TPRC) erzeugte Pseudozufallszahlen aus dem Ausgang 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3, eine erste Pseudozufallszahl 410.1 und eine zweite Pseudozufallszahl 410.2, miteinander.The entropy extraction 404.4 now compares two different pseudorandom numbers generated by the time-to-pseudorandom number converter 404.3 (TPRC) from the
Sind die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2 gleich, so verwirft die Entropie-Extraktion 404.4 eine der beiden Pseudozufallszahl, die erste Pseudozufallszahl 410.1 oder die zweite Quantenzufallszahl 410.2, und ersetzt diese durch eine neue Pseudozufallszahl 410.3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt zählt die Entropie-Extraktion 404.4 mittels eines Zählers die Ereignisse, bei denen die beiden Pseudozufallszahl, die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2, gleich sind und erhöht mit jedem solchen Ereignis den Zähler um eine erste Zählerschrittweite. Bevorzugt zählt die Entropie-Extraktion 404.4 mittels dieses Zählers auch die Ereignisse, bei denen die beiden Pseudozufallszahlen, die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2, ungleich sind und erniedrigt mit jedem solchen Ereignis den Zähler um eine zweite Zählerschrittweite, wobei bevorzugt der Wert 0 nicht unterschritten wird. Bevorzugt ist die zweite Zählerschrittweite betragsmäßig kleiner als die erste Zählerschrittweite des Zählers in der Entropie-Extraktion 404.4. Sofern der Wert dieses Zählers einen vorbestimmten Wert überschreitet, geht die Steuervorrichtung der Entropie-Extraktion 404.4 von einem Defekt des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aus. Bevorzugt signalisiert die Steuervorrichtung der Entropie-Extraktion 404.4 dann einem Prozessor (10-1, 10-2) einen Defekt des Quantenzufallszahlengenerators 28 bzw. einen erfolgreichen Angriff auf den Quantenzufallszahlengenerator 28. Vorzugsweise signalisiert dann die Entropie-Extraktion 404.4 der Finite-State-Machine keine erfolgreiche Erzeugung eines Quantenzufallsbits 411 mehr, sodass die Finite-State-Machine 404.8 keine erfolgreiche Quantenzufallszahlenerzeugung mehr an einen Prozessor (10-1, 10-2) melden kann und keine Quantenzufallszahlen 1018 mehr erzeugt.If the first pseudorandom number 410.1 and the second pseudorandom number 410.2 are the same, the entropy extraction 404.4 discards one of the two pseudorandom numbers, the first pseudorandom number 410.1 or the second quantum random number 410.2, and replaces it with a new pseudorandom number 410.3 from the time-to-pseudorandom number converter 404.3 (TPRC). The entropy extraction 404.4 preferably uses a counter to count the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are the same and increases the counter by a first counter step size with each such event. Preferably, the entropy extraction 404.4 also uses this counter to count the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are unequal and decrements the counter by a second counter step size with each such event, preferably not falling below the
Sofern die erste Pseudozufallszahl 410.1 kleiner als die zweite Pseudozufallszahl 410.2 ist, erzeugt die Entropie-Extraktion 404.4 ein Quantenzufallsbit eines ersten logischen Werts, beispielsweise eine logische ,1' und signalisiert die erfolgreiche Erzeugung an die Finite-State-Machine 404.8.If the first pseudorandom number 410.1 is smaller than the second pseudorandom number 410.2, the entropy extraction 404.4 generates a quantum random bit of a first logical value, for example a logical '1', and signals the successful generation to the finite state machine 404.8.
Sofern die erste Pseudozufallszahl 410.1 größer als die zweite Pseudozufallszahl 410.2 ist, erzeugt die Entropie-Extraktion 404.4 ein Quantenzufallsbit eines zweiten logischen Werts, beispielsweise eine logische ,0', der von dem ersten logischen Wert verschieden ist, und signalisiert die erfolgreiche Erzeugung an die Finite-State-Machine 404.8.If the first pseudorandom number 410.1 is greater than the second pseudorandom number 410.2, the entropy extraction 404.4 generates a quantum random bit of a second logical value, for example a logical '0', which is different from the first logical value, and signals the successful generation to the finite state machine 404.8.
Die Finite-State-Machine wandelt die erfolgreich erzeugten Quantenzufallsbits 411 in Quantenzufallsdatenworte 418, die jeweils eine Quantenzufallszahl repräsentieren und stellt diese über ein RAM oder ein FIFO 404.9 den Prozessoren (10-1, 10-2) über den internen Datenbus 419 zur Verfügung. Die Finite-State-Machine 404.8 signalisier bevorzugt einem oder mehreren Prozessoren (10-1, 10-2) die Bereitstellung einer oder mehrerer Quantenzufallszahlen.The finite state machine converts the successfully generated quantum
Ein Problem kann ein Jitter des Systemtakts 2106 sein. Durch die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) wird eine monofrequente oder sonst wie systematische Störung des Systemtakts 2106 im Spektrum mit einem zufälligen Spreizkode gespreizt, sodass eine Detektion für einen Angreifer schwierig, wenn nicht unmöglich wird.One problem may be a jitter of the
Dies Erschwert die Angreifbarkeit des Quantenzufallszahlengenerators 28 weiter.This further complicates the vulnerability of the quantum
Durch die Verwendung von Quantenzufallszahlen für den Seed-Wert des linear rückgekoppelten Schieberegisters des Zeit-zu-Pseudozufallszahlenwandlers und einer Quantenzufallszahl für die Auswahl des einfachprimitiven Rückkoppelpolynoms ist das Verhalten des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 (TPRC) selbst auf einem Zufalls-Niveau einer Quantenzufallszahl. Durch den regelmäßigen Wechsel dieser Werte, wird einem Angreifer die Beeinflussung der erzeugten Quantenzufallszahlen weiter erschwert.By using quantum random numbers for the seed value of the linear feedback shift register of the time-to-pseudo-random number converter and a quantum random number for the selection of the simple primitive feedback polynomial, the behavior of the time-to-pseudo-random number converter 404.3 (TPRC) itself is at a random level of a quantum random number. By regularly changing these values, it is made even more difficult for an attacker to influence the generated quantum random numbers.
Demnach erreicht der vorschlagsgemäße Quantenzufallszahlengenerator 28 also alle genannten Ziele.Therefore, the proposed quantum
Insbesondere wird mit dem Vorschlag das Ziel erreicht, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der es ermöglicht, ein hohes Maß an Entropie zu garantieren, so dass er zumindest die vom NIST definierten statistischen Tests besteht.In particular, the proposal achieves the objective of providing a one-piece, micro-integrated quantum
Es ist ferner Aufgabe des Vorschlags, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der es ermöglicht, eine hohe Bitrate bei der Erzeugung von Zufallsfolgen von Quantenzufallsbits 411 und/oder Quantenzufallsdatenworten 418 zu erreichen.It is a further object of the proposal to provide a one-piece, micro-integrated quantum
Es ist ferner Aufgabe des Vorschlags, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der im Vergleich zu den Quantenzufallszahlengeneratoren des Standes der Technik eine kompaktere, robustere und weniger komplexe und vor allem mikrointegrierte und CMOS kompatible Struktur aufweist, die eine einstückige Fertigung und die Ko-Integration in konventionelle Systeme wie Speicher (wie DRAMS, SRAMS, Flash-Speicher und dergleichen) oder Prozessoren (Mikroprozessoren und/oder Mikrocontroller und/oder SoCs mit einem Prozessor auf dem IC) erlaubt.It is a further object of the proposal to provide a one-piece, micro-integrated quantum
Auch hier erreicht der Vorschlag das Ziel, einen Quantenzufallszahlengenerator 28 mit einem hohen Maß an Sicherheit gegen jeden Versuch, seine internen Komponenten zu manipulieren, bereitzustellen. Insbesondere verhindert die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 1004.3 (TRNG) die Auswertbarkeit erfolgreicher Angriffe auf die Entropiequelle 401. Des Weiteren ermöglichen die vielen Tests eine sichere Erkennung eines Angriffs auf den Quantenzufallszahlengenerator 28 und verhindern damit die Verwendung manipulierter Zahlen als vermeintlich sichere Quantenzufallszahlen.Here too, the proposal achieves the goal of providing a quantum
Schließlich wird mit dem Vorschlag auch das Ziel erreicht, einen Quantenzufallszahlengenerator 28 bereitzustellen, der insbesondere durch die Fähigkeit der Ko-Integrierbarkeit in CMOS-Schaltkreise wirtschaftlicher ist als die Generatoren des bekannten Standes der Technik.Finally, the proposal also achieves the objective of providing a quantum
Merkmale der ErfindungFeatures of the invention
Die Merkmale der Erfindung fassen diese nochmals zusammen. Anwendungen der technischen Lehre können die Merkmale miteinander kombinieren, sofern diese Kombinationen nicht sachliche Widersprüche verursachen. Insofern stellen die hier vorgestellten Abhängigkeiten und Bezüge nur besonders bevorzugte, beispielhafte Ausführungsformen dar.
- Merkmal 1: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) (Englisch: Quantum Random Number Generator: QRNG),
- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) (Englisch: Quantum Random Number Generator: QRNG) eine Entropiequelle (401) aufweist und
- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) (Englisch: Quantum Random Number Generator: QRNG) ein Signal (405) der Entropiequelle (401) mittels eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) auswertet und ein oder mehrere Zufallsbits (411) erzeugt.
- Merkmal 2: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach
Merkmal 1,- - wobei der Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418), aus mehreren Zufallsbits (411) eine oder mehrere Zufallszahlen (418) erzeugt und zur Verfügung stellt oder nutzt.
- Merkmal 3: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach
Merkmal 1oder 2,- - wobei das Verhalten des P eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRG) (404.3) von einem oder mehreren Quantenzufallsbits (411) und/oder einer oder mehrerer Quantenzufallszahlen (418) abhängt.
- Merkmal 4: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1
bis 3,- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) einen Watchdog (404.5) umfasst, der die korrekte Funktion des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) überwacht.
- Merkmal 5: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1
bis 4,- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) einen Watchdog (404.5) umfasst, der die korrekte Funktion des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) überwacht indem er die Zufälligkeit der erzeugten Quantenzufallsbits (411) in Form eines Messwerts misst und mit einem Toleranzintervall oder einem Schwellwert vergleicht und auf einen Fehler bei einer Abweichung schließt.
- Merkmal 6: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1
bis 5,- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) einen Watchdog (404.5) umfasst, der die korrekte Funktion des eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) überwacht und bei Abweichungen von einem erwarteten verhalten einen Fehler feststellt und/oder signalisiert.
- Merkmal 7: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1
bis 6,- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) einstückig als Teil eines integrierten Schaltkreises (2) gefertigt ist und
- - wobei der integrierte Schaltkreis (2) einen Spannungswandler (91) zur Versorgung der Entropiequelle (401) des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) umfasst und
- - wobei der Spannungswandler (91) einen oder mehrere DMOS-Transistoren umfasst.
- Merkmal 8: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Merkmal 7,
- - wobei der integrierte Schaltkreis (2) in einer BCD-Technologie gefertigt ist.
- Merkmal 9: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1
bis 8,- - wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) einstückig als Teil eines integrierten Schaltkreises (2) gefertigt ist und
- - wobei der integrierte Schaltkreis (2) einer der folgenden Schaltkreise ist oder einen der folgenden Schaltkreise umfasst:
- - Ein Mikrokontroller,
- - ein Mikroprozessor,
- - ein Speicher,
- - ein DRAM,
- - ein SRAM,
- - ein RAM,
- - ein flüchtiger Speicher,
- - ein OTP-Speicher,
- - ein EEPROM,
- - ein Flash-Speicher,
- - ein MRAM,
- - ein FRAM,
- - ein Sensor-Auswerteschaltkreis,
- - ein Steuerschaltkreis für eine automobile Steuerschaltung,
- - ein Grafik-Controller,
- - ein Auswerteschaltkreis für einen biometrischen Sensor oder ein Eingabegerät,
- - eine Steuerschaltung,
- - eine Chip-Karten-Schaltung,
- - ein Sachaltkreis eines Mobiltelefons oder eines Smart-Phones,
- - ein Schaltkreis eines Zugangskontrollsystems,
- - ein Schaltkreis mit einer kodierten Aufzeichnung von Betriebsparametern,
- - ein Schaltkreis eines Zugriffskontrollsystems,
- - ein Schaltkreis eines Sicherungssystems elektronischer Sicherungen,
- - ein Funksystemschaltkreis,
- - ein Kommunikationsschaltkreis,
- - ein Schaltkreis eines Verschlüsselungs- und/oder Entschlüsselungssystems,
- - ein Schaltkreis eines Individualisierungssystems
- - ein Schaltkreis einer Spielvorrichtung,
- - ein Schaltkreis eines Simulationssystems,
- - ein Schaltkreis eines Rechnersystems,
- - ein Schaltkreis einer Rauschquelle,
- - ein Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung eines Spreizkodes.
- Merkmal 10: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Merkmale 1 bis 9,
- - wobei die Entropiequelle (401) eine Photonenquelle (54) umfasst und
- - wobei die Entropiequelle (401) einen Photonendetektor (55) umfasst und
- - wobei die Photonenquelle (54) bei Versorgung mit elektrischer Energie Photonen als Quantensignal emittiert und
- - wobei die Photonenquelle (54) mit dem Photonendetektor (55) optisch gekoppelt ist und
- - wobei der Photonendetektor (55) das Quantensignal der Photonenquelle (54) zumindest teilweise empfängt und das Ausgangssignal (405) der Entropiequelle (401) oder ein Vorläufersignal desselben erzeugt.
- Merkmal 11: Sicherer Mikrocontroller zur Steuerung von Vorrichtungen, insbesondere im Automobil
- - mit einem Halbleiterkristall und
- - mit Speicherelementen und
- - mit zumindest einem internen Bus (419) und
- - mit zumindest einem Prozessor (10-1),
insbesondere einem 8/16/32/15-Bit-Microkontrollerkern, und - - mit einer oder mehreren Datenschnittstellen und
- - mit zumindest einem quantenprozessbasierenden Generator (28) für echte Zufallszahlen (411, 418) (Englisch: Quantum Random Number Generator: QRNG) nach einem der Merkmale 1 bis 9, und
- - wobei die Speicherelemente mit dem internen Bus (419) verbunden sind und
- - wobei die Datenschnittstelle mit dem internen Bus (419) verbunden ist und
- - wobei insbesondere der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28) mit dem internen Bus (419) verbunden sein kann und
- - wobei der Prozessor (10-1) mit dem internen Bus (419) verbunden ist und
- - wobei der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28), insbesondere auf Anfrage des Prozessors (10-1), eine Zufallszahl (418) erzeugt oder zur Verfügung stellt und
- - wobei der Prozessor (10-1) mit Hilfe eines Programms aus einem oder mehreren seiner Speicherelemente und mit Hilfe der Zufallszahl einen Schlüssel erzeugt und
- - wobei der Prozessor (10-1) mit Hilfe eines Programms aus einem oder mehreren seiner Speicherelemente und mit Hilfe des Schlüssels Daten verschlüsselt und entschlüsselt, die er über die Datenschnittstelle mit Vorrichtungen außerhalb des sicheren Mikrocontrollers austauscht und
- - wobei der Halbleiterkristall diese Teilvorrichtungen des sicheren Mikrocontrollers einstückig umfasst,
- - wobei diese Teilvorrichtungen des sicheren Mikrocontrollers die Speicherelemente, den internen Bus (419), den zumindest einen Prozessor (10-1), die Datenschnittstellen und den quantenprozessbasierenden Generator für echte Zufallszahlen (Englisch: Quantum Random Number Generator: QRNG) (28) umfassen,
- Merkmal 12: Sicherer Mikrocontroller nach Merkmal 11,
- - wobei die Speicherelemente ein oder mehrere Schreib/Lese-Speicher RAM und/oder ein oder mehrere beschreibbare nicht flüchtige Speicher, insbesondere EEPROM-Speicher und/oder Flash-Speicher und/oder OTP-Speicher, und/oder ein oder mehrere reine Lesespeicher und/oder ein oder mehrere nicht flüchtige Herstellerspeicher insbesondere ein oder mehrere Hersteller-ROMs und/oder ein oder mehrere Hersteller EEPROMs und/oder ein oder mehrere Hersteller-Flash-Speicher, umfassen.
- Merkmal 13: Sicherer
Mikrocontroller nach Merkmal 12,- - wobei das Hersteller-ROM die Boot-Software umfasst.
- Merkmal 14:
Sicherer Mikrocontrollernach Merkmal 12 oder 13,- - wobei eine Hersteller-Speicher Firewall zwischen dem Hersteller-Speicher und dem internen Bus (419) vorgesehen ist.
- Merkmal 15: Sicherer Mikrocontroller nach einem oder mehreren der Merkmale 11
bis 14- - mit einer oder mehrerer der folgenden Komponenten:
- - einen Taktgenerator (92) (u.a. für den Systemtakt 2106)
- - einer Rücksetzschaltung (83) und/oder
- - einem oder mehreren Spannungswandlern (91), die die Betriebsspannungen bereitstellen, und/oder
- - einer Masseschaltung in der negativen Versorgungsspannungsleitung (GND), insbesondere zur Abwehr von Angriffen über Masseversatz, und/oder
- - einer Eingangs-/Ausgangsschaltung und/oder
- - einem oder mehreren Verarbeitungsmodulen,
- - wobei die Verarbeitungsmodule dazu eingerichtet sind, mit dem internen Bus (419) zu kommunizieren, und
- - wobei die Verarbeitungsmodule eines oder mehrere der folgenden Module umfassen:
- - ein CRC-Modul (Cyclic Redundancy Check),
- - ein Taktgeneratormodul,
- - mit einem DES-Beschleuniger und/oder einem AES-Beschleuniger
- - ein oder mehrere Zeitgeber-Module,
- - eine Sicherheitsüberwachungs- und -steuerungsschaltung,
- - eine Datenschnittstelle, insbesondere einen Universellen Asynchronen Receiver Transmitter (UART).
- - mit einer oder mehrerer der folgenden Komponenten:
- Merkmal 16: Sicherer Mikrocontroller 1nach einem oder mehreren der Merkmale 11 bis 15,
- - mit zumindest einer Photonenquelle (54), insbesondere einer Silizium-LED (54) oder einer ersten SPAD-Diode (54), und
- - mit zumindest einem Photonendetektor (54), insbesondere einer zweiten SPAD-Diode (55), und
- - mit zumindest einer Verarbeitungsschaltung und
- - mit zumindest einer Betriebsschaltung,
- - wobei der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28) zumindest die Photonenquelle (54) als Lichtquelle für das optische Quantensignal umfasst und
- - wobei der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28) zumindest den Photonendetektor (55) als Fotodetektor für das optische Quantensignal umfasst und
- - wobei der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28) zumindest die Verarbeitungsschaltung umfasst und
- - wobei die zumindest eine Photonenquelle (54) mit dem zumindest einen Photonendetektor (55) optisch gekoppelt ist und
- - wobei die Betriebsschaltung die Photonenquelle (54) so mit elektrischer Energie versorgt, dass die Photonenquelle (54) Licht emittiert und
- - wobei die Verarbeitungsschaltung das Signal des Photonendetektors (55) erfasst und daraus die Zufallszahl bildet und dem Prozessor (10-1) zur Verfügung stellt.
- Merkmal 17: Sicherer Mikrocontroller 11
nach Merkmal 16,- - mit zumindest einem optischen Lichtwellenleiter (44),
- - wobei der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) (28) zumindest den optischen Lichtwellenleiter (44) umfasst und
- - wobei der zumindest eine optische Lichtwellenleiter (44) die zumindest eine Photonenquelle (54) mit dem zumindest einen Photonendetektor (55) optisch koppelt.
- Merkmal 18: Sicherer Mikrocontroller nach Merkmal 17
- - wobei der Halbleiterkristall eine Oberfläche (56) aufweist und
- - wobei der Halbleiterkristall ein halbleitendes Material unterhalb seiner Oberfläche (56) aufweist und
- - wobei die Oberfläche (56) des Halbleiterkristalls einen Metallisierungsstapel aufweist und
- - wobei der Metallisierungsstapel eine typischerweise strukturierte und optisch transparente und elektrisch isolierende Schicht (44) aufweist und
- - wobei zumindest ein Teil dieser typischerweise strukturierten, transparenten und elektrisch isolierenden Schicht (44) der Oberfläche (56) den optischen Lichtwellenleiter (44) bildet und
- - wobei die Photonenquelle (54) aus dem halbleitenden Material des Halbleitersubstrats in diesen optischen Lichtwellenleiter (44) einstrahlt und
- - wobei der optische Lichtwellenleiter (44) den Photonendetektor (54) so bestrahlt, dass das Licht von innerhalb des Lichtwellenleiters (44) wieder in das halbleitende Material des Halbeleitersubstrats von der Oberfläche aus eindringt und dort Vorrichtungsteile des Photonendetektors (55) trifft.
- Merkmal 19: Sicherer Mikrocontroller nach Merkmal 17 und/
oder 18,- - wobei die zumindest eine Betriebsschaltung die zumindest eine Photonenquelle (54) zumindest zeitweise mit elektrischer Energie versorgt und
- - wobei die zumindest eine Photonenquelle (54) bei Versorgung mit ausreichender elektrischer Energie Photonen in den zumindest einen Lichtwellenleiter (44) einspeist und
- - wobei der zumindest eine Lichtwellenleiter (44) solche Photonen in den Photonendetektor (55) einstrahlt.
- Merkmal 20: Sicherer Mikrocontroller nach einem oder mehreren der vorausgehenden Merkmale 11 bis 19,
- - wobei eine Datenschnittstelle der eine oder mehreren Datenschnittstellen eine drahtgebundene automobile Datenbusschnittstelle ist und
- - wobei die drahtgebundene automobile Datenbusschnittstelle insbesondere
- - eine CAN-Datenbusschnittstelle und/oder
- - eine CAN-FD-Datenbusschnittstelle und/oder
- - eine Flexray-Datenbusschnittstelle und/oder
- - eine PSI5-Datenbusschnittstelle und/oder
- - eine DSI3-Datenbusschnittstelle und/oder
- - eine LIN-Datenbusschnittstelle und/oder
- - eine Ethernet-Datenbusschnittstelle und/oder
- - eine LIN-Datenbusschnittstelle und/oder
- - eine MELIBUS-Datenbusschnittstelle umfasst
- Merkmal 21: Sicherer Mikrocontroller nach einem oder mehreren der vorausgehenden Merkmale 11
bis 20,- - wobei eine Datenschnittstelle der eine oder mehreren Datenschnittstellen eine drahtlose Datenbusschnittstelle ist und
- - wobei die drahtlose Datenbusschnittstelle insbesondere
- - eine WLAN-Schnittstelle und/oder
- - eine Bluetooth-Schnittstelle
- Merkmal 22: Sicherer Mikrocontroller nach einem oder mehreren der vorausgehenden Merkmale 11 bis 21,
- - wobei eine Datenschnittstelle der eine oder mehreren Datenschnittstellen eine drahtgebundene Datenbusschnittstelle ist und
- - wobei die drahtlose Datenbusschnittstelle insbesondere
- - eine KNX-Datenbusschnittstelle und/oder
- - eine EIB-Datenbusschnittstelle und/oder
- - eine DALI-Datenbusschnittstelle und/oder
- - eine PROFIBUS-Datenbusschnittstelle
- Merkmal 23: Eine Vorrichtung,
- wobei die Vorrichtung eine integrierte Schaltung (4) mit einem ersten Prozessor (10-1) und einem nichtflüchtigen Speicher (16) aufweist und
- wobei die Vorrichtung einen ersten Speicher aufweist,
- wobei der nicht flüchtige Speicher zumindest mindestens einen Sicherheitscode speichert;
- wobei der erste Speicher Daten speichert und
- wobei die Daten in dem ersten Speicher in einem ersten Format kryptografisch geschützt sind und
- wobei die integrierte Schaltung dazu eingerichtet ist, während einer Übertragung von Daten aus dem ersten Speicher die aus dem ersten Speicher gelesenen Daten zu validieren und,
- wobei die Vorrichtung einen Quantenzufallszahlengenerator (28) nach einem der Merkmale 1 bis 9 aufweist und
- wobei die integrierte Schaltung und der Quantenzufallszahlengenerator (28) in einem Halbleiterkristall gefertigt sind und
- wobei der Halbleiterkristall eine Oberfläche (56) aufweist und
- wobei der Halbleiterkristall ein halbleitendes Material unterhalb seiner Oberfläche (56) aufweist und
- wobei die Oberfläche (56) des Halbleiterkristalls einen Metallisierungsstapel aufweist und
- wobei der Metallisierungsstapel eine typischerweise strukturierte und optisch transparente und elektrisch isolierende Schicht (44) aufweist und
- wobei zumindest ein Teil dieser typischerweise strukturierten, transparenten und elektrisch isolierenden Schicht (44) der Oberfläche (56)
den optischen Lichtwellenleiter 44 bildet und - wobei die erste SPAD-Diode (54) aus dem halbleitenden Material des Halbleitersubstrats heraus Photonen (57) in diesen optischen Lichtwellenleiter (44) einstrahlt und
- wobei der zumindest eine optische Lichtwellenleiter (44) solche Photonen (58) zur zweiten SPAD-Diode (55) transportiert und
- wobei der optische Lichtwellenleiter (44) die zweite SPAD-Diode (55) so bestrahlt, dass das Licht (59) von innerhalb des Lichtwellenleiters (44) wieder in das halbleitende Material des Halbeleitersubstrats von der Oberfläche (56) aus eindringt und dort Vorrichtungsteile der zweiten SPAD-Diode (55) trifft und
- wobei die erste SPAD-Diode (54) und die zweite SPAD-Diode (55) und der Lichtwellenleiter (44) Teil des Quantenzufallszahlengenerators (28) sind.
- Merkmal 24: Vorrichtung nach Merkmal 23,
- wobei die Vorrichtung zumindest eine Betriebsschaltung aufweist und
- wobei die zumindest eine Betriebsschaltung die zumindest eine erste SPAD-Diode (54) zumindest zeitweise mit elektrischer Energie versorgt und
- wobei die zumindest eine erste SPAD-Diode (54) bei Versorgung mit ausreichender elektrischer Energie Photonen (57) in den zumindest einen Lichtwellenleiter (44) einspeist und
- wobei der zumindest eine Lichtwellenleiter (44) solche Photonen (58) zur zweiten SPAD-Diode (55) transportiert und
- wobei der zumindest eine Lichtwellenleiter (44) solche Photonen (59) in die zweite SPAD-Diode (55) einstrahlt.
- Merkmal 25:
Vorrichtung nach Merkmal 24,- wobei der Quantenzufallszahlengenerator (28) zumindest die erste SPAD-Diode (54) als Lichtquelle für das optische Quantensignal umfasst und
- wobei der Quantenzufallszahlengenerator (28) zumindest die zweite SPAD-Diode (55) als Fotodetektor für das optische Quantensignal umfasst und
- wobei der Quantenzufallszahlengenerator (28) zumindest eine Verarbeitungsschaltung umfasst und
- wobei der Quantenzufallszahlengenerator (28) zumindest den optischen Lichtwellenleiter (44) umfasst und
- wobei der zumindest eine optische Lichtwellenleiter (44), die zumindest eines erste SPAD-Diode (54) mit der zumindest einen zweiten SPAD-Diode (55) optisch koppelt und
- wobei die Betriebsschaltung die erste SPAD-Diode (54) so mit elektrischer Energieversorgt, dass die erste SPAD-Diode Licht (54) emittiert und
- wobei die Verarbeitungsschaltung das Signal der zweiten SPAD-Diode (55) erfasst und daraus die Zufallszahl bildet und dem Prozessor (10) oder einem anderen Vorrichtungsteil zur Verfügung stellt.
- Merkmal 26: Vorrichtung nach einem der Merkmale 23
bis 24,- wobei sich der erste Speicher innerhalb oder außerhalb der integrierten Schaltung befindet und
- wobei die Vorrichtung einen zweiten Speicher zum Speichern von Daten aufweist
- und wobei sich der zweite Speicher innerhalb oder außerhalb der integrierten Schaltung; befindet;
- wobei die Vorrichtung so eingerichtet ist,
- dass sie Daten vom ersten Speicher über die integrierte Schaltung zum zweiten Speicher überträgt, damit der Prozessor vom zweiten Speicher aus darauf zugreifen kann, und
- wobei die integrierte Schaltung dazu eingerichtet ist,
- während einer Übertragung von Daten aus dem ersten Speicher in den zweiten Speicher die aus dem ersten Speicher gelesenen Daten unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes zu validieren und,
- falls die Daten validiert werden, einen kryptographischen Schutz in einem zweiten Format auf die validierten Daten unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes anzuwenden, und
- die im zweiten Format geschützten Daten im zweiten Speicher zu speichern.
- Merkmal 27: Vorrichtung nach einem der Merkmale 23
bis 26, wobei der erste Speicher einen Festwertspeicher aufweist. - Merkmal 28: Vorrichtung nach einem der Merkmale 26 bis 27, wobei der zweite Speicher einen Direktzugriffsspeicher aufweist.
- Merkmal 29: Vorrichtung nach einem der Merkmale 26
bis 28, wobei der kryptografische Schutz, der auf die Daten im ersten Speicher angewendet wird, sich von dem kryptografischen Schutz unterscheidet, der auf die Daten im zweiten Speicher angewendet wird. - Merkmal 30: Vorrichtung nach einem der Merkmale 23 bis 29,
- wobei die integrierte Schaltung einen Speicher zum Speichern von Daten enthält, die von dem Prozessor verarbeitet werden sollen, und
- wobei das Gerät so eingerichtet ist, dass es einige Daten des validierten Datensatzes im Speicher und den Rest im zweiten Speicher speichert.
- Merkmal 31: Vorrichtung nach einem der Merkmale 26
bis 30, wobei der erste Speicher Daten in einem ersten Datenformat speichert und der zweite Speicher so angeordnet ist, dass er Daten in einem zweiten, anderen Datenformat speichert. - Merkmal 32: Vorrichtung nach Merkmal 31,
- wobei die im ersten Speicher gespeicherten Daten durch eine erste Authentifizierungstechnik geschützt sind und
- wobei die Vorrichtung so eingerichtet ist, dass sie die Daten im zweiten Speicher durch eine zweite, andere Authentifizierungstechnik schützt.
- Merkmal 33: Vorrichtung nach einem der Merkmale 26
bis 32,- wobei die Daten in dem ersten Speicher in mindestens einem Datensatz gespeichert sind und der oder jeder Datensatz als Satz kryptografisch geschützt ist und
- wobei die Vorrichtung so eingerichtet ist, dass sie in dem zweiten Speicher Wörter oder Wortgruppen eines validierten Datensatzes speichert, wobei jedes Wort oder jede Wortgruppe separat kryptografisch geschützt ist.
- Merkmal 34: Vorrichtung nach Merkmal 33, die so beschaffen ist,
- dass sie die Wörter oder Wortgruppen aus dem zweiten Speicher liest, und
- dass sie die gelesenen Wörter oder Wortgruppen unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes validiert und
- dass sie die gelesenen und validierten Wörter oder Wortgruppen in dem Prozessor verarbeitet.
- Merkmal 35: Vorrichtung nach Merkmal 34,
- wobei die integrierte Schaltung einen Hash-Rechner aufweist, und
- wobei der Prozessor und der Hash-Rechner (Hash-Engine) so angeordnet sind,
- dass a) für jedes Wort oder jede Gruppe von Wörtern eine Hash-Funktion in Abhängigkeit von einem in dem nichtflüchtigen Speicher gespeicherten Sicherheitscode berechnen und den Hash in Verbindung mit dem Wort oder der Gruppe in dem zweiten Speicher speichern,
- b) Abrufen eines gespeicherten Worts oder einer Gruppe aus dem zweiten Speicher, Neuberechnen einer Hash-Funktion für das abgerufene Wort oder die abgerufene Gruppe unter Verwendung des Sicherheitscodes und Vergleichen des neu berechneten Hashs mit dem gespeicherten Hash, und
- c) die Verarbeitung des abgerufenen Worts oder der abgerufenen Gruppe durch die Datenverarbeitungsanlage nur dann zulassen, wenn die neu berechneten und gespeicherten Hashes in einem bestimmten Verhältnis zueinanderstehen.
- Merkmal 36: Vorrichtung nach Merkmal 35, wobei der Hash-Rechner eine Schaltung in der integrierten Schaltung ist.
- Merkmal 37 Vorrichtung nach einem der Merkmale 23 bis 36, wobei der nichtflüchtige Speicher der integrierten Schaltung ein einmalig programmierbarer Speicher ist.
- Merkmal 38 Vorrichtung nach einem der Merkmale 23 bis 37, wobei der oder jeder im ersten Speicher gespeicherte Datensatz durch eine entsprechende digitale Signatur kryptographisch geschützt ist.
- Merkmal 39: Vorrichtung nach einem der Merkmale 23 bis 38, wobei der oder jeder im ersten Speicher gespeicherte Datensatz durch eine entsprechende digitale Signatur kryptographisch unter Zuhilfenahme zumindest einer Zufallszahl des Quantenzufallszahlengenerators geschützt ist.
- Merkmal 40: Vorrichtung nach Merkmal 38 oder 39, wobei in dem nichtflüchtigen Speicher der integrierten Schaltung ein Sicherheitscode gespeichert ist, den die Vorrichtung zumindest teilweise mittels zumindest einer Zufallszahl des Quantenzufallszahlgenerators (28) erzeugt hat.
- Merkmal 41: Vorrichtung nach einem der Merkmale 38 bis 39, wobei die Vorrichtung so eingerichtet ist, dass sie eine digitale Signatur des Datensatzes unter Bezugnahme auf einen oder unter Bezugnahme auf den in dem nichtflüchtigen Speicher der integrierten Schaltung gespeicherten Sicherheitscode validiert.
- Merkmal 42: Ein Datenverarbeitungsgerät,
- wobei das Datenverarbeitungsgerät eine integrierte Schaltung aufweist und
- wobei die integrierte Schaltung einen Prozessor aufweist und
- wobei die integrierte Schaltung einen nichtflüchtigen Speicher und
- wobei der nichtflüchtige Speicher mindestens einen Sicherheitscode speichert und
- wobei die integrierte Schaltung einen Hash-Rechner aufweist und
- wobei die integrierte Schaltung eine Schnittstelle an der Grenze der integrierten Schaltung aufweist und
- wobei die integrierte Schaltung einen Quantenzufallszahlengenerator nach einem der Merkmale 1 bis 9 aufweist und
- wobei die integrierte Schaltung und der Quantenzufallszahlengenerator in einem Halbleiterkristall gefertigt sind und
- wobei der Halbleiterkristall eine Oberfläche (56) aufweist und
- wobei der Halbleiterkristall ein halbleitendes Material unterhalb seiner Oberfläche (56) aufweist und
- wobei die Oberfläche (56) des Halbleiterkristalls einen Metallisierungsstapel aufweist und
- wobei der Metallisierungsstapel eine typischerweise strukturierte und optisch transparente und elektrisch isolierende Schicht (44) aufweist und
- wobei zumindest ein Teil dieser typischerweise strukturierten, transparenten und elektrisch isolierenden Schicht (44) der Oberfläche (46) den optischen Lichtwellenleiter (44) bildet und
- wobei die erste SPAD-Diode (54) aus dem halbleitenden Material des Halbleitersubstrats heraus Photonen (57) in diesen optischen Lichtwellenleiter (44) einstrahlt und
- wobei der zumindest eine Lichtwellenleiter (44) solche Photonen (58) zur zweiten SPAD-
Diode 55 transportiert und - wobei der optische Lichtwellenleiter (44) die zweite SPAD-Diode (55) so bestrahlt, dass das Licht (59) von innerhalb des Lichtwellenleiters (44) wieder in das halbleitende Material des Halbeleitersubstrats von der Oberfläche (56) aus eindringt und dort Vorrichtungsteile der zweiten SPAD-Diode (55) trifft und
- wobei die erste SPAD-Diode (54) und die zweite SPAD-Diode (55) und der Lichtwellenleiter (44) Teil des Quantenzufallszahlengenerators (28) sind.
- Merkmal 43:
Datenverarbeitungsgerät nach Anspruch 42, wobei der Prozessor und/oder ein anderer Vorrichtungsteil des Datenverarbeitungsgeräts Daten unter Zuhilfenahme zumindest einer Zufallszahl des Quantenzufallszahlengenerators verschlüsselt oder entschlüsselt. - Merkmal 44:
Datenverarbeitungsgerät nach Merkmal 42oder 43,- wobei das Datenverarbeitungsgerät einen Speicher aufweist und
- wobei der Speicher zum Speichern von Daten bei Verwendung durch den Prozessor dient und;
- wobei der Speicher mit dem Prozessor gekoppelt ist, um Wörter vom Prozessor zu empfangen und Wörter an den Prozessor zu liefern.
- Merkmal 45: Datenverarbeitungsgerät nach einem der Merkmale 42
bis 44,- wobei der Speicher extern von der integrierten Schaltung ist und
- wobei der Speicher über die Schnittstelle an der Grenze der integrierten Schaltung mit dem Prozessor gekoppelt ist, um Wörter vom Prozessor zu empfangen und Wörter an den Prozessor zu liefern.
Merkmal 46 Datenverarbeitungsgerät nach einem der Ansprüche 42bis 45,- wobei der Prozessor und der Hash-Rechner sind so angeordnet, dass sie
- - a) für jedes Wort eine Hash-Funktion in Abhängigkeit von einem in dem nichtflüchtigen Speicher gespeicherten Sicherheitscode berechnen und den Hash in Verbindung mit dem Wort speichern,
- - b) Abrufen gespeicherter Wörter aus dem Speicher, Neuberechnen einer Hash-Funktion für jedes abgerufene Wort unter Verwendung des Sicherheitscodes und Vergleichen des neu berechneten Hash-Wertes mit dem gespeicherten Hash-Wert, und
- - c) die Verarbeitung des abgerufenen Wortes durch die Datenverarbeitungsanlage nur dann zuzulassen, wenn die neu berechneten und gespeicherten Hashes eine vorher festgelegte Beziehung aufweisen.
- wobei der Prozessor und der Hash-Rechner sind so angeordnet, dass sie
- Merkmal 47: Eine Vorrichtung, die Folgendes umfasst:
- eine integrierte Schaltung, die ein Datenverarbeitungsmittel und ein nichtflüchtiges Speichermittel enthält, das mindestens einen Sicherheitscode speichert;
- ein erstes Mittel, das Daten speichert, wobei die Daten in einem ersten Format zumindest durch einen Authentifizierungscode kryptografisch geschützt sind; und
- einen Quantenzufallszahlengenerator (28) nach einem der Merkmale 1 bis 9 als Teil der integrierten Schaltung,
- wobei der Quantenzufallszahlengenerator eine Photonenquelle (54) und einen Photonendetektor (55) umfasst, die, insbesondere über einen Lichtwellenleiter (44), der insbesondere außerhalb des Halbleitersubstrats der integrierten Schaltung auf der Oberfläche der integrierten Schaltung gefertigt ist, miteinander gekoppelt sind oder gekoppelt werden können und
- wobei die Vorrichtung zumindest eine Zufallszahl des Quantenzufallszahlengenerators (28) für eine Verschlüsselung oder Entschlüsselung eines Datums oder des Authentifizierungscodes zumindest zeitweise nutzt.
Merkmal 48 EineVorrichtung nach Merkmal 47,- wobei die Vorrichtung eine zweite Einrichtung, insbesondere außerhalb des integrierten Schaltkreises, zur Speicherung von Daten aufweist und
- wobei die Vorrichtung Mittel zum Übertragen von Daten vom ersten Speicher über die integrierte Schaltung zum zweiten Speicher aufweist, damit der Prozessor vom zweiten Speicher aus darauf zugreifen kann, und
- wobei die Vorrichtung Mittel zur Validierung der aus dem ersten Speicher gelesenen Daten während der Übertragung unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes aufweist und
- wobei die Vorrichtung Mittel zum Anwenden eines kryptografischen Schutzes, der mindestens einen Authentifizierungscode umfasst, auf die validierten Daten in einem zweiten Format unter Verwendung eines in dem nichtflüchtigen Speicher gespeicherten Sicherheitscodes, wenn die Daten validiert werden, aufweist und
- wobei die Vorrichtung Mittel zum Speichern der geschützten Daten im zweiten Speicher im zweiten Format ausweist.
- Merkmal 49: Vorrichtung, insbesondere nach einem der Merkmale 23
bis 48,- wobei die Vorrichtung einen Quantenzufallszahlengenerator (28) nach einem der Merkmale 1 bis 9 umfasst und
- wobei der Quantenzufallszahlengenerator folgende Vorrichtungsteile umfasst:
- eine Photonenquelle (54)
- einen Photonendetektor (55),
- wobei der Photonendetektor (55) mit der Photonenquelle (55) optisch gekoppelt ist, einen optionalen Lichtwellenleiter (44), für diese optische Kopplung,
- einen optionalen Verstärker (404) und/oder Filter,
- einen Analog-zu-Digital-Wandler (403),
- einen optionalen Komparator (404.2),
- einen Zeit-zu-Pseudozufallszahlen-Wandler (404.3),
- eine Entropie-Extraktionsvorrichtung (404.4), die Ausgangswerte des Zeit-zu-Pseudozufallszahlen-Wandlers (403) in erste und zweite Werte wandelt und daraus Quantenzufallsbits 411 erzeugt.
- Merkmal 50:
Vorrichtung nach Merkmal 49, wobei die Vorrichtung einen Watchdog (404.5) umfasst, der Vorrichtungsteile des Quantenzufallszahlengenerators (28) überwacht. - Merkmal 51: Vorrichtung nach einem der Merkmale 49
bis 50, wobei die Vorrichtung einen Spannungsmonitor (413) aufweist, der analoge Werte analoger Signale des Quantenzufallszahlengenerators (28) und/oder für den Betrieb des Quantenzufallszahlengenerators (28) erfasst und überwacht. - Merkmal 52: Vorrichtung nach einem der Merkmale 49
bis 51, wobei die Vorrichtung einen weiteren Pseudozufallszahlengenerator (404.6), insbesondere in Form eines linear rückgekoppelten Schieberegisters (404.6), umfasst. - Merkmal 53: Vorrichtung nach einem der Merkmale 49
bis 52, wobei die Vorrichtung einen Signalmultiplexer (404.7) aufweist, der im Falle eines Fehlers von dem Signal des Ausgangs (411) der Entropie-Extraktionsvorrichtung auf ein Signal eines Ersatz-Zufallszahlengenerators oder eines Ersatzpseudozufallszahlengenerators (404.6) umschaltet. - Merkmal 54: Vorrichtung nach einem der Merkmale 49
bis 53, wobei der Startwert des zusätzlichen Pseudozufallszahlengenerators 404.6 im Fehlerfall von zuvor korrekt erzeugten Quantenzufallsbits 411 des Quantenzufallszahlengenerators (28) abhängt. - Merkmal 55: Verfahren zur Erzeugung eines Zufallsbits
- Erzeugen einer Pulsfolge mit zufälligen Abständen mittels einer Photonenquelle (54), insbesondere einer Silizium-LED (54) und/oder insbesondere einer ersten SPAD-Diode (54), und eines Photonendetektors (55), insbesondere einer zweiten SPAD-Dioden (55),
- Erzeugen (501) eines ersten Werts in Form einer ersten Pseudozufallszahl in Abhängigkeit von dem zeitlichen Abstand zwischen einem ersten Puls und einem zweiten Puls, der vom ersten Puls verschieden ist;
- Erzeugen (501) zweiten Werts in Form einer zweiten Pseudozufallszahl in Abhängigkeit des zeitlichen Abstands zwischen einem dritten Puls, der vom ersten Puls verschieden ist, und einem vierten Puls, der vom ersten Puls und vom zweiten Puls und vom dritten Puls verschieden ist.
- Vergleichen (502) des ersten Werts mit dem zweiten Wert und
- Ausgeben (503) eines ersten logischen Werts als ein Quantenzufallsbit (411), wenn der erste Wert größer als der zweite Wert ist, und
- Ausgeben (503) eines zweiten logischen Werts, der vom ersten logischen Wert verschieden ist, als das Zufallsbit, wenn der erste Wert kleiner als der zweite Wert ist.
- Merkmal 56: Verfahren (3700) zur Erzeugung einer Quantenzufallszahl QZ (418) mit m Quantenzufallsbits (411)
mit den Schritten;
- Erzeugung (3710) eines zufälligen Einzelphotonenstroms 57, 58, 59, 44 aus Einzelphotonen mittels einer oder mehrerer Photonenquellen, insbesondere einer oder mehrerer Silizium-LEDs (54) und/oder einer oder mehrerer erster SPAD-Dioden (54);
- Übertragung (3720) des zufälligen Einzelphotonenstroms (57, 58, 59, 44), insbesondere mittels eines vom Halbleitersubstrat (49, 48)
verschiedenen Lichtwellenleiters 44 und/oder des Halbleitersubstrats oder durch direkte Übertragung, an einen oder mehrere Photonendetektoren (55), insbesondere eine oder mehrere zweite SPAD-Dioden (55); - Wandlung (3730) des zufälligen Einzelphotonenstroms (57, 58, 59, 44) in ein Detektionssignal mittels der einen oder der mehreren Photonendetektoren (55);
- Aufbereiten (3740) des Detektionssignals in ein aufbereitetes Detektionssignal;
- Ermittlung (3760) einer ersten Pseudozufallszahl in Abhängigkeit von einem ersten zeitlichen Abstand zwischen einem ersten Puls und einem zweiten Puls eines ersten Paares aus zwei aufeinander folgenden, durch Kopplungen der Emissionen der Photonenquelle (54) und des Photonendetektors (55) entstandenen Pulse des aufbereiteten Detektionssignals und
- Ermittlung (3765) einer zweiten Pseudozufallszahl in Abhängigkeit von einem zweiten zeitlichen Abstand zwischen einem dritten Puls und einem vierten Puls eines zweiten Paares aus zwei aufeinander folgenden, durch Kopplungen der Emissionen der Photonenquelle (54) und des Photonendetektors (55) entstandenen Pulse des aufbereiteten Detektionssignals;
- Ermittlung (3770) des Bit-Werts eines Quantenzufallsbits (411) durch Vergleich des Werts des ersten Pseudozufallszahl und des Werts der zweiten Pseudozufallszahl;
- Sofern die Anzahl (3780) n der ermittelten Zufallsbits kleiner als die gewünschte Zahl m der Zufallsbits der zu erzeugenden Quantenzufallszahl QZ (418) ist, Wiederholung der vorstehenden Schritte (3710 bis 3770) und Beenden des Prozesses zur Erzeugung einer Quantenzufallszahl sofern die Anzahl (3780) n der ermittelten Zufallsbits größer oder gleich der gewünschten Zahl m der Zufallsbits der zu erzeugenden Quantenzufallszahl (418) QZ ist.
- Feature 1: Quantum process-based generator (28) for true random numbers (411, 418) (English: Quantum Random Number Generator: QRNG),
- - wherein the quantum process-based generator (28) for true random numbers (411, 418) (English: Quantum Random Number Generator: QRNG) has an entropy source (401) and
- - wherein the quantum process-based generator (28) for true random numbers (411, 418) (English: Quantum Random Number Generator: QRNG) evaluates a signal (405) of the entropy source (401) by means of a time-to-pseudo-random number converter (TPRC) (404.3) and generates one or more random bits (411).
- Feature 2: Quantum process-based generator (28) for true random numbers (411, 418) according to
feature 1,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) generates one or more random numbers (418) from several random bits (411) and makes them available or uses them.
- Feature 3: Quantum process-based generator (28) for true random numbers (411, 418) according to
1 or 2,feature - - wherein the behavior of the P of a time-to-pseudorandom number converter (TPRG) (404.3) depends on one or more quantum random bits (411) and/or one or more quantum random numbers (418).
- Feature 4: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 3,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) comprises a watchdog (404.5) which monitors the correct functioning of the quantum process-based generator (28) for true random numbers (411, 418).
- Feature 5: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 4,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) comprises a watchdog (404.5) which monitors the correct functioning of the quantum process-based generator (28) for true random numbers (411, 418) by measuring the randomness of the generated quantum random bits (411) in the form of a measured value and comparing it with a tolerance interval or a threshold value and concluding that there is an error in the event of a deviation.
- Feature 6: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 5,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) comprises a watchdog (404.5) which monitors the correct functioning of a time-to-pseudo-random number converter (TPRC) (404.3) and detects and/or signals an error in the event of deviations from an expected behavior.
- Feature 7: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 6,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) is manufactured in one piece as part of an integrated circuit (2) and
- - wherein the integrated circuit (2) comprises a voltage converter (91) for supplying the entropy source (401) of the quantum process-based generator (28) for true random numbers (411, 418) and
- - wherein the voltage converter (91) comprises one or more DMOS transistors.
- Feature 8: Quantum process-based generator (28) for true random numbers (411, 418) according to feature 7,
- - wherein the integrated circuit (2) is manufactured using a BCD technology.
- Feature 9: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 8,- - wherein the quantum process-based generator (28) for true random numbers (411, 418) is manufactured in one piece as part of an integrated circuit (2) and
- - wherein the integrated circuit (2) is one of the following circuits or comprises one of the following circuits:
- - A microcontroller,
- - a microprocessor,
- - a storage,
- - a DRAM,
- - a SRAM,
- - a RAM,
- - a volatile memory,
- - an OTP storage,
- - an EEPROM,
- - a flash memory,
- - an MRAM,
- - a FRAM,
- - a sensor evaluation circuit,
- - a control circuit for an automotive control circuit,
- - a graphics controller,
- - an evaluation circuit for a biometric sensor or an input device,
- - a control circuit,
- - a chip card circuit,
- - a circuit of a mobile phone or a smart phone,
- - a circuit of an access control system,
- - a circuit with a coded recording of operating parameters,
- - a circuit of an access control system,
- - a circuit of a security system of electronic fuses,
- - a radio system circuit,
- - a communication circuit,
- - a circuit of an encryption and/or decryption system,
- - a circuit of an individualization system
- - a circuit of a gaming device,
- - a circuit of a simulation system,
- - a circuit of a computer system,
- - a circuit of a noise source,
- - a circuit comprising a device for generating and/or using a spreading code.
- Feature 10: Quantum process-based generator (28) for true random numbers (411, 418) according to one of
features 1 to 9,- - wherein the entropy source (401) comprises a photon source (54) and
- - wherein the entropy source (401) comprises a photon detector (55) and
- - wherein the photon source (54) emits photons as a quantum signal when supplied with electrical energy and
- - wherein the photon source (54) is optically coupled to the photon detector (55) and
- - wherein the photon detector (55) at least partially receives the quantum signal of the photon source (54) and generates the output signal (405) of the entropy source (401) or a precursor signal thereof.
- Feature 11: Secure microcontroller for controlling devices, especially in automobiles
- - with a semiconductor crystal and
- - with storage elements and
- - with at least one internal bus (419) and
- - with at least one processor (10-1), in particular an 8/16/32/15-bit microcontroller core, and
- - with one or more data interfaces and
- - with at least one quantum process-based generator (28) for true random numbers (411, 418) (English: Quantum Random Number Generator: QRNG) according to one of the
features 1 to 9, and - - wherein the memory elements are connected to the internal bus (419) and
- - wherein the data interface is connected to the internal bus (419) and
- - wherein in particular the quantum process-based generator for true random numbers (QRNG) (28) can be connected to the internal bus (419) and
- - wherein the processor (10-1) is connected to the internal bus (419) and
- - wherein the quantum process-based true random number generator (QRNG) (28), in particular upon request of the processor (10-1), generates or provides a random number (418) and
- - wherein the processor (10-1) generates a key using a program from one or more of its memory elements and using the random number and
- - wherein the processor (10-1) uses a program from one or more of its memory elements and the key to encrypt and decrypt data which it exchanges via the data interface with devices outside the secure microcontroller, and
- - wherein the semiconductor crystal integrally comprises these sub-devices of the secure microcontroller,
- - wherein these sub-devices of the secure microcontroller comprise the memory elements, the internal bus (419), the at least one processor (10-1), the data interfaces and the quantum process-based generator for true random numbers (English: Quantum Random Number Generator: QRNG) (28),
- Feature 12: Secure microcontroller according to feature 11,
- - wherein the memory elements comprise one or more RAM read/write memories and/or one or more writable non-volatile memories, in particular EEPROM memories and/or flash memories and/or OTP memories, and/or one or more read-only memories and/or one or more non-volatile manufacturer memories, in particular one or more manufacturer ROMs and/or one or more manufacturer EEPROMs and/or one or more manufacturer flash memories.
- Feature 13: Secure microcontroller according to
feature 12,- - where the manufacturer ROM includes the boot software.
- Feature 14: Secure microcontroller according to feature 12 or 13,
- - wherein a manufacturer memory firewall is provided between the manufacturer memory and the internal bus (419).
- Feature 15: Secure microcontroller according to one or more of features 11 to 14
- - with one or more of the following components:
- - a clock generator (92) (among other things for the system clock 2106)
- - a reset circuit (83) and/or
- - one or more voltage converters (91) which provide the operating voltages, and/or
- - a ground circuit in the negative supply voltage line (GND), in particular to prevent attacks via ground offset, and/or
- - an input/output circuit and/or
- - one or more processing modules,
- - wherein the processing modules are arranged to communicate with the internal bus (419), and
- - wherein the processing modules comprise one or more of the following modules:
- - a CRC module (Cyclic Redundancy Check),
- - a clock generator module,
- - with a DES accelerator and/or an AES accelerator
- - one or more timer modules,
- - a safety monitoring and control circuit,
- - a data interface, in particular a Universal Asynchronous Receiver Transmitter (UART).
- - with one or more of the following components:
- Feature 16: Secure microcontroller 1according to one or more of features 11 to 15,
- - with at least one photon source (54), in particular a silicon LED (54) or a first SPAD diode (54), and
- - with at least one photon detector (54), in particular a second SPAD diode (55), and
- - with at least one processing circuit and
- - with at least one operating circuit,
- - wherein the quantum process-based true random number generator (QRNG) (28) comprises at least the photon source (54) as a light source for the optical quantum signal and
- - wherein the quantum process-based true random number generator (QRNG) (28) comprises at least the photon detector (55) as a photodetector for the optical quantum signal and
- - wherein the quantum process-based true random number generator (QRNG) (28) comprises at least the processing circuit and
- - wherein the at least one photon source (54) is optically coupled to the at least one photon detector (55) and
- - wherein the operating circuit supplies the photon source (54) with electrical energy such that the photon source (54) emits light and
- - wherein the processing circuit detects the signal of the photon detector (55) and forms the random number therefrom and makes it available to the processor (10-1).
- Feature 17: Secure microcontroller 11 according to
feature 16,- - with at least one optical waveguide (44),
- - wherein the quantum process-based true random number generator (QRNG) (28) comprises at least the optical fiber (44) and
- - wherein the at least one optical waveguide (44) optically couples the at least one photon source (54) to the at least one photon detector (55).
- Feature 18: Secure microcontroller according to feature 17
- - wherein the semiconductor crystal has a surface (56) and
- - wherein the semiconductor crystal has a semiconducting material beneath its surface (56) and
- - wherein the surface (56) of the semiconductor crystal has a metallization stack and
- - wherein the metallization stack comprises a typically structured and optically transparent and electrically insulating layer (44) and
- - wherein at least a part of this typically structured, transparent and electrically insulating layer (44) of the surface (56) forms the optical waveguide (44) and
- - wherein the photon source (54) radiates from the semiconducting material of the semiconductor substrate into this optical waveguide (44) and
- - wherein the optical waveguide (44) irradiates the photon detector (54) in such a way that the light from within the optical waveguide (44) penetrates back into the semiconducting material of the semiconductor substrate from the surface and there strikes device parts of the photon detector (55).
- Feature 19: Secure microcontroller according to feature 17 and/or 18,
- - wherein the at least one operating circuit supplies the at least one photon source (54) at least temporarily with electrical energy and
- - wherein the at least one photon source (54) feeds photons into the at least one optical waveguide (44) when supplied with sufficient electrical energy and
- - wherein the at least one optical waveguide (44) radiates such photons into the photon detector (55).
- Feature 20: Secure microcontroller according to one or more of the preceding features 11 to 19,
- - wherein a data interface of the one or more data interfaces is a wired automotive data bus interface and
- - the wired automotive data bus interface in particular
- - a CAN data bus interface and/or
- - a CAN-FD data bus interface and/or
- - a Flexray data bus interface and/or
- - a PSI5 data bus interface and/or
- - a DSI3 data bus interface and/or
- - a LIN data bus interface and/or
- - an Ethernet data bus interface and/or
- - a LIN data bus interface and/or
- - a MELIBUS data bus interface includes
- Feature 21: Secure microcontroller according to one or more of the preceding features 11 to 20,
- - wherein a data interface of the one or more data interfaces is a wireless data bus interface and
- - wherein the wireless data bus interface in particular
- - a WLAN interface and/or
- - a Bluetooth interface
- Feature 22: Secure microcontroller according to one or more of the preceding features 11 to 21,
- - wherein a data interface of the one or more data interfaces is a wired data bus interface and
- - wherein the wireless data bus interface in particular
- - a KNX data bus interface and/or
- - an EIB data bus interface and/or
- - a DALI data bus interface and/or
- - a PROFIBUS data bus interface
- Feature 23: A device
- wherein the device comprises an integrated circuit (4) with a first processor (10-1) and a non-volatile memory (16) and
- the device comprising a first memory,
- wherein the non-volatile memory stores at least one security code;
- where the first memory stores data and
- wherein the data in the first memory is cryptographically protected in a first format and
- wherein the integrated circuit is arranged to validate the data read from the first memory during a transfer of data from the first memory and,
- wherein the device comprises a quantum random number generator (28) according to one of
features 1 to 9 and - wherein the integrated circuit and the quantum random number generator (28) are manufactured in a semiconductor crystal and
- wherein the semiconductor crystal has a surface (56) and
- wherein the semiconductor crystal has a semiconducting material beneath its surface (56) and
- wherein the surface (56) of the semiconductor crystal has a metallization stack and
- wherein the metallization stack comprises a typically structured and optically transparent and electrically insulating layer (44) and
- wherein at least a part of this typically structured, transparent and electrically insulating layer (44) of the surface (56) forms the
optical waveguide 44 and - wherein the first SPAD diode (54) radiates photons (57) from the semiconducting material of the semiconductor substrate into this optical waveguide (44) and
- wherein the at least one optical waveguide (44) transports such photons (58) to the second SPAD diode (55) and
- wherein the optical waveguide (44) irradiates the second SPAD diode (55) such that the light (59) from within the optical waveguide (44) penetrates back into the semiconducting material of the semiconductor substrate from the surface (56) and there strikes device parts of the second SPAD diode (55) and
- wherein the first SPAD diode (54) and the second SPAD diode (55) and the optical waveguide (44) are part of the quantum random number generator (28).
- Feature 24: Device according to feature 23,
- wherein the device has at least one operating circuit and
- wherein the at least one operating circuit supplies the at least one first SPAD diode (54) at least temporarily with electrical energy and
- wherein the at least one first SPAD diode (54) feeds photons (57) into the at least one optical waveguide (44) when supplied with sufficient electrical energy and
- wherein the at least one optical waveguide (44) transports such photons (58) to the second SPAD diode (55) and
- wherein the at least one optical waveguide (44) radiates such photons (59) into the second SPAD diode (55).
- Feature 25: Device according to
feature 24,- wherein the quantum random number generator (28) comprises at least the first SPAD diode (54) as a light source for the optical quantum signal and
- wherein the quantum random number generator (28) comprises at least the second SPAD diode (55) as a photodetector for the optical quantum signal and
- wherein the quantum random number generator (28) comprises at least one processing circuit and
- wherein the quantum random number generator (28) comprises at least the optical waveguide (44) and
- wherein the at least one optical waveguide (44) optically couples the at least one first SPAD diode (54) to the at least one second SPAD diode (55) and
- wherein the operating circuit supplies the first SPAD diode (54) with electrical energy such that the first SPAD diode emits light (54) and
- wherein the processing circuit detects the signal of the second SPAD diode (55) and forms the random number therefrom and makes it available to the processor (10) or another part of the device.
- Feature 26: Device according to one of features 23 to 24,
- wherein the first memory is located inside or outside the integrated circuit and
- wherein the device comprises a second memory for storing data
- and wherein the second memory is located inside or outside the integrated circuit;
- the device being arranged so
- that it transfers data from the first memory via the integrated circuit to the second memory so that the processor can access it from the second memory, and
- wherein the integrated circuit is arranged
- during a transfer of data from the first memory to the second memory, to validate the data read from the first memory using a security code stored in the non-volatile memory and,
- if the data is validated, apply cryptographic protection in a second format to the validated data using a security code stored in the non-volatile memory, and
- to store the data protected in the second format in the second memory.
- Feature 27: Device according to one of features 23 to 26, wherein the first memory comprises a read-only memory.
- Feature 28: Apparatus according to any one of
features 26 to 27, wherein the second memory comprises a random access memory. - Feature 29: Apparatus according to any one of
features 26 to 28, wherein the cryptographic protection applied to the data in the first memory is different from the cryptographic protection applied to the data in the second memory. - Feature 30: Device according to one of features 23 to 29,
- wherein the integrated circuit includes a memory for storing data to be processed by the processor, and
- wherein the device is configured to store some data of the validated data set in memory and the rest in second memory.
- Feature 31: Apparatus according to any one of
features 26 to 30, wherein the first memory stores data in a first data format and the second memory is arranged to store data in a second, different data format. - Feature 32: Device according to feature 31,
- wherein the data stored in the first memory is protected by a first authentication technique and
- wherein the device is arranged to protect the data in the second memory by a second, different authentication technique.
- Feature 33: Device according to one of
features 26 to 32,- wherein the data in the first memory is stored in at least one data set and the or each data set is cryptographically protected as a set and
- wherein the device is arranged to store words or groups of words of a validated data set in the second memory, each word or group of words being separately cryptographically protected.
- Feature 34: Device according to feature 33, which is designed
- that it reads the words or groups of words from the second memory, and
- that it validates the words or groups of words read using a security code stored in the non-volatile memory and
- that it processes the read and validated words or groups of words in the processor.
- Feature 35: Device according to feature 34,
- wherein the integrated circuit comprises a hash calculator, and
- wherein the processor and the hash engine are arranged so that
- that a) for each word or group of words, calculate a hash function depending on a security code stored in the non-volatile memory and store the hash in association with the word or group in the second memory,
- b) retrieving a stored word or group from the second memory, recalculating a hash function for the retrieved word or group using the security code and comparing the recalculated hash with the stored hash, and
- (c) only allow the data processing system to process the retrieved word or group if the newly calculated and stored hashes are in a certain relationship to each other.
- Feature 36: The apparatus of feature 35, wherein the hash calculator is a circuit in the integrated circuit.
- Feature 37 The device of any one of features 23 to 36, wherein the non-volatile memory of the integrated circuit is a one-time programmable memory.
- Feature 38 Apparatus according to any one of features 23 to 37, wherein the or each data set stored in the first memory is cryptographically protected by a corresponding digital signature.
- Feature 39: Device according to one of features 23 to 38, wherein the or each data set stored in the first memory is cryptographically protected by a corresponding digital signature with the aid of at least one random number of the quantum random number generator.
- Feature 40: Device according to feature 38 or 39, wherein a security code is stored in the non-volatile memory of the integrated circuit, which the device has generated at least partially by means of at least one random number of the quantum random number generator (28).
- Feature 41: Apparatus according to any one of features 38 to 39, wherein the apparatus is arranged to validate a digital signature of the data set by reference to or by reference to the security code stored in the non-volatile memory of the integrated circuit.
- Feature 42: A data processing device,
- wherein the data processing device comprises an integrated circuit and
- wherein the integrated circuit comprises a processor and
- wherein the integrated circuit comprises a non-volatile memory and
- wherein the non-volatile memory stores at least one security code and
- wherein the integrated circuit comprises a hash calculator and
- wherein the integrated circuit has an interface at the boundary of the integrated circuit and
- wherein the integrated circuit comprises a quantum random number generator according to one of
features 1 to 9 and - wherein the integrated circuit and the quantum random number generator are manufactured in a semiconductor crystal and
- wherein the semiconductor crystal has a surface (56) and
- wherein the semiconductor crystal has a semiconducting material beneath its surface (56) and
- wherein the surface (56) of the semiconductor crystal has a metallization stack and
- wherein the metallization stack comprises a typically structured and optically transparent and electrically insulating layer (44) and
- wherein at least a part of said typically structured, transparent and electrically insulating layer (44) of the surface (46) forms the optical waveguide (44) and
- wherein the first SPAD diode (54) radiates photons (57) from the semiconducting material of the semiconductor substrate into this optical waveguide (44) and
- wherein the at least one optical waveguide (44) transports such photons (58) to the
second SPAD diode 55 and - wherein the optical waveguide (44) irradiates the second SPAD diode (55) such that the light (59) from within the optical waveguide (44) penetrates back into the semiconducting material of the semiconductor substrate from the surface (56) and there strikes device parts of the second SPAD diode (55) and
- wherein the first SPAD diode (54) and the second SPAD diode (55) and the optical waveguide (44) are part of the quantum random number generator (28).
- Feature 43: Data processing device according to
claim 42, wherein the processor and/or another device part of the data processing device encrypts or decrypts data with the aid of at least one random number of the quantum random number generator. - Feature 44: Data processing equipment according to feature 42 or 43,
- wherein the data processing device has a memory and
- wherein the memory is for storing data when used by the processor and;
- wherein the memory is coupled to the processor to receive words from the processor and to provide words to the processor.
- Feature 45: Data processing device according to one of
features 42 to 44,- where the memory is external to the integrated circuit and
- wherein the memory is coupled to the processor via the interface at the boundary of the integrated circuit for receiving words from the processor and providing words to the processor.
-
Feature 46 Data processing device according to one ofclaims 42 to 45,- where the processor and the hash computer are arranged so that they
- - a) calculate for each word a hash function depending on a security code stored in the non-volatile memory and store the hash in association with the word,
- - b) retrieving stored words from the memory, recalculating a hash function for each retrieved word using the security code and comparing the recalculated hash value with the stored hash value, and
- - c) to allow the processing of the retrieved word by the data processing system only if the newly calculated and stored hashes have a predetermined relationship.
- where the processor and the hash computer are arranged so that they
- Feature 47: A device comprising:
- an integrated circuit containing a data processing means and a non-volatile storage means storing at least one security code;
- a first means for storing data, the data being cryptographically protected in a first format by at least one authentication code; and
- a quantum random number generator (28) according to one of
features 1 to 9 as part of the integrated circuit, - wherein the quantum random number generator comprises a photon source (54) and a photon detector (55) which are or can be coupled to one another, in particular via an optical waveguide (44) which is manufactured in particular outside the semiconductor substrate of the integrated circuit on the surface of the integrated circuit, and
- wherein the device uses at least one random number of the quantum random number generator (28) for encrypting or decrypting a date or the authentication code at least temporarily.
- Feature 48 A device according to
feature 47,- wherein the device comprises a second device, in particular outside the integrated circuit, for storing data and
- the device comprising means for transferring data from the first memory via the integrated circuit to the second memory so that the processor can access it from the second memory, and
- the device comprising means for validating the data read from the first memory during transmission using a security code stored in the non-volatile memory and
- the device comprising means for applying cryptographic protection comprising at least one authentication code to the validated data in a second format using a security code stored in the non-volatile memory when the data is validated, and
- wherein the apparatus comprises means for storing the protected data in the second memory in the second format.
- Feature 49: Device, in particular according to one of features 23 to 48,
- wherein the device comprises a quantum random number generator (28) according to one of
features 1 to 9 and - wherein the quantum random number generator comprises the following device parts:
- a photon source (54)
- a photon detector (55),
- wherein the photon detector (55) is optically coupled to the photon source (55), an optional optical waveguide (44) for this optical coupling,
- an optional amplifier (404) and/or filter,
- an analog-to-digital converter (403),
- an optional comparator (404.2),
- a time-to-pseudo-random number converter (404.3),
- an entropy extraction device (404.4) which converts output values of the time-to-pseudo-random number converter (403) into first and second values and generates quantum
random bits 411 therefrom.
- wherein the device comprises a quantum random number generator (28) according to one of
- Feature 50: Device according to
feature 49, wherein the device comprises a watchdog (404.5) which monitors device parts of the quantum random number generator (28). - Feature 51: Device according to one of
features 49 to 50, wherein the device comprises a voltage monitor (413) which detects and monitors analog values of analog signals of the quantum random number generator (28) and/or for the operation of the quantum random number generator (28). - Feature 52: Device according to one of
features 49 to 51, wherein the device comprises a further pseudorandom number generator (404.6), in particular in the form of a linear feedback shift register (404.6). - Feature 53: Device according to one of
features 49 to 52, wherein the device comprises a signal multiplexer (404.7) which, in the event of an error, switches from the signal of the output (411) of the entropy extraction device to a signal of a replacement random number generator or a replacement pseudorandom number generator (404.6). - Feature 54: Device according to one of
features 49 to 53, wherein the starting value of the additional pseudorandom number generator 404.6 in the event of an error depends on previously correctly generated quantumrandom bits 411 of the quantum random number generator (28). - Feature 55: Method for generating a random bit
- Generating a pulse sequence with random intervals by means of a photon source (54), in particular a silicon LED (54) and/or in particular a first SPAD diode (54), and a photon detector (55), in particular a second SPAD diode (55),
- Generating (501) a first value in the form of a first pseudorandom number depending on the time interval between a first pulse and a second pulse which is different from the first pulse;
- Generating (501) a second value in the form of a second pseudorandom number depending on the time interval between a third pulse, which is different from the first pulse, and a fourth pulse, which is different from the first pulse and the second pulse and the third pulse.
- Comparing (502) the first value with the second value and
- Outputting (503) a first logical value as a quantum random bit (411) if the first value is greater than the second value, and
- Outputting (503) a second logical value, different from the first logical value, as the random bit if the first value is less than the second value.
- Feature 56: Method (3700) for generating a quantum random number QZ (418) with m quantum random bits (411) with the steps;
- Generation (3710) of a random
57, 58, 59, 44 from single photons by means of one or more photon sources, in particular one or more silicon LEDs (54) and/or one or more first SPAD diodes (54);single photon stream - Transmission (3720) of the random single photon stream (57, 58, 59, 44), in particular by means of an
optical waveguide 44 different from the semiconductor substrate (49, 48) and/or the semiconductor substrate or by direct transmission, to one or more photon detectors (55), in particular one or more second SPAD diodes (55); - Converting (3730) the random single photon stream (57, 58, 59, 44) into a detection signal by means of the one or more photon detectors (55);
- conditioning (3740) the detection signal into a conditioned detection signal;
- Determining (3760) a first pseudorandom number as a function of a first time interval between a first pulse and a second pulse of a first pair of two successive pulses of the processed detection signal produced by coupling the emissions of the photon source (54) and the photon detector (55) and
- Determining (3765) a second pseudorandom number as a function of a second time interval between a third pulse and a fourth pulse of a second pair of two successive pulses of the conditioned detection signal produced by coupling the emissions of the photon source (54) and the photon detector (55);
- Determining (3770) the bit value of a quantum random bit (411) by comparing the value of the first pseudorandom number and the value of the second pseudorandom number;
- If the number (3780) n of the random bits determined is less than the desired number m of the random bits of the quantum random number QZ (418) to be generated, repeat the above steps (3710 to 3770) and terminate the process for generating a quantum random number if the number (3780) n of the random bits determined is greater than or equal to the desired number m of the random bits of the quantum random number (418) QZ to be generated.
- Generation (3710) of a random
VorteilAdvantage
Der hier vorgestellte monolithisch integrierbare Quantenzufallszahlengenerator 28 ist besonders robust gegen Angriffe von außen. Selbst bei einem erfolgreichen Angriff auf die Entropiequelle 401 werden die Quantenzufallszahlen 411 nicht so beeinflusst, dass der Angreifer eine Verschlüsselung ohne erheblichen Mehraufwand brechen kann. Der hier vorgestellte sichere Mikrocontroller weist somit eine verbesserte Entropie seines Zufallszahlengenerators auf. Dadurch ist die Verschlüsselung dieses sicheren Mikrocontrollers im Gegensatz zum Stand der Technik post quantum sicher. Die Vorteile sind hierauf aber nicht beschränkt.The monolithically integrable quantum
Liste der FigurenList of characters
Die vorgenannten Ziele sowie die nachstehend beschriebenen Vorteile werden in der Beschreibung einer bevorzugten Ausführungsform der Erfindung hervorgehoben, die als nicht einschränkendes Beispiel unter Bezugnahme auf die beigefügten Zeichnungen dargestellt wird, in denen:
-
1 zeigt ein schematisches Blockdiagramm eines Datenverarbeitungsgeräts in Kombination mit einem kontrollierten System; -
2 zeigt ein schematisches Blockdiagramm einer Schaltung zum Deaktivieren einer Testschnittstelle derVorrichtung von 1 ; -
3 zeigt ein Diagramm, das die Überprüfung digitaler Signaturen veranschaulicht; -
4 zeigt ein Flussdiagramm, das die Verwendung von HASH-Funktionen beim Speichern und Abrufen von Daten aus einem DRAM derVorrichtung von 1 veranschaulicht. -
5 zeigt eine vorschlagsgemäße SPAD-Diode im Querschnitt. -
6 zeigt die Kombination zweier vorschlagsgemäßer SPAD-Dioden im Querschnitt. -
7 zeigt die Kombination zweier vorschlagsgemäßer SPAD-Dioden im Querschnitt, wobei nun mehrereIsolationslagen den Lichtwellenleiter 44 ausbilden. -
8 zeigt die Einbindung der SPAD-Dioden und des Lichtwellenleiters in eine Auswerte- und Betriebsschaltung -
9 entsprichtder 8 , die nun um Überwachungsschaltkreise ergänzt ist. -
10 zeigt ein typisches Ausgangssignal der zweiten SPAD-Diode. -
11 zeigt ein beispielhaftes Oszillogramm desSpannungssignals 404der Entropie Quelle 401. -
12 zeigt den schematischen Ablauf einer Server-Client-Kommunikation unter Nutzung eines vorschlaggemäßen Quantenzufallszahlengenerators. -
13 zeigt den schematischen Ablauf der Funktionen KeyExchangeServer() und KeyExchangeClient(). -
14 zeigt schematischen Ablauf der Funktion setPrimes(). -
15 zeigt den schematischen Ablauf der Funktion setE() 3400. -
16 zeigt den schematischen Ablauf der Funktion findD(). -
17 zeigt den schematischen Ablauf einer sicheren Übertragung von quantenbasierten Zufallszahlen zwischen einem ersten Prozessor 10-1 des Rechners, insbesondere in Form einer vorschlagsgemäßen integrierten Schaltung 2,eines Servers 3600 und einem ersten Prozessor 10-1 des Rechners, insbesondere in Form einer weiteren vorschlagsgemäßen integrierten Schaltung 2,eines Client 3610. -
18 zeigt schematischdas vorschlagsgemäße Verfahren 3700 zur Erzeugung einer Quantenzufallszahl. -
19 zeigt einen weiteren beispielhaften Vorschlag für einen einstückigen, monolithisch integrierten Schaltkreis 2. -
20 zeigt eine Vorrichtung ähnlich der Vorrichtung der8 und9 . -
21 zeigt ein Beispiel für einen Zeit-zu-Pseudozufallszahl-Wandler 404.3. -
22 zeigt ein Diagramm, dass die Erfassung der Pulse (2201, 2202, 2203, 2204) aufdem Spannungssignal 405der Entropie Quelle 401 darstellt. -
23 zeigt einen beispielhaften Spannungswandler 91 zur Versorgung derEntropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial.
-
1 shows a schematic block diagram of a data processing device in combination with a controlled system; -
2 shows a schematic block diagram of a circuit for deactivating a test interface of the device of1 ; -
3 shows a diagram illustrating the verification of digital signatures; -
4 shows a flowchart illustrating the use of HASH functions in storing and retrieving data from a DRAM of the device of1 illustrated. -
5 shows a proposed SPAD diode in cross section. -
6 shows the combination of two proposed SPAD diodes in cross section. -
7 shows the combination of two proposed SPAD diodes in cross section, whereby several insulation layers now form theoptical waveguide 44. -
8th shows the integration of the SPAD diodes and the optical fiber into an evaluation and operating circuit -
9 equals to8th , which is now supplemented by monitoring circuits. -
10 shows a typical output signal of the second SPAD diode. -
11 shows an example oscillogram of thevoltage signal 404 of theentropy source 401. -
12 shows the schematic flow of a server-client communication using a proposed quantum random number generator. -
13 shows the schematic flow of the functions KeyExchangeServer() and KeyExchangeClient(). -
14 shows schematic flow of the function setPrimes(). -
15 shows the schematic flow of the function setE() 3400. -
16 shows the schematic flow of the findD() function. -
17 shows the schematic sequence of a secure transmission of quantum-based random numbers between a first processor 10-1 of the computer, in particular in the form of a proposedintegrated circuit 2, aserver 3600 and a first processor 10-1 of the computer, in particular in the form of another proposed integratedcircuit 2, aclient 3610. -
18 shows schematically the proposedmethod 3700 for generating a quantum random number. -
19 shows another exemplary proposal for a one-piece, monolithicintegrated circuit 2. -
20 shows a device similar to the device of the8th and9 . -
21 shows an example of a time-to-pseudorandom number converter 404.3. -
22 shows a diagram that represents the detection of the pulses (2201, 2202, 2203, 2204) on thevoltage signal 405 of theentropy source 401. -
23 shows anexemplary voltage converter 91 for supplying theentropy source 411 with a sufficient operating voltage of the supply voltage line V ENT of theentropy source 411 relative to the reference potential line GND at the reference potential.
Beschreibung der FigurenDescription of the characters
Die Figuren zeigen beispielhaft vereinfacht wesentliche Teile der vorgeschlagenen Vorrichtungen und der Verfahren. Zur Veranschaulichung werden nun bestimmte Beispiele, die gemäß den Lehren dieser Offenbarung konstruiert wurden, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen.The figures show, by way of example and in simplified form, essential parts of the proposed devices and methods. For purposes of illustration, specific examples constructed in accordance with the teachings of this disclosure will now be described with reference to the accompanying drawings in which:
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGEN DER ERFINDUNGDETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
In diesem Beispiel ist das Datenverarbeitungsgerät ein Rechner in Form einer monolithischen, mikrointegrierten Schaltung 2, beispielsweise des Mikrocontrollers, zur Steuerung einer Regelstrecke 26.In this example, the data processing device is a computer in the form of a monolithic,
Die folgende Beschreibung beschreibt zunächst die Konfiguration eines beispielhaften Mikrocontrollers als Beispiel einer monolithischen, mikrointegrierten Schaltung 2 mit einem vorschlagsgemäßen Quantenzufallszahlengenerator 28 und den beispielhaften Inhalt seiner verschiedenen Speicher, wie er nach der Herstellung verwendet werden würde.The following description first describes the configuration of an exemplary microcontroller as an example of a monolithic
Der Rechner in Form der monolithischen, mikrointegrierten Schaltung 2, beispielsweise des Mikrocontrollers, ist über einen Anschluss 3 mit einer gesteuerten Anlage 26 verbunden. Bei dem gesteuerten System kann es sich zum Beispiel um ein Sicherungsbandlaufwerk handeln. Bei einem Backup-Bandlaufwerk ist es wichtig, dass die Integrität der gesicherten Daten erhalten bleibt. Es ist daher wichtig, dass die Integrität der vom Rechner in Form der monolithischen, mikrointegrierten Schaltung 2, beispielsweise des Mikrocontrollers, verwendeten Daten und Programme gewahrt bleibt.The computer in the form of the monolithic,
Figur 1Figure 1
Der Rechner in Form der monolithischen, mikrointegrierten Schaltung 2, beispielsweise des Mikrocontrollers, umfasst in dem Beispiel der
Das hier vorgelegte Dokument sieht den verwendeten Begriff „Microcontroller“ hier also nur beispielhaft. Der Fachmann liest die Verwendung eines Quantenzufallszahlengenerators 28 mit einem Zeit-zu-Pseudozufallszahlen-Wandler 404.3, wie er hier vorgeschlagen wird, in einer monolithischen Ko-Integration mit üblichen mikrointegrierten Schaltkreisen gleich mit, wenn von „integriertem Schaltkreis 2 des Mikrokontrollers“ die Rede ist, und beschränkt die technische Lehre dieses Dokuments ausdrücklich nicht auf die Ko-Integration des vorschlagsgemäßen Quantenzufallszahlengenerators 28 mit einem Mikrocontroller.The document presented here therefore sees the term "microcontroller" used here only as an example. The person skilled in the art immediately reads the use of a quantum
Solche anderen üblichen integrierten Schaltkreise 2 können beispielsweise umfassen:
- - Mikrokontroller, Mikroprozessoren, Speicher, DRAMs, SRAMs, RAMs, flüchtige Speicher, OTP-Speicher, EEPROMs, Flash-Speicher, MRAMs, FRAM" Bus-Transceiver, Sensor-Auswerteschaltkreise, Motortreiber-Schaltkreise, Steuerschaltkreise für eine automobile Steuerschaltungen, Grafik-Controller, Kommunikationsschaltkreise, Auswerteschaltkreise für einen biometrischen Sensoren, Auswerteschaltkreise für Eingabegeräte, Steuerschaltungen, Chip-Karten-Schaltkreise, Schaltkreise für Mobiltelefone oder eines Smart-Phones, Schaltkreise für Server. Schaltkreise für PCs, Schaltkreise für Laptops, Schaltkreise für Zugangs- und/oder Zugriffskontrollsysteme, Schaltkreise für die kodierte Aufzeichnung von Betriebsparametern, Schaltkreise elektronischer Sicherungen, Funksystemschaltkreise, Kommunikationsschaltkreise, Schaltkreise von Verschlüsselungs- und/oder Entschlüsselungssystemen, Schaltkreise für Individualisierungs- und Identifikationszwecke und/oder Identifikationssysteme und/oder Identifikationssysteme, Schaltkreise von Spielvorrichtungen, Schalkreise von Simulationssysteme, Schaltkreise von Rechnersystemen, Schaltkreise von Rausch und/oder Signalquellen, Schaltkreise von Modulationssystemen und/oder -vorrichtungen, Schaltkreise mit einer Vorrichtung zur Erzeugung und/oder Nutzung von Spreizkodes. Diese vorstehende Liste ist sicherlich unvollständig.
- - Microcontrollers, microprocessors, memories, DRAMs, SRAMs, RAMs, volatile memories, OTP memories, EEPROMs, flash memories, MRAMs, FRAM" bus transceivers, sensor evaluation circuits, motor driver circuits, control circuits for automotive control circuits, graphics controllers, communication circuits, evaluation circuits for biometric sensors, evaluation circuits for input devices, control circuits, chip card circuits, circuits for mobile phones or smart phones, circuits for servers, circuits for PCs, circuits for laptops, circuits for access and/or access control systems, circuits for coded recording of operating parameters, electronic security circuits, radio system circuits, communication circuits, encryption and/or decryption system circuits, individualisation and identification circuits and/or identification systems, gaming device circuits, simulation system circuits, computer system circuits, noise and/or signal source circuits, modulation system and/or device circuits, circuits with a device for generating and/or using spreading codes. The above list is certainly not exhaustive.
Der Speicher mit wahlfreiem Zugriff 8 kann ein beliebiger geeigneter Speicher sein, z. B. ein SRAM, aber in diesem Fall ist es ein DRAM. Der nichtflüchtige Speicher 6 und der Speicher mit wahlfreiem Zugriff 8 befinden sich in dem Beispiel der
Der mikrointegrierte Schaltkreis 2 mit der beispielhaften Steuervorrichtung 4 ist bevorzugt eine monolithisch integrierte Schaltung, die beispielsweise Folgendes umfasst: einen oder mehrere Prozessoren 10-1, 10-2; einen eng gekoppelten Speicher 14, bei dem es sich beispielsweise um einen SRAM handeln kann; einen nicht flüchtigen Boot-ROM 16, der einen vorzugsweise nicht veränderbaren Code enthält; eine beispielsweise vorhandene Hashing-Engine 18; einen oder mehrere One-Time-Programmable-Speicher (OTP) 20 und 22; eine JTAG-Testschnittstelle 12; eine Schnittstelle 32; interne Schnittstellen 63, 81 und 301, die mit den Speichern 6, 8 und 30 gekoppelt sind; einen Quantenzufallszahlengenerator 28, den die hier vorgelegte Schrift auch als QRNG (Englische Abkürzung für Quantum Random Number Generator) bezeichnet; und eine fest verdrahtete Schaltung zur Deaktivierung von Tests 24. Die OTP-Speicher 20 und 22 können separate Speicher oder Teile eines Speichers innerhalb der beispielhaften integrierten Schaltung 2 sein. In diesem Beispiel handelt es sich um Abschnitte eines einzigen Speichers. Die Testdeaktivierungsschaltung 24 befindet sich bevorzugt zwischen dem Testanschluss 12, der in diesem Beispiel ein JTAG-Anschluss ist, und dem/den Prozessor(en) 10. Die vorzugsweise vorhandene Deaktivierungsschaltung 24 reagiert auf die Daten im OTP-Speicherabschnitt 22. Die optionale Hashing-Engine 18 verwendet Daten (einen oder mehrere Schlüssel) im OTP-Speicherabschnitt 20. Der OTP-Speicherabschnitt 20 speichert bevorzugt kritische Sicherheitsparameter (CSPs) einschließlich eines geheimen Schlüssels und mindestens eines öffentlichen Schlüssels. Weitere Schlüssel können im OTP-Speicherabschnitt 20 abgelegt werden. Der geheime Schlüssel ist in einer Ausführungsform des Vorschlags dieser Beispielanwendung eines Quantenzufallszahlengenerators 28 für jede Instanz der hier vorgeschlagenen beispielhaften mikrointegrierten Schaltung 2 bevorzugt eindeutig.The
Der (die) Prozessor(en) 10 führt (führen) Befehle vorzugsweise nur aus dem eng gekoppelten Speicher 14 und aus dem DRAM 8 in dem hier vorgestellten Beispiel der
Der Inhalt des DRAM 8 und des EEPROM 6 ist durch Authentifizierungscodes vorzugsweise kryptographisch geschützt. In diesem Beispiel sind die im DRAM 8 verwendeten Authentifizierungscodes vorzugsweise von einem anderen Typ als die im EEPROM 6 verwendeten Authentifizierungscodes. In diesem Beispiel wird der Inhalt des EEPROM 6 zumindest durch die Verwendung digitaler Signaturen vor unentdeckter böswilliger Veränderung geschützt. Auch das Format der Daten im EEPROM 6 unterscheidet sich vorzugsweise von dem im DRAM 8.The contents of the
Der EEPROM 6 speichert beispielsweise bevorzugt die Firmware, die in einem oder mehreren Datensätzen 61 mit jeweils einer digitalen Signatur 62 angeordnet ist. Die in diesem Beispiel des Vorschlags verwendeten digitalen Signaturen verwenden öffentliche und private Schlüssel. Daher werden die Einzelheiten der digitalen Signaturen nicht weiter beschrieben, da sie dem Fachmann bekannt sind. Wenn ein Prozessor (10-1, 10-2) einen Datensatz aus dem EEPROM 6 liest, wird prüft der Prozessor 10 seine digitale Signatur. Wenn die digitale Signatur gültig ist, wird der Datensatz von dem (den) Prozessor(en) 10 mittels computerimplementierter Verfahren der Firmware verarbeitet. Der (die) Prozessor(en) 10 führt (führen) somit bevorzugt nur gültig signierte Firmware aus. Für die Signierung verwenden die Prozessoren 10 vorzugsweise Schlüsse und Authentifizierungscodes die von Quantenzufallszahlen 418 eines oder mehrerer Quantenzufallszahlengeneratoren 28 abhängen.For example, the
Wie in
Ein aus dem EEPROM 6 gelesener Datensatz kann zu viel Code/Daten der Firmware enthalten, als dass der kleine, eng gekoppelte Speicher TCM 14 der Steuervorrichtung 4 innerhalb des mikroelektronischen Schaltkreises 2 speichern könnte. Das TCM 14 speichert vorzugsweise Firmware-Code/Daten, die von dem/den Prozessor(en) 10 unmittelbar benötigt werden. Der Rest des Firmware-Datensatzes wird in den DRAM 8 übertragen. Da der DRAM 8 außerhalb der kryptografischen Grenze 4 liegt, sind die dort gespeicherten Codes/Daten durch Authentifizierungscodes kryptografisch geschützt, die der Prozessor 10 vorzugsweise unter Verwendung von Quantenzufallszahlen des Quantenzufallszahlengenerators 28 erzeugt hat.A record read from the
Figur 3Figure 3
Wie in
Wenn die Hash-Werte eine vorbestimmte Beziehung, die in Schritt S34 geprüft wird, haben, z. B. gleich sind, verarbeite in einem Schritt S38 der Prozessor 10 die gelesenen Daten. Wenn die Hash-Werte nicht die vorgegebene Beziehung aufweisen, wird unterbricht der Prozessor 10 die Verarbeitung in Schritt S36 und/oder der Prozessor 10 erzeugt eine Fehlermeldung und/oder der Prozessor 10 ignoriert die Daten/den Code.If the hash values have a predetermined relationship, which is checked in step S34, e.g. are equal, the processor 10 processes the read data in a step S38. If the hash values do not have the predetermined relationship, the processor 10 interrupts the processing in step S36 and/or the processor 10 generates an error message and/or the processor 10 ignores the data/code.
Die Speicherung von Wörtern im DRAM 8 mit entsprechenden Authentifizierungscodes, die vorzugsweise auf Quantenzufallszahlen des Quantenzufallszahlengenerators 28 beruhen, erleichtert den zufälligen Zugriff auf die Wörter durch den/die Prozessor(en) 10.Storing words in the
Die Hash-Funktion kann jede geeignete Hash-Funktion sein. Ein Beispiel ist die bekannte HMAC-Funktion. In diesem Beispiel verwendet die HASH-Funktion den im OTP-Speicher 20 gespeicherten geheimen Schlüssel. Sie könnte auch einen anderen im OTP-Speicher gespeicherten Schlüssel verwenden. Bevorzugt basiert der geheime Schlüssel auf einer Quantenzufallszahl des Quantenzufallszahlengenerators 28. Ein Beispiel für den Hash-Wert ist HMAC (address | | data | | secret key), wobei die Zeichenfolge „| |“ hier für die Verkettung steht. Der HASH-Wert hat unter Berücksichtigung der Anzahl der Bytes, die das DRAM 8 speichern kann, umfasst bevorzugt mindestens so viele Bits, dass eine Duplizierung von HASH-Werten im DRAM 8 vermieden oder zumindest verringert wird. Die Anzahl der Bits des HASH-Wertes beträgt vorzugsweise mindestens 96 Bits und kann auch wesentlich größer sein. Der Industriestandard liegt bei 160 Bits, was die Wahrscheinlichkeit der Duplizierung von HASH-Werten auf ein ausreichend niedriges Niveau reduziert.The hash function can be any suitable hash function. An example is the well-known HMAC function. In this example, the HASH function uses the secret key stored in the
Durch die Bereitstellung der kryptografischen Grenze 4 und den Schutz der im DRAM 8 und EEPROM 6 gespeicherten Daten wird der integrierte Schaltkreis 2, insbesondere der des Mikrocontrollers, vor unbefugtem Zugriff auf die von dem/den Prozessor(en) 10 des Rechners im Normalbetrieb verwendeten Programme und Daten geschützt. Dies ist im Automobilbereich von besonderer Bedeutung, um Plagiate und nicht zugelassene Ersatzteile zu verhindern, die in der Regel eine Kenntnis der Firmware der illegal kopierten Ersatzteile erfordern. Die JTAG-Testschnittstelle 12 könnte jedoch den Zugriff auf den/die Prozessor(en) 10 in einem Testmodus mit bekannten EMULATE- und TRACE-Routinen ermöglichen und immer noch illegale Programmänderungen erlauben. Der JTAG-Testanschluss 12 wird zumindest während des Herstellungsprozesses des integrierten Schaltkreises 2, beispielsweise desjenigen eines Mikrocontrollers, für Tests benötigt und kann zur Fehlerdiagnose nach der Herstellung verwendet werden. Eine solche Analysefähigkeit eines integrierten automobilen Schaltkreises 2, beispielsweise eines automobilen Mikrocontrollers, ist eine unabdingbare Voraussetzung um die Qualitätsanforderungen der T16491 zu erfüllen.By providing the
Um eine unbefugte und insbesondere illegale Benutzung der JTAG-Schnittstelle 12 zu verhindern, kann der OTP-Speicher 22 beispielsweise mindestens ein Sicherheitsbit umfassen, das zusammen mit der Sperrschaltung 24 die JTAG-Schnittstelle 12 sperrt.In order to prevent unauthorized and in particular illegal use of the
In einem Beispiel enthält der OTP-Speicher 22 nur ein Bit. Der OTP-Speicher 22 erlaubt es, ein Bit nur einmal von einem Zustand, z. B. „0“, in den entgegengesetzten Zustand „1“ zu ändern. Während der Herstellung des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, ist das Bit beispielsweise „0“, was Tests ermöglicht. In einem letzten Testschritt setzt der Hersteller des beispielhaften integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, das Bit auf „1“ gesetzt, bevor er den integrierten Schaltkreis 2, beispielsweise des Mikrocontrollers, für die Lieferung und den Gebrauch freigibt. Der JTAG-Anschluss 12 hat typischerweise einen seriellen Eingang und einen seriellen Ausgang (siehe
In einem anderen Beispiel hat der OTP-Speicher 22 einen Zwei-Bit-Sicherheitscode, der zunächst „00“ ist. Dies ermöglicht eine Prüfung während der Herstellung, nach der der Code auf „01“ gesetzt wird, d. h. eines der beiden Bits wird auf „1“ gesetzt. Dieser Code „01“ sperrt die Gatter 241 und 242. Tritt ein Fehler auf, wird der integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, an seinen Hersteller zurückgeschickt, der das andere Bit auf „1“ setzt, was den Code „11“ ergibt, der eine Prüfung über den Anschluss 12 ermöglicht. Eine solche Prüfung ist vorzugsweise zerstörerisch, da sie kein Rücksetzen auf den ursprünglichen Wert erlaubt. Der Zugriff auf den OTP-Speicher 22 zur Änderung des Sicherheitscodes kann durch einen geeigneten, vorzugsweise mittels eines Quantenzufallszahlengenerators 28 erzeugten Zugriffscode erfolgen, der mit einer digitalen Signatur versehen ist, die durch einen im OTP-Speicher 20 gespeicherten Quantenzufallszahlenbasierenden Schlüssel verifiziert werden kann. Der Schlüssel kann beispielsweise der im Speicher 20 gespeicherte öffentliche Standardschlüssel sein. Dadurch kann der Sicherheitscode in „11“ geändert werden, was eine Prüfung über die JTAG-Schnittstelle 12 ermöglicht. Der ursprüngliche integrierte Schaltkreis 2, beispielsweise der Mikrocontroller, wird vom Hersteller vorzugsweise einbehalten und vorzugsweise vernichtet und der Benutzer erhält einen neuen integrierten Schaltkreis 2, beispielsweise einen Mikrocontroller.In another example, the
In einem weiteren Beispiel kann der Sicherheitscode aus drei oder mehr Bits bestehen, die sich bei Verwendung des signierten Zugriffscodes ändern. Bei der Herstellung ist der Code „000“ und bei der Freigabe an einen Benutzer „001“. Tritt ein Fehler auf, wird der Code vom Hersteller in „011“ geändert, um einen Test zu ermöglichen. Nach dem Testen wird der Code in „111“ geändert, wodurch die JTAG-Schnittstelle 12 gegen Benutzung gesichert wird und der integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, an den Benutzer zurückgegeben werden kann. Nur ein signierter Zugangscode, der mit einer digitalen Signatur versehen ist, die durch einen Schlüssel im OTP-Speicher 20 verifiziert wird, kann zur Änderung des im OTP-Speicher 22 gespeicherten Codes verwendet werden.In another example, the security code may consist of three or more bits that change when the signed access code is used. When manufactured, the code is “000” and when released to a user, it is “001”. If an error occurs, the manufacturer changes the code to “011” to provide a testing. After testing, the code is changed to "111", thereby securing the
Sicherheitscodes von zwei oder mehr Bits ermöglichen einen Prüfpfad für die Prüfung (oder etwaige unbefugte Prüfversuche) nach der Herstellung.Security codes of two or more bits provide an audit trail for testing (or any unauthorized testing attempts) after manufacturing.
Weitere Schnittstelle und weiteres EEPROMAdditional interface and additional EEPROM
Wie in
Der integrierte Schaltkreis 2, beispielsweise der Mikrocontroller, kann zusätzlich über einen weiteren nichtflüchtigen Speicher 30 außerhalb der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise eines Mikrocontrollers, verfügen, der Daten speichert, die durch einen im OTP-Speicher 20 gespeicherten Sicherheitsparameter kryptografisch geschützt sind. Der weitere nichtflüchtige Speicher 30 ist über die interne Schnittstelle 301 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, mit der Steuervorrichtung 4 gekoppelt.The
Der weitere nichtflüchtige Speicher 30 kann beispielsweise ein EEPROM sein. Der weitere Speicher 30 kann weitere kritische Sicherheitsparameter außerhalb des Steuervorrichtung 4 speichern. Die weiteren Parameter sind vorzugsweise verschlüsselt und mit digitalen Signaturen versehen, um sie sicher zu machen. Die weiteren Parameter werden vorzugsweise mit dem geheimen Schlüssel verschlüsselt, der nur für den Steuervorrichtung 4 gilt und im OTP-Speicher 20 gespeichert ist. Vorzugsweise beruht der geheime Schlüssel auf einer Quantenzufallszahl eines Quantenzufallszahlengenerators 28. Die digitalen Signaturen der weiteren Parameter werden unter Verwendung des im OTP-Speicher 20 gespeicherten eindeutigen geheimen Schlüssels erstellt. Dieser geheime Schlüssel wird zur Entschlüsselung der weiteren Sicherheitsparameter und zur Überprüfung der aus dem weiteren Speicher 30 ausgelesenen digitalen Signaturen verwendet.The further
Der weitere nichtflüchtige Speicher 30 kann andere verschlüsselte und/oder digital signierte Daten enthalten.The additional
Die weiteren Sicherheitsparameter außerhalb der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, können verwendet werden, um die über die Schnittstelle(n) 32 übermittelten Daten und Codes zu sichern.The additional security parameters outside the
Herstellung des integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers.Manufacturing of the
Während der Herstellung des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, wird der Boot-Code im Boot-ROM 16 bevorzugt fest kodiert; das Ladeprogramm und andere Codes/Daten werden im EEPROM 6 mit digitalen Signaturen auf der Grundlage der öffentlichen und privaten Schlüssel, die vorzugsweise mittels Quantenzufallszahlen eines Quantenzufallszahlengenerators 28 erzeugt wurden, gespeichert; und vorzugsweise wird mindestens ein öffentlicher Schlüssel wird mittels einer Quantenzufallszahl eines Quantenzufallszahlengenerators erzeugt und im OTP-Speicher 20 gespeichert.During manufacture of the
Der geheime Schlüssel wird vorzugsweise erst dann im OTP 20 gespeichert, wenn der Sicherheitscode, der vorzugsweise auf einer Quantenzufallszahl eines Quantenzufallszahlengenerators 28 beruht, m OTP 22 eingestellt ist und der Testanschluss der beispielhaften JTAG-Schnittstelle 12 gesperrt wurde. Die Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, enthält in dem hier vorgestellten Beispiel den notwendigen Quantenzufallszahlengenerator QRNG 28. Die im eng gekoppelten Speicher 14 oder im DRAM 8 gespeicherte Firmware liest eine oder mehrere Quantenzufallszahlen von z. B. 256 Bit aus dem Quantenzufallszahlengenerator 28 und speichert sie im OTP 20 als geheimen Schlüssel, ohne dass diese Daten die Steuervorrichtung 4 vorzugsweise innerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, verlassen. Dies geschieht vorzugsweise erst nach der Deaktivierung des Prüfanschlusses 12, um den Zugriff auf den geheimen Schlüssel selbst für Personen zu verhindern, die Zugang zum Herstellungsprozess haben. Vorzugsweise sind die Logikgatter des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, oder zumindest die der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, so gestaltet, dass die bei Änderungen von logischen Zuständen innerhalb der Schaltungen der Logikgatter auftretenden Stromspitzen keinen Rückschluss auf die Prozesse und/oder die Daten und/oder die Quantenzufallszahlen und/oder die Schaltungszustände der Vorrichtung erlauben. Dies vermeidet sogenannte Side-Channels. Hierzu kann die vorschlagsgemäße Vorrichtung Stromquellen, komplementär schaltende, komplementäre Dummy-Schaltkreise, Energiereserven (z.B. Kapazitäten) etc. umfassen.The secret key is preferably only stored in the
Die Hash-Funktion der Hashing-Engine 18 kann jede geeignete Hash-Funktion sein und ist nicht auf das oben beschriebene Beispiel von HMAC beschränkt.The hash function of the hashing
Der auf dem Chip befindliche Quantenzufallszahlengenerator 28 QRNG könnte in der integrierten Schaltung 2, beispielsweise dem Mikrocontroller, weggelassen werden und stattdessen ein außerhalb des Chips befindlicher Quantenzufallszahlengenerator QRNG verwendet werden, um den geheimen Schlüssel während des Herstellungsprozesses zu erzeugen. Ein Quantenzufallszahlengenerator QRNG auf dem Chip ist jedoch signifikant sicherer.The on-chip quantum
Die im EEPROM 6 gespeicherte Firmware ist vorzugsweise kryptografisch geschützt, in diesem Beispiel durch digitale Signaturen. Bei der Herstellung wird die Firmware zunächst kompiliert. Anschließend wird sie mit einem geheimen privaten Schlüssel eines Private-Public-Key-Systems digital signiert. Bevorzugt beruht der geheime private Schlüssel des Private-Public-Key-Systems auf einer Quantenzufallszahl eines Quantenzufallszahlengenerators 28. Der öffentliche Schlüssel wird vorzugsweise im OTP-Speicher 20 gespeichert, damit die Signatur überprüft werden kann. Die signierte Firmware wird im EEPROM 6 gespeichert. Die digitalen Signaturen können erstellt werden, indem die kompilierte Firmware während des Herstellungsprozesses an einen sicheren Signaturgenerator übermittelt wird. Der sichere Signaturgenerator kann der integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, und zwar die Steuervorrichtung 4 im Zusammenwirken mit dem Quantenzufallszahlengenerator 28 selbst sein. Die signierte Firmware kann über eine Kommunikationsverbindung, z. B. das Internet, in das EEPROM 6 heruntergeladen werden, wenn die Signierung extern erfolgt. Der Prozessor 10 kann jedoch die Signierung der Firmware vor dem Abspeichern im EEPROM 6 entfernen und durch eine eigene, Quantenzufallszahlbasierende Signierung auf Basis einer Quantenzufallszahl seines Quantenzufallszahlengenerators 28 ersetzen, was das Auslesen der Firmware für jedermann dann ausnahmslos unmöglich macht.The firmware stored in the
Anstelle eines EEPROMs kann der nichtflüchtige Speicher 6 ein beliebiger anderer geeigneter Speicher sein, beispielsweise ein FLASH-Speicher.Instead of an EEPROM, the
Der weitere nichtflüchtige Speicher 30 kann beispielsweise ein serieller EEPROM-Speicher sein.The additional
Der einmalig programmierbare Speicher OTP 22, der den Sicherheitscode enthält, kann durch einen anderen re-programmierbaren, nichtflüchtigen Speicher ersetzt und der Sicherheitscode mit Hilfe signierter Firmware geändert werden. Ein nur genau einmalig programmierbarer Speicher 22 ist jedoch sicherer, da seine Programmierung unumkehrbar ist.The one-time
Das DRAM 8 kann weiter geschützt werden, indem der Zugang zum DRAM 8 physisch sehr schwierig und im Falle eines Versuchs nachweisbar gemacht wird. Beispielsweise können die Verbindungen zwischen dem DRAM 8 und der Steuervorrichtung 4 in Schichten des Metallisierungsstapels des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, vergraben oder auf andere Weise gegen physisches Abtasten (z.B. durch E-Beam) geschützt sein. Vorzugsweise umfassen auch die Vorrichtungsteile der Steuervorrichtung 4 einen solchen Abtastschutz. Insbesondere ist es Vorteilhaft, wenn der Quantenzufallszahlengenerator 28 einen solchen Abtastschutz, beispielsweise in Form einer auf einem vordefinierten Potenzial liegenden Metallschicht 53, 142 aufweist.The
Der gesamte integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, kann mit einem solchen Abtastschutz, beispielsweise in Form einer auf einem vordefinierten Potenzial liegenden Metallschicht 53, 142 versehen sein. Der gesamte integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, kann darüber hinaus zusätzlich in einem manipulationssicheren Gehäuse mit manipulationssicheren Dichtungen untergebracht werden.The entire
Der sichere integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, weist bevorzugt zumindest eine Photonenquelle 54 bzw. eine Silizium-LED 54 bzw. ein erste SPAD-Diode 54 als Photonenquelle für Photonen des Quantenzufallszahlengenerators 28 auf. Der sichere integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, weist bevorzugt zumindest einen Photonendetektor 55 bzw. eine zweite SPAD-Diode 55 auf. Bevorzugt koppelt ein optisches System die zumindest eine Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 mit dem Photonendetektor 55 bzw. der zweiten SPAD-Diode 55 mittels dieser Photonen optisch. Das optische System kann einen optischen Lichtwellenleiter 44 umfassen. Der Quantenzufallszahlengenerator 28 ist bevorzugt ein quantenprozessbasierender Generator für echte Zufallszahlen (QRNG) 28. Der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) 28 umfasst bevorzugt eine Photonenquelle 54 bzw. eine Silizium-LED 54 bzw. ein erste SPAD-Diode 54 als Lichtquelle für ein optisches Quantensignal und Photonendetektor 55 bzw. eine zweite SPAD-Diode 55 als Fotodetektor für dieses optische Quantensignal. Des Weiteren umfasst der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) 28 bevorzugt zumindest die Verarbeitungsschaltung und ggf. den optische Lichtwellenleiter 44. Bevorzugt koppelt der ggf. vorhandene optische Lichtwellenleiter 44 die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 mit dem Photonendetektor 55 bzw. eine zweite SPAD-Diode 55 optisch. Eine Betriebsschaltung versorgt die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 in der Art mit elektrischer Energie, dass die Photonenquelle 54 bzw. die Silizium-LED 54 bzw. die erste SPAD-Diode 54 Licht emittieren. Die Abstrahlung von Licht erfordert dabei, dass die Betriebsspannung eine ausreichende elektrische Vorspannung der Photonenquelle 54 bzw. der Silizium-LED 54 bzw. der ersten SPAD-Diode 54 zur Verfügung stellt. Eine Verarbeitungsschaltung (402, 403, 404) erfasst das Signal des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 und bildet daraus die Quantenzufallszahl 418. Die Verarbeitungsschaltung stellt dann bevorzugt die so gebildete Quantenzufallszahl 418 einem oder mehreren der einen oder mehreren Prozessoren 10 über einen Datenbus 419 zur Verfügung.The secure
Bevorzugt weist der Halbleiterkristall des integrierte Schaltkreises 2, beispielsweise des Mikrocontrollers, eine Oberfläche 56 auf. Typischerweise weist der Halbleiterkristall ein halbleitendes Material unterhalb seiner Oberfläche 56 auf. Insbesondere bei der Anwendung konventioneller Halbleiterschaltungsherstellprozesse, wie CMOS-Prozessen, Bipolarprozessen, BiCMOS-Prozessen und BCD-Prozessen weist die Oberfläche 56 des Halbleiterkristalls typischerweise einen Metallisierungsstapel als strukturierten Metallschichten und elektrischen Isolationsschichten auf. Die strukturierten Metallschichten bilden dabei typischerweise die elektrisch leitenden Leiterbahnen, die durch die Isolationsschichten voneinander elektrisch getrennt sind. Somit weist der Metallisierungsstapel eine typischerweise strukturierte und optisch transparente und elektrisch isolierende Schicht 44 auf. Zumindest ein Teil dieser typischerweise strukturierten, transparenten und elektrisch isolierenden Schicht 44 der Oberfläche 56 bildet bevorzugt den optischen Lichtwellenleiter 44.The semiconductor crystal of the
Die hier vorgestellten Beispiele der
Typischerweise versorgt zumindest eine Betriebsschaltung in den Beispielen der
In einer weiteren Weiterbildung des vorschlagsgemäßen, sicheren integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, ist zumindest eine Datenschnittstelle der einen oder mehreren Datenschnittstellen 64 eine drahtgebundene automobile Datenbusschnittstelle 64. In dem Fall kann die drahtgebundene automobile Datenbusschnittstelle 64 beispielsweise eine CAN-Datenbusschnittstelle oder eine CAN-FD-Datenbusschnittstelle oder eine Flexray-Datenbusschnittstelle oder eine PSI5-Datenbusschnittstelle oder eine DSI3-Datenbusschnittstelle oder eine LIN-Datenbusschnittstelle oder eine Ethernet-Datenbusschnittstelle oder eine SPI-Datenbusschnittstelle oder eine MELIBUS-Datenbusschnittstelle sein.In a further development of the proposed secure
In einer weiteren Weiterbildung des vorschlagsgemäßen sicheren integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, ist zumindest eine Datenschnittstelle 64 der einen oder mehreren Datenschnittstellen 64 eine drahtlose Datenbusschnittstelle. Die drahtlose Datenbusschnittstelle 64 kann beispielsweise eine WLAN-Schnittstelle oder eine Bluetooth-Schnittstelle sein.In a further development of the proposed secure
In einer weiteren Weiterbildung des vorschlagsgemäßen sicheren integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, ist zumindest eine Datenschnittstelle 64 der einen oder mehreren Datenschnittstellen 64 eine drahtgebundene Datenbusschnittstelle 64. De drahtlose Datenbusschnittstelle 64 kann beispielsweise eine KNX-Datenbusschnittstelle oder eine EIB-Datenbusschnittstelle oder eine DALI-Datenbusschnittstelle oder eine PROFIBUS-Datenbusschnittstelle sein.In a further development of the proposed secure
Obwohl die vorschlagsgemäße Vorrichtung beispielhaft unter Bezugnahme auf eine Steuervorrichtung 4 und den integrierten Schaltkreis 2, beispielsweise des Mikrocontrollers, beschrieben wurde, ist sie nicht auf eine Steuervorrichtung 4 bzw. den integrierten Schaltkreis 2, beispielsweise des Mikrocontrollers, beschränkt. Die vorschlagsgemäße Vorrichtung kann auch auf andere Arten von Prozessoren mit integrierter Schaltung und andere integrierte Schaltungen angewendet werden. Ein Mikroprozessor ist nur ein besonders günstiges, weil komplexes Beispiel für eine vorschlagsgemäße beispielhafte integrierte Schaltung 2.Although the proposed device has been described by way of example with reference to a
Die Ausführungsformen der vorschlagsgemäßen Vorrichtung speichern Daten innerhalb und ggf. auch außerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers. Die Ausführungsformen des Vorschlags stellen sicher, dass die zu verarbeitenden Daten, einschließlich des ausführbaren Codes, nicht von Unbefugten geändert werden können, die auf die außerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, auf gespeicherten Daten zugreifen, oder, falls ein solcher Zugriff erfolgt, sicherstellen, dass dieser Zugriff und/oder ein solcher Zugriffsversuch nicht unbemerkt bleiben und dass die Daten und/oder Programmcodes und/oder Schlüssel und/oder Authentifizierungsdaten etc. nicht unbemerkt geändert werden können. Die Sicherheit wird durch Sicherheitsdaten gewährleistet, und die Sicherheitsdaten selbst sind sicher, weil sie innerhalb der integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, in einem geschützten Bereich 4 gespeichert und vor unbefugtem Zugriff geschützt sind.The embodiments of the proposed device store data inside and possibly also outside the
Die hier vorgelegte Beschreibung erhebt keinen Anspruch auf Vollständigkeit und beschränkt diese Offenbarung nicht auf die gezeigten Beispiele. Andere Variationen zu den offengelegten Beispielen können von denjenigen, die über gewöhnliche Fachkenntnisse auf dem Gebiet verfügen, anhand der Zeichnungen, der Offenbarung und der Ansprüche verstanden und ausgeführt werden. Die unbestimmten Artikel „ein“ oder „eine“ und dessen Flexionen schließen eine Vielzahl nicht aus, während die Erwähnung einer bestimmten Anzahl von Elementen nicht die Möglichkeit ausschließt, dass mehr oder weniger Elemente vorhanden sind. Eine einzige Einheit kann die Funktionen mehrerer in der Offenbarung genannter Elemente erfüllen, und umgekehrt können mehrere Elemente die Funktion einer Einheit erfüllen. Zahlreiche Alternativen, Äquivalente, Variationen und Kombinationen sind möglich, ohne dass der Anwendungsbereich der vorliegenden Offenbarung verlassen wird.The description presented herein is not intended to be exhaustive and does not limit this disclosure to the examples shown. Other variations to the disclosed examples can be understood and practiced by those of ordinary skill in the art from the drawings, the disclosure and the claims. The indefinite articles "a" or "an" and their inflections do not exclude a plurality, while the mention of a certain number of elements does not exclude the possibility of more or fewer elements being present. A single unit may perform the functions of several elements mentioned in the disclosure, and conversely, several elements may perform the function of a unit. Numerous alternatives, equivalents, variations and combinations are possible without departing from the scope of the present disclosure.
Soweit nichts anders angegeben ist, können sämtliche Merkmale der vorliegenden Erfindung frei miteinander kombiniert werden. Dies betrifft die gesamte hier vorgelegte Schrift. Auch die in der Figurenbeschreibung beschriebenen Merkmale können, soweit nichts Anderes angegeben ist, als Merkmale der Erfindung frei mit den übrigen Merkmalen kombiniert werden. Eine Beschränkung einzelner Merkmale der Ausführungsbeispiele auf die Kombination mit anderen Merkmalen der Ausführungsbeispiele ist dabei ausdrücklich nicht vorgesehen. Außerdem können gegenständliche Merkmale der Vorrichtung umformuliert auch als Verfahrensmerkmale Verwendung finden und Verfahrensmerkmale umformuliert als gegenständliche Merkmale der Vorrichtung. Eine solche Umformulierung ist somit automatisch mit offenbart.Unless otherwise stated, all features of the present invention can be freely combined with one another. This applies to the entire document presented here. The features described in the description of the figures can also be freely combined with the other features as features of the invention, unless otherwise stated. A restriction of individual features of the It is expressly not intended to limit the combination of embodiments with other features of the embodiments. In addition, physical features of the device can be reformulated and used as process features, and process features can be reformulated as physical features of the device. Such a reformulation is therefore automatically disclosed.
In der vorausgehenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen verwiesen. Die Beispiele in der Beschreibung und den Zeichnungen sollten als illustrativ betrachtet werden und sind nicht als einschränkend für das beschriebene spezifische Beispiel oder Element zu betrachten. Aus der vorausgehenden Beschreibung und/oder den Zeichnungen und/oder den Ansprüchen können durch Abänderung, Kombination oder Variation bestimmter Elemente mehrere Beispiele abgeleitet werden. Darüber hinaus können Beispiele oder Elemente, die nicht wörtlich beschrieben sind, von einer fachkundigen Person aus der Beschreibung und/oder den Zeichnungen abgeleitet werden.In the foregoing detailed description, reference is made to the accompanying drawings. The examples in the description and drawings should be considered as illustrative and are not to be considered as limiting the specific example or element described. Multiple examples may be derived from the foregoing description and/or drawings and/or the claims by modifying, combining or varying certain elements. In addition, examples or elements not described verbatim may be derived from the description and/or drawings by a person skilled in the art.
Figur 6Figure 6
Der sichere integrierte Schaltkreises 2, beispielsweise des Mikrocontrollers, weist in dem Beispiel der
Bevorzugt weist der Halbleiterkristall 49 der Steuervorrichtung 4 des integrierte Schaltkreises 2, beispielsweise des Mikrocontrollers, eine Oberfläche 56 auf. Typischerweise weist der Halbleiterkristall 49 ein halbleitendes Material unterhalb seiner Oberfläche 56 auf. Insbesondere bei der Anwendung konventioneller Halbleiterschaltungsherstellprozesse, wie CMOS-Prozessen, Bipolarprozessen, BiCMOS-Prozessen und BCD-Prozessen weist die Oberfläche 56 des Halbleiterkristalls 49 typischerweise einen Metallisierungsstapel als strukturierten Metallschichten und elektrischen Isolationsschichten auf. Die strukturierten Metallschichten bilden dabei typischerweise die elektrisch leitenden Leiterbahnen, die durch die Isolationsschichten voneinander elektrisch getrennt sind. Somit weist der Metallisierungsstapel eine typischerweise strukturierte und optisch transparente und elektrisch isolierende Schicht 44 auf. Zumindest ein Teil dieser typischerweise strukturierten, transparenten und elektrisch isolierenden Schicht 44 der Oberfläche 56 bildet bevorzugt den optischen Lichtwellenleiter 44.Preferably, the
In dem Beispiel der
Typischerweise versorgt zumindest eine Betriebsschaltung im Beispiel der
Figur 7Figure 7
Figur 8Figure 8
Ein bevorzugt gemeinsamer Systemtakt 2106 taktet bevorzugt die digitalen Schaltungen der beispielhaft in der
Die Entropie Quelle 401 des Quantenzufallszahlengenerators 28 umfasst in dem Beispiel der
Ein Verstärkerausgangssignal 406 des Hochfrequenzverstärkers 402 verbindet beispielsweise den beispielhaften Hochfrequenzverstärker 402 mit einer beispielhaften Auswertevorrichtung 404, die im Wesentlichen Teilvorrichtungen der Steuervorrichtung 4 umfasst. Die Auswertevorrichtung 404 der
Die als Blockschaltbild der vereinfacht in
Der Komparator 404.2 vergleicht in dem Beispiel der
Die Finite State Machine 404.8 hat typischerweise die Aufgabe, Daten in Form eines seriellen Stroms von Quantenzufallsbits 411 von der der Entropie-Extraktion 404.4 entgegenzunehmen, den seriellen Strom von Zufallsdatenbits in Zufallsdatenwörter und diese in den Block RAM 404.9 der Auswertevorrichtung 404, der typischerweise der flüchtige Speicher ist, zu speichern. Bevorzugt kommuniziert die Finite-State-Machine 404.8 mit dem Prozessor 404.11 (10-1, 10-2) über einen internen Datenbus 419. Nach erfolgreichem Schreibvorgang setzt die Finite State Machine 404.8 ein Finish Flag 404.10. Der Prozessor 404.11 kann bevorzugt das Finish-Flag 404.10 über den internen Datenbus 419 schreiben und/oder lesen. Das Finish-Flag 404.10 kann ggf. Teil des RAMs 404.9 oder ein Register des Prozessors 404.11 sein. Der Prozessor 404.11 steuert und überwacht vorzugsweise über den internen Datenbus 419 die Finite-State-Machine 404.8. Das Finish Flag 404.10 ist vorzugsweise bei Systemstart nicht gesetzt. Daraufhin kann der Prozessor 404.11 beispielsweise mittels eines C-Programms, welches auf dem eingebetteten Prozessor 404.11, beispielsweise einem Dual-Core Arm Cortex-A9 MPCore, gestartet ist, auf den Block RAM 414.9 zugreifen und die Zufallszahl aus dem RAM 404.9 auslesen. Der Prozessor 404.11 ist bevorzugt identisch mit dem ersten Prozessor 10-1 der
Bevorzugt steuert der Prozessor 404.11 einen Watchdog 404.5. Der Watchdog 404.5 ist hier im Sinne des hier vorgelegten Dokuments nicht nur ein Watchdog-Timer, der einen Zeitgeber umfasst, der mit dem Systemtakt des Quantenzufallszahlengenerators 28 bzw. des Systemtakts 2106 des Prozessors 404.11 getaktet ist und der in regelmäßigen zeitlichen Abständen von dem Prozessor 404.11 wieder auf einen Startwert zurückgesetzt werden muss, um ein Unterbrechen der Programmausführung des Prozessors 404.11 bei Erreichen und/oder Kreuzen eines Watchdog-Zählerstand-Schwellwerts durch den Zählerstand des Zeitgebers des Watchdogs 405.5 zu vermeiden. Der Watchdog 405.5 führt darüber hinaus weitere Überwachungsaufgaben innerhalb des Quantenzufallszahlengenerators 28 aus. Beispielsweise überwacht der Watchdog 404.5 vorzugsweise die Entropie der Quantenzufallsbits 411. Insbesondere stellt der Watchdog 404.5 vorzugsweise sicher, dass die Quantenzufallsbits 411 vorzugsweise nicht mehr als q aufeinanderfolgende Zufallsbits des gleichen logischen Wertes aufweisen. Ist das der Fall, so fügt der Watchdog 404.5 vorzugsweise andere Bits an Stelle der Quantenzufallsbits 411 in diesen seriellen Bitdatenstrom von der Entropieextraktion 404.5 zur Finite-State-Machine 407.8 ein. Hierzu in der folgenden
Figur 9Figure 9
Der Ausgang 411 der Entropie Extraktion 404.4 ist nun mit dem Watchdog 404.5 und dem Signal Multiplexer 404.7 beispielhaft verbunden. Der Watchdog 404.5 überwacht die Quantenzufallszahl RN am Ausgang 411 der Entropie-Extraktion 404.4. Der Watchdog 404.5 erfasst vorschlagsgemäß zumindest drei definierte Fehlerfälle. Der Watchdog 404.5 gibt dazu beispielsweise valide Quantenzufallsbits 411 unter Erzeugung eines Seed-Werts S 412 an das optionale zusätzliche linear rückgekoppelte Schieberegister 404.6. Vorzugsweise verhindert der Watchdog 404.5 die Verwendung dieser validen Quantenzufallsbits durch die Finite-State-Machine 404.8. Sofern ein Fehler auftritt, setzt der Watchdog 404.5 Fehlerbits in einem nicht gezeichneten Fehler-Register ER des Prozessors 404.11. Welches Fehlerbit der Watchdog 404.5 im Fehler-Register des Prozessors 404.11 setzt, ist vorzugsweise abhängig vom jeweiligen Fehlerfall, den der Watchdog 404.5 feststellt. Zusätzlich ist der Watchdog 404.5 über ein oder mehrere, vorzugsweise digitale Ein-Ausgabe-Signalleitungen 414 in dem Beispiel der
Der Spannungsmonitor 413 überwacht in dem Beispiel der
Das optionale weitere linear rückgekoppelte Schieberegister 404.6 ist in dem Beispiel der
Das Signal des Ausgangs 411 der Entropie-Extraktion 404.4 mit der 1 Bit Zufallszahl RN der Entropie Extraktion 404.4 bzw. das Signal der Pseudozufallssignalleitung 417 mit der Pseudozufallszahl PRN des linear rückgekoppelten Schieberegisters 404.6 sind mit den Eingängen des Signalmultiplexers 404.7 verbunden. Der Signalmultiplexer 404.7 leitet je nach Wert des Selektionssignals 416 SEL einen der beiden Eingänge an die Finite State Machine 404.8 weiter. Natürlich ist es denkbar, einen Multiplexer mit mehr als zwei Eingängen und komplexerem Ansteuersignal zu verwenden, wenn die Anwendung dies erfordert. Die Zahl der Eingänge der Signalmultiplexers 404.7 ist daher typischerweise größer oder gleich zwei.The signal of the
Auch hier hat die Finite State Machine 404.8 die Aufgabe die Zufallsdaten RN bzw. die Pseudozufallszahl PRN am Ausgang des Signalmultiplexers 404.7 entgegenzunehmen und in den Block RAM 404.9, 15 der Auswertevorrichtung 404 innerhalb der Steuervorrichtung 4 zu schreiben. Ist der Schreibvorgang erfolgreich, setzt die Finite State Machine 404.8 wieder das Finish Flag 404.10. Daraufhin kann der Prozessor 404.11 beispielsweise mittels eines C-Programms, welches auf dem eingebetteten Prozessor 404.11 vorzugsweise abläuft, auf den Block RAM 404.9 zugegriffen und die Zufallszahl auslesen und beispielsweise zur Verschlüsselung benutzen.Here too, the finite state machine 404.8 has the task of receiving the random data RN or the pseudorandom number PRN at the output of the signal multiplexer 404.7 and writing it into the RAM block 404.9, 15 of the
Vorzugsweise erfasst Zeit-zu-Pseudozufallszahlen-Wandler 404.3 die Zeit zwischen zwei Pulsen auf dem Ausgangssignal 409 des Komparators 404.2 als Zeitwert. Sofern ein Zeitwert am Ausgang 410 des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 kleiner als ein Mindestwert ist, handelt es sich um einen Wert, der innerhalb der Totzeit der zweiten SPAD-Dioden 55 liegt. Die Auswertevorrichtung 404 verwirft bevorzugt bei Auftreten eines solchen Werts die erzeugten Pseudozufallszahlen und erhöht den Fehlerzähler vorzugsweise um die erste Fehlerschrittweite, die auch negativ sein kann. In dem Fall wartet die Entropieextraktion 404.4 die Ermittlung der nächsten Zufallszahl durch den Zeit-zu-Pseudozufallszahlen-Wandler 404.3 ab. Ist das Zufallsbit auf diese Weise extrahiert, beginnt der Quantenzufallszahlengenerator 28 das Verfahren von vorne.Preferably, time-to-pseudo-random number converter 404.3 records the time between two pulses on the
Sofern der Fehlerzähler den Fehlerzählerschwellwert kreuzt oder erreicht, kann beispielsweise ein Fehler vorliegen, bei dem der Zeit-zu- Pseudozufallszahlen -Wandler 404.3 beispielsweise konstante Zahlenwerte aufgrund eines Fehlers liefert.If the error counter crosses or reaches the error counter threshold, an error may be present, for example, in which the time-to-pseudorandom number converter 404.3, for example, delivers constant numerical values due to an error.
Diese Vorrichtung ist somit in der Lage, einen Ausfall der Spannungsversorgung 5 der Entropiequelle 401 oder anderer Teile der Vorrichtung (z.B. 4, 28) zu detektieren. Der Prozessor 404.11 kann mittels des Analog-zu-Digital-Wandlers 403 auch zu Testzwecken Spannungen und Ströme im Quantenzufallszahlengenerator 28 und/oder innerhalb der Steuervorrichtung 4 des integrierten Schaltkreises eines Mikrocontrollers und/oder innerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, erfassen und die so ermittelten Werte mit Erwartungswertbereichen vergleichen, in denen diese Werte liegen müssen. Auch kann der Prozessor 404.11 digitale Werte innerhalb des Quantenzufallszahlengenerators 28 und/oder innerhalb der Steuervorrichtung 4 des integrierten Schaltkreises eines Mikrocontrollers und/oder innerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, erfassen. Beispielsweise kann der Prozessor 404.11 die Konstante Const 404.1 für Testzwecke so niedrig setzen, dass der Rauschuntergrund im Wesentlichen den Zeit-zu-Pseudozufallszahlen-Wandler 404.3 steuert. Bevorzugt stellt dazu der Prozessor 404.11 einen Betriebszustand des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 ein, bei dem der Zeit-zu-Zufallszahlen-Wandler 404.3 nach der Erzeugung einer Pseudozufallszahl mit dem letzten Seed-Wert neu startet. Die Werte des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 sollten dann einer erwarteten Statistik in einem Toleranzband genügen. Ist dies nicht der Fall, so liegt ein Fehler vor. Der Prozessor 404.11 kann diese Statistik erstellen und ggf. auf diesen Fehler schließen, wenn die ermittelten statistischen Werte nicht in einem Erwartungswertintervall liegen.This device is thus able to detect a failure of the
Der Watchdog 404.5 kann die Entropie der gelieferten Quantenzufallsbits 411 überwachen. Sofern die mittlere Entropie der Quantenzufallsbits 411 über einen Entropiemesszeitraum wesentlich mehr als ein erlaubter Entropieabweichungswert von dem erwarteten Zufallsmittelwert von 50% abweicht, schließt der Watchdog 404.5 vorzugsweise auf einen Fehler des Quantenzufallszahlengenerators 28 und inkrementiert vorzugsweise den Fehlerzähler um die besagte Fehlerzählerschrittweite. Vorzugsweise stoppt der Watchdog 404.5 dann die Verwendung dieser Quantenzufallsbits des Ausgangs 411 der Entropie Extraktion 404.4, um die Versendung von Klartext über den Datenbus durch Vorrichtung zu verhindern. Klartext bedeutet im Sinne des hier vorgelegten Dokuments, das die versendeten und/oder gespeicherten Daten in einer Form vorliegen, die es erlaubt, dass ein Dritter sich direkt und/oder durch Anwendung statistischer oder sonstiger Methoden unbefugten Zugang zum Inhalt einer Datenbotschaft und/oder von gespeicherten Daten und/oder Programmcode verschaffen kann. Es ist nämlich denkbar, dass auch bei funktionierenden Teilvorrichtungen zufällig eine virtuelle Dauereins oder eine virtuelle Dauernull erzeugt wird. Der Zufall umfasst nämlich auch die Dauernull und die Dauereins. Es ist somit sinnvoll, wenn die maximale Länge einer Bitsequenz ohne Änderung des logischen Zustands am Ausgang 411 der Entropie Extraktion 404.4 auf einen durch den Prozessor 404.11 programmierbaren Wert durch den Watchdog 404.5 begrenzt wird.The watchdog 404.5 can monitor the entropy of the quantum
Im Wesentlichen kann der vorbeschriebene Quantenzufallszahlengenerator 28 damit folgende Fehler erkennen und durch einen Notlauf mittels eines optionalen, weiteren Pseudozufallszahlengenerators 404.6, also beispielsweise mittels eines optionalen weiteren, linear rückgekoppelten Schieberegisters 4104.6, mit niedrigerem Sicherheitsniveau auffangen:
- • Störung von Versorgungsspannungen
- • Fehlerhafte Signalerzeugung der Photonenquellen 54 und/oder der Silizium-
LEDs 54 und/oder der ersten SPAD-Dioden 54, - • Fehlerhafte Signalerzeugung der Photonendetektoren 55 und/oder der zweiten SPAD-
Dioden 55, - • Störung des optionalen Lichtwellenleiters 44,
- • Störung der Ankoppelung der Photonenquellen 54 und/oder der Silizium-
LEDs 54 und/oder der ersten SPAD-Dioden 54 anden Lichtwellenleiter 44, - • Störung der Ankoppelung der Photonendetektoren 55 und/oder der zweiten SPAD-
Dioden 55 anden Lichtwellenleiter 44, - •
Schaltungsausfälle im Digitalteil 404 desQuantenzufallszahlengenerators 28, - • Fehlerhafte Entropie der gelieferten Quantenzufallsbits 411.
- • Disturbance of supply voltages
- • Faulty signal generation of the
photon sources 54 and/or thesilicon LEDs 54 and/or the firstSPAD diodes 54, - • Faulty signal generation of the
photon detectors 55 and/or the secondSPAD diodes 55, - • Malfunction of the optional
fiber optic cable 44, - • Disturbance of the coupling of the
photon sources 54 and/or thesilicon LEDs 54 and/or the firstSPAD diodes 54 to theoptical waveguide 44, - • Disturbance of the coupling of the
photon detectors 55 and/or the secondSPAD diodes 55 to theoptical waveguide 44, - • Circuit failures in the
digital part 404 of the quantumrandom number generator 28, - • Incorrect entropy of the supplied quantum
random bits 411.
Es ist denkbar, statt des optionalen, zusätzlichen linear rückgekoppelten Schieberegisters 404.6 bzw. des optionalen, zusätzlichen Pseudozufallszahlengenerators 404.6 einen zweiten kompletten Quantenzufallszahlengenerator 28 einzusetzen, dessen Ausgang 411 dessen Entropie Extraktion 404.4 dann der Multiplexer 404.7 anstelle des Signals der optionalen zusätzlichen Pseudozufallssignalleitung 417 für den Notlauf des Quantenzufallszahlengenerators 28 verwendet. Für den Fall, dass der Ausgang des optionalen, zusätzlichen Pseudozufallszahlengenerators 404.6 von einem oder mehreren echten Quantenzufallsbits 411 als Seed 412 abhängt, handelt es sich, solange die Anzahl der eingefügten Bits begrenzt ist, wieder um eine Quantenzufallszahl. Bevorzugt bestimmt der Watchdog 405.5 die Anzahl q der erlaubten, maximal aufeinanderfolgenden Quantenzufallsbits 411 mittels einer Quantenzufallszahl. Umfasst diese Quantenzufallszahl, die der Watchdog 404.5 für die Bestimmung von q verwendet, nur Quantenzufallsbits 411 mit einem einzigen logischen Wert, so besteht die Möglichkeit, dass ein Fehler vorliegt. Die Zahl q sollte dann nicht maximal sein, um eine Versendung oder Speicherung von Klartext zu vermeiden. Vielmehr sollte der Watchdog 404.5 dann die Zahl q sehr klein, bevorzugt minimal wählen.It is conceivable to use a second complete quantum
Figur 10Figure 10
Figur 11Figure 11
Figur 12Figure 12
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers bindet in Schritt 3010 bevorzugt den Socket-Descriptor an einen Port und eine IP-Adresse. Binden im Sinne dieses Dokuments bedeutet, dass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Standard C-Funktion bind() aus der Standard C-Library socket.h nutzt, um den Port und die IP-Adresse logisch mit dem in Schritt 3000 erzeugten Socket-Descriptor zu verknüpfen. Bei einem Port handelt es sich im Sinne des vorliegenden Dokuments um einen Teil der Netzwerkadresse, der Zuordnung von Datenpaketen zwischen Server- und Client-Programmen ermöglicht. Bei einer IP-Adresse handelt es sich im Sinne des vorliegenden Dokuments um eine Netzwerkadresse, die einen Teilnehmer in einem Netzwerk eindeutig identifizierbar macht.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably binds the socket descriptor to a port and an IP address in
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers geht im nächsten Schritt 3020 in einen passiven Wartezustand 3020 und wartet auf Verbindungsanfragen eines ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) eines Clients. Im Sinne des hier vorgelegten Dokuments ruft bevorzugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers hierzu die Standard C-Funktion listen() der socker.h Library auf. Die Funktion zeigt an, dass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers bereit ist, dass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) Verbindungsanfragen durch Clients annehmen kann. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) erzeugt eine Warteschlange für ankommende Verbindungsanfragen des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients in einem der Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) oder des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) oder eines anderen Vorrichtungsteils des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2). Stellt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers eine Verbindungsanfrage eines ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) eines Clients fest, so akzeptiert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers diese Verbindungsanfrage des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.In the
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers stellt dann in einem folgenden Schritt 3030 eine Verbindung zum ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients her 3030. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers stellt eine Verbindungsanfrage des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients dadurch fest, dass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion listen() verlässt. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers akzeptiert die Verbindungsanfrage vorzugsweise durch Aufruf der Standard C-Funktion accept() der socket.h Standard C-Library. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers extrahiert dazu bevorzugt die erste Verbindungsanfrage aus der Warteschlange offener Verbindungsanfragen für den Server und stellt damit dann die Verbindung zum ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients her. Bei Erfolg gibt die Funktion accept() einen Socket-Descriptor des Clients dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) zurück. Ein Socket-Descriptor im Sinne dieses Dokuments ist eine Integer ähnlich File-Handle der Standard C-Library socket.h. Damit besteht dann die Verbindung zwischen dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.The first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server then establishes a connection to the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the client in a following
Besteht eine besagte Verbindung, startet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers bevorzugt in einem folgenden Schritt 3040 eine Funktion keyExchangeServer(). Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers führt dann diese Funktion keyExchange() in diesem Schritt 3040 aus, um dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients seinen öffentlichen Schlüssel zukommen zu lassen. Diese Funktion keyExchangeServer() ist nun jedoch keine Standard C-Funktion. In dieser Funktion erzeugt in diesem Schritt 3040 der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels eines Quantenzufallszahlengenerators 28 QRNG Quantenzufallszahlen. Die Quantenzufallszahl hat dabei bevorzugt eine Bitbreite n. Hierbei ist n eine positive ganze Zahl einschließlich Null. Diese Zufallszahlen des Quantenzufallszahlengenerators 28 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers dienen in dem in diesem Dokument vorgestellten Beispiel als Indices für eine Look-Up-Tabelle der ersten 2n Primzahlen. Diese Look-Up-Table befindet sich bevorzugt in einem der Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) oder in einem Speicher von Teilvorrichtungen des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers liest dann die Primzahl entsprechend diesem Index der Quantenzufallszahl des Quantenzufallszahlgenerators 28 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) aus dem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Mittels dieser Primzahlen erzeugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) Server sowohl einen öffentlichen als auch privaten Schlüssel gemäß dem erwähnten RSA-Verschlüsselungsverfahren.If such a connection exists, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably starts a function keyExchangeServer() in a
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) übermittelt dann über die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und den Datenbus 95 und die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients einen öffentlichen Schlüssel an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.The first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) then transmits a public key to the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the client via the
Danach wartet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers auf eine Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients über die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und den Datenbus 65 und die Datenschnittstelle 64 des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Bevorzugt umfasst diese Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients einen öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients. Damit übermittelt erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients typischerweise den privaten Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients über die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und den Datenbus 95 und die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Hat der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers den öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients erhalten, so speichert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers diesen öffentlichen Schlüssel in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then waits for a message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client via the
Anschließend versendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers beispielsweise seinen öffentlichen Schlüssel über seine Datenbusschnittstelle 64 und den Datenbus 65 und die Datenbusschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then sends, for example, its public key via its
Damit ist der Server typischerweise für den Austausch verschlüsselter Daten zwischen dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers vorbereitet.Thus, the server is typically used for the exchange of encrypted data between the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server.
Nach dem nun die Schlüssel ausgetauscht sind, führt im Anschluss der ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers vorzugsweise die Funktion recv() 3050 aus und wartet auf eine verschlüsselte Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients. Empfängt der ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers eine Nachricht, so speichert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers diese verschlüsselte Nachricht vorzugsweise zunächst in einem temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion recv() bevorzugt um eine Standard C-Funktion der Standard C-Library socket.h. Die Funktion recv() liest typischerweise ankommende Daten von einem Socket-Discriptor, in diesem Fall der Socket-Descriptor des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client aus dem Schritt 3030 des Verfahrens. Die Funktion recv(), die der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers typischerweise ausführt, speichert die empfangenen Daten typischerweise in dem temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers.After the keys have been exchanged, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server preferably executes the function recv() 3050 and waits for an encrypted message from the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client. If the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server receives a message, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server preferably initially stores this encrypted message in a temporary buffer of the computer (here the example micro-integrated circuit 2) of the server. In the sense of the present document, the function recv() is preferably a standard C function of the standard C library socket.h. The recv() function typically reads incoming data from a socket descriptor, in this case the socket descriptor of the first processor 10-1 of the client's computer (here, the exemplary micro-integrated circuit 2) from
Hat der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers auf diese Weise eine verschlüsselte Nachricht empfangen, so führt bevorzugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) Servers vorzugsweise in einem weiteren Schritt 3060 die Funktion Decrypt() 3060 aus. Diese Funktion Decrypt() ist keine Standard C-Funktion. Die Funktion Decrypt() entschlüsselt in diesem Schritt 3060 im Sinne des hier vorgelegten Dokuments die Nachricht des mittels des in dem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) zwischengespeicherten privaten Schlüssels des Servers aus dem Schritt 3040 gemäß des RSA-Verfahrens. Dadurch entschlüsselt der ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die empfangene verschlüsselte Nachricht des Clients mittels des in dem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) zwischengespeicherten privaten Schlüssels aus dem Schritt 3040 gemäß des RSA-Verfahrens. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers speichert vorzugsweise die dann entschlüsselte Nachricht in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers ab.If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server has received an encrypted message in this way, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) server preferably executes the function Decrypt() 3060 in a
Sofern der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers in einem vorgegeben Zeitraum keine Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients erhält springt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers zu dem nun beschriebenen Schritt. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers prüft, ob eine Nachricht an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients versendet werden soll. Typischerweise ist eine solche Nachricht in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers in einem solchen Fall zu Versendung abgelegt. Ggf. kann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers eine solche Nachricht auch von einem anderen Speicher oder System erst vor der Versendung abholen oder übermittelt bekommen. Bevorzugt legt dann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers eine solche Nachricht temporär in einem Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers ab. Falls eine solche zu versendende Nachricht in einem Speicher oder Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers zur Versendung ansteht, führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers vorzugsweise die Funktion Encrypt() in einem weiteren Schritt 3070 aus. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers verschlüsselt in diesem Schritt 3070 in diesem Fall die eigene Nachricht mittels des öffentlichen Schlüssels des Clients aus 3040 gemäß des RSA-Verfahrens. Diese Funktion Encrypt() ist keine Standard C-Funktion. Der Server speichert seine nun verschlüsselte Nachricht in einem temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers ab.If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server does not receive a message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client within a predetermined period of time, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server jumps to the step now described. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server checks whether a message should be sent to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client. Typically, such a message is stored in a memory of the computer (here the exemplary micro-integrated circuit 2) of the server for sending in such a case. If necessary, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server can also collect or receive such a message from another memory or system before sending it. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then preferably stores such a message temporarily in a buffer of the computer (here the exemplary micro-integrated circuit 2) of the server. If such a message to be sent is waiting to be sent in a memory or buffer of the computer (here the exemplary micro-integrated circuit 2) of the server, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably executes the Encrypt() function in a
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers führt nun die Funktion send() in einem Schritt 3080 aus. In dem Schritt 3080 und sendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers seine im Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) gespeicherte, verschlüsselte Nachricht an den erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client über die Datenbusschnittstelle 64 des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und über den Datenbus 65 und über die Datenschnittstelle 64 des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2). Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion send() um eine Standard C-Funktion der Standard C-Library socket.h. Die Funktion send() sendet Daten über einen Socket-Descriptor, in diesem Fall der Socket-Descriptor des Clients aus dem Schritt 3030. Mit dem Ende der Übertragung ist der typische Zyklus beendet.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server now executes the function send() in a
Danach startet die verschlüsselte Kommunikation für den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers erneut wieder bei Schritt 3040.Thereafter, the encrypted communication for the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server starts again at
Wird die Kommunikation durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers oder den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients beendet, führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion close() 3090 aus. Bei der Funktion close() handelt es sich um eine Standard C-Funktion der Standard C-Library socket.h. Durch Ausführen der Funktion close() schließt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die offene Verbindung zu einem Socket, hier dem Socket des Clients, und beendet somit die Kommunikation.If the communication is terminated by the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server or the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server executes the function close() 3090. The close() function is a standard C function of the standard C library socket.h. By executing the close() function, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server closes the open connection to a socket, here the socket of the client, and thus terminates the communication.
In Analoger Weise führt der schließt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients einen Client Prozess aus.In an analogous manner, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client executes a client process.
Zu Beginn des „Client Process“ erzeugt sich der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients einen Socket-Descriptor in einem Schritt 3100. Ein Socket-Descriptor im Sinne dieses Dokuments ist wieder eine Integer ähnlich File-Handle den beispielsweise die Standard C Library-Funktion socket() der socket.h Library, den der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients in späteren Funktionsaufrufen, die Sockets nutzen, nutzen kann. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients stellt eine Verbindungsanfrage an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers unter Benutzung des Port und der IP-Adresse, welche in dem Schritt 3010 festgelegt wurden.At the beginning of the "client process", the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client creates a socket descriptor in a
Dazu führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients bevorzugt die Standard C-Funktion connect() der Standard C-Library socket.h aus. Diese Funktion stellt eine Verbindung zwischen dem Server-Socket aus dem Schritt 3010 und dem Client-Socket aus dem Schritt 3100 her.To do this, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client preferably executes the standard C function connect() of the standard C library socket.h. This function establishes a connection between the server socket from
Wurde die Verbindung seitens des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers gemäß Schritt 3030 akzeptiert, so führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion KeyExchangeClient() in einem Schritt 3120 aus. Diese Funktion ist keine Standard C-Funktion. Durch Ausführung dieser Funktion erzeugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels des Quantenzufallszahlengenerators 28 ein oder mehrere QRNG Quantenzufallszahlen. Diese Quantenzufallszahl hat eine Bitbreite n. Hierbei ist n eine positive ganze Zahl einschließlich Null. Diese Zufallszahlen des Quantenzufallszahlengenerators 28 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients dienen bevorzugt als Indices für eine Look-Up-Tabelle der ersten 2n Primzahlen. Mittels dieser Primzahlen oder anderer Primzahlen erzeugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients sowohl einen öffentlichen als auch privaten Schlüssel gemäß RSA-Verschlüsselung (ANGANG). Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients speichert seinen so erzeugten öffentlichen Schlüssel und seinen so erzeugten privaten Schlüssel vorzugsweise in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients. Danach versendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients seinen öffentlichen Schlüssel an den erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers über die Datenschnittstelle 64 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und über den Datenbus 65 und über die Datenschnittstelle 54 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Anschließend wartet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients auf eine Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. In dieser Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers befindet sich typischerweise der öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers.If the connection was accepted by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server in accordance with
Im Anschluss führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion Encrypt() 3130 aus. Durch dies Ausführung der Funktion Encrypt() im Schritt 3130 verschlüsselt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients eine eigene Nachricht mittels des öffentlichen Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers aus Schritt 3040 mittels des RSA-Verfahrens. Diese Funktion ist keine Standard C-Funktion. Der Client speichert die verschlüsselte Nachricht in einem temporären Zwischenspeicher ab.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then executes the Encrypt()
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients führt nun die Funktion send() im Schritt 3140 aus und sendet seine verschlüsselte Nachricht an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Server. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion send() um eine Standard C-Funktion der Standard C-Library socket.h. Durch ausführen der Funktion send() sendet der ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients Daten über einen Socket-Descriptor, in diesem Fall den Socket-Descriptor des Clients aus 3100.The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client now executes the send() function in
Im Anschluss führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion recv() 3150 aus. Dabei wartet erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients in dem Schritt 3150 auf eine verschlüsselte Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Empfängt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients eine Nachricht, so speichert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients diese empfangene und typischerweise verschlüsselte Nachricht in einem temporären Zwischenspeicher. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion recv() bevorzugt um eine Standard C-Funktion der Standard C-Library socket.h. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients liest durch Ausführen der Funktion recv() ankommende Daten von einem Socket-Discriptor, in diesem Fall von dem Socket-Descriptor des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus dem Schritt 3100. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients speichert die gelesenen Daten vorzugsweise in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then executes the function recv() 3150. In the process, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client waits in
Hat der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients auf diese Weise eine verschlüsselte Nachricht empfangen, so führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients vorzugsweise die Funktion Decrypt() in einem Schritt 3160 aus. Diese Funktion DeCrypt() ist keine Standard C-Funktion. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients entschlüsselt durch Ausführung der Funktion Decrypt() eine durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients empfangene verschlüsselte Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels des privaten Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus dem Schritt 3120 mittels des RSA-Verfahrens. Danach speichert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die so entschlüsselte Nachricht in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients ab.If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client has received an encrypted message in this way, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client preferably executes the function Decrypt() in a
Danach startet die Kommunikation zwischen dem erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und dem erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients erneut bei Schritt 3120.Thereafter, the communication between the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server and the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client starts again at
Wird die Kommunikation durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients oder den erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers beendet, führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion close() im Schritt 3170 aus. Bei der Funktion close() handelt es sich um eine Standard C-Funktion der Standard C-Library socket.h. Dadurch dass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion close() ausführt, schließt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die offene Verbindung zu einem Socket und beendet somit die Kommunikation mit dem erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers.If the communication is initiated by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server is terminated, the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the client executes the close() function in
Figur 13Figure 13
Beim Starten der Funktion KeyExchangeServer() ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers jeweils zuerst die Funktion setPrimes() im Schritt 3200 auf. Diese Funktion KeyExchangeServer() ist keine Standard C-Funktion. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers erzeugt mittels der Funktion KeyExchangeServer() zwei verschieden Primzahlen p und q, das Produkt n=p*q und die Eulersche Phi-Funktion phi = (p-1)(q-1) im Schritt 3200.When starting the KeyExchangeServer() function, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server first calls the setPrimes() function in
Danach ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion setE() im Schritt 3210 auf. Diese Funktion setE() im Schritt 3210 ist keine Standard C-Funktion. Beim Aufruf der Funktion setE() im Schritt 3210 generiert der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers eine zu phi teilerfremde Zahl e, wobei die Zahl phi die aus dem Schritt 3200 ist. Teilerfremd in Sinne des vorliegenden Dokuments bedeutet, dass es keine natürliche Zahl außer der Zahl eins gibt, die gleichzeitig die Zahl e und die phi teilt.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then calls the setE() function in
Im Anschluss führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion findD() im Schritt 3220 aus. Diese Funktion findD() ist keine Standard C-Funktion. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers berechnet mittels der Funktion findD()das multiplikative Inverse zu e, sodass gilt (e*d)mod phi = 1.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then executes the findD() function in
Nun ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion recv() im Schritt 3230 auf. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers wartet nun auf eine eintreffende Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients, die typischerweise den öffentlichen Schlüssel des Clients umfassen sollte. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion recv() um eine Standard C-Funktion der Standard C-Library socket.h. Durch Aufruf der Funktion recv() liest erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die ankommenden Daten von einem Socket-Discriptor, in diesem Fall der Socket-Descriptor des Client. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers speichert die gelesenen Daten vorzugsweise in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2).Now the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server calls the function recv() in
Nun ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion send() im Schritt 3240 auf. In diesem Schritt 3240 versendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers seinen öffentlichen Schlüssel (d,n) aus den Schritten 3200 und 3220 an den erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion send() um eine Standard C-Funktion der Standard C-Library socket.h. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers sendet mittels der Funktion send() Daten über einen Socket-Descriptor, in diesem Fall der Socket-Descriptor des Clients aus dem Schritt 3030.Now the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server calls the send() function in
Im Anschluss verlässt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers die Funktion KeyExchangeServer() im Schritt 3245.Subsequently, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server leaves the function KeyExchangeServer() in
Beim Starten der Funktion KeyExchangeClient() ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client zuerst die Funktion setPrimes() im Schritt 3250 auf. Diese Funktion ist keine Standard C-Funktion. Der der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client erzeugt mittels der Funktion KexExchangeClient(), die Primzahl p und die von q verschiedene Primzahl q. Der der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client erzeugt mittels der Fuktion KexExchangeClient() das Produkt n=p*q. Der der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients erzeugt mittels der Funktion KexExchangeClient() die Eulersche Phi-Funktion phi = (p-1)(q-1).When starting the KeyExchangeClient() function, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client first calls the setPrimes() function in
Danach ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client die Funktion setE() im Schritt 3260 auf. Diese Funktion ist keine Standard C-Funktion. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client erzeugt mittels der Funktion setE() eine zur Zahl phi aus dem Schritt 3250 teilerfremde ganze Zahl e. Teilerfremd in Sinne des vorliegenden Dokuments bedeutet, dass es keine natürliche Zahl außer der Zahl eins gibt, die gleichzeitig die Zahl e und die phi restfrei teilt.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then calls the function setE() in
Im Anschluss ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client die Funktion findD() 3270 auf. Diese Funktion ist keine Standard C-Funktion. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients berechnet mittels der Funktion findD() das multiplikative Inverse zur Zahl e, sodass gilt (e*d)mod phi = 1.The first processor 10-1 of the client's computer (here the example micro-integrated circuit 2) then calls the function findD() 3270. This function is not a standard C function. The first processor 10-1 of the client's computer (here the example micro-integrated circuit 2) uses the function findD() to calculate the multiplicative inverse of the number e, so that (e*d)mod phi = 1.
Nun ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion send() 3280 auf und versendet seinen öffentlichen Schlüssel (d,n) aus den Schritten 3250 und 3270 an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion send() um eine Standard C-Funktion der Standard C-Library socket.h. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients sendet mittels der Funktion send() Daten über einen Socket-Descriptor, in diesem Fall der Socket-Descriptor des Clients aus Schritt 3100.Now the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client calls the send()
Nun ruft der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion recv() im Schritt 3290 auf. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients wartet nun auf eine eintreffende Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mit dem öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers. Im Sinne des hier vorliegenden Dokuments handelt es sich bei der Funktion recv() um eine Standard C-Funktion der Standard C-Library socket.h. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients liest mittels der Funktion recv()ankommende Daten des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers von einem Socket-Discriptor, in diesem Fall von dem Socket-Descriptor des Clients aus Schritt 3100, und speichert die Daten in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.Now the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client calls the function recv() in
Im Anschluss verlässt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion KeyExchangeClient() im Schritt 3295.Subsequently, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client leaves the function KeyExchangeClient() in
Figur 14Figure 14
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers rufen diese Funktion zur gegebenen Zeit jeweils auf. Ruft einer dieser ersten Prozessoren 10-1 die Funktion setPrimes() auf, so erzeugt sich der aufrufende Prozessor 10-1, in Fall des vorliegenden Dokument der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers oder der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client, eine Quantenzufallszahl mittels eines Quantenzufallszahlengenerators QRNG 28 im Schritt 3300. Diese Quantenzufallszahl hat eine Bitbreite n. Hierbei ist n eine positive ganze Zahl einschließlich Null. Diese Quantenzufallszahlen dienen in der technischen Lehre des hier vorgelegten Dokuments als Indices für eine Look-Up-Tabelle der ersten 2n Primzahlen. Der aufrufende erste Prozessor 10-1 speichert die Primzahl, die durch die Quantenzufallszahl indiziert wird, wird als Variable p ab.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server each call this function at the given time. If one of these first processors 10-1 calls the setPrimes() function, the calling processor 10-1, in the case of the present document the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client, generates a quantum random number using a quantum random
Danach generiert der aufrufende erste Prozessor 10-1 eine weitere Quantenzufallszahl im Schritt 3310 mit der bevorzugten Bitbreite n mittels des Quantenzufallszahlengenerators 28 QRNG. Diese Quantenzufallszahlen dienen dem aufrufenden ersten Prozessor 10-1 bevorzugt wieder als Indices für eine Look-Up-Tabelle der ersten 2n Primzahlen. Die Primzahl, die durch die Zufallszahl indiziert wird, speichert der aufrufende erste Prozessor 10-1 als Variable q in einem Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2), dessen Teil der erste Prozessor 10-1 bevorzugt ist, ab.The calling first processor 10-1 then generates another quantum random number in
Nun überprüft der aufrufende erste Prozessor 10-1 im Schritt 3320, ob die logische Aussage q ==p gilt. Gilt diese Aussage wird Schritt 3310 wiederholt.Now the calling first processor 10-1 checks in
Im Anschluss berechnet der aufrufende Prozessor 10-1 das Produkt n = p * q im Schritt 3330.The calling processor 10-1 then calculates the product n = p * q in
Danach berechnet der aufrufende Prozessort 10-1 die Euler'sche Phi-Funktion phi = (q-1) * (p-1) im Schritt 3340.Then the calling processor 10-1 calculates the Euler phi function phi = (q-1) * (p-1) in
Im Anschluss verlässt der aufrufende Prozessor 10-1 die Funktion setPrimes() im Schritt 3350.The calling processor 10-1 then exits the setPrimes() function in
Figur 15Figure 15
Die
Danach überprüft der aufrufende Prozessor 10-1 im Schritt 3410, ob die logische Aussage gcd(e,phi) != 1 erfüllt ist.Then, the calling processor 10-1 checks in
Ist die logische Aussage erfüllt, wiederholt der aufrufende Prozessor 10-1 den Schritt 3400.If the logical statement is fulfilled, the calling processor 10-1
Ist die logische Aussage nicht erfüllt, so verlässt der aufrufende Prozessor 10-1 die Funktion setE() verlassen und gibt den aktuelle Wert von e als Rückgabewert an den aufrufenden Prozessor 10-1 zurück. Bei der Funktion gcd(a,b) handelt es sich nicht um eine Standard C-Funktion. Der aufrufende Prozessor 10-1 berechnet mittels dieser Funktion gcd(a,b) den größten gemeinsamen Teiler der Übergabeparameter a, b und gibt das Ergebnis an den aufrufenden Prozessor 10-1 zurück.If the logical statement is not fulfilled, the calling processor 10-1 exits the setE() function and returns the current value of e to the calling processor 10-1. The gcd(a,b) function is not a standard C function. The calling processor 10-1 uses this gcd(a,b) function to calculate the greatest common divisor of the parameters a, b and returns the result to the calling processor 10-1.
Figur 16Figure 16
In dem nachfolgenden Schritt 3510 addiert der aufrufende Prozessor 10-1 zu der Zahl d die Zahl 1 hinzu.In the
Nun überprüft im Schritt 3520 der aufrufende Prozessor 10-1, ob die logische Aussage (e*d) (mod phi) == 1 erfüllt ist. Ist die logische Aussage (e*d) (mod phi) == 1 nicht erfüllt, so wiederholt der aufrufende Prozessor die Schritte ab Schritt 3510.Now, in
Ist die logische Aussage (e*d) (mod phi) == 1 erfüllt, so verlässt in dem Schritt 3530 der aufrufende Prozessor 10-1 die Funktion findD() und der aufrufende Prozessor 10-1 gibt den aktuellen Wert von d als Rückgabewert an den aufrufenden Prozessor 10-1, in Fall des vorliegenden Dokument den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers oder der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients.If the logical statement (e*d) (mod phi) == 1 is fulfilled, the calling processor 10-1 exits the function findD() in
Figur 17Figure 17
Im Fall des vorliegenden Dokuments handelt es sich bei dem Server 3600 um einen ersten Prozessor 10-1 eines Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2), wobei der Rechner (hier des beispielhaften mikrointegrierten Schaltkreises 2) dieses Servers 3600 einen Quantenzufallszahlengenerator 28 QRNG aufweist. Im Fall des vorliegenden Dokuments handelt es sich bei dem Client 3610 um einen weiteren ersten Prozessor 10-1 eines Rechners 2, wobei nun dieser Rechner (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client 3610 KEINEN Quanten-Zufallszahlen-Generator 28 QRNG aufweisen soll.In the case of the present document, the
Zu Beginn erzeugt sich der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 Quantenzufallszahlen QZ1. Die Quantenzufallszahlen QZ1 dienen dem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 als Grundlage für die Erzeugung eines privaten und eines öffentlichen Schlüssels des Servers 3600 gemäß einem asymmetrischen Verschlüsselungsverfahren.At the beginning, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Bei dem asymmetrischen Verschlüsselungsverfahren kann es sich zum Beispiel um das RSA-Verfahren handeln.The asymmetric encryption method can, for example, be the RSA method.
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 versendet in einem Schritt 3620 des öffentlichen Schlüssels des Servers 3600 über einen nicht abhörsicheren Kanal an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610.In a
Im Anschluss erzeugt sich der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 eine Pseudozufallszahl PZ oder eine anders erzeugte Zufallszahl. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 speichert die Pseudozufallszahl PZ bzw. die anders erzeugte Zufallszahl in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 ab. Der Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 erzeugt einen ersten privaten Schlüssel des Clients 3610 und einen ersten öffentlichen Schlüssel des Clients 3610 unter Benutzung dieser Pseudozufallszahl PZ bzw. dieser anders erzeugten Zufallszahl.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 verschlüsselt den ersten öffentlichen Schlüssel des Clients 3610 mittels des öffentlichen Schlüssels des Servers 3600.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Danach versendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 den verschlüsselten ersten öffentlichen Schlüssel des Clients 3610 an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 entschlüsselt nun diese Nachricht mit seinem ersten privaten Schlüssel. Hierdurch verfügt nun der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 über den ersten öffentlichen Schlüssel des Clients 3610 ohne dass dieser Dritten bekannt sein kann.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Im Anschluss Erzeugt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 mittels des Quantenzufallszahlengenerators 28 eine weitere, zweite Quantenzufallszahl QZ2. Die Bitbreite dieser zweiten Quantenzufallszahl ist bevorzugt gleich der Bitbreite, der Zufallszahl PZ des Clients 3610.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 verschlüsselt nun die zweite Quantenzufallszahl QZ2 mit dem ersten öffentlichen Schlüssel des Clients 3610. Beispielsweise kann der erste öffentliche Schlüssel des Clients 3610 des Clients sein. In dem Fall kann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 die zweite Quantenzufallszahl QZ2 beispielsweise durch bitweise XOR-Verknüpfung der zweiten Quantenzufallszahl QZ2 mit PZ zu einer verschlüsselten zweiten Quantenzufallszahl QZ2' verschlüsseln. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 versendet dann bevorzugt die verschlüsselte zweite Quantenzufallszahl QZ2' an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client 3610 in einem Schritt 3640.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Der ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client 3610 entschlüsselt die verschlüsselte zweite Quantenzufallszahl QZ2' unter Benutzung seines ersten privaten Schlüssels zur zweiten Quantenzufallszahl QZ2. Hat der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) die zweite verschlüsselte Quantenzufallszahl QZ2' durch bitweise XOR-Verknüpfung der Zufallszahl PZ mit der zweiten Quantenzufallszahl QZ2 ermittelt, so kann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 beispielsweise durch bitweise XOR-Verknüpfung der verschlüsselten zweiten Quantenzufallszahl QZ2' mit der ihm bekannten Zufallszahl PZ zur zweiten Quantenzufallszahl QZ2 entschlüsseln.The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Bevorzugt nutzt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 die ihm nun vorliegende zweite Quantenzufallszahl QZ2 als Grundlage für die Erzeugung eines zweiten privaten und eines zweiten öffentlichen Schlüssels gemäß einem asymmetrischen Verschlüsselungsverfahren. Bei dem asymmetrischen Verschlüsselungsverfahren kann es sich zum Beispiel um das RSA-Verfahren (ANHANG) handeln. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 verschickt nun seinen zweiten öffentlichen Schlüssel über den nicht abhörsicheren Kanal an den Server 3600. Hierbei verschlüsselt er bevorzugt diesen zweiten öffentlichen Schlüssel des Clients 3610 mit dem öffentlichen Schlüssel des Servers 3600. Der Server 3600 entschlüsselt den verschlüsselten zweiten öffentlichen Schlüssel des Clients 3610 und verwendet dann diesen zweiten öffentlichen Schlüssel des Clients für die Verschlüsselung weiterer Nachrichten an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client 3610. Bevorzugt erzeugt und sendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 nach einer vorbestimmten Zeit oder einer nach dem Versenden einer vorbestimmten Datenmenge an den Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 einen neuen öffentlichen Schlüssel auf Basis einer neuen Quantenzufallszahl seines Quantenzufallszahlengenerators 28 QRNG verschlüsselt mit dem zweiten öffentlichen Schlüssel des Clients 3610. Bevorzugt führen dann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 und der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients das zuvor beschriebene Verfahren erneut durch, sodass die Schlüssel permanent wechseln. Dies macht es auch einem Quantencomputer unmöglich, die Schlüssel zu brechen.Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
Hierdurch kann nach Austausch dieser Schlüssel die Kommunikation auf Basis des gewählten asymmetrischen Verschlüsselungsverfahrens durchgeführt werden.This means that after exchanging these keys, communication can be carried out based on the selected asymmetric encryption method.
Figur 18Figure 18
Das Verfahren 3700 beginnt mit der Erzeugung 3710 eines zufälligen Einzelphotonenstroms (57, 58, 59, 44) mittels einer oder mehrerer Photonenquellen 54 bzw. einer oder mehrerer Silizium-LEDs 54 bzw. einer oder mehrerer erster SPAD-Dioden (54), die vorzugsweise in einem Halbleitermaterial 49 einstückig gefertigt sind.The
Das Verfahren 3700 setzt sich fort mit der Übertragung 3720 des zufälligen Einzelphotonenstroms (57, 58, 59, 44) beispielsweise mittels eines vom Halbleitersubstrat (49, 48) verschiedenen Lichtwellenleiters 44 oder mittels des Halbleitersubstrats 49 als Lichtwellenleiter oder mittels direkter Einstrahlung an einen oder mehreren Photonendetektoren 55 bzw. eine oder mehrere zweite SPAD-Dioden 55.The
Es folgt in dem Verfahren 3700 die Wandlung 3730 des zufälligen Einzelphotonenstroms (57, 58, 59, 44) in ein Detektionssignal in Form eines Spannungssignal 405 der Entropie Quelle 401, die bevorzugt die Photonenquellen 54 bzw. die Silizium-LEDs 54 bzw. die ersten SPAD-Dioden 54 und das optische System zur optischen Kopplung und die Photonendetektoren 55 bzw. die zweiten SPAD-Dioden 55 umfasst. Das optische System kann eine direkte optische Kopplung dieser Bauelemente umfassen und/oder einen Lichtwellenleiter 44 umfassen.This is followed in the
Dann folgt in dem Verfahren 3700 das Aufbereiten 3740, insbesondere ein Verstärken und/oder ein Filtern und/oder ein Analog-zu-Digital-Wandeln, des Detektionssignals in ein aufbereitetes Detektionssignal, insbesondere einen digitalen 14 Bit-Wert 407 des Analog-zu-Digital-Wandlers 403 bzw. eines 1-Bit-Analog-zu-Digitalwandlers.Then, in the
Dann erfolgt in dem Verfahren 3700 optional das Abtrennen 3750 der durch Kopplungen der Emissionen einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 einerseits und einem Photonendetektor 55 bzw. einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals von den durch spontane Emission entstandenen Pulsen des aufbereiteten Detektionssignals durch Vergleich des aufbereiteten Detektionssignals mit einem Schwellwert, insbesondere in einem Komparator 404.2 und die Erzeugung eines entsprechenden Ausgangssignals 409, insbesondere des Komparators 404.2. Ggf. kann der Analog-zu-Digital-Wandler 403 das Ausgangssignal 409 direkt erzeugen, wenn es sich um einen 1-Bit Analog-zu-Digitalwandler 403 handelt. Insofern ist dieser Schritt 3750 optional und ist daher nur gestrichelt eingezeichnet.Then, in the
Sodann folgt die Ermittlung 3760 einer ersten Pseudozufallszahl in Abhängigkeit von einem ersten zeitlichen Abstand zwischen dem ersten Puls und dem zweiten Puls eines ersten Paares aus zwei aufeinander folgenden, durch optische Kopplungen der Emissionen einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors 55 bzw. einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals, als ersten Werts des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3.This is followed by the
Sodann folgt die Ermittlung 3765 zweiten ersten Pseudozufallszahl in Abhängigkeit von einem zweiten zeitlichen Abstand zwischen dem dritten Puls und dem vierten Puls eines zweiten Paares aus zwei aufeinander folgenden, durch optische Kopplungen der Emissionen einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors 55 bzw. einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals, als zweiten Werts des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3.This is followed by the
Auf dieser Basis erfolgt dann die Ermittlung 3670 des Bit-Werts eines Quantenzufallsbits 411 durch Vergleich des Werts der ersten Pseudozufallszahl und des Werts der zweiten Pseudozufallszahl.On this basis, the bit value of a quantum
In einer letzten Überprüfung 3680 überprüfen der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) und/oder eine Finite-State-Machine 404.8, ob die Anzahl n der ermittelten Zufallsbits noch kleiner als die gewünschte Zahl m der Zufallsbits der gewünschten Quantenzufallszahl ist. Sofern dies nicht der Fall ist wiederholen der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) und/oder Finite-State-Machine 404.8 die vorstehenden Schritte 3710 bis 3770. Ansonsten beenden der Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) bzw. die Finite-State-Machine 404.8 den Prozess zur Erzeugung einer Quantenzufallszahl. Ggf. stellt die Finite-State-Machine 404.8 die Quantenzufallszahl dem Prozessor 10-1 zur Verfügung und signalisiert vorzugsweise dem Prozessor 10-1 diese Verfügbarkeit, beispielsweise durch einen Interrupt über ein Interrupt-Signal 420 oder durch das Setzen eines Flags.In a final check 3680, the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) and/or a finite state machine 404.8 check whether the number n of random bits determined is still smaller than the desired number m of random bits of the desired quantum random number. If this is not the case, the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) and/or finite state machine 404.8 repeat the
Vorzugsweise steuern der Prozessor 10-1 und/oder die Finite-State-Machine 404.8 diesen Prozess der Erzeugung einer Quantenzufallszahl.Preferably, the processor 10-1 and/or the finite state machine 404.8 control this process of generating a quantum random number.
Figur 19Figure 19
Der beispielhafte einstückige, monolithisch integrierte Schaltkreis 2, beispielsweise der Mikrocontroller, umfasst hier ein oder mehrere Prozessoren 10-1, 10-2; einen Bus-Arbiter 82; einen internen Datenbus 419; einen Lesespeicher ROM 19; einen flüchtigen Schreib-Lesespeicher RAM 8; einen ersten nicht flüchtigen, mehrfach programmierbaren Speicher NVM 6; einen zweiten nicht flüchtigen, mehrfach programmierbaren Speicher NVM 30; einen ersten nicht flüchtigen, nur einmal programmierbaren Speicher OTP I 20; einen zweiten nicht flüchtigen, nur einmal programmierbaren Speicher OTP II 22; einen Testcontroller 12, insbesondere einen JTAG-Testcontroller; eine Schaltung (Block) 24 zur Deaktivierung von Tests; eine oder mehrere Datenbusschnittstellen 64; einen eng gekoppelten Speicher TCM 14; eine Schnittstelle 32 zu einem von dem integrierten Schaltkreis 2, beispielsweise von dem Mikrocontroller, kontrollierten System 32; einen Quantenzufallszahlengenerator 28; eine Reset-Schaltung 83; eine analoge Eingangsverarbeitung 84, einen Analog-zu-Digital-Wandler 85; eine digitale Signalverarbeitung 86; einen oder mehrere Digital-zu-Analog-Wandler 87; eine analoge Ausgangsverarbeitung 88; einen oder mehrere Spannungswandler 91;The exemplary one-piece, monolithic
Der eine Spannungswandler 91 oder die mehreren Spannungswandler 91 erzeugen aus den externen Versorgungsspannungen die notwendigen internen Betriebsspannungen des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers. Da insbesondere die Entropiequelle 401 in der Regel eine größere Betriebsspannung als die von extern bereitgestellten Versorgungsspannungen benötigt, umfasst bevorzugt zumindest einer der Spannungswandler der Spannungswandler 91 eine Ladungspumpe (Englisch Charge Pump) oder dergleichen. Typischerweise umfassen solche Spannungswandler 91 hier DMOS-Transistoren.The one
Eine analoge Eingangsverarbeitung 84 erfasst ein oder mehrere externe analoge Signale 89 und bereitet diese für die Analog-zu-Digitalwandlung auf. Beispielsweise kann die analoge Eingangsverarbeitung 84 ein oder mehrere Verstärker, Filter, Analog-Addierer, Analogmultiplizierer, Logarithmierer, Exponentierer, Spannungsquellen, Stromquellen und/oder andere analoge Schaltungen zur Anpassung, Verbesserung oder Veränderung der externen analogen Signale 89 umfassen.An
Ein Analog-zu-Digital-Wandler 85 kann die dermaßen aufbereiteten externe analoge Signale 89 dann zu einem Datenstrom digitaler Abtastwerte der externen analogen Signale 89 beispielsweise mit einer Abtastfrequenz, die typischerweise von dem Systemtakt 2106 abhängt, wandeln.An analog-to-
Eine digitale Signalverarbeitung 86 kann die digitalisierten und aufbereiteten externen analogen Signale 89 dann mittels Schaltungen, die schaltungsimplementierte Verfahren durchführen, und/oder computerimplementierten Verfahren zu digitalen Ausgangssignalen wandeln. Die digitale Signalverarbeitung 86 kann auch digitale Ausgangssignale neu erzeugen. Typischerweise arbeitet die digitale Signalverarbeitung 86 mit dem Systemtakt 2106. Bei der Erzeugung dieser beiden Ausgangssignalgruppen kann die digitale Signalverarbeitung 86 Quantenzufallszahlen des Quantenzufallszahlengenerators 28 verwenden. Sofern die digitale Signalverarbeitung 86 beispielsweise ein moduliertes Anregungssignal für einen Sensor erzeugen soll und ein Antwortsignal dieses Sensors als externes analogen Signal 89 nach Aufbereitung und Digitalisierung wieder auswerten soll, ist es beispielsweise in einigen Anwendungsfällen sinnvoll, wenn die digitale Signalverarbeitung 86 eine solche Quantenzufallszahl als Spreizcode für die Erzeugung des Anregungssignals des Sensors verwendet und dann beispielsweise mittels eines Synchrondemodulators diesen Spreizcode im externen analogen Signal 89 sucht und detektiert.A
Der oder die Digital-zu-Analog-Wandler 87 wandelt die digitalen Ausgangssignale des digitale Signalverarbeitung 86 zu internen analogen Ausgangssignalen.The digital-to-analog converter(s) 87 converts the digital output signals of the
Die eine analoge Ausgangsverarbeitung 88 bereitet die analogen internen Ausgangssignale zu analogen Ausgangssignalen 90 auf. Beispielsweise kann die analoge Ausgangsverarbeitung 88 Filter, Verstärker und Endstufen umfassen.The
Die Rest-Schaltung 83 bringt den integrierte Schaltkreis 2, beispielsweise den Mikrocontroller, in einen vordefinierten Zustand. Ein solcher Reset kann beispielsweise erfolgen, wenn die Betriebsspannung eingeschaltet wird oder wenn die Betriebsspannung einbricht oder wenn einer der Prozessoren 10-1, 10-2 beispielsweise über den Datenbus 419 oder eine SW-Rest-Signalisierungsleitung einen solchen Rest bei der Reset-Schaltung 83 anfordert oder wenn ein Mittel zur Überwachung der korrekten Funktion des Quantenzufallsgenerators 28 (Watchdog 404.5, Spannungsmonitor 2013) einen Fehler einer vordefinierten Menge von Fehlern detektiert. Dies ermöglicht einen Neustart des Systems.The
Der Quantenzufallszahlengenerator 28 weist bevorzugt die hier vorgestellten Merkmale auf. Ganz besonders bevorzugt umfasst der Quantenzufallszahlengenerator 28 einen Zeit-zu-Pseudozufallszahlengenerator 404.3.The quantum
Vorzugsweise umfasst der Quantenzufallszahlengenerator 28 Mittel zur Überwachung der korrekten Funktion des Quantenzufallszahlengenerators 28. Solche Mittel können beispielsweise ein Spannungsmonitor 413und/oder ein Watchdog 404.5 sein. Diese Mittel erzeugen typischerweise bei einem Fehler und/oder einem vermuteten Angriff ein Interrupt Signal 420.Preferably, the quantum
Auch andere Schaltungsteile des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, können Interrupts mittels ggf. weiterer Interrupt-Leitungen auslösen. Eine Interrupt-Logik in den Prozessoren steuert das Verhalten der Prozessoren 10-1, 10-2.Other circuit parts of the
Bevorzugt führen die Prozessoren 10-1, 10-2 computerimplementierte Verfahren aus, deren Programmcode sie aus Speichern der Vorrichtung bei der Ausführung abrufen und ausführen. In einem oder mehreren dieser computerimplementierten Verfahren verwenden die Prozessoren 10-1, 10-2 Quantenzufallszahlen des Quantenzufallszahlengenerators 28. Sofern die besagten Mittel des Quantenzufallszahlengenerators 28 zur Überwachung der korrekten Funktion des Quantenzufallszahlengenerators 28 beispielsweise mittels der Interrupt-Leitung 420 einen Fehler des Quantenzufallszahlengenerators 28 signalisieren, führen die Prozessoren 10-1, 10-2 vorzugsweise andere computerimplementierte Ersatzverfahren an Stelle dieser computerimplementierten Verfahren aus oder modifizieren Parameter dieser computerimplementierten Verfahren oder führen diese computerimplementierten Verfahren vorzugsweise zumindest solange der Fehler besteht überhaupt nicht mehr aus.Preferably, the processors 10-1, 10-2 execute computer-implemented methods, the program code of which they retrieve from memories of the device during execution and execute. In one or more of these computer-implemented methods, the processors 10-1, 10-2 use quantum random numbers of the quantum
Die Schaltung (Block) 24 zur Deaktivierung von Tests, hier auch als Deaktivierungsschaltung bezeichnet, ist vorzugsweise in der Lage, den Zugriff von Metakunden der Kunden des Halbleiterherstellers und der Kunden des Halbleiterherstellers und der Analyseabteilung des Halbleiterherstellers des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, auf Schaltungsteile und Inhalte von Speichern des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, zu steuern und zu unterbinden oder zuzulassen. Typischerweise kann die Deaktivierungsschaltung 24 beispielsweise die Aktivierung vorbestimmter Testmodis erlauben oder unterbinden. Hierzu können beispielsweise die Freischaltung von Scanpfaden und der Zugriff auf Speicherinhalte gehören.The circuit (block) 24 for deactivating tests, also referred to here as the deactivation circuit, is preferably able to control and prevent or allow access by meta-customers of the customers of the semiconductor manufacturer and the customers of the semiconductor manufacturer and the analysis department of the semiconductor manufacturer of the
Bevorzugt kann der Prozessor 10-1, 10-2 nur einen Teil der Zugriffe durch eine Umkonfiguration der Deaktivierungsschaltung 24 beeinflussen. Somit sind bestimmte Schaltungs- und Speicherbereiche für einen Zugriff nach Prozessoraktivierung durch einen Prozessor 10-1, 10-2 nicht zugänglich. Damit sind diese Schaltungs- und Speicherbereiche gegenüber einer Prozessoraktivierung des Zugriffs geschützt. Es kann vorgesehen sein, dass gar keine Prozessoraktivierung durch einen Prozessor 10-1, 10-2 möglich ist.Preferably, the processor 10-1, 10-2 can only influence some of the accesses by reconfiguring the
Bevorzugt kann die Test-Schnittstelle (JTAG-Schnittstelle) 12 nur einen Teil der Zugriffe durch eine Umkonfiguration der Deaktivierungsschaltung 24 beeinflussen. Somit sind bestimmte Schaltungs- und Speicherbereiche für einen Zugriff nach Testcontrolleraktivierung durch e die Test-Schnittstelle (JTAG-Schnittstelle) 12 nicht zugänglich. Damit sind diese Schaltungs- und Speicherbereiche gegenüber einer Testcontrolleraktivierung des Zugriffs geschützt. Es kann vorgesehen sein, dass gar keine Testcontrolleraktivierung durch die Test-Schnittstelle (JTAG-Schnittstelle) 12 möglich ist.Preferably, the test interface (JTAG interface) 12 can only influence some of the accesses by reconfiguring the
Die Aktivierung von Zugriffen kann beispielsweise durch Einschreiben von Zugriffscodes in den zweiten nicht flüchtigen, nur einmal programmierbaren Speicher OTP II 22 erfolgen.Access can be activated, for example, by writing access codes into the second non-volatile, once-programmable
Der Inhalt des ersten, nicht flüchtigen und nur einmal programmierbaren Speichers OTP 120 kann beispielsweise kritische Systemparameter (CSPs) umfassen.The contents of the first, non-volatile and only once programmable memory OTP 120 can, for example, include critical system parameters (CSPs).
Der Inhalt des zweiten, nicht flüchtigen und nur einmal programmierbaren Speichers OTP II 22 kann beispielsweise Zugriffscodes umfassen.The contents of the second, non-volatile and only once programmable memory OTP II 22 can include, for example, access codes.
Der erste flüchtige, mehrfach programmierbare Speicher NVM 6 kann ein EEPROM und/oder einen Flash-Speicher oder dergleichen umfassen. Der Speicherinhalt des ersten flüchtigen, mehrfach programmierbaren Speichers NVM 6 kann beispielsweise Datensätze 61 und Signaturen 61 umfassen.The first volatile,
Der flüchtige Schreiblesespeicher RAM 8 kann ein SRAM und/oder ein DRAM oder dergleichen umfassen.The volatile random
Der zweite Prozessor 10-2 soll in der
Der Bus-Arbiter 82 regelt den Zugang der Vorrichtungsteile des beispielhaften einstückigen, monolithisch integrierten Schaltkreis 2, beispielsweise des Mikrocontrollers, einen aktiv schreibenden Zugriff auf den internen Datenbus 419 erlangen wollen. In dem Fall der
Die obige Beschreibung erhebt keinen Anspruch auf Vollständigkeit und beschränkt diese Offenbarung nicht auf die gezeigten Beispiele. Andere Variationen zu den offengelegten Beispielen können von denjenigen, die über gewöhnliche Fachkenntnisse auf dem Gebiet verfügen, anhand der Zeichnungen, der Offenbarung und der Ansprüche verstanden und ausgeführt werden. Die unbestimmten Artikel „ein“ oder „eine“ und dessen Flexionen schließen eine Vielzahl nicht aus, während die Erwähnung einer bestimmten Anzahl von Elementen nicht die Möglichkeit ausschließt, dass mehr oder weniger Elemente vorhanden sind. Eine einzige Einheit kann die Funktionen mehrerer in der Offenbarung genannter Elemente erfüllen, und umgekehrt können mehrere Elemente die Funktion einer Einheit erfüllen. Zahlreiche Alternativen, Äquivalente, Variationen und Kombinationen sind möglich, ohne dass der Anwendungsbereich der vorliegenden Offenbarung verlassen wird.The above description is not exhaustive and does not limit this disclosure to the examples shown. Other variations to the disclosed examples can be understood and practiced by those of ordinary skill in the art from the drawings, the disclosure and the claims. The indefinite articles "a" or "an" and their inflections do not exclude a plurality, while the mention of a certain number of elements does not exclude the possibility of more or fewer elements being present. A single unit may perform the functions of several elements mentioned in the disclosure and, conversely, several elements may perform the function of a unit. Numerous alternatives, equivalents, variations and combinations are possible without departing from the scope of the present disclosure.
Soweit nichts anders angegeben ist, können sämtliche Merkmale der vorliegenden Erfindung frei miteinander kombiniert werden. Dies betrifft die gesamte hier vorgelegte Schrift. Auch die in der Figurenbeschreibung beschriebenen Merkmale können, soweit nichts Anderes angegeben ist, als Merkmale der Erfindung frei mit den übrigen Merkmalen kombiniert werden. Eine Beschränkung einzelner Merkmale der Ausführungsbeispiele auf die Kombination mit anderen Merkmalen der Ausführungsbeispiele ist dabei ausdrücklich nicht vorgesehen. Außerdem können gegenständliche Merkmale der Vorrichtung umformuliert auch als Verfahrensmerkmale Verwendung finden und Verfahrensmerkmale umformuliert als gegenständliche Merkmale der Vorrichtung. Eine solche Umformulierung ist somit automatisch mit offenbart.Unless otherwise stated, all features of the present invention can be freely combined with one another. This applies to the entire document presented here. The features described in the description of the figures can also be freely combined with the other features as features of the invention, unless otherwise stated. A restriction of individual features of the exemplary embodiments to the combination with other features of the exemplary embodiments is expressly not intended. In addition, material features of the device can be reformulated and used as process features, and process features can be reformulated as material features of the device. Such a reformulation is therefore automatically disclosed.
In der vorausgehenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen verwiesen. Die Beispiele in der Beschreibung und den Zeichnungen sollten als illustrativ betrachtet werden und sind nicht als einschränkend für das beschriebene spezifische Beispiel oder Element zu betrachten. Aus der vorausgehenden Beschreibung und/oder den Zeichnungen und/oder den Ansprüchen können durch Abänderung, Kombination oder Variation bestimmter Elemente mehrere Beispiele abgeleitet werden. Darüber hinaus können Beispiele oder Elemente, die nicht wörtlich beschrieben sind, von einer fachkundigen Person aus der Beschreibung und/oder den Zeichnungen abgeleitet werden.In the foregoing detailed description, reference is made to the accompanying drawings. The examples in the description and drawings should be considered as illustrative and are not to be considered as limiting the specific example or element described. Multiple examples may be derived from the foregoing description and/or drawings and/or the claims by modifying, combining or varying certain elements. In addition, examples or elements not described verbatim may be derived from the description and/or drawings by a person skilled in the art.
Figur 20Figure 20
Ein Problem ist, dass die Pulse auf dem Spannungssignal 405 der Entropie Quelle 401 in der Regel kürzer als die Frequenz des Systemtakts 2106 sind. Dies hat zur Folge, dass eine direkte Abtastung des Spannungssignals 405 der Entropie Quelle 401 mit einer Abtastfrequenz gleich der Frequenz des Systemtakts 2106 nicht mehr die Nyquist-Bedingung erfüllt. Daher ist dem beispielhaften 1-Bit-Analog-Digital-Converter (ADC) 403 eine Pulsverlängerungsschaltung 2023 nachgeschaltet, die einen Puls auf dem Spannungssignal 405 der Entropie Quelle 401 auf eine zeitliche Länge größer als eine Taktperiode des Systemtakts 2106 verlängert und den erzeugten Puls bevorzugt synchron zum Systemtakt 2106 beendet, sodass der Puls auf dem Spannungssignal 405 der Entropie Quelle 401 sicher durch ein Nachfolgendes FlipFlop einsynchronisiert werden kann. Das so erzeugte Der Prozessor 10-1, 10-2 kann über den internen Datenbus 419 vorzugsweise auf die Register des Watchdogs 404.5, den Speicher RAM 404.9 bzw. das Fifo 404.9 und das Finish Flag 404.10 zugreifen und diese lesen und soweit erlaubt oder möglich diese beschreiben. Bevorzugt signalisiert das Finish Flag 404.10 über eine nicht eingezeichnete Interrupt-Leitung dem Prozessor 10-1, 10-2, dass eine neue Quantenzufallszahl im RAM/FiFo 404.9 zur Verfügung steht. Bevorzugt löscht ein Lesen des Inhalts des RAMs/FiFos dieses Finish-Flag 404.10 wieder. Um Energie zu sparen, ist es sinnvoll, Vorrichtungsteile des Quantenzufallszahlengenerators 28 abzuschalten, wenn das Finish-Flag 404.10 gesetzt ist. Vorzugsweise kann der Prozessor 10-1, 10-2 über den Datenbus 419 auf Vorrichtungsteile des Quantenzufallszahlengenerators 28 zugreifen und durch Setzen oder Löschen von Flags in den Registern dieser Vorrichtungsteile bestimmte Teile des Quantenzufallszahlengenerators 28 an- und abschalten. Diese Vorrichtungsteile können beispielsweise sein: Der Spannungsmonitor 419, ein Spannungswandler 91 des Quantenzufallszahlengenerators 28, insbesondere eine Ladungspumpe zur Versorgung der Entropiequelle 401, der ADC 403, die Pulsverlängerungsschaltung 2023, der Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) 404.3, die Entropieextraktion 404.4, die Finite-State-Machine 404.8. Vorzugsweise wertet der Watchdog 404.5 diese Registerbits mit aus und überprüft, ob eine Freigaberegister in seinem Innern einen zulässigen Authentifizierungscode für diese An- oder Abschaltungen aufweist. Die Finite-State-Machine 404.8 wertet bevorzugt diese Flags ebenfalls aus und lässt bevorzugt nur dann die Erzeugung von Quantenzufallszahlen 418 zu, wenn alle Teile des Quantenzufallszahlengenerators 28 arbeiten.One problem is that the pulses on the
Das einsynchronisiertes Spannungssignal 415 kann dann wie oben beschrieben verarbeitet werden. Hinsichtlich der übrigen Vorrichtungsteile verweist das hier vorgelegte Dokument auf die vorausgehenden Beschreibungen. The
Figur 21Figure 21
Um Abgriffe weiter zu erschweren, ist es sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 das Rückkoppelpolynom des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl m von Zufallsquantenbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Zufallsquantenbits 411 ändert.In order to make tapping even more difficult, it is useful if, for example, the quantum
Folgende einfach Primitiven Rückkoppelpolynome sind beispielsweise aus der Literatur beispielsweise bekannt:
Wie leicht zu erkennen ist, ist die Anzahl der XNOR-Verknüpfungen sehr beschränkt, was die linear rückgekoppelten Schieberegister sehr schnell macht. Die längste aufgeführte Kette hat eine Länge von 2168-1 Takten bei einer Schieberegisterlänge von n=168 Schieberegisterbits. Bei einem GHz=109 Hz dauert eine Periode 2159 Sekunden oder anders ca. 2153 Minuten oder anders ca. 2147 Stunden oder anders ca. 2142 Tage oder anders (schon sehr grob) ca. 2131 Jahre. Offensichtlich dauert es zu lange, um das Problem in endlicher Zeit mit einem normalen Computer zu lösen. Die in Kombination mit einem permanenten Quantenzufallszahlenschlüsselwechsel macht es einem Angreifer fast unmöglich, die entsprechende Barriere zu brechen.As can easily be seen, the number of XNOR operations is very limited, which makes the linear feedback shift registers very fast. The longest chain listed has a length of 2 168 -1 clock cycles with a shift register length of n=168 shift register bits. At a GHz=10 9 Hz, a period lasts 2 159 seconds, or in other words about 2 153 minutes, or in other words about 2 147 hours, or in other words about 2 142 days, or in other words (very roughly) about 2 131 years. It obviously takes too long to solve the problem in a finite time with a normal computer. This, in combination with a permanent quantum random number key change, makes it almost impossible for an attacker to break the corresponding barrier.
Um ein brechen des Schutzes des Quantenzufallszahlengenerators 28 zu verhindern, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 die Schieberegisterlänge n des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl k von Zufallsquantenbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Zufallsbits ändert. Hierzu ist es sinnvoll, wenn der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder ein Prozessor (10-1, 10-2) den Wert des Rückkoppelpolynom-Auswahlregisters 2112 zu diesem Zweck neu beschreibt. Der in dem Rückkoppelpolynom-Auswahlregister 2112 gespeicherte Wert steuert bevorzugt den Rückkoppelmultiplexer 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Damit selektiert der in dem Rückkoppelpolynom-Auswahlregister 2112 gespeicherte Wert vorzugsweise, welches Rückkoppelpolynom der m Rückkoppelpolynom-Schaltungen RKN1 bis RKNm den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bestimmt. Vorzugsweise verhindern mittels einer Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8 der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung die Weitergabe eines erzeugten Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8, wenn dieses Zufallsbit 411 für das Rückkoppelpolynom-Auswahlregister 2112 verwendet wird. Dies verhindert eine Doppelnutzung und erhöht somit die Sicherheit. Stattdessen verwenden bevorzugt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung dieses Zufallsbit 411 für die Erzeugung eines Zufallsdatenworts zur Einspeicherung in das Rückkoppelpolynom-Auswahlregister 2112. Dies hat den Vorteil, dass das durch das Rückkoppelpolynom-Auswahlregister 2112 ausgewählte Rückkoppelpolynom der m Rückkoppelpolynom-Schaltungen RKN1 bis RKNm vollkommen zufällig ist. Damit ist es einem Angreifer nicht mehr möglich, einen deterministischen Bitdatenstrom an Stelle des Datenbitstroms der Quantenzufallsbits 411 einzuspeisen und zwar auch dann, wenn ein Angriff auf die Entropiequelle 401 erfolgreich ist.In order to prevent the protection of the quantum
Um den vorgeschlagenen mikrointegrierten Quantenzufallszahlengenerator 28 weiter zu härten, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 den Start-Wert (Seed-Wert) des linear rückgekoppelten Schieberegisters des Pseudozufallszahlengenerators des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) nach der vollständigen Bestimmung einer Anzahl p von Zufallsquantenbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Zufallsbits ändert. Hierzu ist es sinnvoll, wenn der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder ein Prozessor (10-1, 10-2) den Wert eines Seed-Nachladeregisters im Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu diesem Zweck mit Zufallsbits neu beschreibt. Die Bitbreite des eines Seed-Nachladeregisters im Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) entspricht bevorzugt der Zahl n der Schieberegisterbits SB1 bis SBn des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Der Schieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zählt bevorzugt die Anzahl der erfolgreich erzeugten Quantenzufallsbits 411. Vorzugsweise signalisiert die Finite-State-Machine 404.8 dem Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu diesem Zweck die Erzeugung eines gültigen Zufallsbits. Statt der Zählung der gültigen Quantenzufallsbits 411 ist auch die Zählung der erfolgreich erzeugten Zufallsdatenworte 418 in der Finite-State-Machine 404.8 möglich. Der Schieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) lädt bevorzugt den neuen Seed-Wert des eines Seed-Nachladeregisters im Schieberegistercontroller 2103 bei einer oder mehreren der nachfolgenden Ereignisse in die Schieberegisterbits SB1 bis SBn des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC)
- • bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Quantenzufallsbits 411 und/oder
- • bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Zufallsdatenworte 418 und/oder
- • bei Änderung des Werts des Rückkoppelpolynom-
Auswahlregisters 2112 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) und damit des ausgewählten Rückkoppelpolynoms der m Rückkoppelpolynome RKN1 bis RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC).
- • upon reaching a predetermined number of successfully generated quantum
random bits 411 and/or - • upon reaching a predetermined number of successfully generated
random data words 418 and/or - • when changing the value of the feedback
polynomial selection register 2112 of the time-to-pseudo-random number converter 404.3 (TPRC) and thus of the selected feedback polynomial of the m feedback polynomials RKN 1 to RKN m of the time-to-pseudo-random number converter 404.3 (TPRC).
Dies Verhindert zuverlässig jede Art von Vorhersagbarkeit.This reliably prevents any kind of predictability.
Bevorzugt sind die Schaltungsteile des Quantenzufallszahlengenerators 28 mit einer Metallschicht 142, 53 abgedeckt, um jede Einflussnahme durch Temperatur oder elektromagnetische Strahlung oder elektrostatische Felder oder magnetische Felder abzuwehren. Bevorzugt umfasst die Metallschicht auch eine weichmagnetische Schicht zur Abwehr von Angriffsversuchen mittels magnetischer Felder.Preferably, the circuit parts of the quantum
Vorzugsweise verhindern mittels einer Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8 der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung die Weitergabe eines erzeugten Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8, wenn dieses Zufallsbit 411 für das Seed-Nachladeregisters im Schieberegistercontroller 2103 im Zeit-zu-Pseudozufallszahl-Wandler 404.3 (TPRC) verwendet wird. Dies verhindert eine Doppelnutzung und erhöht somit die Sicherheit. Stattdessen verwenden bevorzugt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung dieses Zufallsbit 411 für die Erzeugung eines Zufallsdatenworts zur Einspeicherung in das Seed-Nachladeregisters im Schieberegistercontroller 2103. Dies hat den Vorteil, dass der durch das Seed-Nachladeregisters im Schieberegistercontroller 2103 ausgewählte Seed-Wert des linear rückgekoppelten Schieberegisters der n Schieberegisterbits SB1 bis SBn vollkommen zufällig ist. Da ein linear rückgekoppeltes Schieberegister bei Verwendung von einfach primitivem Rückkoppelpolynomen zwei Zyklen aufweist, von denen einer nur einen Schieberegisterwert umfasst, muss dieser eine ein-zyklige Schieberegisterwert verhindert werden. Entsprich zufällig Nachladewert des Seed-Nachladeregisters im Schieberegistercontroller 2103 dem ein-zykligen Seed-Wert des linear rückgekoppelten Schieberegisters mit dem aktuellen Rückkoppelpolynom oder dem als nächstes vorgesehenen Rückkoppelpolynom, so Erzeugen der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung einen neuen zufälligen Nachladewert im Seed-Nachladeregister des Schieberegistercontrollers 2103.Preferably, by means of a line 2022 for preventing the use of a quantum
Bevorzugt sind die m Rückkoppelpolynome RKN1 bis RKNm so ausgewählt, dass die ein-zykligen Seed-Werte gleich sind. Dies reduziert den Aufwand für die Detektion des ein-zykligen-Schieberegisterwerts, da dann dieser nicht mehr von dem ausgewählten Rückkoppelpolynom der Rückkoppelpolynome RKN1 bis RKNm abhängt. Ohnehin ist zu empfehlen, dass der Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) im Falle der Verwendung linearrückgekoppelter Schieberegister eine Detektionsschaltung 2113 zur Detektion eines illegalen Werts des Zustandsvektors der n Schieberegisterbits SB1 bis SBn umfasst. Befindet sich der Zustandsvektor der n Schieberegisterbits SB1 bis SBn in einem solchen illegalen Zustand, so signalisiert vorzugsweise der Detektor 2113 diesen illegalen Zustand an den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einer der Prozessoren (10-1, 10-2) oder eine andere Vorrichtung. Der Detektor 2113 oder der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder der Prozessor (10-1, 10-2) oder die andere Vorrichtung setzen dann den Wert des Zustandswerts des Zustandsvektors der n Schieberegisterbits SB1 bis SBn auf einen vorbestimmten Wert und/oder den Wert des Seed-Nachladeregisters im Schieberegistercontroller 2103 zurück. Bevorzugt sind diese Nachladewerte von dem ein-zykligen Schieberegisterwert verschieden. Dies geschieht bevorzugt auch, wenn der Watchdog 404.5 und/oder der Spannungsmonitor 413eine Störung oder einen vermuteten oder möglichen Angriff detektieren. Bevorzugt zählt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) die Anzahl dieser Störungen. Vorzugsweise reduziert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) diesen Zählerwert wieder in Abhängigkeit von der Anzahl erfolgreich insbesondere seit der letzten Störung erzeugter Zufallsquantenbits 411 und/oder Zufallsdatenworte 418. Überschreitet diese Anzahl und/oder die Ereignisdichte solcher Ereignisse eine bestimmte vorgegebene zeitliche Dichte und/oder einen bestimmten Zahlenwert, so signalisiert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise an den Watchdog 404.5 und/oder einen Prozessor (10-1, 10-2) einen Defekt des Quantenzufallszahlengenerators 28 oder einen erfolgreichen Angriff auf den Quantenzufallszahlengenerator 28. Typischerweise signalisiert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) der Finite-State-Machine 404.8 dann dass keine Zufallszahlen mehr erzeugt werden dürfen. Vorzugsweise muss ein Prozessor (10-1, 10-2) dann den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mittels eines vorbestimmten Reaktivierungs-Kode-Worts reaktivieren. Der Prozessor (10-1, 10-2) schreibt dieses Reaktivierungs-Kode-Wort dann über den interner Datenbus 419 des Quantenzufallszahlengenerators 28 in ein spezielles Reaktivierungsregister des Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), was den Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) und den Quantenzufallszahlengenerator 28 reaktiviert und vorzugsweise alle Fehlerzähler zurücksetzt. Vorzugsweise ist die Zahl der möglichen Reaktivierungen begrenzt. Ist die Maximalzahl der Reaktivierungen überschritten, so kann der Quantenzufallszahlengenerator 28 bevorzugt nicht mehr reaktiviert werden. Vorzugsweise kann der Zähler für die Reaktivierungen des der Quantenzufallszahlengenerators 28 mittels eines besonderen Rücksetzbefehls zurückgesetzt werden bevor dieser Maximalwert erreicht ist. Bevorzugt gibt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 oder eine andere Vorrichtung des Quantenzufallszahlengenerators 28 vor Erreichen dieses Blockierungsgrenze eine Warnung heraus.Preferably, the m feedback polynomials RKN 1 to RKN m are selected such that the one-cycle seed values are equal. This reduces the effort for detecting the one-cycle shift register value, since this no longer depends on the selected feedback polynomial of the feedback polynomials RKN 1 to RKN m . In any case, it is recommended that the time-to-pseudorandom number converter 404.3 (TPRC) includes a
Beim Start des Quantenzufallszahlengenerators 28 trägt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als erstes dafür Sorge, dass der der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mittels eines vorbestimmten Seed-Werts und eines vorbestimmten Werts des Rückkoppelpolynom-Auswahlregisters 2112 zuerst einen neuen Seed-Wert auf Basis von Quantenzufallszahlen 411 und einen neuen Wert des Rückkoppelpolynom-Auswahlregisters 2112 auf Basis von Quantenzufallszahlen aus Quantenzufallsbits 411 bestimmt. Erst wenn der Seed-Wert und der Wert des Rückkoppelpolynom-Auswahlregisters 2112 auf Quantenzufallszahlen beruhen, ist die Initialisierungsphase des Quantenzufallszahlengenerators 28 abgeschlossen und der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) signalisiert der Finite-State-Machine 404.8, dass sie die Quantenzufallsbits 411 und die Quantenzufallsdatenwörter 418 (Quantenzufallszahlen) verwenden und weitergeben darf. Bevorzugt signalisiert die Finite-State-Machine 404.8 diesen Umstand an einen oder mehrere Prozessoren (10-1, 10-2). Dies hat den Vorteil, dass die Vorrichtung nur mit vollem Schutz erzeugte Quantenzufallszahlen 418 erzeugt.When the quantum
Durch die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) ist es einem Angreifer nicht mehr möglich, einen deterministischen Bitdatenstrom an Stelle des Datenbitstroms der Quantenzufallsbits 411 einzuspeisen und zwar auch dann, wenn ein Angriff auf die Entropiequelle 401 tatsächlich aus welchen Gründen auch immer erfolgreich ist.By using a time-to-pseudorandom number generator 404.3 (TPRC), it is no longer possible for an attacker to feed in a deterministic bit data stream instead of the data bit stream of the quantum
Um dies zu verhindern, ist es auch sinnvoll, wenn beispielsweise der Quantenzufallszahlengenerator 28 diese Zahl m nach der vollständigen Bestimmung einer Anzahl m von Quantenzufallsbits 411 in Abhängigkeit von einem oder mehreren zuvor bestimmten Zufallsbits ändert.In order to prevent this, it is also useful if, for example, the quantum
Vorzugsweise gibt die Finite-State-Machine 404.8 des Quantenzufallszahlengenerator 28 diese bereits benutzten Quantenzufallsbits 411 nicht aus und verwendet sie nicht für die Erzeugung von Quantenzufallsdatenworten 418.Preferably, the finite state machine 404.8 of the quantum
Die Methode der Logikextraktion umfasst darüber hinaus drei Grenzfälle, die im Folgenden beschrieben werden.The logic extraction method also includes three borderline cases, which are described below.
Typischerweise verwendet der Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als Wert des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Ggf. kann ein Pufferverstärker vorgesehen sein, der den logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) erfasst und als Wert des Ausgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ausgibt.Typically, the time-to-pseudo-random number generator 404.3 (TPRC) uses the logical value of the shift register reload
Die Entropie-Extraktion 404.4 vergleicht nun zwei verschiedene, von dem Zeit-zu-Pseudozufallszahl-Wandler 404.3 (TPRC) erzeugte Pseudozufallszahlen aus dem Ausgang 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3, eine erste Pseudozufallszahl 410.1 und eine zweite Pseudozufallszahl 410.2, miteinander.The entropy extraction 404.4 now compares two different pseudorandom numbers generated by the time-to-pseudorandom number converter 404.3 (TPRC) from the
Sind die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2 gleich, so verwirft die Entropie-Extraktion 404.4 eine der beiden Pseudozufallszahl, die erste Pseudozufallszahl 410.1 oder die zweite Quantenzufallszahl 410.2, und ersetzt diese durch eine neue Pseudozufallszahl 410.3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt zählt die Entropie-Extraktion 404.4 mittels eines Zählers die Ereignisse, bei denen die beiden Pseudozufallszahl, die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2, gleich sind und erhöht mit jedem solchen Ereignis den Zähler um eine erste Zählerschrittweite. Bevorzugt zählt die Entropie-Extraktion 404.4 mittels dieses Zählers auch die Ereignisse, bei denen die beiden Pseudozufallszahlen, die erste Pseudozufallszahl 410.1 und die zweite Pseudozufallszahl 410.2, ungleich sind und erniedrigt mit jedem solchen Ereignis den Zähler um eine zweite Zählerschrittweite, wobei bevorzugt der Wert 0 nicht unterschritten wird. Bevorzugt ist die zweite Zählerschrittweite betragsmäßig kleiner als die erste Zählerschrittweite des Zählers in der Entropie-Extraktion 404.4. Sofern der Wert dieses Zählers einen vorbestimmten Wert überschreitet, geht die Steuervorrichtung der Entropie-Extraktion 404.4 von einem Defekt des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aus. Bevorzugt signalisiert die Steuervorrichtung der Entropie-Extraktion 404.4 dann einem Prozessor (10-1, 10-2) einen Defekt des Quantenzufallszahlengenerators 28 bzw. einen erfolgreichen Angriff auf den Quantenzufallszahlengenerator 28. Vorzugsweise signalisiert dann die Entropie-Extraktion 404.4 der Finite-State-Machine keine erfolgreiche Erzeugung eines Quantenzufallsbits 411 mehr, sodass die Finite-State-Machine 404.8 keine erfolgreiche Quantenzufallszahlenerzeugung mehr an einen Prozessor (10-1, 10-2) melden kann und keine Quantenzufallszahlen 418 mehr erzeugt.If the first pseudorandom number 410.1 and the second pseudorandom number 410.2 are equal, the entropy extraction 404.4 rejects one of the two pseudorandom numbers, the first pseudorandom number 410.1 or the second quantum random number 410.2, and replaces it with a new pseudorandom number 410.3 of the time-to-pseudorandom number converter 404.3 (TPRC). The entropy extraction 404.4 preferably uses a counter to count the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are the same, and increases the counter by a first counter step with each such event. The entropy extraction 404.4 preferably also uses this counter to count the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are not the same, and decreases the counter by a second counter step with each such event, preferably not falling below the
Sofern die erste Pseudozufallszahl 410.1 kleiner als die zweite Pseudozufallszahl 410.2 ist, erzeugt die Entropie-Extraktion 404.4 ein Quantenzufallsbit eines ersten logischen Werts, beispielsweise eine logische ,1' und signalisiert die erfolgreiche Erzeugung an die Finite-State-Machine 404.8.If the first pseudorandom number 410.1 is smaller than the second pseudorandom number 410.2, the entropy extraction 404.4 generates a quantum random bit of a first logical value, for example a logical '1', and signals the successful generation to the finite state machine 404.8.
Sofern die erste Pseudozufallszahl 410.1 größer als die zweite Pseudozufallszahl 410.2 ist, erzeugt die Entropie-Extraktion 404.4 ein Quantenzufallsbit eines zweiten logischen Werts, beispielsweise eine logische ,0', der von dem ersten logischen Wert verschieden ist, und signalisiert die erfolgreiche Erzeugung an die Finite-State-Machine 404.8.If the first pseudorandom number 410.1 is greater than the second pseudorandom number 410.2, the entropy extraction 404.4 generates a quantum random bit of a second logical value, for example a logical '0', which is different from the first logical value, and signals the successful generation to the finite state machine 404.8.
Die Finite-State-Machine wandelt die erfolgreich erzeugten Quantenzufallsbits 411 in Quantenzufallsdatenworte 418, die jeweils eine Quantenzufallszahl repräsentieren und stellt diese über ein RAM oder ein FIFO 404.9 den Prozessoren (10-1, 10-2) über den internen Datenbus 419 zur Verfügung. Die Finite-State-Machine 404.8 signalisier bevorzugt einem oder mehreren Prozessoren (10-1, 10-2) die Bereitstellung einer oder mehrerer Quantenzufallszahlen.The finite state machine converts the successfully generated quantum
Ein Problem kann ein Jitter des Systemtakts 2106 sein. Durch die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) wird eine monofrequente oder sonst wie systematische Störung des Systemtakts 2106 im Spektrum mit einem zufälligen Spreizkode gespreizt, sodass eine Detektion für einen Angreifer schwierig, wenn nicht unmöglich wird.One problem may be a jitter of the
Dies Erschwert die Angreifbarkeit des Quantenzufallszahlengenerators 28 weiter.This further complicates the vulnerability of the quantum
Durch die Verwendung von Quantenzufallszahlen aus Quantenzufallsbits 411 für den Seed-Wert des linear rückgekoppelten Schieberegisters des Zeit-zu-Pseudozufallszahlenwandlers und einer Quantenzufallszahl für die Auswahl des einfachprimitiven Rückkoppelpolynoms ist das Verhalten des Zeit-zu-Pseudozufallszahlen-Wandlers 404.2 (TPRC) selbst auf einem Zufalls-Niveau einer Quantenzufallszahl. Durch den regelmäßigen Wechsel dieser Werte, wird einem Angreifer die Beeinflussung der erzeugten Quantenzufallszahlen weiter erschwert.By using quantum random numbers from quantum
Demnach erreicht der vorschlagsgemäße Quantenzufallszahlengenerator 28 also alle genannten Ziele.Therefore, the proposed quantum
Insbesondere wird mit dem Vorschlag das Ziel erreicht, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der es ermöglicht, ein hohes Maß an Entropie zu garantieren, so dass er zumindest die vom NIST definierten statistischen Tests besteht.In particular, the proposal achieves the objective of providing a one-piece, micro-integrated quantum
Es ist ferner Aufgabe des Vorschlags, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der es ermöglicht, eine hohe Bitrate bei der Erzeugung von Zufallsfolgen von Quantenzufallsbits 411 und/oder Quantenzufallsdatenworten 418 zu erreichen.It is a further object of the proposal to provide a one-piece, micro-integrated quantum
Es ist ferner Aufgabe des Vorschlags, einen einstückigen, mikrointegrierten Quantenzufallszahlengenerator 28 bereitzustellen, der im Vergleich zu den Quantenzufallszahlengeneratoren des Standes der Technik eine kompaktere, robustere und weniger komplexe und vor allem mikrointegrierte und CMOS kompatible Struktur aufweist, die eine einstückige Fertigung und die Ko-Integration in konventionelle Systeme wie Speicher (wie DRAMS, SRAMS, Flash-Speicher und dergleichen) oder Prozessoren (Mikroprozessoren und/oder Mikrocontroller und/oder SoCs mittels einem Prozessor auf dem IC) erlaubt.It is also the object of the proposal to provide a one-piece, micro-integrated quantum
Auch hier erreicht der Vorschlag das Ziel, einen Quantenzufallszahlengenerator 28 mit einem hohen Maß an Sicherheit gegen jeden Versuch, seine internen Komponenten zu manipulieren, bereitzustellen. Insbesondere verhindert die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 1004.3 (TRNG) die Auswertbarkeit erfolgreicher Angriffe auf die Entropiequelle 401. Des Weiteren ermöglichen die vielen Tests eine sichere Erkennung eines Angriffs auf den Quantenzufallszahlengenerator 28 und verhindern damit die Verwendung manipulierter Zahlen als vermeintlich sichere Quantenzufallszahlen.Here too, the proposal achieves the goal of providing a quantum
Schließlich wird mit dem Vorschlag auch das Ziel erreicht, einen Quantenzufallszahlengenerator 28 bereitzustellen, der insbesondere durch die Fähigkeit der Ko-Integrierbarkeit in CMOS-Schaltkreise wirtschaftlicher ist als die Generatoren des bekannten Standes der Technik.Finally, the proposal also achieves the objective of providing a quantum
Figur 22Figure 22
Das in
Das Spannungssignal 405 zeigt beispielhafte Pulse 2201, 2202, 2203, 2104 für zufällige Ereignisse des Spannungssignals 405. Die können spontane Spannungspulse des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 der Entropiequelle 401 sein, die nicht mit der Aktivität der Photonenquelle 54 bzw. der Silizium-LED54 bzw. der ersten SPAD-Diode 54 der Entropiequelle 401 zusammenhängen. Die Pulse 2201, 2202, 2203, 2204 des Photonendetektors 55 bzw. der zweiten SPAD-Diode 55 der Entropiequelle 401 können aber auch auf stimulierter Emission beruhen, die die Detektion eines Photons der einen oder der mehreren Photonenquellen 54 bzw. der eine oder der mehreren Silizium-LEDs 54 bzw. der eine oder der mehreren SPAD-Dioden 54 durch den Photonendetektor 55 bzw. durch die zweite SPAD-Diode 55 der Entropiequelle 401 hervorruft.The
Der zeitliche Abstand ist zufällig. Allerdings entsteht nach dem Empfang eines Photons durch den Photonendetektor 55 bzw. durch die zweite SPAD-Diode 55 der Entropiequelle 401 eine Totzeit, in der der Photonendetektor 55 bzw. die zweite SPAD-Diode 55 der Entropiequelle 401 nicht mehr empfangsfähig ist. Überschreitet der Betrag des Spannungssignal 405 der Entropiequelle 401 einen Schwellwert 2105, so erzeugt ein Analog-zu-Digitalwandler (ADC, 403), hier ein beispielhafter Ein-Bit-Analog-zu-Digitalwandler 403,The time interval is random. However, after the reception of a photon by the
Pulsverlängerungsschaltung, die vorzugsweise Teil der einstückigen mikroelektronischen Schaltung ist, auf einem einsynchronisierten Spannungssignal 415 einen Puls mit einer Mindestlänge von n Takten eines Systemtakts 2106 des Quantenzufallszahlengenerators 28, der vorzugsweise einer der Systemtakte der einstückigen mikrointegrierten Schaltung ist.Pulse extension circuit, which is preferably part of the integral microelectronic circuit, generates a pulse with a minimum length of n clock cycles of a
In dem Beispiel der
In dem Beispiel der
Mit einer fallenden Flanke eines ersten Pulses 2211 des einsynchronisierten Spannungssignals 415 setzt der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) einen Pseudozufallszahlengenerator beispielsweise auf einen vordefinierten Seed-Wert zurück. Beispielsweise kann der Pseudozufallszahlengenerator des Zeit-zu-Pseudozufallszahl-Wandler (TPRC) ein rückgekoppeltes Schieberegister sein, dass mit jedem Takt des Systemtakts 2106 seine Werte um eine Stelle nach links oder rechts je nach Konstruktion verschiebt und in das freiwerdende Bit den Rückkoppelwert des Rückkoppelpolynoms zurückspeist.With a falling edge of a
Wichtig ist, dass beginnend mit dem Startwert des Pseudozufallszahlengenerators (Seed-Wert) jedem Takt des Systemtakts 2106 ab der fallenden Flanke genau eine Pseudozufallszahl des Pseudozufallszahlengenerators bijektiv zugeordnet ist. D.h. aus dem Wert der Pseudozufallszahl muss auf die zeitliche Position des betreffenden Takts des Systemtaktes 2106 nach der fallenden Flanke des einsynchronisierten Spannungssignal 415 geschlossen werden können.It is important that, starting with the starting value of the pseudorandom number generator (seed value), each clock pulse of the
Mit der nächsten fallenden Flanke des zweiten Pulses 2212 einsynchronisierten Spannungssignal 415 übernimmt ein erstes Pseudozufallszahlenregister den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wieder auf den vordefinierten Seed-Wert zurück.With the next falling edge of the
Mit der nächsten fallenden Flanke des dritten Pulses 2213 einsynchronisierten Spannungssignal 415 übernimmt ein zweites Pseudozufallszahlenregister den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wieder auf den vordefinierten Seed-Wert zurück. Die Entropieextraktion 401 vergleicht den Wert in dem ersten Pseudozufallszahlenregister mit dem Wert in dem zweiten Pseudozufallszahlenregister. Ist der erste Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein Zufallsbit mit einem ersten logischen Pegel erzeugen. Ist der zweite Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein Zufallsbit mit einem zweiten logischen Pegel erzeugen, der vom ersten Pegel verschieden ist.With the next falling edge of the
Mit der nächsten fallenden Flanke des vierten Pulses 2214 des einsynchronisierten Spannungssignal 415 übernimmt das erste Pseudozufallszahlenregister den bisherigen Wert des ein zweites Pseudozufallszahlenregister und das zweite Pseudozufallszahlenregister übernimmt stattdessen wiederum den letzten Stand des Pseudozufallszahlengenerators und der Zeit-zu-Pseudozufallszahl-Wandler (TPRC) setzt den Pseudozufallszahlengenerator vorzugsweise wiederum auf den vordefinierten Seed-Wert zurück. Die Entropieextraktion 401 vergleicht dann wieder den Wert in dem ersten Pseudozufallszahlenregister mit dem Wert in dem zweiten Pseudozufallszahlenregister. Ist der erste Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein weiteres neues und hier zweites Quantenzufallsbit 411 mit einem ersten logischen Pegel erzeugen. Ist der zweite Wert im ersten Pseudozufallszahlenregister größer als der zweite Wert im zweiten Pseudozufallszahlenregister, so kann beispielsweise die Entropieextraktion 404.4 ein weiteres neues und hier zweites Quantenzufallsbit 411 mit einem zweiten logischen Pegel erzeugen, der vom ersten Pegel verschieden ist.With the next falling edge of the
Auf diese Weise kann der Quantenzufallszahlengenerator 28 diesen Prozess der Quantenzufallsbiterzeugung fortsetzen und so einen kontinuierlichen, allerdings mit einem Phasenrauschen versehenen Strom von Quantenzufallsbits 411 erzeugen.In this way, the quantum
Figur 23Figure 23
Der Spannungswandler 91 der
Der Spannungswandler 91 der
Die erste Halbbrücke des beispielhaften Spannungswandlers 91 ist in dem Beispiel der
Die erste Halbbrücke des beispielhaften Spannungswandlers 91 der
Die der zweite High-Side-Transistor 2303 der Ladungspumpe für die Entropiequelle 411 ist mit der positiven Versorgungsspannungsleitung VDD elektrisch verbunden.The second high-
Die Steuervorrichtung 2330 des Spannungswandlers 91 steuert über den Steuerkontakt (Gate) 2311 des High-Side-Transistors 2301 der ersten Halbbrücke den High-Side-Transistor 2301 der ersten Halbbrücke.The
Die Steuervorrichtung 2330 des Spannungswandlers 91 steuert über den Steuerkontakt (Gate) 2312 des Low-Side-Transistors 2302 der ersten Halbbrücke den Low-Side-Transistor 2302 der ersten Halbbrücke.The
Der Steuerkontakt (Gate) 2311 des zweiten High-Side-Transistors 2303 ist mit dem Ausgangsknoten 2321 der Ladungspumpe elektrisch verbunden. Dadurch bildet der High-Side-Transistor 2303 der zweiten Halbbrücke eine MOS-Diode, die leitend wird, wenn das Potenzial des Ausgangsknoten 2321 der Ladungspumpe unter das positive Potenzial der positiven Versorgungsspannungsleitung VDD minus der Threshold-Spannung des zweiten High-Side-Transistors 2303 fällt. Der zweite High-Side-Transistors 2303 lädt dann den ersten Energiespeicher, hier ein erster Kondensator 2306.The control contact (gate) 2311 of the second high-
Der erste Kondensator 2306 ist in dem Beispiel der
Die Steuervorrichtung 2330 des Spannungswandlers 91 sperrt zu Beginn den High-Side-Transistor 2301 der ersten Halbbrücke und den Low-Side-Transistor 2302 der ersten Halbbrücke.The
Ein Transfer-Transistor 2305 der Ladungspumpe für die Entropiequelle 411 ist in dem Beispiel der
Der zweite Kondensator 2307 ist in dem Beispiel der
Vorzugsweise schaltet die Steuervorrichtung 2330 des Spannungswandlers 91 in einer Initialisierungsphase den Low-Side-Transistor 2302 der ersten Halbbrücke für eine kurze Zeit leitend.Preferably, the
Hierdurch wird der erste Anschluss des ersten Kondensators 2306 mit der Bezugspotenzialleitung GND verbunden. Sofern der erste Kondensator 2306 nicht geladen sein sollte oder mit einer verkehrten Polarität geladen sein sollte, lädt der zweite High-Side-Transistor 2303 dann den ersten Kondensator 2306 auf die Spannung zwischen dem positiven Versorgungsspannungsanschluss VDD und der Bezugspotenzialleitung GND minus der Threshold-Spannung des zweiten High-Side-Transistors 2303 auf.This connects the first terminal of the first capacitor 2306 to the reference potential line GND. If the first capacitor 2306 is not charged or is charged with a reverse polarity, the second high-
In einem nachfolgenden Schritt sperrt die Steuervorrichtung 2330 des Spannungswandlers 91 den Low-Side-Transistor 2302 der ersten Halbbrücke. Damit endet der Ladevorgang des ersten Kondensators 2306.In a subsequent step, the
In einem nachfolgenden Schritt schaltet die Steuervorrichtung 2330 des Spannungswandlers 91 den High-Side-Transistor 2301 der ersten Halbbrücke leitend. Hierdurch verschiebt sich das Ausgangspotenzial des Ausgangs 2321 der Ladungspumpe auf ein Potenzial mit einer Spannung, die der doppelten Spannung zwischen der positiven Versorgungsspannungsleitung VDD und der Bezugspotenzialleitung GND minus der Threshold-Spannung des zweiten High-Side-Transistors 2303 entspricht. Damit liegt das Potenzial des Ausgangs 2321 der Ladungspumpe über dem Potenzial der positive Versorgungsspannungsleitung VEXT der Entropiequelle 411, wenn der zweite Kondensator 2307 nicht oder nur unzureichend oder mit falscher Polarität geladen ist. Ist die Spannungsdifferenz zwischen dem Potenzial des Ausgangs 2321 der Ladungspumpe und dem Potenzial der Versorgungsspannungsleitung VEXT der Entropiequelle 411 größer als die Threshold-Spannung des Transfer-Transistors 2305, so schaltet der Transfer-Transistor 2305 ein und verbindet den Ausgang 2321 der Ladungspumpe mit der Versorgungsspannungsleitung VEXT der Entropiequelle 411. Hierdurch Tritt Ladung vom ersten Kondensator 2306 auf den zweiten Kondensator 2307 über, wodurch sich das Potenzial der Versorgungsspannungsleitung VEXT der Entropiequelle 411 anhebt, bis die Spannungsabfälle über den ersten Kondensator 2306 und den zweiten Kondensator 2307 sich angeglichen haben.In a subsequent step, the
Die Steuervorrichtung 2330 des Spannungswandlers 91 wiederholt diese Schritte bis kein Ladungstransfer mehr stattfindet.The
Ggf. können der Prozessor 10-1 oder der Spannungsmonitor 413 diesen Zustand eines nicht mehr stattfindenden Ladungstransfers beispielsweise mittels eines Analog-zu-Digitalwandlers oder eines Komparators feststellen und den Ladeprozess dann solange beispielsweise durch eine entsprechende Signalisierung an die Steuervorrichtung 2330 des Spannungswandlers 91 unterbrechen, bis sie ein Unterschreiten eines Mindestpotenzials durch das Potenzial der Versorgungsspannungsleitung VEXT der Entropiequelle 411 feststellen. Ist dies der Fall starten der Prozessor 10-1 oder der Spannungsmonitor 413 vorzugsweise wieder die Ladungspumpe des Spannungswandlers 91 mittels einer weiteren Signalisierung an den Steuervorrichtung 2330 des Spannungswandlers 91 neu starten und in Betrieb halten, bis wieder kein wesentlicher Ladungstransfer stattfindet.If necessary, the processor 10-1 or the voltage monitor 413 can determine this state of no longer occurring charge transfer, for example by means of an analog-to-digital converter or a comparator, and then interrupt the charging process, for example by signaling the
Detektieren der Prozessor 10-1 oder der Spannungsmonitor 413 nicht innerhalb eines vordefinierten Zeitraums nach dem Neustart des Ladungstransfers diesen Zustand des im Wesentlichen nicht mehr stattfindenden Ladungstransfers, so liegt vermutlich ein Defekt oder eine Störung oder ein Angriff vor. Vorzugsweise signalisieren der Prozessor 10-1 und/oder der Spannungsmonitor 413 diesen Fehler. Beispielsweise kann der der Spannungsmonitor 413 einen solchen Fehler an den Watchdog 404.5 über eine Signalleitung 414 signalisieren.If the processor 10-1 or the
Der Spannungswandler 91 und der zweite Kondensator 2307 können auf diese Weise die Entropiequelle 411 mit einer ausreichenden Betriebsspannung auf der Versorgungsspannungsleitung VEXT der Entropiequelle 411 versorgen.The
Der erste Kondensator 2306 und/oder der zweite Kondensator 2307 können extern von dem integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, gefertigt sein und über Anschlüsse des Gehäuses des integrierte Schaltkreises 2, beispielsweise des Mikrocontrollers, angeschlossen sein. Dies ermöglicht kostengünstig sehr hohe Kapazitätswerte für den ersten Kondensator 2306 und/oder den zweiten Kondensator 2307.The first capacitor 2306 and/or the
Es ist jedoch vorteilhaft, wenn es sich bei dem ersten Kondensator 2306 und/oder bei dem zweiten Kondensator 2307 um Siliziumkondensatoren handelt. In einer Ausprägung können der erste Kondensator 2306 und/oder der zweite Kondensator 2307 bei Integration des ersten Kondensators 2306 und/oder des zweiten Kondensators 2307 in die integrierte Schaltung 2, beispielsweise in den Mikrocontroller, beispielsweise jeweils eine Verschaltung von Trench-Kondensatoren, die in dem Halbleitersubstrat 49 des Quantenzufallszahlengenerators 28 gefertigt sind. In einer weiteren zusätzlichen oder alternativen Ausprägung können der erste Kondensator 2306 und/oder der zweite Kondensator 2307 bei Integration des ersten Kondensators 2306 und/oder des zweiten Kondensators 2307 in die integrierte Schaltung 2, beispielsweise in den Mikrocontroller, beispielsweise jeweils eine Verschaltung von MIM-Kondensatoren, die in dem Metallisierungsstapel auf dem Halbleitersubstrat 49 des Quantenzufallszahlengenerators 28 gefertigt sind, umfassen. MIM steht dabei für Metall-Isolator-Metall. Vorzugsweise umfasst dann eine Isolationsschicht des Metallisierungsstapels ein High-K-Material, wie beispielsweise Hafnium-Oxid.However, it is advantageous if the first capacitor 2306 and/or the
Natürlich ist es auch denkbar beispielsweise Gate-Kapazitäten von zusätzlichen Transistoren als Vorrichtungsbestandteile des ersten Kondensators 2306 und/oder des zweiten Kondensators 2307 vorzusehen.Of course, it is also conceivable to provide, for example, gate capacitances of additional transistors as device components of the first capacitor 2306 and/or the
In dem Beispiel der
Figur 24Figure 24
Der integrierten Schaltkreises 2, beispielsweise ein Mikrocontroller, weist einen inneren Bereich 2405 des integrierten Schaltkreises 2 auf, in dem sich die wesentlichen Unterschaltkreise des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, befinden. Typischerweise ist dieser innere Bereich 2405 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, von einem Verdrahtungsbereich 2404 umgeben, in dem typischerweise Versorgungsspannungsleitungen, Datenbusleitzungen und andere Leitungen geführt werden.The
Der Verdrahtungsbereich 2404 und der innere Bereich 2405 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, sind von dem Pad-Rahmen 2403 umgeben, der die Anschluss-Pads (Anschlussflächen) 2402 für die elektrischen Bondverbindungen oder anderen elektrischen Anschlussverbindungen umfasst.The
Das hier vorgelegte Dokument schlägt nun vor, den Quantenzufallszahlengenerator 28, wie er beispielsweise in der
BezugszeichenlisteList of reference symbols
Numerische Bezugszeichen Bezugszeichen von 0 bis 1000
- 2
- integrierte Schaltkreis eines Mikrocontrollers;
- 3
- Anschluss;
- 4
- Steuervorrichtung. Bevorzugt handelt es sich bei der Steuervorrichtung 4 um einen mikroelektronischen Schaltkreis;
- 6
- nichtflüchtigen Speicher, EEPROM, externer Speicher;
- 8
- Random Access Memory, externer Speicher;
- 10-1
- erster Prozessor 10-1;
- 10-2
- zweiter Prozessor 10-2;
- 11
- Verkettung 11;
- 12
- JATG-Test-
Controller 12 mit Testanschluss (TDI, TDO, TCK, TM); - 14
- eng
gekoppelter Speicher TCM 14; - 15
- Startadresse 15 des
Boot ROMs 16; - 16
- nicht flüchtiges Boot-
ROM 16; - 18
- Hashing-
Engine 18; - 20
- erster One-Time-Programmable-Speicher (OTP) (einmalig programmierbarer Speicher);
- 22
- zweiter One-Time-Programmable-Speicher (OTP) (einmalig programmierbarer Speicher);
- 24
Schaltung 24 zur Deaktivierung von Tests, Deaktivierungsschaltung;- 26
- kontrolliertes System 26 (z.B. gesteuerte Anlage, Regelstrecke);
- 28
Quantenzufallszahlengenerator 28;- 30
- weiterer nicht flüchtiger Speicher 30, externer Speicher;
- 32
- Schnittstelle 32czu einem kontrollierten
System 26; - 40
- Beispielhafte SPAD-Diode 40 für den Einsatz als Sensorelement eines Einzelphotonendetektors;
- 41
- Isolation, beispielsweise Shallow-Trench-
Isolation STI 41 der beispielhaften SPAD-Diode 40 oder LOCOS-Isolation; - 42
Anodenkontakt 42 der beispielhaften SPAD-Diode 40;- 43
Kathodenkontakt 43 der beispielhaften SPAD-Diode 40.Der Kathodenkontakt 43 der beispielhaften SPAD-Diode 40 ist bevorzugt aus Indium-Zinn-Oxid (ITO) oder einem anderen transparenten und elektrisch leitendem Material gefertigt;- 44
Lichtwellenleiter 44 für den Transport der Photonen der ersten SPAD-Diode 54 zur zweiten SPAD-Diode 55.Der Lichtwellenleiter 44 ist aus einem Abdeckoxid 44 oder optisch transparente Isolierschicht 44 der beispielhaften SPAD-Diode 40 gefertigt;- 45
- hoch dotiertes erstes Anschlussgebiet 45 eines ersten Leitungstyps, auch als n+ S/D Implantation bezeichnet. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um ein n+-dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;
- 46
- erste dotierte Wanne 46 eines zweiten Leitungstyps. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um ein p- --dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;
- 47
- zweite dotierte Wanne 47 eines zweiten Leitungstyps. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um ein p--dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;
- 48
epitaktische Schicht 48 eines zweiten Leitungstyps. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um eine p-dotierte epitaktische Schicht im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;- 49
Basismaterial 49 und/oder Halbleitersubstrat 49 des beispielhaften halbleitenden einkristallinen Wafers bzw. Wafer-Stückes, der bevorzugt einen zweiten Leitungstyp aufweist. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material handelt es sich beispielsweise um einen p-dotierten einkristallinen Halbleiter-Wafer bzw. ein einen p-dotiertes einkristallines Halbleiter-Wafer-Stück (Die);- 50
- zweite dotierte Wanne eines zweiten Leitungstyps unterhalb des Anodenkontakts. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um ein p--dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;
- 51
- hoch dotiertes zweites Anschlussgebiet eines zweiten Leitungstyps, auch als p+ S/D Implantation bezeichnet. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielsweise um ein p+-dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln;
- 52
- Isolation, beispielsweise ein Oxid oder dergleichen;
- 53
Metallabdeckung des Lichtwellenleiters 44;- 54
- Erste SPAD-Diode. Die erste SPAD-
Diode 55 dient zumindest zeitweise als Lichtquelle für die Bestrahlung der zweiten SPAD-Diode 45 mit Photonen der ersten SPAD-Diode 54; - 55
- Zweite SPAD-
Diode 55. Die zweite SPAD-Diode 55 dient beispielsweise zumindest zeitweise als Fotodetektor für das Licht der ersten SPAD-Diode 54. - 56
Oberfläche 56 des Wafers im Sinne der hier vorgelegten Schrift;- 57
- vertikal nach oben in senkrechter Richtung zur Oberfläche 56
emittiertes Licht 57 der ersten SPAD-Diode 54; - 58
horizontal im Lichtwellenleiter 44transportiertes Licht 58, das ein Teil des vertikal von der ersten SPAD-Diode 54 inden Lichtwellenleiter 44 eingestrahlten Lichts 57 ist;- 59
- vertikal nach unten in senkrechter Richtung zur Oberfläche 56
aus dem Lichtwellenleiter 44 in die zweite SPAD-Diode 55eingestrahltes Licht 59 der ersten SPAD-Diode 54, das von der ersten SPAD-Diode 54als senkrechtes Licht 57 inden Lichtwellenleiter 44 hinein emittiert wurde unddann vom Lichtwellenleiter 44 horizontal zur zweiten SPAD-Diode 55 transportiert wurde; - 61
- Datensätze;
- 62
- digitale Signatur;
- 63
- Schnittstelle;
- 64
- Datenbusschnittstelle;
- 65
- externer Datenbus. Der externe Datenbus kann im Sinne der hier vorgelegten Schrift eine drahtgebundene Datenverbindung oder eine drahtlose Datenverbindung sein;
- 81
Schnittstelle 81;- 82
- Bus-
Arbiter 82; - 83
- Reset-
Schaltung 83; - 84
analoge Eingangsverarbeitung 84;- 85
- Analog-zu-Digital-
Wandler 85; - 86
digitale Signalverarbeitung 86;- 87
- Digital-zu-Analog-
Wandler 87 - 88
analoge Ausgangsverarbeitung 88;- 89
- ein oder mehrere externe analoge Signale 89;
- 90
analoge Ausgangssignale 90;- 91
Spannungswandler 91;- 92
Taktgenerator 92.Der Taktgenerator 92 erzeugt vorzugsweiseden Systemtakt 2106. Vorzugsweise überwacht der Watchdog 404.5den Systemtakt 2106 auf zu niedrige oder zu hohe Geschwindigkeit und auf Clock-Jitter.Sofern der Systemtakt 2106 des Taktgenerators 92 einen Clock-Jitter zeigt, meldet der Watchdog 404.5 einen Fehler an den Prozessor 10-1über den Datenbus 419 oder über die Interrupt-Leitung 420;- 140
- Kontakt;
- 141
Metall 1 Leitungen;- 142
Metall 2 Leitungen /Metall 2 Deckel;- 241
- Gatter
- 242
- Gatter
- 301
- Schnittstelle
- 401
- Entropie-
Quelle 401; - 402
Hochfrequenzverstärker 402;- 403
- Analog-Digital-Converter (ADC) 403;
- 404
Auswerteschaltung 404;- 404.1
- Konstante 404.1;
- 404.2
- Komparator 404.2;
- 404.3
- Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC);
- 404.4
- Entropie-Extraktions-Vorrichtung 404.4;
- 404.5
- Watchdog 404.5;
- 404.6
- optionales, weiteres, linear rückgekoppeltes Schieberegister. Die Rückkopplung ist bevorzugt ein einfach primitives Polynom, um Pseudozufallsbittfolgen zu erzeugen;
- 404.7
- Signal-Multiplexer;
- 404.8
- Finite State Machine (endlichen Automaten);
- 404.9
- RAM oder FIFO;
- 404.10
- Finish Flag;
- 404.11
- Prozessor 10-1, 10-2;
- 405
- Spannungssignal
der Entropie Quelle 401; - 406
Verstärkerausgangssignal 406 desHochfrequenzverstärkers 402;- 407
Ausgangssignal 407 des Analog-zu-Digital-Wandlers 403. des digitalerBit Wert 407 des Analog-zu-Digital-Wandlers 403.Andere Bitbreiten als 1 Bit sind denkbar;- 408
- Signal der Konstanten 404.1;
- 409
Ausgangssignal 409 des Komparators 404.2;- 410
Ausgang 410 des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC);- 411
- Ausgang der Entropie Extraktion 404.4;
- 412
- Seed S;
- 413
- Spannungsmonitor;
- 414
- Signalleitungen;
- 415
einsynchronisiertes Spannungssignal 415.Das einsynchronisierte Spannungssignal 415 erzeugt die Pulsverlängerungsschaltung 2023 (MF) ausdem Ausgangsignal 407 des Analog-zu-Digital-Wandlers 403 inAbhängigkeit vom Systemtakt 2106;- 416
- Selektionssignal;
- 417
- Pseudozufallssignalleitung;
- 418
- Quantenzufallsdatenwörter;
- 419
interner Datenbus 419 desQuantenzufallszahlengenerators 28. Bevorzugt handelt es sich um den internen Datenbus der Steuervorrichtung 4;- 420
- Interrupt
Signal 420 des Watchdogs 404.5 desQuantenzufallszahlengenerators 28 bzw.der Steuervorrichtung 4; - 500
Flussdiagramm 500 des Entropie Extraktionsverfahrens;- 501
erster Schritt 501 mit Ermittlung des ersten Werts desAusgangs 410 des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 und des zweiten Werts desAusgangs 410 des Zeit-zu- Pseudozufallszahlen -Wandlers 404.3 und Speicherung in einem Schieberegister der Entropie Extraktion 404.4;- 502
- zweiter Schritt des Vergleichens des ersten Werts mit dem zweiten Wert;
- 503
- dritter Schritt der Bewertung des ersten Werts und des zweiten Werts und der Erzeugung des
Quantenzufallsbits 411; - 601
- erste Spikes;
- 602
- zweite Spikes;
- 603
- Schneidepegel;
- 2021
- überwachte interne Spannungen 2021;
- 2022
- Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8;
- 2023
Pulsverlängerungsschaltung 2023, typischerweise in Form eines Monoflops MF. Das Monoflop MF verlängert einen Puls auf der Leitung des digitalenBit Wert 407 des Analog-zu-Digital-Wandlers 403 auf eine Zeitliche Länge von mindestens einer Taktperiode des Systemtakts 2106;- 2101
Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC);- 2102
Rückkoppelmultiplexer 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC);- 2103
Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC).Der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) stellt beispielsweise auf Veranlassung eines Prozessors (10-1, 10-2) überden internen Datenbus 419 mittels eines Parallel zur seriell Schieberegistermodus-Umschaltleitung 2107 die n Schieberegisterbits (SB1 bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den parallelen Schieberegisterbetriebsmodus um, sodass die Schieberegisterbits (SB1 bis SBn) des Schieberegisters den aktuellen logischen Wert des TPRG-Datenbus 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als Startwert (Seed) des linear rückgekoppelten Schieberegisters verwenden.Der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aktiviert beispielsweise auf Veranlassung eines Prozessors (10-1, 10-2) überden internen Datenbus 419 mittels einer mittels eines Parallel zur seriell Schieberegistermodus-Umschaltleitung 2107 die n Schieberegisterbits (SB1 bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den seriellen Schieberegisterbetriebsmodus um, sodass das erste Schieberegisterbit SB1 der n Schieberegisterbits (SB1 bis SBn) den aktuellen logischen Wert der Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mit dem nächsten Takt des Systemtakts 2106 übernimmt und die anderen Schieberegisterbits SBj der Schieberegisterbits (SB1 bis SBn) des Schieberegisters den jeweiligen logischen Wert ihres Vorgänger-Schieberegisterbits SB(j-1) mit dem nächsten Takt des Systemtakts 2106 übernehmen. Einer oder mehrere Prozessoren (10-1, 10-2) können überden internen Datenbus 419 ein oder mehrere Register desSchieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) schreiben und/oder lesen. Bevorzugt können die Prozessoren (10-1, 10-2) überden internen Datenbus 419 ein oder mehrere Register desSchieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) beschreiben und so den logischen Wert des TPRG-Datenbusses 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bestimmen, den das Schieberegister als nächsten Seed-Wert benutzt. Diese Funktion kann ggf. durch einen Zugriffscode imOPT II Speicher 22 mittels der Deaktivierungsschaltung 24 blockiert sein. Vorzugsweise erzeugt jedoch der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aus dem Datenstrom der Quantenzufallsbits 411 in einem speziellen internen Register desSchieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) den logischen Wert des TPRG-Datenbusses 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), den das Schieberegister als nächsten Seed-Wert benutzt. Dies hat den Vorteil, dass das Verhalten der Schaltung dann von einem Quantenprozess abhängt und damit nicht vorhersagbar ist.Sofern die Detektionsschaltung 2113 einen illegalen Wert des Zustandsvektors der n Schieberegisterbits SB1 bis SBn detektiert, meldet sie dieses anden Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der daraufhin Maßnahmen ergreift. Eine solche typische Maßnahme ist das Rücksetzen des Zustandsvektors der n Schieberegisterbits SB1 bis SBn auf einen vorbestimmten Wert, beispielsweise den Seed-Wert des aktuellen Werts des TPRG-Datenbusses 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) oder einen anderen vordefinierten Wert.Der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aktiviert oder deaktiviert vorzugsweise überden Schieberegisterbitaktivierungsbus 2109 die Datenübernahme der n Schieberegisterbits (SB1 bis SBn) bei der nächsten Taktflanke der verwendeten Taktflankenrichtung typischerweise bitselektiv. Vorzugsweise erzeugt jedoch der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aus dem Datenstrom der Quantenzufallsbits 411 in einem speziellen internen Register desSchieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) den logischen Nachladewert des Rückkoppelpolynom-Auswahlregisters 2112 und lädt diesen Nachladewert in das Rückkoppelpolynom-Auswahlregisters 2112. Mittels einer Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8 verhindert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise, dass Finite State Maschine (endlicher Automat) 404.8solche Quantenbits 411 nutzt, dieder Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bereits benutzt hat;- 2104
Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), die den nächsten seriellen Nachladewert für das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bei Auswahl eines Rückkoppelnetzwerks der m Rückkoppelnetzwerke (RKN1 bis RKNm) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC)durch den Rückkoppelmultiplexer 2102 und bei Einstellung des seriellen Schiebemodus durch den Schieberegister-Controller 2103 als n auswählt, das mit dem nächsten Takt des Systemtakts 2106 in das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) geladen wird;- 2105
Schwellwert 2105;- 2106
Systemtakt 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28;- 2107
- Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107, die die n Schieberegisterbits (SB1 bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den parallelen Schieberegisterbetriebsmodus in Abhängigkeit von ihrem logischen Wert umstellen kann; - 2109
Schieberegisterbitaktivierungsbus 2109 mit typischerweise n Schieberegisterbitaktivierungsleitungen der jeweils zugehörigen n Schieberegisterbits (SB1 bis SBn) zur jeweiligen, vorzugsweise bitselektiven Aktivierung der Datenübernahme der n Schieberegisterbits (SB1 bis SBn) bei der nächsten Taktflanke der verwendeten Taktflankenrichtung, wobei die jeweilige Datenquelle der Datenübernahme durch das jeweilige Schieberegisterbit der jeweils zugehörigen n Schieberegisterbits (SB1 bis SBn) durch eine oder mehrere Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitungen 2107 desSchieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) festgelegt wird;- 2110
- TPRG-
Datenbus 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der typischer weise je Schieberegisterbit der Schieberegisterbits (SB1 bis SBn) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) jeweils bevorzugt eine Datenleitung umfasst, deren logischer Inhalt ein Bit des TPRG-Datenbusses 2110 darstellt. Diese Bits des TPRG-Datenbus 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bilden typischerweise den Startwert (Seed) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC),den der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auf Befehl eines Prozessors (10-1, 10-2) über den internen Datenbus 1901 in die Schieberegisterzellen der Schieberegisterbits (SB1 bis SBn) lädt; - 2111
- Steuerregister 2111 des
Rückkoppelmultiplexers 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Vorzugsweise lädt der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) das Steuerregister 2111 desRückkoppelmultiplexers 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) und wählt dadurch das Rückkoppelpolynom durch Auswahl des aktuellen Rückkoppelnetzwerkes der Rückkoppelnetzwerke (RKN1 bis RKNm) aus. Vorzugsweise ändert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) den Wert des Steuerregisters 2111 desRückkoppelmultiplexers 2102 nur dann,wenn ein Quantenzufallsbit 411 erfolgreich erzeugt wurde oderwenn Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mindestens einen Startpuls für den - 2112
- Rückkoppelpolynom-
Auswahlregister 2112; - 2113
Detektionsschaltung 2113 zur Detektion eines illegalen Werts des Zustandsvektors der n Schieberegisterbits SB1 bis SBn;- 2201
- erster beispielhafter Puls 2201
der Entropie Quelle 401auf dem Spannungssignal 405der Entropie Quelle 401; - 2202
- zweiter beispielhafter Puls 2202
der Entropie Quelle 401auf dem Spannungssignal 405der Entropie Quelle 401; - 2203
- dritter beispielhafter Puls 2203
der Entropie Quelle 401auf dem Spannungssignal 405der Entropie Quelle 401; - 2204
- vierter beispielhafter Puls 2204
der Entropie Quelle 401auf dem Spannungssignal 405der Entropie Quelle 401; - 2211
- erster beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem ersten beispielhaften Puls 2201
der Entropie Quelle 401 erzeugt wurde; - 2212
- zweiter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem zweiten beispielhaften Puls 2202
der Entropie Quelle 401 erzeugt wurde; - 2213
- dritter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem dritten beispielhaften Puls 2203
der Entropie Quelle 401 erzeugt wurde; - 2214
- vierter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem vierten beispielhaften Puls 2204
der Entropie Quelle 401 erzeugt wurde; - 2301
- High-Side-
Transistor 2301 der ersten Halbbrücke der Ladungspumpe für dieEntropiequelle 411; - 2302
- Low-Side-
Transistor 2302 der ersten Halbbrücke der Ladungspumpe für dieEntropiequelle 411; - 2303
- zweiter High-Side-
Transistor 2303 der zweiten Halbbrücke der Ladungspumpe für dieEntropiequelle 411. In dem Beispiel der23 ist der zweite High-Side-Transistor 2301 der Ladungspumpe für dieEntropiequelle 411 als MOS-Diode verschaltet; - 2305
- Transfer-
Transistor 2305 der Ladungspumpe für dieEntropiequelle 411. In dem Beispiel der23 ist der Transfer-Transistor 2305 der Ladungspumpe für dieEntropiequelle 411 als MOS-Diode verschaltet; - 2306
- erster Energiespeicher, hier in dem Beispiel der
23 ein erster Kondensator 2306; - 2307
- zweiter Energiespeicher, hier in dem Beispiel der
23 ein zweiter Kondensator 2307; - 2311
- Steuerkontakt (Gate) 2311 des High-Side-
Transistors 2301 der ersten Halbbrücke der Ladungspumpe für dieEntropiequelle 411; - 2312
- Steuerkontakt (Gate) 2311 des Low-Side-
Transistors 2302 der ersten Halbbrücke der Ladungspumpe für dieEntropiequelle 411; - 2313
- Steuerkontakt (Gate) 2311 des zweiten High-Side-
Transistors 2303 der Ladungspumpe für dieEntropiequelle 411; - 2320
Ausgangsknoten 2320 der ersten Halbbrücke der Ladungspumpe für dieEntropiequelle 411;- 2321
Ausgangsknoten 2321 der Ladungspumpe für dieEntropiequelle 411;- 2330
Steuervorrichtung 2330 des Spannungswandlers 91 zur Versorgung derEntropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial.- 2401
- beispielhaftes imaginäres Halbleiter-
Die 2401 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, zur Erläuterung der optimalen Platzierung eines Quantenzufallszahlengenerators in einem beispielhaften Layout eines mikrointegrierten Schaltkreises 2; - 2402
- Anschluss-Pads (Anschlussfläche) einer Leitung des mikrointegrierten Schaltkreises 2;
- 2403
- Pad-Rahmen des mikrointegrierten Schaltkreises 2;
- 2404
- Verdrahtungsbereich des mikrointegrierten Schaltkreises 2;
- 2405
- innerer Bereich des mikrointegrierten Schaltkreises 2;
- 3000
- Erzeugung eines Socket-Descriptors;
- 3010
- Binden des Socket-Descriptors an einen Port und eine IP-Adresse;
- 3020
- passiver Wartezustand und Warten auf Verbindungsanfragen einer integrierten Schaltung 2, beispielsweise eines Mikrocontrollers, eines Clients;
- 3030
- Herstellen einer Verbindung vom ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers zum ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers;
- 3040
Erzeugen einer Quantenzufallszahl 411 und Erzeugung eines öffentlichen und eines privaten Schlüssels mittels eines RSA-Verfahrens durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels eines Quantenzufallszahlengenerators 28 QRNG und eines RSA-Verfahrens.- 3050
- Warten auf eine verschlüsselte Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) Clients durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers;
- 3060
- Entschlüsseln der Nachricht des mittels des in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) zwischengespeicherten privaten Schlüssels aus
dem Schritt 3040 gemäß des RSA-Verfahrens - 3070
- Verschlüsselung der Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels des öffentlichen Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus
Schritt 3040 gemäß des RSA-Verfahrens durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers; - 3080
- Senden der im Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers gespeicherten, verschlüsselten Nachricht an den erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client über die
Datenbusschnittstelle 64 des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und überden Datenbus 65 und über dieDatenschnittstelle 64 des ersten Prozessors 10-1 des Rechners durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers; - 3090
- Ausführen der Funktion close() und Schließen der offenen Verbindung zu einem Socket, hier dem Socket des Clients, und Beenden der Kommunikation mit dem Client durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers;
- 3100
- Erzeugen eines Socket-Descriptors durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und stellen einer Verbindungsanfrage an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers unter Benutzung des Ports und der IP-Adresse, welche in
dem Schritt 3010 festgelegt wurden, durch den Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients; - 3110
- Herstellen einer Verbindung zwischen dem Server-Socket
aus dem Schritt 3010 und dem Client-Socketaus dem Schritt 3100; - 3120
- Erzeugen einer Quantenzufallszahl basierend auf Quantenzufallsbits 411 und Erzeugung eines öffentlichen und eines privaten Schlüssels mittels eines RSA-Verfahrens durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels eines Quantenzufallszahlengenerators 28 QRNG und eines RSA-Verfahrens.
- 3130
- Verschlüsseln der eigenen Nachricht des Clients mittels des öffentlichen Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers aus
Schritt 3040 mittels des RSA-Verfahrens durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients; - 3140
- Senden der verschlüsselten Nachricht des Clients an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients;
- 3150
- Warten auf eine verschlüsselte Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und Empfangen einer Nachricht des ersten Prozessors 10-1 des Servers den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und Speichern der so empfangenen und typischerweise verschlüsselten Nachricht des ersten Prozessors 10-1 des Servers in einem temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und Lesen der ankommende Daten des ersten Prozessors 10-1 des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels Ausführen der Funktion recv() von einem Socket-Discriptor, in diesem Fall von dem Socket-Descriptor des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus
dem Schritt 3100 und speichern die gelesenen Daten vorzugsweise in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients; - 3160
- Entschlüsseln einer durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients empfangenen, verschlüsselten Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Ausführung der Funktion Decrypt() durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients unter Verwendung des privaten Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus
dem Schritt 3120 mittels des RSA-Verfahrens und anschließendes Speichern der so entschlüsselten Nachricht in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients; - 3170
- Schließen der offenen Verbindung zu dem Socket durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und Beenden der Kommunikation mit dem erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients;
- 3200
- Erzeugung zweier verschiedener Primzahlen p und q und des Produkts n=p*q und des Ergebnisses der Eulerschen Phi-Funktion phi = (p-1)(q-1) durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels der Funktion KeyExchangeServer();
- 3210
- Erzeugung einer zu phi teilerfremden Zahl e mittels Aufruf der Funktion setE() durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers, wobei die Zahl phi diejenige
aus dem Schritt 3200 ist und wobei teilerfremd in Sinne des vorliegenden Dokuments bedeutet, dass es keine natürliche Zahl außer der Zahl eins gibt, die gleichzeitig die Zahl e und die Zahl phi gleichzeitig ganzzahlig teilt; - 3220
- Berechnung des multiplikativen Inversen zur Zahl e mittels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers unter Verwendung der Funktion findD(), sodass gilt (e*d)mod phi = 1;
- 3230
- Warten auf eine eintreffende Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients, die typischerweise den öffentlichen Schlüssel des Clients umfassen sollte, durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und Lesen der ankommenden Daten von einem Socket-Discriptor, in diesem Fall der Socket-Descriptor des Client durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers und Speichern die gelesenen Daten vorzugsweise in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers;
- 3240
- Versenden des öffentlichen Schlüssel (d,n) des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers aus
den Schritten 3200und 3220 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients über einen Socket-Descriptor, in diesem Fall der Socket-Descriptor des Clients ausdem Schritt 3030; - 3245
- Verlassen der Funktion KeyExchangeServer() durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers;
- 3250
- Erzeugen der Primzahl p und Erzeugen der von q verschiedenen Primzahl q und Erzeugen des Produkts n=p*q und Erzeugen der Eulerschen Phi-Funktion phi = (p-1)(q-1) jeweils durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Fuktion KexExchangeClient();
- 3260
- Erzeugen eine zur Zahl phi
aus dem Schritt 3250 teilerfremden ganzen Zahl e durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Funktion setE(), wobei teilerfremd in Sinne des vorliegenden Dokuments bedeutet, dass es keine natürliche Zahl außer der Zahl eins gibt, die gleichzeitig die Zahl e und die phi restfrei teilt; - 3270
- Berechnen des multiplikativen Inversen zur Zahl e durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Funktion findD(), sodass gilt (e*d)mod phi = 1;
- 3280
- Versenden der öffentlichen Schlüssels (d,n) des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus
den Schritten 3250und 3270 an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients, wobei der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Funktion send() Daten über einen Socket-Descriptor, in diesem Fall der Socket-Descriptor des Clients ausSchritt 3100, sendet; - 3290
- Warten auf eine eintreffende Nachricht des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mit dem öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients und lesen ankommender Daten des ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers von einem Socket-Discriptor, in diesem Fall von dem Socket-Descriptor des Clients aus
Schritt 3100, durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Funktion recv() und speichern dieser Daten in einen temporären Zwischenspeicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients; - 3295
- Verlassen der Funktion KeyExchangeClient() durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients;
- 3300
- Erzeugen einer Zufallszahl mittels eines Quantenzufallszahlengenerators 28 QRNG durch den aufrufenden ersten Prozessor 10-1 und Ermitteln einer Primzahl in Abhängigkeit von dieser Zufallszahl durch den aufrufenden ersten Prozessor 10-1 und Abspeichern dieser Primzahl als Variable p in dem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2), dessen Teil der aufrufende erste Prozessor 10-1 ist;
- 3110
- Erzeugen einer zweiten Zufallszahl mittels eines Quantenzufallszahlengenerators 28 QRNG durch den aufrufenden ersten Prozessor 10-1 und Ermitteln einer Primzahl in Abhängigkeit von dieser Zufallszahl durch den aufrufenden ersten Prozessor 10-1 und Abspeichern dieser Primzahl als Variable q in dem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2), dessen Teil der aufrufende erste Prozessor 10-1 ist;
- 3320
- Überprüfung, ob die logische Aussage q==p gilt, durch den aufrufenden ersten Prozessor 10-1 und Wiederholen der Schritte
ab dem Schritt 3310 durch den aufrufenden Prozessor 10-1, wenn diese Aussage gilt; - 3330
- Berechnen des Produkts n= p * q durch den aufrufenden Prozessort 10-1;
- 3340
- Berechnen der Euler'schen Phi-Funktion phi = (q-1) * (p-1) durch den aufrufenden Prozessort 10-1;
- 3350
- Verlassen der Funktion setPrimes() durch den aufrufenden Prozessor 10-1;
- 3400
- Ablauf der Funktion SetE(), Beim Aufrufen der Funktion setE()
im Schritt 3400 generiert der Aufrufende, in Fall des vorliegenden Dokuments der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers oder der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients, eine zufällige Zahl e für die gilt, dass sie teilerfremd zur Zahl phi ist. Teilerfremd in Sinne des vorliegenden Dokuments bedeutet, dass es keine natürliche Zahl außer der Zahl eins gibt, die gleichzeitig die Zahl e und die phi teilt. Der aufrufende Prozessor 10-1 kann die Zahl e sowohl durch eine Zufallszahl des Quantenzufallszahlengenerators 28 QRNG als auch durch einen Pseudozufallszahlengenerator PRNG als auch durch Hochiterieren einer Integer-Zahl beginnend mit 2 erzeugen. Die Erzeugung mittels des Quanten-Zufallszahlen-Generators 18 QRNG ist aber bevorzugt; - 3410
- Überprüfen, ob die logische Aussage gcd(e,phi) != 1 erfüllt ist, durch den aufrufenden Prozessor 10-1 und wiederholen des Schritts 3400 durch den aufrufenden Prozessor 10-1, wenn die logische Aussage erfüllt ist. Der aufrufende Prozessor 10-1 berechnet mittels dieser Funktion gcd(a,b) den größten gemeinsamen Teiler der Übergabeparameter a, b und gibt das Ergebnis an den aufrufenden Prozessor 10-1 zurück;
- 3420
- Verlassen der Funktion setE() und Rückgabe des aktuelle Werts von e als Rückgabewert an den aufrufenden Prozessor 10-1 durch den aufrufenden Prozessor 10-1, wenn die logische Aussage gcd(e,phi) != 1 nicht erfüllt ist;
- 3500
- Initialisieren einer
Variablen d mit 0 durch den aufrufenden Prozessor 10-1, hier der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients oder der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers; - 3510
Addieren der Zahl 1 zu der Zahl d durch den aufrufenden Prozessor 10-1;- 3520
- Überprüfen, ob die logische Aussage (e*d) (mod phi) == 1 erfüllt ist, durch den aufrufenden Prozessor 10-1 und Wiederholen der
Schritte ab Schritt 3510, wenn die logische Aussage (e*d) (mod phi) == 1 nicht erfüllt ist; - 3530
- Verlassen der Funktion findD() durch den aufrufenden Prozessor 10-1, wenn die logische Aussage (e*d) (mod phi) == 1 erfüllt ist, und Rückgeben des aktuellen Werts von d als Rückgabewert an den aufrufenden Prozessor 10-1, in Fall des vorliegenden Dokuments den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers oder der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients;
- 3600
- Server;
- 3610
- Client;
- 3620
- Versenden des auf einer ersten Quantenzufallszahl des Quantenzufallszahlgenerators 28 QRNG des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des
Servers 3600 basierenden öffentlichen Schlüssels desServers 3600 über einen nicht abhörsicheren Kanal an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desServers 3600; - 3630
- Erzeugen einer Pseudozufallszahl PZ oder einer anders erzeugten Zufallszahl durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des
Clients 3610 und Speichern der Pseudozufallszahl PZ bzw. der anders erzeugten Zufallszahl in einem Speicher des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 und Erzeugen eines ersten privaten Schlüssels desClients 3610 und eines ersten öffentlichen Schlüssels desClients 3610 unter Benutzung dieser Pseudozufallszahl PZ bzw. dieser anders erzeugten Zufallszahl durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 und Verschlüsselung dieses ersten öffentlichen Schlüssel desClients 3610 mittels des öffentlichen Schlüssels desServers 3600 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 und Versenden des verschlüsselten ersten öffentlichen Schlüssel desClients 3610 an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desServers 3600 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610; - 3640
- Entschlüsseln der Nachricht des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 mit dem ersten privaten Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610, sodass der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 über den ersten öffentlichen Schlüssel des Clients 3610 verfügt, ohne dass dieser Dritten bekannt sein kann, und Erzeugen einer weiteren, zweiten Quantenzufallszahl QZ2 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 mittels des Quantenzufallszahlengenerators 28 QRNG, wobei die Bitbreite dieser zweiten Quantenzufallszahl ist bevorzugt gleich der Bitbreite, der Zufallszahl PZ des Clients 3610 ist, und Verschlüsseln der zweite Quantenzufallszahl QZ2 mit dem ersten öffentlichen Schlüssel des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 zu einer verschlüsselten zweiten Quantenzufallszahl QZ2' durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600, wobei beispielsweise der erste öffentliche Schlüssel des Clients 3610 die Zufallszahl PZ des Clients sein kann und wobei in dem Fall der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 die zweite Quantenzufallszahl QZ2 beispielsweise durch bitweise XOR-Verknüpfung der zweiten Quantenzufallszahl QZ2 mit PZ zu einer verschlüsselten zweiten Quantenzufallszahl QZ2' verschlüsseln kann, und Versendung der verschlüsselten zweite Quantenzufallszahl QZ2' an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client 3610 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600.
- 3650
- Entschlüsselung der verschlüsselten zweiten Quantenzufallszahl QZ2' unter Benutzung des ersten privaten Schlüssels des ersten Prozessors 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des
Servers 3600 zur zweiten Quantenzufallszahl QZ2 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClient 3610. Hat der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) die zweite verschlüsselte Quantenzufallszahl QZ2' durch bitweise XOR-Verknüpfung der Zufallszahl PZ mit der zweiten Quantenzufallszahl QZ2 ermittelt, so kann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 beispielsweise durch bitweise XOR-Verknüpfung der verschlüsselten zweiten Quantenzufallszahl QZ2' mit der ihm bekannten Zufallszahl PZ zur zweiten Quantenzufallszahl QZ2 entschlüsseln. Bevorzugt nutzt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 die ihm nun vorliegende zweite Quantenzufallszahl QZ2 als Grundlage für die Erzeugung eines zweiten privaten und eines zweiten öffentlichen Schlüssels gemäß einem asymmetrischen Verschlüsselungsverfahren. Bei dem asymmetrischen Verschlüsselungsverfahren kann es sich zum Beispiel um das RSA-Verfahren (ANHANG) handeln. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 verschickt nun seinen zweiten öffentlichen Schlüssel über den nicht abhörsicheren Kanal anden Server 3600. Hierbei verschlüsselt er bevorzugt diesen zweiten öffentlichen Schlüssel desClients 3610 mit dem öffentlichen Schlüssel desServers 3600.Der Server 3600 entschlüsselt den verschlüsselten zweiten öffentlichen Schlüssel desClients 3610 und verwendet dann diesen zweiten öffentlichen Schlüssel des Clients für die Verschlüsselung weiterer Nachrichten an den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClient 3610. Bevorzugt erzeugt und sendet der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desServers 3600 nach einer vorbestimmten Zeit oder einer nach dem Versenden einer vorbestimmten Datenmenge an den Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desClients 3610 einen neuen öffentlichen Schlüssel auf Basis einer neuen Quantenzufallszahl seinesQuantenzufallszahlengenerators 28 QRNG verschlüsselt mit dem zweiten öffentlichen Schlüssel desClients 3610. Bevorzugt führen dann der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) desServers 3600 und der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients das zuvor beschriebene Verfahren erneut durch, sodass die Schlüssel permanent wechseln. Dies macht es auch einem Quantencomputer unmöglich, die Schlüssel zu brechen; - 3700
- Verfahren zur Erzeugung einer
Quantenzufallszahl QZ 418mit m Quantenzufallsbits 411; - 3710
- Erzeugung eines zufälligen Einzelphotonenstroms (57, 58, 59, 44) mittels einer oder mehrerer Photonenquellen 54 und/oder einer oder mehrerer Silizium-
LEDs 54 und/oder einer oder mehrerer erster SPAD-Dioden (54), wobei bevorzugt diePhotonenquellen 54 und/oder die Silizium-LEDs 54 und/oder die ersten SPAD-Dioden (54) einstückig in einem gemeinsamen Halbleitersubstrat 49 gefertigt sind; - 3720
- Übertragung des zufälligen Einzelphotonenstroms (57, 58, 59, 44) mittels des Halbleitersubstrats (49, 48) und/oder mittels eines vom Halbleitersubstrat (49, 48)
verschiedenen Lichtwellenleiters 44 und/oder direkt zwischen den Bauelementen an einen oder mehrere Photonendetektoren 55 und/oder eine oder mehrere zweite SPAD-Dioden (55); - 3730
- Wandlung des zufälligen Einzelphotonenstroms (57, 58, 59, 44) in ein Detektionssignal in
Form eines Spannungssignal 405der Entropie Quelle 401, die bevorzugt Photonenquellen 54 und/oder einer oder mehrerer Silizium-LEDs 54 und/oder einer oder mehrerer erster SPAD-Dioden (54) und die Mittel zur Lichtübertragung, wie das Halbleitersubstrat (49, 48) und/oder den Lichtwellenleiter 44, und diePhotonendetektoren 55 und/oder die die zweiten SPAD-Dioden 55 umfasst; - 3740
- Aufbereiten, insbesondere Verstärken und/oder Filtern und/oder Analog-zu-Digital-Wandeln, des Detektionssignals in ein aufbereitetes Detektionssignal, insbesondere einen digitalen 14 Bit-
Wert 407 des Analog-zu-Digital-Wandlers 403 bzw. eines 1-Bit-Analog-zu-Digitalwandlers 403; - 3750
- optionales Abtrennen der durch optische Kopplungen der Emissionen einer Photonenquelle 54 und/oder einer Silizium-
LED 54 und/oder einer ersten SPAD-Diode 54 einerseits und einem Photonendetektor 55 und/oder einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals von den durch spontane Emission entstandenen Pulsen des aufbereiteten Detektionssignals durch Vergleich des aufbereiteten Detektionssignals mit einem Schwellwert, insbesondere in einem Komparator 404.2 und Erzeugung eines entsprechenden Ausgangssignals 409, insbesondere des Komparators 404.2. Ggf. kann der Analog-zu-Digital-Wandler 403 das Ausgangssignal 409 direkt erzeugen, wenn es sich um einen 1-Bit Analog-zu-Digitalwandler 403 handelt. Insofern ist dieserSchritt 3750 optional und ist daher nur gestrichelt eingezeichnet; - 3760
Ermittlung 3760 einer ersten Pseudozufallszahl in Abhängigkeit von einem ersten zeitlichen Abstand zwischen dem ersten Puls und dem zweiten Puls eines ersten Paares aus zwei aufeinander folgenden, durch optische Kopplungen der Emissionen einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors 55 bzw. einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals, als ersten Werts desAusgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3;- 3765
Ermittlung 3760 einer zweiten Pseudozufallszahl in Abhängigkeit von einem zweiten zeitlichen Abstand zwischen dem dritten Puls und dem vierten Puls eines ersten Paares aus zwei aufeinander folgenden, durch optische Kopplungen der Emissionen einer Photonenquelle 54 bzw. einer Silizium-LED 54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors 55 bzw. einer zweiten SPAD-Diode 55 andererseits entstandenen Pulse des aufbereiteten Detektionssignals, als ersten Werts desAusgangs 410 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3. Dabei kann der dritte Puls mit dem zweiten Puls (siehe Schritt 3760) identisch sein.;- 3670
- Ermittlung des Bit-
Werts eines Quantenzufallsbits 411 durch Vergleich des Werts der ersten Pseudozufallszahl und des Werts der zweiten Pseudozufallszahl; - 3680
- Überprüfung 3680. In der Überprüfung 3680 überprüfen der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) und/oder eine Finite-State-Machine 404.8, ob die Anzahl n der ermittelten Quantenzufallsbits 411 noch kleiner als die gewünschte Zahl m der Zufallsbits der gewünschten
Quantenzufallszahl 418 ist. Sofern dies nicht der Fall ist wiederholen der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) und/oder Finite-State-Machine 404.8 die vorstehendenSchritte 3710bis 3770. Ansonsten beenden der Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) bzw. die Finite-State-Machine 404.8 den Prozess zur Erzeugung einer Quantenzufallszahl. Ggf. stellt die Finite-State-Machine 404.8 die Quantenzufallszahl dem Prozessor 10-1 zur Verfügung und signalisiert vorzugsweise dem Prozessor 10-1 diese Verfügbarkeit, beispielsweise durch einen Interrupt oder durch das Setzen eines Flags.
- GND
- Bezugspotenzialleitung GND auf Bezugspotenzial;
- S2
- Lesen eines Ladeprogramms aus
dem EEPROM 6; - S4
- Überprüfung der digitalen Signatur des mittels des Boot-ROM-Codes anhand des im ersten
OTP 20 gespeicherten öffentlichen Schlüssels; - S6
- Lesen nachfolgender Datensätze mit Hilfe des Ladeprogramms
- S8
- prüfen der Signatur des neu aus
dem EEPROM 6 gelesenen Datensatzes anhand eines öffentlichen Schlüssels, der in einem zuvor geladenen oder im OTP-I-Speicher 20 gespeicherten Datensatz eingebettet ist, durch den Ladecode; - S20
- Lesen eines Datensatzes aus
dem EEPROM 6; - S21
- Speichern zumindest eines Teils der Daten des
Satzes im TCM 14; - S22
- Berechnen eines Hash-Werts für jedes Wort der verbleibenden Daten;
- S24
- Speichern des berechneten Hash-
Werts im DRAM 8 an einer mit dem gespeicherten Wort verbundenen Stelle mittels einer Zusammenarbeit des Prozessors 10-1 bzw. der Prozessoren 10-1, 10-2 einerseits mit der Hash-Engine 18 andererseits; - S26
- Neuberechnung des Hash-Werts, wenn ein Wort
aus dem DRAM 8 gelesen wird, durch den Prozessor 10-1, 10-2 und die Hash-Engine 18; - S30
- Vergleich des neu berechneten Hash-Werts mit dem
entsprechenden im DRAM 8 gespeicherten Hash-Wert, mittels des Prozessors 10-1, 10-2 und der Hash-Engine 18; - S34
- Überprüfen, ob die Hash-Werte eine vorbestimmte Beziehung haben, z. B. gleich sind;
- S36
- Unterbrechen der Verarbeitung und/oder Erzeugen einer Fehlermeldung und/oder Ignorieren von Daten/ Code, wenn sie nicht die vorgegebene Beziehung aufweisen;
- S38
- Verarbeitung der gelesenen Daten mittels des Prozessors bzw. der Prozessoren 10-1, 10-2, wenn die Hash-Werte eine vorbestimmte Beziehung haben, z. B. gleich sind;
- RKN1
- erstes Rückkoppelnetzwerk RKN1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), das typischerweise aus dem logischen Datenwort, das
auf dem Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorhanden ist, den logischen Rückkoppelwert erzeugt, den daserste Schieberegisterbit SB 1 1. bei Auswahl des ersten Rückkoppelnetzwerks RKN1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC)durch den Rückkoppelmultiplexer 2102und 2. bei Einstellung des seriellen Schiebemodus durch den Schieberegister-Controller 2103 über Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 eine Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107und 3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SB1 desSchieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SB1 bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SB1 lädt dann mit dem nächsten Takt des Systemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt ist das erste Rückkoppelnetzwerk RKN, des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) von den andern Rückkoppelnetzwerken des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) verschieden. Bevorzugt realisiert das erste Rückkoppelnetzwerk RKN, des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) eine logische Verknüpfung des logischen Inhalts des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert desSchieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der unter den obigen Bedingungen der nächste Nachladewert ist. Bevorzugt realisiert die logische Verknüpfung des ersten Rückkoppelnetzwerks RKN1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein einfach primitives Polynom; - RKN2
- zweites Rückkoppelnetzwerk RKN2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), das typischerweise aus dem logischen Datenwort, das
auf dem Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorhanden ist, den logischen Rückkoppelwert erzeugt, den das erste Schieberegisterbit SB1 1. bei Auswahl des zweiten Rückkoppelnetzwerks RKN2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) durch denRückkoppelmultiplexer 2102 und 2. bei Einstellung des seriellen Schiebemodus durch den Schieberegister-Controller 2103 über Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 eine Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 und 3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SB1 desSchieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SB1 bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SB1 lädt dann mit dem nächsten Takt desSystemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt ist das zweite Rückkoppelnetzwerk RKN2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) von den andern Rückkoppelnetzwerken des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) verschieden. Bevorzugt realisiert das zweite Rückkoppelnetzwerk RKN2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) eine logische Verknüpfung des logischen Inhalts desSchieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert desSchieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der unter den obigen Bedingungen der nächste Nachladewert ist. Bevorzugt realisiert die logische Verknüpfung des zweiten Rückkoppelnetzwerks RKN2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein einfach primitives Polynom, das von den einfachprimitiven Polynomen der logischen Verknüpfungen der anderen Rückkoppelnetzwerke des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise verschieden ist; - RKN3
- drittes Rückkoppelnetzwerk RKN3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), das typischerweise aus dem logischen Datenwort, das auf dem
Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorhanden ist, den logischen Rückkoppelwert erzeugt, den das erste Schieberegisterbit SB1 1. bei Auswahl des dritte Rückkoppelnetzwerks RKN3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) durch denRückkoppelmultiplexer 2102 und 2. bei Einstellung des seriellen Schiebemodus durch den Schieberegister-Controller 2103 über Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 eine Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 und 3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SB1 desSchieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SB1 bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SB1 lädt dann mit dem nächsten Takt desSystemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt ist das dritte Rückkoppelnetzwerk RKN3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) von den andern Rückkoppelnetzwerken des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) verschieden. Bevorzugt realisiert das dritte Rückkoppelnetzwerk RKN3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) eine logische Verknüpfung des logischen Inhalts desSchieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert desSchieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der unter den obigen Bedingungen der nächste Nachladewert ist. Bevorzugt realisiert die logische Verknüpfung des dritten Rückkoppelnetzwerks RKN3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein einfach primitives Polynom, das von den einfachprimitiven Polynomen der logischen Verknüpfungen der anderen Rückkoppelnetzwerke des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise verschieden ist; - RKNm
- m-tes Rückkoppelnetzwerk RKN, des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), das typischerweise aus dem logischen Datenwort, das auf dem
Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorhanden ist, den logischen Rückkoppelwert erzeugt, den das erste Schieberegisterbit SB1 1. bei Auswahl des m-te Rückkoppelnetzwerks RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) durch denRückkoppelmultiplexer 2102 und 2. bei Einstellung des seriellen Schiebemodus durch den Schieberegister-Controller 2103 über Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 eine Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 und 3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SB1 desSchieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SB1 bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SB1 lädt dann mit dem nächsten Takt desSystemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt ist das m-te Rückkoppelnetzwerk RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) von den andern Rückkoppelnetzwerken des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) verschieden. Bevorzugt realisiert das m-te Rückkoppelnetzwerk RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) eine logische Verknüpfung des logischen Inhalts desSchieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert desSchieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der unter den obigen Bedingungen der nächste Nachladewert ist. Bevorzugt realisiert die logische Verknüpfung des m-ten Rückkoppelnetzwerks RKN, des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein einfach primitives Polynom, das von den einfachprimitiven Polynomen der logischen Verknüpfungen der anderen Rückkoppelnetzwerke des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) vorzugsweise verschieden ist; - SB1
- erste Schieberegisterzelle mit dem ersten Schieberegisterbit SB1. Das erste Schieberegisterbit SB1 speist bevorzugt seinen logischen Inhalt in die erste Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das erste Schieberegisterbit SB1 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert derSchieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des ersten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist. - SB2
- zweite Schieberegisterzelle mit dem zweiten Schieberegisterbit SB2. Das zweite Schieberegisterbit SB2 speist seinen logischen Inhalt in die zweite Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das zweite Schieberegisterbit SB2 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des ersten Schieberegisterbits SB1 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des zweiten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB3
- dritte Schieberegisterzelle mit dem dritten Schieberegisterbit SB3. Das dritte Schieberegisterbit SB3 speist seinen logischen Inhalt in die dritte Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das dritte Schieberegisterbit SB3 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des zweiten Schieberegisterbits SB2 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des dritten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB4
- vierte Schieberegisterzelle mit dem vierten Schieberegisterbit SB4. Das vierte Schieberegisterbit SB4 speist seinen logischen Inhalt in die vierte Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das vierte Schieberegisterbit SB4 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des dritten Schieberegisterbits SB3 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des vierten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SBs
- fünfte Schieberegisterzelle mit dem fünften Schieberegisterbit SBs. Das fünfte Schieberegisterbit SB5 speist seinen logischen Inhalt in die fünfte Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das fünfte Schieberegisterbit SBs beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des vierten Schieberegisterbits SB4 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des fünften Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB6
- sechste Schieberegisterzelle mit dem sechsten Schieberegisterbit SB6. Das sechste Schieberegisterbit SB6 speist seinen logischen Inhalt in die sechste Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das sechste Schieberegisterbit SB6 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des fünften Schieberegisterbits SB5 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des sechsten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB7
- siebte Schieberegisterzelle mit dem siebten Schieberegisterbit SB7. Das siebte Schieberegisterbit SB7 speist seinen logischen Inhalt in die siebte Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das siebte Schieberegisterbit SB7 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des sechsten Schieberegisterbits SB6 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des siebten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB8
- achte Schieberegisterzelle mit dem achten Schieberegisterbit SB8. Das achte Schieberegisterbit SB8 speist seinen logischen Inhalt in die achte Schieberegisterbusleitung des
Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107 lädt bevorzugt das achte Schieberegisterbit SB8 beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des siebten Schieberegisterbits SB7 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke desSystemtakts 2106 desQuantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) desQuantenzufallszahlengenerators 28 den logischen Wert des achten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung desSchieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-6)
- (n-6)-te Schieberegisterzelle mit dem (n-6)-ten Schieberegisterbit SB(n-6). Das (n-6)-te Schieberegisterbit SB(n-6) speist seinen logischen Inhalt in die (n-6)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-6)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-7)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-6)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-6)
- (n-5)-te Schieberegisterzelle mit dem (n-5)-ten Schieberegisterbit SB(n-5). Das (n-5)-te Schieberegisterbit SB(n-6) speist seinen logischen Inhalt in die (n-5)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-5)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-6)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-5)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-4)
- (n-4)-te Schieberegisterzelle mit dem (n-4)-ten Schieberegisterbit SB(n-4). Das (n-4)-te Schieberegisterbit SB(n-4) speist seinen logischen Inhalt in die (n-4)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-4)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-5)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-4)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-3)
- (n-3)-te Schieberegisterzelle mit dem (n-3)-ten Schieberegisterbit SB(n-3). Das (n-3)-te Schieberegisterbit SB(n-3) speist seinen logischen Inhalt in die (n-3)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-3)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-4)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-3)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-2)
- (n-2)-te Schieberegisterzelle mit dem (n-2)-ten Schieberegisterbit SB(n-2). Das (n-2)-te Schieberegisterbit SB(n-2) speist seinen logischen Inhalt in die (n-2)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-2)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-3)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-2)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SB(n-1)
- (n-1)-te Schieberegisterzelle mit dem (n-1)-ten Schieberegisterbit SB(n-1). Das (n-1)-te Schieberegisterbit SB(n-1) speist seinen logischen Inhalt in die (n-1)-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das (n-1)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-2)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-1)-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - SBn
- n-te Schieberegisterzelle mit dem n-ten Schieberegisterbit SBn. Das n-te Schieberegisterbit SBn speist seinen logischen Inhalt in die n-te Schieberegisterbusleitung des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) ein. In Abhängigkeit vom logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-
Umschaltleitung 2107 lädt bevorzugt das n-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem seriellen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des (n-1)-ten Schieberegisterbits SB(n-7) des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, dem parallelen Schieberegisterbetriebsmodus, beispielsweise mit der nächsten steigenden Taktflanke des Systemtakts 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28 den logischen Wert des n-ten Bits des TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; - VDD
- positive Versorgungsspannungsleitung VDD auf einem positiven elektrischen Potenzial gegenüber dem Bezugspotenzial der Bezugspotenzialleitung GND;
- VENT
- positive Versorgungsspannungsleitung VEXT der Entropiequelle 411;
- 2
- integrated circuit of a microcontroller;
- 3
- Connection;
- 4
- Control device. Preferably, the
control device 4 is a microelectronic circuit; - 6
- non-volatile memory, EEPROM, external memory;
- 8th
- Random Access Memory, external memory;
- 10-1
- first processor 10-1;
- 10-2
- second processor 10-2;
- 11
- Concatenation 11;
- 12
-
JATG test controller 12 with test connection (TDI, TDO, TCK, TM); - 14
- tightly coupled
memory TCM 14; - 15
- Starting address 15 of
boot ROM 16; - 16
-
non-volatile boot ROM 16; - 18
- Hashing
engine 18; - 20
- first one-time programmable memory (OTP);
- 22
- second one-time programmable memory (OTP);
- 24
- Test disabling
circuit 24, disabling circuit; - 26
- controlled system 26 (e.g. controlled plant, controlled system);
- 28
- Quantum
random number generator 28; - 30
- additional
non-volatile memory 30, external memory; - 32
- Interface 32c to a controlled
system 26; - 40
- Example SPAD diode 40 for use as a sensor element of a single photon detector;
- 41
- Isolation, for example shallow
trench isolation STI 41 of the exemplary SPAD diode 40 or LOCOS isolation; - 42
-
Anode contact 42 of the exemplary SPAD diode 40; - 43
-
Cathode contact 43 of the exemplary SPAD diode 40. Thecathode contact 43 of the exemplary SPAD diode 40 is preferably made of indium tin oxide (ITO) or another transparent and electrically conductive material; - 44
-
Optical waveguide 44 for transporting the photons from thefirst SPAD diode 54 to thesecond SPAD diode 55. Theoptical waveguide 44 is made from a coveringoxide 44 or optically transparent insulatinglayer 44 of the exemplary SPAD diode 40; - 45
- highly doped
first connection region 45 of a first conduction type, also referred to as n+ S/D implantation. In a CMOS technology with a p-doped wafer material, this can be, for example, an n+-doped region in the semiconducting substrate material of the SPAD diode 40; - 46
- first doped well 46 of a second conduction type. In a CMOS technology with a p-doped wafer material, this can be, for example, a p-doped region in the semiconducting substrate material of the SPAD diode 40;
- 47
- second doped well 47 of a second conduction type. In a CMOS technology with a p-doped wafer material, this can be, for example, a p-doped region in the semiconducting substrate material of the SPAD diode 40;
- 48
-
epitaxial layer 48 of a second conduction type. In a CMOS technology with a p-doped wafer material, this can be, for example, a p-doped epitaxial layer in the semiconducting substrate material of the SPAD diode 40; - 49
-
Base material 49 and/orsemiconductor substrate 49 of the exemplary semiconducting single-crystal wafer or wafer piece, which preferably has a second conduction type. In a CMOS technology with a p-doped wafer material, this is, for example, a p-doped single-crystal semiconductor wafer or a p-doped single-crystal semiconductor wafer piece (die); - 50
- second doped well of a second conduction type below the anode contact. In a CMOS technology with a p-doped wafer material, this can be, for example, a p-doped region in the semiconducting substrate material of the SPAD diode 40;
- 51
- highly doped second connection region of a second conduction type, also referred to as p+ S/D implantation. In a CMOS technology with a p-doped wafer material, this can be, for example, a p+-doped region in the semiconducting substrate material of the SPAD diode 40;
- 52
- Insulation, for example an oxide or the like;
- 53
- Metal cover of the
optical fiber 44; - 54
- First SPAD diode. The
first SPAD diode 55 serves at least temporarily as a light source for irradiating thesecond SPAD diode 45 with photons from thefirst SPAD diode 54; - 55
- Second
SPAD diode 55. Thesecond SPAD diode 55 serves, for example, at least temporarily as a photodetector for the light from thefirst SPAD diode 54. - 56
-
Surface 56 of the wafer as defined in the document presented here; - 57
-
light 57 of thefirst SPAD diode 54 emitted vertically upwards in a direction perpendicular to thesurface 56; - 58
- light 58 transported horizontally in the
optical waveguide 44, which is a part of the light 57 radiated vertically by thefirst SPAD diode 54 into theoptical waveguide 44; - 59
-
light 59 of thefirst SPAD diode 54 radiated vertically downwards in a direction perpendicular to thesurface 56 from theoptical waveguide 44 into thesecond SPAD diode 55, which was emitted by thefirst SPAD diode 54 asperpendicular light 57 into theoptical waveguide 44 and then transported horizontally by theoptical waveguide 44 to thesecond SPAD diode 55; - 61
- data records;
- 62
- digital signature;
- 63
- Interface;
- 64
- data bus interface;
- 65
- external data bus. The external data bus can be a wired data connection or a wireless data connection in the sense of the document presented here;
- 81
-
Interface 81; - 82
-
Bus arbiter 82; - 83
-
Reset circuit 83; - 84
-
analog input processing 84; - 85
- Analog-to-
digital converter 85; - 86
-
digital signal processing 86; - 87
- Digital-to-
analog converter 87 - 88
-
analog output processing 88; - 89
- one or more external analog signals 89;
- 90
- analog output signals 90;
- 91
-
Voltage converter 91; - 92
-
Clock generator 92. Theclock generator 92 preferably generates thesystem clock 2106. Preferably, the watchdog 404.5 monitors thesystem clock 2106 for too low or too high speed and for clock jitter. If thesystem clock 2106 of theclock generator 92 shows a clock jitter, the watchdog 404.5 reports an error to the processor 10-1 via thedata bus 419 or via the interruptline 420; - 140
- Contact;
- 141
-
Metal 1 wires; - 142
-
Metal 2 wires /metal 2 covers; - 241
- gate
- 242
- gate
- 301
- interface
- 401
-
Entropy Source 401; - 402
-
High frequency amplifier 402; - 403
- Analog-to-digital converter (ADC) 403;
- 404
-
Evaluation circuit 404; - 404.1
- Constant 404.1;
- 404.2
- Comparator 404.2;
- 404.3
- Time-to-Pseudo-Random Number Converter 404.3 (TPRC);
- 404.4
- Entropy Extraction Device 404.4;
- 404.5
- Watchdog 404.5;
- 404.6
- optional, additional, linear feedback shift register. The feedback is preferably a simple primitive polynomial to generate pseudorandom bit sequences;
- 404.7
- signal multiplexer;
- 404.8
- Finite State Machine;
- 404.9
- RAM or FIFO;
- 404.10
- finish flag;
- 404.11
- Processor 10-1, 10-2;
- 405
- Voltage signal of
entropy source 401; - 406
-
Amplifier output signal 406 of thehigh frequency amplifier 402; - 407
-
Output signal 407 of the analog-to-digital converter 403. of thedigital bit value 407 of the analog-to-digital converter 403. Bit widths other than 1 bit are conceivable; - 408
- Signal of constant 404.1;
- 409
-
Output signal 409 of comparator 404.2; - 410
-
Output 410 of the time-to-pseudo-random number converter 404.3 (TPRC); - 411
- Entropy extraction output 404.4;
- 412
- Seed S;
- 413
- voltage monitor;
- 414
- signal lines;
- 415
-
synchronized voltage signal 415. Thesynchronized voltage signal 415 generates the pulse extension circuit 2023 (MF) from theoutput signal 407 of the analog-to-digital converter 403 in dependence on thesystem clock 2106; - 416
- selection signal;
- 417
- pseudorandom signal line;
- 418
- quantum random data words;
- 419
-
internal data bus 419 of the quantumrandom number generator 28. Preferably, this is the internal data bus of thecontrol device 4; - 420
- Interrupt
signal 420 of the watchdog 404.5 of the quantumrandom number generator 28 or thecontrol device 4; - 500
-
Flowchart 500 of the entropy extraction process; - 501
-
first step 501 with determination of the first value of theoutput 410 of the time-to-pseudo-random number converter 404.3 and the second value of theoutput 410 of the time-to-pseudo-random number converter 404.3 and storage in a shift register of the entropy extraction 404.4; - 502
- second step of comparing the first value with the second value;
- 503
- third step of evaluating the first value and the second value and generating the quantum
random bit 411; - 601
- first spikes;
- 602
- second spikes;
- 603
- cutting level;
- 2021
- monitored internal tensions 2021;
- 2022
- Line 2022 for preventing the use of a quantum
random bit 411 by the finite state machine 404.8; - 2023
-
Pulse extension circuit 2023, typically in the form of a monoflop MF. The monoflop MF extends a pulse on the line of thedigital bit value 407 of the analog-to-digital converter 403 to a temporal length of at least one clock period of thesystem clock 2106; - 2101
-
Shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC); - 2102
-
Feedback multiplexer 2102 of the time-to-pseudorandom number converter 404.3 (TPRC); - 2103
-
Shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC). Theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) switches the n shift register bits (SB 1 to SB n ) from the serial shift register operating mode to the parallel shift register operating mode via theinternal data bus 419 by means of a parallel to serial shift registermode switching line 2107, for example at the instigation of a processor (10-1, 10-2), so that the shift register bits (SB 1 to SB n ) of the shift register use the current logic value of theTPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) as the starting value (seed) of the linear feedback shift register. Theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) activates, for example, at the instigation of a processor (10-1, 10-2) via theinternal data bus 419 by means of a parallel to serial shift registermode switching line 2107, the n shift register bits (SB 1 to SB n ) from the serial shift register operating mode to the serial shift register operating mode, so that the first shift register bit SB 1 of the n shift register bits (SB 1 to SB n ) takes over the current logical value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106 and the other shift register bits SB j of the shift register bits (SB 1 to SB n ) of the shift register take over the respective logical value of their Previous shift register bits SB (j-1) are taken over with the next clock of thesystem clock 2106. One or more processors (10-1, 10-2) can write and/or read one or more registers of theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via theinternal data bus 419. Preferably, the processors (10-1, 10-2) can write one or more registers of theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via theinternal data bus 419 and thus determine the logical value of theTPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) that the shift register uses as the next seed value. This function can be blocked by an access code in theOPT II memory 22 by means of thedeactivation circuit 24. Preferably, however, theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) generates the logical value of theTPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) from the data stream of the quantumrandom bits 411 in a special internal register of theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which the shift register uses as the next seed value. This has the advantage that the behavior of the circuit then depends on a quantum process and is therefore unpredictable. If thedetection circuit 2113 detects an illegal value of the state vector of the n shift register bits SB 1 to SB n , it reports this to theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which then takes action. One such typical action is resetting the state vector of the n shift register bits SB 1 to SB n to a predetermined value, for example the seed value of the current value of theTPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) or another predefined value. Theshift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) activates or deactivates, preferably via the shift registerbit activation bus 2109, the data transfer of the n shift register bits (SB 1 to SB n ) at the next clock edge of the clock edge direction used, typically bit-selectively. Preferably, however, theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) generates the logical reload value of the feedbackpolynomial selection register 2112 from the data stream of the quantumrandom bits 411 in a special internal register of theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) and loads this reload value into the feedbackpolynomial selection register 2112. By means of a line 2022 for preventing the use of a quantumrandom bit 411 by the finite state machine 404.8, theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably prevents the finite state machine 404.8 from using thosequantum bits 411 that theShift register controller 2103 of time-to-pseudorandom number converter 404.3 (TPRC) has already been used; - 2104
- Shift register reload
value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC), which selects the next serial reload value for the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) when one of the m feedback networks (RKN 1 to RKN m ) of the time-to-pseudo-random number converter 404.3 (TPRC) is selected by thefeedback multiplexer 2102 and when the serial shift mode is set by theshift register controller 2103 as n, which is loaded into the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106; - 2105
-
Threshold 2105; - 2106
-
System clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28; - 2107
- Parallel-to-serial shift register
mode switching line 2107 which can switch the n shift register bits (SB 1 to SB n ) from the serial shift register operation mode to the parallel shift register operation mode depending on their logic value; - 2109
- Shift register
bit activation bus 2109 with typically n shift register bit activation lines of the respectively associated n shift register bits (SB 1 to SB n ) for the respective, preferably bit-selective activation of the data transfer of the n shift register bits (SB 1 to SB n ) at the next clock edge of the clock edge direction used, wherein the respective data source of the data transfer is determined by the respective shift register bit of the respectively associated n shift register bits (SB 1 to SB n ) by one or more parallel-to-serial shift registermode switching lines 2107 of theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC); - 2110
-
TPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC), which typically comprises one data line for each shift register bit of the shift register bits (SB1 to SB n ) of the time-to-pseudo-random number converter 404.3 (TPRC), the logical content of which represents one bit of theTPRG data bus 2110. These bits of theTPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) typically form the starting value (seed) of the time-to-pseudo-random number converter 404.3 (TPRC), which theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) loads into the shift register cells of the shift register bits (SB1 to SB n ) via the internal data bus 1901 at the command of a processor (10-1, 10-2); - 2111
- Control register 2111 of the
feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) loads the control register 2111 of thefeedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC) and thereby selects the feedback polynomial by selecting the current feedback network of the feedback networks (RKN 1 to RKN m ). Preferably, theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) changes the value of the control register 2111 of thefeedback multiplexer 2102 only when a quantumrandom bit 411 has been successfully generated or when theshift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) has generated at least one start pulse for the - 2112
- Feedback
polynomial selection register 2112; - 2113
-
Detection circuit 2113 for detecting an illegal value of the state vector of the n shift register bits SB 1 to SB n ; - 2201
- first
exemplary pulse 2201 of theentropy source 401 on thevoltage signal 405 of theentropy source 401; - 2202
- second
exemplary pulse 2202 of theentropy source 401 on thevoltage signal 405 of theentropy source 401; - 2203
- third
exemplary pulse 2203 of theentropy source 401 on thevoltage signal 405 of theentropy source 401; - 2204
- fourth
exemplary pulse 2204 of theentropy source 401 on thevoltage signal 405 of theentropy source 401; - 2211
- first exemplary pulse of the
synchronized voltage signal 415 generated from the firstexemplary pulse 2201 of theentropy source 401; - 2212
- second exemplary pulse of the
synchronized voltage signal 415 generated from the secondexemplary pulse 2202 of theentropy source 401; - 2213
- third exemplary pulse of the
synchronized voltage signal 415 generated from the thirdexemplary pulse 2203 of theentropy source 401; - 2214
- fourth exemplary pulse of the
synchronized voltage signal 415 generated from the fourthexemplary pulse 2204 of theentropy source 401; - 2301
- High-
side transistor 2301 of the first half-bridge of the charge pump for theentropy source 411; - 2302
- Low-
side transistor 2302 of the first half-bridge of the charge pump for theentropy source 411; - 2303
- second high-
side transistor 2303 of the second half-bridge of the charge pump for theentropy source 411. In the example of23 the second high-side transistor 2301 of the charge pump for theentropy source 411 is connected as a MOS diode; - 2305
-
Transfer transistor 2305 of the charge pump for theentropy source 411. In the example of23 thetransfer transistor 2305 of the charge pump for theentropy source 411 is connected as a MOS diode; - 2306
- first energy storage, here in the example of
23 a first capacitor 2306; - 2307
- second energy storage, here in the example of the
23 asecond capacitor 2307; - 2311
- Control contact (gate) 2311 of the high-
side transistor 2301 of the first half-bridge of the charge pump for theentropy source 411; - 2312
- Control contact (gate) 2311 of the low-
side transistor 2302 of the first half-bridge of the charge pump for theentropy source 411; - 2313
- Control contact (gate) 2311 of the second high-
side transistor 2303 of the charge pump for theentropy source 411; - 2320
-
Output node 2320 of the first half bridge of the charge pump for theentropy source 411; - 2321
-
Output node 2321 of the charge pump for theentropy source 411; - 2330
-
Control device 2330 of thevoltage converter 91 for supplying theentropy source 411 with a sufficient operating voltage of the supply voltage line V ENT of theentropy source 411 relative to the reference potential line GND at the reference potential. - 2401
- exemplary imaginary semiconductor die 2401 of the
integrated circuit 2, for example the microcontroller, for explaining the optimal placement of a quantum random number generator in an exemplary layout of amicrointegrated circuit 2; - 2402
- Connection pads (connection area) of a line of the
micro-integrated circuit 2; - 2403
- Pad frame of the
micro-integrated circuit 2; - 2404
- Wiring area of the
micro-integrated circuit 2; - 2405
- inner area of the
microintegrated circuit 2;
- 3000
- Creating a socket descriptor;
- 3010
- Binding the socket descriptor to a port and IP address;
- 3020
- passive wait state and waiting for connection requests from an
integrated circuit 2, for example a microcontroller, a client; - 3030
- Establishing a connection from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client through the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
- 3040
- Generating a quantum
random number 411 and generating a public and a private key using an RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server using a quantumrandom number generator 28 QRNG and an RSA method. - 3050
- Waiting for an encrypted message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
- 3060
- Decrypting the message of the private key from
step 3040 stored in a memory of the computer (here the exemplary micro-integrated circuit 2) according to the RSA method - 3070
- Encryption of the message of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by means of the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client from
step 3040 according to the RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server; - 3080
- Sending the encrypted message stored in the buffer of the computer (here the exemplary micro-integrated circuit 2) of the server to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client via the
data bus interface 64 of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server and via thedata bus 65 and via thedata interface 64 of the first processor 10-1 of the computer by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server; - 3090
- Executing the function close() and closing the open connection to a socket, here the client's socket, and terminating communication with the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
- 3100
- Generating a socket descriptor by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and making a connection request to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server using the port and the IP address which were determined in
step 3010 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client; - 3110
- Establishing a connection between the server socket from
step 3010 and the client socket fromstep 3100; - 3120
- Generating a quantum random number based on quantum
random bits 411 and generating a public and a private key using an RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client using a quantumrandom number generator 28 QRNG and an RSA method. - 3130
- Encrypting the client's own message using the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server from
step 3040 using the RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client; - 3140
- Sending the encrypted message of the client to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client;
- 3150
- Waiting for an encrypted message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and receiving a message from the first processor 10-1 of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and storing the thus received and typically encrypted message from the first processor 10-1 of the server in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and reading the incoming data from the first processor 10-1 of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client by executing the function recv() from a socket descriptor, in this case from the socket descriptor of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client from step 3100 and store the read data preferably in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client;
- 3160
- Decrypting an encrypted message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server received by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client by executing the function Decrypt() by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client using the private key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client from
step 3120 by means of the RSA method and then storing the message decrypted in this way in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client. exemplary micro-integrated circuit 2) of the client; - 3170
- Closing the open connection to the socket by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and terminating the communication with the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client;
- 3200
- Generation of two different prime numbers p and q and the product n=p*q and the result of Euler's phi function phi = (p-1)(q-1) by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by means of the function KeyExchangeServer();
- 3210
- Generation of a number e that is coprime to phi by calling the function setE() by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server, where the number phi is the one from
step 3200 and where coprime in the sense of the present document means that there is no natural number other than the number one that simultaneously divides the number e and the number phi by integers; - 3220
- Calculating the multiplicative inverse of the number e using the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server using the function findD(), such that (e*d)mod phi = 1;
- 3230
- Waiting for an incoming message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client, which should typically include the client's public key, by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server and reading the incoming data from a socket descriptor, in this case the client's socket descriptor, by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server and storing the read data preferably in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
- 3240
- Sending the public key (d,n) of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server from
3200 and 3220 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client via a socket descriptor, in this case the socket descriptor of the client fromsteps step 3030; - 3245
- Exiting the KeyExchangeServer() function by the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the server;
- 3250
- Generating the prime number p and generating the prime number q different from q and generating the product n=p*q and generating the Euler phi function phi = (p-1)(q-1), each by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client by means of the function KexExchangeClient();
- 3260
- Generating an integer e that is relatively prime to the number phi from
step 3250 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client using the function setE(), where relatively prime in the sense of the present document means that there is no natural number other than the number one that simultaneously divides the number e and the phi without a remainder; - 3270
- Calculating the multiplicative inverse of the number e by the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the client using the function findD(), such that (e*d)mod phi = 1;
- 3280
- Sending the public key (d,n) of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client from
3250 and 3270 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client, wherein the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client sends data via a socket descriptor, in this case the socket descriptor of the client fromsteps step 3100, using the send() function; - 3290
- Waiting for an incoming message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server with the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client and reading incoming data from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server from a socket descriptor, in this case from the socket descriptor of the client from
step 3100, by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client using the recv() function and storing this data in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the Computer (here the example micro-integrated circuit 2) of the client; - 3295
- Exiting the KeyExchangeClient() function by the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the client;
- 3300
- Generating a random number by means of a quantum
random number generator 28 QRNG by the calling first processor 10-1 and determining a prime number as a function of this random number by the calling first processor 10-1 and storing this prime number as a variable p in the memory of the computer (here the exemplary microintegrated circuit 2), of which the calling first processor 10-1 is a part; - 3110
- Generating a second random number by means of a quantum
random number generator 28 QRNG by the calling first processor 10-1 and determining a prime number as a function of this random number by the calling first processor 10-1 and storing this prime number as a variable q in the memory of the computer (here the exemplary micro-integrated circuit 2), of which the calling first processor 10-1 is a part; - 3320
- Checking whether the logical statement q==p holds by the calling first processor 10-1 and repeating the steps from
step 3310 by the calling processor 10-1 if this statement holds; - 3330
- Calculating the product n= p * q by the calling processor location 10-1;
- 3340
- Calculating Euler's phi function phi = (q-1) * (p-1) by the calling processor location 10-1;
- 3350
- Exit of the function setPrimes() by the calling processor 10-1;
- 3400
- Sequence of the SetE() function, When the setE() function is called in
step 3400, the caller, in the case of the present document the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client, generates a random number e for which it is coprime to the number phi. Coprime in the sense of the present document means that there is no natural number other than the number one that divides the number e and phi at the same time. The calling processor 10-1 can generate the number e both by a random number from the quantumrandom number generator 28 QRNG and by a pseudo-random number generator PRNG and by iterating up an integer number starting with 2. However, generation by means of the quantumrandom number generator 18 QRNG is preferred; - 3410
- Checking whether the logical statement gcd(e,phi) != 1 is satisfied by the calling processor 10-1 and repeating
step 3400 by the calling processor 10-1 if the logical statement is satisfied. The calling processor 10-1 calculates the greatest common divisor of the transfer parameters a, b using this function gcd(a,b) and returns the result to the calling processor 10-1; - 3420
- Exiting the function setE() and returning the current value of e as a return value to the calling processor 10-1 by the calling processor 10-1 if the logical statement gcd(e,phi) != 1 is not satisfied;
- 3500
- Initializing a variable d with 0 by the calling processor 10-1, here the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
- 3510
- Adding the
number 1 to the number d by the calling processor 10-1; - 3520
- Checking whether the logical statement (e*d) (mod phi) == 1 is satisfied by the calling processor 10-1 and repeating the steps from
step 3510 if the logical statement (e*d) (mod phi) == 1 is not satisfied; - 3530
- Exiting the function findD() by the calling processor 10-1 when the logical statement (e*d) (mod phi) == 1 is satisfied and returning the current value of d as a return value to the calling processor 10-1, in the case of the present document the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client;
- 3600
- Server;
- 3610
- Clients;
- 3620
- Sending the public key of the
server 3600, which is based on a first quantum random number of the quantumrandom number generator 28 QRNG of the computer (here the exemplary micro-integrated circuit 2) of theserver 3600, via a non-tap-proof channel to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theserver 3600; - 3630
- Generating a pseudorandom number PZ or a random number generated in another way by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
client 3610 and storing the pseudorandom number PZ or the random number generated in another way in a memory of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 and generating a first private key of theclient 3610 and a first public key of theclient 3610 using this pseudorandom number PZ or this random number generated in another way by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 and encrypting this first public key of theclient 3610 using the public key of theserver 3600 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 and sending the encrypted first public key of theclient 3610 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theserver 3600 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610; - 3640
- Decrypting the message of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 with the first private key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610, so that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 has the first public key of the client 3610 without this being known to third parties, and generating a further, second quantum random number QZ2 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 by means of the quantum random number generator 28 QRNG, wherein the bit width of this second quantum random number is preferably equal to the bit width of the random number PZ of the client 3610, and Encrypting the second quantum random number QZ2 with the first public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 to form an encrypted second quantum random number QZ2' by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600, wherein, for example, the first public key of the client 3610 can be the random number PZ of the client and wherein in this case the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 can encrypt the second quantum random number QZ2, for example by bitwise XORing the second quantum random number QZ2 with PZ to form an encrypted second quantum random number QZ2', and sending the encrypted second quantum random number QZ2' to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600.
- 3650
- Decryption of the encrypted second quantum random number QZ2' using the first private key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the
server 3600 to the second quantum random number QZ2 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610. If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) has determined the second encrypted quantum random number QZ2' by bitwise XORing the random number PZ with the second quantum random number QZ2, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 can, for example, by bitwise XORing the encrypted second quantum random number QZ2' with the random number PZ known to it. to decrypt the second quantum random number QZ2. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 uses the second quantum random number QZ2 that it now has as the basis for generating a second private key and a second public key according to an asymmetric encryption method. The asymmetric encryption method can be, for example, the RSA method (APPENDIX). The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610 now sends its second public key to theserver 3600 via the non-tap-proof channel. In doing so, it preferably encrypts this second public key of theclient 3610 with the public key of theserver 3600. Theserver 3600 decrypts the encrypted second public key of theclient 3610 and then uses this second public key of the client to encrypt further messages to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theclient 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theserver 3600 generates and sends after a predetermined time or after sending a predetermined amount of data to the processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theClients 3610 generate a new public key based on a new quantum random number from their quantumrandom number generator 28 QRNG encrypted with the second public key of theclient 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of theserver 3600 and the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then carry out the previously described method again so that the keys change permanently. This also makes it impossible for a quantum computer to break the keys; - 3700
- Method for generating a quantum
random number QZ 418 with m quantumrandom bits 411; - 3710
- Generation of a random single photon stream (57, 58, 59, 44) by means of one or
more photon sources 54 and/or one ormore silicon LEDs 54 and/or one or more first SPAD diodes (54), wherein preferably thephoton sources 54 and/or thesilicon LEDs 54 and/or the first SPAD diodes (54) are manufactured in one piece in acommon semiconductor substrate 49; - 3720
- Transmission of the random single photon stream (57, 58, 59, 44) by means of the semiconductor substrate (49, 48) and/or by means of an
optical waveguide 44 different from the semiconductor substrate (49, 48) and/or directly between the components to one ormore photon detectors 55 and/or one or more second SPAD diodes (55); - 3730
- Conversion of the random single photon stream (57, 58, 59, 44) into a detection signal in the form of a
voltage signal 405 of theentropy source 401, which preferably comprisesphoton sources 54 and/or one ormore silicon LEDs 54 and/or one or more first SPAD diodes (54) and the means for light transmission, such as the semiconductor substrate (49, 48) and/or theoptical waveguide 44, and thephoton detectors 55 and/or the secondSPAD diodes 55; - 3740
- Processing, in particular amplifying and/or filtering and/or analog-to-digital converting, the detection signal into a processed detection signal, in particular a digital 14-
bit value 407 of the analog-to-digital converter 403 or a 1-bit analog-to-digital converter 403; - 3750
- optionally separating the pulses of the conditioned detection signal generated by optical coupling of the emissions of a
photon source 54 and/or asilicon LED 54 and/or a firstSPAD diode 54 on the one hand and aphoton detector 55 and/or a secondSPAD diode 55 on the other hand from the pulses of the conditioned detection signal generated by spontaneous emission by comparing the conditioned detection signal with a threshold value, in particular in a comparator 404.2 and generating acorresponding output signal 409, in particular of the comparator 404.2. If necessary, the analog-to-digital converter 403 can generate theoutput signal 409 directly if it is a 1-bit analog-to-digital converter 403. In this respect, thisstep 3750 is optional and is therefore only shown in dashed lines; - 3760
-
Determination 3760 of a first pseudorandom number as a function of a first time interval between the first pulse and the second pulse of a first pair of two successive pulses of the processed detection signal, which pulses are generated by optical coupling of the emissions of aphoton source 54 or asilicon LED 54 or a firstSPAD diode 54 on the one hand and aphoton detector 55 or a secondSPAD diode 55 on the other hand, as the first value of theoutput 410 of the time-to-pseudorandom number converter 404.3; - 3765
-
Determination 3760 of a second pseudorandom number as a function of a second time interval between the third pulse and the fourth pulse of a first pair of two successive pulses of the processed detection signal, which pulses are generated by optical coupling of the emissions of aphoton source 54 or asilicon LED 54 or a firstSPAD diode 54 on the one hand and aphoton detector 55 or a secondSPAD diode 55 on the other hand, as the first value of theoutput 410 of the time-to-pseudorandom number converter 404.3. The third pulse can be identical to the second pulse (seestep 3760).; - 3670
- Determining the bit value of a quantum
random bit 411 by comparing the value of the first pseudorandom number and the value of the second pseudorandom number; - 3680
- Check 3680. In the check 3680, the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) and/or a finite state machine 404.8 check whether the number n of the determined quantum
random bits 411 is still smaller than the desired number m of the random bits of the desired quantumrandom number 418. If this is not the case, the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) and/or finite state machine 404.8 repeat theabove steps 3710 to 3770. Otherwise, the processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) or the finite state machine 404.8 terminate the process for generating a quantum random number. If necessary, the finite state machine 404.8 makes the quantum random number available to the processor 10-1 and preferably signals this availability to the processor 10-1, for example by means of an interrupt or by setting a flag.
- GND
- Reference potential line GND to reference potential;
- S2
- Reading a loading program from the
EEPROM 6; - S4
- Verifying the digital signature of the boot ROM code using the public key stored in the
first OTP 20; - S6
- Reading subsequent data records using the loader program
- S8
- checking the signature of the data record newly read from the
EEPROM 6 using a public key embedded in a data record previously loaded or stored in the OTP-I memory 20, by the loading code; - S20
- Reading a data record from the
EEPROM 6; - S21
- Storing at least part of the data of the set in the
TCM 14; - S22
- Calculating a hash value for each word of the remaining data;
- S24
- Storing the calculated hash value in the
DRAM 8 at a location associated with the stored word by means of cooperation between the processor 10-1 or the processors 10-1, 10-2 on the one hand and thehash engine 18 on the other hand; - S26
- Recalculating the hash value when a word is read from the
DRAM 8 by the processor 10-1, 10-2 and thehash engine 18; - S30
- Comparing the newly calculated hash value with the corresponding hash value stored in the
DRAM 8, by means of the processor 10-1, 10-2 and thehash engine 18; - S34
- Check whether the hash values have a predetermined relationship, e.g. are equal;
- S36
- Interrupting processing and/or generating an error message and/or ignoring data/code if it does not have the specified relationship;
- S38
- Processing the read data by the processor or processors 10-1, 10-2 if the hash values have a predetermined relationship, e.g. are equal;
- RKN1
- first feedback network RKN 1 of the time-to-pseudo-random number converter 404.3 (TPRC), which typically generates the logical feedback value from the logical data word present on the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC), which the first shiftregister bit SB 1 1. when the first feedback network RKN 1 of the time-to-pseudo-random number converter 404.3 (TPRC) is selected by the 2102 and 2. when the serial shift mode is set by thefeedback multiplexer shift register controller 2103 via parallel-to-serial shift register mode switching line 2107 a parallel-to-serial shift register 2107 and 3. when the shift register bit activation line of the first shift register bit SB 1 of the Shift registermode switching line bit activation bus 2109 for activating the data transfer of the first shift register bit SB 1 at the next clock edge of the clock edge direction signal used as the next serial reload value for the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SB 1 then loads this next serial reload value into the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106. The first feedback network RKN of the time-to-pseudo-random number converter 404.3 (TPRC) is preferably different from the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the first feedback network RKN of the time-to-pseudo-random number converter 404.3 (TPRC) implements a logical connection of the logical content of theshift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC), which is the next reload value under the above conditions. Preferably, the logical connection of the first feedback network RKN 1 of the time-to-pseudo-random number converter 404.3 (TPRC) implements a simple primitive polynomial; - RKN2
- second feedback network RKN 2 of the time-to-pseudo-random number converter 404.3 (TPRC), which typically generates the logical feedback value from the logical data word present on the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC), which the first shiftregister bit SB 1 1. when the second feedback network RKN 2 of the time-to-pseudo-random number converter 404.3 (TPRC) is selected by the 2102 and 2. when the serial shift mode is set by thefeedback multiplexer shift register controller 2103 via parallel-to-serial shift register mode switching line 2107 a parallel-to-serial shift register 2107 and 3. when the shift register bit activation line of the first shift register bit SB 1 of the Shift registermode switching line bit activation bus 2109 for activating the data transfer of the first shift register bit SB 1 at the next clock edge of the clock edge direction signal used as the next serial reload value for the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SB 1 then loads this next serial reload value into the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106. Preferably, the second feedback network RKN 2 of the time-to-pseudo-random number converter 404.3 (TPRC) is different from the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the second feedback network RKN 2 of the time-to-pseudo-random number converter 404.3 (TPRC) implements a logical connection of the logical content of theshift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC), which is the next reload value under the above conditions. Preferably, the logical connection of the second feedback network RKN 2 of the time-to-pseudo-random number converter 404.3 (TPRC) implements a simple primitive polynomial, which is preferably different from the simple primitive polynomials of the logical connections of the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC); - RKN3
- third feedback network RKN 3 of the time-to-pseudo-random number converter 404.3 (TPRC), which typically generates the logical feedback value from the logical data word present on the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC), which the first shiftregister bit SB 1 1. when the third feedback network RKN 3 of the time-to-pseudo-random number converter 404.3 (TPRC) is selected by the 2102 and 2. when the serial shift mode is set by thefeedback multiplexer shift register controller 2103 via parallel-to-serial shift register mode switching line 2107 a parallel-to-serial shift register 2107 and 3. when the shift register bit activation line of the first shift register bit SB 1 of the Shift registermode switching line bit activation bus 2109 for activating the data transfer of the first shift register bit SB 1 at the next clock edge of the clock edge direction signal used as the next serial reload value for the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SB 1 then loads this next serial reload value into the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106. The third feedback network RKN 3 of the time-to-pseudo-random number converter 404.3 (TPRC) is preferably different from the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the third feedback network RKN 3 of the time-to-pseudo-random number converter 404.3 (TPRC) implements a logical connection of the logical content of theshift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC), which is the next reload value under the above conditions. Preferably, the logical connection of the third feedback network RKN 3 of the time-to-pseudo-random number converter 404.3 (TPRC) implements a simple primitive polynomial, which is preferably different from the simple primitive polynomials of the logical connections of the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC); - RKNm
- m-th feedback network RKN, of the time-to-pseudo-random number converter 404.3 (TPRC), which typically generates the logical feedback value from the logical data word present on the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC), which the first shiftregister bit SB 1 1. upon selection of the m-th feedback network RKN m of the time-to-pseudo-random number converter 404.3 (TPRC) by the 2102 and 2. upon setting of the serial shift mode by thefeedback multiplexer shift register controller 2103 via parallel-to-serial shift register mode switching line 2107 a parallel-to-serial shift register 2107 and 3. upon activation of the shift register bit activation line of the first shift register bit SB 1 of the Shift registermode switching line bit activation bus 2109 for activating the data transfer of the first shift register bit SB 1 at the next clock edge of the clock edge direction signal used as the next serial reload value for the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SB 1 then loads this next serial reload value into the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of thesystem clock 2106. Preferably, the m-th feedback network RKN m of the time-to-pseudo-random number converter 404.3 (TPRC) is different from the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the m-th feedback network RKN m of the time-to-pseudo-random number converter 404.3 (TPRC) implements a logical connection of the logical content of theshift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC), which is the next reload value under the above conditions. Preferably, the logical connection of the m-th feedback network RKN of the time-to-pseudo-random number converter 404.3 (TPRC) implements a simple primitive polynomial, which is preferably different from the simple primitive polynomials of the logical connections of the other feedback networks of the time-to-pseudo-random number converter 404.3 (TPRC); - SB1
- first shift register cell with the first shift register bit SB 1 . The first shift register bit SB 1 preferably feeds its logical content into the first shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the first shift register bit SB 1 preferably reloads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the shift register reloadvalue line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the first bit of theTPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high). - SB2
- second shift register cell with the second shift register bit SB 2 . The second shift register bit SB 2 feeds its logical content into the second shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the second shift register bit SB 2 preferably loads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the first shift register bit SB 1 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the second bit of theTPRG data bus 2110 as its next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high); - SB3
- third shift register cell with the third shift register bit SB 3 . The third shift register bit SB 3 feeds its logical content into the third shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the third shift register bit SB 3 preferably loads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the second shift register bit SB 2 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the third bit of theTPRG data bus 2110 as its next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high); - SB4
- fourth shift register cell with the fourth shift register bit SB 4 . The fourth shift register bit SB 4 feeds its logical content into the fourth shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the fourth shift register bit SB 4 preferably loads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the third shift register bit SB 3 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the fourth bit of theTPRG data bus 2110 as its next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high); - SBs
- fifth shift register cell with the fifth shift register bit SBs. The fifth shift register bit SB 5 feeds its logical content into the fifth shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the fifth shift register bit SBs preferably loads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the fourth shift register bit SB 4 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the fifth bit of theTPRG data bus 2110 as its next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high); - SB6
- sixth shift register cell with the sixth shift register bit SB 6 . The sixth shift register bit SB 6 feeds its logical content into the sixth shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logical value of the parallel-to-serial shift registermode switching line 2107, the sixth shift register bit SB 6 preferably loads, for example a) at a first logical value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logical value of the fifth shift register bit SB 5 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logical value and b) at a second logical value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logical value of the sixth bit of theTPRG data bus 2110 as its next logical value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (eg high); - SB7
- seventh shift register cell with the seventh shift register bit SB 7 . The seventh shift register bit SB 7 feeds its logical content into the seventh shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift registermode switching line 2107, the seventh shift register bit SB 7 preferably loads, for example, a) at a first logic value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the sixth shift register bit SB 6 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logic value of the seventh bit of theTPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (e.g. high); - SB8
- eighth shift register cell with the eighth shift register bit SB 8 . The eighth shift register bit SB 8 feeds its logical content into the eighth shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logical value of the parallel-to-serial shift registermode switching line 2107, the eighth shift register bit SB 8 preferably loads, for example a) at a first logical value of the parallel-to-serial shift registermode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logical value of the seventh shift register bit SB 7 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logical value and b) at a second logical value of the parallel-to-serial shift registermode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of thesystem clock 2106 of the quantumrandom number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantumrandom number generator 28, the logical value of the eighth bit of theTPRG data bus 2110 as its next logical value if at the same time the first shift register bit activation line of the shift registerbit activation bus 2109 is active (eg high); - SB(n-6)
- (n-6)-th shift register cell with the (n-6)-th shift register bit SB (n-6) . The (n-6)-th shift register bit SB (n-6) feeds its logical content into the (n-6)-th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the (n-6)th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-7)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-6)-th bit of the TPRG data bus 2110 as their next logic value if at the same time the first shift register bit enable line of the shift register bit enable bus 2109 is active (eg high); - SB(n-6)
- (n-5)th shift register cell with the (n-5)th shift register bit SB (n-5) . The (n-5)th shift register bit SB (n-6) feeds its logical content into the (n-5)th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the (n-5)th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-6)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-5)th bit of the TPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (eg high); - SB(n-4)
- (n-4)th shift register cell with the (n-4)th shift register bit SB (n-4) . The (n-4)th shift register bit SB (n-4) feeds its logical content into the (n-4)th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the (n-4)th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-5)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-4)th bit of the TPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (eg high); - SB(n-3)
- (n-3)th shift register cell with the (n-3)th shift register bit SB (n-3) . The (n-3)th shift register bit SB (n-3) feeds its logical content into the (n-3)th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the (n-3)th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-4)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-3)th bit of the TPRG data bus 2110 as its next logic value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (eg high); - SB(n-2)
- (n-2)-th shift register cell with the (n-2)-th shift register bit SB (n-2) . The (n-2)-th shift register bit SB (n-2) feeds its logical content into the (n-2)-th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the (n-2)th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-3)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-2)-th bit of the TPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (eg high); - SB(n-1)
- (n-1)-th shift register cell with the (n-1)-th shift register bit SB (n-1) . The (n-1)th shift register bit SB (n-1) feeds its logical content into the (n-1)th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logical value of the parallel-to-serial shift register mode switching line 2107, the (n-1)th shift register bit SB (n-6) preferably loads, for example a) at a first logical value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logical value of the (n-2)th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logical value and b) at a second logical value of the parallel-to-serial shift register mode switching line 2107, the parallel shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28 the logical value of the (n-1)th bit of the TPRG data bus 2110 as its next logical value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (e.g. high); - SBn
- n-th shift register cell with the n-th shift register bit SB n . The n-th shift register bit SB n feeds its logical content into the n-th shift register bus line of the
shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the n-th shift register bit SB (n-6) preferably loads, for example, a) at a first logic value of the parallel-to-serial shift register mode switching line 2107, the serial shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the (n-1)-th shift register bit SB (n-7) of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value and b) at a second logic value of the parallel-to-serial shift register mode switching line 2107, the parallel Shift register operating mode, for example with the next rising clock edge of the system clock 2106 of the quantum random number generator 28 and the time-to-pseudo-random number converter 404.3 (TPRC) of the quantum random number generator 28, the logic value of the n-th bit of the TPRG data bus 2110 as their next logic value if at the same time the first shift register bit activation line of the shift register bit activation bus 2109 is active (eg high); - VDD
- positive supply voltage line VDD at a positive electrical potential with respect to the reference potential of the reference potential line GND;
- VENTS
- positive supply voltage line V EXT of the
entropy source 411;
Relevante SchriftenRelevant writings
-
R. L. Rivest, A. Shamir, and L. Adleman, „A Method for Obtaining Digital Signatures and Public-Key Cryptosystems“ Communications oft he ACM, Februar 1978, Vol. 21, Nr. 2, Seiten 120 bis 126R. L. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems” Communications of the ACM, February 1978, Vol. 21, No. 2, pages 120 to 126
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- DE 1020221255743 [0001]EN 1020221255743 [0001]
- EP 3529694 B1 [0007, 0050]EP 3529694 B1 [0007, 0050]
- WO 2023072956 A1 [0007]WO 2023072956 A1 [0007]
- WO 2016016741 A1 [0019]WO 2016016741 A1 [0019]
Zitierte Nicht-PatentliteraturCited non-patent literature
- R. L. Rivest, A. Shamir, and L. Adleman, „A Method for Obtaining Digital Signatures and Public-Key Cryptosystems“ Communications oft he ACM, Februar 1978, Vol. 21, Nr. 2, Seiten 120 bis 126 [0229, 0407]R. L. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems” Communications of the ACM, February 1978, Vol. 21, No. 2, pages 120 to 126 [0229, 0407]
Claims (13)
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022125574.3 | 2022-10-04 | ||
DE102022125574 | 2022-10-04 | ||
DE102023125543.6 | 2023-09-20 | ||
DE102023125543 | 2023-09-20 | ||
DE102023126115.0 | 2023-09-26 | ||
DE102023126115 | 2023-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102023126167A1 true DE102023126167A1 (en) | 2024-05-02 |
Family
ID=88585080
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102023126170.3A Pending DE102023126170A1 (en) | 2022-10-04 | 2023-09-26 | QRNG with PRNG usage and vertical entropy source |
DE102023126171.1A Pending DE102023126171A1 (en) | 2022-10-04 | 2023-09-26 | QRNG with PRNG usage and vertical entropy source |
DE102023126167.3A Pending DE102023126167A1 (en) | 2022-10-04 | 2023-09-26 | QRNG with PRNG usage, associated procedure and associated data processing system |
DE102023126168.1A Pending DE102023126168A1 (en) | 2022-10-04 | 2023-09-26 | Integrated quantum random number generator |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102023126170.3A Pending DE102023126170A1 (en) | 2022-10-04 | 2023-09-26 | QRNG with PRNG usage and vertical entropy source |
DE102023126171.1A Pending DE102023126171A1 (en) | 2022-10-04 | 2023-09-26 | QRNG with PRNG usage and vertical entropy source |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102023126168.1A Pending DE102023126168A1 (en) | 2022-10-04 | 2023-09-26 | Integrated quantum random number generator |
Country Status (2)
Country | Link |
---|---|
DE (4) | DE102023126170A1 (en) |
WO (1) | WO2024074170A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016016741A1 (en) | 2014-07-30 | 2016-02-04 | Trentino Sviluppo S.P.A. | True random number generator |
EP3529694B1 (en) | 2016-10-21 | 2020-12-16 | Trentino Sviluppo SPA | Improved random number generator, in particular improved true random number generator |
WO2023072956A1 (en) | 2021-10-27 | 2023-05-04 | Elmos Semiconductor Se | Car processor with pqc encryption support |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2634747B1 (en) | 1988-07-27 | 1990-09-14 | Alcatel Satmam | POCKET FOLDER |
EP3452896B1 (en) * | 2016-05-05 | 2024-01-17 | The Trustees Of Dartmouth College | Quanta image sensor quantum random number generation |
DE102018208015A1 (en) * | 2018-05-22 | 2019-11-28 | Robert Bosch Gmbh | Quantum random number generator and method for producing a quantum random number generator |
-
2023
- 2023-09-26 DE DE102023126170.3A patent/DE102023126170A1/en active Pending
- 2023-09-26 WO PCT/DE2023/100717 patent/WO2024074170A1/en unknown
- 2023-09-26 DE DE102023126171.1A patent/DE102023126171A1/en active Pending
- 2023-09-26 DE DE102023126167.3A patent/DE102023126167A1/en active Pending
- 2023-09-26 DE DE102023126168.1A patent/DE102023126168A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016016741A1 (en) | 2014-07-30 | 2016-02-04 | Trentino Sviluppo S.P.A. | True random number generator |
EP3529694B1 (en) | 2016-10-21 | 2020-12-16 | Trentino Sviluppo SPA | Improved random number generator, in particular improved true random number generator |
WO2023072956A1 (en) | 2021-10-27 | 2023-05-04 | Elmos Semiconductor Se | Car processor with pqc encryption support |
Non-Patent Citations (1)
Title |
---|
R. L. Rivest, A. Shamir, and L. Adleman, „A Method for Obtaining Digital Signatures and Public-Key Cryptosystems" Communications oft he ACM, Februar 1978, Vol. 21, Nr. 2, Seiten 120 bis 126 |
Also Published As
Publication number | Publication date |
---|---|
DE102023126171A1 (en) | 2024-04-04 |
WO2024074170A1 (en) | 2024-04-11 |
DE102023126168A1 (en) | 2024-04-04 |
DE102023126170A1 (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2727277B1 (en) | System and method for the secure transmission of data | |
DE102009025412B4 (en) | An integrated circuit and method for protecting a circuit portion of an integrated circuit to be protected and computer program product for carrying out the method | |
DE102022125568A1 (en) | device for data processing | |
DE102023126167A1 (en) | QRNG with PRNG usage, associated procedure and associated data processing system | |
WO2023072956A1 (en) | Car processor with pqc encryption support | |
CN203179877U (en) | Chip and test mode protective circuit thereof | |
DE102018100357A1 (en) | CHIP AND METHOD FOR SAFE SAVING OF SECRET DATA | |
LU505175A1 (en) | Integrated quantum random number generator | |
DE102022125696A1 (en) | Electronic fuse with circuit breaker monitoring | |
DE102022125676A1 (en) | Supply network with electronic fuses with partial network shedding option | |
DE102022125841A1 (en) | Electronic security with data connection | |
CN118120179A (en) | Automobile processor supporting PQK encryption | |
DE102013110471A1 (en) | Number generator for generating numbers used as e.g. identifiers in confidential transaction in finance terminal, has comparison/decision logic determining whether difference between two selected physical elements is linked with bit 1 or 0 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |