[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2024074170A1 - Qrng with prng use and vertical entropy source - Google Patents

Qrng with prng use and vertical entropy source Download PDF

Info

Publication number
WO2024074170A1
WO2024074170A1 PCT/DE2023/100717 DE2023100717W WO2024074170A1 WO 2024074170 A1 WO2024074170 A1 WO 2024074170A1 DE 2023100717 W DE2023100717 W DE 2023100717W WO 2024074170 A1 WO2024074170 A1 WO 2024074170A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
quantum
circuit
photon
random numbers
Prior art date
Application number
PCT/DE2023/100717
Other languages
German (de)
French (fr)
Other versions
WO2024074170A4 (en
Inventor
Thomas Rotter
Julia Kölbel
Ann-Sophie Rösner
Bernd Burchard
Original Assignee
Elmos Semiconductor Se
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Elmos Semiconductor Se filed Critical Elmos Semiconductor Se
Publication of WO2024074170A1 publication Critical patent/WO2024074170A1/en
Publication of WO2024074170A4 publication Critical patent/WO2024074170A4/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Definitions

  • 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.
  • QRNG true random numbers
  • 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.
  • RNG random number generator
  • TRNG true random number generator
  • PRNG pseudorandom number generator
  • the present invention thus relates to a data processing device with a quantum technology-based random number generator.
  • QRNGs true random numbers
  • EP 3 529 694 Bl The technical teaching of EP 3 529 694 Bl is known in particular from the prior art, in which the time duration between pulses of an entropy source consisting of two SPAD diodes is used.
  • the disadvantage of the technical teaching of EP 3 529 694 Bl is the low quantum efficiency in the transfer of photons from the first SPAD diode, which operates as silicon, to the second SPAD diode, which operates as a photodiode.
  • the document presented here therefore quotes sections of statements by the authors and inventors in EP 3 529 694 Bl.
  • the document presented here uses the technical teaching of EP 3 529 694 Bl and builds on the technical teaching of
  • 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.
  • PRN pseudorandom number generators
  • quantum mechanisms such as the generation of photons by a light source, are among the best studied methods for obtaining the said sequences of real Random numbers and are based on the uncertainty of the measured event, which is one of the properties of the quantum system itself.
  • the degree of unpredictability of the random numbers generated by 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.
  • NIST National Institute of Standards and Technology
  • 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.
  • 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.
  • 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.
  • 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 makes it possible to ensure 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.
  • the system includes appropriate electronic circuits downstream of the aforementioned SPADs, consisting of auxiliary circuits and, usually, one or more TDCs (Time to Digital Converter) 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.
  • TDCs Time to Digital Converter
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Quantum random number generators are based on fundamental quantum processes for generating random numbers and are therefore, at least theoretically, not linked to other external factors and effects that influence the statistics. Quantum random number generators are therefore currently the best available source for true random numbers.
  • Current digital QNRGs can deliver entropy rates (i.e. a sequence of bit values with maximum randomness or entropy) of up to several hundred Mbps.
  • the random numbers generated are required in both classical encryption methods and in a variety of quantum computing and quantum cryptography methods to ensure secure key exchange (“Secure/Quantum Key Distribution, SKD/QKD"). Non-manipulable and fast QRNGs are therefore essential for generating secure keys in cryptography.
  • QRNGs are implemented as photonic QRNGs due to their particularly easy implementation using random properties of photons.
  • a simple concept for generating random numbers is the behavior of a photon that is either reflected or transmitted to a semi-transparent beam splitter independently of other photons.
  • Another approach is to use the random arrival times of photons on a single-photon detector. This distribution effect, based on an intrinsic, in principle non-deterministically calculable photon statistics of the photons of an associated photon source, can also be used to provide true random numbers.
  • the arrival times of photons on a single-photon detector generally exhibit an exponential distribution.
  • a single incident photon first generates a detector pulse, which is converted in a time-to-digital converter (TDC) into a digital representation of the detection event with a time stamp and can be further processed accordingly.
  • TDC time-to-digital converter
  • Laser diodes (LDs) or simple light-emitting diodes (LEDs) that are strongly attenuated to the single-photon level are usually used as photon or entropy sources in QRNGs, the emitted photons of which can then be recorded in a time-resolved manner as SPDs via one or more particularly sensitive single-photon avalanche diodes (SPADs).
  • LDs laser diodes
  • LEDs simple light-emitting diodes
  • SPS single-photon sources
  • SPADs are a type of photodetector similar to photodiodes (PDs) and avalanche photodiodes (APDs), but with a significantly higher sensitivity. SPADs can be read and evaluated digitally - even within a common integrated circuit. If such a If the integrated detector circuit is excited by individual photons, only one electron-hole pair is generated per exciting photon in the sensorically active area (absorption area), with the excited electrons being drawn to the cathode and the excited holes to the anode by electric fields. In a SPAD, the charge carriers drift through a so-called avalanche area, within which a charge avalanche is generated by increased impact ionization. These are therefore highly sensitive photon receiver elements which, when activated, can provide a high amount of charge (approx. 105 - 106 electrons) with high temporal resolution.
  • a SPAD is typically operated in Geiger mode above its breakdown voltage, whereby a single photon is detected via the generated charge avalanche and then registered as a single event.
  • active or passive suppression or quenching of further charge carrier amplification can take place immediately after the onset of the avalanche formation.
  • the integrated circuit can also include a so-called single-photon counter (SPC). In this case, instead of directly outputting a single detector pulse, an immediate statistical evaluation of the temporal distribution of the individual detected single-photon events is generally carried out.
  • a statistical evaluation that takes place in parallel to the random number generation can, for example, be used to further secure the generation against possible attacks on the random number generation process.
  • the required transmission paths within the system offer a wide range of attack options.
  • such systems are therefore implemented as compactly as possible and isolated from their external environment.
  • another advantage of such compact QRNGs is that natural influences from outside the system that may impair the random number generation can also be minimized as far as possible. Accordingly, compact QRNGs based on photon noise have therefore usually been provided as hybrid integrated systems.
  • an integrated quantum random number generator with a PLC and one or more SPDs is also known, in which the PLC and the SPD(s) are completely integrated in CMOS technology in a single semiconductor substrate in such a way that they are located directly next to each other (see FIG. 1 with the associated figure description).
  • the PLC is provided by a suitably doped pn junction so that it generates a photon current to be detected when the Photon source is suitably biased in forward or reverse direction.
  • SPDs are to be SPADs in particular, which are preferably supported by joint
  • the horizontal arrangement of the structures next to each other is also not ideal in terms of efficiency and the required area consumption.
  • the efficiency is limited in particular by the required lateral distance between the SPS and the SPAD and the associated high absorption of the photons in the semiconductor material.
  • the photons emitted by the SPS are also largely emitted undirected into the material surrounding the SPS, so that only a portion of the generated photons can be detected by an associated SPAD.
  • several SPADs can be arranged around a single SPS, so that the efficiency and thus the digital entropy rate can be increased by joint evaluation of the SPADs connected in this way, this significantly increases the area consumption of such an iQRNG.
  • CMOS complementary metal-oxide-semiconductor
  • HV-CMOS CMOS technology
  • Khanmohammadi et al. Kanmohammadi, Abbas, et al. "A monolithic silicon quantum random number generator based on measurement of photon detection time.” IEEE Photonics Journal 7.5 (2015): 1-13).
  • a Si-LED designed as a photon source in a circular n-well near the surface between a central n++ region as the cathode and several p++ regions arranged in a ring around it as the anode is surrounded in a circular ring by a SPAD as a single photon detector (see FIG. 2 with associated figure description).
  • the photons emitted by the SPS are thus detected on all sides in the plane, which can increase efficiency compared to the iQRNG known from EP 352694 Bl with reduced area consumption.
  • the SPS is thus integrated directly into the SPAD. However, individual photons can also be emitted into the substrate or extracted from its surface. It is also possible to inject corresponding photons from an attacker in this way to Influencing the statistics.
  • the iQRNG should be largely protected against external attacks and at the same time have the highest possible efficiency and the lowest possible substrate losses.
  • SoCs System on Chip, SoC
  • the underlying manufacturing process should be as technology-open as possible or be based on the broadest possible applicable technology platform for semiconductor structuring.
  • 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.
  • 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.
  • Another object of the invention is to provide a true random number generator that has a more compact, robust and less complex structure than the prior art known random number generators, so that this random number generator can be accommodated in the pad edge of a monolithically integrated semiconductor circuit.
  • 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.
  • 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.
  • 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.
  • Quantum process-based generators for true random numbers are known from the state of the art, but they are difficult to integrate or show a poor quantum yield.
  • the quantum process-based generator for true random numbers has, in a first embodiment, an entropy source and is configured to evaluate a signal from the entropy source by means of at least one time-to-pseudo-random number converter and to generate one or more random bits as a function of the signal from the entropy source.
  • the quantum process-based generator for true random numbers is designed in one piece on a semiconductor substrate with a surface and has a vertical entropy source with at least one photon source with at least one photon detector.
  • the surface of the semiconductor substrate in the sense of the document presented here is defined as a horizontal plane with a first direction in the plane (1st plane vector) and a second direction in the plane (2nd plane vector), which is different from the first direction in the plane.
  • the photon source and the photon detector are arranged in a vertical direction to the first and second direction in the plane in the semiconductor substrate with respect to the first and second direction in the horizontal plane of the surface of the semiconductor substrate.
  • the quantum process-based generator for true random numbers is designed to generate one or more random bits depending on the signal from the entropy source.
  • the quantum process-based generator for true random numbers comprises, in a third independent embodiment for which independent protection is claimed, an entropy source in a semiconductor substrate with a surface and with a back side which is located opposite the surface on the other side of the semiconductor substrate, and means for detecting an attack on the entropy source by means of photons, wherein this attack can in particular be an attack from a back side of the semiconductor substrate.
  • these means for detecting an attack on the entropy source by means of photons may comprise an observation diode.
  • the quantum process-based generator can include a watchdog.
  • the quantum process-based generator may comprise a voltage monitor (423).
  • the watchdog and/or the voltage monitor can be configured to monitor the quantum process-based generator by means of said means for detecting a To monitor the entropy source for an attack or disturbance by means of photons, in particular by means of the observation diode.
  • the at least two device parts of the quantum process-based generator for true random numbers can be designed in one piece on a common semiconductor substrate as a one-piece quantum process-based generator.
  • the quantum process-based generator for true random numbers can be configured to generate at least one random number from a plurality of random bits and to provide or use the at least one random number.
  • the logical values in the temporal order of the pseudorandom bits of a time-to-pseudorandom number converter (TPRG), i.e. the actual pseudorandom bit sequence of the time-to-pseudorandom number converter (TPRG), of the quantum process-based generator depend on one or more quantum random bits and/or one or more quantum random numbers, which are typically operating parameters of the time-to-pseudorandom number converter (TPRG).
  • the watchdog is designed to monitor the correct functioning of the quantum process-based generator for true random numbers.
  • the watchdog is designed to measure the randomness of the generated quantum random bits in the form of one or more measured values and to compare each with a respective tolerance interval or a respective threshold value, and to conclude a respective error in the case of a respective deviation of the respective measured value from the respective tolerance interval or the respective threshold value.
  • the watchdog is designed to monitor the correct functioning of the time-to-pseudorandom number converter (TPRC) of the at least one time-to-pseudorandom number converter (TPRG) of the quantum process-based generator and/or to monitor a behavior in the form of the temporal statistics of the logical values in the temporal order of the pseudorandom bits of the time-to-pseudorandom number converter (TPRC) and to record them in the form of statistical measured values and, in the event of deviations of the statistical measured values from the expected behavior in the form of a departure from permitted measured value ranges for these measured values, to detect and/or signal an error.
  • TPRC time-to-pseudorandom number converter
  • TPRG time-to-pseudorandom number converter
  • the quantum process-based generator for true random numbers with its at least two device parts is manufactured in one piece as part of an integrated circuit.
  • the integrated circuit with the quantum process-based generator for true random numbers is manufactured in a BCD technology.
  • the integrated circuit with the quantum process-based generator for true random numbers comprises a voltage converter for supplying the entropy source of the quantum process-based generator for true random numbers, wherein the voltage converter then comprises one or more DMOS transistors for increasing the voltage strength.
  • said integrated circuit comprises a circuit such as a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory, an EEPROM, a flash memory, an MRAM, an 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, an RFID circuit, an asset circuit of a mobile phone or a smartphone, 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 security, 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 game device, a circuit of a simulation system, a circuit of a computer system, a circuit of a noise source, a Circuit with
  • the document presented here thus discloses a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory, 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, an RFID circuit, an electronic circuit of a mobile phone or a smartphone, an access control system circuit, a circuit with a coded recording of operating parameters, an access control system circuit, a security system circuit of electronic security devices, 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 game device, a circuit of a simulation system, a circuit of a computer system, a circuit of a noise source, a circuit with a device for generating and/or using a spreading code,
  • 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 with a device for generating and/or using a spreading code, a circuit with a device for generating and/or using a random number for individualizing the circuit, a circuit with a device for generating and/or using a random number for testing purposes, in particular for self-testing purposes and/or in particular for the purposes of testing an application circuit of which the circuit is a part.
  • the integrated circuit (internal interfaces) comprise special circuits at a cryptographic boundary between a control device and other parts of the integrated microelectronic circuit which are classified as non-secure or less secure, and the quantum process-based true random number generator is arranged within the cryptographic boundary between the control device and the other parts of the integrated microelectronic circuit.
  • the entropy source comprises a photon source and a photon detector, wherein the photon source is configured to emit photons as a quantum signal when supplied with electrical energy, and wherein the photon source is optically coupled to the photon detector.
  • the photon detector is configured to at least partially receive the quantum signal of the photon source and to generate an output signal of the entropy source or a precursor signal thereof.
  • the photon source comprises a silicon LED, in particular a Zener avLED or a SPAD diode.
  • the quantum process-based generator is placed in whole or in part in a pad frame between connection pads of the integrated circuit on the die of this integrated circuit, wherein at least the entropy source is placed in the pad frame between the connection pads of the integrated circuit on the die of this integrated circuit.
  • the entropy source of the quantum process-based generator is encapsulated, in particular by means of metal layers and/or silicide layers and vias, except for signal feedthroughs through this encapsulation from at least one side, better at least from two sides, better at least from three sides, better at least from four sides, better at least from five sides.
  • 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-
  • 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.
  • 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.
  • 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.
  • RAM random access memory
  • ROM read-only memory
  • the invention also provides a data processing device comprising:
  • 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; 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 supplying data words to the processor.
  • the processor and the hash calculator are arranged to perform the steps of a. calculating the hash by means of a hash function for each data word in dependence on a security code stored in the non-volatile memory and storing the hash in association with the data word, b.
  • the true random number generator (quantum random number generator 28) according to the invention comprises a photon source 54 with a flow of detected photons of light 58 transported horizontally in an optical fiber 44, one or more photon detectors 55, preferably single photon detectors (SPADs), and electronic sampling means (403, 2022, 402, 403, 404.2) operatively connected to the one or more photon detectors 55 to generate a bit sequence of quantum random bits 411 (random bit sequence) based on the number of photons detected in the photon detectors 55.
  • a photon source 54 with a flow of detected photons of light 58 transported horizontally in an optical fiber 44
  • one or more photon detectors 55 preferably single photon detectors (SPADs)
  • electronic sampling means (403, 2022, 402, 403, 404.2) operatively connected to the one or more photon detectors 55 to generate a bit sequence of quantum random bits 411 (random bit sequence) based on the number of photons detected in the photon detectors 55.
  • the said generator for true random numbers is characterized in particular in that the photon source 54 and the photon detector(s) 55 are arranged as close to one another as possible and optically directly or indirectly coupled and are integrated in a single semiconductor substrate 49.
  • the photon source 54 and the photon detector(s) 55 are manufactured in a common semiconductor substrate 49 using CMOS technology, preferably BCD technology.
  • the photon source 54 comprises a silicon LED and/or a silicon laser.
  • the photon source 54 can comprise a first SPAD diode 54.
  • the photon detector 55 can comprise a photodiode.
  • the photon detector 55 can comprise a second SPAD diode 55.
  • the quantum random number generator 28 preferably comprises a photon source 54 with a detected photon flux equal to A
  • the quantum random number generator 28 in an alternative embodiment comprises more than one photon source 54.
  • this has the disadvantage of requiring a larger chip area.
  • Quantum random number generator 28 preferably also comprises an arrangement of one or more
  • Photon detectors 55 Preferably, but not necessarily, each of these photon detectors 55 is a single photon detector 55.
  • one or more photon detectors 55 are implemented as reverse biased PN diodes in a semiconductor substrate 49 with a bias voltage close to the breakdown voltage of the respective PN diode and a limitation of the breakdown current of the respective PN diode, one generally speaks of single photon avalanche photo diodes, which the document presented here also refers to with the acronym SPAD.
  • a single photon detector 55 is capable of detecting and providing as output information on the incidence of a single photon in its sensitive volume and possibly on the arrival time of the latter within an observation window of predetermined duration.
  • 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.
  • this second SPAD 55 can no longer reliably detect any subsequent photon.
  • each respective SPAD diode 55 operates independently and in parallel with the other SPAD diodes 55.
  • the array of SPAD diodes 55 has a single common output for reading the respective signal generated by the same array of SPAD diodes 55 from the outside.
  • the typical advantage of an arrangement of closely spaced SPAD diodes 55 is typically that the solid angle of the photons 58 generated by the photon source 55 is increased and that any dead times are reduced, thereby increasing the generation rate of the quantum random bits 411 of the quantum random number generator 28 and thus the rate of the quantum random data words 418 themselves. This in turn enables the encryption of larger amounts of data.
  • the quantum random number generator 28 always comprises an array of second SPAD diodes 55 as an array of photon detectors 55, but each SPAD diode 55 or each photon detector 55 is independent of the others, which means that these device parts can each individually generate a respective signal to the outside, which is typically independent of the signals of the other SPAD diodes 55 or of the other photon detectors 55.
  • the arrangement can be divided into subgroups of SPAD diodes 55 or subgroups of photon detectors 55, each subgroup comprising a predetermined number of SPAD diodes 55 or photon detectors 55, which are preferably each connected in parallel to one another such that they each generate a single signal outwardly related to the entropy source 401 of the quantum random number generator 28.
  • each of the subgroups of SPAD diodes 55 or photon detectors 55 can be connected to the outside world of the entropy source 401 of the quantum random number generator 28 independently of the other subgroups of SPAD diodes or photon detectors.
  • This independence has the advantage that the extraction of the binary random sequences from quantum random bits 411 from the quantum random number generator 28 can be parallelized, whereby the bit rate of the quantum random number generator 28 is further increased by spatial multiplexing.
  • the quantum random number generator 28 of the proposal can also comprise only exactly one second SPAD diode 55 or only exactly one photon detector 55.
  • a further embodiment of the quantum random number generator 28, as already mentioned, can comprise a plurality of photon sources 54 or silicon LEDs 54 or first SPAD diodes 54, which are each optically connected to an array of photon detectors 55 or second SPAD diodes 55 via an optical system (44) outside the semiconductor substrate 49.
  • this optical system 44 comprises micro-optical device parts.
  • these micro-optical device parts comprise one or more optical waveguides 44 and/or one or more reflective layers 53 and/or reflective and/or optically refractive structures 53.
  • the optical waveguide 44 is manufactured in the metallization stack on the semiconductor substrate 49 of the microelectronic circuit, which typically comprises the photon source or the Silicon LED 54 or the first SPAD diode 54 and the photon detector 55 or the second SPAD diode 55.
  • the optical system - for example the optical waveguide 44 - the photon sources 54 and the photon detectors 55 are therefore preferably part of the one-piece quantum random number generator 28.
  • one embodiment of the entropy source 401 of the proposed quantum random number generator 28 can be viewed, for example, as a pixel matrix which makes it possible to parallelize the process of extracting random numbers.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 also preferably comprises one or more SPAD diodes 54.
  • both the arrangement of the photon detectors 54 or the second SPAD diodes 54, which serve as receivers, and the photon sources 54 or the silicon LEDs 54, which preferably comprise one or more SPAD diodes 54, are configured and polarized such that they operate in the so-called Geiger mode with the same polarization voltage.
  • the quantum random number generator 28 of the proposal preferably also comprises electronic sampling means (403, 2022, 402, 403, 404.2) which are preferably functionally connected to the common output 417 in order to read the signal 405 generated by the arrangement of the photon detectors 54 or the second SPAD diodes 54.
  • one or more of the respective electronic sampling means (2022, 402, 403, 404.2) are instead provided for each respective photon detector 54 or each respective second SPAD diode 54, respectively, which each belongs to the array, while individual electronic sampling means of the electronic sampling means (2022, 402, 403, 404.2) are present for the respective individual photon detector 54 or for the respective individual second SPAD diode 54.
  • some or more respective sampling means of the electronic sampling means (2022, 402, 403, 404.2) can be provided for each pixel, the sampling signals (407, 407) of which are combined into a common quantum random bit data stream 411 by means of electronic post-processing.
  • the document presented here proposes optically connecting these photon sources 54 or silicon LEDs 54 or first SPAD diodes 54 and the photon detectors 55 or the second SPAD diodes 55 to one another via the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 by means of dielectric optical waveguides 44.
  • the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 typically comprises structured metal layers which typically form the electrical conductor tracks (141, 142) in different levels of the metallization stack.
  • the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 typically comprises electrical insulation layers between these structured metallization layers (141, 142), which electrically insulate the electrical lines (141, 142) formed in the structured metallization layers between different metallization levels.
  • the electrical insulation layers of the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate typically comprise electrical vias 140 between the electrical lines (141, 142) of the structured metallization layers, which electrically connect (via-contact) the electrical lines (141, 142) formed in the structured metallization layers between these different metallization levels.
  • the metallization stack of the one-piece micro-integrated circuit produced in this way on the surface of the semiconductor substrate 49 typically comprises optically transparent electrical insulation layers between these structured metallization layers.
  • one or more electrical insulation layers can take on the function of an optical waveguide 44 for the photons of the first SPAD diode 54 or the photon source 54 or the silicon LED 54 during their transport to the second SPAD diode 55 or to the photon detector 55.
  • the insulation layers in question are preferably structured for this purpose.
  • the electronic sensing means (403, 2022, 402, 403, 404.2) of such a one-piece microelectronic circuit are preferably configured to implement a predefined logic method or a computer or hardware implemented algorithm for Extraction of a binary sequence of quantum random bits 411 based on the arrival times of the photons at the level of the respective photon detectors 55 or SPAD diodes 55.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the array of photon detectors 55 or of second SPAD diodes 55 or the individual SPAD detector 54 are arranged next to one another or one below the other and preferably close to one another with a short optical connection for optical coupling via the shortest possible optical path and integrated into a single semiconductor substrate 49 as a microelectro-optical system.
  • this integrated configuration makes the quantum random number generator 28 proposed in this document more compact and structurally less complex than random number generators of the known type.
  • 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.
  • This integrated configuration and thus the direct and/or indirect coupling between the photon source 54 or the silicon LED 54 or the first SPAD diode 54 on the one hand and the photon detector(s) 55 or the second SPAD diodes 55 on the other hand are advantageous compared to solutions using, for example, discrete beam splitters, since they enable uniform illumination of the photon detectors 55 or the second SPAD diodes 55 without having to ensure that the beam splitter is always perfectly aligned.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the array of photon detectors 55 or the second SPAD diodes 55 are manufactured on the semiconductor substrate 49 in the same manufacturing steps, so that the elements have the same chemical-physical structure with respect to the doping profiles. More precisely, as mentioned above, even the photon source 54 or the silicon LED 54 or the first SPAD diode 54 can be manufactured with the same chemical-physical structure as another photon detector 55 or another second SPAD diode 55.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 is, in terms of design and implementation, completely identical to the photon detectors 55 or the second SPAD detectors 55 belonging to the array in certain embodiments of the proposal, except for usual variations of components on a wafer.
  • the semiconductor substrate 49 is a silicon substrate 49.
  • the semiconductor substrate 49 is made of a semiconductor material other than silicon in order to increase the efficiency of the emitter-source coupling.
  • each of them mainly comprises a favourably doped pn junction, so that the phenomenon known in technical terms as "avalanche formation" can occur when the same photon detector 55 or SPAD diode 55, which is favourably polarized, is subjected to the impact of a photon in its photon-sensitive volume.
  • the photon source 54 or silicon LED 54 or first SPAD diode 54 is also defined by a suitably doped pn junction such that the detected photon flow is generated when the photon source 54 or silicon LED 54 or first SPAD diode 54 is suitably biased in the forward direction or (better) in the reverse direction.
  • a pulsed dark current of the diode current is produced, the so-called dark current, which is associated with a pulsed emission of photons that the photon detector 54 or the second SPAD diode 55 can detect.
  • the photon source 54 or silicon LED 54 or first SPAD diode 54 is configured to obtain an emission spectrum of the detected photon flux X which lies mainly between 800 nm and 1000 nm.
  • the efficiency of each photon detector 55 or each second SPAD diode 55 cannot be considered to be excessively high and is less than 10%. Therefore, it is estimated that in order to achieve a detection rate of, for example, about 500,000 counts/sec.
  • a usable photon rate photon current that reaches the sensitive volume of the photon detector 55 or the second SPAD diode 55 or the photon detectors 55 or the second SPAD diodes 55 from the photon source 54 or silicon LED 54 or first SPAD diode 54
  • a usable photon rate photon current that reaches the sensitive volume of the photon detector 55 or the second SPAD diode 55 or the photon detectors 55 or the second SPAD diodes 55 from the photon source 54 or silicon LED 54 or first SPAD diode 54
  • the fact that the structures of the photon source 54, the silicon LED 54, and the first SPAD diode 54 both have a p-n junction as their main feature confirms the advantage described above, i.e. the possibility of carrying out the same manufacturing steps for the photon source 54, the silicon LED 54, and the first SPAD diode 54 and the photon detectors 55, and the second SPAD diodes 55.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the photon detectors 55 or the second SPAD diodes 55 which are obtained by the same manufacturing steps, have the same chemical-physical structure.
  • the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the photon detectors 55 or the second SPAD diodes 55 can be manufactured with different chemical-physical structures, in particular with different sizes and/or different doping levels, even if they are obtained by the same manufacturing steps.
  • this is the CMOS or CMOS-compatible technology for microfabrication of microintegrated circuits.
  • So-called BCD technologies are also particularly preferred for producing the proposed one-piece microelectronic circuit of the quantum random number generator 28.
  • a 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)
  • 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 that was developed 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.
  • RF radio frequency
  • a DMOS transistor Double-Diffused Metal-Oxide-Semiconductor Transistor
  • a DMOS transistor is characterized by specific features that define its function and areas of application.
  • 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.
  • DMOS transistors are suitable for use in the voltage converters 91 of the monolithic integrated circuit.
  • BCD technologies enable the compact manufacture of the first SPAD diodes for the photon sources 54 and the second SPAD diodes 55 for the photon detectors 55.
  • the voltage converters 91 very often comprise a charge pump or the like to supply the first SPAD diodes 54 with the required high supply voltage.
  • the DMOS transistors mentioned are particularly suitable for these charge pumps in the voltage converters 91 of the one-piece micro-integrated circuit of the quantum random number generator 28. Therefore, a co-integration of the entropy source 401 with at least one DMOS transistor or several DMOS transistors on a common semiconductor substrate 49 are particularly advantageous.
  • a voltage converter 91 of a one-piece microelectronic integrated circuit of a quantum random number generator 28 therefore preferably comprises at least one, better several DMOS transistors.
  • the DMOS transistors of a respective voltage converter 91 of a one-piece microelectronic integrated circuit of a quantum random number generator 28 are preferably located in a half-bridge or an H-bridge circuit within this voltage converter 91.
  • an energy store for example a capacitor
  • an energy store is preferably connected with one connection to the output node of this half-bridge and can then be recharged thereby.
  • an energy store for example a capacitor
  • Such a voltage converter 91 preferably comprises an electronically controlled transfer switch which, after switching up the voltage at one terminal of the capacitor, can connect the other terminal to a photon source 54 or a silicon LED 54 or a first SPAD diode 54.
  • This step-up technology for the supply voltage can also be multi-stage in order to achieve larger voltage swings.
  • a further voltage converter 91 and an energy storage device, for example a further capacitor, can be connected downstream and upstream of the entropy source 401 or the photon source 54 or the silicon LED 54 or the first SPAD diode 54 in order to stabilize the supply voltage of the photon source 54 or the silicon LED 54 or the first SPAD diode 54.
  • the half-bridge and/or the H-bridge and/or the transfer switches of the voltage converter 91 comprise DMOS transistors in order to be able to provide higher supply voltages and thus increase the quantum random bit data rate of the quantum random bits 411, since the increase in the supply voltage leads to an increase in the pulse density of the entropy source.
  • CMOS transistors 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.
  • 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 micro-integrated circuit 2.
  • 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 photon detectors 55 or the second SPAD diodes 55 into the semiconductor substrate 49.
  • An example of a possible quantum random number generator 28 of the proposal obtained by the BCD microfabrication technique preferably uses a doped substrate/epitaxial structure of type p 100.
  • the manufacturing process typically creates a deep n-well in the doped substrate/epitaxial structure of type p 100 and the connections defining the photon source 54, the silicon LED 54 and the first SPAD diode 54, respectively, are made with a type p+ implant 102.
  • "guard ring" structures are preferably provided, forming a ring of p-well around the p+ implant 47.
  • the technique used to manufacture the photon source 54 or the silicon LED or the first SPAD diode 54 may be a custom-made type technique.
  • the advantage of this last solution is that the manufacturing steps of the quantum random number generator 28 according to the invention can be optimized to obtain the photon source 55 and/or the silicon LED 55 or the second SPAD diode 55.
  • the photon detectors 55 or the second SPAD diodes 55 and the photon source 54 or the silicon LED 54 or the first SPAD diode 54 may be integrated into a doped p-type epitaxial structure/substrate, wherein a so-called "flat" implant and an enhancement implant are defined in the epitaxial structure, wherein the "flat" implant is more superficial, of n+ type and concentric to the epitaxial structure, but has a smaller extension, and the enhancement implant is of p- type and has a lower doping, but in any case a higher doping than that of the epitaxial structure.
  • auxiliary connection which, when suitably biased, absorbs the excess charge that can be transferred from the photon source 54 or silicon LED 54 or first SPAD diode 54 to the photon detector(s) 55 or second SPAD diode or diodes 55.
  • the creation of trenches would also reduce optical crosstalk, which is again a desired property. However, this reduction does not exceed a percentage of the order of 30-50%, so it is acceptable if it has the advantage of eliminating the problem completely.
  • the proposed quantum random number generator 28 is configured such that the photon source 54 or the silicon LED 54 or the first SPAD diode 54 can be biased either in the forward direction or in the reverse direction to generate the detected photon flux.
  • photoluminescence is used in the avalanche formation in the photon source 54, here the silicon LED 54 or the first SPAD diode 54, which occurs in a controlled manner but at quantum mechanically random time intervals.
  • 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.
  • a forward-directed photon source 54 or silicon LED 54 or first SPAD diode 54 requires a voltage of several volts, while a backward-directed photon source requires a voltage of several dozen volts.
  • DMOS transistors is particularly advantageous for the co-integrability of preferably all relevant electronic components of a quantum random number generator 28.
  • Such DMOS transistors enable the provision of a voltage of several dozen volts for operating the backward-directed photon sources 54, i.e.
  • a voltage converter 91 which here in the sense of the document presented here can include any form of suitable voltage converter 91 in terms of content and which is preferably in the semiconductor substrate 49 the one-piece microelectronic integrated circuit of the quantum random number generator 28 presented here.
  • a quantum random number generator 28 which may comprise a voltage converter 91 with one or more DMOS transistors and an entropy source 401 with one or more photon sources 54 and/or silicon LEDs 54 and/or first SPAD diodes 54 and one or more photon detectors 55 and/or second SPAD diodes 55 and preferably one or more processors (10-1, 10-2) and/or one or more data bus interfaces 64 and/or one or more volatile and/or non-volatile memories (30, 6, 16, 8) and/or a test interface 12.
  • a forward biased photon source 54 or silicon LED 54 or first SPAD diode 54 in a device variant would therefore advantageously make it possible to also reduce the space necessary to electrically isolate the photon source 54 or silicon LED 54 or first SPAD diode 54 itself from the arrangement of photon detectors 55 or second SPAD diodes 54.
  • the forward biased photon source 54 or silicon LED 54 or first SPAD diode 54 advantageously enables a more compact design of the quantum random number generator 28 and lower costs due to the smaller amount of semiconductor material used to manufacture the generator itself.
  • the advantage of reverse bias is that the same voltage can be used to bias both components.
  • the photon source 54 or silicon LED 54 or first SPAD diode 54 and the photon detectors 55 or second SPAD diodes 55 can in fact share the same semiconductor substrate 49 since they have a common connection. This allows them to be arranged close to each other (on top of each other and/or next to each other) in the semiconductor substrate 49, thus reducing the space occupied while improving their optical coupling. In any case, the low efficiency of the photoluminescence process in generating a few photons suggests "quantum detection" since the photon detector(s) 55 or second SPAD diodes 55 are by definition sensitive to a single photon.
  • the electronic scanning means (403, 2022, 402, 403, 404.2) together with the photon source 54 or silicon LED 54 or first SPAD diode 54 and the arrangement of photon detectors 55 or second SPAD diodes 55 are also integrally integrated into the semiconductor substrate 49.
  • 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 photon detectors 55 or second SPAD diodes 55, but also to directly and easily control the operating conditions of one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 and to correct any bias parameters by changing the parameters of one of said voltage converters 91 for supplying energy to one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 or to activate or deactivate one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 in order to achieve the desired photon flux or the desired random bit rate of the Quantum random bits 411 to be obtained.
  • the electronic sampling means (403, 2022, 402, 403, 404.2) can be configured to directly and easily control the operating conditions of one or more photon detectors 55 or one or more second SPAD diodes 54 and to correct any bias parameters by changing the parameters of one of said voltage converters 91 for supplying energy to one or more photon detectors 55 or one or more second SPAD diodes 55 or to activate or deactivate one or more photon detectors 55 or one or more second SPAD diodes 55 in order to obtain the desired receivable portion of the photon flux or the desired random bit rate of the quantum random bits 411.
  • the quantum random number generator 28 is preferably provided with a light protection filter or a cover, for example a metal layer (53, 142), at the level of the top of the semiconductor substrate 49.
  • the light protection filter comprises a metallization layer (53, 142) which is applied directly during the production process, for example by the sequence of the process steps of a BCD technology, for example as last metallization level can be produced.
  • This metal layer (53, 142) does not necessarily have to be produced last. It is typically sufficient if the relevant device parts of the entropy source 401 are covered.
  • this metal cover (53, 142) so that it also protects these circuit parts from manipulation by means of electromagnetic radiation and/or thermal, local stress and/or by means of magnetic fields and/or other interventions by influencing physical parameters of such other circuit parts of the quantum random number generator 28.
  • This protection should preferably in particular cover the memories (e.g. 404.9, 30, 6, 8, 16, 22, 20) and/or the processor (10-1, 10-2) and/or the monitoring devices - such as watchdog 404.5, ADC 403, voltage monitor 413, amplifier 402, finite state machine 404.8.
  • This solution has the function of shielding the photon detector(s) 55 or second SPAD diodes 55 or the other circuit parts of the quantum random number generator 28 from external light and other physical interference signals.
  • This solution therefore also has the function of making the photon detector(s) 55 or second SPAD diode(s) 55 sensitive only to the photons that pass through the semiconductor substrate 49 to the photon detectors 55 or second SPAD diodes 55 due to crosstalk from the photon source 54 or silicon LED 54 or first SPAD diode 54.
  • the metallization layer (53, 142) also has the function of improving the coupling of the photons emitted by the semiconductor substrate 49, in particular the silicon substrate.
  • the metallization layer 53 reflects the electromagnetic radiation generated by the same photon source 54 or silicon LED 54 or first SPAD diode 54 after exiting the semiconductor material of the semiconductor substrate 49 back into the insulation layers of the metallization stack on the semiconductor substrate 49, so that these photons cannot leave the micro-optical system of the one-piece microelectronic circuit of the quantum random number generator 28.
  • This increases the number of photons that reach the photon detector(s) 55 or the second SPAD diode 55 or the second SPAD diodes 55.
  • the metal cover 53 of the optical waveguide 44 in the metallization stack of the microelectronic circuit on the semiconductor substrate 49 advantageously also has the function of protecting the quantum random number generator 28 from any attempts by malicious persons to influence the functionality of the system of the proposed device. 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 random number generator 28 according to the invention.
  • the proposed quantum random number generator 28 may optionally also comprise electronic post-processing means (404.3, 404.4, 404.8) configured to receive as input the binary sequences extracted by the electronic sampling means (403, 2022, 402, 403, 404.2), which in turn are connected to the array of photon detectors 55 and second SPAD diodes 55, respectively.
  • electronic post-processing means 404.3, 404.4, 404.8
  • Said electronic post-processing means (404.3, 404.4, 404.8) are preferably configured to process said binary sequences 409, 415 in such a way that a so-called "whitening" operation is performed.
  • This last word designates a plurality of compression operations that serve to improve the statistical properties of the generated binary sequences (415, 409). Consequently, it is advantageous that this further post-processing step makes it possible to increase the entropy level of the proposed quantum random number generator 28.
  • the sampling means (403, 2022, 402, 403, 404.2), which according to the preferred embodiment are directly or indirectly connected to the array of photon detectors 55 or second SPAD diodes 55 or alternatively to a subset of the photon detectors 55 or second SPAD diodes 55 or even to a single pixel, are configured to implement a logical extraction method intended to extract a binary sequence of random bits (409, 415) based on the number of photons detected in the array of photon detectors 55 or second SPAD diodes 55, in the subset, in the only one of the photon detectors 55 or in the only second SPAD diode 55 or even in the single pixel.
  • a first logical extraction method which is implemented by the sampling means (2022, 402, 403, 404.2) of the proposed quantum random number generator 28, comprises the division of the observation window of each photon detector 55 or of every second SPAD diode 55 into a plurality of successive observation sub-windows Tw, typically having the same duration. If the entropy extraction generates a pulse on its output line 405, a synchronization stage (403, 2022) synchronizes the pulse with the system clock 2106 of the quantum random number generator 28.
  • An observation sub-window Tw typically corresponds to the temporal period of the system clock 2106.
  • the post-processing means would typically have to determine the arrival times of the photons at the photon detectors 55 or the photons detected by the second SPAD diodes 55 in relation to a reference time as a digital numerical value using a time counter.
  • this has the disadvantage that an attacker may be able to manipulate this time via a so-called side channel, without any information being given as to how this could be done.
  • the attacker succeeds in carrying out this manipulation in an unknown way.
  • the attacker would then be able to manipulate the supposed "random bits", which would give them a deterministic character, which would possibly enable encryption and/or locks to be broken.
  • the proposal presented here prevents this.
  • the one-piece, integrated microelectronic circuit of the quantum random number generator 28 typically generates these successive observation subwindows Tw starting from the system clock 2106.
  • An observation window Tw in the sense of the document presented here can, for example, begin with a first edge of the system clock 2106 in a first edge direction, which can be rising or falling, and end with the next directly following edge of the system clock 2106 in the same edge direction (rising or falling).
  • 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 pseudorandom number which corresponds to the arrival time of a second photon from the photon source 54 or the silicon LED 54 or the first SPAD diode 54 at a photon detector 55 or a second SPAD diode 55, respectively, in relation to the arrival time of a preferably immediately preceding first photon from the photon source 54 or the silicon LED 54 or the first SPAD diode 54 at a photon detector 55 or a second SPAD diode 55.
  • the device proposed here of the one-piece integrated microelectronic circuit of the proposed quantum random number generator 28 generates this first pseudorandom number by means of a time-to-random number converter (TPRC).
  • TPRC time-to-random number converter
  • Such a time-to-pseudo-random-number converter (TPRC) can also be composed of several stages.
  • the time-to-pseudo-random-number converter (TPRC, 404.3) can comprise an analog instrument, a time to analog converter (TAC), which would then be followed by an analog to pseudo-random number converter (APRC) in the data path to again result in a time-to-pseudo-random number converter (TPRC, 404.3).
  • TAC time to analog converter
  • APRC analog to pseudo-random number converter
  • the diagram shown in Figure 22 represents the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401.
  • the entropy source 401 preferably comprises the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 and the light transmission path 44 between them.
  • the entropy source 401 is preferably manufactured in or on the semiconductor substrate 49 and is thus preferably part of the micro-integrated circuit of the quantum random number generator 28.
  • the output signal 405 of the entropy source 401 is typically the said voltage signal 405 of the entropy source 401.
  • the voltage signal 405 of the entropy source 401 is preferably the signal of one or more photon detectors 55 or one or more second SPAD diodes 55 of the entropy source 401.
  • the voltage signal 405 shows exemplary pulses 2201, 2202, 2203, 2104 for random events of the voltage signal 405. These can be spontaneous voltage pulses of the photon detector 55 or the second SPAD diode 55 of the entropy source 401, which are not related to the activity of the photon source 54 or the silicon LED 54 or the first SPAD diode 54 of the entropy source 401.
  • the pulses 2201, 2202, 2203, 2204 of the photon detector 55 or the second SPAD diode 55 of the entropy source 401 can also be based on stimulated emission, which causes the detection of a photon of the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401.
  • the time interval is random. However, after the reception of a photon by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401, a dead time occurs during which the photon detector 55 or the second SPAD diode 55 of the entropy source 401 is no longer able to receive. If the magnitude of the voltage signal 405 of the entropy source 401 exceeds a threshold value 2105, an analog-to-digital converter (ADC, 403), here an exemplary one-bit analog-to-digital converter 403,
  • 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 system clock 2106 of the quantum random number generator 28, which is preferably one of the system clock cycles of the integral microintegrated circuit, on a synchronized voltage signal 415.
  • this pulse extension circuit is designed in such a way that it goes to a first logic level for at least three subsequent clock cycles and then until the next event at the second logic level, here for example with the falling edge of the third clock pulse.
  • a to n clock pulses can be used, where is a positive integer.
  • the falling edges of the pulses 2211, 2212, 2213, 2214 of the synchronized voltage signal 415 represent the synchronized signals of the entropy source 401.
  • the time-to-pseudorandom number converter resets a pseudorandom number generator, for example, to a predefined seed value.
  • the pseudorandom number generator of the time-to-pseudorandom number converter can be a feedback shift register that shifts its values by one place to the left or right depending on the design with each clock pulse of the system clock 2106 and feeds the feedback value of the feedback polynomial back into the bit that becomes free.
  • each clock pulse of the system clock 2106 is bijectively assigned exactly one pseudorandom number of the pseudorandom number generator from the falling edge. This means that the value of the pseudorandom number must be able to be used to determine the temporal position of the relevant clock pulse of the system clock 2106 after the falling edge of the synchronized voltage signal 415.
  • a first pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • TPRC time-to-pseudorandom number converter
  • a second pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • the entropy extraction 401 compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a quantum random bit 411 with a first logical level.
  • the entropy extraction 404.4 can, for example, generate a quantum random bit 411 with a second logical level that is different from the first level.
  • the first pseudorandom number register takes over the previous value of a second pseudorandom number register and the second pseudorandom number register instead takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • TPRC time-to-pseudorandom number converter
  • the entropy extraction 401 compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second
  • Pseudorandom number register for example, the entropy extraction 404.4 can generate another new and here second quantum random bit 411 with a second logic level that is different from the first level.
  • the quantum random number generator 28 can continue this process of quantum random bit generation and thus generate a continuous stream of quantum random bits 411, albeit with phase noise.
  • 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 synchronized voltage signal 415, the randomness of the quantum random bit 411 is only marginally disturbed, since the attacker would also have to know the feedback polynomial.
  • the quantum random number generator 28 changes the feedback polynomial of the linearly feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number m of random quantum bits 411 as a function of one or more previously determined random quantum bits 411.
  • TPRC time-to-pseudorandom number converter 404.3
  • the quantum random number generator 28 changes the shift register length n of the linearly fed-back shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number k of quantum random bits 411 depending on one or more previously determined quantum random bits 411.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a Processor (10-1, 10-2) rewrites the value of the feedback polynomial selection register 2112 for this purpose.
  • the value stored in the feedback polynomial selection register 2112 preferably controls the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the value stored in the feedback polynomial selection register 2112 preferably selects which feedback polynomial of the m feedback polynomial circuits RKNi to RKN m determines the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this quantum random bit 411 is used for the feedback polynomial selection register 2112. This prevents double use and thus increases security.
  • TPRC time-to-pseudo-random number converter 404.3
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this quantum random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112.
  • TPRC time-to-pseudorandom number converter 404.3
  • the processor (10-1, 10-2) or the other device preferably uses this quantum random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112.
  • the quantum random number generator 28 changes the start value (seed value) of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number p of random quantum bits 411 depending on one or more previously determined quantum random bits 411.
  • seed value the start value of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of a seed reload register in the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) with quantum random bits 411 for this purpose.
  • the bit width of a seed reload register in the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably corresponds to the number n of the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 preferably counts the number of successfully generated quantum random bits 411.
  • the finite state machine 404.8 signals the
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) generates a valid quantum random bit 411. Instead of counting the valid quantum random bits 411, it is also possible to count the successfully generated random data words 418 in the finite state machine 404.8.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 preferably loads the new seed value of a seed reload register in the shift register controller 2103 into the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC) at one or more of the following events.
  • the circuit parts of the quantum random number generator 28 are covered with a metal layer 142, 53 in order to ward off any influence by temperature or electromagnetic radiation or electrostatic fields or magnetic fields.
  • the metal layer also comprises a soft magnetic layer to ward off attempts at attack using magnetic fields.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevent the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 if this quantum random bit 411 is used for the seed reload register in the shift register controller 2103 in the time-to-pseudo-random number converter 404.3 (TPRC).
  • TPRC time-to-pseudorandom number converter 404.3
  • the processor (10-1, 10-2) or the other device preferably uses this quantum random bit 411 for generating a random data word for
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device generates a new random reload value in the seed reload register of the shift register controller 2103.
  • TPRC time-to-pseudorandom number converter 404.3
  • the m feedback polynomials RKNi 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 RKNi to RKN m .
  • the time-to-pseudorandom number converter 404.3 includes a detection circuit 2113 for detecting an illegal value of the state vector of the n shift register bits SBi to SB n when linear feedback shift registers are used.
  • the detector 2113 preferably signals this illegal state to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device.
  • the detector 2113 or the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device then resets the value of the state value of the state vector of the n shift register bits SBi to SB n to a predetermined value and/or the value of the seed reload register in the shift register controller 2103.
  • reload values are preferably different from the one-cycle shift register value. This preferably also occurs when the watchdog 404.5 and/or the voltage monitor 413 detect a fault or a suspected or possible attack.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) counts the number of these faults.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) reduces this counter value again depending on the number of random quantum bits 411 and/or random data words 418 successfully generated, in particular since the last fault.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 preferably signals to the watchdog 404.5 and/or a Processor (10-1, 10-2) detects a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 then signals the finite state machine 404.8 that no more random numbers may be generated.
  • a processor (10-1, 10-2) must then reactivate the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) using a predetermined reactivation code word.
  • the processor (10-1, 10-2) then writes this reactivation code word via the internal data bus 419 of the quantum random number generator 28 into a special reactivation register of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which reactivates the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) and the quantum random number generator 28 and preferably resets all error counters.
  • the number of possible reactivations is preferably limited.
  • the quantum random number generator 28 can preferably no longer be reactivated.
  • the counter for the reactivations of the quantum random number generator 28 can preferably be reset by means of a special reset command before this maximum value is reached.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28 or another device of the quantum random number generator 28 issues a warning before reaching this blocking limit.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 first ensures that the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first determines a new seed value based on quantum random numbers 411 and a new value of the feedback polynomial selection register 2112 based on quantum random numbers from quantum random bits 411 by means of a predetermined seed value and a predetermined value of the feedback polynomial selection register 2112.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 signals the finite state machine 404.8 that it may use and pass on the quantum random bits 411 and the quantum random data words 418 (quantum random numbers).
  • the finite state machine 404.8 preferably signals this fact to one or more processors (10-1, 10-2). This has the advantage that the device only generates quantum random numbers 418 generated with full protection.
  • TPRC time-to-pseudorandom number generator 404.3
  • the quantum random number generator 28 changes this number m after the complete determination of a number m of quantum random bits 411 depending on one or more previously determined quantum random bits 411.
  • the finite state machine 404.8 of the quantum random number generator 28 does not output these already used quantum random bits 411 and does not use them for generating quantum random data words 418.
  • the logic extraction method also includes three borderline cases, which are described below.
  • the time-to-pseudo-random number generator 404.3 uses the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) as the value of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • TPRC time-to-pseudo-random number converter
  • the entropy extraction 404.4 now compares two different pseudorandom numbers generated by the time-to-pseudorandom number converter 404.3 (TPRC) from the output 410 of the time-to-pseudorandom number converter 404.3, a first pseudorandom number 410.1 and a second pseudorandom number 410.2.
  • TPRC time-to-pseudorandom number converter 404.3
  • 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.
  • the entropy extraction 404.4 also counts the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are unequal using this counter and decrements the counter by a second counter step size with each such event, preferably the value 0 is not undercut.
  • the second counter step size is smaller in magnitude than the first counter step size of the counter in the entropy extraction 404.4. If the value of this counter exceeds a predetermined value, the control device of the entropy extraction 404.4 assumes a defect in the time-to-pseudo-random number converter 404.3 (TPRC).
  • the control device of the entropy extraction 404.4 then signals a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28 to a processor (10-1, 10-2).
  • the entropy extraction 404.4 then no longer signals the finite state machine that a quantum random bit 411 has been successfully generated, so that the finite state machine 404.8 can no longer report successful quantum random number generation to a processor (10-1, 10-2) and no longer generates quantum random numbers 1018.
  • the entropy extraction 404.4 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.
  • the entropy extraction 404.4 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.
  • the finite state machine converts the successfully generated quantum random bits 411 into quantum random data words 418, each of which represents a quantum random number, and makes these available to the processors (10-1, 10-2) via a RAM or a FIFO 404.9 via the internal data bus 419.
  • the finite state machine 404.8 preferably signals the provision of one or more quantum random numbers to one or more processors (10-1, 10-2).
  • One problem may be a jitter of the system clock 2106.
  • TPRC time-to-pseudorandom number generator 404.3
  • the behavior of the time-to-pseudorandom 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.
  • the proposed quantum random number generator 28 achieves all of the above-mentioned goals.
  • the proposal achieves the objective of providing a one-piece, micro-integrated quantum random number generator 28 that makes it possible to guarantee a high level of entropy so that it at least passes the statistical tests defined by NIST.
  • memories such as DRAMS, SRAMS, flash memories and the like
  • processors microprocessors and/or microcontrollers and/or SoCs with a processor on the IC.
  • the proposal achieves the goal of providing a quantum random number generator 28 with a high degree of security against any attempt to manipulate its internal components.
  • the use of a time-to-pseudo-random number generator 1004.3 (TRNG) prevents the evaluation of successful attacks on the entropy source 401.
  • TRNG time-to-pseudo-random number generator 1004.3
  • the proposal also achieves the objective of providing a quantum random number generator 28 which is more economical than the generators of the known state of the art, in particular due to the ability to be co-integrated into CMOS circuits.
  • An entropy source 401 according to the invention can also comprise several photon sources coupled to a single single-photon detector 55 (e.g. to increase the photon rate or the reliability) 54 or several single-photon detectors coupled to a single photon source 54 (e.g. for monitoring purposes) 55 or several single-photon detectors coupled to several photon sources 54 (e.g. for monitoring purposes) 55.
  • the combination of several photon sources 54 and single-photon detectors 55 to form a single entropy source 401 is also possible.
  • the photon sources 54 and photon detectors 55 are not arranged side by side, but rather a compact arrangement of a photon source 54 and a single photon detector 55 one above the other. This is therefore a particularly compact monolithic 3D integration with minimal space consumption for the entropy source 401.
  • the single photon detector 55 is arranged lower than the photon source 54 in the semiconductor material (i.e. photon source 54 above, single photon detector 55 below) for improved shielding against external influences.
  • the single photon detector 55 can also be arranged higher than the photon source 54 in the semiconductor material (i.e. photon source 54 below, single photon detector 55 above).
  • an inverse arrangement of the elements can also be carried out by appropriate structuring from the back of the semiconductor substrate 49.
  • structuring can be carried out on both sides from both the front and the back of the semiconductor substrate 49.
  • the photon source 54 is a single photon source (SPS) designed to provide only single photons or a few photons at a time at random time intervals.
  • SPS single photon source
  • Such photon sources 54 that provide only single photons or a few photons at a time are also referred to as single photon sources 54 in the context of this application.
  • they do not have to be real single photon emitters, for example based on a single isolated two-level system; rather, conventional light sources can also be designed as SPS 54 by attenuating the emission or the supplied current to a correspondingly high degree.
  • a semiconductor substrate 54 is understood to mean the entire
  • Semiconductor chip is understood as a body in which, for example, by means of bipolar, BiCMOS, CMOS or other semiconductor technologies, a specific element structure is structured into the semiconductor material 49, for example by forming differently doped wells or regions.
  • the structure formation can also be carried out additively by applying further layers and structures or by a sequence of etching and application steps for such further layers and structures, preferably with the formation of the analog and digital circuits for evaluating and processing the output signal 404 of the entropy source 401.
  • a corresponding semiconductor substrate 49 can therefore comprise, in addition to a so-called carrier or base substrate (e.g.
  • an unstructured single-crystal semiconductor substrate 49 as a basis for the epitaxial growth of further semiconductor layers), a large number of such epitaxially grown layers 48 and other coatings.
  • the semiconductor substrate 49 is therefore understood in this application as a material carrier for the semiconductor structures of an entropy source 401 according to the invention and not in the sense of a simple carrier or base substrate for applying these structures.
  • the formation of an entropy source 401 according to the invention one above the other in a common semiconductor substrate 49 made of a semiconductor material represents a demarcation, in particular compared to hybrid-integrated combinations (e.g. by means of flip-chip assembly) of at least one photon source 54 and at least one single-photon detector 55, for example on a common submount as a carrier structure.
  • the photon source 54 is a light-emitting silicon LED 54 operated at an operating point below or close to the breakdown voltage, better an avalanche Zener diode (Zener-avLED) 54.
  • the Zener-avLED 54 has a breakdown voltage of ⁇ 10 V, more preferably a breakdown voltage of ⁇ 8 V and even more preferably a breakdown voltage of ⁇ 7 V. The advantages of using a Zener-avLED as a single photon source 54 are explained in more detail below.
  • This new type of single photon source 54 allows a high single photon rate of photons emitted by the single photon source 54 at a relatively low operating voltage, even below and in the range of the Zener breakdown voltage, and, with the desired design, shows a preferably directed radiation of the generated photons into the interior of the semiconductor substrate 49 and thus in the direction of the single photon detector 54.
  • the close proximity of the single photon detector 55 to the single photon source 54 outweighs the disadvantage of the increased attenuation in the semiconductor substrate 49.
  • Zener avLEDs particularly suitable for use as a single photon source 54 in an entropy source 401.
  • the single photon detector 55 is a single photon avalanche diode (SPAD), i.e. second SPADs 55. In the context of this document, this refers to detectors which, due to their particularly high sensitivity with high amplification and low (dark) noise, are in principle capable of detecting and proving individual photons.
  • SPAD single photo
  • a main idea of the inventive entropy source 401 of the present invention is thus to provide a particularly compact and safe integrated entropy source 401 by arranging a Zener avLED as photon source 54 and a second SPAD 55 as single photon detector 55 vertically one above the other in a common semiconductor substrate 49.
  • BCD technology bipolar CMOS DMOS technology
  • Silicon LEDs are known for this technology.
  • Highly efficient SPADs have already been successfully demonstrated and implemented in BCD technology.
  • BCD technology allows a particularly effective and optimized integration of these SPADs with a large number of other functional groups such as digital and analog circuit components, particularly energy-efficient digital memory and switching elements, general power and driver electronics as well as detector and sensor components.
  • the document presented here particularly points out the advantage of the availability of DMOS transistors for the necessary voltage-stable voltage converters for generating the increased supply voltages for operating the entropy source 401 in such a way that the photon sources 54 and/or the photon detectors 55 can be operated close to their breakdown voltages, e.g. in Geiger mode.
  • the silicon-based PLCs known in the state of the art can in principle also be implemented in BCD technologies.
  • silicon LEDs due to the undirected radiation of the photons and the fact that they are usually implemented close to the surface, such silicon LEDs are not optimal for the realization of particularly efficient entropy sources 401 that are protected from attacks.
  • the implementation close to the surface also usually results in degradation in the case of a silicon LED used in avalanche operation. Since silicon, as an indirect semiconductor, is poorly suited to the generation of photons and these can generally only be generated by further processes via an additional interaction with the crystal lattice, the selection of possible alternative photon sources based on silicon is very limited.
  • Zener diodes provided in a BCD technology in different layers by corresponding pn junctions, which are optimized for a permanent operating point even in the breakdown region, with a Zener diode close to the surface as an emitter and a simple pn diode underneath without bias (English “zero bias”) as a photon detector 55, it was shown that in this configuration, contrary to the general expectation of the expert, strong electroluminescence with an effectiveness of at least 0.03% can be observed on the Zener diode in avalanche operation at the breakdown voltage.
  • corresponding Zener diodes are usually not intended for operation as optoelectronic components (LEDs).
  • the photons generated are preferably emitted in the direction of the lower p-n diode, which can thus detect almost all emitted photons, which can also be demonstrated in the inventive structure via a photocurrent (see FIGS. 29 to 32 with the associated figure description).
  • the Zener diode examined has a low but nevertheless significant efficiency in the area of the breakdown/Zener voltage (approx. one detected photon per 3000 electrons of the Zener diode current) and therefore appears to be extremely suitable as single photon sources for the realization of entropy sources 401 in silicon-based BCD technology.
  • the preferred radiation in the direction of the photon detector offers clear advantages over the isotropic radiation of conventional photon sources 54 used in entropy sources 401.
  • the silicide commonly used in CMOS technology to represent reduced contact resistance between the metal contacts and the semiconductor silicide is on the one hand light-tight and on the other hand mirror-smooth, so that photons originally emitted upwards can be reflected back into the interior of the semiconductor substrate 49 by the silicide mirror thus formed.
  • Zener diodes designed accordingly and operated as SPS in avalanche mode are therefore also referred to below as light-emitting avalanche Zener diodes (Avalanche Light Emitting Zener Diodes, Zener-avLED) 54, in contrast to the silicon LEDs 54 known from the prior art.
  • the Zener avLEDs provided in the BCD technology used emit photons with wavelengths from the visible spectral range when used as a photon source 54 and have a relatively low Zener operating voltage of usually less than 8 V. This simplifies the design of the charge pumps in the voltage regulators 91 for supplying the entropy sources 401 with electrical energy.
  • a Zener avLED when used as a photon source 54 is also typically directed such that the photons are emitted preferably in a vertical direction, ie away from the surface of the semiconductor substrate 49 into the semiconductor substrate 49, when used in a Entropy source 401 can achieve a much stronger isolation of the SPS and the photons generated from the environment of the semiconductor material 49, and tapping or injecting photons on the surface of the photon detector 55 is made significantly more difficult.
  • the efficiency of the random number generation of the quantum random number generator 28 can also be significantly increased and uncontrolled photon propagation in the semiconductor material 49 with corresponding crosstalk to other circuit parts of the micro-integrated circuit 2 can be largely prevented.
  • the document presented here therefore also discloses the idea of minimizing the optical crosstalk between the entropy source 401 and other device parts of the micro-integrated circuit 2 by a vertical arrangement of the photon source 54 and the photon detector 55 in a common substrate with the other device parts of the micro-integrated circuit 2.
  • the second essential component for constructing a compact entropy source 401 is therefore the selection of a correspondingly adapted SPAD design for the second PSPAD diode of the photon detector 55.
  • the second SPAD diodes 55 in BCD technologies are also implemented close to the surface by appropriately forming p- or n-wells.
  • Such near-surface SPADs as second SPAD diodes 55 are certainly comparable to the SPADs implemented in CMOS technology in the prior art.
  • the entropy source known from EP 3 529 694 B1 could therefore also be implemented in BCD technologies with the Zener avLEDs described above.
  • the Zener avLEDs as photon source 54 advantageously emit the photons preferably in the direction into the semiconductor substrate 49.
  • Zener avLEDs as photon sources 54 it is therefore expedient to arrange the associated second SPAD diode 55 below the Zener avLED, which serves as the photon source 54.
  • BCD technology In addition to the implementation of conventional n-SPADs and p-SPADs, BCD technology also enables the implementation of completely new SPAD concepts, including the use of deep n- or p-doped layers in a BCD substrate.
  • a method for generating deep pn junctions in a BCD process also recently developed by the applicant, made it possible to create a particularly efficient, deep single-photon avalanche diode (“deepSPAD”) based on this process, which is based on can be arranged in a simple manner directly below a Zener avLED designed to provide single photons as a photon source 54.
  • deepSPAD deep single-photon avalanche diode
  • a Zener avLED as a photon source 54 in combination with a deep-lying second SPAD diode 55 as a photon detector 55 thus provides the essential components of an entropy source 401 that is completely vertically integrated in BCD technology, in contrast to a horizontal integration of an entropy source 401 based on CMOS technology according to the prior art.
  • a miniaturized quantum random number generator 28 based on a monolithic silicon die as semiconductor substrate 49 with an entropy source 401 with highly efficient optical coupling of the photon source 54 and the photon detector 55, high security against attacks and a relatively low operating voltage and thus reduced voltage converter effort can be realized in BCD technologies.
  • the design of the vertical entropy source 401 presented here on a BCD basis with a photon detector 55 arranged vertically to a photon source 54 in a one-piece micro-integrated circuit 2 therefore represents an optimal solution to the inventive task.
  • the vertical 3D integration can further increase the compactness of an entropy source 401 and reduce the chip area consumption compared to conventional lateral 2D designs while simultaneously increasing efficiency. This is what makes it possible to place the entropy source 401 in the pad edge 2403 of a micro-integrated circuit 2. This reduces the effective chip area consumption for the proposed entropy source 401 to effectively 0, which results in a massive economic advantage.
  • an entropy source 401 according to the invention and the associated quantum random number generator 28 are therefore formed in a BCD substrate as a semiconductor substrate 49, which was manufactured using a BCD technology.
  • the BCD substrate preferably comprises a carrier substrate 49 of the proposed vertical entropy source 401 and an epitaxial layer 48 grown on the carrier substrate 49 of the proposed vertical entropy source 401, wherein a deep pn junction in the epitaxial layer 48 was created between the carrier substrate 49 of the proposed vertical entropy source 401 and the epitaxial layer 48 by diffusion of dopants introduced into a surface of the carrier substrate 49 of the proposed vertical entropy source 401 below the epitaxial layer 48.
  • the carrier substrate 49 of the proposed vertical entropy source 401 can preferably be a p-substrate. However, n-substrates or intrinsic substrates can also be used.
  • the substrate material of the carrier substrate 49 of the proposed vertical entropy source 401 can in particular be silicon.
  • a typical dopant for forming a p-region is boron.
  • Phosphorus (P), arsenic (As) or antimony (Sb) can be used to form an n-region.
  • boron diffuses significantly further as a dopant than the heavy donors (P, As or Sb).
  • P, As or Sb the heavy donors
  • the n-regions created are largely dominant due to the higher doses used, i.e. an n-region already doped with phosphorus can retain its existing conduction type even after additional boron has been introduced.
  • additional mask, lithography and epitaxy steps in the usual BCD process can sometimes be dispensed with.
  • the first and second dopant preferably have different diffusion properties in the carrier substrate and/or in the epitaxial layer.
  • the second dopant preferably has a higher mobility in the carrier substrate and/or in the epitaxial layer than the first dopant.
  • the first dopant and/or the second dopant are preferably introduced without a mask or using a mask process.
  • a direct ion beam writing process for example using focused ion beams, can be used.
  • the introduction is carried out using a mask that has been provided beforehand and/or is preferably produced photolithographically, the introduction being carried out using a chemical or physical deposition process or also using an ion beam writing process.
  • the first region or the second region completely overlays the other region.
  • the first region is a deep n-layer (NBL layer) and the second region is a deep p-layer (PBL layer).
  • the single photon detector 55 forms an avalanche region in a region around the deep p-n junction and comprises an absorption region for converting photons into electron-hole pairs, wherein the absorption region is directly adjacent to the deep p-n junction.
  • the deep pn junction is formed at least partially between a deep n-layer as a cathode and a deep p-layer immediately adjacent to the deep n-layer. It is also preferred that the absorption region is directly adjoins the deep p-layer and is essentially designed as a p-region. Essentially means that the absorption region can also be partially designed as an intrinsic region. It is also preferred that an anode designed as a p+ region directly adjoins the absorption region.
  • a second deep pn junction (e.g. in the carrier substrate 49) formed below the deep pn junction of the single photon detector 55 in the epitaxial layer 48 is used as an additional photon detector 55 for monitoring for external attacks.
  • the said method for producing deep pn junctions in a BCD process results in a second pn junction underneath the first pn junction in some embodiments (see FIG. 27 with associated figure description) (observation diode 28040).
  • This second pn junction can also be configured as a photon detector 55 or single photon avalanche diode 55 due to its largely identical electronic properties.
  • this additional photon detector 55 is thus arranged below the actual arrangement of the entropy source 401, buried deep in the semiconductor material 49, it can provide an additional protective function, unknown from the prior art, against photons injected from the back of the semiconductor substrate 49.
  • the proposed watchdog 404.5 and/or the proposed voltage monitor 423 use this second pn junction as a light-sensitive observation diode 28040.
  • the proposed watchdog 404.5 and/or the proposed voltage monitor 423 evaluate the diode voltage of the observation diode 28040 (observation diode voltage) in the form of this second PN junction, record the diode voltage of this observation diode 28040 as an observation diode voltage value and compare this observation diode voltage value with a permitted observation diode voltage value interval. If the observation diode voltage value is outside the observation diode voltage value interval, the proposed watchdog 404.5 and/or the proposed voltage monitor 423 conclude that there is a defect or a photonic attack on the entropy source 401.
  • the watchdog 404.5 preferably signals such an incident by means of an interrupt signal via an interrupt line to the intended processor 10-1, 10-2.
  • the watchdog 404.5 preferably checks whether there is a correlation between a photon detection of the observation diode 28020 and a signal at the output 405 of the entropy source 401. If this is the case, the photons do not come from outside, but from the entropy source 401.
  • the watchdog 404.5 and the voltage monitor 413 preferably ignore such events.
  • the observation diode 28020 also detects some of these parasitic normal operation photons.
  • the watchdog 404.3 can detect the level of these normal operation photons and make them available to the processor 10-1, 10-2, for example via the data bus 419, as a measured value for other purposes. If necessary, the processor 10-1, 10-2 or another device part of the micro-integrated circuit 2 can conclude an operating state of the micro-integrated circuit 2 depending on a transmitted or provided measured value of the level of the normal operation photons.
  • the permitted observation diode voltage value interval is preferably set such that a photonic attack is only detected if the measured value of the level of the normal operating photons is significantly outside the expected measured values of the level of the normal operating photons.
  • the watchdog 404.3 can thus detect attack photons in the immediate vicinity of the entropy source 401 in a wide angular range by means of the observation diode 28040 and typically with the aid of the voltage monitor 413. This enables the processor 10-1, 10-2 to detect external attacks with a high degree of probability.
  • the top and/or bottom of the semiconductor substrate 49 in the region of the entropy source 401 are mirrored on one surface.
  • the top and/or bottom of the semiconductor substrate 49 in the region of the entropy source 401 can also comprise a light-blocking layer - which can also be mirrored - on one surface.
  • Mirroring the surfaces of a semiconductor substrate 49 (e.g. by means of metallization 142, 53 or the application of dichroic layers) and the application of a light-blocking layer are known in the prior art and have already been discussed above.
  • the surface of the semiconductor substrate 49 is covered with a silicide layer in the region of the entropy source 401 and above with a metallization 142, 53.
  • the metallization 142, 53 is closed in the region of the entropy source 401.
  • the metallization 142, 53 can act as a mirror coating for the inner region and/or as a wavelength-independent shading for external photons. The same applies to a formed silicide layer.
  • photons provided by the single photon source 54 are prevented from escaping at the surface of the semiconductor substrate 49 and/or the back of the semiconductor substrate 49 by a combination of at least one element each of metal covers, side wall contacts and vias.
  • the elements mentioned can achieve a largely complete shielding or encapsulation of the entropy source 401, which can ensure not only shielding from the outside but also a high level of immunity to external interference.
  • this encapsulation also includes other device parts of the quantum random number generator 28.
  • a second corresponding encapsulation can also include the other device parts of the quantum random number generator 28 and the already encapsulated entropy source 401 by means of additional layers and vias.
  • entropy sources 401 are implemented in a system of several quantum random number generators 28 as a QRNG system.
  • a QRNG system preferably comprises a large number of proposed entropy sources 401, which are preferably implemented together on the same semiconductor substrate 49 of a preferably one-piece micro-integrated circuit 2.
  • very high integration densities can be achieved with a high number of densely packed entropy sources 401 that are decoupled from one another as a result of the shielding by means of the said layers and vias, and thus overall high effective random number rates.
  • such a QRNG system comprises, in addition to the necessary plurality of shielded entropy sources 401, the necessary plurality of analog-to-digital converters 403, the necessary plurality of time-to-pseudo-random number converters 404.3, the plurality of entropy extractors 404.4, also a device that combines the plurality of generated quantum random bits 411 into a sequence of quantum random numbers.
  • This is typically a modified FSM 404.8.
  • the integration density is limited primarily by the structural juxtaposition of the individual components.
  • a proposed quantum random number generator 28 comprises an electronic circuit for generating and outputting a digital quantum random number sequence based on the statistical evaluation of the temporal sequence of signals 405 of the single photon detector 55 of the entropy source 401.
  • Another aspect of the present proposal concerns the integrated microelectronic
  • Integrated Circuit comprising at least one proposed Entropy source 401.
  • these can be ICs 2 for applications based on safety-relevant chip-based systems (System on Chip, SoC).
  • the advantages of a proposed vertical entropy source 401 with a photon source 54 arranged vertically to the photon detector 55 compared to the known horizontal implementations in the prior art are based primarily on the further miniaturization of the entire random number generator structure and the resulting high degree of integration or miniaturization of the generated structures and the resulting increase in the quantum random bit rate. Due to the complete isolation of the SPS (photon source 54) and the associated second SPAD diode 55 from the environment through the proposed shielding by means of layers and vias, the security of the quantum random number generation can be significantly increased.
  • the directed vertical radiation from the Zener avLED 54 used in the proposed vertical entropy source 401 as the SPS (photon source 54) also contributes to increasing the security and to a significant increase in the efficiency of the quantum random number generation of the quantum random number generator 28.
  • a second deep pn junction provided by means of a novel BCD technology and formed below the pn junction of the second SPAD 55 of the vertical entropy source 401 can be used as an additional photon detector as an observation diode 28020 for monitoring attacks, in particular from the rear side of the semiconductor substrate 49.
  • the observation diode 28040 is connected between the substrate 49 and the cathode 26132 of the second SPAD diode 55 buried in the semiconductor substrate 49 of the vertical entropy source 401, which operates as a photon detector 55.
  • the watchdog 404.5 and/or the voltage monitor 413 preferably record the observation diode voltage value of the voltage of the observation diode 28020.
  • the watchdog 404.5 preferably compares the synchronized voltage signal 415 with a likewise synchronized signal of the observation diode voltage value of the observation diode 28020. If the synchronized signal of the observation diode voltage value of the observation diode 28020 shows a plus that is synchronous with a pulse of the synchronized voltage signal 415, the watchdog 404.5 assumes that this is not an attack but a regular signal and typically does not trigger an alarm. From time to time, however, the watchdog 404.5 and/or the processor 10-1, 10-2 can interrupt the voltage supply of the entropy source 401, so that the synchronized voltage signal 415 of the observation diode voltage value should no longer show any pulses.
  • the watchdog 404.5 typically concludes that there is an attack or a fault.
  • the watchdog 404.5 preferably reports such an attack or a fault to the processor 10-1, 10-2 via the data bus 419 and/or by means of an interrupt signal via an interrupt line.
  • the watchdog 404.3 can also keep the information about such a suspected attack ready in a register or memory of the quantum random number generator 28.
  • the watchdog 404.5 then typically prevents the generation of random numbers 418 by the FSM 404.8 at least until the processor 10-1, 10-2 explicitly allows this generation again by means of a corresponding command to the watchdog 404.5, preferably by means of a password via the data bus 419.
  • the voltage monitor 413 preferably monitors the voltage level of the observation diode voltage value of the voltage of the observation diode 28020. If the observation diode voltage value of the voltage of the observation diode 28020 is outside the predefined observation diode voltage value interval, the voltage monitor 413 preferably reports this to the watchdog 404.5. In the case of such an out-of-spec message from the voltage monitor 413 for the observation diode voltage value of the observation diode 28040, the watchdog 404.5 typically again concludes that there is an attack or a fault. The watchdog 404.5 preferably reports such an attack or a fault to the processor 10-1, 10-2 via the data bus 419 and/or by means of an interrupt signal via an interrupt line.
  • the watchdog 404.3 can also keep the information about such a suspected attack in a register or memory of the quantum random number generator 28. Typically, the watchdog 404.5 then prevents the generation of random numbers 418 by the FSM 404.8 at least until the processor 10-1, 10-2 explicitly allows this generation again by sending a corresponding command to the watchdog 404.5, preferably by means of a password via the data bus 419.
  • the efficiency of the optical coupling into the associated second SPAD diodes 55 as well as the isolation and safety can be further increased by using internal metal and silicide mirrors.
  • the Zener avLED used as photon source 54 only a relatively low operating voltage of ⁇ 8 V is required compared to the state of the art. This further simplifies the necessary voltage converters 91 for generating the operating voltages of the entropy source 401. Since the absorption length of the emitted visible light in the silicon is also small (ie the associated absorption coefficient is high), very good optical isolation between neighboring elements can also be achieved.
  • Quantum process-based generator (28) for true random numbers (411, 418) Quantum Random Number Generator: QRNG
  • the quantum process-based generator (28) for true random numbers (411, 418) has an entropy source (401) and wherein the quantum process-based generator (28) for true random numbers (411, 418) (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).
  • TPRC time-to-pseudo-random number converter
  • 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 feature 1 or 2, wherein the behavior of the P of a time-to-pseudo-random number converter (TPRG) (404.3) depends on one or more quantum random bits (411) and/or one or more quantum random numbers (418).
  • TPRG time-to-pseudo-random number converter
  • 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 ensures the correct functioning of the quantum process-based generator (28) for true random numbers (411, 418).
  • 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.
  • 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.
  • 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-pseudorandom number converter (TPRC) (404.3) and detects and/or signals an error in the event of deviations from an expected behavior.
  • TPRC time-to-pseudorandom number converter
  • 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 memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory,
  • an EEPROM electrically erasable programmable read-only memory
  • a flash memory a magnetically rewritable read-only memory
  • an MRAM magnetically rewritable read-only memory
  • an FRAM magnetic resonance sensor
  • 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
  • an electronic 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 an electronic security system, 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 with 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.
  • 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
  • Feature 11 Secure microcontroller for controlling devices, in particular in automobiles, with a semiconductor crystal and with memory 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 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 generator for true random numbers (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 with the aid of a program from one or
  • Feature 12 Secure microcontroller according to feature 11, wherein the memory elements comprise one or more read/write memories RAM 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.
  • the memory elements comprise one or more read/write memories RAM 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 A secure microcontroller as defined in feature 12, wherein 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) (inter alia 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 for defence against attacks via ground offset, and/or an input/output circuit and/or one or more processing modules, wherein the processing modules are configured 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 security monitoring and control circuit, a data interface, in particular a Universal Asynchronous Receiver Transmitter (UART).
  • a CRC module Cyclic Redundancy Check
  • a clock generator module with a DES accelerator and/or an AES accelerator
  • timer modules
  • Feature 16 Secure microcontroller according 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 generator for true random numbers (QRNG) (28) comprises at least the photon source (54) as a light source for the optical quantum signal and wherein the quantum process-based generator for true random numbers (QRNG) (28) comprises at least the photon detector (55) as a photodetector for the optical quantum signal and wherein the quantum process-based generator for true random numbers (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 the photon source (54) is supplied with electrical energy such that the photon source (54) emits light and wherein the processing circuit detects
  • Feature 17 Secure microcontroller 11 according to feature 16, with at least one optical fiber (44), wherein the quantum process-based true random number generator (Q.RNG) (28) comprises at least the optical waveguide (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).
  • Q.RNG quantum process-based true random number generator
  • 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 below its surface (56), and wherein the surface (56) of the semiconductor crystal has a metallization stack, and wherein the metallization stack has 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) from the semiconducting material of the semiconductor substrate radiates into this optical waveguide (44), and wherein the optical waveguide (44) radiates the photon detector (54) such that the light from within the optical waveguide (44) penetrates back into the semiconducting material of the semiconductor substrate from the surface and hits 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 wherein 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
  • 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
  • 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 comprises 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 is 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.
  • a device comprising an integrated circuit (4) with a first processor (10-1) and a non-volatile memory (16), and the device comprising a first memory, the non-volatile memory storing at least one security code; the first memory storing data and wherein the data in the first memory is cryptographically protected in a first format and wherein the integrated circuit is configured 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 below its surface (56) and wherein the surface (56) of the semiconductor crystal has a metallization stack and wherein the metallization stack has 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
  • 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 supplies it to the processor (10) or another part of the device.
  • the quantum random number generator (28) comprises at least the first SPAD diode (54) as a light source for the optical quantum
  • 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 has a second memory for storing data and wherein the second memory is located inside or outside the integrated circuit; wherein the device is arranged to transfer data from the first memory to the second memory via the integrated circuit so that the processor can access it from the second memory, and wherein the integrated circuit is arranged to 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, 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.
  • 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 Apparatus according to any 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 arranged to store some data of the validated data set in the memory and the remainder in the 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 The apparatus of feature 31, wherein the data stored in the first memory is protected by a first authentication technique, and wherein the apparatus is configured to protect the data in the second memory by a second, different authentication technique.
  • Feature 33 Apparatus according to any one of features 26 to 32, wherein the data is stored in the first memory in at least one data set and the or each data set is cryptographically protected as a set, and wherein the apparatus is arranged to store in the second memory words or groups of words of a validated data set, each word or group of words being separately cryptographically protected.
  • Feature 34 Apparatus according to feature 33, arranged to read the words or groups of words from the second memory, to validate the read words or groups of words using a security code stored in the non-volatile memory, and to process the read and validated words or groups of words in the processor.
  • Feature 35 Apparatus according to feature 34, wherein the integrated circuit comprises a hash calculator, and wherein the processor and the hash calculator (hash engine) are arranged to: a) calculate a hash function for each word or group of words in dependence 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) retrieve a stored word or group from the second memory, recalculate a hash function for the retrieved word or group using the security code and compare the newly calculated 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.
  • the processor and the hash calculator (hash engine) are arranged to: a) calculate a hash function for each word or group of words in dependence 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) retrieve a stored
  • 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 Device according to one of features 38 to 39, wherein the device 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 comprises 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 comprises a surface (56), and wherein the semiconductor crystal comprises a semiconducting material beneath its surface (56), and wherein the surface (56) of the semiconductor crystal comprises 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 portion of this typically structured, transparent and electrically insulating layer (44) of the surface (46) forms the optical waveguide (44), and wherein the first
  • 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 A data processing device according to feature 42 or 43, wherein the data processing device comprises 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 A data processing device according to any one of features 42 to 44, wherein 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 A data processing apparatus according to any one of claims 42 to 45, wherein the processor and the hash calculator are arranged to: a) calculate a hash function for each word in dependence on a security code stored in the non-volatile memory and store the hash in association with the word, b) retrieve stored words from the memory, recalculate a hash function for each retrieved word using the security code and compare the newly calculated hash value with the stored hash value, and c) permit processing of the retrieved word by the data processing system only if the newly calculated and stored hashes have a predetermined relationship.
  • a device comprising: an integrated circuit including a data processing means and a non-volatile storage means storing at least one security code; a first means 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 external to the integrated circuit, for storing data, and wherein the device comprises 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 wherein the device comprises means for validating the data read from the first memory during transfer using a security code stored in the non-volatile memory, and wherein the device comprises 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 device 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.
  • a photon source 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 (
  • 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).
  • 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).
  • 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 quantum random bits 411 of the quantum random number generator (28).
  • a photon source 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),
  • 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
  • the monolithically integrable quantum random number generator 28 presented here is particularly robust against external attacks. Even in the event of a successful attack on the entropy source 401, the quantum random numbers 411 are not influenced in such a way that the attacker can break an encryption without considerable additional effort.
  • the secure microcontroller presented here therefore has an improved entropy of its random number generator. As a result, the encryption of this secure microcontroller is post quantum secure, in contrast to the state of the art. The advantages are not limited to this, however.
  • Figure 1 shows a schematic block diagram of a data processing device in combination with a controlled system
  • Figure 2 shows a schematic block diagram of a circuit for deactivating a test interface of the device of Figure 1;
  • Figure 3 shows a diagram illustrating the verification of digital signatures
  • Figure 4 is a flow chart illustrating the use of HASH functions in storing and retrieving data from a DRAM of the device of FIG. 1.
  • Figure 5 shows a proposed SPAD diode in cross section.
  • Figure 6 shows the combination of two proposed SPAD diodes in cross section.
  • Figure 7 shows the combination of two proposed SPAD diodes in cross section, with several insulation layers now forming the optical waveguide 44.
  • Figure 8 shows the integration of the SPAD diodes and the optical fiber into an evaluation and operating circuit
  • FIG. 9 corresponds to Figure 8, which is now supplemented by monitoring circuits.
  • Figure 10 shows a typical output signal of the second SPAD diode.
  • Figure 11 shows an exemplary oscillogram of the voltage signal 404 of the entropy source 401.
  • Figure 12 shows the schematic flow of a server-client communication using a proposed quantum random number generator.
  • FIG. 13 shows the schematic flow of the functions KeyExchangeServer() and KeyExchangeClient().
  • Figure 14 shows a schematic flow of the setPrimes() function.
  • Figure 15 shows the schematic flow of the function setE() 3400.
  • Figure 16 shows the schematic flow of the findD() function.
  • Figure 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 proposed integrated circuit 2, a server 3600 and a first processor 10-1 of the computer, in particular in the form of another proposed integrated circuit 2, a client 3610.
  • Figure 18 shows schematically the proposed method 3700 for generating a quantum random number.
  • Figure 19 shows another exemplary proposal for a one-piece, monolithic integrated circuit 2.
  • Figure 20 shows a device similar to the device of Figures 8 and 9.
  • Figure 21 shows an example of a time-to-pseudo-random number converter 404.3.
  • Figure 22 shows a diagram illustrating the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401.
  • Figure 23 shows an exemplary voltage converter 91 for supplying the entropy source 411 with a sufficient operating voltage of the supply voltage line VENT of the entropy source 411 relative to the reference potential line GND at the reference potential.
  • Figure 24 shows an example of a rough layout of an imaginary integrated circuit 2, for example a microcontroller, with a proposed quantum random number generator 28 in plan view to illustrate the placement of a quantum random number generator 28 in whole or in part in the pad frame 2403 or a proposed entropy source 401 in the pad frame 2403.
  • Figure 25 shows a schematic representation of a first embodiment of a quantum random number generator according to the prior art in plan view
  • Figure 26 shows a schematic representation of a second embodiment of a horizontal entropy source 401 according to the prior art in a side view
  • Figure I shows a schematic representation of a BCD substrate provided by a method for providing deep p-n junctions in a BCD process and a TCAD representation of the resulting dopant distribution;
  • Figure 28 shows a schematic representation of an exemplary first embodiment of an entropy source 401 according to the invention.
  • Figure 29 shows a schematic representation of an exemplary second embodiment of an entropy source 401 according to the invention
  • Figure 30 shows a schematic representation of an exemplary third embodiment of an entropy source 401 according to the invention
  • Figure 31 shows a graphical representation of the dependence of the SPAD current (A) on the Zener reverse voltage (V) at different SPAD reverse voltages (less than, equal to, greater than the breakdown voltage VBD) within an entropy source 401 according to the invention.
  • Figure 32 shows a graphical representation of the dependence of the ratio between
  • first and second are used to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another element. For example, a first element may be referred to as a second element, and similarly a second element may be referred to as a first element, without departing from the scope of the present disclosure. Terms such as "at least one of,” when preceded by a list of elements, modify the entire list, not just the individual elements of the list.
  • the data processing device is a computer in the form of a monolithic, micro-integrated circuit 2, for example the microcontroller, for controlling a controlled system 26.
  • the following description first describes the configuration of an exemplary microcontroller as an example of a monolithic microintegrated circuit 2 with a proposed quantum random number generator 28 and the exemplary contents of its various memories as it would be used after manufacture.
  • the computer in the form of the monolithic, micro-integrated circuit 2, for example the microcontroller, is connected to a controlled system 26 via a connection 3.
  • the controlled system can be, for example, a backup tape drive.
  • a backup tape drive it is important that the integrity of the backed up data is maintained. It is therefore important that the integrity of the data and programs used by the computer in the form of the monolithic, micro-integrated circuit 2, for example the microcontroller, is maintained.
  • the computer in the form of the monolithic, microintegrated circuit 2, for example the microcontroller comprises in the example of Figure 1, for example the monolithic integrated circuit 2 of an exemplary microcontroller, which comprises, for example, a control device 4, a non-volatile memory 6 and a memory with random access 8, hereinafter also referred to as RAM (Random Access Memory).
  • the non-volatile memory 6 can comprise any suitable type, e.g. a flash memory and other types. In this example, it is a read-only memory, e.g. an EEPROM.
  • the microcontroller here is only an exemplary embodiment of a one-piece and monolithic integrated circuit 2 with a monolithic integrated quantum random number generator 28.
  • microelectronic integrated circuits 2 are expressly included in the technical teaching of the document presented here.
  • the technically skilled person automatically reads other microelectronic integrated circuits and devices.
  • microelectronic integrated circuits and devices include In the sense of the document presented here, the following also expressly applies: MEMS (micro-electro-mechanical system), MOEMS (also: MOMS) (micro-optical-electro-mechanical system), optical MEMS, optical microsystems, BioMEMS (stands for the application of MEMS to e.g.
  • micromachines include MEFS (micro-electro-fluidic systems), NEMS (nano-electro-mechanical system), pMEMS (piezo-electric micro-electro-mechanical resonators), RF-MEMS (radio-frequency MEMS).
  • microcontroller used here only as an example.
  • the person skilled in the art immediately reads the use of a quantum random number generator 28 with a time-to-pseudo-random number converter 404.3, as proposed here, in a monolithic co-integration with conventional micro-integrated circuits when reference is made to "integrated circuit 2 of the microcontroller", and expressly does not limit the technical teaching of this document to the co-integration of the proposed quantum random number generator 28 with a microcontroller.
  • Such other conventional integrated circuits 2 may include, for example:
  • 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.
  • the above list is certainly not exhaustive.
  • the random access memory 8 may be any suitable memory, e.g. an SRAM, but in this case it is a DRAM.
  • the non-volatile memory 6 and the random access memory 8 are located outside the control device 4 in the example of Figure 1.
  • Another Non-volatile memory 30 can optionally be provided within the micro-integrated circuit outside the control device 4 and connected to it via an internal interface 301.
  • the micro-integrated circuit 2 with the exemplary control device 4 is preferably a monolithic integrated circuit, which comprises, for example, the following: one or more processors 10-1, 10-2; a tightly coupled memory 14, which can be, for example, an SRAM; a non-volatile boot ROM 16, which contains a preferably non-changeable code; a hashing engine 18, for example, present; one or more one-time programmable memories (OTP) 20 and 22; a JTAG test interface 12; an interface 32; internal interfaces 63, 81 and 301, which are coupled to the memories 6, 8 and 30; a quantum random number generator 28, which the document presented here also refers to as QRNG (English abbreviation for Quantum Random Number Generator); and hardwired test disabling circuitry 24.
  • a monolithic integrated circuit which comprises, for example, the following: one or more processors 10-1, 10-2; a tightly coupled memory 14, which can be, for example, an SRAM; a non-volatile boot ROM 16, which contains
  • OTP memories 20 and 22 may be separate memories or portions of memory within example integrated circuit 2. In this example, they are portions of a single memory.
  • Test disabling circuitry 24 is preferably located between test port 12, which in this example is a JTAG port, and processor(s) 10.
  • disabling circuitry 24 is responsive to data in OTP memory portion 22.
  • Optional hashing engine 18 uses data (one or more keys) in OTP memory portion 20.
  • OTP memory portion 20 preferably stores critical security parameters (CSPs) including a secret key and at least one public key. Additional keys may be stored in OTP memory portion 20.
  • CSPs critical security parameters
  • the secret key is preferably unique for each instance of the exemplary microintegrated circuit 2 proposed here.
  • the processor(s) 10 preferably executes instructions only from the tightly coupled memory 14 and from the DRAM 8 in the example of Figure 1 presented here.
  • the boundary of the control device 4 is a cryptographic virtual boundary, and the data and program execution within this boundary are considered secure in this first proposal for the application of a proposed quantum random number generator 28, as explained below.
  • the EEPROM 6 and the DRAM 8 (and the memory 30, if present) are outside the cryptographic boundary, and without security measures the contents of these memories would not be secure in the sense of the document presented here.
  • the interfaces 12, 63, 301, 32 and 81 are located at the physical and cryptographic boundary of the control device 4 Within the micro-integrated circuit 2.
  • micro-integrated circuit 2 having internal interfaces 63, 301, 32 and 81 at a cryptographic boundary between a control device 4 and other parts (8, 30, 6) of the integrated microelectronic circuit 2 that are classified as non-secure or less secure.
  • the essential purpose of these internal interfaces 63, 301, 32 and 81 is thus the secure shielding of an internal control device 4 within the micro-integrated microelectronic circuit 2.
  • the contents of the DRAM 8 and the EEPROM 6 are preferably cryptographically protected by authentication codes.
  • the authentication codes used in the DRAM 8 are preferably of a different type than the authentication codes used in the EEPROM 6.
  • the contents of the EEPROM 6 are protected against undetected malicious modification at least by the use of digital signatures.
  • the format of the data in the EEPROM 6 is also preferably different from that in the DRAM 8.
  • the EEPROM 6 preferably stores the firmware arranged in one or more data records 61, each with a digital signature 62.
  • the digital signatures used in this example of the proposal use public and private keys. Therefore, the details of the digital signatures are not described further, as they are known to the person skilled in the art.
  • a processor (10-1, 10-2) reads a data record from the EEPROM 6, the processor 10 checks its digital signature. If the digital signature is valid, the data record is processed by the processor(s) 10 using computer-implemented methods of the firmware. The processor(s) 10 thus preferably only executes validly signed firmware.
  • the processors 10 preferably use keys and authentication codes that depend on quantum random numbers 418 of one or more quantum random number generators 28.
  • the boot ROM 16 contains code that the processor 10 uses to read a loader program S2 from the EEPROM 6 to read further records from the EEPROM 6.
  • Logic in the processor 10 loads a program counter (not shown) in the processor 10 with the start address 15 of the boot ROM 16.
  • the processor 10 then executes the code in the boot ROM 15.
  • This boot ROM 15 code can read a computer-implemented loader program from the EEPROM 6.
  • the boot code in the boot ROM 15 is considered secure because it is within the cryptographic boundary 4.
  • the loader program is protected by a digital signature that the processor 10 verifies when executing the boot ROM code S4 in the boot ROM 15 against the public key stored in the first OTP memory 20.
  • Subsequent records are read using the loader program S6.
  • the loading program in EEPROM 6 and the subsequent data records are each provided with a digital signature and have a or several public keys embedded.
  • the processor 10 checks the signature of the data set newly read from the EEPROM 6 using a public key that is embedded in a data set previously loaded or stored in the OTP memory 20.
  • a record read from the EEPROM 6 may contain too much firmware code/data for the small, tightly coupled memory TCM 14 of the controller 4 within the microelectronic circuit 2 to store.
  • the TCM 14 preferably stores firmware code/data that is immediately required by the processor(s) 10.
  • the remainder of the firmware record is transferred to the DRAM 8. Since the DRAM 8 lies outside the cryptographic boundary 4, the codes/data stored there are cryptographically protected by authentication codes that the processor 10 has preferably generated using quantum random numbers from the quantum random number generator 28.
  • the processor 10 reads the data as a record from the EEPROM 6 and writes it as words into the DRAM 8 or reads these words back from this DRAM 8.
  • the processor 10 validates it as described in Figure 4 and the associated description.
  • the processor 10 stores at least part of the data of the record in the TCM 14 in step S21.
  • the processor 10 processes the remaining data of the record, for example as follows, and stores it in the DRAM 8.
  • the processor(s) 10 cooperates with the optional hash engine 18 to calculate a hash value for each word of the remaining data, for example in step S22, and to store the hash value in the DRAM 8 at a location associated with the stored word in step S24.
  • the word size is chosen according to the system limitations. It can be as small as one byte. In practice, it can be 32 bits.
  • the processor 10 and the hash engine 18 preferably recalculate the hash value and compare the recalculated hash value with the corresponding hash value stored in the DRAM 8 in step S30. 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 processing in step S36 and/or the processor 10 generates an error message and/or the processor 10 ignores the data/code. Storing words in the DRAM 8 with corresponding authentication codes, which are preferably based on quantum random numbers from the quantum random number generator 28, facilitates random access to the words by the processor(s) 10.
  • the hash function can be any suitable hash function.
  • An example is the well-known HMAC function.
  • the HASH function uses the secret key stored in the OTP memory 20. It could also use another key stored in the OTP memory.
  • the secret key is based on a quantum random number from the quantum random number generator 28.
  • An example of the hash value is HMAC (address
  • the HASH value preferably comprises at least enough bits to avoid or at least reduce duplication of HASH values in the DRAM 8.
  • the number of bits of the HASH value is preferably at least 96 bits and can also be significantly larger.
  • the industry standard is 160 bits, which reduces the probability of duplication of HASH values to a sufficiently low level.
  • the integrated circuit 2 in particular that of the microcontroller, is protected against unauthorized access to the programs and data used by the processor(s) 10 of the computer in normal operation.
  • This is of particular importance in the automotive field to prevent plagiarism and unauthorized spare parts, which usually require knowledge of the firmware of the illegally copied spare parts.
  • the JTAG test interface 12 could, however, allow access to the processor(s) 10 in a test mode with known EMULATE and TRACE routines and still allow illegal program modifications.
  • the JTAG test port 12 is required for testing at least during the manufacturing process of the integrated circuit 2, for example that of a microcontroller, and can be used for fault diagnosis after manufacturing.
  • Such an analysis capability of an automotive integrated circuit 2, for example an automotive microcontroller is an indispensable prerequisite for meeting the quality requirements of T16491.
  • the OTP memory 22 can, for example, comprise at least one security bit which, together with the blocking circuit 24, blocks the JTAG interface 12.
  • the OTP memory 22 contains only one bit.
  • the OTP memory 22 allows a bit to be changed only once from one state, e.g. "0", to the opposite state "1".
  • the bit is e.g. "0", which enables testing.
  • the manufacturer of the exemplary integrated circuit 2, e.g. the microcontroller sets the bit to "1" before releasing the integrated circuit 2, e.g. the microcontroller, for delivery and use.
  • the JTAG port 12 typically has a serial input and a serial output (see Figure 2).
  • the deactivation circuit which is part of the circuit of the control device 4 within the integrated circuit 2, e.g.
  • the microcontroller preferably comprises a gate 241, e.g. located between the serial output of the JTAG interface 10 and the processor(s) 10, and a gate 242, e.g. located between the serial input of the JTAG interface 10 and the processor(s) 10.
  • the security bit "1" in the OTP memory 22 deactivates the gates 241 and 242. Since the security bit cannot be changed, the test port is then secured against use after the manufacture and delivery of the integrated circuit 2, for example the microcontroller.
  • the OTP memory 22 has a two-bit security code, which is initially "00". This allows a check during manufacture, after which the code is set to "01", i.e. one of the two bits is set to "1". This code "01" locks the gates 241 and 242. If an error occurs, the integrated circuit 2, for example of the microcontroller, is returned to its manufacturer, who sets the other bit to "1", resulting in the code "11", which allows a check via the terminal 12. Such a check is preferably destructive, since it does not allow a reset to the original value.
  • Access to the OTP memory 22 to change the security code can be made by a suitable access code, preferably generated by means of a quantum random number generator 28, which is provided with a digital signature that can be verified by a quantum random number-based key stored in the OTP memory 20.
  • the key may, for example, be the standard public key stored in memory 20. This allows the security code to be changed to "11", which enables verification via JTAG interface 12.
  • the original integrated circuit 2, for example the microcontroller is preferably retained by the manufacturer and preferably destroyed and the user receives a new integrated circuit 2, for example a microcontroller.
  • 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 code is changed by the manufacturer to "011" to allow testing. After testing, the code is changed to "111", thereby securing the JTAG interface 12 against use and the integrated circuit 2, for example, the microcontroller, to which the user can be returned. Only a signed access code provided with a digital signature verified by a key in the OTP memory 20 can be used to change the code stored in the OTP memory 22.
  • Security codes of two or more bits provide an audit trail for testing (or any unauthorized testing attempts) after manufacturing.
  • control device 4 of the integrated circuit can optionally have at least one further interface 32 in addition to the connections 3 and 12.
  • This further interface 32 can be, for example, an Ethernet connection or a Fibre Channel connection or an automotive data bus connection for data buses such as CAN, LIN, DSI3 or PSI5.
  • a Fibre Channel connection in the sense of the document presented here is a data connection that uses an optical fiber or another waveguide for electromagnetic radiation.
  • the integrated circuit 2 for example the microcontroller, can additionally have a further non-volatile memory 30 outside the control device 4 of the integrated circuit 2, for example a microcontroller, which stores data that is cryptographically protected by a security parameter stored in the OTP memory 20.
  • the further non-volatile memory 30 is coupled to the control device 4 via the internal interface 301 of the integrated circuit 2, for example the microcontroller.
  • the additional non-volatile memory 30 may contain other encrypted and/or digitally signed data.
  • the additional security parameters outside the control device 4 of the integrated circuit 2, for example the microcontroller, can be used to secure the data and codes transmitted via the interface(s) 32.
  • the boot code is preferably hard-coded in the boot ROM 16; the loader and other codes/data are stored in the EEPROM 6 with digital signatures based on the public and private keys, preferably generated using quantum random numbers of a quantum random number generator 28; and preferably at least one public key is generated using a quantum random number of a quantum random number generator and stored in the OTP memory 20.
  • the secret key is preferably only stored in the OTP 20 when the security code, which is preferably based on a quantum random number of a quantum random number generator 28, is set in the OTP 22 and the test port of the exemplary JTAG interface 12 has been blocked.
  • the control device 4 of the integrated circuit 2 for example the microcontroller, contains the necessary quantum random number generator QRNG 28 in the example presented here.
  • the firmware stored in the tightly coupled memory 14 or in the DRAM 8 reads one or more quantum random numbers of e.g. 256 bits from the quantum random number generator 28 and stores them in the OTP 20 as a secret key without this data leaving the control device 4, preferably within the integrated circuit 2, for example the microcontroller.
  • the logic gates of the integrated circuit 2 for example the microcontroller, or at least those of the control device 4 of the integrated circuit 2, for example the microcontroller, are designed in such a way that the current peaks that occur when logical states change within the circuits of the logic gates do not allow any conclusions to be drawn about the processes and/or the data and/or the quantum random numbers and/or the circuit states of the device. This avoids so-called side channels.
  • the proposed device can comprise current sources, complementary switching, complementary dummy circuits, energy reserves (e.g. capacitances), etc.
  • the hash function of the hashing engine 18 may be any suitable hash function and is not limited to the example of HMAC described above.
  • the on-chip quantum random number generator 28 QRNG could be omitted from the integrated circuit 2, for example the microcontroller, and instead an off-chip quantum random number generator QRNG could be used to generate the secret key during the manufacturing process.
  • an on-chip quantum random number generator QRNG is significantly more secure.
  • the firmware stored in the EEPROM 6 is preferably cryptographically protected, in this example by digital signatures.
  • the firmware is first compiled. It is then digitally signed with a secret private key of a private-public key system.
  • the secret private key of the private-public key system is based on a quantum random number of a quantum random number generator 28.
  • the public key is preferably stored in the OTP memory 20 so that the signature can be verified.
  • the signed firmware is stored in the EEPROM 6.
  • the digital signatures can be created by transmitting the compiled firmware to a secure signature generator during the production process.
  • the secure signature generator can be the integrated circuit 2, for example of the microcontroller, namely the control device 4 in cooperation with the quantum random number generator 28 itself.
  • the signed firmware can be downloaded into the EEPROM 6 via a communication connection, e.g. the Internet, if the signing is done externally.
  • the processor 10 can remove the signature of the firmware before storing it in the EEPROM 6 and replace it with its own quantum random number-based signature based on a quantum random number from its quantum random number generator 28, which then makes it impossible for anyone to read the firmware without exception.
  • the non-volatile memory 6 can be any other suitable memory, for example a FLASH memory.
  • the additional non-volatile memory 30 may, for example, be a serial EEPROM memory.
  • the one-time programmable memory OTP 22, which contains the security code, can be replaced with another re-programmable, non-volatile memory and the security code can be changed using signed firmware.
  • a memory 22 that can only be programmed once is more secure because its programming is irreversible.
  • the DRAM 8 can be further protected by making access to the DRAM 8 physically very difficult and detectable in case of an attempt.
  • the connections between the DRAM 8 and the control device 4 can be buried in layers of the metallization stack of the integrated circuit 2, for example the microcontroller, or otherwise protected against physical scanning (eg by e-beam).
  • the Device parts of the control device 4 have such a scanning protection.
  • the quantum random number generator 28 has such a scanning protection, for example in the form of a metal layer 53, 142 lying at a predefined potential.
  • the entire integrated circuit 2, for example of the microcontroller, can be provided with such scanning protection, for example in the form of a metal layer 53, 142 lying at a predefined potential.
  • the entire integrated circuit 2, for example of the microcontroller, can also be housed in a tamper-proof housing with tamper-proof seals.
  • the secure integrated circuit 2 for example of the microcontroller, preferably has at least one photon source 54 or a silicon LED 54 or a first SPAD diode 54 as a photon source for photons of the quantum random number generator 28.
  • the secure integrated circuit 2, for example of the microcontroller preferably has at least one photon detector 55 or a second SPAD diode 55.
  • An optical system preferably optically couples the at least one photon source 54 or the silicon LED 54 or the first SPAD diode 54 to the photon detector 55 or the second SPAD diode 55 by means of these photons.
  • the optical system can comprise an optical waveguide 44.
  • the quantum random number generator 28 is preferably a quantum process-based generator for true random numbers (QRNG) 28.
  • the quantum process-based generator for true random numbers (QRNG) 28 preferably comprises a photon source 54 or a silicon LED 54 or a first SPAD diode 54 as a light source for an optical quantum signal and a photon detector 55 or a second SPAD diode 55 as a photodetector for this optical quantum signal. Furthermore, the quantum process-based generator for true random numbers (QRNG) 28 preferably comprises at least the processing circuit and optionally the optical fiber 44.
  • the optical fiber 44 which may be present, preferably optically couples the photon source 54 or the silicon LED 54 or the first SPAD diode 54 to the photon detector 55 or a second SPAD diode 55.
  • An operating circuit supplies the photon source 54 or the silicon LED 54 or the first SPAD diode 54 with electrical energy in such a way that the photon source 54 or the silicon LED 54 or the first SPAD diode 54 emit light.
  • the emission of light requires that the operating voltage provides a sufficient electrical bias voltage for the photon source 54 or the silicon LED 54 or the first SPAD diode 54.
  • a processing circuit (402, 403, 404) detects the signal from the photon detector 55 or the second SPAD diode 55 and forms the quantum random number 418 from it.
  • the processing circuit then preferably makes the quantum random number 418 thus formed available to one or more of the one or more processors 10 via a data bus 419.
  • the semiconductor crystal of the integrated circuit 2 for example of the microcontroller, preferably has a surface 56.
  • the semiconductor crystal typically has a semiconducting material below its surface 56.
  • the surface 56 of the semiconductor crystal typically has a metallization stack as structured metal layers and electrical insulation layers.
  • the structured metal layers typically form the electrically conductive conductor tracks, which are electrically separated from one another by the insulation layers.
  • the metallization stack thus has a typically structured and optically transparent and electrically insulating layer 44. At least part of this typically structured, transparent and electrically insulating layer 44 of the surface 56 preferably forms the optical waveguide 44.
  • first SPAD diode 54 uses a first SPAD diode 54 as photon source 54.
  • the first SPAD diode 54 radiates light 57 from the semiconducting material of the semiconductor substrate 49 into this optical waveguide 44, for example.
  • the material of the semiconductor crystal 49 has a high attenuation for this light. Nevertheless, the emission of the photons 57 of the first SPAD diode 54 in the optical waveguide 44 is not directed.
  • the emission via the substrate 48, 49 is very attenuated, since visible light has a very high absorption.
  • This arrangement allows the device to couple more photons from the first SPAD diode 54 directly to the second SPAD diode 55, which here serves as the photon detector 54 in the examples of Figures 6 and 7.
  • the optical waveguide 44 transports these photons 57, 58, 59 of the first SPAD diode 54 in the optical waveguide 44 to the second SPAD diode 55 with virtually no loss compared to other prior art solutions.
  • the optical waveguide 44 irradiates the second SPAD diode 55 with these photons 57, 58, 59 of the first SPAD diode 54 in such a way that the light 59 penetrates from within the optical waveguide 44 back into the semiconducting material of the semiconductor substrate 49 from the surface 56 and there strikes device parts of the second SPAD diode 55.
  • the second SPAD diode 55 then generates a received signal depending on the irradiation with these photons 59.
  • At least one operating circuit in the examples of Figures 6 and 7 supplies the at least one first SPAD diode 54 with electrical energy at least temporarily.
  • the at least one first SPAD diode 54 then feeds Photons 57 into the optical waveguide 44 provided in Figures 6 and 7.
  • the optical waveguide 44 then transports these photons 57, 58, 59 further.
  • the optical waveguide 44 provided in the examples in Figures 6 and 7 then radiates the transported photons 58 as essentially vertically moving photons 59 into the second SPAD diode 55.
  • At least one data interface of the one or more data interfaces 64 is a wired automotive data bus interface 64.
  • the wired automotive data bus interface 64 can be, for example, a CAN data bus interface or a CAN-FD data bus interface or a Flexray data bus interface or a PSI5 data bus interface or a DSI3 data bus interface or a LIN data bus interface or an Ethernet data bus interface or an SPI data bus interface or a MELIBUS data bus interface.
  • At least one data interface 64 of the one or more data interfaces 64 is a wireless data bus interface.
  • the wireless data bus interface 64 can be, for example, a WLAN interface or a Bluetooth interface.
  • At least one data interface 64 of the one or more data interfaces 64 is a wired data bus interface 64.
  • the wireless data bus interface 64 can be, for example, a KNX data bus interface or an EIB data bus interface or a DALI data bus interface or a PROFIBUS data bus interface.
  • Control device 4 and the integrated circuit 2 for example the microcontroller, As described above, it is not limited to a control device 4 or the integrated circuit 2, for example the microcontroller.
  • the proposed device can also be applied to other types of integrated circuit processors and other integrated circuits.
  • a microprocessor is only a particularly favorable, because complex, example of a proposed exemplary integrated circuit 2.
  • the embodiments of the proposed device store data inside and possibly also outside the integrated circuit 2, for example the microcontroller.
  • the embodiments of the proposal ensure that the data to be processed, including the executable code, cannot be changed by unauthorized persons who access the data stored outside the integrated circuit 2, for example the microcontroller, or, if such access occurs, ensure that this access and/or such an attempted access does not go unnoticed and that the data and/or program codes and/or keys and/or authentication data etc. cannot be changed unnoticed.
  • Security is ensured by security data, and the security data itself is secure because it is stored within the integrated circuit 2, for example the microcontroller, in a protected area 4 and protected from unauthorized access.
  • the secure integrated circuit 2 for example of the microcontroller, has, in the example of Figure 6, at least one first SPAD diode 54 and at least one second SPAD diode 55 and at least one optical waveguide 44.
  • the quantum random number generator 28 is preferably a quantum process-based generator for true random numbers (QRNG) 28.
  • the quantum process-based generator for true random numbers (QRNG) 28 in the example of Figure 6 comprises a first SPAD diode 54 as a light source for an optical quantum signal and a second SPAD diode 55 as a photodetector for the optical quantum signal.
  • the quantum process-based generator for true random numbers (QRNG) 28 in the example of Figure 6 comprises at least the processing circuit and the optical waveguide 44.
  • the optical waveguide 44 in the example of Figure 6 optically couples the at least one first SPAD diode 54 to the at least one second SPAD diode 55.
  • an operating circuit supplies the first SPAD diode 54 with electrical energy in such a way that the first SPAD diode 54 emits light 57.
  • the emission of light 57 requires that the operating voltage provides a sufficient electrical bias voltage for the first SPAD diode 54 (404.1).
  • a processing circuit (402, 403, 404) detects the signal of the second SPAD diode 55 (404.3) and forms the quantum random number 418 therefrom.
  • the processing circuit then preferably makes the quantum random number 418 thus formed available to one or more of the one or more processors 10 via a data bus 419.
  • the semiconductor crystal 49 of the control device 4 of the integrated circuit 2, for example the microcontroller has a surface 56.
  • the semiconductor crystal 49 has a semiconducting material below its surface 56.
  • the surface 56 of the semiconductor crystal 49 typically has a metallization stack as structured metal layers and electrical insulation layers.
  • the structured metal layers typically form the electrically conductive conductor tracks, which are electrically separated from one another by the insulation layers.
  • the metallization stack thus has a typically structured and optically transparent and electrically insulating layer 44. At least part of this typically structured, transparent and electrically insulating layer 44 of the surface 56 preferably forms the optical waveguide 44.
  • the first SPAD diode 54 radiates light 57, for example, from the semiconducting material of the semiconductor substrate 49 into this optical waveguide 44.
  • the first SPAD diode 54 radiates perpendicular to the surface 56 essentially upwards and not sideways into the semiconductor substrate 49 of the semiconductor crystal, which has a high attenuation.
  • the emission of the photons 57 of the first SPAD diode 54 is not directed in the optical waveguide 44.
  • the emission via the substrate 48, 49 is very attenuated, since visible light has a very high absorption.
  • the device of Figure 6 can couple more photons of the first SPAD diode 54 directly to the second SPAD diode 55 compared to devices from the prior art.
  • the optical waveguide 44 transports these photons 57, 58, 59 of the first SPAD diode 54 in the example of Figure 6 in the optical waveguide 44 to the second SPAD diode 55 with virtually no loss compared to other devices from the prior art.
  • the optical waveguide 44 irradiates the second SPAD diode 55 with these photons 57, 58, 59 of the first SPAD diode 54 in the example of Figure 6 in such a way that the light 59 penetrates from within the optical waveguide 44 back into the semiconducting material of the semiconductor substrate 49 from the surface 56 and there strikes device parts of the second SPAD diode 55.
  • the second SPAD diode 55 then generates a received signal in the example of Figure 6 depending on the irradiation with these photons 59.
  • At least one operating circuit in the example of Figure 6 supplies the at least one first SPAD diode 54 with electrical energy at least temporarily.
  • the at least one first SPAD diode 54 then feeds photons 57 into the at least one optical waveguide 44 in the example of Figure 6 when supplied with sufficient electrical energy.
  • the optical waveguide 44 then transports these photons 57, 58, 59 further in the example of Figure 6.
  • the at least one optical waveguide 44 then radiates the transported photons 58 as essentially vertically moving photons 59 into the second SPAD diode 55 in the example of Figure 6.
  • Figure 7 essentially corresponds to Figure 6.
  • the semiconductor crystal 49 and the epitaxial layer 48 are now covered with a first optically transparent insulator layer, for example an oxide layer 143.
  • the vias 140 are filled with electrically conductive metal in the example in Figure 7.
  • the metallization level 1 with the electrical lines of the first wiring level 141 contact these vias 140 in the example in Figure 7.
  • a second optically transparent insulation layer 144 is applied in the example in Figure 7.
  • the dashed boundary surface 145 between the first optically transparent insulation layer 143 and the second optically transparent insulation layer 144 is also essentially optically transparent in the example in Figure 7 and preferably does not reflect and/or absorb the light from the first SPAD diode 55.
  • the first optically transparent insulation layer 143 and the second optically transparent insulation layer 144 essentially form the optical waveguide in the region of the first SPAD diode 54 and the second SPAD diode 55.
  • Figure 8 shows a schematic simplified block diagram of a quantum-based random number generator
  • a preferably common system clock 2106 preferably clocks the digital circuits of the device shown by way of example in Figure 8.
  • the quantum random number generator 28 of Figure 8 is preferably part of the control device 4 and thus of the integrated circuit 2, for example the microcontroller.
  • the structure of the quantum random number generator 28 includes an entropy source 401, in the example of Figure 8 a broadband 40 dB high-frequency amplifier 402 or the like and an analog-digital converter 403, which may also be just an inverter or the like.
  • an analog-to-digital converter 403 with a resolution of 14 bits and a sampling rate of 125 MS/s and with an evaluation device 404 was successfully used.
  • the entropy source 401 of the quantum random number generator 28 comprises in the example of Figure 8 an array 54 of single photon avalanche diodes (SPAD) 54 as photon sources 54 and an array 55 of single photon avalanche diodes (SPAD) 55 as photon detectors 55. It can also be a single common array.
  • SPAD single photon avalanche diodes
  • PAD single photon avalanche diodes
  • the operating voltage of these SPAD diodes 54, 55 is then above the breakdown voltage.
  • the SPAD diodes 54, 55 are then preferably connected in the reverse direction.
  • a quenching resistor 401.4 is preferably connected in series for each SPAD diode 54, 55.
  • the quenching resistor 401.4 prevents thermal destruction of the respective SPAD diode 54, 55 in the event of a charge carrier avalanche being triggered.
  • the respective quenching resistor 401.4 in Figure 8 also serves as a shunt resistor for detecting the electrical diode current through the SPAD diodes 54, 55.
  • the current signal of the second single photon avalanche diodes 55 of the array 55 of single photon avalanche diodes (SPAD) is measured via a shunt resistor 401.4 for these second SPAD diodes 55.
  • the series resistor for limiting the current through the respective SPAD diodes forms the shunt resistor 401.4.
  • the shunt resistor 401.4 can be inserted into the supply line of the respective SPAD diode 54, 55 independently of the quenching resistor 401.4.
  • An exemplary common array of SPAD diodes in the example in Figure 8 comprises four active first SPAD diodes 54 and twelve passive second SPAD diodes 55.
  • the exemplary four active first SPAD diodes 54 and twelve passive second SPAD diodes 55 are preferably coupled via an optical waveguide (optical waveguide 44).
  • the active first SPAD diodes 54 emit individual light pulses 57 spontaneously and randomly. They correspond to the first SPAD diode 54 of Figures 6 and 7.
  • the active first SPAD diodes 54 are preferably located inside the array of first and second SPAD diodes 54 and 55.
  • the proposed device supplies the active first SPAD diodes 54 with an increased supply voltage by means of its voltage converters.
  • the proposed device preferably uses particularly voltage-resistant DMOS transistors in these voltage converters. It is therefore particularly advantageous if the one-piece, micro-integrated quantum random number generator 28 is manufactured using a BCD semiconductor technology, which typically allows the manufacture of CMOS circuits, SPADs and DMOS transistors simultaneously at low cost and with effective chip area.
  • the proposed device therefore operates the active, first SPAD diodes 54 in the example of Figure 8 preferably well above the breakdown voltage of the first SPAD diodes 54.
  • the optical waveguide 44 passes some photons 58 of the emitted photons 57 on to the passive, second SPAD diodes 55 in the example of Figure 8.
  • the optical waveguide 44 corresponds to the optical waveguide 44 of Figures 6 and 7.
  • the passive, second SPAD diodes 55 correspond to the second SPAD diode 55 of Figures 6 and 7.
  • One or more voltage converters of the proposed device supply the passive, second SPAD diodes 55 in the example of Figure 8 with an increased supply voltage.
  • the proposed device preferably uses particularly voltage-resistant DMOS transistors in these voltage converters. It is therefore particularly advantageous if the one-piece, micro-integrated quantum random number generator 28 is manufactured using a BCD semiconductor technology, which typically allows the manufacture of CMOS circuits, SPADs and DMOS transistors at the same time in a cost-effective and chip-area-effective manner.
  • the proposed device operates the passive, second SPAD diodes 55 just above the breakdown voltage.
  • the passive, second SPAD diodes 55 are arranged as a ring around the active, first SPAD diodes 54 in the example of Figure 8. Other arrangements are conceivable.
  • first SPAD diodes 54 with other silicon LEDs and to use an arrangement of such other silicon LEDs and second SPAD diodes 55 close to each other, in which case the light transmission takes place directly through the semiconductor substrate 49 as an optical waveguide 44 with an extremely short light transmission path of only a few pm.
  • the passive, second SPAD diodes 55 detect at least some of the photons 59 arriving via the optical waveguide 44 in the example of Figure 8.
  • the passive, second SPAD diodes 55 generate, depending on the incoming photons 59 a current flow via a shunt resistor which is assigned to the second SPAD diodes 55.
  • the entropy source 401 preferably comprises the shunt resistors, the operating device of the SPAD diodes, the SPAD diodes 54 and 55 and the optical waveguide 44.
  • a voltage signal 405 of the entropy source 401 preferably connects the entropy source 401 to a preferred, exemplary, broadband 40 dB high-frequency amplifier 402. In other embodiments of the proposal, this 40 dB high-frequency amplifier 402 is not required. In this respect, the 40 dB high-frequency amplifier 402 is optional.
  • the voltage signal preferably corresponds to the voltage drop across the quenching resistor 401.4, which in the example of the figure functions as a shunt resistor 401.4.
  • the proposed exemplary high-frequency amplifier 402 preferably has a bandwidth of 30 to 4000 MHz and preferably a 1 dB compression point of 20 dBm.
  • the voltage swing of the voltage signal 405 of the entropy source 401 was in the sub-millivolt range in tests in connection with the elaboration of the technical teaching of the document presented here.
  • the exemplary proposed high-frequency amplifier 402 amplifies, for example, the voltage swing of this voltage signal 405 of the entropy source 401 to, for example, 50 to 150 mV.
  • An amplifier output signal 406 of the high-frequency amplifier 402 connects, for example, the exemplary high-frequency amplifier 402 to an exemplary evaluation device 404, which essentially comprises sub-devices of the control device 4.
  • the evaluation device 404 of Figure 8 is only one of many different implementation options of the technical teaching presented in this document.
  • the evaluation device 404 is preferably part of the integrated circuit 2, for example the microcontroller.
  • the integrated circuit 2, for example the microcontroller preferably comprises one or more processors 10-1, 10-2.
  • the evaluation circuit 404 has an exemplary 14-bit analog-digital converter (ADC) 403 with an exemplary sampling rate of 125 mega-samples/s and an exemplary bandwidth of 50 MHz.
  • ADC analog-digital converter
  • the amplified voltage signal of the exemplary high-frequency amplifier 402 is the amplifier output signal 406 of the high-frequency amplifier 402.
  • the analog-to-digital converter 403 samples the amplifier output signal 406 of the high-frequency amplifier 402 at a sampling rate of the analog-to-digital converter 403.
  • the sampling rate depends on the system clock 2106.
  • the sampling rate of the analog-to-digital converter 403 is equal to the Frequency of the system clock 2106.
  • the analog-to-digital converter 403 passes on the determined sample values of the amplifier output signal 406 of the high-frequency amplifier 402 digitally with a bus width of 14 bits, for example, to the evaluation device 404.
  • a proposal is also described below which works without a high-frequency amplifier 402 and which provides an analog-to-digital converter 403 with a bit width of 1.
  • the device shown in simplified form as a block diagram in Figure 8 includes, for example, a comparator 404.2, a time-to-pseudo-random number converter (TPRC) 404.3, an entropy extraction device 404.4 and a finite state machine 404.8.
  • TPRC time-to-pseudo-random number converter
  • the comparator 404.2 compares the exemplary digital 14-bit value 407 of the analog-to-digital converter 403 with a constant 404.1, which represents a threshold value, and generates a two-cycle 1-bit output pulse on its output signal 409 of the comparator 404.2 if the output value of the analog-to-digital converter 403 is greater than the constant 404.1.
  • the comparator 404.2 and the constant 404.1 are omitted and the analog-to-digital converter 403 immediately generates the output signal 409 of the comparator, since the analog-to-digital converter 403 then also fulfills the function of the comparator 404.2.
  • the disadvantages of such a design include its reduced flexibility and the increased demands on design and production.
  • the output signal 409 of the comparator 404.2 connects the comparator 404.2 to the time-to-pseudo-random number converter 404.3 (TPRC).
  • the time-to-pseudo-random number converter 404.3 preferably comprises, for example, a linearly-coupled 32-bit shift register that counts up with the system clock 2106 of the integrated circuit 2, for example the microcontroller.
  • the oscillator 30 and the clock system of the control device 4 typically provide this clock.
  • the bit width of this linearly-coupled shift register can vary depending on the application. This bit width can preferably be set via a register of the control device 4 of the integrated circuit 2, for example the microcontroller.
  • the feedback polynomial of the linearly fed back shift register of the time-to-pseudo-random number converter 404.3 can be set via a register of the control device 4 of the integrated circuit 2, for example the microcontroller.
  • the system clock 2106 can have a frequency of 125 MHz, for example.
  • a pulse on the 1-bit output signal of the comparator 404.2 preferably causes the time-to-pseudo-random number converter 404.3 (TPRC) to output the current shift register value of the linearly fed back shift register of the time-to-pseudo-random number converter 404.3 (TPRC) as a pseudo-random number at the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • TPRC time-to-pseudorandom number converter 404.3
  • the entropy extraction 404.4 converts the random raw data RD of the time-to-pseudo-random number converter 404.3 (TPRC) on the signal of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC) into a 1-bit random number 411 RN.
  • the raw data on the signal of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC) typically represents the last shift register value at which the output signal 409 of the comparator 404.2 showed a pulse.
  • the output 411 of the entropy extraction 404.4 is connected to the input of the finite state machine FSM 404.8.
  • the finite state machine 404.8 typically has the task of receiving data in the form of a serial stream of quantum random bits 411 from the entropy extraction 404.4, converting the serial stream of random data bits into random data words and storing these in the RAM block 404.9 of the evaluation device 404, which is typically the volatile memory.
  • the finite state machine 404.8 preferably communicates with the processor 404.11 (10-1, 10-2) via an internal data bus 419. After a successful write operation, the finite state machine 404.8 sets a finish flag 404.10.
  • the processor 404.11 can preferably write and/or read the finish flag 404.10 via the internal data bus 419.
  • the finish flag 404.10 can optionally be part of the RAM 404.9 or a register of the processor 404.11.
  • the processor 404.11 preferably controls and monitors the finite state machine 404.8 via the internal data bus 419.
  • the finish flag 404.10 is preferably not set when the system starts.
  • the processor 404.11 can then access the RAM block 414.9 and read the random number from the RAM 404.9, for example using a C program that is started on the embedded processor 404.11, for example a dual-core Arm Cortex-A9 MPCore.
  • the processor 404.11 is preferably identical to the first processor 10-1 in Figure 1.
  • the processor 404.11 can be a dual-core Arm Cortex-A9 MPCore, for example.
  • the processor 404.11 can also carry out some of the functions of the sub-devices of the evaluation device 404 by means of a suitable program and thus replace these device parts if necessary.
  • the processor 404.11 controls a watchdog 404.5.
  • the watchdog 404.5 is not only a watchdog timer that includes a timer that is synchronized with the system clock of the quantum random number generator 28 or the system clock 2106 of the processor 404.11 is clocked and which must be reset to a start value by the processor 404.11 at regular intervals in order to avoid interrupting the program execution of the processor 404.11 when a watchdog counter reading threshold is reached and/or crossed by the counter reading of the timer of the watchdog 405.5.
  • the watchdog 405.5 also carries out further monitoring tasks within the quantum random number generator 28.
  • the watchdog 404.5 preferably monitors the entropy of the quantum random bits 411.
  • the watchdog 404.5 preferably ensures that the quantum random bits 411 preferably do not have more than q consecutive random bits of the same logical value. If this is the case, the watchdog 404.5 preferably inserts other bits instead of the quantum random bits 411 into this serial bit data stream from the entropy extraction 404.5 to the finite state machine 407.8. More on this in the following Figure 9. In this case, the watchdog 404.5 preferably inserts random bits from another true random number generator and/or another quantum random number generator and/or pseudorandom bits from a pseudorandom number generator whose starting value is determined by valid random bits from a quantum random number generator (QRNG) or a true random number generator (TRNG).
  • QRNG quantum random number generator
  • TRNG true random number generator
  • the watchdog 404.5 preferably outputs an error message to the processor 404.11 in such a case.
  • the watchdog 404.5 is also a watchdog of the first processor 10-1.
  • the watchdog 404.5 monitors other variables within the meaning of the document presented here, such as the agreement of voltage values within the quantum random number generator 28 and/or within the device by means of one or more analog-to-digital converters and/or by means of one or more voltage monitoring devices such as voltage monitors 413, etc.
  • Figure 9 shows the expanded exemplary evaluation device 404, which now includes monitoring of the random number 411 RN and has an additional backup system for the event of an error in order to ensure the security of the application circuit by means of an emergency operation procedure even if the quantum random number generator fails.
  • the components processor 404.11 RAM 404.9 and finish flag 404.10 are omitted.
  • the reader should still consider these device parts or functions to be present in Figure 9.
  • the watchdog 404.5, an optional additional linear feedback shift register 404.6 as a backup pseudorandom number generator PRNG and a signal multiplexer 404.7 expand the device of Figure 8 to the device of Figure 9.
  • the output 411 of the entropy extraction 404.4 is now connected to the watchdog 404.5 and the signal multiplexer 404.7 as an example.
  • the watchdog 404.5 monitors the quantum random number RN at the output 411 of the entropy extraction 404.4.
  • the watchdog 404.5 detects at least three defined error cases as proposed.
  • the watchdog 404.5 passes valid quantum random bits 411 to the optional additional linear feedback shift register 404.6, for example, while generating a seed value S 412.
  • the watchdog 404.5 preferably prevents the use of these valid quantum random bits by the finite state machine 404.8. If an error occurs, the watchdog 404.5 sets error bits in an unmarked error register ER of the processor 404.11.
  • the watchdog 404.5 sets in the error register of the processor 404.11 preferably depends on the respective error case that the watchdog 404.5 detects.
  • the watchdog 404.5 is connected to a voltage monitor 413 via one or more, preferably digital input/output signal lines 414 in the example in Figure 9.
  • the watchdog circuit 404.5 preferably monitors the voltage values that the voltage monitor 413 determines. It has proven useful if the voltage monitor 413 not only determines and monitors the voltages in the quantum random number generator 28, but also other voltages within the respective application circuit.
  • the voltage monitor 413 can be the aforementioned analog-to-digital converter.
  • the voltage monitor 413 preferably monitors the operating voltages of the entropy source 401 and/or other voltages that voltage converters generate within the application circuit. If, for example, one of the operating voltages of a photon source 54 and/or a silicon LED 54 and/or a first SPAD diode 54 and/or a photon detector 55 and/or a second SPAD diode 55 is too low, i.e. the voltage value is below a lower operating voltage threshold for these components, or too high, i.e. the voltage value is above an upper operating voltage threshold for these components, the voltage monitor 413 detects this voltage deviation and reports it to the watchdog 404.5 and/or the processor 10-1, 404.11.
  • the processor 404.11 can read the values of the voltage monitor 413 via the internal data bus 419 of the control device 4 of the integrated circuit 2, for example the microcontroller.
  • the voltage monitor 413 signals such a deviation to the watchdog 404.5 or directly to the processor 404.11.
  • the watchdog 404.5 can, for example, generate an interrupt signal 420 for the processor 404.11.
  • the watchdog 404.5 can, for example, trigger such an interrupt 420 of the microcontroller 404.11 or another sub-device of an application system if the supply voltage of the entropy source 401 or the high-frequency amplifier 402 or another device part of the quantum random number generator QRNG 28 and/or the integrated circuit 2, for example the microcontroller, and/or the application device is faulty. If the watchdog 404.5 has detected a fault in the quantum random number generator 28, it preferably causes the quantum random number generator 28 to switch to an emergency running state.
  • the watchdog 404.5 preferably sets the selection signal 416 of a signal multiplexer 404.7, so that the signal multiplexer 404.7 applies the pseudorandom number PRN of the optional additional linear feedback shift register 404.6 in the form of a stream of pseudorandom bits via a pseudorandom signal line 417 to the input of the finite state machine 404.8 instead of the output 411 of the entropy extraction 404.4 as a replacement for the at least potentially erroneous random number RN of the output 411 of the entropy extraction 404.4.
  • the optional additional linear feedback shift register 404.6 is connected in the example of Figure 9 to the output Seed S 412 of the watchdog 404.5.
  • the watchdog 404.5 activates the optional additional linear feedback shift register 404.6.
  • the optional additional linear feedback shift register 404.6 then generates pseudorandom numbers PRN as a pseudorandom number generator PRNG.
  • the seed S 412 preferably has the last quantum random bits that are still valid.
  • the watchdog 404.5 preferably applies these last valid quantum random bits 411 to the input of the optional additional linear feedback shift register 404.6.
  • the seed S thus serves as a random PQC secure starting value for the generator polynomial of the feedback of the optional, further linear feedback shift register 404.6 for the generation of the pseudorandom number PRN and its signaling via the pseudorandom signal line 417.
  • the generator polynomial and the degree of the generator polynomial are preferably freely selectable.
  • the signal of the output 411 of the entropy extraction 404.4 with the 1 bit random number RN of the entropy extraction 404.4 or the signal of the pseudorandom signal line 417 with the pseudorandom number PRN of the linear feedback shift register 404.6 are connected to the inputs of the signal multiplexer 404.7.
  • the signal multiplexer 404.7 forwards one of the two inputs to the finite state machine 404.8 depending on the value of the selection signal 416 SEL. It is of course conceivable to use a multiplexer with more than two inputs and a more complex control signal if the application requires it.
  • the number of inputs of the signal multiplexer 404.7 is therefore typically greater than or equal to two.
  • 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 evaluation device 404 within the control device 4. If the writing process is successful, the finite state machine 404.8 sets the finish flag 404.10 again.
  • the processor 404.11 can then access the RAM block 404.9, for example by means of a C program that preferably runs on the embedded processor 404.11, and read out the random number and use it, for example, for encryption.
  • time-to-pseudo-random number converter 404.3 records the time between two pulses on the output signal 409 of comparator 404.2 as a time value. If a time value at the output 410 of time-to-pseudo-random number converter 404.3 is less than a minimum value, it is a value that lies within the dead time of the second SPAD diodes 55. When such a value occurs, evaluation device 404 preferably discards the generated pseudo-random numbers and preferably increases the error counter by the first error step size, which can also be negative. In this case, entropy extraction 404.4 waits for the next random number to be determined by time-to-pseudo-random number converter 404.3. Once the random bit has been extracted in this way, quantum random number generator 28 starts the process from the beginning.
  • 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.
  • the processor 404.11 can also use the analog-to-digital converter 403 to record voltages and currents in the quantum random number generator 28 and/or within the control device 4 of the integrated circuit of a microcontroller and/or within the integrated circuit 2, for example the microcontroller, for test purposes and compare the values thus determined with expected value ranges in which these values must lie.
  • the processor 404.11 can also record digital values within the quantum random number generator 28 and/or within the control device 4 of the integrated circuit of a microcontroller and/or within the integrated circuit 2, for example the microcontroller.
  • the processor 404.11 can set the constant Const 404.1 so low for test purposes that the noise floor essentially controls the time-to-pseudo-random number converter 404.3.
  • the processor 404.11 preferably sets an operating state of the time-to-pseudo-random number converter 404.3 in which the time-to-random number converter 404.3 restarts with the last seed value after generating a pseudo-random number.
  • the values of the time-to-pseudo-random number converter 404.3 should then satisfy an expected statistic within a tolerance band. If this is not the case, an error is present.
  • the processor 404.11 can create this statistic and, if necessary, conclude that this error exists if the statistical values determined do not lie within an expected value interval.
  • the watchdog 404.5 can monitor the entropy of the quantum random bits 411 provided. If the average entropy of the quantum random bits 411 deviates from the expected random mean value of 50% by significantly more than an allowed entropy deviation value over an entropy measurement period, the watchdog 404.5 preferably concludes that there is an error in the quantum random number generator 28 and preferably increments the error counter by the said error counter step size. The watchdog 404.5 then preferably stops the use of these quantum random bits of the output 411 of the entropy extraction 404.4 in order to prevent the device from sending plain text over the data bus.
  • plain text means that the data sent and/or stored is in a form that allows a third party to gain unauthorized access to the content of a data message and/or stored data and/or program code directly and/or by applying statistical or other methods. It is conceivable that a virtual permanent one or a virtual permanent zero is generated randomly even in functioning sub-devices. Randomness also includes the permanent zero and the permanent one. It is therefore sensible if the maximum length of a bit sequence without changing the logical state at the output 411 of the entropy extraction 404.4 is limited by the watchdog 404.5 to a value that can be programmed by the processor 404.11.
  • the quantum random number generator 28 described above can thus detect the following errors and, by means of an emergency run using an optional, additional pseudorandom number generator,
  • the multiplexer 404.7 is used instead of the signal of the optional additional pseudorandom signal line 417 for the emergency operation of the quantum random number generator 28.
  • the output of the optional, additional pseudorandom number generator 404.6 depends on one or more real quantum random bits 411 as seed 412, it is again a quantum random number as long as the number of inserted bits is limited.
  • the watchdog 405.5 determines the number q of the permitted, maximum consecutive quantum random bits 411 by means of a quantum random number. If this quantum random number, which the watchdog 404.5 uses to determine q, only includes quantum random bits 411 with a single logical value, there is a possibility that an error is present. The number q should then not be maximum in order to avoid sending or storing plain text. Rather, the watchdog 404.5 should then choose the number q very small, preferably minimal.
  • Fig. 10 shows the flow chart 500 of the entropy extraction method, which, for example, carries out the entropy extraction 404.4.
  • the method provides for determining two values of the output 410 of the time-to-pseudo-random number converter 404.3 in a first step 501 and storing them in a shift register of the entropy extraction 404.4. If two values are stored in the shift register of the entropy extraction 404.4, the entropy extraction 404.4 compares these two values in a second step 502. The two values in the shift register of the entropy extraction
  • the entropy extraction 404.4 thus comprise a first value and a second value, both of which the time-to-pseudo-random number converter 404.3 has determined by means of two different pseudo-random number determinations depending on the respective time period between two signal pulses of the output signal 409 of the comparator 404.2.
  • the entropy extraction 404.4 evaluates the two values. If the first value is smaller than the second value and the difference between value 1 and value 2 is greater than a minimum difference e, the entropy extraction sets
  • the entropy extraction 404.4 sets the value of its output 411 to a first logical value. If the first value is greater than the second value and the difference between the first value and the second value is greater than the minimum difference e, the entropy extraction 404.4 sets its output to a second logical value that is different from the first logical value. If the difference between the first value and the second value is smaller than the minimum difference e, the entropy extraction discards the first value and the second value. In such a case, the entropy extraction preferably causes the watchdog 404.5 to increase an error counter by a first error counter step size.
  • the first error counter step size can be negative.
  • the entropy extraction 404.4 can Decrement the error counter of the watchdog 404.5 by a second error counter step size if the difference between the first value and the second value is greater than the minimum difference e.
  • the second error counter step size can be equal to the first error counter step size.
  • the signs of the first error counter step size and the second error counter step size are the same.
  • the processor 404.11 can set the error counter step sizes and the start value of the error counter and an error counter threshold value. If the count of the error counter crosses the error counter threshold value, the watchdog 404.5 signals the presence of a critical error state to the processor 404.11, preferably by means of an interrupt 420 or another signaling.
  • the processor 404.11 then typically starts a self-test program to test the various parts of the quantum random number generator 28.
  • the processor 404.11 can preferably, for example, put the analog-to-digital converter 403 into a state in which the processor 404.11 can write test values to an output register of the analog-to-digital converter 403, which the subsequent signal chain then processes like real sample values. Since the test values are known in advance, the processor 404.11 can observe and evaluate the correct reaction of the rest of the system, for example the incrementing of the error counter in the watchdog 404.5.
  • the microcontroller 404.11 can therefore preferably monitor as many memory nodes as possible of the evaluation circuit 404 or the control device 4 and read their logical state.
  • Figure 11 shows an example oscillogram of the voltage signal 404 of the entropy source 401.
  • first spikes 601 occur with a first height and second spikes 602 with a second height.
  • the scatter of the first height of the first spikes 601 and the scatter of the second height of the second spikes 602 are each so small that a clear separation of these events 601, 602 is possible by means of an example cutting level 603 via the selection of the constant 404.1.
  • the cutting level 603 corresponds to the value that the processor location 404.11 sets using the constant 404.1, which is preferably implemented as a register of the processor 404.11.
  • Figure 12 shows the schematic sequence of a server-client communication using a proposed quantum random number generator.
  • a first device such as that in Figure 1, as a server, should communicate in an encrypted manner via a data bus with a second device, such as that in Figure 1, as a client.
  • both the first device and the second device should each comprise a quantum random number generator 28, which the respective first processor 10-1 of the computer Ill
  • the quantum random number generator 28 preferably corresponds in whole or in part to a construction according to one of Figures 5 to 9.
  • the quantum random number generators of the first device and the second device each comprise a quantum random number generator 28, each of which has at least one photon source 54 or a silicon LED 54 or a first SPAD diode 54 and each, for example, an optical waveguide 44, for example in the form of the oxide stack 44 on the semiconductor surface of the semiconductor substrate 49 and preferably at least one photon detector 55 or a second SPAD diode 55 as a receiver.
  • the respective first processors 10-1 of the respective computers (here the exemplary micro-integrated circuit 2) of the respective devices encrypt their mutual communication preferably by means of an RSA encryption method.
  • the exemplary RSA encryption method is known, for example, from RL 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.
  • the prime numbers that the respective first processor 10-1 of the respective computer (here the respective exemplary micro-integrated circuit 2) of the respective device preferably uses to generate the public and private keys are preferably randomly generated by the quantum random number generator 28 QRNG.
  • the communication of the computer (here the exemplary micro-integrated circuit 2) of the server with the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client preferably comprises, firstly, the process "Server Process", which is executed on the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the server, i.e.
  • the first device is started, and secondly the process "Client Process", which is started on the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client, i.e. the second device.
  • the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client typically communicates with the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the server via so-called sockets.
  • sockets are communication points which the respective operating system of the respective computer (here the exemplary micro-integrated circuit 2) provides.
  • the functions required to establish communication preferably come, for example, from the standard C library socket. h.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates a socket descriptor in step 3000.
  • a socket descriptor in the sense of the document presented here is an integer-like file handle that is generated, for example, by the standard C library function socket() of the socket.h library.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server can use this socket descriptor in later function calls that use sockets.
  • 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 step 3010. Binding in the sense of this document means that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server uses the standard C function bind() from the standard C library socket.h to logically link the port and the IP address to the socket descriptor generated in step 3000.
  • a port is a part of the network address that enables the assignment of data packets between server and client programs.
  • an IP address is a network address that makes a participant in a network uniquely identifiable.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server goes into a passive waiting state 3020 and waits for connection requests from a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably calls the standard C function I isten() of the socker.h library for this purpose.
  • the function indicates that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server is ready, that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) can accept connection requests from clients.
  • the first processor 10-1 of the computer creates a queue for incoming connection requests from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client in one of the memories of the computer (here the exemplary micro-integrated circuit 2) or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) or another device part of the computer (here the exemplary micro-integrated circuit 2).
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server detects a connection request from a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client, the first processor 10-1 accepts the connection request.
  • Processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server receives this connection request from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • 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 step 3030.
  • the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server detects a connection request from the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server leaving the listen() function.
  • the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server accepts the connection request preferably by calling the standard C function accept() of the socket.h standard C library.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server preferably extracts the first connection request from the queue of open connection requests for the server and then uses it to establish the connection to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client. If successful, the accept() function returns a socket descriptor of the client to the first processor 10-1 of the computer (here the example micro-integrated circuit 2).
  • a socket descriptor in the sense of this document is an integer similar to a file handle of the standard C library socket.h. This then creates the connection between the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server and 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 exemplary micro-integrated circuit 2) of the server preferably starts a function keyExchangeServer() in a subsequent step 3040.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then executes this function keyExchange() in this step 3040 in order to send the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client its public key.
  • this function keyExchangeServer() is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates quantum random numbers using a quantum random number generator 28 Q.RNG.
  • the quantum random number preferably has a bit width of n.
  • n is a positive integer including zero.
  • This Random numbers of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) of the server serve in the example presented in this document as indices for a look-up table of the first 2n prime numbers.
  • This look-up table is preferably located in one of the memories of the computer (here the exemplary micro-integrated circuit 2) or in a memory of sub-devices 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 then reads the prime number corresponding to this index of the quantum random number of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) from the memory of the computer (here the exemplary micro-integrated circuit 2) of the server. Using these prime numbers, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) server generates both a public and a private key according to the aforementioned RSA encryption method.
  • 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 data interface 64 of the computer (here of the exemplary micro-integrated circuit 2) of the server and the data bus 95 and the data interface 64 of the computer (here of the exemplary micro-integrated circuit 2).
  • 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 data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and the data bus 65 and the data interface 64 of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server.
  • this message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client includes a public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client typically transmits the private key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client via the data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and the data bus 95 and the data interface 64 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 server.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server has received the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server stores this public key in a memory 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 then sends, for example, its public key via its data bus interface 64 and the data bus 65 and the data bus interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • the server is typically prepared 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.
  • 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.
  • 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 computer (here the exemplary micro-integrated circuit 2) of the client from step 3030 of the method.
  • the recv() function which the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server typically executes, typically stores the received data in the temporary cache of the computer (here the exemplary micro-integrated circuit 2) of the
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably executes the function Decrypt() 3060 in a further step 3060.
  • This function Decrypt() is not a standard C function.
  • the function DecryptQ decrypts the message of the server's private key from step 3040, which is temporarily stored in the memory of the computer (here the exemplary micro-integrated circuit 2), in accordance with the RSA method.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server decrypts the received encrypted message from the client using the private key from step 3040 temporarily stored in the memory of the computer (here the exemplary micro-integrated circuit 2) according to the RSA method.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably stores the then decrypted message in a temporary 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 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.
  • 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 further step 3070.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server encrypts in this step 3070 in in this case, the server encrypts its own message using the client's public key from 3040 according to the RSA method.
  • This Encrypt() function is not a standard C function.
  • the server stores its now encrypted message in a temporary buffer on the server's computer (here the example micro-integrated circuit 2).
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server now executes the send() function in a step 3080.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server sends its encrypted message stored in the buffer of the computer (here the exemplary micro-integrated circuit 2) 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 the data bus 65 and via the data interface 64 of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2).
  • the send() function is a standard C function from the standard C library socket.h.
  • the send() function sends data via a socket descriptor, in this case the client's socket descriptor from step 3030.
  • the typical cycle ends when the transfer ends.
  • 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 step 3040.
  • the first processor 10-1 of the computer executes the function close() 3090.
  • the close() function is a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client executes a 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 step 3100.
  • a socket descriptor in the sense of this document is again an integer similar to a file handle, for example the standard C library function socket() of the socket.h library, which the first Processor 10-1 of the client's computer (here, the exemplary micro-integrated circuit 2) can use in subsequent function calls that use sockets.
  • the first processor 10-1 of the client's computer (here, the exemplary micro-integrated circuit 2) makes a connection request to the first processor 10-1 of the server's computer (here, the exemplary micro-integrated circuit 2) using the port and IP address specified in step 3010.
  • 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 step 3010 and the client socket from step 3100.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server in accordance with step 3030)
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client executes the function KeyExchangeClient() in a step 3120.
  • This function is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client generates one or more QRNG quantum random numbers using the quantum random number generator 28.
  • This quantum random number has a bit width n.
  • n is a positive integer including zero.
  • random numbers of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) of the client preferably serve as indices for a look-up table of the first 2 n prime numbers.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client uses these prime numbers or other prime numbers to generate both a public and a private key according to RSA encryption (ANGANG).
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client stores its public key generated in this way and its private key generated in this way preferably in a memory of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then sends its public key to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server via the data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and via the data bus 65 and via the data interface 54 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 client then waits for a message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server.
  • This message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server typically contains the public key of the first processor 10-1 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 client then executes the EncryptQ function 3130.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client encrypts its 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.
  • This function is not a standard C function.
  • the client saves the encrypted message in a temporary buffer.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client now executes the send() function in step 3140 and sends its encrypted message to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server.
  • the send() function is a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client sends data via a socket descriptor, in this case the client's socket descriptor from 3100.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then executes the function recv() 3150.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client waits in step 3150 for an encrypted message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server. If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client receives a message, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client stores this received and typically encrypted message in a temporary buffer.
  • the function recv() is preferably a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client reads incoming data 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, by executing the function recv().
  • the first processor 10-1 of the The client's computer (here the exemplary micro-integrated circuit 2) preferably stores the read data in a temporary buffer of the client's computer (here the exemplary micro-integrated circuit 2).
  • 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 DecryptQ in a step 3160.
  • This function DeCryptQ is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client decrypts an encrypted message of 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 executing the function Decrypt() 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 using the RSA method.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then stores the message decrypted in this way in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • 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 step 3120.
  • the first processor 10-1 of the computer executes the close() function in step 3170.
  • the close() function is a standard C function of the standard C library socket.h.
  • FIG. 13 shows the schematic flow of the functions KeyExchangeServer() and KeyExchangeClient().
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server 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 step 3200.
  • This KeyExchangeServer() function is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then calls the setE() function in step 3210.
  • This setE() function in step 3210 is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates a number e that is coprime to phi, where the number phi is the number from step 3200.
  • Coprime in the sense of this 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 first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then executes the findD() function in step 3220.
  • This findD() function is not a standard C function.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server calls the function recv() in step 3230.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server now waits for an incoming message from the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client, which should typically include the client's public key.
  • the function recv() is a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server reads the incoming data from a socket descriptor, in this case the socket descriptor of the client.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably stores the read data in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2).
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server calls the send() function in step 3240.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server sends its public key (d,n) from steps 3200 and 3220 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • the send() function is a standard C function of the standard C library socket. i.e. the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server uses the send() function to send data via a socket descriptor, in this case the client's socket descriptor from step 3030.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server leaves the function KeyExchangeServer() in step 3245.
  • the first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client When starting the KeyExchangeClient() function, the first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client first calls the setPrimes() function in step 3250. This function is not a standard C function.
  • the first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client uses the KexExchangeClient() function to generate the prime number p and the prime number q that is different from q.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then calls the function setE() in step 3260.
  • This function is not a standard C function.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client uses the function setE() to generate an integer e that is coprime to the number phi from step 3250.
  • Coprime in the sense of this 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.
  • 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 computer (here the example micro-integrated circuit 2) of the client calls the send() function 3280 and sends its public key (d,n) from steps 3250 and 3270 to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server.
  • the send() function is a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client uses the send() function to send data via a socket descriptor, in this case the client's socket descriptor from step 3100.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client calls the function recv() in step 3290.
  • the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client now waits for an incoming message from the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server with the public key of the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server.
  • the function recv() is a standard C function of the standard C library socket.h.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client reads 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, using the recv() function and stores the data in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client leaves the function KeyExchangeClient() in step 3295.
  • FIG. 14 shows a schematic flow of the function setPrimes().
  • 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, a quantum random number using a quantum random number generator QRNG 28 in step 3300.
  • This quantum random number has a bit width n.
  • n is a positive integer including zero.
  • these quantum random numbers serve as indices for a look-up table of the first 2 n prime numbers.
  • the calling first processor 10-1 stores the prime number, which is indexed by the quantum random number, as a variable p.
  • the calling first processor 10-1 then generates another quantum random number in step 3310 with the preferred bit width n using the quantum random number generator 28 QRNG.
  • These quantum random numbers preferably serve the calling first processor 10-1 again as indices for a look-up table of the first 2 n prime numbers.
  • the calling first processor 10-1 stores the prime number, which is indexed by the random number, as a variable q in a buffer of the computer (here the exemplary micro-integrated circuit 2), of which the first processor 10-1 is preferably a part.
  • the calling processor 10-1 then exits the setPrimes() function in step 3350.
  • Figure 15 shows the schematic sequence of the setE() function 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 which 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.
  • step 3400 If the logical statement is fulfilled, the calling processor 10-1 repeats step 3400.
  • 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.
  • Figure 16 shows the schematic flow of the findD() function.
  • the calling processor 10-1 calls the findD() function in step 3500
  • the calling processor 10-1 initializes a variable d with 0 in step 3500.
  • the calling processor 10-1 adds the number 1 to the number d.
  • step 3530 the calling processor 10-1 leaves the function findD() and the calling processor 10-1 returns the current value of d 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.
  • Figure 17 shows the schematic sequence of a secure transmission of quantum-based random numbers between a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a server 3600 and a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client 3610.
  • the server 3600 is a first processor 10-1 of a computer (here the exemplary micro-integrated circuit 2), wherein the computer (here the exemplary micro-integrated circuit 2) of this server 3600 has a quantum random number generator 28 Q.RNG.
  • the client 3610 is another first processor 10-1 of a computer 2, wherein this computer (here the exemplary micro-integrated circuit 2) of the client 3610 should NOT have a quantum random number generator 28 Q.RNG.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 generates quantum random numbers QZ1.
  • the quantum random numbers QZ1 serve the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 as a basis for generating a private and a public key of the server 3600 according to an asymmetric encryption method.
  • the asymmetric encryption method can, for example, be the RSA method.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 sends the public key of the server 3600 via a non-tap-proof channel to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 then generates a pseudo-random number PZ or a random number generated in another way.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 stores the pseudo-random number PZ or the random number generated in another way in a memory of the computer (here the exemplary micro-integrated circuit 2) of the client 3610.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 generates a first private key of the client 3610 and a first public key of the client 3610 using this pseudo-random number PZ or this random number generated in another way.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 encrypts the first public key of the client 3610 using the public
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 then sends the encrypted first public key of the client 3610 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 now decrypts this message with its first private key.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 now has the first public key of the client 3610 without this being known to third parties.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 then generates a further, second quantum random number QZ2 using the quantum random number generator 28.
  • 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.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 now encrypts the second quantum random number QZ2 with the first public key of the client 3610.
  • the first public key of the client 3610 can be the client's.
  • 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'.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 then preferably sends 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 in a step 3640.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 decrypts the encrypted second quantum random number QZ2' using its first private key to form the second quantum random number QZ2. 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 the client 3610 can decrypt the encrypted second quantum random number QZ2' with the random number PZ known to it, for example by bitwise XORing the encrypted second quantum random number QZ2' with the random number PZ known to it to form the second quantum random number QZ2.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 uses the second quantum random number QZ2 that it now has as a 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 the client 3610 now sends its second public key to the server 3600 via the non-tap-proof channel. In doing so, it preferably encrypts this second public key of the client 3610 with the public key of the server 3600.
  • the server 3600 decrypts the encrypted second public key of the client 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 the client 3610.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 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 the Clients 3610 generate a new public key based on a new quantum random number from its quantum random number generator 28 QRNG encrypted with the second public key of the client 3610.
  • the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 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 process again so that the keys change permanently. This also makes it impossible for a quantum computer to break the keys.
  • Figure 18 shows schematically the proposed method 3700 for generating a quantum random number.
  • the method 3700 begins with the generation 3710 of a random single photon stream (57, 58, 59, 44) by means of one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes (54), which are preferably manufactured in one piece in a semiconductor material 49.
  • the method 3700 continues with the transmission 3720 of the random single photon stream (57, 58, 59, 44), for example by means of an optical waveguide 44 different from the semiconductor substrate (49, 48) or by means of the semiconductor substrate 49 as an optical waveguide or by means of direct irradiation to one or more photon detectors 55 or one or more second SPAD diodes 55.
  • the optical system can comprise a direct optical coupling of these components and/or comprise an optical waveguide 44.
  • the processing 3740 in particular amplifying and/or filtering and/or analog-to-digital converting, of 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, follows.
  • the pulses of the conditioned detection signal generated by coupling the emissions of a photon source 54 or a silicon LED 54 or a first SPAD diode 54 on the one hand and a photon detector 55 or a second SPAD diode 55 on the other hand are optionally separated 3750 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 a corresponding output signal 409, in particular of the comparator 404.2.
  • the analog-to-digital converter 403 can generate the output signal 409 directly if it is a 1-bit analog-to-digital converter 403. In this respect, this step 3750 is optional and is therefore only shown in dashed lines.
  • 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 a photon source 54 or a silicon LED 54 or a first SPAD diode 54 on the one hand and a photon detector 55 or a second SPAD diode 55 on the other hand, as the first value of the output 410 of the time-to-pseudorandom number converter 404.3.
  • bit value of a quantum random bit 411 is then determined 3670 by comparing the value of the first pseudorandom number and the value of the second pseudorandom number.
  • 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 above 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 an interrupt via an interrupt signal 420 or by setting a flag.
  • the processor 10-1 and/or the finite state machine 404.8 control this process of generating a quantum random number.
  • Figure 19 shows another exemplary proposal for a one-piece, monolithic integrated circuit 2, for example a microcontroller.
  • the one voltage converter 91 or the multiple voltage converters 91 generate the necessary internal operating voltages of the integrated circuit 2, for example the microcontroller, from the external supply voltages. Since the entropy source 401 in particular generally requires a higher operating voltage than the supply voltages provided externally, at least one of the voltage converters 91 preferably comprises a charge pump or the like. Typically, such voltage converters 91 here comprise DMOS transistors.
  • An analog input processor 84 acquires one or more external analog signals 89 and prepares them for analog-to-digital conversion.
  • the analog input processor 84 may include one or more amplifiers, filters, analog adders, analog multipliers, logarithmizers, exponentiators, voltage sources, current sources, and/or other analog circuits for adapting, enhancing, or modifying the external analog signals 89.
  • An analog-to-digital converter 85 can then convert the external analog signals 89 thus processed into a data stream of digital samples of the external analog signals 89, for example with a sampling frequency that typically depends on the system clock 2106.
  • a digital signal processor 86 can then convert the digitized and processed external analog signals 89 into digital output signals using circuits that carry out circuit-implemented methods and/or computer-implemented methods.
  • the digital signal processor 86 can also generate new digital output signals.
  • the digital signal processor 86 typically works with the system clock 2106. When generating these two output signal groups, the digital signal processor 86 can use quantum random numbers from the quantum random number generator 28.
  • the digital signal processor 86 is to generate a modulated excitation signal for a sensor, for example, and is to evaluate a response signal from this sensor as an external analog signal 89 after processing and digitization, it is useful in some applications, for example, if the digital signal processor 86 uses such a quantum random number as a spreading code for generating the excitation signal of the sensor and then searches for and detects this spreading code in the external analog signal 89, for example using a synchronous demodulator.
  • the digital-to-analog converter(s) 87 converts the digital output signals of the digital signal processing 86 to internal analog output signals.
  • the analog output processing 88 processes the analog internal output signals into analog output signals 90.
  • the analog output processing 88 can include filters, amplifiers and power amplifiers.
  • the rest circuit 83 brings the integrated circuit 2, for example the microcontroller, into a predefined state.
  • a reset can occur, for example, when the operating voltage is switched on or when the operating voltage drops or when one of the processors 10-1, 10-2 requests such a rest from the reset circuit 83, for example via the data bus 419 or a SW rest signaling line, or when a means for monitoring the correct functioning of the quantum random generator 28 (watchdog 404.5, voltage monitor 2013) detects an error from a predefined set of errors. This enables the system to be restarted.
  • the quantum random number generator 28 preferably has the features presented here. Most preferably, the quantum random number generator 28 comprises a time-to-pseudo-random number generator 404.3.
  • the quantum random number generator 28 comprises means for monitoring the correct functioning of the quantum random number generator 28.
  • Such means can be, for example, a voltage monitor 413 and/or a watchdog 404.5. These means typically generate an interrupt signal 420 in the event of an error and/or a suspected attack.
  • circuit parts of the integrated circuit can also trigger interrupts using additional interrupt lines.
  • An interrupt logic in the processors controls the behavior of the processors 10-1, 10-2.
  • 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.
  • the processors 10-1, 10-2 use quantum random numbers of the quantum random number generator 28. If the means of the quantum random number generator 28 for monitoring the correct functioning of the quantum random number generator 28, for example by means of the interrupt line 420, signal an error in the quantum random number generator 28, the processors 10-1, 10-2 preferably execute other computer-implemented replacement methods instead of these computer-implemented methods or modify parameters of these computer-implemented methods or execute
  • These computer-implemented methods preferably no longer exist at all, at least as long as the error no longer exists.
  • the circuit (block) 24 for deactivating tests 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 integrated circuit 2, for example the microcontroller, to circuit parts and contents of memories of the integrated circuit 2, for example the microcontroller.
  • the deactivation circuit 24 can, for example, allow or prevent the activation of predetermined test modes. This can include, for example, the activation of scan paths and access to memory contents.
  • the processor 10-1, 10-2 can only influence some of the accesses by reconfiguring the deactivation circuit 24.
  • certain circuit and memory areas are not accessible for access after processor activation by a processor 10-1, 10-2. These circuit and memory areas are thus protected against processor activation of the access. It can be provided that no processor activation at all is possible by a processor 10-1, 10-2.
  • the test interface (JTAG interface) 12 can only influence some of the accesses by reconfiguring the deactivation circuit 24.
  • certain circuit and memory areas are not accessible for access after test controller activation by the test interface (JTAG interface) 12. These circuit and memory areas are thus protected against access by test controller activation. It can be provided that no test controller activation at all is possible through the test interface (JTAG interface) 12.
  • Access can be activated, for example, by writing access codes into the second non-volatile, once-programmable memory OTP II 22.
  • the contents of the first, non-volatile and only once programmable memory OTP I 20 can, for example, include critical system parameters (CSPs).
  • CSPs critical system parameters
  • the contents of the second, non-volatile and only once programmable memory OTP II 22 can include, for example, access codes.
  • the first volatile, multi-programmable memory NVM 6 may comprise an EEPROM and/or a flash memory or the like.
  • the memory content of the first volatile, multi-programmable memory programmable memory NVM 6 may, for example, include records 61 and signatures 61.
  • the volatile random access memory RAM 8 may comprise an SRAM and/or a DRAM or the like.
  • the second processor 10-2 is intended to be optional in Figure 19.
  • the bus arbiter 82 regulates the access of the device parts of the exemplary one-piece, monolithic integrated circuit 2, for example the microcontroller, which want to gain active write access to the internal data bus 419.
  • these are the two processors 10-1, 10-2.
  • Figure 20 shows a device similar to the device of Figures 8 and 9.
  • the quantum random number generator 28 in Figure 20 does not comprise a high frequency amplifier 402 and an analog-digital converter (ADC) 403 with a width of 14 bits and a comparator 404.1 and a constant 404.1.
  • ADC analog-digital converter
  • the device of Figure 20 is suitable for forming a quantum random number generator 28 in which the photon source 54 and the Photon detector 55 are electrically connected in series. In this case, the stimulated emissions can no longer be distinguished from the dark count.
  • pulses on the voltage signal 405 of the entropy source 401 are usually shorter than the frequency of the system clock 2106. This means that a direct sampling of the voltage signal 405 of the entropy source 401 with a sampling frequency equal to the frequency of the system clock 2106 no longer satisfies the Nyquist condition.
  • the exemplary 1-bit analog-digital converter (ADC) 403 is followed by a pulse extension circuit 2023 which extends a pulse on the voltage signal 405 of the entropy source 401 to a time length greater than one clock period of the system clock 2106 and preferably ends the generated pulse synchronously with the system clock 2106, so that the pulse on the voltage signal 405 of the entropy source 401 can be reliably synchronized by a subsequent flip-flop.
  • the processor 10-1, 10-2 generated in this way can preferably access the registers of the watchdog 404.5, the memory RAM 404.9 or the FIFO 404.9 and the finish flag 404.10 via the internal data bus 419 and read them and, as far as permitted or possible, write them.
  • the finish flag 404.10 preferably signals to the processor 10-1, 10-2 via an interrupt line (not shown) that a new quantum random number is available in the RAM/FIFO 404.9. Reading the contents of the RAM/FIFO preferably clears this finish flag 404.10 again. In order to save energy, it is sensible to switch off device parts of the quantum random number generator 28 when the finish flag 404.10 is set.
  • the processor 10-1, 10-2 can access device parts of the quantum random number generator 28 via the data bus 419 and switch certain parts of the quantum random number generator 28 on and off by setting or deleting flags in the registers of these device parts.
  • These device parts can be, for example: the voltage monitor 419, a voltage converter 91 of the quantum random number generator 28, in particular a charge pump for supplying the entropy source 401, the ADC 403, the pulse extension circuit 2023, the time-to-pseudo-random number converter (TPRC) 404.3, the entropy extraction 404.4, the finite state machine 404.8.
  • the watchdog 404.5 evaluates these register bits and checks whether an enable register inside it has a permissible authentication code for these switches on or off.
  • the finite state machine 404.8 preferably also evaluates these flags and preferably only allows the generation of quantum random numbers 418 when all parts of the quantum random number generator 28 are working.
  • Figure 21 shows an example of a time-to-pseudorandom number converter 404.3.
  • the key idea here is to use a pseudorandom number generator 404.3 in the quantum random number generator 28 instead of a digital counter as in the prior art, which generates the first and second values for the entropy extraction 404.4.
  • the document presented here refers to Figure 18 for the corresponding process.
  • the advantage is that even if a disturbance is successfully introduced into the synchronized voltage signal 415, the randomness of the quantum random bit 411 is only marginally disturbed, since the attacker would also have to know the feedback polynomial. However, this is also randomly selected according to the proposal. The same applies to the seed value of the pseudorandom number generator, which the attacker would also have to determine.
  • pseudorandom number generator instead of a counter is the smaller area required for the feedback logic of a simple, primitive feedback polynomial compared to a binary counter. If the linear feedback shift register of the pseudorandom number generator is long enough, a unique pseudorandom number is typically assigned to each clock pulse between two pulses of the voltage signal 405 of the entropy source 401.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 starts the generation of a pseudorandom number by the shift register of the time-to-pseudorandom number converter 404.3 (TPRC) with a first pulse on the voltage signal 405 of the entropy source 401 and ends the generation of the pseudorandom number with a subsequent second pulse on the voltage signal 405 of the entropy source 401.
  • the quantum random number generator 28 changes the feedback polynomial of the linearly feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number m of random quantum bits 411 as a function of one or more previously determined random quantum bits 411.
  • TPRC time-to-pseudorandom number converter 404.3
  • the quantum random number generator 28 changes the shift register length n of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number k of random quantum bits 411 depending on one or more previously determined random bits.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of the feedback polynomial selection register 2112 for this purpose.
  • the value stored in the feedback polynomial preferably controls the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the value stored in the feedback polynomial selection register 2112 preferably selects which feedback polynomial of the m feedback polynomial circuits RKNi to RKN m determines the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this random bit 411 is used for the feedback polynomial selection register 2112. This prevents double use and thus increases security.
  • TPRC time-to-pseudo-random number converter 404.3
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112.
  • TPRC time-to-pseudorandom number converter 404.3
  • the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112.
  • TPRC time-to-pseudorandom number converter 404.3
  • the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112.
  • the quantum random number generator 28 changes the start value (seed value) of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number p of random quantum bits 411 depending on one or more previously determined random bits.
  • seed value the start value of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of a seed reload register in the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) with random bits for this purpose.
  • the bit width of a seed reload register in the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably corresponds to the number n of the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 preferably counts the number of successfully generated quantum random bits 411.
  • the finite state machine 404.8 preferably signals the generation of a valid random bit to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC). Instead of counting the valid quantum random bits 411, it is also possible to count the successfully generated random data words 418 in the finite state machine 404.8.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 preferably loads the new seed value of a seed reload register in the shift register controller 2103 into the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC) in one or more of the following events.
  • the circuit parts of the quantum random number generator 28 are covered with a metal layer 142, 53 in order to ward off any influence by temperature or electromagnetic radiation or electrostatic fields or magnetic fields.
  • the metal layer also comprises a soft magnetic layer to ward off attempts at attack using magnetic fields.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this random bit 411 is used for the seed reload register in the shift register controller 2103 in the time-to-pseudo-random number converter 404.3 (TPRC).
  • TPRC time-to-pseudo-random number converter 404.3
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the seed reload register in the shift register controller 2103.
  • Seed reload register in the shift register controller 2103 selected seed value of the linear feedback shift register of the n shift register bits SBi to SB n is completely random. Since a If the linear feedback shift register has two cycles when using simple primitive feedback polynomials, one of which only includes a shift register value, this one-cycle shift register value must be prevented.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device generates a new random reload value in the seed reload register of the shift register controller 2103.
  • TPRC time-to-pseudorandom number converter 404.3
  • the m feedback polynomials RKNi to RKN m are selected such that the one-cycle seed values are equal. This reduces the effort required to detect the one-cycle shift register value, since this no longer depends on the selected feedback polynomial of the feedback polynomials RKNi to RKN m .
  • the time-to-pseudorandom number converter 404.3 includes a detection circuit 2113 for detecting an illegal value of the state vector of the n shift register bits SBi to SB n when linear feedback shift registers are used.
  • the detector 2113 preferably signals this illegal state to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device.
  • the detector 2113 or the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device then resets the value of the state value of the state vector of the n shift register bits SBi to SB n to a predetermined value and/or the value of the seed reload register in the shift register controller 2103.
  • reload values are preferably different from the one-cycle shift register value. This preferably also occurs when the watchdog 404.5 and/or the voltage monitor 413 detect a fault or a suspected or possible attack.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably counts the number of these faults.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) reduces this counter value again depending on the number of random quantum bits 411 and/or random data words 418 successfully generated, in particular since the last disturbance.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 signals a defect in the quantum random number generator 28 or a successful Attack on the quantum random number generator 28.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 then signals the finite state machine 404.8 that no more random numbers may be generated.
  • a processor (10-1, 10-2) must then reactivate the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) using a predetermined reactivation code word.
  • the processor (10-1, 10-2) then writes this reactivation code word via the internal data bus 419 of the quantum random number generator 28 into a special reactivation register of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which reactivates the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) and the quantum random number generator 28 and preferably resets all error counters.
  • the number of possible reactivations is preferably limited.
  • the quantum random number generator 28 can preferably no longer be reactivated.
  • the counter for the reactivations of the quantum random number generator 28 can preferably be reset by means of a special reset command before this maximum value is reached.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28 or another device of the quantum random number generator 28 issues a warning before reaching this blocking limit.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 first ensures that the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first determines a new seed value based on quantum random numbers 411 and a new value of the feedback polynomial selection register 2112 based on quantum random numbers from quantum random bits 411 by means of a predetermined seed value and a predetermined value of the feedback polynomial selection register 2112.
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 signals the finite state machine 404.8 that it may use and pass on the quantum random bits 411 and the quantum random data words 418 (quantum random numbers).
  • the finite state machine 404.8 preferably signals this fact to one or more processors (10-1, 10-2). This has the advantage that the device only generates quantum random numbers 418 generated with full protection.
  • Attackers can no longer use a deterministic bit stream instead of the data bit stream the quantum random bits 411, even if an attack on the entropy source 401 is actually successful for whatever reason.
  • the quantum random number generator 28 changes this number m after the complete determination of a number m of quantum random bits 411 depending on one or more previously determined random bits.
  • the finite state machine 404.8 of the quantum random number generator 28 does not output these already used quantum random bits 411 and does not use them for generating quantum random data words 418.
  • the logic extraction method also includes three borderline cases, which are described below.
  • the time-to-pseudo-random number generator 404.3 uses the logic value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) as the value of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • TPRC time-to-pseudo-random number generator 404.3
  • a buffer amplifier can be provided which uses the logic value of the
  • Shift register reload value line 2104 of time-to-pseudo-random number converter 404.3 (TPRC) and output as the value of output 410 of time-to-pseudo-random number converter 404.3 (TPRC).
  • the entropy extraction 404.4 now compares two different pseudorandom numbers generated by the time-to-pseudorandom number converter 404.3 (TPRC) from the output 410 of the time-to-pseudorandom number converter 404.3, a first pseudorandom number 410.1 and a second pseudorandom number 410.2.
  • TPRC time-to-pseudorandom number converter 404.3
  • 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.
  • the entropy extraction 404.4 also counts the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are unequal using this counter and decrements the counter by a second counter step size with each such event, preferably not falling below the value 0.
  • the second counter step size is smaller in magnitude than the first counter step size of the counter in the entropy extraction 404.4. If the value of this counter is a exceeds a predetermined value, the control device of the entropy extraction 404.4 assumes a defect in the time-to-pseudorandom number converter 404.3 (TPRC).
  • the control device of the entropy extraction 404.4 then preferably signals a processor (10-1, 10-2) a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28.
  • the entropy extraction 404.4 then preferably no longer signals the finite state machine that a quantum random bit 411 has been successfully generated, so that the finite state machine 404.8 can no longer report successful quantum random number generation to a processor (10-1, 10-2) and no longer generates quantum random numbers 418.
  • the entropy extraction 404.4 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.
  • the entropy extraction 404.4 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.
  • the finite state machine converts the successfully generated quantum random bits 411 into quantum random data words 418, each of which represents a quantum random number, and makes these available to the processors (10-1, 10-2) via a RAM or a FIFO 404.9 via the internal data bus 419.
  • the finite state machine 404.8 preferably signals the provision of one or more quantum random numbers to one or more processors (10-1, 10-2).
  • One problem may be a jitter of the system clock 2106.
  • TPRC time-to-pseudorandom number generator 404.3
  • the behavior of the time-to-pseudo-random number converter 404.2 (TPRC) itself is at a random level of a quantum random number.
  • TPRC time-to-pseudo-random number converter
  • the proposal achieves the objective of providing a one-piece, micro-integrated quantum random number generator 28 that makes it possible to guarantee a high level of entropy so that it at least passes the statistical tests defined by NIST.
  • memories such as DRAMS, SRAMS, flash memories and the like
  • processors microprocessors and/or microcontrollers and/or SoCs by means of a processor on the IC.
  • the proposal achieves the goal of providing a quantum random number generator 28 with a high degree of security against any attempt to manipulate its internal components.
  • the use of a time-to-pseudo-random number generator 1004.3 (TRNG) prevents the evaluation of successful attacks on the entropy source 401.
  • TRNG time-to-pseudo-random number generator 1004.3
  • the proposal also achieves the objective of providing a quantum random number generator 28 which is more economical than the generators of the known state of the art, in particular due to the ability to be co-integrated into CMOS circuits.
  • the diagram shown in Figure 22 represents the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401.
  • the entropy source 401 preferably comprises the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 and the light transmission path 44 between them.
  • the entropy source 401 is preferably manufactured in or on the semiconductor substrate 49 and thus preferably part of the micro-integrated circuit of the quantum random number generator 28.
  • the output signal 405 of the entropy source 401 is typically the said voltage signal 405 of the entropy source 401.
  • the voltage signal 405 of the entropy source 401 is preferably the signal of one or more photon detectors 55 or one or more second SPAD diodes 55 of the entropy source 401.
  • the voltage signal 405 shows exemplary pulses 2201, 2202, 2203, 2104 for random events of the voltage signal 405. These can be spontaneous voltage pulses of the photon detector 55 or the second SPAD diode 55 of the entropy source 401, which are not related to the activity of the photon source 54 or the silicon LED 54 or the first SPAD diode 54 of the entropy source 401.
  • the pulses 2201, 2202, 2203, 2204 of the photon detector 55 or the second SPAD diode 55 of the entropy source 401 can also be based on stimulated emission, which causes the detection of a photon of the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401.
  • the time interval is random. However, after the reception of a photon by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401, a dead time occurs during which the photon detector 55 or the second SPAD diode 55 of the entropy source 401 is no longer able to receive. If the magnitude of the voltage signal 405 of the entropy source 401 exceeds a threshold value 2105, an analog-to-digital converter (ADC, 403), here an exemplary one-bit analog-to-digital converter 403,
  • 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 system clock 2106 of the quantum random number generator 28, which is preferably one of the system clock cycles of the integral microintegrated circuit, on a synchronized voltage signal 415.
  • the pulse extension circuit 2023 is designed, for example, such that it goes to a first logic level for at least three subsequent clock pulses of the system clock 2106 and then falls back to the second logic level until the next event, here for example with the falling edge of the third clock pulse.
  • a to n clock pulses can be used, where a whole positive number is greater than 0.
  • the falling edges of the pulses 2211, 2212, 2213, 2214 of the synchronized voltage signal 415 represent the synchronized signals of the entropy source 401.
  • the time-to-pseudorandom number converter TPRC resets a pseudorandom number generator, for example, to a predefined seed value.
  • the pseudorandom number generator of the time-to-pseudorandom number converter can be a feedback shift register that shifts its values by one place to the left or right depending on the design with each clock pulse of the system clock 2106 and feeds the feedback value of the feedback polynomial back into the bit that becomes free.
  • each clock pulse of the system clock 2106 is bijectively assigned exactly one pseudorandom number of the pseudorandom number generator from the falling edge. This means that the value of the pseudorandom number must be able to be used to determine the temporal position of the relevant clock pulse of the system clock 2106 after the falling edge of the synchronized voltage signal 415.
  • a first pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • TPRC time-to-pseudorandom number converter
  • a second pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • the entropy extraction 401 compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a random bit with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a random bit with a second logical level that is different from the first level.
  • the first pseudorandom number register takes over the previous value of a second pseudorandom number register and the second pseudorandom number register instead takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
  • TPRC time-to-pseudorandom number converter
  • the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, then the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a second logical level that is different from the first level.
  • the quantum random number generator 28 can continue this process of quantum random bit generation and thus generate a continuous stream of quantum random bits 411, albeit with phase noise.
  • Figure 23 shows an example of a voltage converter 91 for supplying the entropy source 411 with a sufficient operating voltage of the supply voltage line V E NT of the entropy source 411 relative to the reference potential line GND at the reference potential.
  • the voltage converter 91 corresponds to that of Figure 20.
  • Figure 23 is a section of Figure 20, with only the most important parts being shown for better clarity.
  • the voltage converter 91 of Figure 23 is only one example of several possible voltage converter designs.
  • the voltage converter is only intended as an example to explain the possible use of DMOS transistors in a proposed quantum random number generator 28 or an integrated circuit 2, for example a microcontroller, with such a quantum random number generator 28.
  • the voltage converter 91 of Figure 23 comprises a first half-bridge.
  • the reference potential line GND and the positive supply voltage line VDD supply the voltage converter to supply the entropy source 411 with a sufficient operating voltage of the supply voltage line V E NT of the entropy source 411 relative to the reference potential line GND at the reference potential with electrical energy.
  • the first half-bridge of the exemplary voltage converter 91 is connected in the example of Figure 23 between the reference potential line GND and the positive supply voltage line VDD.
  • the first half-bridge of the exemplary voltage converter 91 of Figure 23 comprises the high-side transistor 2301 of the first half-bridge of the charge pump for the entropy source 411 and the low-side transistor 2302 of the first half-bridge of the charge pump for the entropy source 411.
  • the second high-side transistor 2303 of the charge pump for the entropy source 411 is electrically connected to the positive supply voltage line VDD.
  • the control device 2330 of the voltage converter 91 controls the high-side transistor 2301 of the first half-bridge via the control contact (gate) 2311 of the high-side transistor 2301 of the first half-bridge.
  • the control device 2330 of the voltage converter 91 controls the low-side transistor 2302 of the first half-bridge via the control contact (gate) 2312 of the low-side transistor 2302 of the first half-bridge.
  • the control contact (gate) 2311 of the second high-side transistor 2303 is electrically connected to the output node 2321 of the charge pump.
  • the high-side transistor 2303 of the second half-bridge forms a MOS diode that becomes conductive when the potential of the output node 2321 of the charge pump falls below the positive potential of the positive supply voltage line VDD minus the threshold voltage of the second high-side transistor 2303.
  • the second high-side transistor 2303 then charges the first energy storage device, here a first capacitor 2306.
  • the first capacitor 2306 is electrically connected to the output node 2321 of the charge pump by its second connection of the first capacitor 2306. In the example of Figure 23, the first capacitor 2306 is electrically connected to the output node 2320 of the first half-bridge of the charge pump by its first connection of the first capacitor 2306.
  • the control device 2330 of the voltage converter 91 initially blocks the high-side transistor 2301 of the first half-bridge and the low-side transistor 2302 of the first half-bridge.
  • a transfer transistor 2305 of the charge pump for the entropy source 411 is connected in the example of Figure 23 between the output node 2321 of the charge pump and the positive supply voltage line VEXT of the entropy source 411.
  • the transfer transistor 2305 of the charge pump for the entropy source 411 is connected as a MOS diode.
  • the transfer transistor 2305 forms a MOS diode that becomes conductive when the potential of the output node 2321 of the charge pump falls below the positive potential of the positive supply voltage line VEXT of the entropy source 411 minus the threshold voltage of the transfer transistor 2305 falls.
  • the transfer transistor 2305 then charges the second energy storage device, here a second capacitor 2307.
  • the second capacitor 2307 is electrically connected to the positive supply voltage line VEXT of the entropy source 411 via its second terminal of the second capacitor 2307.
  • the second capacitor 2307 is electrically connected to the reference potential line GND via its first terminal of the second capacitor 2307.
  • control device 2330 of the voltage converter 91 switches the low-side transistor 2302 of the first half-bridge on for a short time in an initialization phase.
  • control device 2330 of the voltage converter 91 blocks the low-side transistor 2302 of the first half-bridge. This ends the charging process of the first capacitor 2306.
  • the control device 2330 of the voltage converter 91 switches the high-side transistor 2301 of the first half-bridge to conduct. This shifts the output potential of the output 2321 of the charge pump to a potential with a voltage that corresponds to twice the voltage between the positive supply voltage line VDD and the reference potential line GND minus the threshold voltage of the second high-side transistor 2303.
  • the potential of the output 2321 of the charge pump is thus above the potential of the positive supply voltage line VEXT of the entropy source 411 if the second capacitor 2307 is not charged or is only insufficiently charged or has the wrong polarity.
  • the transfer transistor 2305 switches on and connects the output 2321 of the charge pump to the supply voltage line V E XT of the entropy source 411. This causes charge to pass from the first capacitor 2306 to the second capacitor 2307, which increases the potential of the supply voltage line VEXT of the entropy source 411 until the voltage drops across the first capacitor 2306 and the second capacitor 2307 have equalized.
  • the control device 2330 of the voltage converter 91 repeats these steps until no more charge transfer takes place.
  • 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 control device 2330 of the voltage converter 91, until they determine that the potential of the supply voltage line VEXT of the entropy source 411 has fallen below a minimum potential. If this is the case, the processor 10-1 or the voltage monitor 413 preferably restart the charge pump of the voltage converter 91 by means of another signaling to the control device 2330 of the voltage converter 91 and keep it in operation until no significant charge transfer takes place again.
  • the processor 10-1 or the voltage monitor 413 does not detect this state of essentially no longer occurring charge transfer within a predefined period of time after the charge transfer has been restarted, then a defect or a malfunction or an attack is probably present.
  • the processor 10-1 and/or the voltage monitor 413 signal this error.
  • the voltage monitor 413 can signal such an error to the watchdog 404.5 via a signal line 414.
  • the voltage converter 91 and the second capacitor 2307 can thus supply the entropy source 411 with a sufficient operating voltage on the supply voltage line VEXT of the entropy source 411.
  • the first capacitor 2306 and/or the second capacitor 2307 can be manufactured externally of the integrated circuit 2, for example the microcontroller, and connected via terminals of the housing of the integrated circuit 2, for example the microcontroller. This enables very high capacitance values for the first capacitor 2306 and/or the second capacitor 2307 in a cost-effective manner.
  • the first capacitor 2306 and/or the second capacitor 2307 are silicon capacitors.
  • the first capacitor 2306 and/or the second capacitor 2307 can, when integrating the first capacitor 2306 and/or the second capacitor 2307 into the integrated circuit 2, for example into the microcontroller, for example each be a circuit of trench capacitors which are in the Semiconductor substrate 49 of the quantum random number generator 28.
  • the first capacitor 2306 and/or the second capacitor 2307 when integrating the first capacitor 2306 and/or the second capacitor 2307 into the integrated circuit 2, for example into the microcontroller, can each comprise, for example, an interconnection of MIM capacitors that are manufactured in the metallization stack on the semiconductor substrate 49 of the quantum random number generator 28.
  • MIM stands for metal-insulator-metal.
  • An insulation layer of the metallization stack then preferably comprises a high-K material, such as hafnium oxide.
  • an increased voltage is then present at least temporarily between gate 2313 and substrate of the second high-side transistor 2303 and between gate 2315 and substrate of the transfer transistor 2305.
  • These transistors must therefore be particularly voltage-resistant.
  • the second high-side transistor 2303 and/or the transfer transistor 2305 are therefore preferably each designed as a DMOS transistor. It is therefore advantageous to manufacture the integrated circuit 2, for example the microcontroller, or the monolithically integrated quantum random number generator 28 using BCD technology.
  • Figure 24 shows an example of a rough layout of an imaginary integrated circuit 2, for example a microcontroller, with a proposed quantum random generator 28 in plan view.
  • the integrated circuit 2 for example a microcontroller, has an inner region 2405 of the integrated circuit 2 in which the essential subcircuits of the integrated circuit 2, for example the microcontroller, are located.
  • this inner region 2405 of the integrated circuit 2, for example the microcontroller is surrounded by a wiring region 2404 in which supply voltage lines, data bus lines and other lines are typically routed.
  • the wiring area 2404 and the inner area 2405 of the integrated circuit 2, for example the microcontroller, are surrounded by the pad frame 2403, which includes the connection pads (connection areas) 2402 for the electrical bond connections or other electrical connection connections.
  • the document presented here now proposes placing the quantum random number generator 28, as shown for example in Figure 20 by way of example, entirely or at least in substantial parts in the pad frame 2403, since the gaps between the connection pads 2402 are often not filled with electronic circuit parts, but nevertheless have to be processed during production and therefore cause unnecessary costs. This placement of the quantum random number generator 28 entirely or at least in substantial parts in the pad frame 2403 therefore significantly reduces the additional costs for such a quantum random number generator 28.
  • the document presented here proposes, very preferably, to place at least the entropy source 401 in the pad frame between two connection pads 2402.
  • the document presented here also preferably proposes to also place the analog-to-digital converter 403 in the pad frame between two connection pads 2402.
  • the document presented here preferably also proposes to place the voltage converter 91 for the energy supply of the entropy source 401 in the pad frame between two connection pads 2402.
  • the document presented here preferably also proposes to place the pulse extension circuit 2023 in the pad frame between two connection pads 2402.
  • the document presented here preferably also proposes to place other analog parts of the quantum random number generator 28 (eg the amplifier 402) in the pad frame between two connection pads 2402.
  • Figure 25 shows a schematic representation of a first embodiment of a quantum random number generator 28 according to the prior art in plan view.
  • the representation is based on a corresponding figure in EP 3 529 694 B1 and shows the surface O of an associated substrate 49 in which the entropy source 401 is integrated.
  • a circular photon source 54 with a pn junction set up to provide photons is supplied with power via a corresponding contact and is thereby excited to emit individual horizontally propagating photons 58.
  • an associated single photon detector 55 in the form of a SPAD diode 55 is arranged next to the photon source 54.
  • the photon source 54 and the single photon detector 55 are still structurally and functionally separate elements that are simply arranged next to one another for integration in a common semiconductor substrate 49 and in which the transport of the photons 58 through the semiconductor substrate 49 takes place with great attenuation. This results in a low data rate.
  • a current pulse generated by the single photon detector 55 when a photon 58 is absorbed can then first be registered and evaluated in an associated electronic sampling means 25152, in particular to generate a bit sequence based on the number of photons detected in the single photon detector 55.
  • an electronic post-processing means 25154 is provided, which is to be configured to process the binary sequences of the electronic sampling means 55 in such a way that a so-called "whitening" operation is carried out. This is to include a large number of compression operations that serve to improve the statistical properties of the generated binary sequences.
  • the post-processing step is to increase the entropy level of the bit stream of the entropy source 401. However, it must be ensured that the compression operations used do not in turn lead to a fundamental predictability of the generated random numbers by introducing deterministic dependencies in the application.
  • the photonic part, i.e. the entropy source 401, of the Q.RNG on the surface O of the semiconductor substrate 49 is preferably protected by a light-blocking layer 142, 53 ("light inhibitor filter"), which serves to shade against external light incidence.
  • the light-blocking layer 142, 53 can be provided in particular by a metallization layer that can be applied directly during the production process, for example by CMOS technology, as the last metallization level. This is intended to shield the photon detector 55 from external light and to make it sensitive only to those photons that pass through the semiconductor substrate 49 due to crosstalk from the photon source 54.
  • the metallization layer 142, 53 is also intended to improve the optical coupling of the photons 58 emitted by the photon source 54 by reflecting them inwards and thus preventing them from exiting the surface O of the semiconductor substrate 49.
  • the disadvantage of such an arrangement of the optical components next to each other is the distance between the components, which reduces the coupling strength due to the small illumination angle and the potential photon absorption in the various materials.
  • the partially applied light-blocking layer 142, 53 there is still the potential for optical access and thus an attack from the surface O of the substrate 49 or even from the back of the semiconductor substrate 49.
  • This can be used, for example, to specifically inject or extract additional photons, so that ultimately the counting statistics and thus the entropy of the random numbers generated can be influenced and compromised.
  • the illustration also shows that the individual Photons 58 are emitted isotropically distributed in all spatial directions, so that only a fraction of the photons 58 can be detected by the photon detector 55 and thus statistically evaluated.
  • this significantly reduces the efficiency of the random number generation and, on the other hand, leads to a large number of photons 58 being emitted unused into the semiconductor substrate 49, where they may also be extracted elsewhere by observers or attackers or may lead to interference.
  • Figure 26 shows a schematic representation of a second embodiment of an entropy source 401 according to the prior art in a side view.
  • the representation is based on a corresponding figure from Khanmohammadi et al. (A. Khanmohammadi, R. Enne, M. Hofbauer and H. Zimmermann, "A Monolithic Silicon Quantum Random Number Generator Based on Measurement of Photon Detection Time," in IEEE Photonics Journal, vol. 7, no. 5, pp. 1-13, Oct. 2015, Art no. 7500113).
  • the basic structure of a side-by-side arrangement of a photon source 54 (Si-LED), which is set up to emit individual photons 58, and a single-photon detector 55 (SPAD) can be clearly seen.
  • the photon source 54 is provided as a circular central element which is essentially completely surrounded by a correspondingly adapted circular ring-shaped single-photon detector 55.
  • the common radial axis of symmetry R is accordingly located in the center of the entropy source 401 formed in this way.
  • the photon source 54 is realized by an n-well (“n well”) formed in a deep n-well (“deep n well”), which is supplied with power via an n++ region introduced into the surface O of the substrate 49 (“p-substrate”) centrally around the radial axis of symmetry R as cathode 26122 and a p++ region arranged next to it as anode 26124.
  • the single photon detector 55 is also contacted to the surface O via an introduced n++ region as cathode 26132 and a p++ region arranged further away from the radial axis of symmetry R as anode 26134.
  • a p-well (“p well”) is connected below the cathode 26132.
  • a p-well (“p well") is formed in a deep p-well ("deep p well”).
  • the photon source 54 is provided as an element within the structure of the photon detector 55, so that in contrast to Figure 25, these form a structural and functional unit.
  • the photons 58 are emitted essentially from all sides into the semiconductor substrate 49, so that the disadvantages already described for the embodiment according to Figure 25 with regard to security against observers or attackers and reduced efficiency also apply.
  • the specific structure as a circular arrangement and the structural linking of the single photon detector 55 with the photon source 54 means that the integration density can be further increased compared to Figure 25. In addition to a smaller area requirement for forming the entropy source 401, this also includes increased security against attacks and increased efficiency in random number generation or the entropy rate as advantages.
  • Figure 27 shows a schematic representation of a BCD substrate 27110 provided with a method for providing deep p-n junctions 27050 and 27052 in a BCD process and a TCAD representation of the resulting dopant distribution.
  • An embodiment of a method for producing deep p-n junctions 27050 and 27052 in a BCD process comprises providing a carrier substrate 49; introducing a first dopant to form a first region 27022 (e.g. NBL) of the first conductivity type (negative for NBL) into a surface S of the carrier substrate 49; introducing a second dopant to form a second region 27032 (e.g.
  • PBL of the second conduction type (positive for PBL) into the surface S of the carrier substrate 49, wherein the first region 27022 (NBL) and the second region 27032 (PBL) at least partially overlap; growing an epitaxial layer 48 on the surface S of the carrier substrate 49, wherein the first region 27022 (NBL) and the second region 27032 (PBL) spread by diffusion of the first dopant and the second dopant in the epitaxial layer 48 and thereby form a p-n junction 27050 lying in the epitaxial layer 48.
  • the first region 27022 is a deep NBL layer and the second region 27032 is a deep PBL layer.
  • the order can be interchanged, so that the first region 27022 can also be a deep PBL layer and the second region 27032 can be a deep NBL layer.
  • the The layer sequence of the pn junctions 27050 and 27052 can be reversed, e.g. in Figure 27 the NBL and PBL layers at the pn junction 27050 and 27052 could also be swapped.
  • the method described differs from the conventional methods for providing BCD substrates 27110 according to the prior art in particular in that the first region 27022 (NBL) and the second region 27032 (PBL) at least partially overlap.
  • the first region 27022 or the second region 27032 can completely overlap the other region (27032, 27022). Therefore, in the embodiment shown, immediately after the introduction of the second dopant to form the second region 27032 (PBL), the second region 27032 (PBL) lies completely in the first region 27022 (NBL) in a plan view of the surface S of the carrier substrate 49.
  • the first and the second dopant preferably have different diffusion properties in the carrier substrate 49 and/or in the epitaxial layer 48.
  • the second dopant in the second region 27032 (PBL) can have a higher diffusion mobility (and thus diffusion length) in the carrier substrate 49 and in the epitaxial layer 48 than the first dopant in the first region 27022 (NBL).
  • the carrier substrate 49 can be heated after the introduction of the first dopant and/or the second dopant. Furthermore, after the growth of the epitaxial layer 48, the carrier substrate 49 can be heated to increase the dopant diffusion.
  • the first dopant and/or the second dopant can be introduced either maskless or using a mask method.
  • NBL first region 27022
  • PBL second region 27032
  • the first and second regions 27022 and 27032 are formed spatially separated from one another. In particular, their distance is generally chosen to be at least large enough that even after the individual dopants have diffused out, no overlapping regions are created.
  • the TCAD representation (Technology Computer-Aided Design, TCAD) shown below the schematic representation shows the dopant distribution within the contacted BCD substrate 27110 for simulating a corresponding integrated diode structure. Due to the double structure shown in this embodiment with an upper pn junction 27050 in the epitaxial layer 48 and a lower pn junction 27052 in the carrier substrate 49, the side view shown results in an effective constriction of the n-region NBL enclosed in the area of the pn junctions 27050 and 27052 by the two of this n-region NBL surrounding p-regions PBL. Both pn junctions 27050 and 27052 can be designed to provide independent SPADs with a doping density and field strength distribution suitable for generating an avalanche effect.
  • deep-lying SPADs By means of corresponding BCD substrates 27110 for further use in BCD technologies, particularly deep-lying SPADs (“deepSPADs”) can thus be produced. In particular, there is still sufficient installation space above the SPADs provided for the integration of further optoelectronic components.
  • a Zener avLED formed above the deep-lying SPAD can therefore be used in particular to realize a particularly compact, vertically constructed entropy source 401, in which individual photons 58 are emitted by the Zener avLED as photon sources 55 preferably vertically downwards in the direction of the upper p-n junction 27050 and are thus provided for detection by a SPAD formed immediately below the Zener avLED as a photon detector 54 at the upper p-n junction 27050 as a single photon detector 55 (see Figure 28 with associated figure description).
  • FIG 28 shows a schematic representation of an exemplary first embodiment of a proposed vertical entropy source 401.
  • a vertical entropy source 401 is characterized in the sense of the document presented here by a vertical arrangement of the photon source 54 relative to the photon detector 55.
  • the horizontal is defined by the surface O of the semiconductor substrate 48 with the epitaxial layer 48.
  • the connecting line of the centers of gravity of the vertical arrangement of the photon source 54 and the photon detector 55 is thus arranged vertically relative to the surface O of the substrate 49 with the epitaxial layer 48, with vertical here being understood to be a relatively soft angle of more than 30°, optimally 90° of this line relative to the surface O.
  • the monolithically integrated entropy source 401 shown comprises a photon source 54 and a single photon detector 55, wherein the photon source 54 and the single photon detector 55 are arranged vertically one above the other in a common substrate 49 made of a semiconductor material.
  • the photon source 54 is preferably a single photon source (SPS) 54, designed to provide only individual or a few vertical photons 57 at the same time.
  • the photon source 54 is preferably a light-emitting avalanche Zener diode (Zener-avLED) 54 operated at an operating point below or close to the breakdown voltage.
  • the single photon detector 55 is preferably a single photon avalanche diode (second SPAD 55).
  • the entropy source 401 is preferably formed in a BCD substrate 27110 using BCD technology.
  • the BCD substrate 27110 preferably comprises a carrier substrate 49; and an epitaxial layer 48 grown on the carrier substrate 49, wherein a deep pn junction 27050 lying in the epitaxial layer was created between the carrier substrate 49 and the epitaxial layer 48 by diffusion of dopants introduced into a surface S of the carrier substrate 49 below the epitaxial layer 48 (see Figure 27).
  • the single photon detector 55 forms an avalanche region in a region around the deep pn junction 27050 and comprises an absorption region 47/28010 with a high-voltage p-type well 28010 and a p-type well 47 for converting photons into electron-hole pairs, wherein the absorption region 47/28010 is directly adjacent to the regions NBL (27022) and PBL (27032) forming the deep pn junction 27050.
  • the fully developed high-voltage p-type well 28010 enables an optimal connection of the deep pn junction 27050 from the anode.
  • the deep p-n junction 27050 is formed at least partially between a deep n-layer NBL (27022) as a cathode 26132 and a deep p-layer PBL (27032) directly adjoining the deep n-layer NBL (27022), the absorption region 47/28010 directly adjoins the deep p-layer PBL (27032) and is formed essentially as a p-region (optionally comprising an intrinsic region), and an anode 26134 formed as a p+ region directly adjoins the absorption region 47/28010.
  • the respective anodes 26124 and 26134 of the photon source 54 and the single photon detector 55 are combined. These can then be electrically contacted, for example, via a common second metallization 142, 53 on the surface S of the BCD substrate 27110.
  • a common and continuous metallization 142, 53 (here, for example, a second metallization) can also be used to achieve shading to shield the entire installation space below against electromagnetic wave radiation from above.
  • the associated cathodes 26122 and 26132 are each designed individually, for example, and can be electrically contacted via a first associated first metallization 141.
  • the proposed vertical entropy source 401 can be designed as a circular structure (corresponds to a spatial rotation of the representation plane shown around an imaginary central axis in the vertical direction). However, other designs of the structure shown are also possible.
  • Figure 29 shows a schematic representation of an exemplary second embodiment of an entropy source 401 according to the invention.
  • the embodiment shown largely corresponds to the first embodiment shown in FIG. 28.
  • the reference numerals and their respective assignment to individual features therefore apply accordingly.
  • the high-voltage p-well 28010 has been structurally replaced by a tapered high-voltage p-well 28010 and a weakly n-doped or intrinsic epitaxial region 29010.
  • the high-voltage p-well 28010 of the absorption region 47/28010 merely forms a narrow channel between the upper p-well 47, also shown in FIG. 2, and the deep p-layer PBL of the deep p-n junction 27050.
  • the area around the channel is defined by the weakly n-doped or intrinsic epitaxial region 29010.
  • the channel allows the deep p-n junction 27050 to be connected from the anode without an additional punch through the weakly n-doped or intrinsic epitaxial region 29010.
  • Figure 30 shows a schematic representation of an exemplary third embodiment of an entropy source 401 according to the invention.
  • the embodiment shown largely corresponds to the embodiment shown in FIG. 29.
  • the reference numerals and their respective assignment to individual features therefore apply accordingly.
  • the channel-shaped high-voltage p-tub 28010 in the absorption region 47/28010 was omitted and the weakly n-doped or intrinsic epitaxial region 29010 extends over the entire lower region.
  • the high-voltage p-tub 28010 was structurally replaced by a weakly n-doped or intrinsic epitaxial region 29010.
  • the deep p-n junction 27050 is thus only connected after an additional punch through the weakly n-doped or intrinsic epitaxial region 29010 from the anode, which results in a decoupling of possibly several cells arranged next to one another in parallel.
  • Figure 31 shows a graphical representation of the dependence of the SPAD current on the Zener blocking voltage at different SPAD blocking voltages (less than, equal to, greater than the breakdown voltage) within an entropy source 401 according to the invention.
  • the dependence shown clearly shows that the SPAD current increases exponentially with the Zener blocking voltage in the range from 5.6 V to 6.6 V. This applies to all operating modes of the second SPAD 55, ie below its own breakdown voltage ( ⁇ VBD, linear range), close to the breakdown voltage ( ⁇ VBD, avalanche range) as well as above the breakdown voltage (> VBD) and thus also in Geiger operation.
  • Figure 32 shows a graphical representation of the dependence of the SPAD current on the Zener blocking voltage at different SPAD blocking voltages (less than, equal to, greater than the breakdown voltage) within an entropy source 401 according to the invention.
  • the dependence shown clearly shows that the SPAD current increases exponentially with the Zener blocking voltage in the range from 5.6 V to 6.6 V. This applies to all operating modes of the second
  • Figure 32 shows a graphical representation of the dependence of the ratio between SPAD current and Zener current as a function of the Zener blocking voltage at various SPAD blocking voltages (less than, equal to, greater than the breakdown voltage) within an entropy source 401 according to the invention.
  • the lower curve shown ( ⁇ VBD) shows that the measured current ratio between the SPAD current and the Zener current for various Zener blocking voltages in the range 5.8 to 6.6 V is approximately 1:4000.
  • the ratio increases to values of around 1:10. This is due to the so-called multiplication factor of the SPAD diode 55, which leaves the linear range in the breakdown voltage range.
  • the upper curve finally indicates the corresponding ratio for the second SPAD diode 55 operated above the associated breakdown voltage (> VBD) (approximately 1:1). This means that when a second SPAD diode 55 is operated above the associated breakdown voltage (> VBD), the generated photocurrent and the Zener current of the Zener avLED (as photon source 55) are approximately equal and a clear measurement signal can be measured by means of the coupling of photons on the second SPAD 55.
  • control device 4 is part of a microelectronic circuit
  • non-volatile memory internal and/or external EEPROM and/or external non-volatile memory via a data interface
  • JTAG test controller 12 JATG test interface with JTAG test controller 12 and with JTAG test connectors (TDI, TDO, TCK, TM);
  • boot ROM non-volatile boot memory
  • Hashing engine 18 (device for generating a hash from data received from a processor (10-1, 10-2) via the data bus 419.);
  • OTP Programmable Memory
  • OTP Programmable memory
  • controlled system 26 e.g. controlled plant, controlled system
  • Isolation for example shallow trench isolation STI 41 of the exemplary SPAD diode 40 or LOCOS isolation;
  • ITO indium tin oxide
  • optical fiber 44 for transporting the photons from the first SPAD diode 54 to the second SPAD diode 55.
  • the optical fiber 44 is made of a covering oxide
  • first connection region 45 of a first conduction type also referred to as n+ S/D implantation.
  • this can be, for example, an n+-doped region in the semiconducting substrate material of the SPAD diode 54;
  • 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 first SPAD diode 40;
  • CMOS technology with a p-doped wafer material it can be, for example, a p-doped region in the semiconducting substrate material 49. It can be part of a SPAD diode 40, which is used as a photon source 54 or photon detector 55 in a horizontal entropy source 401. In the examples of Figures 28 to 30, it is a p-well of the Zener diode, which serves as a photon source 54 of the vertical entropy source 401;
  • 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;
  • Base material 49 and/or semiconductor substrate 49 of the exemplary semiconducting single-crystal wafer or wafer piece which preferably has a second conduction type.
  • CMOS technology with a p-doped wafer material this is, for example, a p-doped single-crystalline semiconductor wafer or a p-doped single-crystalline semiconductor wafer piece (die);
  • Insulation for example an oxide or the like
  • the first SPAD diode 55 serves at least temporarily as a light source for irradiating the second SPAD diode 45 with photons from the first SPAD diode 54;
  • the second SPAD diode 55 serves, for example, at least temporarily as a photodetector for the light from the first SPAD diode 54.
  • the external data bus can be a wired data connection or a wireless data connection within the meaning of the document presented here;
  • Bus Arbiter 82 Bus Arbiter 82
  • the clock generator 92 preferably generates the system clock 2106.
  • the watchdog 404.5 monitors the system clock 2106 for too low or too high speed and for clock jitter. If the system clock 2106 of the clock generator 92 shows a clock jitter, the watchdog 404.5 reports an error to the processor 10-1 via the data bus 419 or via the interrupt line 420;
  • ADC Analog-to-digital converter
  • the feedback is preferably a simple primitive polynomial to generate pseudorandom bit sequences
  • Voltage signal 415 is generated by the pulse extension circuit 2023 (MF) from the output signal 407 of the analog-to-digital converter 403 in dependence on the system clock 2106;
  • first step 501 with determination of the first value of the output 410 of the time-to-pseudo-random number converter 404.3 and the second value of the output 410 of the time-to-pseudorandom number converter 404.3 and storage in a shift register of the entropy extraction 404.4;
  • Pulse extension circuit 2023 typically in the form of a monoflop MF.
  • the monoflop MF extends a pulse on the line of the digital bit value 407 of the analog-to-digital converter 403 to a temporal length of at least one clock period of the system clock 2106;
  • Shift register controller 2103 of the time-to-pseudo-random number converter 404.3 switches the n shift register bits (SBi to SB n ) from the serial shift register operating mode to the parallel shift register operating mode via the internal data bus 419 by means of a parallel to serial shift register mode switching line 2107, for example at the instigation of a processor (10-1, 10-2), so that the shift register bits (SBi to SB n ) of the shift register use the current logic value of the TPRG 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.
  • TPRC time-to-pseudo-random number converter 404.3
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 activates, for example, at the instigation of a processor (10-1, 10-2) via the internal data bus 419 by means of a parallel to serial shift register mode switching line 2107, the n shift register bits (SBi to SB n ) from the serial shift register operating mode to the serial shift register operating mode, so that the first shift register bit SBi of the n shift register bits (SBi to SB n ) take over the current logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106 and the other shift register bits SBj of the shift register bits (SBi to SB n ) of the shift register take over the respective logical value of their predecessor shift register bit SBy-i; with the next clock of the system clock 2106.
  • One or more processors (10-1, 10-2) can write and/or read one or more registers of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via the internal data bus 419.
  • TPRC time-to-pseudo-random number converter 404.3
  • the processors (10-1, 10-2) can write one or more registers of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via the internal data bus 419 and thus determine the logical value of the TPRG 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 possibly be blocked by an access code in the OPT II memory 22 by means of the deactivation circuit 24.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) generates the logical value of the TPRG data bus 2110 of the time-to-pseudorandom number converter 404.3 (TPRC) from the data stream of the quantum random bits 411 in a special internal register of the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC), which the shift register uses as the next seed value.
  • TPRC time-to-pseudorandom number converter 404.3
  • the detection circuit 2113 detects an illegal value of the state vector of the n shift register bits SBi to SB n , it reports this to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which then takes action.
  • TPRC time-to-pseudo-random number converter 404.3
  • One such typical action is resetting the state vector of the n shift register bits SBi to SB n to a predetermined value, for example the seed value of the current value of the TPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) or another predefined
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 activates or deactivates, preferably via the shift register bit activation bus 2109, the data transfer of the n shift register bits (SBi to SB n ) at the next clock edge of the clock edge direction used, typically bit-selectively.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) generates the logical reload value of the feedback polynomial selection register 2112 from the data stream of the quantum random bits 411 in a special internal register of the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) and loads this reload value into the feedback polynomial selection register 2112.
  • the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 preferably prevents the finite state machine 404.8 from using those quantum bits 411 that the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) has already used;
  • Shift register bit activation bus 2109 with typically n shift register bit activation lines of the respectively associated n shift register bits (SBi to SB n ) for the respective, preferably bit-selective activation of the data transfer of the n shift register bits (SBi 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 (SBi to SB n ) by one or more parallel-to-serial shift register mode switching lines 2107 of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC);
  • TPRC time-to-pseudo-random number converter 404.3
  • TPRC time-to-pseudo-random number converter 404.3
  • bits of the TPRG data bus 2110 of the time-to-pseudorandom number converter 404.3 typically form the starting value (seed) of the time-to-pseudorandom number converter 404.3 (TPRC), which the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) loads into the shift register cells of the shift register bits (SBI to SB n ) via the internal data bus 1901 on the command of a processor (10-1, 10-2);
  • Control register 2111 of the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 loads the control register 2111 of the feedback 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 (RKNi to RKN m ).
  • the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 changes the value of the control register 2111 of the feedback multiplexer 2102 only when a quantum random bit 411 has been successfully generated or when the shift 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 SBi to SB n ;
  • the second high-side transistor 2303 of the second half-bridge of the charge pump for the entropy source 411 is connected as a MOS diode;
  • Transfer transistor 2305 of the charge pump for the entropy source 411 is connected as a MOS diode;
  • first energy storage here in the example of Figure 23 a first capacitor 2306
  • second energy storage here in the example of Figure 23 a second
  • Entropy source 411 with a sufficient operating voltage of the supply voltage line VENT of the entropy source 411 relative to the reference potential line GND at the reference potential.
  • 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 a microintegrated circuit 2;
  • 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 by 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 by means of an RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by means of a quantum random number generator 28 Q.RNG and an RSA method.
  • step 3060 Decrypting the message of the private key from step 3040 stored temporarily in a memory of the computer (here the exemplary micro-integrated circuit 2) according to the RSA method
  • 3160 Decryption of 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 DecryptQ 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 subsequent storage of 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 example microintegrated circuit 2) of the client;
  • 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;
  • 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 public key of the client, 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 socket descriptor of the client, 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;
  • 3260 Generate 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 by means of the function setE(), where coprime in the sense of this 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;
  • the computer (here the exemplary micro-integrated circuit 2) of the client from steps 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 from step 3100, using the send() function;
  • 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 of 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 exemplary micro-integrated circuit 2) the client;

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)
  • Semiconductor Integrated Circuits (AREA)
  • Light Receiving Elements (AREA)

Abstract

The quantum process-based generator (28) for real random numbers (411, 418) has an entropy source (401), and the quantum process-based generator (28) for real random numbers (411, 418) evaluates a signal (405) of the entropy source (401) using a time-to-pseudo random number converter (TPRC) (404.3) and generates one or more random bits (411) and optionally random numbers (418).

Description

QRNG mit PRNG Nutzung und vertikaler EntropiequelleQRNG with PRNG usage and vertical entropy source
Prioritäten Priorities
Diese Patentanmeldung nimmt die Prioritäten der deutschen Patentanmeldung This patent application takes the priorities of the German patent application
DE 10 2022 125574.3 vom 04.10.2022 und der deutschen Patentanmeldung DE 10 2023 126 115.0 vom 26.09.2023 und der deutschen Patentanmeldung DE 10 2023 125543.6 vom 20.09.2023 in Anspruch. DE 10 2022 125574.3 of October 4, 2022 and the German patent application DE 10 2023 126 115.0 of September 26, 2023 and the German patent application DE 10 2023 125543.6 of September 20, 2023.
Feld der Erfindung Field 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 Erfindung Background of the invention
Die Automobilindustrie und andere Industrien sehen sich zunehmend verschiedenstenThe automotive industry and other industries are increasingly facing a variety of
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. Exposed to 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. Es ist bekannt, dass Zufallszahlengeneratoren derzeit in vielen Anwendungen eingesetzt werden, die von der Wissenschaft bis hin zur Kryptographie reichen. 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. 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 EP 3 529 694 Bl bekannt, bei der die zeitliche Dauer zwischen Pulsen einer Entropiequelle aus zwei SPAD-Dioden verwendet wird. Nachteil der technischen Lehre der EP 3 529 694 Bl ist die geringe Quanteneffizienz bei der Übertragung der Photonen von der als Silizium arbeitenden ersten SPAD-Diode auf die als Fotodiode arbeitende zweite SPAD-Diode. Das hier vorgelegte Dokument zitiert daher abschnittsweise Ausführungen der Autoren und Erfinder in der EP 3 529 694 Bl. Das hier vorgelegte Dokument nutzt die technische Lehre der EP 3 529 694 Bl und baut auf die technische Lehre der The technical teaching of EP 3 529 694 Bl is known in particular from the prior art, in which the time duration between pulses of an entropy source consisting of two SPAD diodes is used. The disadvantage of the technical teaching of EP 3 529 694 Bl is the low quantum efficiency in the transfer of photons from the first SPAD diode, which operates as silicon, to the second SPAD diode, which operates as a photodiode. The document presented here therefore quotes sections of statements by the authors and inventors in EP 3 529 694 Bl. The document presented here uses the technical teaching of EP 3 529 694 Bl and builds on the technical teaching of
WO 2023 072 956 Al, deren technische Lehre das hier vorgelegte Dokument im Zusammenhang mit der Lösung des Problems wiederholt. WO 2023 072 956 Al, the technical teaching of which is repeated in the document presented here in connection with the solution of the problem.
„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 Pseudo- Zufallszahlengeneratoren (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. In the second case, however, i.e. when random numbers are used in cryptography techniques to perform banking operations, for example, the approach described above seems weak, since it is necessary to ensure that the sequences generated are absolutely unpredictable in order to guarantee the security of highly sensitive information. In this case, the safest approach is to generate 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).
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 particular, quantum mechanisms, such as the generation of photons by a light source, are among the best studied methods for obtaining the said sequences of real 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 by 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 makes it possible to ensure 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 X), 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 exploited for the generation of 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 X) 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 Converter) 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 Vorrichtungen 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 WO 2016016741 Al. 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. Having said the above, it should be noted that several types of random number generators based on the QRNG concept are available on the market. These generators cover a wide range of applications, from portable USB devices that deliver only a few hundred kbit/s to large electronic systems that can guarantee a bit rate of hundreds of Mbit/s. Moreover, in the existing literature on the subject, several logics and architectures have been proposed that are designed to determine sequences of truly random numbers starting from a physical phenomenon, in particular from photon detection. Most of them record the "arrival time" or the number of photons that hit the sensitive surface of the SPAD detector(s). An example of a well-known quantum random number generator based on the arrival time can be found in the international publication WO 2016016741 Al. 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."
In vielen Bereichen von Wissenschaft und Technik spielen zufällige Ereignisse und die Bestimmung von Wahrscheinlichkeiten eine besonders herausragende Rolle. Beispielsweise basieren Monte- Carlo-Simulationen und sichere Verschlüsselungsverfahren in hohem Maße auf der Bereitstellung von Zufallszahlen. Man unterscheidet dabei im Allgemeinen zwischen den sogenannten Pseudo- Zufallszahlen und echten Zufallszahlen. Während erstere mittels deterministischer Formeln durch Pseudo-Zufallszahlengeneratoren (engl. „Pseudo Random Number Generators, PRNGs") erzeugt werden, also nicht absolut zufällig sind, basieren nicht-deterministische Zufallszahlengeneratoren zur Bereitstellung echter Zufallszahlen (engl. „True Random Number Generators, TRNGs") im Allgemeinen auf real unvorhersehbaren Prozessen wie einem thermischen oder atmosphärischen Rauschen und nicht auf künstlich generierten Mustern deterministischer Algorithmen. Allerdings können auch die Ergebnisse von solchen auf äußeren Parametern basierenden nichtdeterministischen Zufallszahlen-generatoren abhängig vom zugrundeliegenden Zufallselement aufgrund von schwachen Korrelationen beispielsweise noch immer geringfügig zu höheren oder zu geraden Zahlen tendieren und somit zumindest eine teilweise Vorhersagbarkeit der so generierten Zufallszahlen ermöglichen. In many areas of science and technology, random events and the determination of probabilities play a particularly prominent role. For example, Monte Carlo simulations and secure encryption methods are based to a large extent on the provision of random numbers. A distinction is generally made between so-called pseudo-random numbers and true random numbers. While the former are generated using deterministic formulas by pseudo-random number generators (PRNGs), and are therefore not absolutely random, non-deterministic random number generators for the provision of true random numbers (TRNGs) are generally based on real, unpredictable processes such as thermal or atmospheric noise, and not on artificially generated patterns of deterministic algorithms. However, the results of such non-deterministic random number generators based on external parameters can, depending on the underlying random element, still tend slightly towards higher or even numbers due to weak correlations, for example, and thus enable at least a partial predictability of the random numbers generated in this way.
Die sogenannten Quanten-Zufallszahlengeneratoren (engl. „Quantum Random Number Generators, QRNGs") als spezielle Untergruppe der TRNGs hingegen basieren auf fundamentalen Quantenprozessen zur Zufallszahlenerzeugung und sind daher zumindest theoretisch nicht an andere die Statistik beeinflussende äußere Faktoren und Effekte gekoppelt. Quanten-Zufallsgeneratoren stellen somit die z. Z. beste verfügbare Quelle für echte Zufallszahlen dar. Aktuelle digitale QNRGs können dabei Entropieraten (d. h. eine Folge von Bitwerten mit maximaler Zufälligkeit bzw. Entropie) von bis zu einigen hundert Mbps liefern. Die erzeugten Zufallszahlen werden sowohl bei klassischen Verschlüsselungs-verfahren als auch bei einer Vielzahl von Verfahren der Quanteninformatik und Quantenkryptografie zur Gewährleistung eines sicheren Schlüsselaustauschs benötigt (engl. „Secure/Quantum Key Distribution, SKD/QKD"). Zur Generierung sicherer Schlüssel in der Kryptographie sind daher nicht-manipulierbare und schnelle QRNGs unbedingt erforderlich. The so-called quantum random number generators (QRNGs), as a special subgroup of TRNGs, are based on fundamental quantum processes for generating random numbers and are therefore, at least theoretically, not linked to other external factors and effects that influence the statistics. Quantum random number generators are therefore currently the best available source for true random numbers. Current digital QNRGs can deliver entropy rates (i.e. a sequence of bit values with maximum randomness or entropy) of up to several hundred Mbps. The random numbers generated are required in both classical encryption methods and in a variety of quantum computing and quantum cryptography methods to ensure secure key exchange ("Secure/Quantum Key Distribution, SKD/QKD"). Non-manipulable and fast QRNGs are therefore essential for generating secure keys in cryptography.
Eine Vielzahl von QRNGs wird aufgrund von deren besonders einfacher Realisierbarkeit mit Hilfe zufälliger Eigenschaften von Photonen als photonische QRNGs realisiert. Ein einfaches Konzept für die Erzeugung von Zufallszahlen ist dabei das Verhalten eines Photons, dass an einen semitransparenten Strahlteiler unabhängig von anderen Photonen entweder reflektiert oder transmittiert wird. Ein anderer Ansatz ist die Nutzung der zufälligen Ankunftszeiten von Photonen auf einem Einzelphotonendetektor. Dieser auf einer intrinsischen, prinzipiell nicht deterministisch berechenbaren Photonenstatistik der Photonen einer zugehörigen Photonen-quelle basierende Verteilungseffekt kann ebenfalls zur Bereitstellung echter Zufallszahlen genutzt werden. Die Ankunftszeiten von Photonen auf einem Einzelphotonendetektor weisen im Allgemeinen eine Exponential-Verteilung auf. A large number of QRNGs are implemented as photonic QRNGs due to their particularly easy implementation using random properties of photons. A simple concept for generating random numbers is the behavior of a photon that is either reflected or transmitted to a semi-transparent beam splitter independently of other photons. Another approach is to use the random arrival times of photons on a single-photon detector. This distribution effect, based on an intrinsic, in principle non-deterministically calculable photon statistics of the photons of an associated photon source, can also be used to provide true random numbers. The arrival times of photons on a single-photon detector generally exhibit an exponential distribution.
Typischerweise wird in einem Einzelphotonendetektor (engl. „Single Photon Detector, SPD") zunächst durch ein einzelnes einfallendes Photon ein Detektorimpuls erzeugt, welcher in einem Zeit- zu-Digital-Wandler (engl. „Time-to-Digital Converter, TDC") in eine mit einem Zeit-stempel versehende digitale Repräsentation des Detektionsereignisses umgewandelt und entsprechend weiterverarbeitet werden kann. Als Photonen- bzw. Entropiequelle in QRNGs werden dabei zumeist stark auf das Einzelphotonenniveau abgeschwächte Laserdioden (engl. „Laser Diodes, LD") oder einfache lichtemittierende Dioden (engl. „Light Emitting Diodes, LEDs") genutzt, deren emittierte Photonen anschließend über einen oder mehrere besonders empfindliche Einzelphotonen- Lawinendioden (engl. „Single Photon Avalanche Diodes, SPADs") als SPD zeitlich aufgelöst erfasst werden können. Solche zeitgleich nur einzelne oder nur einige wenige Photonen bereitstellende Photonenquellen werden im Rahmen dieser Anmeldung auch als Einzelphotonenquellen (engl. „Single Photon Source, SPS") bezeichnet. Es muss sich dabei jedoch nicht um echte Einzelphotonenemitter, beispielsweise auf Basis eines einzelnen isolierten Zweiniveausystems, handeln. Typically, in a single photon detector (SPD), a single incident photon first generates a detector pulse, which is converted in a time-to-digital converter (TDC) into a digital representation of the detection event with a time stamp and can be further processed accordingly. Laser diodes (LDs) or simple light-emitting diodes (LEDs) that are strongly attenuated to the single-photon level are usually used as photon or entropy sources in QRNGs, the emitted photons of which can then be recorded in a time-resolved manner as SPDs via one or more particularly sensitive single-photon avalanche diodes (SPADs). Such photon sources that only provide single or only a few photons at the same time are also referred to as single-photon sources (SPS) in this application. However, these do not have to be real single-photon emitters, for example based on a single isolated two-level system.
Bei SPADs handelt es sich um eine Art Photodetektor ähnlich den Photodioden (engl. „Photo Diodes, PDs") und Avalanche-Photodioden (engl. „Avalanche Photo Diodes, APDs"), jedoch mit einer demgegenüber deutlich erhöhten Sensitivität. Die SPADs können digital - auch innerhalb einer gemeinsamen integrierten Schaltung - ausgelesen und ausgewertet werden. Wird eine solche integrierte Detektorschaltung durch einzelne Photonen angeregt, so wird in dem sensorisch aktiven Bereich (Absorptionsgebiet) pro anregendem Photon primär jeweils nur ein Elektron-Loch-Paar generiert, wobei die angeregten Elektronen durch elektrische Felder zur Kathode und die angeregten Löcher zur Anode abgezogen werden. Dabei driften die Ladungsträger bei einer SPAD durch ein sogenanntes Lawinengebiet, innerhalb dessen durch eine verstärkte Stoßionisation eine Ladungslawine erzeugt wird. Es handelt sich somit um hochgradig sensitive Photonen-Empfänger- Elemente, welche bei Aktivierung eine hohe Ladungsmenge (ca. 105 - 106 Elektronen) mit hoher zeitlicher Auflösung bereitstellen können. SPADs are a type of photodetector similar to photodiodes (PDs) and avalanche photodiodes (APDs), but with a significantly higher sensitivity. SPADs can be read and evaluated digitally - even within a common integrated circuit. If such a If the integrated detector circuit is excited by individual photons, only one electron-hole pair is generated per exciting photon in the sensorically active area (absorption area), with the excited electrons being drawn to the cathode and the excited holes to the anode by electric fields. In a SPAD, the charge carriers drift through a so-called avalanche area, within which a charge avalanche is generated by increased impact ionization. These are therefore highly sensitive photon receiver elements which, when activated, can provide a high amount of charge (approx. 105 - 106 electrons) with high temporal resolution.
Eine SPAD wird typischerweise im Geiger-Modus oberhalb seiner Durchbruchspannung betrieben, wobei ein einzelnes Photon über die erzeugte Ladungslawine detektiert und anschließend als Einzelereignis registriert wird. Zur Verringerung der während der Registrierung auftretenden Totzeit kann unmittelbar nach dem Einsetzen der Lawinenausbildung eine aktive oder passive Unterdrückung bzw. Quenching der weiteren Ladungsträgerverstärkung erfolgen. Die integrierte Schaltung kann neben der SPAD auch ein sogenanntes Einzelphotonenzählwerk bzw. einen Einzelphotonenzähler (engl. „Single-Photon Counter, SPC") umfassen, hierbei erfolgt im Allgemeinen anstatt einer direkten Ausgabe eines einzelnen Detektorimpulses eine unmittelbare statistische Auswertung der zeitlichen Verteilung der einzelnen detektierten Einzelphotonenereignisse. A SPAD is typically operated in Geiger mode above its breakdown voltage, whereby a single photon is detected via the generated charge avalanche and then registered as a single event. To reduce the dead time that occurs during registration, active or passive suppression or quenching of further charge carrier amplification can take place immediately after the onset of the avalanche formation. In addition to the SPAD, the integrated circuit can also include a so-called single-photon counter (SPC). In this case, instead of directly outputting a single detector pulse, an immediate statistical evaluation of the temporal distribution of the individual detected single-photon events is generally carried out.
Eine parallel zur Zufallszahlenerzeugung erfolgende statistische Auswertung kann beispiels-weise zur weiteren Absicherung der Erzeugung gegenüber möglichen Angriffen auf den Prozess der Zufallszahlenerzeugung genutzt werden. Insbesondere bei aus Einzel-komponenten aufgebauten nicht-integrierten photonischen QRNGs bieten die erforderlichen Übertragungsstrecken innerhalb des Systems dazu vielfältige Angriffsmöglichkeiten. Daher werden solche Systeme zur Erhöhung der Sicherheit möglichst kompakt und isoliert von ihrer äußeren Umgebung realisiert. Neben der Vermeidung von potentiellen Angriffsszenarien ist ein weiterer Vorteil solcher kompakten QRNGs, dass die Zufallszahlenerzeugung eventuell von außerhalb des Systems beeinträchtigende natürliche Einflüsse ebenfalls weitestgehend minimiert werden können. Entsprechend kompakte, auf dem Photonenrauschen basierende QRNGs werden daher bisher üblicherweise als hybridisch integrierte Systeme bereitgestellt. A statistical evaluation that takes place in parallel to the random number generation can, for example, be used to further secure the generation against possible attacks on the random number generation process. In particular, in the case of non-integrated photonic QRNGs made up of individual components, the required transmission paths within the system offer a wide range of attack options. To increase security, such systems are therefore implemented as compactly as possible and isolated from their external environment. In addition to avoiding potential attack scenarios, another advantage of such compact QRNGs is that natural influences from outside the system that may impair the random number generation can also be minimized as far as possible. Accordingly, compact QRNGs based on photon noise have therefore usually been provided as hybrid integrated systems.
Aus der EP 3 529 694 Bl ist auch ein integrierter Quanten-Zufallszahlengenerator (engl. „integrated Quantum Random Number Generator, iQRNG") mit einer SPS und einer oder mehreren SPDs bekannt, bei dem die SPS und der oder die SPDs vollständig in CMOS-Technologie integriert in einem einzigen Halbleitersubstrat derart angeordnet sind, dass sie unmittelbar nebeneinanderliegen (siehe FIG. 1 mit zugehöriger Figurenbeschreibung). Die SPS wird dabei durch einen zweckmäßig dotierten p-n-Übergang bereitgestellt, so dass sie einen zu detektierenden Photonenstrom erzeugt, wenn die Photonenquelle in geeigneter Weise in Vorwärts- oder Rückwärtsrichtung vorgespannt ist. Bei denFrom EP 3 529 694 B1, an integrated quantum random number generator (iQRNG) with a PLC and one or more SPDs is also known, in which the PLC and the SPD(s) are completely integrated in CMOS technology in a single semiconductor substrate in such a way that they are located directly next to each other (see FIG. 1 with the associated figure description). The PLC is provided by a suitably doped pn junction so that it generates a photon current to be detected when the Photon source is suitably biased in forward or reverse direction.
SPDs soll es sich insbesondere um SPADs handeln, welche bevorzugt durch gemeinsameSPDs are to be SPADs in particular, which are preferably supported by joint
Herstellungs-prozesse mit den SPSs erzeugt werden und die gleiche chemische Struktur aufweisen.manufacturing processes with the PLCs and have the same chemical structure.
Die gemeinsame Integration bewirkt, dass der von der SPS erzeugte Photonenstrom durch optisches Übersprechen innerhalb ein und desselben Halbleitermaterials unmittelbar zu einer daneben angeordneten SPAD fließen kann und nicht wie bei anderen aus dem Stand der Technik bekannten hybridisch integrierten QRNGs zunächst einen eventuell leeren, die beiden Komponenten physikalisch voneinander trennenden Kopplungszwischenraum überwinden bzw. durchtunneln muss. Die integrierte „side-by-side"-Konfiguration macht den in der Druckschrift vorgestellten QRNG kompakter und strukturell weniger komplex als hybride QRNGs des gleichen funktionalen Typs. Darüber hinaus ist der Zufallszahlengenerator dank der Integration aller Komponenten deutlich robuster und immuner gegen externe Umwelteinflüsse sowie gegen Manipulationsversuche durch äußere Angreifer. The joint integration means that the photon stream generated by the SPS can flow directly to a SPAD arranged next to it through optical crosstalk within one and the same semiconductor material and does not have to first overcome or tunnel through a possibly empty coupling gap that physically separates the two components, as is the case with other hybrid-integrated QRNGs known from the state of the art. The integrated "side-by-side" configuration makes the QRNG presented in the publication more compact and structurally less complex than hybrid QRNGs of the same functional type. In addition, thanks to the integration of all components, the random number generator is significantly more robust and immune to external environmental influences and to attempts at manipulation by external attackers.
Allerdings besteht unter deutlich erhöhtem Aufwand hierbei prinzipiell auch weiterhin die Möglichkeit, während des laufenden Betriebs des QRNGs in den Erzeugungsprozess der Zufallszahlen störend, beeinflussend und/oder beobachtend einzugreifen. Da der in der Druckschrift offenbarte iQRNG im Wesentlichen eine planare Struktur aufweist, könnten einzelne Photonen nämlich durchaus von ober- oder unterhalb der Ebene des Substrats abgegriffen oder zusätzlich eingebracht werden. However, it is still possible, at significantly increased expense, to interfere with, influence and/or observe the random number generation process during the QRNG's ongoing operation. Since the iQRNG disclosed in the publication essentially has a planar structure, individual photons could be picked up from above or below the level of the substrate or additionally introduced.
Die horizontale Nebeneinanderanordnung der Strukturen ist zudem nicht ideal hinsichtlich der Effizienz und des benötigten Flächenverbrauchs. Die Effizienz wird dabei insbesondere durch den erforderlichen seitlichen Abstand zwischen der SPS und der SPAD und eine damit verbundene hohe Absorption der Photonen im Halbleitermaterial beschränkt. Die von der SPS emittierten Photonen werden ohne besondere Vorkehrungen zudem weitgehend ungerichtet in das die SPS umgebende Material ausgesendet, so dass auch dadurch nur ein Teil der erzeugten Photonen von einer zugehörigen SPAD detektiert werden kann. Zwar können mehrere SPADs um eine einzelne SPS herum angeordnet werden, so dass die Effizienz und somit die digitale Entropierate durch gemeinsame Auswertung der so verbundenen SPADs erhöht werden kann, dadurch nimmt jedoch der Flächenverbrauch eines solchen iQRNGs erheblich zu. Anderseits muss auch bei einem einzelnen Emitter-Detektor-Paar sichergestellt werden, dass die nicht detektierten Photonen sich nicht unkontrolliert innerhalb des Substrats ausbreiten und an anderer Stelle im Substrat zu Störungen führen können. Die damit verbundenen seitlichen Sperrbereiche führen daher ebenfalls zu einer Erhöhung des effektiven Flächenverbrauchs des iQRNGs. Ein ebenfalls in CMOS-Technologie (HV-CMOS) realisierter iQRNG mit einer entsprechenden Anordnung einer Photonenquelle und eines Einzelphotonendetektors nebeneinander ist auch aus Khanmohammadi et al. (Khanmohammadi, Abbas, et al. „A monolithic silicon quantum random number generator based on measurement of photon detection time." IEEE Photonics Journal 7.5 (2015): 1-13) bekannt. Eine in einer kreisförmig oberflächennahen n-Wanne zwischen einem zentralen n++-Gebiet als Kathode und mehreren ringförmig darum angeordneten p++-Gebieten als Anode ausgebildete Si-LED als Photonen-quelle wird dabei kreisringförmig von einer SPAD als Einzelphotonendetektor umschlossen (siehe FIG. 2 mit zugehöriger Figurenbeschreibung). Die von der SPS emittierten Photonen werden dadurch allseitig in der Ebene detektiert, wodurch gegenüber dem aus der EP 352694 Bl bekannten iQRNG bei verringerten Flächenverbrauch die Effizienz erhöht werden kann. Die SPS wird somit unmittelbar in die SPAD integriert. Einzelne Photonen können jedoch auch hierbei ins Substrat emittiert oder an dessen Oberfläche extrahiert werden. Ebenfalls möglich ist auf diesen Wegen auch die Injektion von entsprechenden Photonen eines Angreifers zur Beeinflussung der Statistik. The horizontal arrangement of the structures next to each other is also not ideal in terms of efficiency and the required area consumption. The efficiency is limited in particular by the required lateral distance between the SPS and the SPAD and the associated high absorption of the photons in the semiconductor material. Without special precautions, the photons emitted by the SPS are also largely emitted undirected into the material surrounding the SPS, so that only a portion of the generated photons can be detected by an associated SPAD. Although several SPADs can be arranged around a single SPS, so that the efficiency and thus the digital entropy rate can be increased by joint evaluation of the SPADs connected in this way, this significantly increases the area consumption of such an iQRNG. On the other hand, even with a single emitter-detector pair, it must be ensured that the undetected photons do not spread uncontrollably within the substrate and cause interference elsewhere in the substrate. The associated lateral restricted areas therefore also lead to an increase in the effective area consumption of the iQRNG. An iQRNG also realized in CMOS technology (HV-CMOS) with a corresponding arrangement of a photon source and a single-photon detector next to each other is also known from Khanmohammadi et al. (Khanmohammadi, Abbas, et al. "A monolithic silicon quantum random number generator based on measurement of photon detection time." IEEE Photonics Journal 7.5 (2015): 1-13). A Si-LED designed as a photon source in a circular n-well near the surface between a central n++ region as the cathode and several p++ regions arranged in a ring around it as the anode is surrounded in a circular ring by a SPAD as a single photon detector (see FIG. 2 with associated figure description). The photons emitted by the SPS are thus detected on all sides in the plane, which can increase efficiency compared to the iQRNG known from EP 352694 Bl with reduced area consumption. The SPS is thus integrated directly into the SPAD. However, individual photons can also be emitted into the substrate or extracted from its surface. It is also possible to inject corresponding photons from an attacker in this way to Influencing the statistics.
Von daher besteht zur weiteren Erhöhung der Sicherheit und zur Reduzierung des Flächenverbrauchs Bedarf für eine weitere Miniaturisierung von integrierten QRNGs gegenüber dem Stand der Technik. Der iQRNG sollte weitgehend gegenüber äußeren Angriffen geschützt sein und dabei eine möglichst hohe Effizienz und möglichst geringe Substratverluste aufweisen. Um dabei nicht durch herstellungstechnologische Beschränkungen beim Design von SoCs (engl. „System on Chip, SoC") limitiert zu sein, sollte dabei das zugrundeliegende Herstellungs-Verfahren möglichst technologieoffen ausgestaltet sein bzw. auf einer möglichst breit anwendbaren Technologieplattform zur Halbleiterstrukturierung basieren. Therefore, in order to further increase security and reduce space consumption, there is a need for further miniaturization of integrated QRNGs compared to the state of the art. The iQRNG should be largely protected against external attacks and at the same time have the highest possible efficiency and the lowest possible substrate losses. In order not to be limited by manufacturing technology restrictions in the design of SoCs (System on Chip, SoC), the underlying manufacturing process should be as technology-open as possible or be based on the broadest possible applicable technology platform for semiconductor structuring.
Aufgabe Task
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 that has a more compact, robust and less complex structure than the prior art known random number generators, 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 dependent claims.
Die erfindungsgemäße Aufgabe eine kompakte Entropiequelle 411 bereitzustellen, die über den Stand der Technik hinausgeht, wird gelöst durch die Gegenstände unabhängiger Patentansprüche. Bevorzugte Weiterbildungen sind Gegenstand weiterer Unteransprüche. The object of the invention to provide a compact entropy source 411 that goes beyond the prior art is achieved by the subject matter of independent patent claims. Preferred developments are the subject matter of further subclaims.
Lösung der Aufgabe Solution 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 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 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 ERFINDUNG Der erfindungsgemäße quantenprozessbasierende Generator für echte Zufallszahlen weist in einer ersten Ausprägung eine Entropiequelle auf ist dazu eingerichtet, ein Signal der Entropiequelle mittels zumindest eines Zeit-zu-Pseudozufallszahlen-Wandlers auszuwerten und ein oder mehrere Zufallsbits in Abhängigkeit von dem ein Signal der Entropiequelle zu erzeugen. SUMMARY OF THE INVENTION The quantum process-based generator for true random numbers according to the invention has, in a first embodiment, an entropy source and is configured to evaluate a signal from the entropy source by means of at least one time-to-pseudo-random number converter and to generate one or more random bits as a function of the signal from the entropy source.
Der erfindungsgemäße quantenprozessbasierende Generator für echte Zufallszahlen ist in einer zweiten unabhängigen Ausprägung, für die unabhängiger Schutz beansprucht wird, einstückig auf einem Halbleitersubstrat mit einer Oberfläche ausgeführt und weist eine vertikale Entropiequelle mit zumindest einer Photonenquelle mit zumindest einem Photonendetektor auf. Dabei ist die Oberfläche des Halbleitersubstrats im Sinne des hier vorgelegten Dokuments als eine horizontale Ebene mit einer ersten Richtung in der Ebene (1. Ebenenvektor) und einer zweiten Richtung in der Ebene (2. Ebenenvektor), die von der ersten Richtung in der Ebene verschieden ist, definiert. Die Photonenquelle und der Photonendetektor sind dabei bezogen auf die erste und zweite Richtung in der horizontale Ebene der Oberfläche des Halbleitersubstrats in einer vertikalen Richtung zu der ersten und zweiten Richtung in der Ebene im Halbleitersubstrat angeordnet. Der quantenprozessbasierende Generator für echte Zufallszahlen ist in dieser weiten unabhängigen Ausprägung der Erfindung dazu eingerichtet ein oder mehrere Zufallsbits in Abhängigkeit von dem ein Signal der Entropiequelle zu erzeugen. In a second independent embodiment, for which independent protection is claimed, the quantum process-based generator for true random numbers according to the invention is designed in one piece on a semiconductor substrate with a surface and has a vertical entropy source with at least one photon source with at least one photon detector. The surface of the semiconductor substrate in the sense of the document presented here is defined as a horizontal plane with a first direction in the plane (1st plane vector) and a second direction in the plane (2nd plane vector), which is different from the first direction in the plane. The photon source and the photon detector are arranged in a vertical direction to the first and second direction in the plane in the semiconductor substrate with respect to the first and second direction in the horizontal plane of the surface of the semiconductor substrate. In this wide independent embodiment of the invention, the quantum process-based generator for true random numbers is designed to generate one or more random bits depending on the signal from the entropy source.
Der erfindungsgemäße quantenprozessbasierende Generator für echte Zufallszahlen umfasst in einer dritten unabhängigen Ausprägung, für die unabhängiger Schutz beansprucht wird, eine Entropiequelle in einem Halbleitersubstrat mit einer Oberfläche und mit einer Rückseite, die der Oberfläche gegenüber auf der anderen Seite des Halbleitersubstrats liegt, und Mittel zur Detektion eines Angriffs auf die Entropiequelle mittels Photonen, wobei dieser Angriff insbesondere ein Angriff von einer Rückseite des Halbleitersubstrats her sein kann. The quantum process-based generator for true random numbers according to the invention comprises, in a third independent embodiment for which independent protection is claimed, an entropy source in a semiconductor substrate with a surface and with a back side which is located opposite the surface on the other side of the semiconductor substrate, and means for detecting an attack on the entropy source by means of photons, wherein this attack can in particular be an attack from a back side of the semiconductor substrate.
In einer Variante der dritten unabhängigen Ausprägung können diese Mittel zur Detektion eines Angriffs auf die Entropiequelle mittels Photonen eine Beobachtungsdiode umfassen. In a variant of the third independent embodiment, these means for detecting an attack on the entropy source by means of photons may comprise an observation diode.
In Varianten der drei unabhängigen Ausprägungen kann der quantenprozessbasierende Generator einen Watchdog umfassen. In variants of the three independent forms, the quantum process-based generator can include a watchdog.
In Varianten der drei unabhängigen Ausprägungen kann der quantenprozessbasierende Generator einen Spannungsmonitor (423) umfassen. In variants of the three independent embodiments, the quantum process-based generator may comprise a voltage monitor (423).
In Varianten der Erfindung können der Watchdog und/oder der Spannungsmonitor dazu eingerichtet sein, den quantenprozessbasierenden Generator mittels der besagten Mittel zur Detektion eines Angriffs auf die Entropiequelle mittels Photonen, insbesondere mittels der Beobachtungsdiode, auf einen Angriff oder eine Störung zu überwachen. In variants of the invention, the watchdog and/or the voltage monitor can be configured to monitor the quantum process-based generator by means of said means for detecting a To monitor the entropy source for an attack or disturbance by means of photons, in particular by means of the observation diode.
In Varianten der Erfindung können die mindestens zwei Vorrichtungsteile des quantenprozessbasierenden Generators für echte Zufallszahlen einstückig auf einem gemeinsamen Halbleitersubstrat als einstückiger quantenprozessbasierenden Generator ausgeführt sein. In variants of the invention, the at least two device parts of the quantum process-based generator for true random numbers can be designed in one piece on a common semiconductor substrate as a one-piece quantum process-based generator.
In Varianten der Erfindung kann der quantenprozessbasierende Generator für echte Zufallszahlen, dazu eingerichtet sein, aus mehreren Zufallsbits wenigstens eine Zufallszahl zu erzeugen und die wenigstens eine Zufallszahl zur Verfügung zu stellen oder zu nutzen. In variants of the invention, the quantum process-based generator for true random numbers can be configured to generate at least one random number from a plurality of random bits and to provide or use the at least one random number.
In Varianten der Erfindung hängen die logischen Werte in der zeitlichen Reihenfolge der Pseudozufallsbits eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRG), also die eigentliche Pseudozufallsbitfolge des Zeit-zu-Pseudozufallszahlen-Wandlers (TPRG), des quantenprozessbasierenden Generators von einem oder mehreren Quantenzufallsbits und/oder einer oder mehrerer Quantenzufallszahlen ab, die typischerweise Betriebsparameter des Zeit-zu- Pseudozufallszahlen-Wandlers (TPRG) sind. In variants of the invention, the logical values in the temporal order of the pseudorandom bits of a time-to-pseudorandom number converter (TPRG), i.e. the actual pseudorandom bit sequence of the time-to-pseudorandom number converter (TPRG), of the quantum process-based generator depend on one or more quantum random bits and/or one or more quantum random numbers, which are typically operating parameters of the time-to-pseudorandom number converter (TPRG).
In Varianten der Erfindung ist der Watchdog dazu eingerichtet, eine korrekte Funktion des quantenprozessbasierenden Generators für echte Zufallszahlen zu überwachen. In variants of the invention, the watchdog is designed to monitor the correct functioning of the quantum process-based generator for true random numbers.
In Varianten der Erfindung ist der Watchdog dazu eingerichtet, die Zufälligkeit der erzeugten Quantenzufallsbits in Form eines oder mehrerer Messwerte zu messen und jeweils mit einem jeweiligen Toleranzintervall oder einem jeweiligen Schwellwert zu vergleichen, und auf einen jeweiligen Fehler bei einer jeweiligen Abweichung des jeweiligen Messwerts gegenüber dem jeweiligen Toleranzintervall oder dem jeweiligen Schwellwert zu schließen. In variants of the invention, the watchdog is designed to measure the randomness of the generated quantum random bits in the form of one or more measured values and to compare each with a respective tolerance interval or a respective threshold value, and to conclude a respective error in the case of a respective deviation of the respective measured value from the respective tolerance interval or the respective threshold value.
In Varianten der Erfindung ist der Watchdog dazu eingerichtet, eine korrekte Funktion des Zeit-zu- Pseudozufallszahlen-Wandlers (TPRC) des zumindest einen Zeit-zu-Pseudozufallszahlen-Wandlern (TPRG) des quantenprozessbasierenden Generators zu überwachen und/oder ein Verhalten in Form der zeitlichen Statistik der logischen Werte in der zeitlichen Reihenfolge der Pseudozufallsbits des Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) zu überwachen und in Form von statistischen Messwerten zu erfassen und bei Abweichungen der statistischen Messwerte von dem erwarteten Verhalten in Form einer Verlassens erlaubter Messwertbereiche für diese Messwerte einen Fehler festzustellen und/oder zu signalisieren. In variants of the invention, the watchdog is designed to monitor the correct functioning of the time-to-pseudorandom number converter (TPRC) of the at least one time-to-pseudorandom number converter (TPRG) of the quantum process-based generator and/or to monitor a behavior in the form of the temporal statistics of the logical values in the temporal order of the pseudorandom bits of the time-to-pseudorandom number converter (TPRC) and to record them in the form of statistical measured values and, in the event of deviations of the statistical measured values from the expected behavior in the form of a departure from permitted measured value ranges for these measured values, to detect and/or signal an error.
In Varianten der Erfindung ist der quantenprozessbasierende Generator für echte Zufallszahlen mit seinen mindestens zwei Vorrichtungsteilen einstückig als Teil eines integrierten Schaltkreises gefertigt ist. In Varianten der Erfindung ist der integrierte Schaltkreis mit dem quantenprozessbasierenden Generator für echte Zufallszahlen in einer BCD-Technologie gefertigt. In variants of the invention, the quantum process-based generator for true random numbers with its at least two device parts is manufactured in one piece as part of an integrated circuit. In variants of the invention, the integrated circuit with the quantum process-based generator for true random numbers is manufactured in a BCD technology.
In Varianten der Erfindung umfasst der integrierte Schaltkreis mit dem quantenprozessbasierenden Generator für echte Zufallszahlen einen Spannungswandler zur Versorgung der Entropiequelle des quantenprozessbasierenden Generators für echte Zufallszahlen, wobei der Spannungswandler dann einen oder mehrere DMOS-Transistoren zur Erhöhung der Spannungsfestigkeit umfasst. In variants of the invention, the integrated circuit with the quantum process-based generator for true random numbers comprises a voltage converter for supplying the entropy source of the quantum process-based generator for true random numbers, wherein the voltage converter then comprises one or more DMOS transistors for increasing the voltage strength.
In Varianten der Erfindung umfasst der besagte integrierte Schaltkreis einen Schaltkreis, wie einen Mikrocontroller, einen Mikroprozessor, einen Speicher, ein DRAM, ein SRAM, ein RAM, einen flüchtigen Speicher, einen OTP-Speicher, ein EEPROM, einen Flash-Speicher, ein MRAM, ein FRAM, einen Sensor-Auswerteschaltkreis, einen Steuerschaltkreis für eine automobile Steuerschaltung, einen Grafik-Controller, einen Auswerteschaltkreis für einen biometrischen Sensor oder ein Eingabegerät, eine Steuerschaltung, eine Chip-Karten-Schaltung, ein RFID-Schaltkreis, einen Sachaltkreis eines Mobiltelefons oder eines Smartphones, einen Schaltkreis eines Zugangskontrollsystems, einen Schaltkreis mit einer kodierten Aufzeichnung von Betriebsparametern, einen Schaltkreis eines Zugriffskontrollsystems, einen Schaltkreis eines Sicherungssystems elektronischer Sicherungen, einen Funksystemschaltkreis, einen Kommunikationsschaltkreis, einen Schaltkreis eines Verschlüsselungs- und/oder Entschlüsselungssystems, einen Schaltkreis eines Individualisierungssystems, einen Schaltkreis einer Spielvorrichtung, einen Schaltkreis eines Simulationssystems, einen Schaltkreis eines Rechnersystems, einen Schaltkreis einer Rauschquelle, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung eines Spreizkodes, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zur Individualisierung des Schaltkreises, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zu Testzwecken, insbesondere zu Selbsttestzwecken und/oder zu insbesondere Zwecken der Prüfung einer Anwendungsschaltung, deren Teil der Schaltkreis ist. Das hier vorgelegte Dokument offenbart somit einen Mikrocontroller, einen Mikroprozessor, einen Speicher, ein DRAM, ein SRAM, ein RAM, einen flüchtigen Speicher, einen OTP-Speicher, ein EEPROM, einen Flash-Speicher, ein MRAM, ein FRAM, einen Sensor-Auswerteschaltkreis, einen Steuerschaltkreis für eine automobile Steuerschaltung, einen Grafik-Controller, einen Auswerteschaltkreis für einen biometrischen Sensor oder ein Eingabegerät, eine Steuerschaltung, eine Chip-Karten-Schaltung, ein RFID-Schaltkreis, einen Sachaltkreis eines Mobiltelefons oder eines Smartphones, einen Schaltkreis eines Zugangskontrollsystems, einen Schaltkreis mit einer kodierten Aufzeichnung von Betriebsparametern, einen Schaltkreis eines Zugriffskontrollsystems, einen Schaltkreis eines Sicherungssystems elektronischer Sicherungen, einen Funksystemschaltkreis, einen Kommunikationsschaltkreis, einen Schaltkreis eines Verschlüsselungs- und/oder Entschlüsselungssystems, einen Schaltkreis eines Individualisierungssystems, einen Schaltkreis einer Spielvorrichtung, einen Schaltkreis eines Simulationssystems, einen Schaltkreis eines Rechnersystems, einen Schaltkreis einer Rauschquelle, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung eines Spreizkodes, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zur Individualisierung des Schaltkreises, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zu Testzwecken, insbesondere zu Selbsttestzwecken und/oder zu insbesondere Zwecken der Prüfung einer Anwendungsschaltung, deren Teil der Schaltkreis ist, mit einem erfindungsgemäßen quantenprozessbasierende Generator für echte Zufallszahlen und/oder die Verwendung von Zufallsbits und/oder Zufallszahlen des erfindungsgemäßen quantenprozessbasierenden Generators für echte Zufallszahlen in einen Mikrocontroller, einen Mikroprozessor, einen Speicher, ein DRAM, ein SRAM, ein RAM, einen flüchtigen Speicher, einen OTP-Speicher, ein EEPROM, einen Flash- Speicher, ein MRAM, ein FRAM, einen Sensor-Auswerteschaltkreis, einen Steuerschaltkreis für eine automobile Steuerschaltung, einen Grafik-Controller, einen Auswerteschaltkreis für einen biometrischen Sensor oder ein Eingabegerät, eine Steuerschaltung, eine Chip-Karten-Schaltung, ein RFID-Schaltkreis, einen Sachaltkreis eines Mobiltelefons oder eines Smartphones, einen Schaltkreis eines Zugangskontrollsystems, einen Schaltkreis mit einer kodierten Aufzeichnung von Betriebsparametern, einen Schaltkreis eines Zugriffskontrollsystems, einen Schaltkreis eines Sicherungssystems elektronischer Sicherungen, einen Funksystemschaltkreis, einen Kommunikationsschaltkreis, einen Schaltkreis eines Verschlüsselungs- und/oderIn variants of the invention, said integrated circuit comprises a circuit such as a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory, an EEPROM, a flash memory, an MRAM, an 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, an RFID circuit, an asset circuit of a mobile phone or a smartphone, 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 security, 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 game device, a circuit of a simulation system, a circuit of a computer system, a circuit of a noise source, a Circuit with a device for generating and/or using a spreading code, a circuit with a device for generating and/or using a random number for individualizing the circuit, a circuit with a device for generating and/or using a random number for testing purposes, in particular for self-testing purposes and/or for the purposes of testing an application circuit of which the circuit is a part. The document presented here thus discloses a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory, 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, an RFID circuit, an electronic circuit of a mobile phone or a smartphone, an access control system circuit, a circuit with a coded recording of operating parameters, an access control system circuit, a security system circuit of electronic security devices, 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 game device, a circuit of a simulation system, a circuit of a computer system, a circuit of a noise source, a circuit with a device for generating and/or using a spreading code, a circuit with a device for generating and/or using a random number for individualizing the circuit, a circuit with a device for generating and/or using a random number for testing purposes, in particular for self-testing purposes and/or for the purposes of testing an application circuit of which the circuit is a part, with a quantum process-based generator for true random numbers according to the invention and/or the use of random bits and/or random numbers of the quantum process-based generator for true random numbers according to the invention in a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory, 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, an RFID circuit, an asset circuit of a mobile phone or a smartphone, 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 security, a radio system circuit, a communication circuit, a circuit of an encryption and/or
Entschlüsselungssystems, einen Schaltkreis eines Individualisierungssystems, einen Schaltkreis einer Spielvorrichtung, einen Schaltkreis eines Simulationssystems, einen Schaltkreis eines Rechnersystems, einen Schaltkreis einer Rauschquelle, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung eines Spreizkodes, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zur Individualisierung des Schaltkreises, einen Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zu Testzwecken, insbesondere zu Selbsttestzwecken und/oder zu insbesondere Zwecken der Prüfung einer Anwendungsschaltung, deren Teil der Schaltkreis ist. 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 with a device for generating and/or using a spreading code, a circuit with a device for generating and/or using a random number for individualizing the circuit, a circuit with a device for generating and/or using a random number for testing purposes, in particular for self-testing purposes and/or in particular for the purposes of testing an application circuit of which the circuit is a part.
In Varianten der Erfindung weist der integrierte Schaltkreis (interne Schnittstellen als spezielle Schaltkreise an einer kryptografischen Grenze zwischen einer Steuervorrichtung und anderen Teilen der integrierten mikroelektronischen Schaltung auf, die als nicht sicher oder weniger sicher eingestuft werden, und der quantenprozessbasierende Generator für echte Zufallszahlen innerhalb der kryptografischen Grenze zwischen der Steuervorrichtung und den anderen Teilen der integrierten mikroelektronischen Schaltung angeordnet ist. In Varianten der Erfindung umfasst Entropiequelle eine Photonenquelle und einen Photonendetektor, wobei die Photonenquelle dazu eingerichtet ist, bei Versorgung mit elektrischer Energie Photonen als Quantensignal zu emittieren, und wobei die Photonenquelle mit dem Photonendetektor optisch gekoppelt ist. In dieser Variante der Erfindung ist der Photonendetektor dazu eingerichtet, das Quantensignal der Photonenquelle zumindest teilweise zu empfangen und ein Ausgangssignal der Entropiequelle oder ein Vorläufersignal desselben zu erzeugen. In variants of the invention, the integrated circuit (internal interfaces) comprise special circuits at a cryptographic boundary between a control device and other parts of the integrated microelectronic circuit which are classified as non-secure or less secure, and the quantum process-based true random number generator is arranged within the cryptographic boundary between the control device and the other parts of the integrated microelectronic circuit. In variants of the invention, the entropy source comprises a photon source and a photon detector, wherein the photon source is configured to emit photons as a quantum signal when supplied with electrical energy, and wherein the photon source is optically coupled to the photon detector. In this variant of the invention, the photon detector is configured to at least partially receive the quantum signal of the photon source and to generate an output signal of the entropy source or a precursor signal thereof.
In einer Variante der Erfindung umfasst die Photonenquelle eine Silizium-LED, insbesondere eine Zener-avLED oder eine SPAD-Diode. In a variant of the invention, the photon source comprises a silicon LED, in particular a Zener avLED or a SPAD diode.
In Varianten der Erfindung ist der quantenprozessbasierende Generator ganz oder in Teilen in einem Pad-Rahmen zwischen Anschluss-Pads des integrierten Schaltkreises auf dem Die dieses integrierten Schaltkreises platziert, wobei zumindest die Entropiequelle im Pad-Rahmen zwischen den Anschluss- Pads des integrierten Schaltkreises auf dem Die dieses integrierten Schaltkreises platziert ist. In variants of the invention, the quantum process-based generator is placed in whole or in part in a pad frame between connection pads of the integrated circuit on the die of this integrated circuit, wherein at least the entropy source is placed in the pad frame between the connection pads of the integrated circuit on the die of this integrated circuit.
In Varianten der Erfindung ist die Entropiequelle des quantenprozessbasierenden Generators, insbesondere mittels Metallschichten und/oder Silizid-Schichten und Durchkontaktierungen, bis auf Signaldurchführungen durch diese Kapselung von zumindest einer Seite, besser zumindest von zwei Seiten, besser zumindest von drei Seiten, besser zumindest von vier Seiten, besser zumindest von fünf Seiten gekapselt. In variants of the invention, the entropy source of the quantum process-based generator is encapsulated, in particular by means of metal layers and/or silicide layers and vias, except for signal feedthroughs through this encapsulation from at least one side, better at least from two sides, better at least from three sides, better at least from four sides, better at least from five sides.
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 (Q.RNG 28) zurAccording 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 (Q.RNG 28) for
Verschlüsselung. Ein solcher Zufallszahlengenerator liefert eine echte Zufallszahl, da der Prozess der Zufallszahlenerzeugung auf einem nicht vorhersagbaren Quantenprozess beruht. Encryption. Such a random number generator produces a truly 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: The invention also provides a data processing device comprising:
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; 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 supplying data words to the processor. The processor and the hash calculator are arranged to perform the steps of a. calculating the hash by means of a hash function for each data word in dependence on a security code stored in the non-volatile memory and storing the hash in association 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 newly calculated 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 photon source 54 with a flow of detected photons of light 58 transported horizontally in an optical fiber 44, one or more photon detectors 55, preferably single photon detectors (SPADs), and electronic sampling means (403, 2022, 402, 403, 404.2) operatively connected to the one or more photon detectors 55 to generate a bit sequence of quantum random bits 411 (random bit sequence) based on the number of photons detected in the photon detectors 55.
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 photon source 54 and the photon detector(s) 55 are arranged as close to one another as possible and optically directly or indirectly coupled and are integrated in a single semiconductor substrate 49. Preferably, the photon source 54 and the photon detector(s) 55 are manufactured in a common semiconductor substrate 49 using CMOS technology, preferably BCD technology. Preferably, the photon source 54 comprises a silicon LED and/or a silicon laser. For example, the photon source 54 can comprise a first SPAD diode 54. For example, the photon detector 55 can comprise a photodiode. For example, the photon detector 55 can comprise a second SPAD diode 55.
Der erfindungsgemäße Quantenzufallszahlengenerator 28 umfasst bevorzugt eine Photonenquelle 54 mit einem detektierten Photonenfluss gleich A The quantum random number generator 28 according to the invention preferably comprises a photon source 54 with a detected photon flux equal to A
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 random number generator 28 in an alternative embodiment comprises more than one photon source 54. However, this has the disadvantage of requiring a larger chip area.
Gemäß der bevorzugten Ausführungsform des Vorschlags umfasst der vorgeschlageneAccording to the preferred embodiment of the proposal, the proposed
Quantenzufallszahlengenerator 28 vorzugsweise außerdem eine Anordnung von einem oder mehrQuantum random number generator 28 preferably also comprises an arrangement of one or more
Photonendetektoren 55. 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. Photon detectors 55. Preferably, but not necessarily, each of these photon detectors 55 is a single photon detector 55. When one or more photon detectors 55 are implemented as reverse biased PN diodes in a semiconductor substrate 49 with a bias voltage close to the breakdown voltage of the respective PN diode and a limitation of the breakdown current of the respective PN diode, one generally speaks of single photon avalanche photo diodes, which the document presented here also refers to with the acronym SPAD.
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 single photon detector 55 is capable of detecting and providing as output information on the incidence of a single photon in its sensitive volume and possibly on the arrival time of the latter within an observation window of predetermined duration.
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 SPAD diode 55, this second SPAD 55 can no longer reliably detect any subsequent photon.
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 photon detectors 54, each respective SPAD diode 55 operates independently and in parallel with the other SPAD diodes 55. Typically, the array of SPAD diodes 55 has a single common output for reading the respective signal generated by the same array of SPAD diodes 55 from the outside.
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 SPAD diodes 55 is typically that the solid angle of the photons 58 generated by the photon source 55 is increased and that any dead times are reduced, thereby increasing the generation rate of the quantum random bits 411 of the quantum random number generator 28 and thus the rate of the quantum random data words 418 themselves. This in turn enables the encryption of larger amounts of data.
Während die technische Lehre der EP 3 529694 Bl noch von einer Kopplung über das Halbleitersubstrat 49 ausgeht, schlägt die hier vorgestellte technische Lehre eine erste verbesserte Kopplung der Photonenquelle, also beispielsweise der ersten SPAD-Diode 54 und/oder der SiliziumLED, mit dem Photonendetektor 55, also hier beispielsweise mit der zweiten SPAD-Diode 55, über ein lichtoptisches System, beispielsweise einen Lichtwellenleiter 44, vor, dass eine wesentlich geringere Absorptionsrate als das gemeinsame Halbleitersubstrat 49 aufweisen sollte, in dem die Photonenquelle 54 und der Photonendetektor 55 gefertigt sind. Hierdurch steigt die Erzeugungsrate der Quantenzufallsbits 411 des Quantenzufallszahlengenerators 28 nochmals dramatisch gegenüber einer Vorrichtung gemäß der technischen Lehre der EP 3 529 694 Bl an. While the technical teaching of EP 3 529694 Bl still assumes a coupling via the semiconductor substrate 49, the technical teaching presented here proposes a first improved coupling of the photon source, i.e. for example the first SPAD diode 54 and/or the silicon LED, with the photon detector 55, i.e. here for example with the second SPAD diode 55, via a light-optical system, for example an optical waveguide 44, which should have a significantly lower absorption rate than the common semiconductor substrate 49 in which the photon source 54 and the photon detector 55 are manufactured. This increases the generation rate of the quantum random bits 411 of the quantum random number generator 28 increases dramatically compared to a device according to the technical teaching of EP 3 529 694 B1.
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 random number generator 28 always comprises an array of second SPAD diodes 55 as an array of photon detectors 55, but each SPAD diode 55 or each photon detector 55 is independent of the others, which means that these device parts can each individually generate a respective signal to the outside, which is typically independent of the signals of the other SPAD diodes 55 or of the other photon detectors 55. According to another embodiment of the proposed quantum random number generator 28, the arrangement can be divided into subgroups of SPAD diodes 55 or subgroups of photon detectors 55, each subgroup comprising a predetermined number of SPAD diodes 55 or photon detectors 55, which are preferably each connected in parallel to one another such that they each generate a single signal outwardly related to the entropy source 401 of the quantum random number generator 28.
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 SPAD diodes 55 or photon detectors 55 can be connected to the outside world of the entropy source 401 of the quantum random number generator 28 independently of the other subgroups of SPAD diodes or photon detectors.
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 random bits 411 from the quantum random number generator 28 can be parallelized, whereby the bit rate of the quantum random number generator 28 is further increased by spatial multiplexing.
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 random number generator 28 of the proposal can also comprise only exactly one second SPAD diode 55 or only exactly one photon detector 55.
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 random number generator 28, as already mentioned, can comprise a plurality of photon sources 54 or silicon LEDs 54 or first SPAD diodes 54, which are each optically connected to an array of photon detectors 55 or second SPAD diodes 55 via an optical system (44) outside the semiconductor substrate 49. Preferably, this optical system 44 comprises micro-optical device parts. Preferably, these micro-optical device parts comprise one or more optical waveguides 44 and/or one or more reflective layers 53 and/or reflective and/or optically refractive structures 53. Preferably, the optical waveguide 44 is manufactured in the metallization stack on the semiconductor substrate 49 of the microelectronic circuit, which typically comprises the photon source or the Silicon LED 54 or the first SPAD diode 54 and the photon detector 55 or the second SPAD diode 55. The optical system - for example the optical waveguide 44 - the photon sources 54 and the photon detectors 55 are therefore preferably part of the one-piece quantum random number generator 28.
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 photon source 55 or a silicon LED 54 or a SPAD diode 54 on the one hand with one or more photon detectors 55 or one or more SPAD diodes 55 on the other hand defines pixels in the sense of the document presented here, one embodiment of the entropy source 401 of the proposed quantum random number generator 28 can be viewed, for example, as a pixel matrix which makes it possible to parallelize the process of extracting random numbers.
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 photon source 54 or the silicon LED 54 or the first SPAD diode 54, according to a preferred embodiment, this also preferably comprises one or more SPAD diodes 54. In this case, both the arrangement of the photon detectors 54 or the second SPAD diodes 54, which serve as receivers, and the photon sources 54 or the silicon LEDs 54, which preferably comprise one or more SPAD diodes 54, are configured and polarized such that they operate in the so-called Geiger mode with the same polarization voltage.
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 random number generator 28 of the proposal preferably also comprises electronic sampling means (403, 2022, 402, 403, 404.2) which are preferably functionally connected to the common output 417 in order to read the signal 405 generated by the arrangement of the photon detectors 54 or the second SPAD diodes 54.
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 respective photon detector 54 or each respective second SPAD diode 54, respectively, which each belongs to the array, while individual electronic sampling means of the electronic sampling means (2022, 402, 403, 404.2) are present for the respective individual photon detector 54 or for the respective individual second SPAD diode 54. Finally, in one embodiment, some or more respective sampling means of the electronic sampling means (2022, 402, 403, 404.2) can be provided for each pixel, the sampling signals (407, 407) of which are combined into a common quantum random bit data stream 411 by means of electronic post-processing.
Das hier vorgelegte Dokument schlägt vor, diese elektronischen Abtastmittel (403, 2022, 402, 403,The document presented here proposes to use these electronic scanning devices (403, 2022, 402, 403,
404.2) zusammen oder zumindest in großen Teilen mit den Photonenquellen 54 bzw. Silizium-LEDs404.2) together or at least in large parts with the photon sources 54 or silicon 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. 54 or first SPAD diodes 54 and together with the photon detectors 55 or the second SPAD diodes 55 in a common semiconductor substrate 49 as a one-piece micro-integrated circuit. The document presented here proposes electrically connecting these electronic scanning means (403, 2022, 402, 403, 404.2) together with the photon sources 54 or silicon LEDs 54 or first SPAD diodes 54 and together with the photon detectors 55 or the second SPAD diodes 55 via the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 by means of metallic electrical conductors. The document presented here proposes optically connecting these photon sources 54 or silicon LEDs 54 or first SPAD diodes 54 and the photon detectors 55 or the second SPAD diodes 55 to one another via the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 by means of dielectric optical waveguides 44. The metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 typically comprises structured metal layers which typically form the electrical conductor tracks (141, 142) in different levels of the metallization stack. The metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate 49 typically comprises electrical insulation layers between these structured metallization layers (141, 142), which electrically insulate the electrical lines (141, 142) formed in the structured metallization layers between different metallization levels. The electrical insulation layers of the metallization stack of the one-piece micro-integrated circuit thus manufactured on the surface of the semiconductor substrate typically comprise electrical vias 140 between the electrical lines (141, 142) of the structured metallization layers, which electrically connect (via-contact) the electrical lines (141, 142) formed in the structured metallization layers between these different metallization levels. The metallization stack of the one-piece micro-integrated circuit produced in this way on the surface of the semiconductor substrate 49 typically comprises optically transparent electrical insulation layers between these structured metallization layers. As a result, one or more electrical insulation layers can take on the function of an optical waveguide 44 for the photons of the first SPAD diode 54 or the photon source 54 or the silicon LED 54 during their transport to the second SPAD diode 55 or to the photon detector 55. The insulation layers in question are preferably structured for this purpose.
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 sensing means (403, 2022, 402, 403, 404.2) of such a one-piece microelectronic circuit are preferably configured to implement a predefined logic method or a computer or hardware implemented algorithm for Extraction of a binary sequence of quantum random bits 411 based on the arrival times of the photons at the level of the respective photon detectors 55 or SPAD diodes 55. Some preferred examples of the logical extraction method are described in detail in the document presented here.
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 random number generator 28, the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the array of photon detectors 55 or of second SPAD diodes 55 or the individual SPAD detector 54 are arranged next to one another or one below the other and preferably close to one another with a short optical connection for optical coupling via the shortest possible optical path and integrated into a single semiconductor substrate 49 as a microelectro-optical system.
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 photon source 54 or the silicon LED 54 or the first SPAD diode 54 flowing, for example, through the optical waveguide 44 in the metallization stack of the microelectronic circuit in the direction of the preferably nearby arrangement of photon detectors 55 or second SPAD diodes 55 (a phenomenon actually known as "optical crosstalk"), unlike in the known random number generators in which the same photons flow through the empty coupling gap between the two components, which are physically separated from each other, i.e. are typically not manufactured in one piece with the scanning means on a semiconductor substrate 49.
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 random number generator 28 proposed in this document more compact and structurally less complex than random number generators of the known type.
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 random number generator 28, it is also more robust and immune to external environmental influences and to any attempts at manipulation by malicious persons.
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 photon source 54 or the silicon LED 54 or the first SPAD diode 54 on the one hand and the photon detector(s) 55 or the second SPAD diodes 55 on the other hand are advantageous compared to solutions using, for example, discrete beam splitters, since they enable uniform illumination of the photon detectors 55 or the second SPAD diodes 55 without having to ensure that the beam splitter is always perfectly aligned.
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 photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the array of photon detectors 55 or the second SPAD diodes 55 are manufactured on the semiconductor substrate 49 in the same manufacturing steps, so that the elements have the same chemical-physical structure with respect to the doping profiles. More precisely, as mentioned above, even the photon source 54 or the silicon LED 54 or the first SPAD diode 54 can be manufactured with the same chemical-physical structure as another photon detector 55 or another second SPAD diode 55. The photon source 54 or the silicon LED 54 or the first SPAD diode 54 is, in terms of design and implementation, completely identical to the photon detectors 55 or the second SPAD detectors 55 belonging to the array in certain embodiments of the proposal, except for usual variations of components on a wafer.
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 random number generator 28 can be drastically reduced, since it is possible to manufacture one or more photon sources 54 or silicon LEDs 54 or first SPAD diodes 54 and/or one or more photon detectors 55 or SPAD diodes 55 on the same semiconductor substrate 49 without the number of manufacturing steps having to be changed, in particular increased. The manufacturing costs therefore remain approximately the same.
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 semiconductor substrate 49 is a silicon substrate 49.
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 semiconductor substrate 49 is made of a semiconductor material other than silicon in order to increase the efficiency of the emitter-source coupling. The document presented here mentions in this context in particular the use of direct semiconductors with a direct transition for the electrons without lattice collision for momentum change.
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. 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. As regards the arrangement of the photon detectors 55 or the second SPAD diodes 55, it is known that preferably each of them mainly comprises a favourably doped pn junction, so that the phenomenon known in technical terms as "avalanche formation" can occur when the same photon detector 55 or SPAD diode 55, which is favourably polarized, is subjected to the impact of a photon in its photon-sensitive volume. The photon source 54 or silicon LED 54 or first SPAD diode 54 is also defined by a suitably doped pn junction such that the detected photon flow is generated when the photon source 54 or silicon LED 54 or first SPAD diode 54 is suitably biased in the forward direction or (better) in the reverse direction. When a first SPAD diode 54 is polarized in the reverse direction, a pulsed dark current of the diode current is produced, the so-called dark current, which is associated with a pulsed emission of photons that the photon detector 54 or the second SPAD diode 55 can detect.
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 X 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 photon source 54 or silicon LED 54 or first SPAD diode 54 is configured to obtain an emission spectrum of the detected photon flux X which lies mainly between 800 nm and 1000 nm. In this spectrum, the efficiency of each photon detector 55 or each second SPAD diode 55 cannot be considered to be excessively high and is less than 10%. Therefore, it is estimated that in order to achieve a detection rate of, for example, about 500,000 counts/sec. a usable photon rate (photon current that reaches the sensitive volume of the photon detector 55 or the second SPAD diode 55 or the photon detectors 55 or the second SPAD diodes 55 from the photon source 54 or silicon LED 54 or first SPAD diode 54) of more than 5,000,000 ph/sec is required.
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 manufacture of the quantum random number generator 28, the fact that the structures of the photon source 54, the silicon LED 54, and the first SPAD diode 54 both have a p-n junction as their main feature confirms the advantage described above, i.e. the possibility of carrying out the same manufacturing steps for the photon source 54, the silicon LED 54, and the first SPAD diode 54 and the photon detectors 55, and the second SPAD diodes 55.
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. 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. Preferably, but not necessarily, according to the preferred embodiment of the invention, the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the photon detectors 55 or the second SPAD diodes 55, which are obtained by the same manufacturing steps, have the same chemical-physical structure. However, it cannot be ruled out that in different embodiments of the quantum random number generator 28 according to the invention, the photon source 54 or the silicon LED 54 or the first SPAD diode 54 and the photon detectors 55 or the second SPAD diodes 55 can be manufactured with different chemical-physical structures, in particular with different sizes and/or different doping levels, even if they are obtained by the same manufacturing steps. As far as the technology for integrating these components into the semiconductor substrate 49 is concerned, according to the preferred embodiment of the invention, this is the CMOS or CMOS-compatible technology for microfabrication of microintegrated circuits. So-called BCD technologies are also particularly preferred for producing the proposed one-piece microelectronic circuit of the quantum random number generator 28.
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 that was developed 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 SiliziumLED 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 SiliziumLED 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 voltage converters 91 of the monolithic integrated circuit. At the same time, BCD technologies enable the compact manufacture of the first SPAD diodes for the photon sources 54 and the second SPAD diodes 55 for the photon detectors 55. Since the first SPAD diodes 54 typically require a higher supply voltage when used as photon sources 54, the voltage converters 91 very often comprise a charge pump or the like to supply the first SPAD diodes 54 with the required high supply voltage. The DMOS transistors mentioned are particularly suitable for these charge pumps in the voltage converters 91 of the one-piece micro-integrated circuit of the quantum random number generator 28. Therefore, a co-integration of the entropy source 401 with at least one DMOS transistor or several DMOS transistors on a common semiconductor substrate 49 are particularly advantageous. A voltage converter 91 of a one-piece microelectronic integrated circuit of a quantum random number generator 28 therefore preferably comprises at least one, better several DMOS transistors. The DMOS transistors of a respective voltage converter 91 of a one-piece microelectronic integrated circuit of a quantum random number generator 28 are preferably located in a half-bridge or an H-bridge circuit within this voltage converter 91. In the case of a half-bridge, an energy store, for example a capacitor, is preferably connected with one connection to the output node of this half-bridge and can then be recharged thereby. In the case of an H-bridge, an energy store, for example a capacitor, is preferably connected with a first connection to the output node of the first half-bridge of the H-bridge and with a second connection to the output node of the second half-bridge of the H-bridge and can then be recharged thereby. Such a voltage converter 91 preferably comprises an electronically controlled transfer switch which, after switching up the voltage at one terminal of the capacitor, can connect the other terminal to a photon source 54 or a silicon LED 54 or a first SPAD diode 54. This step-up technology for the supply voltage can also be multi-stage in order to achieve larger voltage swings. A further voltage converter 91 and an energy storage device, for example a further capacitor, can be connected downstream and upstream of the entropy source 401 or the photon source 54 or the silicon LED 54 or the first SPAD diode 54 in order to stabilize the supply voltage of the photon source 54 or the silicon LED 54 or the first SPAD diode 54. Preferably, the half-bridge and/or the H-bridge and/or the transfer switches of the voltage converter 91 comprise DMOS transistors in order to be able to provide higher supply voltages and thus increase the quantum random bit data rate of the quantum random bits 411, since the increase in the supply voltage leads to an increase in the pulse density of the entropy source.
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. 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 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 micro-integrated circuit 2. 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 photon detectors 55 or the second SPAD diodes 55 into the semiconductor substrate 49.
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 random number generator 28 of the proposal obtained by the BCD microfabrication technique preferably uses a doped substrate/epitaxial structure of type p 100. The manufacturing process typically creates a deep n-well in the doped substrate/epitaxial structure of type p 100 and the connections defining the photon source 54, the silicon LED 54 and the first SPAD diode 54, respectively, are made with a type p+ implant 102. In order to avoid electric fields that are higher at the edges of the sensitive region than in the center thereof, "guard ring" structures are preferably provided, forming a ring of p-well around the p+ implant 47.
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 photon source 54 or the silicon LED or the first SPAD diode 54 may be a custom-made type technique. The advantage of this last solution is that the manufacturing steps of the quantum random number generator 28 according to the invention can be optimized to obtain the photon source 55 and/or the silicon LED 55 or the second SPAD diode 55.
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 random number generator 28 with a customized manufacturing technique, the photon detectors 55 or the second SPAD diodes 55 and the photon source 54 or the silicon LED 54 or the first SPAD diode 54 may be integrated into a doped p-type epitaxial structure/substrate, wherein a so-called "flat" implant and an enhancement implant are defined in the epitaxial structure, wherein the "flat" implant is more superficial, of n+ type and concentric to the epitaxial structure, but has a smaller extension, and the enhancement implant is of p- type and has a lower doping, but in any case a higher doping than that of the epitaxial structure.
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 to either separate the photon source 55 or the silicon LED 55 or the SPAD diodes 55 and the photon detector(s) 54 or silicon LED 54 or first SPAD diodes 54 by arranging them at suitable distances, or to create deep trenches. which surround both the region of the photon source 54 or silicon LED 54 or first SPAD diode 54 and the region of the photon detector(s) 55 or second SPAD 55. Finally, it is possible to create an auxiliary connection which, when suitably biased, absorbs the excess charge that can be transferred from the photon source 54 or silicon LED 54 or first SPAD diode 54 to the photon detector(s) 55 or second SPAD diode or diodes 55. The creation of trenches would also reduce optical crosstalk, which is again a desired property. However, this reduction does not exceed a percentage of the order of 30-50%, so it is acceptable if it has the advantage of eliminating the problem completely.
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 random number generator 28 is configured such that the photon source 54 or the silicon LED 54 or the first SPAD diode 54 can be biased either in the forward direction or in the reverse direction to generate the detected photon flux.
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 photon source 54, here the silicon LED 54 or the first SPAD diode 54, which occurs in a controlled manner but at quantum mechanically random time intervals.
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 photon source 54 or silicon LED 54 or first SPAD diode 54 requires a voltage of several volts, while a backward-directed photon source requires a voltage of several dozen volts. When developing the technical teaching of this document, it was recognized that the use of DMOS transistors is particularly advantageous for the co-integrability of preferably all relevant electronic components of a quantum random number generator 28. Such DMOS transistors enable the provision of a voltage of several dozen volts for operating the backward-directed photon sources 54, i.e. here the silicon LEDs 54 or first SPAD diodes 54 operated in the reverse direction, by means of a voltage converter 91, which here in the sense of the document presented here can include any form of suitable voltage converter 91 in terms of content and which is preferably in the semiconductor substrate 49 the one-piece microelectronic integrated circuit of the quantum random number generator 28 presented here. When developing the technical teaching of this document, it was thus recognized that the use of a BCD semiconductor technology for the production of the quantum random number generator 28 presented is particularly advantageous for the co-integrability of these DMOS transistors with the other relevant electronic components of the quantum random number generator 28 presented here. The document presented here thus proposes a quantum random number generator 28 which may comprise a voltage converter 91 with one or more DMOS transistors and an entropy source 401 with one or more photon sources 54 and/or silicon LEDs 54 and/or first SPAD diodes 54 and one or more photon detectors 55 and/or second SPAD diodes 55 and preferably one or more processors (10-1, 10-2) and/or one or more data bus interfaces 64 and/or one or more volatile and/or non-volatile memories (30, 6, 16, 8) and/or a test interface 12.
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 photon source 54 or silicon LED 54 or first SPAD diode 54 in a device variant would therefore advantageously make it possible to also reduce the space necessary to electrically isolate the photon source 54 or silicon LED 54 or first SPAD diode 54 itself from the arrangement of photon detectors 55 or second SPAD diodes 54. As a result, the forward biased photon source 54 or silicon LED 54 or first SPAD diode 54 advantageously enables a more compact design of the quantum random number generator 28 and lower costs due to the smaller amount of semiconductor material used to manufacture the generator itself. However, since the structure and manufacturing technology of the photon source 54 or silicon LED 54 or first SPAD diode 54 and the photon detectors 55 or second SPAD diodes 55 are similar or even identical, the advantage of reverse bias is that the same voltage can be used to bias both components.
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 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 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 photon source 54 or silicon LED 54 or first SPAD diode 54 and the photon detectors 55 or second SPAD diodes 55 can in fact share the same semiconductor substrate 49 since they have a common connection. This allows them to be arranged close to each other (on top of each other and/or next to each other) in the semiconductor substrate 49, thus reducing the space occupied while improving their optical coupling. In any case, the low efficiency of the photoluminescence process in generating a few photons suggests "quantum detection" since the photon detector(s) 55 or second SPAD diodes 55 are by definition sensitive to a single photon.
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 photon source 54 or silicon LED 54 or first SPAD diode 54 and the arrangement of photon detectors 55 or second SPAD diodes 55 are also integrally integrated into the semiconductor substrate 49.
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 SiliziumLEDs 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 photon detectors 55 or second SPAD diodes 55, but also to directly and easily control the operating conditions of one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 and to correct any bias parameters by changing the parameters of one of said voltage converters 91 for supplying energy to one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 or to activate or deactivate one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes 54 in order to achieve the desired photon flux or the desired random bit rate of the Quantum random bits 411 to be obtained.
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 more photon detectors 55 or one or more second SPAD diodes 54 and to correct any bias parameters by changing the parameters of one of said voltage converters 91 for supplying energy to one or more photon detectors 55 or one or more second SPAD diodes 55 or to activate or deactivate one or more photon detectors 55 or one or more second SPAD diodes 55 in order to obtain the desired receivable portion of the photon flux or the desired random bit rate of the quantum random bits 411.
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 random number generator 28 is preferably provided with a light protection filter or a cover, for example a metal layer (53, 142), at the level of the top of the semiconductor substrate 49. In particular, preferably, but not necessarily, the light protection filter comprises a metallization layer (53, 142) which is applied directly during the production process, for example by the sequence of the process steps of a BCD technology, for example as last metallization level can be produced. This metal layer (53, 142) does not necessarily have to be produced last. It is typically sufficient if the relevant device parts of the entropy source 401 are covered. Preferably, further device parts of the one-piece, micro-integrated circuit of the quantum random number generator 28 are covered with this metal cover (53, 142) so that it also protects these circuit parts from manipulation by means of electromagnetic radiation and/or thermal, local stress and/or by means of magnetic fields and/or other interventions by influencing physical parameters of such other circuit parts of the quantum random number generator 28. This protection should preferably in particular cover the memories (e.g. 404.9, 30, 6, 8, 16, 22, 20) and/or the processor (10-1, 10-2) and/or the monitoring devices - such as watchdog 404.5, ADC 403, voltage monitor 413, amplifier 402, finite state machine 404.8. This solution has the function of shielding the photon detector(s) 55 or second SPAD diodes 55 or the other circuit parts of the quantum random number generator 28 from external light and other physical interference signals. This solution therefore also has the function of making the photon detector(s) 55 or second SPAD diode(s) 55 sensitive only to the photons that pass through the semiconductor substrate 49 to the photon detectors 55 or second SPAD diodes 55 due to crosstalk from the photon source 54 or silicon LED 54 or first SPAD diode 54. In addition, the metallization layer (53, 142) also has the function of improving the coupling of the photons emitted by the semiconductor substrate 49, in particular the silicon substrate. For this purpose, the metallization layer 53 reflects the electromagnetic radiation generated by the same photon source 54 or silicon LED 54 or first SPAD diode 54 after exiting the semiconductor material of the semiconductor substrate 49 back into the insulation layers of the metallization stack on the semiconductor substrate 49, so that these photons cannot leave the micro-optical system of the one-piece microelectronic circuit of the quantum random number generator 28. This increases the number of photons that reach the photon detector(s) 55 or the second SPAD diode 55 or the second SPAD diodes 55. This in turn increases the random bit data rate of the quantum random bits 411 of the quantum random number generator 28. This thus strengthens the optical coupling between the photon source 54 or silicon LED 54 or first SPAD diode 54 on the one hand and the array of photon detectors 55 or second SPAD diodes 55 on the other hand.
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. 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. Furthermore, the metal cover 53 of the optical waveguide 44 in the metallization stack of the microelectronic circuit on the semiconductor substrate 49 advantageously also has the function of protecting the quantum random number generator 28 from any attempts by malicious persons to influence the functionality of the system of the proposed device. 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 random number generator 28 according to the invention.
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 random number generator 28 may optionally also comprise electronic post-processing means (404.3, 404.4, 404.8) configured to receive as input the binary sequences extracted by the electronic sampling means (403, 2022, 402, 403, 404.2), which in turn are connected to the array of photon detectors 55 and second SPAD diodes 55, respectively.
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 binary sequences 409, 415 in such a way that a so-called "whitening" operation is performed. This last word designates a plurality of compression operations that serve to improve the statistical properties of the generated binary sequences (415, 409). Consequently, it is advantageous that this further post-processing step makes it possible to increase the entropy level of the proposed quantum random number generator 28.
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. 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. 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 photon detectors 55 or second SPAD diodes 55 or alternatively to a subset of the photon detectors 55 or second SPAD diodes 55 or even to a single pixel, are configured to implement a logical extraction method intended to extract a binary sequence of random bits (409, 415) based on the number of photons detected in the array of photon detectors 55 or second SPAD diodes 55, in the subset, in the only one of the photon detectors 55 or in the only second SPAD diode 55 or even in the single pixel. According to the proposal, a first logical extraction method, which is implemented by the sampling means (2022, 402, 403, 404.2) of the proposed quantum random number generator 28, comprises the division of the observation window of each photon detector 55 or of every second SPAD diode 55 into a plurality of successive observation sub-windows Tw, typically having the same duration. If the entropy extraction generates a pulse on its output line 405, a synchronization stage (403, 2022) synchronizes the pulse with the system clock 2106 of the quantum random number generator 28. An observation sub-window Tw typically corresponds to the temporal period of the system clock 2106. 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 photon detectors 55 or the photons detected by the second SPAD diodes 55 in relation to a reference time as a digital numerical value using a time counter. However, this has the disadvantage that an attacker may be able to manipulate this time via a so-called side channel, without any information being given as to how this could be done. In the context of the document presented here, it is assumed that the attacker succeeds in carrying out this manipulation in an unknown way. The attacker would then be able to manipulate the supposed "random bits", which would give them a deterministic character, which would possibly enable encryption and/or locks to be broken. The proposal presented here prevents this.
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 [=H igh-Pegel] ). The one-piece, integrated microelectronic circuit of the quantum random number generator 28 typically generates these successive observation subwindows Tw starting from the system clock 2106. An observation window Tw in the sense of the document presented here can, for example, begin with a first edge of the system clock 2106 in a first edge direction, which can be rising or falling, and end with the next directly following edge of the system clock 2106 in the same edge direction (rising or falling). The duty cycle of this system clock 2106 typically defines the time in which the photon detector 55 or the second SPAD diode 55 is at the dead time level (system clock 2106 = H [= high level] ).
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 SiliziumLED 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. Das in Figur 22 dargestellte Diagramm stellt die Erfassung der Pulse (2201, 2202, 2203, 2204) auf dem Spannungssignal 405 der Entropie Quelle 401 dar. Die Entropiequelle 401 umfasst bevorzugt die eine oder die mehreren Photonenquellen 54 bzw. die eine oder die mehreren Silizium-LEDs 54 bzw. die eine oder die mehreren SPAD-Dioden 54 und die Lichtübertragungsstrecke 44 zwischen diesen. Die Entropiequelle 401 ist vorzugsweise in bzw. auf dem Halbleitersubstrat 49 gefertigt und damit vorzugsweise Teil der mikrointegrierten Schaltung des Quantenzufallszahlengenerators 28. Das Ausgangssignal 405 der Entropiequelle 401 ist typischerweise das besagte Spannungssignal 405 der Entropiequelle 401. Das Spannungssignal 405 der Entropiequelle 401 ist bevorzugt das Signal eines oder mehrerer Photonendetektoren 55 bzw. einer oder mehrerer zweiten SPAD-Dioden 55 der Entropiequelle 401. 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 pseudorandom number which corresponds to the arrival time of a second photon from the photon source 54 or the silicon LED 54 or the first SPAD diode 54 at a photon detector 55 or a second SPAD diode 55, respectively, in relation to the arrival time of a preferably immediately preceding first photon from the photon source 54 or the silicon LED 54 or the first SPAD diode 54 at a photon detector 55 or a second SPAD diode 55. The device proposed here of the one-piece integrated microelectronic circuit of the proposed quantum random number generator 28 generates this first pseudorandom number by means of a time-to-random number converter (TPRC). Such a time-to-pseudo-random-number converter (TPRC) can also be composed of several stages. For example, the time-to-pseudo-random-number converter (TPRC, 404.3) can comprise an analog instrument, a time to analog converter (TAC), which would then be followed by an analog to pseudo-random number converter (APRC) in the data path to again result in a time-to-pseudo-random number converter (TPRC, 404.3). The diagram shown in Figure 22 represents the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401. The entropy source 401 preferably comprises the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 and the light transmission path 44 between them. The entropy source 401 is preferably manufactured in or on the semiconductor substrate 49 and is thus preferably part of the micro-integrated circuit of the quantum random number generator 28. The output signal 405 of the entropy source 401 is typically the said voltage signal 405 of the entropy source 401. The voltage signal 405 of the entropy source 401 is preferably the signal of one or more photon detectors 55 or one or more second SPAD diodes 55 of the entropy source 401.
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 SiliziumLEDs 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 voltage signal 405 shows exemplary pulses 2201, 2202, 2203, 2104 for random events of the voltage signal 405. These can be spontaneous voltage pulses of the photon detector 55 or the second SPAD diode 55 of the entropy source 401, which are not related to the activity of the photon source 54 or the silicon LED 54 or the first SPAD diode 54 of the entropy source 401. However, the pulses 2201, 2202, 2203, 2204 of the photon detector 55 or the second SPAD diode 55 of the entropy source 401 can also be based on stimulated emission, which causes the detection of a photon of the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401.
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 photon detector 55 or by the second SPAD diode 55 of the entropy source 401, a dead time occurs during which the photon detector 55 or the second SPAD diode 55 of the entropy source 401 is no longer able to receive. If the magnitude of the voltage signal 405 of the entropy source 401 exceeds a threshold value 2105, an analog-to-digital converter (ADC, 403), here an exemplary one-bit analog-to-digital converter 403,
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 system clock 2106 of the quantum random number generator 28, which is preferably one of the system clock cycles of the integral microintegrated circuit, on a synchronized voltage signal 415.
In dem Beispiel der Figur 21 ist diese Pulsverlängerungsschaltung beispielsweise so konstruiert, dass sie für mindestens drei nachfolgende Takte auf einen ersten logischen Pegel geht und dann bis zum nächsten Ereignis auf dem zweiten logischen Pegel hier beispielhaft mit der fallenden Flanke des dritten Taktpulses zurückfällt. Statt drei Taktpulsen können a bis n Taktpulse verwendet werden, wobei eine ganze positive Zahl ist. In the example of Figure 21, this pulse extension circuit is designed in such a way that it goes to a first logic level for at least three subsequent clock cycles and then until the next event at the second logic level, here for example with the falling edge of the third clock pulse. Instead of three clock pulses, a to n clock pulses can be used, where is a positive integer.
In dem Beispiel der Figur 21 stellen die fallenden Flanken der Pulse 2211, 2212, 2213, 2214 des einsynchronisierten Spannungssignal 415 die einsynchronisierten Signale der Entropiequelle 401 dar.In the example of Figure 21, the falling edges of the pulses 2211, 2212, 2213, 2214 of the synchronized voltage signal 415 represent the synchronized signals of the entropy source 401.
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 first pulse 2211 of the synchronized voltage signal 415, the time-to-pseudorandom number converter (TPRC) resets a pseudorandom number generator, for example, to a predefined seed value. For example, the pseudorandom number generator of the time-to-pseudorandom number converter (TPRC) can be a feedback shift register that shifts its values by one place to the left or right depending on the design with each clock pulse of the system clock 2106 and feeds the feedback value of the feedback polynomial back into the bit that becomes free.
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 system clock 2106 is bijectively assigned exactly one pseudorandom number of the pseudorandom number generator from the falling edge. This means that the value of the pseudorandom number must be able to be used to determine the temporal position of the relevant clock pulse of the system clock 2106 after the falling edge of the synchronized voltage signal 415.
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 second pulse 2212 synchronized voltage signal 415, a first pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
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. 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 zweitenWith the next falling edge of the voltage signal 415 synchronized with the third pulse 2213, a second pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value. The entropy extraction 401 compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a quantum random bit 411 with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a quantum random bit 411 with a second logical level that is different from the first level. With the next falling edge of the fourth pulse 2214 of the synchronized voltage signal 415, the first pseudorandom number register takes over the previous value of a second pseudorandom number register and the second pseudorandom number register instead takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value. The entropy extraction 401 then compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second
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. Pseudorandom number register, for example, the entropy extraction 404.4 can generate another new and here second quantum random bit 411 with a second logic level that is different from the first level.
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 random number generator 28 can continue this process of quantum random bit generation and thus generate a continuous stream of quantum random bits 411, albeit with phase noise.
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 synchronized voltage signal 415, the randomness of the quantum random bit 411 is only marginally disturbed, since the attacker would also have to know the feedback polynomial.
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 random number generator 28 changes the feedback polynomial of the linearly feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number m of random quantum bits 411 as a function of one or more previously determined random quantum bits 411.
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 RKNi 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 RKNi 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 this, it is also useful if, for example, the quantum random number generator 28 changes the shift register length n of the linearly fed-back shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number k of quantum random bits 411 depending on one or more previously determined quantum random bits 411. For this purpose, it is useful if the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a Processor (10-1, 10-2) rewrites the value of the feedback polynomial selection register 2112 for this purpose. The value stored in the feedback polynomial selection register 2112 preferably controls the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC). Thus, the value stored in the feedback polynomial selection register 2112 preferably selects which feedback polynomial of the m feedback polynomial circuits RKNi to RKN m determines the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, by means of a line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this quantum random bit 411 is used for the feedback polynomial selection register 2112. This prevents double use and thus increases security. Instead, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this quantum random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112. This has the advantage that the feedback polynomial of the m feedback polynomial circuits RKNi to RKN m selected by the feedback polynomial selection register 2112 is completely random. It is therefore no longer possible for an attacker to feed in a deterministic bit data stream instead of the data bit stream of the quantum random bits 411, even if an attack on the entropy source 401 is successful.
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 SBi 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 SBi bis SBn des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) In order to further harden the proposed micro-integrated quantum random number generator 28, it is also useful if, for example, the quantum random number generator 28 changes the start value (seed value) of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number p of random quantum bits 411 depending on one or more previously determined quantum random bits 411. For this purpose, it is useful if the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of a seed reload register in the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) with quantum random bits 411 for this purpose. The bit width of a seed reload register in the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably corresponds to the number n of the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC). The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably counts the number of successfully generated quantum random bits 411. Preferably, the finite state machine 404.8 signals the For this purpose, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) generates a valid quantum random bit 411. Instead of counting the valid quantum random bits 411, it is also possible to count the successfully generated random data words 418 in the finite state machine 404.8. The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably loads the new seed value of a seed reload register in the shift register controller 2103 into the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC) at one or more of the following events.
• bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Quantenzufallsbits 411 und/oder • upon reaching a predetermined number of successfully generated quantum random bits 411 and/or
• bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Zufallsdatenworte 418 und/oder • upon reaching a predetermined number of successfully generated random data words 418 and/or
• 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 RKNi bis RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). • when changing the value of the feedback polynomial selection register 2112 of the time-to-pseudorandom number converter 404.3 (TPRC) and thus the selected feedback polynomial of the m feedback polynomials RKNi to RKN m of the time-to-pseudorandom 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 random number generator 28 are covered with a metal layer 142, 53 in order to ward off any influence by temperature or electromagnetic radiation or electrostatic fields or magnetic fields. Preferably, the metal layer also comprises a soft magnetic layer to ward off attempts at attack using magnetic fields.
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 zurPreferably, by means of a line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevent the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 if this quantum random bit 411 is used for the seed reload register in the shift register controller 2103 in the time-to-pseudo-random number converter 404.3 (TPRC). This prevents double use and thus increases security. Instead, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this quantum random bit 411 for generating a random data word for
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 SBi 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. Storage in the seed reload register in the shift register controller 2103. This has the advantage that the selected by the seed reload register in the shift register controller 2103 Seed value of the linear feedback shift register of the n shift register bits SBi to SB n is completely random. Since a linear feedback shift register has two cycles when using simple primitive feedback polynomials, one of which only includes one shift register value, this one-cycle shift register value must be prevented. If the random reload value of the seed reload register in the shift register controller 2103 corresponds to the one-cycle seed value of the linear feedback shift register with the current feedback polynomial or the next feedback polynomial provided, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device generates a new random reload value in the seed reload register of the shift register controller 2103.
Bevorzugt sind die m Rückkoppelpolynome RKNi 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 RKNi 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 SBi bis SBn umfasst. Befindet sich der Zustandsvektor der n Schieberegisterbits SBi 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 SBi 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 RKNi 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 RKNi to RKN m . In any case, it is recommended that the time-to-pseudorandom number converter 404.3 (TPRC) includes a detection circuit 2113 for detecting an illegal value of the state vector of the n shift register bits SBi to SB n when linear feedback shift registers are used. If the state vector of the n shift register bits SBi to SB n is in such an illegal state, the detector 2113 preferably signals this illegal state to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device. The detector 2113 or the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device then resets the value of the state value of the state vector of the n shift register bits SBi to SB n to a predetermined value and/or the value of the seed reload register in the shift register controller 2103. These reload values are preferably different from the one-cycle shift register value. This preferably also occurs when the watchdog 404.5 and/or the voltage monitor 413 detect a fault or a suspected or possible attack. Preferably, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) counts the number of these faults. Preferably, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) reduces this counter value again depending on the number of random quantum bits 411 and/or random data words 418 successfully generated, in particular since the last fault. If this number and/or the event density of such events exceeds a certain predetermined temporal density and/or a certain numerical value, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably signals to the watchdog 404.5 and/or a Processor (10-1, 10-2) detects a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28. Typically, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) then signals the finite state machine 404.8 that no more random numbers may be generated. Preferably, a processor (10-1, 10-2) must then reactivate the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) using a predetermined reactivation code word. The processor (10-1, 10-2) then writes this reactivation code word via the internal data bus 419 of the quantum random number generator 28 into a special reactivation register of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which reactivates the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) and the quantum random number generator 28 and preferably resets all error counters. The number of possible reactivations is preferably limited. If the maximum number of reactivations is exceeded, the quantum random number generator 28 can preferably no longer be reactivated. The counter for the reactivations of the quantum random number generator 28 can preferably be reset by means of a special reset command before this maximum value is reached. Preferably, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28 or another device of the quantum random number generator 28 issues a warning before reaching this blocking limit.
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. 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. When the quantum random number generator 28 is started, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first ensures that the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first determines a new seed value based on quantum random numbers 411 and a new value of the feedback polynomial selection register 2112 based on quantum random numbers from quantum random bits 411 by means of a predetermined seed value and a predetermined value of the feedback polynomial selection register 2112. Only when the seed value and the value of the feedback polynomial selection register 2112 are based on quantum random numbers is the initialization phase of the quantum random number generator 28 completed and the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) signals the finite state machine 404.8 that it may use and pass on the quantum random bits 411 and the quantum random data words 418 (quantum random numbers). The finite state machine 404.8 preferably signals this fact to one or more processors (10-1, 10-2). This has the advantage that the device only generates quantum random numbers 418 generated with full protection. 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 random bits 411, even if an attack on the entropy source 401 is actually successful for whatever reason.
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 random number generator 28 changes this number m after the complete determination of a number m of quantum random bits 411 depending on one or more previously determined quantum random bits 411.
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 random number generator 28 does not output these already used quantum random bits 411 and does not use them for generating quantum random data words 418.
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 value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) as the value of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC). If necessary, a buffer amplifier can be provided which detects the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) and outputs it as the value of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC).
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 output 410 of the time-to-pseudorandom number converter 404.3, a first pseudorandom number 410.1 and a second pseudorandom number 410.2.
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 counts the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are unequal using this counter and decrements the counter by a second counter step size with each such event, preferably the value 0 is not undercut. Preferably, the second counter step size is smaller in magnitude than the first counter step size of the counter in the entropy extraction 404.4. If the value of this counter exceeds a predetermined value, the control device of the entropy extraction 404.4 assumes a defect in the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the control device of the entropy extraction 404.4 then signals a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28 to a processor (10-1, 10-2). Preferably, the entropy extraction 404.4 then no longer signals the finite state machine that a quantum random bit 411 has been successfully generated, so that the finite state machine 404.8 can no longer report successful quantum random number generation to a processor (10-1, 10-2) and no longer generates quantum random numbers 1018.
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 random bits 411 into quantum random data words 418, each of which represents a quantum random number, and makes these available to the processors (10-1, 10-2) via a RAM or a FIFO 404.9 via the internal data bus 419. The finite state machine 404.8 preferably signals the provision of one or more quantum random numbers to one or more processors (10-1, 10-2).
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 system clock 2106. By using a time-to-pseudorandom number generator 404.3 (TPRC), a monofrequency or otherwise systematic disturbance of the system clock 2106 is spread in the spectrum with a random spreading code, making detection difficult, if not impossible, for an attacker.
Dies Erschwert die Angreifbarkeit des Quantenzufallszahlengenerators 28 weiter. This further complicates the vulnerability of the quantum random number generator 28.
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-pseudorandom number converter and a quantum random number for the selection of the simple primitive feedback polynomial, the behavior of the time-to-pseudorandom 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 random number generator 28 achieves all of the above-mentioned goals.
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 random number generator 28 that makes it possible to guarantee a high level of entropy so that it at least passes the statistical tests defined by NIST.
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 random number generator 28 which makes it possible to achieve a high bit rate when generating random sequences of quantum random bits 411 and/or quantum random data words 418.
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 random number generator 28 which, compared to the quantum random number generators of the prior art, has a more compact, more robust and less complex and, above all, micro-integrated and CMOS compatible structure, which allows one-piece manufacturing and co-integration into conventional systems such as memories (such as DRAMS, SRAMS, flash memories and the like) or processors (microprocessors and/or microcontrollers and/or SoCs with a processor on the IC).
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 random number generator 28 with a high degree of security against any attempt to manipulate its internal components. In particular, the use of a time-to-pseudo-random number generator 1004.3 (TRNG) prevents the evaluation of successful attacks on the entropy source 401. Furthermore, the many tests enable a reliable detection of an attack on the quantum random number generator 28 and thus prevent the use of manipulated numbers as supposedly secure quantum random numbers.
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 random number generator 28 which is more economical than the generators of the known state of the art, in particular due to the ability to be co-integrated into CMOS circuits.
Ein weiterer Aspekt der vorliegenden Offenbarung betrifft einen integrierten Quantenzufallszahlengenerator, 28, mit einer Entropiequelle 401 umfassend eine Photonenquelle 54 und einen Einzelphotonendetektor 55, wobei die Photonenquelle 54 und der Einzelphotonendetektor 55 zur weiteren Kompaktierung der Vorrichtung in vertikaler Richtung bezogen auf die Oberfläche des Halbleitersubstrats 49, das die horizontale Richtung im Sinne des hier vorliegenden Dokuments markiert, übereinander in einem gemeinsamen Substrat aus einem Halbleitermaterial angeordnet sind. Eine erfindungsgemäße Entropiequelle 401 kann auch mehrere an einen einzelnen Einzelphotonendetektor 55 gekoppelte Photonenquellen (z. B. zur Erhöhung der Photonenrate oder der Ausfallsicherheit) 54 oder mehrere an eine einzelne Photonenquelle 54 gekoppelte Einzelphotonendetektoren (z. B. für Überwachungszwecke) 55 oder mehrere an mehrere Photonenquellen 54 gekoppelte Einzelphotonendetektoren (z. B. für Überwachungszwecke) 55 umfassen. Ebenfalls möglich ist die Kombination von mehreren Photonenquellen 54 und Einzelphotonendetektoren 55 zu einer einzelnen Entropiequelle 401. Another aspect of the present disclosure relates to an integrated quantum random number generator, 28, with an entropy source 401 comprising a photon source 54 and a single photon detector 55, wherein the photon source 54 and the single photon detector 55 are arranged in the vertical direction for further compaction of the device based on the surface of the semiconductor substrate 49, which marks the horizontal direction in the sense of the present document, are arranged one above the other in a common substrate made of a semiconductor material. An entropy source 401 according to the invention can also comprise several photon sources coupled to a single single-photon detector 55 (e.g. to increase the photon rate or the reliability) 54 or several single-photon detectors coupled to a single photon source 54 (e.g. for monitoring purposes) 55 or several single-photon detectors coupled to several photon sources 54 (e.g. for monitoring purposes) 55. The combination of several photon sources 54 and single-photon detectors 55 to form a single entropy source 401 is also possible.
Im Gegensatz zum Stand der Technik findet somit keine Nebeneinanderanordnung der Photonenquellen 54 und Photonendetektoren 55, sondern eine kompakte Anordnung einer Photonenquelle 54 und eines Einzelphotonendetektors 55 übereinander statt. Es handelt sich somit hierbei um eine besonders kompakte monolithische 3D-lntegration mit minimalem Flächenverbrauch für die Entropiequelle 401. Insbesondere ist hierbei eine Anordnung bevorzugt, bei der der Einzelphotonendetektor 55 zur verbesserten Abschirmung gegenüber äußeren Einflüssen tieferliegend als die Photonenquelle 54 im Halbleitermaterial (d. h. Photonenquelle 54 oben, Einzelphotonendetektor 55 unten) angeordnet ist. In einer alternativen Ausführungsform kann der Einzelphotonendetektor 55 jedoch auch höherliegend als die Photonenquelle 54 im Halbleitermaterial angeordnet sein (d. h. Photonenquelle 54 unten, Einzelphotonendetektor 55 oben). Beispielsweise kann neben einer Inversion des grundsätzlichen Strukturaufbaus bei einer Prozessierung von der Oberfläche des Halbleitersubstrats 49 aus auch eine inverse Anordnung der Elemente durch eine entsprechende Strukturierung von der Rückseite des Halbleitersubstrats 49 aus erfolgen. Insbesondere kann eine Strukturierung beidseitig sowohl von der Vorderseite als auch von der Rückseite des Halbleitersubstrats 49 aus erfolgen. In contrast to the prior art, the photon sources 54 and photon detectors 55 are not arranged side by side, but rather a compact arrangement of a photon source 54 and a single photon detector 55 one above the other. This is therefore a particularly compact monolithic 3D integration with minimal space consumption for the entropy source 401. In particular, an arrangement is preferred in which the single photon detector 55 is arranged lower than the photon source 54 in the semiconductor material (i.e. photon source 54 above, single photon detector 55 below) for improved shielding against external influences. In an alternative embodiment, however, the single photon detector 55 can also be arranged higher than the photon source 54 in the semiconductor material (i.e. photon source 54 below, single photon detector 55 above). For example, in addition to an inversion of the basic structural design during processing from the surface of the semiconductor substrate 49, an inverse arrangement of the elements can also be carried out by appropriate structuring from the back of the semiconductor substrate 49. In particular, structuring can be carried out on both sides from both the front and the back of the semiconductor substrate 49.
Vorzugsweise handelt es sich bei der Photonenquelle 54 um eine Einzelphotonenquelle (engl. „Single Photon Source, SPS"), dazu eingerichtet, zeitgleich nur einzelne oder einige wenige Photonen in zufälligen Zeitabständen bereitzustellen. Solche zeitgleich nur einzelne oder nur einige wenige Photonen bereitstellende Photonenquellen 54 werden im Rahmen dieser Anmeldung auch als Einzel- photonenquellen 54 bezeichnet. Es muss sich dabei jedoch nicht um echte Einzelphotonenemitter, beispielsweise auf Basis eines einzelnen isolierten Zweiniveausystems, handeln, vielmehr können durch eine entsprechend hohe Abschwächung der Emission bzw. des zugeführten Stroms auch herkömmliche Lichtquellen als SPS 54 ausgebildet werden. Preferably, the photon source 54 is a single photon source (SPS) designed to provide only single photons or a few photons at a time at random time intervals. Such photon sources 54 that provide only single photons or a few photons at a time are also referred to as single photon sources 54 in the context of this application. However, they do not have to be real single photon emitters, for example based on a single isolated two-level system; rather, conventional light sources can also be designed as SPS 54 by attenuating the emission or the supplied current to a correspondingly high degree.
Unter einem Halbleitersubstrat 54 wird im Rahmen der vorliegenden Offenbarung der gesamteIn the context of the present disclosure, a semiconductor substrate 54 is understood to mean the entire
Halbleiter-Chip als Körper verstanden, in den beispielsweise mittels Bipolar-, BiCMOS-, CMOS- oder anderer Halbleitertechnologien eine bestimmte Elementstruktur beispielsweise durch Ausbildung von unterschiedlich dotierten Wannen oder Gebieten in das Halbleitermaterial 49 hineinstrukturiert wird. Die Strukturausbildung kann jedoch auch additiv durch Aufbringen von weiteren Schichten und Strukturen bzw. durch eine Abfolge von Ätz- und Aufbringschritten für solche weiteren Schichten und Strukturen vorzugsweise unter Ausbildung der Analog- und Digitalschaltkreise zur Auswertung und Aufbereitung des Ausgangssignals 404 der Entropiequelle 401 erfolgen. Ein entsprechendes Halbleitersubstrat 49 kann daher neben einem sogenannten Träger- oder Grundsubstrat (z. B. ein unstrukturiertes einkristallines Halbleitersubstrat 49 als Basis für das epitaktischen Aufwachsen von weiteren Halbleiterschichten) auch eine Vielzahl solcher epitaktisch aufgewachsen Schichten 48 sowie andere Beschichtungen umfassen. Das Halbleitersubstrat 49 wird in dieser Anmeldung daher als materieller Träger für die Halbleiterstrukturen einer erfindungsgemäßen Entropiequelle 401 und nicht im Sinne eines einfachen Träger- oder Grundsubstrats zum Aufbringen dieser Strukturen verstanden. Insofern stellt die Ausbildung einer erfindungsgemäßen Entropiequelle 401 übereinander in einem gemeinsamen Halbleitersubstrat 49 aus einem Halbleitermaterial eine Abgrenzung insbesondere gegenüber mit herkömmlichen Methoden hybridisch integrierten Kombinationen (z. B. mittels Flip-Chip-Montage) aus mindestens einer Photonenquelle 54 und mindestens einem Einzelphotonendetektor 55 etwa auf einem gemeinsamen Submount als Trägerstruktur dar. Semiconductor chip is understood as a body in which, for example, by means of bipolar, BiCMOS, CMOS or other semiconductor technologies, a specific element structure is structured into the semiconductor material 49, for example by forming differently doped wells or regions. However, the structure formation can also be carried out additively by applying further layers and structures or by a sequence of etching and application steps for such further layers and structures, preferably with the formation of the analog and digital circuits for evaluating and processing the output signal 404 of the entropy source 401. A corresponding semiconductor substrate 49 can therefore comprise, in addition to a so-called carrier or base substrate (e.g. an unstructured single-crystal semiconductor substrate 49 as a basis for the epitaxial growth of further semiconductor layers), a large number of such epitaxially grown layers 48 and other coatings. The semiconductor substrate 49 is therefore understood in this application as a material carrier for the semiconductor structures of an entropy source 401 according to the invention and not in the sense of a simple carrier or base substrate for applying these structures. In this respect, the formation of an entropy source 401 according to the invention one above the other in a common semiconductor substrate 49 made of a semiconductor material represents a demarcation, in particular compared to hybrid-integrated combinations (e.g. by means of flip-chip assembly) of at least one photon source 54 and at least one single-photon detector 55, for example on a common submount as a carrier structure.
Vorzugsweise handelt es sich bei der Photonenquelle 54 im Falle der vertikalen Anordnung von Photonenquelle 54 und Photonendetektor 55 um eine an einem Arbeitspunkt unterhalb oder nahe der Durchbruchspannung betriebene lichtemittierende Silizium-LED 54, besser um eine Avalanche Zener-Diode (Zener-avLED) 54. Bevorzugt weist die Zener-avLED 54 eine Durchbruchspannung von < 10 V auf, bevorzugter eine Durchbruchspannung von < 8 V und noch bevorzugter eine Durchbruchspannung von < 7 V. Die Vorteile der Verwendung einer Zener-avLED als Einzelphotonenquelle 54 werden nachfolgend näher erläutert. Diese neue Art von Einzelphotonenquellen 54 erlauben eine hohe Einzelphotonenrate durch die Einzelphotonenquelle 54 emittierter Photonen bei relativ geringer Betriebsspannung auch unterhalb und im Bereich der Zener-Durchbruchspannung und zeigen bei entsprechend gewünschter Konstruktion eine bevorzugt gerichtete Abstrahlung der erzeugten Photonen ins Innere des Halbleitersubstrats 49 und damit in Richtung des Einzelphotonendetektors 54. Die große Nähe des Einzelphotonendetektors 55 zur Einzelphotonenquelle 54 überwiegt dabei den Nachteil der erhöhten Dämpfung im Halbleitersubstrat 49. Dadurch sind Zener-avLEDs für eine Anwendung als Einzelphotonenquelle 54 in einer Entropiequelle 401 besonders geeignet. Vorzugsweise handelt es sich bei dem Einzelphotonendetektor 55 um Einzelphotonen- Lawinendioden (engl. „Single Photon Avalanche Diodes, SPADs"), also zweite SPADs 55. Darunter werden im Sinne des hier vorliegenden Dokuments Detektoren verstanden, die aufgrund ihrer besonders hohen Empfindlichkeit bei hoher Verstärkung und geringem (Dunkel)Rauschen prinzipiell dazu in der Lage sind, einzelne Photonen detektieren und nachweisen zu können. Preferably, in the case of the vertical arrangement of photon source 54 and photon detector 55, the photon source 54 is a light-emitting silicon LED 54 operated at an operating point below or close to the breakdown voltage, better an avalanche Zener diode (Zener-avLED) 54. Preferably, the Zener-avLED 54 has a breakdown voltage of < 10 V, more preferably a breakdown voltage of < 8 V and even more preferably a breakdown voltage of < 7 V. The advantages of using a Zener-avLED as a single photon source 54 are explained in more detail below. This new type of single photon source 54 allows a high single photon rate of photons emitted by the single photon source 54 at a relatively low operating voltage, even below and in the range of the Zener breakdown voltage, and, with the desired design, shows a preferably directed radiation of the generated photons into the interior of the semiconductor substrate 49 and thus in the direction of the single photon detector 54. The close proximity of the single photon detector 55 to the single photon source 54 outweighs the disadvantage of the increased attenuation in the semiconductor substrate 49. This makes Zener avLEDs particularly suitable for use as a single photon source 54 in an entropy source 401. Preferably, the single photon detector 55 is a single photon avalanche diode (SPAD), i.e. second SPADs 55. In the context of this document, this refers to detectors which, due to their particularly high sensitivity with high amplification and low (dark) noise, are in principle capable of detecting and proving individual photons.
Eine Hauptidee der erfinderischen Entropiequelle 401 der vorliegenden Erfindung liegt somit darin, durch eine Anordnung einer Zener-avLED als Photonenquelle 54 und einer zweiten SPAD 55 als Einzelphotonendetektor 55 vertikal übereinander in einem gemeinsamen Halbleitersubstrat 49 eine besonders kompakte und sicheren integrierte Entropiequelle 401 zur Verfügung zu stellen. A main idea of the inventive entropy source 401 of the present invention is thus to provide a particularly compact and safe integrated entropy source 401 by arranging a Zener avLED as photon source 54 and a second SPAD 55 as single photon detector 55 vertically one above the other in a common semiconductor substrate 49.
Ein Ansatz zur aufgabengemäßen Verbesserung der aus dem Stand der Technik bekannten Entropiequellen 401 besteht dabei in der Auswahl einer entsprechend breiten Technologieplattform. Für SoC-Designs mit einem möglichst breiten Spektrum an möglichen Anwendungen bieten integrierte Schaltungen in der Bipolar-CMOS-DMOS-Technologie (BCD-Technologie) auf Silizium ein großes Potential. Silizium-LEDs sind für diese Technologien bekannt. In BCD-Technologie konnten auch bereits erfolgreich hoch-effiziente SPADs demonstriert und realisiert werden. Dabei erlaubt die BCD-Technologie eine besonders effektive und optimierte Integration dieser SPADs mit einer Vielzahl von weiteren funktionalen Gruppen wie etwa digitalen und analogen Schaltungskomponenten, besonders energieeffizienten digitalen Speicher- und Schaltelementen, allgemeiner Leistungs- und Treiberelektronik sowie von Detektor- und Sensorbauteilen. Auf den Vorteil der Verfügbarkeit von DMOS-Transistoren für die notwendigen spannungsfesten Spannungswandler zur Erzeugung der erhöhten Versorgungsspannungen für den Betrieb der Entropiequelle 401 in der Art, dass die Photonenquellen 54 und/oder die Photonendetektoren 55 in der Nähe ihrer Durchbruchspannungen z.B. im Geiger-Modus betrieben werden können weist das hier vorgelegte Dokument besonders hin.One approach to improving the entropy sources 401 known from the state of the art is to select a correspondingly broad technology platform. For SoC designs with the widest possible range of possible applications, integrated circuits in bipolar CMOS DMOS technology (BCD technology) on silicon offer great potential. Silicon LEDs are known for this technology. Highly efficient SPADs have already been successfully demonstrated and implemented in BCD technology. BCD technology allows a particularly effective and optimized integration of these SPADs with a large number of other functional groups such as digital and analog circuit components, particularly energy-efficient digital memory and switching elements, general power and driver electronics as well as detector and sensor components. The document presented here particularly points out the advantage of the availability of DMOS transistors for the necessary voltage-stable voltage converters for generating the increased supply voltages for operating the entropy source 401 in such a way that the photon sources 54 and/or the photon detectors 55 can be operated close to their breakdown voltages, e.g. in Geiger mode.
Die im Stand der Technik bekannten Silizium-basierten SPS können im Prinzip durchaus auch in BCD- Technologien implementiert werden. Aufgrund der ungerichteten Abstrahlung der Photonen sowie einer üblicherweise direkt oberflächennah erfolgenden Implementierung sind solche Silizium-LEDs jedoch zur Realisierung besonders effizienter und vor Angriffen geschützter Entropiequellen 401 nicht optimal. Die oberflächennahe Implementierung bedingt auch zumeist eine Degradation für den Fall einer im Avalanche-Betrieb genutzten Silizium-LED. Da Silizium als indirekter Halbleiter nur schlecht zur Erzeugung von Photonen geeignet ist und diese im Allgemeinen nur durch weitere Prozesse über eine zusätzliche Wechselwirkung mit dem Kristallgitter generiert werden können, ist die Auswahl an möglichen alternativen Photonenquellen auf Basis von Silizium allerdings stark eingeschränkt. Bei der Untersuchung von in einer BCD-Technologie in unterschiedlichen Schichten durch entsprechende p-n-Übergänge bereitgestellten Zener-Dioden, welche für einen dauerhaften Arbeitspunkt selbst im Durchbruchbereich optimiert sind, wobei eine oberflächennahe Zener-Diode als Emitter und eine darunter liegende einfache p-n-Diode ohne Vorspannung (engl. „zero bias") als Photonendetektor 55 betrieben wurde, konnte durch gezeigt werden, dass in dieser Konfiguration entgegen der allgemeinen Erwartung des Fachmanns an der Zener-Diode im Avalanche-Betrieb bei der Durchbruchspannung starke Elektrolumineszenz mit einer Effektivität von mindestens 0,03 % beobachtet werden kann. Entsprechende Zener-Dioden sind im Stand der Technik üblicherweise nicht für den Betrieb als optoelektronisches Bauelement (LED) vorgesehen. The silicon-based PLCs known in the state of the art can in principle also be implemented in BCD technologies. However, due to the undirected radiation of the photons and the fact that they are usually implemented close to the surface, such silicon LEDs are not optimal for the realization of particularly efficient entropy sources 401 that are protected from attacks. The implementation close to the surface also usually results in degradation in the case of a silicon LED used in avalanche operation. Since silicon, as an indirect semiconductor, is poorly suited to the generation of photons and these can generally only be generated by further processes via an additional interaction with the crystal lattice, the selection of possible alternative photon sources based on silicon is very limited. When examining Zener diodes provided in a BCD technology in different layers by corresponding pn junctions, which are optimized for a permanent operating point even in the breakdown region, with a Zener diode close to the surface as an emitter and a simple pn diode underneath without bias (English "zero bias") as a photon detector 55, it was shown that in this configuration, contrary to the general expectation of the expert, strong electroluminescence with an effectiveness of at least 0.03% can be observed on the Zener diode in avalanche operation at the breakdown voltage. In the prior art, corresponding Zener diodes are usually not intended for operation as optoelectronic components (LEDs).
Insbesondere werden die erzeugten Photonen bevorzugt in Richtung der unteren p-n-Diode hin emittiert, welche somit nahezu alle emittierten Photonen detektieren kann, was über einen Fotostrom auch in der erfinderischen Struktur nachgewiesen werden kann (vgl. FIGs. 29 bis 32 mit zugehöriger Figurenbeschreibung). Es zeigte sich somit, dass die untersuchte Zener-Diode im Bereich der Durchbruch-/Zenerspannung eine zwar geringe, aber doch durchaus signifikante Effizienz (ca. ein detektiertes Photon pro 3000 Elektronen des Zenerdiodenstroms) aufweist und daher als Einzelphotonenquellen für die Realisierung von Entropiequellen 401 in auf Silizium basierenden BCD- Technologie hervorragend geeignet erscheinen. Vor allem die bevorzugte Abstrahlung in Richtung des Photonendetektors bietet gegenüber der isotropen Abstrahlung herkömmlicher in Entropiequellen 401 verwendeter Photonenquellen 54 deutliche Vorteile. Dabei ist das in der CMOS- Technologie übliche Silizid zur Darstellung von verringerten Kontaktwiderständen zwischen den Metall-Kontakten und dem Halbleiter Silizid einerseits lichtdicht und andererseits spiegelnd glatt, so dass auch ursprünglich nach oben ausgesandte Photonen am so gebildeten Silizidspiegel zurück ins Innere des Halbleitersubstrats 49 reflektiert werden können. Entsprechend ausgebildete und als SPS betriebene Zener-Dioden im Avalanche-Betrieb werden daher im Folgenden im Gegensatz zu den aus dem Stand der Technik bekannten Silizium-LEDs 54 auch als lichtemittierende Avalanche Zener-Diode (engl.: „Avalanche Light Emitting Zener-Diode, Zener-avLED") 54 bezeichnet. In particular, the photons generated are preferably emitted in the direction of the lower p-n diode, which can thus detect almost all emitted photons, which can also be demonstrated in the inventive structure via a photocurrent (see FIGS. 29 to 32 with the associated figure description). It was thus shown that the Zener diode examined has a low but nevertheless significant efficiency in the area of the breakdown/Zener voltage (approx. one detected photon per 3000 electrons of the Zener diode current) and therefore appears to be extremely suitable as single photon sources for the realization of entropy sources 401 in silicon-based BCD technology. In particular, the preferred radiation in the direction of the photon detector offers clear advantages over the isotropic radiation of conventional photon sources 54 used in entropy sources 401. The silicide commonly used in CMOS technology to represent reduced contact resistance between the metal contacts and the semiconductor silicide is on the one hand light-tight and on the other hand mirror-smooth, so that photons originally emitted upwards can be reflected back into the interior of the semiconductor substrate 49 by the silicide mirror thus formed. Zener diodes designed accordingly and operated as SPS in avalanche mode are therefore also referred to below as light-emitting avalanche Zener diodes (Avalanche Light Emitting Zener Diodes, Zener-avLED) 54, in contrast to the silicon LEDs 54 known from the prior art.
Die in der verwendeten BCD-Technologie bereitgestellten Zener-avLED emittieren bei der Verwendung als Photonenquelle 54 Photonen mit Wellenlängen aus dem sichtbaren Spektralbereich und weisen dabei eine relative geringe Zener-Betriebsspannung von zumeist kleiner als 8 V auf. Dies vereinfacht die Konstruktion der Ladungspumpen in den Spannungsreglern 91 zur Versorgung der Entropiequellen 401 mit elektrischer Energie. Da die Abstrahlung einer Zener-avLED bei der Verwendung als Photonenquelle 54 zudem typischerweise derart gerichtet ist, dass die Photonen bevorzugt in vertikaler Richtung, d. h. von der Oberfläche des Halbleitersubstrats 49 weg ins Halbleitersubstrat 49 hinein emittiert werden, kann zudem bei einer Anwendung in einer Entropiequelle 401 eine wesentlich stärke Isolation der SPS sowie der erzeugten Photonen gegenüber der Umgebung des Halbleitermaterials 49 erreicht werden und ein Abgreifen oder Injizieren von Photonen an der Oberfläche des Photonendetektors 55 wird deutlich erschwert. Bei geeigneter Ausbildung der zu einer Entropiequelle 401 gehörenden zweiten SPAD-Diode 55 kann zudem die Effizienz der Zufallszahlenerzeugung des Quantenzufallszahlengenerators 28 deutlich erhöht und eine unkontrollierte Photonenausbreitung im Halbleitermaterial 49 mit entsprechendem Übersprechen auf andere Schaltungsteile des mikrointegrierten Schaltkreises 2 weitgehend unterbunden werden. Das hier vorgelegte Dokument offenbart somit auch die Idee das optische Übersprechen zwischen der Entropiequelle 401 auf andere Vorrichtungsteile des mikrointegrierten Schaltkreises 2 durch eine vertikale Anordnung der Photonenquelle 54 und des Photonendetektors 55 in einem gemeinsamen Substrat mit den anderen Vorrichtungsteilen der mikrointegrierten Schaltung 2 zu minimieren. The Zener avLEDs provided in the BCD technology used emit photons with wavelengths from the visible spectral range when used as a photon source 54 and have a relatively low Zener operating voltage of usually less than 8 V. This simplifies the design of the charge pumps in the voltage regulators 91 for supplying the entropy sources 401 with electrical energy. Since the radiation of a Zener avLED when used as a photon source 54 is also typically directed such that the photons are emitted preferably in a vertical direction, ie away from the surface of the semiconductor substrate 49 into the semiconductor substrate 49, when used in a Entropy source 401 can achieve a much stronger isolation of the SPS and the photons generated from the environment of the semiconductor material 49, and tapping or injecting photons on the surface of the photon detector 55 is made significantly more difficult. With a suitable design of the second SPAD diode 55 belonging to an entropy source 401, the efficiency of the random number generation of the quantum random number generator 28 can also be significantly increased and uncontrolled photon propagation in the semiconductor material 49 with corresponding crosstalk to other circuit parts of the micro-integrated circuit 2 can be largely prevented. The document presented here therefore also discloses the idea of minimizing the optical crosstalk between the entropy source 401 and other device parts of the micro-integrated circuit 2 by a vertical arrangement of the photon source 54 and the photon detector 55 in a common substrate with the other device parts of the micro-integrated circuit 2.
Die zweite wesentliche Komponente zum Aufbau einer kompakten Entropiequelle 401 ist daher die Auswahl eines entsprechend angepassten SPAD-Designs für die zweite PSPAD-Diode des Photonendetektors 55. Typischerweise werden die zweiten SPAD-Dioden 55 in BCD-Technologien ebenfalls oberflächennah durch entsprechende Ausbildung von p- oder n-Wannen realisiert. Solche oberflächennahen SPADs als zweite SPAD-Dioden 55 sind mit den in CMOS-Technologie realisierten SPADs im Stand der Technik durchaus vergleichbar. Im Prinzip wäre somit die aus der EP 3 529 694 Bl bekannte Entropiequelle mit den obenstehend beschriebenen Zener-avLEDs auch in BCD-Technologien realisierbar. Jedoch emittieren die Zener-avLEDs als Photonenquelle 54 wie obenstehend bereits beschrieben die Photonen mit Vorteil vorzugsweise in Richtung in das Halbleitersubstrat 49 hinein. Eine aus dem Stand der Technik bekannte Nebeneinanderanordnung von einer Zener-avLED als SPS und bei der Verwendung als Photonenquelle 54 und einer oberflächennahen SPAD als zweite SPAD-Diode 55 und als Photonendetektor 55 ließe sich zwar grundsätzlich, aber nicht unbedingt effektiv umsetzen. Bei der Verwendung von Zener-avLEDs als Photonenquellen 54 ist es zweckmäßig die zugehörige zweite SPAD-Diode 55 daher unterhalb der Zener-avLED, die als Photonenquelle 54 dient, anzuordnen. The second essential component for constructing a compact entropy source 401 is therefore the selection of a correspondingly adapted SPAD design for the second PSPAD diode of the photon detector 55. Typically, the second SPAD diodes 55 in BCD technologies are also implemented close to the surface by appropriately forming p- or n-wells. Such near-surface SPADs as second SPAD diodes 55 are certainly comparable to the SPADs implemented in CMOS technology in the prior art. In principle, the entropy source known from EP 3 529 694 B1 could therefore also be implemented in BCD technologies with the Zener avLEDs described above. However, as already described above, the Zener avLEDs as photon source 54 advantageously emit the photons preferably in the direction into the semiconductor substrate 49. A juxtaposition of a Zener avLED as SPS and when used as a photon source 54 and a near-surface SPAD as a second SPAD diode 55 and as a photon detector 55, as known from the prior art, could in principle be implemented, but not necessarily effectively. When using Zener avLEDs as photon sources 54, it is therefore expedient to arrange the associated second SPAD diode 55 below the Zener avLED, which serves as the photon source 54.
Die BCD Technologie ermöglicht neben der Implementierung von konventionellen n-SPADs und p- SPADs auch die Umsetzung völlig neuartiger SPAD-Konzepte, u. a. durch die Nutzung tiefliegender n- oder p-dotierten Schichten in einem BCD-Substrat. In addition to the implementation of conventional n-SPADs and p-SPADs, BCD technology also enables the implementation of completely new SPAD concepts, including the use of deep n- or p-doped layers in a BCD substrate.
Dabei konnte durch ein erst kürzlich ebenfalls von der Anmelderin entwickeltes Verfahren zur Erzeugung tiefliegender p-n-Übergänge in einem BCD-Prozess zur Bereitstellung eines entsprechenden BCD-Substrats mit tiefliegenden p-n-Übergängen eine darauf basierende, besonders effiziente, tiefliegende Einzelphotonen-Lawinendiode („deepSPAD") realisiert werden, welche auf einfache Weise unmittelbar unterhalb einer zur Bereitstellung von Einzelphotonen eingerichteten Zener-avLED als Photonenquellen 54 angeordnet werden kann. Die Kombination aus einer Zener- avLED aals Photonenquelle 54 in Kombination mit einer tiefliegenden zweiten SPAD-Diode 55 als Photonendetektor 55 stellt somit im Gegensatz zu einer auf CMOS-Technologie basierenden horizontalen Integration einer Entropiequelle 401 gemäß Stand der Technik die wesentlichen Komponenten einer vollständig in BCD-Technologie vertikal integrierten Entropiequelle 401 bereit. In this case, a method for generating deep pn junctions in a BCD process, also recently developed by the applicant, made it possible to create a particularly efficient, deep single-photon avalanche diode ("deepSPAD") based on this process, which is based on can be arranged in a simple manner directly below a Zener avLED designed to provide single photons as a photon source 54. The combination of a Zener avLED as a photon source 54 in combination with a deep-lying second SPAD diode 55 as a photon detector 55 thus provides the essential components of an entropy source 401 that is completely vertically integrated in BCD technology, in contrast to a horizontal integration of an entropy source 401 based on CMOS technology according to the prior art.
Durch die vertikale Anordnung einer Zener-avLED als Photonenquelle 54 und einer mittels extrem tiefliegender p-n-Übergänge realisierten deepSPAD als zweiter SPAD-Diode 55 und damit als Photonendetektor 55 kann in BCD-Technologien ein miniaturisierter, auf einem monolithischen Silizium-Die als Halbleitersubstrat 49 basierender Quantenzufallszahlengenerator 28 mit einer Entropiequelle 401 mit hocheffizienter optischer Kopplung der Photonenquelle 54 und des Photonendetektors 55, hoher Angriffssicherheit sowie relativ geringer Betriebsspannung und damit reduziertem Spannungswandleraufwand realisiert werden. Damit stellt das hier vorgestellte Design der vertikalen Entropiequelle 401 auf BCD-Basis mit einem vertikal zu einer Photonenquelle 54 angeordneten Photonendetektor 55 in einem einstückigen mikrointegrierten Schaltkreis 2 eine optimale Lösung der erfindungsgemäßen Aufgabe dar. Insbesondere kann durch die vertikale 3D- Integration die Kompaktheit einer Entropiequelle 401 weiter erhöht und der Chip-Flächenverbrauch gegenüber herkömmlichen lateralen 2D-Designs bei gleichzeitiger Steigerung der Effizienz reduziert werden. Dies ermöglicht erst die Platzierung der Entropiequelle 401 im Pad-Rand 2403 eines mikrointegrierten Schaltkreises 2. Damit sinkt der effektive Chipflächenverbrauch für die vorschlagsgemäße Entropiequelle 401 auf effektiv 0, was einen massiven wirtschaftlichen Vorteil zur Folge hat. By vertically arranging a Zener avLED as photon source 54 and a deepSPAD realized by means of extremely deep p-n junctions as a second SPAD diode 55 and thus as photon detector 55, a miniaturized quantum random number generator 28 based on a monolithic silicon die as semiconductor substrate 49 with an entropy source 401 with highly efficient optical coupling of the photon source 54 and the photon detector 55, high security against attacks and a relatively low operating voltage and thus reduced voltage converter effort can be realized in BCD technologies. The design of the vertical entropy source 401 presented here on a BCD basis with a photon detector 55 arranged vertically to a photon source 54 in a one-piece micro-integrated circuit 2 therefore represents an optimal solution to the inventive task. In particular, the vertical 3D integration can further increase the compactness of an entropy source 401 and reduce the chip area consumption compared to conventional lateral 2D designs while simultaneously increasing efficiency. This is what makes it possible to place the entropy source 401 in the pad edge 2403 of a micro-integrated circuit 2. This reduces the effective chip area consumption for the proposed entropy source 401 to effectively 0, which results in a massive economic advantage.
Vorzugsweise sind eine erfindungsgemäße Entropiequelle 401 und der zugehörige Quantenzufallszahlengenerator 28 daher in einem BCD-Substrat als Halbleitersubstrat 49 ausgebildet, das mittels einer BCD-Technologie gefertigt wurde. Preferably, an entropy source 401 according to the invention and the associated quantum random number generator 28 are therefore formed in a BCD substrate as a semiconductor substrate 49, which was manufactured using a BCD technology.
Vorzugsweise umfasst das BCD-Substrat dabei ein Trägersubstrat 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 und eine auf dem Trägersubstrat 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 aufgewachsene epitaktische Schicht 48, wobei zwischen dem Trägersubstrat 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 und der epitaktischen Schicht 48 durch eine Diffusion von in eine Oberfläche des Trägersubstrats 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 unterhalb der epitaktischen Schicht 48 eingebrachten Dotierstoffen ein in der epitaktischen Schicht 48 liegender tiefliegender p-n-Übergang erzeugt wurde. Bei dem Trägersubstrat 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 kann es sich bevorzugt um ein p-Substrat handeln. Es können jedoch auch n-Substrate oder intrinsische Substrate verwendet werden. Bei dem Substratmaterial des Trägersubstrats 49 der vorschlagsgemäßen vertikalen Entropiequelle 401 kann es sich insbesondere um Silizium handeln. Die Verfahren sind jedoch prinzipiell auch für andere Halbleitermaterialien adaptierbar. Ein typischer Dotierstoff zur Ausbildung eines p-Gebiets ist Bor. Zur Ausbildung eines n-Gebiets können beispielsweise Phosphor (P), Arsen (As) oder Antimon (Sb) verwendet werden. Dabei diffundiert beispielsweise in Silizium Bor als Dotierstoff deutlich weiter aus als die schweren Donatoren (P, As oder Sb). Zudem kann festgestellt werden, dass dabei die erzeugten n-Gebiete aufgrund der höheren verwendeten Dosen weitgehend dominant sind, d. h. ein bereits mit Phosphor dotiertes n-Gebiet kann auch nach einem zusätzlichen Einbringen von Bor seinen vorhandenen Leitungstyp beibehalten. Für die Bereitstellung der tiefliegenden p-n-Übergänge kann mitunter auf zusätzliche Masken-, Lithographie- und Epitaxie- Schritte im üblichen BCD-Prozess verzichtet werden. The BCD substrate preferably comprises a carrier substrate 49 of the proposed vertical entropy source 401 and an epitaxial layer 48 grown on the carrier substrate 49 of the proposed vertical entropy source 401, wherein a deep pn junction in the epitaxial layer 48 was created between the carrier substrate 49 of the proposed vertical entropy source 401 and the epitaxial layer 48 by diffusion of dopants introduced into a surface of the carrier substrate 49 of the proposed vertical entropy source 401 below the epitaxial layer 48. The carrier substrate 49 of the proposed vertical entropy source 401 can preferably be a p-substrate. However, n-substrates or intrinsic substrates can also be used. The substrate material of the carrier substrate 49 of the proposed vertical entropy source 401 can in particular be silicon. However, the methods can in principle also be adapted for other semiconductor materials. A typical dopant for forming a p-region is boron. Phosphorus (P), arsenic (As) or antimony (Sb) can be used to form an n-region. In silicon, for example, boron diffuses significantly further as a dopant than the heavy donors (P, As or Sb). It can also be seen that the n-regions created are largely dominant due to the higher doses used, i.e. an n-region already doped with phosphorus can retain its existing conduction type even after additional boron has been introduced. To provide the deep pn junctions, additional mask, lithography and epitaxy steps in the usual BCD process can sometimes be dispensed with.
Vorzugsweise weisen der erste und der zweite Dotierstoff unterschiedliche Diffusions-eigenschaften im Trägersubstrat und/oder in der epitaktischen Schicht auf. Bevorzugt weist der zweite Dotierstoff eine höhere Beweglichkeit im Trägersubstrat und/oder in der epitaktischen Schicht auf als der erste Dotierstoff. Vorzugsweise erfolgt das Einbringen des ersten Dotierstoffs und/oder des zweiten Dotierstoffs maskenlos oder über ein Masken-verfahren. Zum maskenlosen Einbringen kann beispielsweise ein direktes lonenstrahlschreibverfahren beispielsweise mittels fokussierter lonenstrahlen verwendet werden. Bei einem Maskenverfahren erfolgt das Einbringen mit Hilfe einer zuvor bereitgestellten und/oder vorzugsweise fotolithografisch gefertigten Maske, wobei das Einbringen beispielsweise über ein chemisches oder physikalisches Abscheideverfahren oder ebenfalls mittels eines lonenstrahlschreibverfahrens erfolgt. Vorzugsweise überlagert unmittelbar nach dem Einbringen des zweiten Dotierstoffs in einer Aufsicht auf die Oberfläche des Trägersubstrats das erste Gebiet oder das zweite Gebiet vollständig das jeweils anderen Gebiet. Vorzugsweise handelt es sich bei dem ersten Bereich um eine tiefliegende n-Schicht (NBL-Schicht) und bei dem zweiten Gebiet um eine tiefliegende p-Schicht (PBL-Schicht). The first and second dopant preferably have different diffusion properties in the carrier substrate and/or in the epitaxial layer. The second dopant preferably has a higher mobility in the carrier substrate and/or in the epitaxial layer than the first dopant. The first dopant and/or the second dopant are preferably introduced without a mask or using a mask process. For maskless introduction, a direct ion beam writing process, for example using focused ion beams, can be used. In a mask process, the introduction is carried out using a mask that has been provided beforehand and/or is preferably produced photolithographically, the introduction being carried out using a chemical or physical deposition process or also using an ion beam writing process. Preferably, immediately after the introduction of the second dopant, in a plan view of the surface of the carrier substrate, the first region or the second region completely overlays the other region. Preferably, the first region is a deep n-layer (NBL layer) and the second region is a deep p-layer (PBL layer).
Vorzugsweise bildet der Einzelphotonendetektor 55 in einem Bereich um den tiefliegenden p-n- Übergang ein Lawinengebiet aus und umfasst ein Absorptionsgebiet zur Umwandlung von Photonen in Elektronen-Lochpaare, wobei sich das Absorptionsgebiet unmittelbar an den tiefliegenden p-n- Übergang anschließt. Preferably, the single photon detector 55 forms an avalanche region in a region around the deep p-n junction and comprises an absorption region for converting photons into electron-hole pairs, wherein the absorption region is directly adjacent to the deep p-n junction.
Bevorzugt ist, dass der tiefliegende p-n-Übergang zumindest teilweise zwischen einer tiefliegenden n-Schicht als Kathode und einer sich unmittelbar an die tiefliegende n-Schicht anschließenden tiefliegenden p-Schicht ausgebildet ist. Ebenfalls bevorzugt ist, dass das Absorptionsgebiet sich unmittelbar an die tiefliegende p-Schicht anschließt und im Wesentlichen als p-Gebiet ausgebildet ist. Im Wesentlichen bedeutet dabei, dass das Absorptionsgebiet teilweise auch als intrinsisches Gebiet ausgebildet sein kann. Weiterhin bevorzugt ist, dass eine als p+-Gebiet ausgebildete Anode sich unmittelbar an das Absorptionsgebiet anschließt. It is preferred that the deep pn junction is formed at least partially between a deep n-layer as a cathode and a deep p-layer immediately adjacent to the deep n-layer. It is also preferred that the absorption region is directly adjoins the deep p-layer and is essentially designed as a p-region. Essentially means that the absorption region can also be partially designed as an intrinsic region. It is also preferred that an anode designed as a p+ region directly adjoins the absorption region.
Vorzugsweise wird ein unterhalb des in der epitaktischen Schicht 48 liegenden tiefliegenden p-n- Übergangs des Einzelphotonendetektors 55 ausgebildeter zweiter tiefliegender p-n-Übergang (z. B. in dem Trägersubstrat 49) als zusätzlicher Photonendetektor 55 zur Überwachung auf äußere Angriffe genutzt. Durch das besagte Verfahren zur Erzeugung tiefliegender p-n-Übergänge in einem BCD- Prozess ergibt sich nämlich bei einigen Ausführungsformen unterhalb des ersten p-n-Übergangs ein darunterliegender zweiter p-n-Übergang (siehe FIG. 27 mit zugehöriger Figurenbeschreibung) (Beobachtungsdiode 28040). Dieser zweite p-n-Übergang kann aufgrund seiner weitgehend identischen elektronischen Eigenschaften ebenfalls als Photonendetektor 55 bzw. Einzelphotonen- Lawinendiode 55 konfiguriert werden. Da dieser zusätzliche Photonendetektor 55 somit unterhalb der eigentlichen Anordnung der Entropiequelle 401 tief vergraben im Halbleitermaterierial 49 angeordnet ist, kann dieser eine zusätzliche, aus dem Stand der Technik unbekannte Schutzfunktion gegenüber von der Rückseite des Halbleitersubstrats 49 injizierten Photonen bereitstellen. Vorzugsweise verwenden der vorschlagsgemäße Watchdog 404.5 und/oder der vorschlagsgemäße Spannungsmonitor 423 diesen zweiten p-n-Übergang als lichtempfindliche Beobachtungsdiode 28040. Vorzugsweise werten der vorschlagsgemäße Watchdog 404.5 und/oder der vorschlagsgemäße Spannungsmonitor 423 die Diodenspannung der Beobachtungsdiode 28040 (Beobachtungsdiodenspannung) in Form dieses zweiten PN-Übergangs aus, erfassen die Diodenspannung dieser Beobachtungsdiode 28040 als Beobachtungsdiodenspannungswert und vergleichen diesen Beobachtungsdiodenspannungswert mit einem erlaubten Beobachtungsdiodenspannungswertintervall. Liegt der Beobachtungsdiodenspannungswert außerhalb des Beobachtungsdiodenspannungswertintervalls, so schließen der vorschlagsgemäße Watchdog 404.5 und/oder der vorschlagsgemäße Spannungsmonitor 423 auf einen Defekt oder einen photonischen Angriff auf die Entropiequelle 401. In diesem Fall signalisieren nach der Detektion eines solchen Vorfalls das Vorliegen eines solchen Vorfalls an einen der Prozessoren 10-1, 10-2 und/oder halten eine solche Information bereit. Bevorzugt signalisiert der Watchdog 404.5 einen solchen Vorfall mittels eines Interrupt-Signals über eine Interrupt-Leitung an den vorgesehenen Prozessor 10-1, 10-2. Vorzugsweise überprüft der Watchdog 404.5, ob eine Korrelation zwischen einer Photonendetektion der Beobachtungsdiode 28020 mit einem Signal am Ausgang 405 der Entropiequelle 401 vorliegt. Ist dies der Fall, stammen die Photonen nicht von extern, sondern aus der Entropiequelle 401. Solche Ereignisse ignorieren der Watchdog 404.5 und der Spannungsmonitor 413 vorzugsweise. Typischerweise emittieren auch andere Schaltungsteile des mikrointegrierten Schaltkreises 2 und/oder des Quantenzufallszahlengenerators 28 parasitäre Photonen, die die Beobachtungsdiode 28020 treffen können. Typischerweise erfasst die Beobachtungsdiode 28020 auch einige dieser parasitären Normalbetriebsphotonen. Der Watchdog 404.3 kann den Pegel dieser Normalbetriebsphotonen erfassen und dem Prozessor 10-1, 10-2 beispielsweise über den Datenbus 419 als Messwert für andere Zwecke zur Verfügung stellen. Ggf. können der Prozessor 10-1, 10-2 oder ein anderes Vorrichtungsteil des mikrointegrierten Schaltkreises 2 in Abhängigkeit von einem übermittelten oder bereitgestellten Messwert des Pegels der Normalbetriebsphotonen auf einen Betriebszustand des mikrointegrierten Schaltkreises 2 schließen. Das erlaubte Beobachtungsdiodenspannungswertintervall ist dabei vorzugsweise so eingestellt, dass ein photonischer Angriff nur dann detektiert wird, wenn der Messwert des Pegels der Normalbetriebsphotonen deutlich außerhalb der erwartbaren Messwerte des Pegels der Normalbetriebsphotonen liegt. Preferably, a second deep pn junction (e.g. in the carrier substrate 49) formed below the deep pn junction of the single photon detector 55 in the epitaxial layer 48 is used as an additional photon detector 55 for monitoring for external attacks. The said method for producing deep pn junctions in a BCD process results in a second pn junction underneath the first pn junction in some embodiments (see FIG. 27 with associated figure description) (observation diode 28040). This second pn junction can also be configured as a photon detector 55 or single photon avalanche diode 55 due to its largely identical electronic properties. Since this additional photon detector 55 is thus arranged below the actual arrangement of the entropy source 401, buried deep in the semiconductor material 49, it can provide an additional protective function, unknown from the prior art, against photons injected from the back of the semiconductor substrate 49. Preferably, the proposed watchdog 404.5 and/or the proposed voltage monitor 423 use this second pn junction as a light-sensitive observation diode 28040. Preferably, the proposed watchdog 404.5 and/or the proposed voltage monitor 423 evaluate the diode voltage of the observation diode 28040 (observation diode voltage) in the form of this second PN junction, record the diode voltage of this observation diode 28040 as an observation diode voltage value and compare this observation diode voltage value with a permitted observation diode voltage value interval. If the observation diode voltage value is outside the observation diode voltage value interval, the proposed watchdog 404.5 and/or the proposed voltage monitor 423 conclude that there is a defect or a photonic attack on the entropy source 401. In this case, after detecting such an incident, the presence of such an incident is signaled to one of the processors 10-1, 10-2 and/or such information is provided. The watchdog 404.5 preferably signals such an incident by means of an interrupt signal via an interrupt line to the intended processor 10-1, 10-2. The watchdog 404.5 preferably checks whether there is a correlation between a photon detection of the observation diode 28020 and a signal at the output 405 of the entropy source 401. If this is the case, the photons do not come from outside, but from the entropy source 401. The watchdog 404.5 and the voltage monitor 413 preferably ignore such events. Typically, other circuit parts also emit of the micro-integrated circuit 2 and/or the quantum random number generator 28 parasitic photons that can hit the observation diode 28020. Typically, the observation diode 28020 also detects some of these parasitic normal operation photons. The watchdog 404.3 can detect the level of these normal operation photons and make them available to the processor 10-1, 10-2, for example via the data bus 419, as a measured value for other purposes. If necessary, the processor 10-1, 10-2 or another device part of the micro-integrated circuit 2 can conclude an operating state of the micro-integrated circuit 2 depending on a transmitted or provided measured value of the level of the normal operation photons. The permitted observation diode voltage value interval is preferably set such that a photonic attack is only detected if the measured value of the level of the normal operating photons is significantly outside the expected measured values of the level of the normal operating photons.
Der Watchdog 404.3 kann so mittels der Beobachtungsdiode 28040 und typischerweise unter Zuhilfenahme des Spannungsmonitors 413 Angriffsphotonen in unmittelbarer Nähe zur Entropiequelle 401 in einem breiten Winkelbereich detektieren. Dadurch kann der Prozessor 10-1, 10-2 äußere Angriffe mit hoher Wahrscheinlichkeit erkennen. The watchdog 404.3 can thus detect attack photons in the immediate vicinity of the entropy source 401 in a wide angular range by means of the observation diode 28040 and typically with the aid of the voltage monitor 413. This enables the processor 10-1, 10-2 to detect external attacks with a high degree of probability.
Vorzugsweise sind die Ober- und/oder Unterseite des Halbeitersubstrats 49 im Bereich der Entropiequelle 401 an einer Oberfläche verspiegelt. Vorzugsweise können die Ober- und/oder Unterseite des Halbeitersubstrats 49 im Bereich der Entropiequelle 401 an einer Oberfläche auch eine lichtblockierende Schicht - die auch verspiegelt sein kann - umfassen. Eine Verspiegelung der Oberflächen eines Halbleitersubstrats 49 (z. B. mittels Metallisierung 142, 53 oder dem Aufbringen dichroitischer Schichten) sowie das Aufbringen einer lichtblockierenden Schicht sind im Stand der Technik bekannt und wurden obenstehend bereits diskutiert. Auch bei einer vorschlagsgemäßen Entropiequelle 401 können diese Ansätze zu einer Abschirmung gegenüber äußeren Photonen („Abschattung") sowie zur Erhöhung der Effizienz durch Rückreflektion der von der zugehörigen Photonenquelle 54 erzeugten Photonen genutzt werden. Alternativ oder zusätzlich kann zudem eine entsprechende Verkapselung im Bereich der Entropiequelle 401 oder das Umgeben dieses Bereichs mit einer Metallbox erfolgen. Preferably, the top and/or bottom of the semiconductor substrate 49 in the region of the entropy source 401 are mirrored on one surface. Preferably, the top and/or bottom of the semiconductor substrate 49 in the region of the entropy source 401 can also comprise a light-blocking layer - which can also be mirrored - on one surface. Mirroring the surfaces of a semiconductor substrate 49 (e.g. by means of metallization 142, 53 or the application of dichroic layers) and the application of a light-blocking layer are known in the prior art and have already been discussed above. Even with an entropy source 401 as proposed, these approaches can be used to shield against external photons ("shading") and to increase efficiency by reflecting back the photons generated by the associated photon source 54. Alternatively or additionally, a corresponding encapsulation can also be carried out in the area of the entropy source 401 or this area can be surrounded by a metal box.
Vorzugsweise ist die Oberfläche des Halbleitersubstrats 49 im Bereich der Entropiequelle 401 mit einer Silizid-Schicht und oberhalb mit einer Metallisierung 142, 53 bedeckt. Bevorzugt ist die Metallisierung 142, 53 im Bereich der Entropiequelle 401 geschlossen. Die Metallisierung 142, 53 kann als Verspiegelung für den Innenbereich und/oder als wellenlängenunabhängige Abschattung für äußeren Photonen wirken. In gleicher Weise gilt das für eine ausgebildete Silizid-Schicht. Vorzugsweise wird ein Austreten von durch die Einzelphotonenquelle 54 bereitgestellten Photonen an der Oberfläche des Halbleitersubstrats 49 und/oder der Rückseite des Halbleitersubstrats 49 durch eine Kombination von jeweils mindestens einem Element aus Metallabdeckungen, Seitenwandkontakten und Vias verhindert. Dies verhindert die Beobachtbarkeit der Signalerzeugung durch Mikroskope oder dergleichen. Durch die genannten Elemente kann eine weitgehend vollständige Abschirmung bzw. Verkapselung der Entropiequelle 401 erreicht werden, wodurch neben einer Abschirmung nach außen auch eine hohe Immunität gegenüber äußeren Störungen gewährleistet werden kann. Vorzugsweise umfasst diese Einkapselung auch andere Vorrichtungsteile des Quantenzufallszahlengenerators 28. Auch kann eine zweite entsprechende Einkapselung durch zusätzliche Schichten und Durchkontaktierungen die anderen Vorrichtungsteile des Quantenzufallszahlengenerators 28 und die bereits eingekapselte Entropiequelle 401 umfassen. Preferably, the surface of the semiconductor substrate 49 is covered with a silicide layer in the region of the entropy source 401 and above with a metallization 142, 53. Preferably, the metallization 142, 53 is closed in the region of the entropy source 401. The metallization 142, 53 can act as a mirror coating for the inner region and/or as a wavelength-independent shading for external photons. The same applies to a formed silicide layer. Preferably, photons provided by the single photon source 54 are prevented from escaping at the surface of the semiconductor substrate 49 and/or the back of the semiconductor substrate 49 by a combination of at least one element each of metal covers, side wall contacts and vias. This prevents the signal generation from being observable by microscopes or the like. The elements mentioned can achieve a largely complete shielding or encapsulation of the entropy source 401, which can ensure not only shielding from the outside but also a high level of immunity to external interference. Preferably, this encapsulation also includes other device parts of the quantum random number generator 28. A second corresponding encapsulation can also include the other device parts of the quantum random number generator 28 and the already encapsulated entropy source 401 by means of additional layers and vias.
Vorzugsweise sind mehrere erfindungsgemäße Entropiequellen 401 bzw. eine vielkanalige Entropiequelle 401 in einem System von mehreren Quantenzufallszahlengeneratoren 28 als QRNG- System realisiert. Ein solches QRNG-System umfasst bevorzugt eine Vielzahl vorschlagsgemäßer Entropiequellen 401, die vorzugsweise gemeinsam auf dem gleichen Halbleitersubstrat 49 eines vorzugsweise einstückigen mikrointegrierten Schaltkreises 2 realisiert. Zusammen mit einer kompakten Abschirmung der einzelnen Entropiequellen 401 lassen sich dabei sehr hohe Integrationsdichten mit einer hohen Anzahl an dicht gepackten, voneinander infolge der Abschirmung mittels der besagten Schichten und Durchkontaktierungen entkoppelter Entropiequellen 401 und damit insgesamt hohe effektive Zufallszahlenraten erreichen. Vorzugsweise umfasst ein solches QRNG-System neben der notwendigen Mehrzahl an abgeschirmten Entropiequellen 401, der notwendigen Mehrzahl an Analog-zu-Digital-Wandlern 403, der notwendigen Mehrzahl an Zeit-zu-Pseudozufallszahl-Wandlern 404.3, der Mehrzahl an Entropie- Extraktionen 404.4 auch über eine Vorrichtung, die die Zusammenführung der Mehrzahl an erzeugten Quantenzufallsbits 411 zu einer Sequenz von Quantenzufallszahlen durchführt. Dies ist typischerweise eine modifizierte FSM 404.8. Bei Entropiequellen 401 im Stand der Technik ist die Integrationsdichte vor allem durch die strukturelle Nebeneinanderanordnung der einzelnen Komponenten beschränkt. Preferably, several entropy sources 401 according to the invention or a multi-channel entropy source 401 are implemented in a system of several quantum random number generators 28 as a QRNG system. Such a QRNG system preferably comprises a large number of proposed entropy sources 401, which are preferably implemented together on the same semiconductor substrate 49 of a preferably one-piece micro-integrated circuit 2. Together with a compact shielding of the individual entropy sources 401, very high integration densities can be achieved with a high number of densely packed entropy sources 401 that are decoupled from one another as a result of the shielding by means of the said layers and vias, and thus overall high effective random number rates. Preferably, such a QRNG system comprises, in addition to the necessary plurality of shielded entropy sources 401, the necessary plurality of analog-to-digital converters 403, the necessary plurality of time-to-pseudo-random number converters 404.3, the plurality of entropy extractors 404.4, also a device that combines the plurality of generated quantum random bits 411 into a sequence of quantum random numbers. This is typically a modified FSM 404.8. In the case of entropy sources 401 in the prior art, the integration density is limited primarily by the structural juxtaposition of the individual components.
Vorzugsweise umfasst ein vorschlagsgemäßer Quantenzufallszahlengenerator 28 eine elektronische Schaltung zur Generierung und Ausgabe einer digitalen Quantenzufallszahlenfolge basierend auf der statistischen Auswertung der zeitlichen Abfolge von Signalen 405 des Einzelphotonendetektors 55 der Entropiequelle 401. Preferably, a proposed quantum random number generator 28 comprises an electronic circuit for generating and outputting a digital quantum random number sequence based on the statistical evaluation of the temporal sequence of signals 405 of the single photon detector 55 of the entropy source 401.
Ein weiterer Aspekt des vorliegenden Vorschlags betrifft den integrierten mikroelektronischenAnother aspect of the present proposal concerns the integrated microelectronic
Schaltkreis (engl. „Integrated Circuit, IC"), umfassend mindestens eine vorschlagsgemäße Entropiequelle 401. Insbesondere kann es sich dabei um ICs 2 für Anwendungen auf der Basis von sicherheitsrelevanten Chip-basierten Systemen (engl. „System on Chip, SoC") handeln. Integrated Circuit (IC) comprising at least one proposed Entropy source 401. In particular, these can be ICs 2 for applications based on safety-relevant chip-based systems (System on Chip, SoC).
Die Vorteile einer vorschlagsgemäßen vertikalen Entropiequelle 401 mit einer vertikal zum Photonendetektor 55 angeordneten Photonenquelle 54 gegenüber den bekannten horizontalen Implementierungen im Stand der Technik basieren vor allem auf der weiteren Miniaturisierung des gesamten Zufallszahlengeneratoraufbaus und die dadurch erreichte hochgradige Integration bzw. Miniaturisierung der erzeugten Strukturen und die sich ergebende Erhöhung der Quantenzufallsbitrate. Aufgrund der vollständigen Isolation der SPS (Photonenquelle 54) und der zugehörigen zweiten SPAD-Diode 55 gegenüber der Umgebung durch die vorgeschlagene Abschirmung mittels Schichten und Durchkontaktierungen kann die Sicherheit der Quantenzufallszahlenerzeugung deutlich weiter erhöht werden. Die gerichtete vertikale Abstrahlung aus der in der vorgeschlagenen vertikalen Entropiequelle 401 als SPS (Photonenquelle 54) verwendeten Zener-avLED 54 trägt ebenfalls zur Erhöhung der Sicherheit sowie zu einer wesentlichen Steigerung der Effizienz der Quantenzufallszahlenerzeugung des Quantenzufallszahlengenerators 28 bei. The advantages of a proposed vertical entropy source 401 with a photon source 54 arranged vertically to the photon detector 55 compared to the known horizontal implementations in the prior art are based primarily on the further miniaturization of the entire random number generator structure and the resulting high degree of integration or miniaturization of the generated structures and the resulting increase in the quantum random bit rate. Due to the complete isolation of the SPS (photon source 54) and the associated second SPAD diode 55 from the environment through the proposed shielding by means of layers and vias, the security of the quantum random number generation can be significantly increased. The directed vertical radiation from the Zener avLED 54 used in the proposed vertical entropy source 401 as the SPS (photon source 54) also contributes to increasing the security and to a significant increase in the efficiency of the quantum random number generation of the quantum random number generator 28.
Ein mittels einer neuartigen BCD-Technologie bereitgestellter, unterhalb des p-n-Übergangs der zweiten SPAD 55 der vertikalen Entropiequelle 401 ausgebildeter zweiter tiefliegender p-n-Übergang kann als zusätzlicher Photonendetektor als Beobachtungsdiode 28020 zur Überwachung von Angriffen insbesondere von der Rückseite des Halbleitersubstrats 49 ausgehend genutzt werden. Die Beobachtungsdiode 28040 ist in dem hier diskutierten Beispiel zwischen dem Substrat 49 und der Kathode 26132 der im Halbleitersubstrat 49 der vertikalen Entropiequelle 401 vergrabenen, zweiten SPAD-Diode 55, die als Photonendetektor 55 arbeitet, angeschlossen. Der Watchdog 404.5 und/oder der Spannungsmonitor 413 erfassen vorzugsweise den Beobachtungsdiodenspannungswert der Spannung der Beobachtungsdiode 28020. Der Watchdog 404.5 vergleicht vorzugsweise das einsynchronisiertes Spannungssignal 415 mit einem ebenfalls einsynchronisierten Signal des Beobachtungsdiodenspannungswerts der Beobachtungsdiode 28020. Zeigt das einsynchronisierten Signal des Beobachtungsdiodenspannungswerts der Beobachtungsdiode 28020 einen Plus, der synchron zu einem Puls des einsynchronisierten Spannungssignals 415 ist, so geht der Watchdog 404.5 davon aus, dass es sich nicht um einen Angriff, sondern ein reguläres Signal handelt und löst typischerweise keinen Alarm aus. Von Zeit zu Zeit können der Watchdog 404.5 und/oder der Prozessor 10-1, 10-2 jedoch die Spannungsversorgung der Entropie-Quelle 401 unterbrechen, sodass das einsynchronisierte Spannungssignal 415 des Beobachtungsdiodenspannungswerts keine Pulse mehr zeigen sollte. In dem Fall darf auch das einsynchronisierte Signals des Beobachtungsdiodenspannungswerts der Beobachtungsdiode 28020 keine Pulse mehr zeigen. Zeigt das einsynchronisierte Signal des Beobachtungsdiodenspannungswerts der Beobachtungsdiode 28020 jedoch weiterhin einen Puls, so schließt der Watchdog 404.5 typischerweise auf einen Angriff oder eine Störung. Vorzugsweise meldet der Watchdog 404.5 einen solchen Angriff bzw. eine solche Störung an den Prozessor 10-1, 10-2 über den Datenbus 419 und/oder mittels eines Interrupt-Signals über eine Interrupt-Leitung. Der Watchdog 404.3 kann die Information über einen solchen vermuteten Angriff auch in einem Register oder Speicher des Quantenzufallszahlengenerators 28 bereithalten. Typischerweise unterbindet der Watchdog 404.5 dann die Erzeugung von Zufallszahlen 418 durch die FSM 404.8 zumindest bis der Prozessor 10-1, 10-2 diese Erzeugung explizit durch einen entsprechenden Befehl an den Watchdog 404.5 vorzugsweise mittels eines Passworts über den Datenbus 419 wieder erlaubt. A second deep pn junction provided by means of a novel BCD technology and formed below the pn junction of the second SPAD 55 of the vertical entropy source 401 can be used as an additional photon detector as an observation diode 28020 for monitoring attacks, in particular from the rear side of the semiconductor substrate 49. In the example discussed here, the observation diode 28040 is connected between the substrate 49 and the cathode 26132 of the second SPAD diode 55 buried in the semiconductor substrate 49 of the vertical entropy source 401, which operates as a photon detector 55. The watchdog 404.5 and/or the voltage monitor 413 preferably record the observation diode voltage value of the voltage of the observation diode 28020. The watchdog 404.5 preferably compares the synchronized voltage signal 415 with a likewise synchronized signal of the observation diode voltage value of the observation diode 28020. If the synchronized signal of the observation diode voltage value of the observation diode 28020 shows a plus that is synchronous with a pulse of the synchronized voltage signal 415, the watchdog 404.5 assumes that this is not an attack but a regular signal and typically does not trigger an alarm. From time to time, however, the watchdog 404.5 and/or the processor 10-1, 10-2 can interrupt the voltage supply of the entropy source 401, so that the synchronized voltage signal 415 of the observation diode voltage value should no longer show any pulses. In this case, the synchronized signal of the observation diode voltage value of the observation diode 28020 must no longer show any pulses. Shows However, if the synchronized signal of the observation diode voltage value of the observation diode 28020 continues to pulse, the watchdog 404.5 typically concludes that there is an attack or a fault. The watchdog 404.5 preferably reports such an attack or a fault to the processor 10-1, 10-2 via the data bus 419 and/or by means of an interrupt signal via an interrupt line. The watchdog 404.3 can also keep the information about such a suspected attack ready in a register or memory of the quantum random number generator 28. The watchdog 404.5 then typically prevents the generation of random numbers 418 by the FSM 404.8 at least until the processor 10-1, 10-2 explicitly allows this generation again by means of a corresponding command to the watchdog 404.5, preferably by means of a password via the data bus 419.
Der Spannungsmonitor 413 überwacht bevorzugt das Spannungsniveau des Beobachtungsdiodenspannungswerts der Spannung der Beobachtungsdiode 28020. Liegt der Beobachtungsdiodenspannungswert der Spannung der Beobachtungsdiode 28020 außerhalb des vordefinierten Beobachtungsdiodenspannungswertintervalls, so meldet der Spannungsmonitor 413 dies vorzugsweise dem Watchdog 404.5. Der Watchdog 404.5 schließt im Falle einer solchen Out-of- Spec-Meldung des Spannungsmonitors 413 für den Beobachtungsdiodenspannungswert der Beobachtungsdiode 28040 typischerweise wieder auf einen Angriff oder eine Störung. Vorzugsweise meldet der Watchdog 404.5 einen solchen Angriff bzw. eine solche Störung an den Prozessor 10-1, 10-2 über den Datenbus 419 und/oder mittels eines Interrupt-Signals über eine Interrupt-Leitung. Der Watchdog 404.3 kann die Information über einen solchen vermuteten Angriff auch in einem Register oder Speicher des Quantenzufallszahlengenerators 28 bereithalten. Typischerweise unterbindet der Watchdog 404.5 dann die Erzeugung von Zufallszahlen 418 durch die FSM 404.8 zumindest bis der Prozessor 10-1, 10-2 diese Erzeugung explizit durch einen entsprechenden Befehl an den Watchdog 404.5 vorzugsweise mittels eines Passworts über den Datenbus 419 wieder erlaubt. The voltage monitor 413 preferably monitors the voltage level of the observation diode voltage value of the voltage of the observation diode 28020. If the observation diode voltage value of the voltage of the observation diode 28020 is outside the predefined observation diode voltage value interval, the voltage monitor 413 preferably reports this to the watchdog 404.5. In the case of such an out-of-spec message from the voltage monitor 413 for the observation diode voltage value of the observation diode 28040, the watchdog 404.5 typically again concludes that there is an attack or a fault. The watchdog 404.5 preferably reports such an attack or a fault to the processor 10-1, 10-2 via the data bus 419 and/or by means of an interrupt signal via an interrupt line. The watchdog 404.3 can also keep the information about such a suspected attack in a register or memory of the quantum random number generator 28. Typically, the watchdog 404.5 then prevents the generation of random numbers 418 by the FSM 404.8 at least until the processor 10-1, 10-2 explicitly allows this generation again by sending a corresponding command to the watchdog 404.5, preferably by means of a password via the data bus 419.
Dabei können die Effizienz der optischen Einkopplung in die zugehörigen zweiten SPAD-Dioden 55 sowie die Isolation und die Sicherheit durch die Nutzung von internen Metall- und Silizid-Spiegeln weiter gesteigert werden. Für die verwendeten Zener-avLED als Photonenquelle 54 ist im Vergleich zum Stand der Technik nur eine relativ geringe Betriebsspannung von < 8 V erforderlich. Dies vereinfacht die notwendigen Spannungswandler 91 zur Erzeugung der Betriebsspannungen der Entropiequelle 401 weiter. Da zudem die Absorptionslänge des emittierten sichtbaren Lichts im Silizium gering (d. h. der zugehörige Absorptionskoeffizient hoch) ist, kann auch eine sehr gute optische Isolation zwischen benachbarten Elementen erzielt werden. Die große Nähe der Photonenquelle 54 zum Phtonendetektor 55 in der vertikalen Entropiequelle 401 verhindert das Wirksamwerden dieses Nachteils der geringen Absorptionslänge des emittierten sichtbaren Lichts im Silizium hinsichtlich der Effizienz des Photonentransports. Dies ermöglicht die Anordnung der vertikalen Entropiequellen 401 in einem Array mit hoher Zellendichte und einer daraus folgenden entsprechend hohen Erzeugungs- bzw. Entropierate des Quantenzufallszahlengenerators 28. Weitere Aspekte der vorliegenden Erfindung sind in den abhängigen Ansprüchen oder in der folgenden Beschreibung der Zeichnungen offenbart. The efficiency of the optical coupling into the associated second SPAD diodes 55 as well as the isolation and safety can be further increased by using internal metal and silicide mirrors. For the Zener avLED used as photon source 54, only a relatively low operating voltage of < 8 V is required compared to the state of the art. This further simplifies the necessary voltage converters 91 for generating the operating voltages of the entropy source 401. Since the absorption length of the emitted visible light in the silicon is also small (ie the associated absorption coefficient is high), very good optical isolation between neighboring elements can also be achieved. The close proximity of the photon source 54 to the photon detector 55 in the vertical entropy source 401 prevents This disadvantage of the short absorption length of the emitted visible light in the silicon becomes effective with regard to the efficiency of the photon transport. This enables the arrangement of the vertical entropy sources 401 in an array with a high cell density and a resulting correspondingly high generation or entropy rate of the quantum random number generator 28. Further aspects of the present invention are disclosed in the dependent claims or in the following description of the drawings.
Merkmale der Erfindung Features 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. The features of the invention summarize these again. Applications of the technical teaching can combine the features with one another, provided that these combinations do not cause factual contradictions. In this respect, the dependencies and relationships presented here only represent particularly preferred, exemplary embodiments.
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. Feature 1: Quantum process-based generator (28) for true random numbers (411, 418) (Quantum Random Number Generator: QRNG), wherein the quantum process-based generator (28) for true random numbers (411, 418) (Quantum Random Number Generator: QRNG) has an entropy source (401) and wherein the quantum process-based generator (28) for true random numbers (411, 418) (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).
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. 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.
Merkmal 3: Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Merkmal 1 oder 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. Feature 3: Quantum process-based generator (28) for true random numbers (411, 418) according to feature 1 or 2, wherein the behavior of the P of a time-to-pseudo-random number converter (TPRG) (404.3) depends on one or more quantum random bits (411) and/or one or more quantum random numbers (418).
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. 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 ensures the correct functioning of the quantum process-based generator (28) for true random numbers (411, 418).
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. 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.
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. 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-pseudorandom number converter (TPRC) (404.3) and detects and/or signals an error in the event of deviations from an expected behavior.
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. 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.
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: 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:
Ein Mikrokontroller, ein Mikroprozessor, ein Speicher, ein DRAM, ein SRAM, ein RAM, ein flüchtiger Speicher, ein OTP-Speicher, A microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP memory,
- 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. - an EEPROM, a flash memory, an MRAM, an 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, an electronic 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 an electronic security system, 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 with a device for generating and/or using a spreading code.
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. 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.
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, Feature 11: Secure microcontroller for controlling devices, in particular in automobiles, with a semiconductor crystal and with memory 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 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 generator for true random numbers (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 with the aid of a program from one or more of its memory elements and with the aid of the random number, and wherein the processor (10-1) encrypts and decrypts data with the aid of a program from one or more of its memory elements and with the aid of the key, which data it exchanges with devices outside the secure microcontroller via the data interface, 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),
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.Feature 12: Secure microcontroller according to feature 11, wherein the memory elements comprise one or more read/write memories RAM 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.
Merkmal 13: Sicherer Mikrocontroller nach Merkmal 12, wobei das Hersteller-ROM die Boot-Software umfasst. Feature 13: A secure microcontroller as defined in feature 12, wherein the manufacturer ROM includes the boot software.
Merkmal 14: Sicherer Mikrocontrollernach Merkmal 12 oder 13, wobei eine Hersteller-Speicher Firewall zwischen dem Hersteller-Speicher und dem internen Bus (419) vorgesehen ist. 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).
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). 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) (inter alia 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 for defence against attacks via ground offset, and/or an input/output circuit and/or one or more processing modules, wherein the processing modules are configured 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 security monitoring and control circuit, a data interface, in particular a Universal Asynchronous Receiver Transmitter (UART).
Merkmal 16: Sicherer Mikrocontroller lnach 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 (Q.RNG) (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.Feature 16: Secure microcontroller according 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 generator for true random numbers (QRNG) (28) comprises at least the photon source (54) as a light source for the optical quantum signal and wherein the quantum process-based generator for true random numbers (QRNG) (28) comprises at least the photon detector (55) as a photodetector for the optical quantum signal and wherein the quantum process-based generator for true random numbers (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 the photon source (54) is supplied with electrical energy such that the photon source (54) emits light and wherein the processing circuit detects the signal from the photon detector (55) and forms the random number therefrom and makes it available to the processor (10-1).
Merkmal 17: Sicherer Mikrocontroller 11 nach Merkmal 16, mit zumindest einem optischen Lichtwellenleiter (44), wobei der quantenprozessbasierende Generator für echte Zufallszahlen (Q.RNG) (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.Feature 17: Secure microcontroller 11 according to feature 16, with at least one optical fiber (44), wherein the quantum process-based true random number generator (Q.RNG) (28) comprises at least the optical waveguide (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).
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. 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 below its surface (56), and wherein the surface (56) of the semiconductor crystal has a metallization stack, and wherein the metallization stack has 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) from the semiconducting material of the semiconductor substrate radiates into this optical waveguide (44), and wherein the optical waveguide (44) radiates the photon detector (54) such that the light from within the optical waveguide (44) penetrates back into the semiconducting material of the semiconductor substrate from the surface and hits device parts of the photon detector (55).
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. 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).
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 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 wherein 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
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 umfasst. 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 comprises a WLAN interface and/or a Bluetooth interface.
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 ist. 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 is 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.
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. Feature 23: A device, the device comprising an integrated circuit (4) with a first processor (10-1) and a non-volatile memory (16), and the device comprising a first memory, the non-volatile memory storing at least one security code; the first memory storing data and wherein the data in the first memory is cryptographically protected in a first format and wherein the integrated circuit is configured 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 below its surface (56) and wherein the surface (56) of the semiconductor crystal has a metallization stack and wherein the metallization stack has 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) emits 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).
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. 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).
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. 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 supplies it to the processor (10) or another part of the device.
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. 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 has a second memory for storing data and wherein the second memory is located inside or outside the integrated circuit; wherein the device is arranged to transfer data from the first memory to the second memory via the integrated circuit so that the processor can access it from the second memory, and wherein the integrated circuit is arranged to 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, 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.
Merkmal 27: Vorrichtung nach einem der Merkmale 23 bis 26, wobei der erste Speicher einen Festwertspeicher aufweist. Feature 27: Device according to one of features 23 to 26, wherein the first memory comprises a read-only memory.
Merkmal 28: Vorrichtung nach einem der Merkmale 26 bis 27, wobei der zweite Speicher einen Direktzugriffsspeicher aufweist. Feature 28: Apparatus according to any one of features 26 to 27, wherein the second memory comprises a random access memory.
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. 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.
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. Feature 30: Apparatus according to any 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 arranged to store some data of the validated data set in the memory and the remainder in the second memory.
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. 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: The apparatus of feature 31, wherein the data stored in the first memory is protected by a first authentication technique, and wherein the apparatus is configured to protect the data in the second memory by a second, different authentication technique.
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. Feature 33: Apparatus according to any one of features 26 to 32, wherein the data is stored in the first memory in at least one data set and the or each data set is cryptographically protected as a set, and wherein the apparatus is arranged to store in the second memory words or groups of words of a validated data set, each word or group of words being separately cryptographically protected.
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. Feature 34: Apparatus according to feature 33, arranged to read the words or groups of words from the second memory, to validate the read words or groups of words using a security code stored in the non-volatile memory, and to process the read and validated words or groups of words in the processor.
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. Feature 35: Apparatus according to feature 34, wherein the integrated circuit comprises a hash calculator, and wherein the processor and the hash calculator (hash engine) are arranged to: a) calculate a hash function for each word or group of words in dependence 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) retrieve a stored word or group from the second memory, recalculate a hash function for the retrieved word or group using the security code and compare the newly calculated 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.
Merkmal 36: Vorrichtung nach Merkmal 35, wobei der Hash-Rechner eine Schaltung in der integrierten Schaltung ist. Feature 36: The apparatus of feature 35, wherein the hash calculator is a circuit in the integrated circuit.
Merkmal 37 Vorrichtung nach einem der Merkmale 23 bis 36, wobei der nichtflüchtige Speicher der integrierten Schaltung ein einmalig programmierbarer Speicher ist. 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.
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. 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.
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. 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.
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. 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).
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. Feature 41: Device according to one of features 38 to 39, wherein the device 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.
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. 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 comprises 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 comprises a surface (56), and wherein the semiconductor crystal comprises a semiconducting material beneath its surface (56), and wherein the surface (56) of the semiconductor crystal comprises 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 portion of this typically structured, transparent and electrically insulating layer (44) of the surface (46) forms the optical waveguide (44), and wherein the first SPAD diode (54) is made of the semiconductive material of the semiconductor substrate radiates photons (57) 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 semiconductive 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).
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. 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.
Merkmal 44: Datenverarbeitungsgerät nach Merkmal 42 oder 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. Feature 44: A data processing device according to feature 42 or 43, wherein the data processing device comprises 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.
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. Feature 45: A data processing device according to any one of features 42 to 44, wherein 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.
Merkmal 46 Datenverarbeitungsgerät nach einem der Ansprüche 42 bis 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. Feature 46 A data processing apparatus according to any one of claims 42 to 45, wherein the processor and the hash calculator are arranged to: a) calculate a hash function for each word in dependence on a security code stored in the non-volatile memory and store the hash in association with the word, b) retrieve stored words from the memory, recalculate a hash function for each retrieved word using the security code and compare the newly calculated hash value with the stored hash value, and c) permit processing of the retrieved word by the data processing system only if the newly calculated and stored hashes have a predetermined relationship.
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. Feature 47: A device comprising: an integrated circuit including a data processing means and a non-volatile storage means storing at least one security code; a first means 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.
Merkmal 48 Eine Vorrichtung 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. Feature 48 A device according to feature 47, wherein the device comprises a second device, in particular external to the integrated circuit, for storing data, and wherein the device comprises 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 wherein the device comprises means for validating the data read from the first memory during transfer using a security code stored in the non-volatile memory, and wherein the device comprises 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 device comprises means for storing the protected data in the second memory in the second format.
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. 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.
Merkmal 50: Vorrichtung nach Merkmal 49, wobei die Vorrichtung einen Watchdog (404.5) umfasst, der Vorrichtungsteile des Quantenzufallszahlengenerators (28) überwacht. 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).
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. 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).
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. 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).
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. 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).
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. 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 quantum random bits 411 of the quantum random number generator (28).
Merkmal 55: Verfahren zur Erzeugung eines Zufallsbits Feature 55: Method for generating a random bit
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),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),
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. 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.
Vergleichen (502) des ersten Werts mit dem zweiten Wert und Comparing (502) the first value with the second value and
Ausgeben (503) eines ersten logischen Werts als ein Quantenzufallsbit (411), wenn der erste Wert größer als der zweite Wert ist, und Outputting (503) a first logical value as a quantum random bit (411) if the first value is greater than the second value, and
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. 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.
Merkmal 56: Verfahren (3700) zur Erzeugung einer Quantenzufallszahl QZ (418) mit m Quantenzufallsbits (411) mit den Schritten; Feature 56: Method (3700) for generating a quantum random number QZ (418) with m quantum random bits (411) with the steps;
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); Generation (3710) of a random single photon stream 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);
Ü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);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);
Wandlung (3730) des zufälligen Einzelphotonenstroms (57, 58, 59, 44) in ein Detektionssignal mittels der einen oder der mehreren Photonendetektoren (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);
Aufbereiten (3740) des Detektionssignals in ein aufbereitetes Detektionssignal; conditioning (3740) the detection signal into a conditioned detection signal;
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 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
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; 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);
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 QuantenzufallszahlDetermining (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, repeating the above steps (3710 to 3770) and ending 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 to be generated
(418) QZ ist. (418) QZ is.
Vorteil Advantage
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 random number generator 28 presented here is particularly robust against external attacks. Even in the event of a successful attack on the entropy source 401, the quantum random numbers 411 are not influenced in such a way that the attacker can break an encryption without considerable additional effort. The secure microcontroller presented here therefore has an improved entropy of its random number generator. As a result, the encryption of this secure microcontroller is post quantum secure, in contrast to the state of the art. The advantages are not limited to this, however.
Liste der Figuren List 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: The above objects and the advantages described below will be highlighted in the description of a preferred embodiment of the invention, presented as a non-limiting example with reference to the accompanying drawings, in which:
Figur 1 zeigt ein schematisches Blockdiagramm eines Datenverarbeitungsgeräts in Kombination mit einem kontrollierten System; Figure 1 shows a schematic block diagram of a data processing device in combination with a controlled system;
Figur 2 zeigt ein schematisches Blockdiagramm einer Schaltung zum Deaktivieren einer Testschnittstelle der Vorrichtung von Fig. 1; Figure 2 shows a schematic block diagram of a circuit for deactivating a test interface of the device of Figure 1;
Figur 3 zeigt ein Diagramm, das die Überprüfung digitaler Signaturen veranschaulicht; Figure 3 shows a diagram illustrating the verification of digital signatures;
Figur 4 zeigt ein Flussdiagramm, das die Verwendung von HASH-Funktionen beim Speichern und Abrufen von Daten aus einem DRAM der Vorrichtung von FIG. 1 veranschaulicht. Figure 4 is a flow chart illustrating the use of HASH functions in storing and retrieving data from a DRAM of the device of FIG. 1.
Figur 5 zeigt eine vorschlagsgemäße SPAD-Diode im Querschnitt. Figure 5 shows a proposed SPAD diode in cross section.
Figur 6 zeigt die Kombination zweier vorschlagsgemäßer SPAD-Dioden im Querschnitt. Figure 6 shows the combination of two proposed SPAD diodes in cross section.
Figur 7 zeigt die Kombination zweier vorschlagsgemäßer SPAD-Dioden im Querschnitt, wobei nun mehrere Isolationslagen den Lichtwellenleiter 44 ausbilden. Figure 7 shows the combination of two proposed SPAD diodes in cross section, with several insulation layers now forming the optical waveguide 44.
Figur 8 zeigt die Einbindung der SPAD-Dioden und des Lichtwellenleiters in eine Auswerte- und Betriebsschaltung Figure 8 shows the integration of the SPAD diodes and the optical fiber into an evaluation and operating circuit
Figur 9 entspricht der Figur 8, die nun um Überwachungsschaltkreise ergänzt ist. Figure 9 corresponds to Figure 8, which is now supplemented by monitoring circuits.
Figur 10 zeigt ein typisches Ausgangssignal der zweiten SPAD-Diode. Figur 11 zeigt ein beispielhaftes Oszillogramm des Spannungssignals 404 der Entropie Quelle 401. Figure 10 shows a typical output signal of the second SPAD diode. Figure 11 shows an exemplary oscillogram of the voltage signal 404 of the entropy source 401.
Figur 12 zeigt den schematischen Ablauf einer Server-Client-Kommunikation unter Nutzung eines vorschlaggemäßen Quantenzufallszahlengenerators. Figure 12 shows the schematic flow of a server-client communication using a proposed quantum random number generator.
Figur 13 zeigt den schematischen Ablauf der Funktionen KeyExchangeServer() und KeyExchangeClient(). Figure 13 shows the schematic flow of the functions KeyExchangeServer() and KeyExchangeClient().
Figur 14 zeigt schematischen Ablauf der Funktion setPrimes(). Figure 14 shows a schematic flow of the setPrimes() function.
Figur 15 zeigt den schematischen Ablauf der Funktion setE() 3400. Figure 15 shows the schematic flow of the function setE() 3400.
Figur 16 zeigt den schematischen Ablauf der Funktion findD(). Figure 16 shows the schematic flow of the findD() function.
Figur 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. Figure 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 proposed integrated circuit 2, a server 3600 and a first processor 10-1 of the computer, in particular in the form of another proposed integrated circuit 2, a client 3610.
Figur 18 zeigt schematisch das vorschlagsgemäße Verfahren 3700 zur Erzeugung einer Quantenzufallszahl. Figure 18 shows schematically the proposed method 3700 for generating a quantum random number.
Figur 19 zeigt einen weiteren beispielhaften Vorschlag für einen einstückigen, monolithisch integrierten Schaltkreis 2. Figure 19 shows another exemplary proposal for a one-piece, monolithic integrated circuit 2.
Figur 20 zeigt eine Vorrichtung ähnlich der Vorrichtung der Figuren 8 und 9. Figure 20 shows a device similar to the device of Figures 8 and 9.
Figur 21 zeigt ein Beispiel für einen Zeit-zu-Pseudozufallszahl-Wandler 404.3. Figur 22 zeigt ein Diagramm, dass die Erfassung der Pulse (2201, 2202, 2203, 2204) auf dem Spannungssignal 405 der Entropie Quelle 401 darstellt. Figure 21 shows an example of a time-to-pseudo-random number converter 404.3. Figure 22 shows a diagram illustrating the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401.
Figur 23 zeigt einen beispielhaften Spannungswandler 91 zur Versorgung der Entropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial. Figure 23 shows an exemplary voltage converter 91 for supplying the entropy source 411 with a sufficient operating voltage of the supply voltage line VENT of the entropy source 411 relative to the reference potential line GND at the reference potential.
Figur 24 zeigt beispielhaft ein Grob-Layout eines imaginären integrierten Schaltkreises 2, beispielsweise eines Mikrocontrollers, mit einem vorschlagsgemäßen Quantenzufallsgenerator 28 in der Aufsicht zur Verdeutlichung der Platzierung eines Quantenzufallszahlengenerators 28 ganz oder in Teilen im Pad-Rahmen 2403 bzw. einer vorschlagsgemäßen Entropiequelle 401 im Pad-Rahmen 2403. Figure 24 shows an example of a rough layout of an imaginary integrated circuit 2, for example a microcontroller, with a proposed quantum random number generator 28 in plan view to illustrate the placement of a quantum random number generator 28 in whole or in part in the pad frame 2403 or a proposed entropy source 401 in the pad frame 2403.
########### ###########
Figur 25 zeigt eine schematische Darstellung einer ersten Ausführungsform eines Quantenzufallszahlengenerators gemäß Stand der Technik in der Aufsicht; Figure 25 shows a schematic representation of a first embodiment of a quantum random number generator according to the prior art in plan view;
Figur 26 zeigt eine schematische Darstellung einer zweiten Ausführungsform einer horizontalen Entropiequelle 401 gemäß Stand der Technik in einer Seitenansicht; Figure 26 shows a schematic representation of a second embodiment of a horizontal entropy source 401 according to the prior art in a side view;
Figur I zeigt eine schematische Darstellung eines mit einem Verfahren zur Bereitstellung tiefliegender p-n-Übergänge in einem BCD-Prozess bereitgestellten BCD-Substrats und eine TCAD-Darstellung der resultierenden Dotierstoffverteilung; Figure I shows a schematic representation of a BCD substrate provided by a method for providing deep p-n junctions in a BCD process and a TCAD representation of the resulting dopant distribution;
Figur 28 zeigt eine schematische Darstellung einer beispielhaften ersten Ausführungsform einer erfindungsgemäßen Entropiequelle 401; Figure 28 shows a schematic representation of an exemplary first embodiment of an entropy source 401 according to the invention;
Figur 29 zeigt eine schematische Darstellung einer beispielhaften zweiten Ausführungsform einer erfindungsgemäßen Entropiequelle 401; Figur 30 zeigt eine schematische Darstellung einer beispielhaften dritten Ausführungsform einer erfindungsgemäßen Entropiequelle 401; Figure 29 shows a schematic representation of an exemplary second embodiment of an entropy source 401 according to the invention; Figure 30 shows a schematic representation of an exemplary third embodiment of an entropy source 401 according to the invention;
Figur 31 zeigt eine graphische Darstellung der Abhängigkeit des SPAD-Stroms (SPAD Current (A)) in Abhängigkeit von der Zener-Sperrspannung (Zener Reverse Voltage (V)) bei verschiedenen SPAD-Sperrspannungen (kleiner, gleich, größer der Durchbruchspannung VBD) innerhalb einer erfindungsgemäßen Entropiequelle 401. Figure 31 shows a graphical representation of the dependence of the SPAD current (A) on the Zener reverse voltage (V) at different SPAD reverse voltages (less than, equal to, greater than the breakdown voltage VBD) within an entropy source 401 according to the invention.
Figur 32 zeigt eine graphische Darstellung der Abhängigkeit des Verhältnisses (Ratio) zwischenFigure 32 shows a graphical representation of the dependence of the ratio between
SPAD-Strom und Zener-Strom in Abhängigkeit von der Zener-Sperrspannung (Zener Reverse Voltage (V)) bei verschiedenen SPAD-Sperrspannungen (kleiner, gleich, größer der Durchbruchspannung VBD) innerhalb einer erfindungsgemäßen Entropiequelle 401. SPAD current and Zener current as a function of the Zener reverse voltage (V) at different SPAD reverse voltages (less than, equal to, greater than the breakdown voltage VBD) within an entropy source 401 according to the invention.
Beschreibung der Figuren Description 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:
Es werden nun detaillierte Ausführungsformen beschrieben, die beispielhaft in den beigefügten Zeichnungen dargestellt sind. Die Wirkungen und Merkmale dieser Ausführungs-formen werden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. In den Zeichnungen bezeichnen gleiche Bezugsziffern, gleiche Elemente und auf redundante Beschreibungen wird verzichtet. Die vorliegende Offenbarung kann in verschiedenen Formen verwirklicht werden und ist nicht so zu verstehen, dass sie nur auf die hier dargestellten Ausführungsformen beschränkt ist. Vielmehr sind diese Ausführungsformen Beispiele, damit diese Offenbarung gründlich und vollständig ist und dem Fachmann die Aspekte und Merkmale der vorliegenden Offenbarung vollständig vermittelt. Verfahren, Elemente und Techniken, die für den Fachmann zum vollständigen Verständnis der Aspekte und Merkmale der vorliegenden Offenbarung nicht notwendig sind, werden daher gegebenenfalls nicht beschrieben. In den Zeichnungen können die relativen Größen von Elementen, Schichten und Bereichen zur Verdeutlichung übertrieben dargestellt sein. Detailed embodiments will now be described, which are shown by way of example in the accompanying drawings. The effects and features of these embodiments will be described with reference to the accompanying drawings. In the drawings, like reference numerals designate like elements, and redundant descriptions are omitted. The present disclosure may be embodied in various forms and should not be construed as limited only to the embodiments shown herein. Rather, these embodiments are examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present disclosure to those skilled in the art. Therefore, methods, elements, and techniques that are not necessary for those skilled in the art to fully understand the aspects and features of the present disclosure may not be described. In the drawings, the relative sizes of elements, layers, and regions may be exaggerated for clarity.
Wie hierin verwendet, schließt der Begriff „und/oder" alle Kombinationen von einem oder mehreren der aufgeführten Elemente ein. Ferner bezieht sich die Verwendung von „kann" bei der Beschreibung von Ausführungsformen der vorliegenden Offenbarung auf „eine oder mehrere Ausführungsformen der vorliegenden Offenbarung". In der folgenden Beschreibung von Ausführungsformen können die Begriffe in der Einzahl auch die Mehrzahl umfassen, sofern aus dem Kontext nicht eindeutig etwas Anderes hervorgeht. As used herein, the term "and/or" includes any combination of one or more of the listed elements. Furthermore, the use of "may" in describing embodiments of the present disclosure refers to "one or more embodiments of the present disclosure." In the following description of embodiments, the terms in the singular may also include the plural, unless the context clearly indicates otherwise.
Obwohl die Begriffe „erste" und „zweite" zur Beschreibung verschiedener Elemente verwendet werden, sollten diese Elemente nicht durch diese Begriffe eingeschränkt werden. Diese Begriffe werden nur verwendet, um ein Element von einem anderen Element zu unterscheiden. So kann beispielsweise ein erstes Element als zweites Element bezeichnet werden, und ebenso kann ein zweites Element als erstes Element bezeichnet werden, ohne dass dies vom Anwendungsbereich der vorliegenden Offenbarung abweicht. Ausdrücke wie „mindestens eines von", wenn sie einer Liste von Elementen vorangestellt werden, modifizieren die gesamte Liste und nicht nur die einzelnen Elemente der Liste. Although the terms "first" and "second" are used to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another element. For example, a first element may be referred to as a second element, and similarly a second element may be referred to as a first element, without departing from the scope of the present disclosure. Terms such as "at least one of," when preceded by a list of elements, modify the entire list, not just the individual elements of the list.
Begriffe wie „im Wesentlichen", „ungefähr" und ähnliche werden als Annäherungsbegriffe und nicht als Gradangaben verwendet und sollen die inhärenten Abweichungen bei gemessenen oder berechneten Werten berücksichtigen, die von Fachleuten erkannt werden. Wenn der Begriff „im Wesentlichen" in Verbindung mit einem Merkmal verwendet wird, das durch einen numerischen Wert ausgedrückt werden kann, bezeichnet der Begriff „im Wesentlichen" einen Bereich von zumindest +/- 5 % des Wertes, der auf den Wert zentriert ist. Terms such as "substantially", "approximately" and similar terms are used as terms of approximation rather than degrees and are intended to take into account the inherent variations in measured or calculated values that will be recognized by those skilled in the art. When the term "substantially" is used in connection with a characteristic expressed by a numerical value, the term "substantially" means a range of at least +/- 5% of the value centered on the value.
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGEN DER ERFINDUNG DETAILED 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, micro-integrated circuit 2, for example the microcontroller, for controlling a controlled system 26.
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 microintegrated circuit 2 with a proposed quantum random number generator 28 and the exemplary contents of its various memories as it would be used after manufacture.
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, micro-integrated circuit 2, for example the microcontroller, is connected to a controlled system 26 via a connection 3. The controlled system can be, for example, a backup tape drive. In a backup tape drive, it is important that the integrity of the backed up data is maintained. It is therefore important that the integrity of the data and programs used by the computer in the form of the monolithic, micro-integrated circuit 2, for example the microcontroller, is maintained.
Figur 1 Figure 1
Der Rechner in Form der monolithischen, mikrointegrierten Schaltung 2, beispielsweise des Mikrocontrollers, umfasst in dem Beispiel der Figur 1 beispielsweise den monolithisch integrierten Schaltkreis 2 eines beispielhaften Mikrocontrollers, der beispielhaft eine Steuervorrichtung 4, einen nichtflüchtigen Speicher 6 und einen Speicher mit wahlfreiem Zugriff 8, im Folgenden auch mit RAM (Random Access Memory) bezeichnet^ umfasst. Der nichtflüchtige Speicher 6 kann jeden geeigneten Typ umfassen, z. B. einen Flash-Speicher und andere Typen. In diesem Beispiel handelt es sich um einen Nur-Lese-Speicher, z. B. ein EEPROM. Der Mikrocontroller ist hier nur eine beispielhafte Ausführung eines einstückigen und monolithisch integrierten Schaltkreises 2 mit einem monolithisch integrierten Quantenzufallszahlengenerator 28. Andere mikroelektronische integrierte Schaltkreise 2 sind ausdrücklich von der technischen Lehre des hier vorgelegten Dokuments mit umfasst. Wenn in diesem Dokument von einem „integrierten Schaltkreis 2 eines Mikrocontrollers" oder von einem „integrierten Schaltkreis 2 des Mikrocontrollers" die Rede ist, so liest die technisch bewanderte Person hier automatisch andere mikroelektronisch integrierte Schaltkreise und Vorrichtungen mit. Diese mikroelektronisch integrierten Schaltkreise und Vorrichtung umfassen im Sinne des hier vorgelegten Dokuments ausdrücklich auch MEMS (Englisch: micro-electro-mechanical system) , MOEMS (auch: MOMS) (Englisch: micro-optical-electro-mechanical system), optische MEMS, optische Mikrosysteme, BioMEMS (steht für die Anwendung von MEMS auf z. B. Zellbiologie bzw. derer Nachbargebiete), Mikromaschinen, MEFS (Englisch: micro-electro-fluidic systems), NEMS (Englisch: nano-electro-mechanical system), pMEMS (piezo-electric micro-electro-mechanical resonators), RF-MEMS (Englisch: Radio-Frequency-MEMS). The computer in the form of the monolithic, microintegrated circuit 2, for example the microcontroller, comprises in the example of Figure 1, for example the monolithic integrated circuit 2 of an exemplary microcontroller, which comprises, for example, a control device 4, a non-volatile memory 6 and a memory with random access 8, hereinafter also referred to as RAM (Random Access Memory). The non-volatile memory 6 can comprise any suitable type, e.g. a flash memory and other types. In this example, it is a read-only memory, e.g. an EEPROM. The microcontroller here is only an exemplary embodiment of a one-piece and monolithic integrated circuit 2 with a monolithic integrated quantum random number generator 28. Other microelectronic integrated circuits 2 are expressly included in the technical teaching of the document presented here. When this document refers to an "integrated circuit 2 of a microcontroller" or an "integrated circuit 2 of the microcontroller", the technically skilled person automatically reads other microelectronic integrated circuits and devices. These microelectronic integrated circuits and devices include In the sense of the document presented here, the following also expressly applies: MEMS (micro-electro-mechanical system), MOEMS (also: MOMS) (micro-optical-electro-mechanical system), optical MEMS, optical microsystems, BioMEMS (stands for the application of MEMS to e.g. cell biology or related areas), micromachines, MEFS (micro-electro-fluidic systems), NEMS (nano-electro-mechanical system), pMEMS (piezo-electric micro-electro-mechanical resonators), RF-MEMS (radio-frequency MEMS).
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 random number generator 28 with a time-to-pseudo-random number converter 404.3, as proposed here, in a monolithic co-integration with conventional micro-integrated circuits when reference is made to "integrated circuit 2 of the microcontroller", and expressly does not limit the technical teaching of this document to the co-integration of the proposed quantum random number generator 28 with a microcontroller.
Solche anderen üblichen integrierten Schaltkreise 2 können beispielsweise umfassen: Such other conventional integrated circuits 2 may include, for example:
- 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 personal computers, circuits for laptops, circuits for entry and/or access control systems, circuits for the coded recording of operating parameters, circuits for electronic security devices, radio system circuits, communication circuits, circuits for encryption and/or decryption systems, circuits for individualisation and identification purposes and/or identification systems and/or identification systems, circuits for gaming devices, circuits for simulation systems, circuits for computer systems, circuits for noise and/or signal sources, circuits for modulation systems and/or devices, 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 Figur 1 außerhalb der Steuervorrichtung 4. Ein weiterer nichtflüchtiger Speicher 30 kann optional innerhalb des mikrointegrierten Schaltkreises außerhalb der Steuervorrichtung 4 vorgesehen und über eine interne Schnittstelle 301 mit diesem verbunden sein. The random access memory 8 may be any suitable memory, e.g. an SRAM, but in this case it is a DRAM. The non-volatile memory 6 and the random access memory 8 are located outside the control device 4 in the example of Figure 1. Another Non-volatile memory 30 can optionally be provided within the micro-integrated circuit outside the control device 4 and connected to it via an internal interface 301.
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 micro-integrated circuit 2 with the exemplary control device 4 is preferably a monolithic integrated circuit, which comprises, for example, the following: one or more processors 10-1, 10-2; a tightly coupled memory 14, which can be, for example, an SRAM; a non-volatile boot ROM 16, which contains a preferably non-changeable code; a hashing engine 18, for example, present; one or more one-time programmable memories (OTP) 20 and 22; a JTAG test interface 12; an interface 32; internal interfaces 63, 81 and 301, which are coupled to the memories 6, 8 and 30; a quantum random number generator 28, which the document presented here also refers to as QRNG (English abbreviation for Quantum Random Number Generator); and hardwired test disabling circuitry 24. OTP memories 20 and 22 may be separate memories or portions of memory within example integrated circuit 2. In this example, they are portions of a single memory. Test disabling circuitry 24 is preferably located between test port 12, which in this example is a JTAG port, and processor(s) 10. Preferably, disabling circuitry 24 is responsive to data in OTP memory portion 22. Optional hashing engine 18 uses data (one or more keys) in OTP memory portion 20. OTP memory portion 20 preferably stores critical security parameters (CSPs) including a secret key and at least one public key. Additional keys may be stored in OTP memory portion 20. In one embodiment of the proposal of this example application of a quantum random number generator 28, the secret key is preferably unique for each instance of the exemplary microintegrated circuit 2 proposed here.
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 Figur 1 aus. Die Grenze der Steuervorrichtung 4 ist eine kryptografische virtuelle Grenze, und die Daten und die Programmausführung innerhalb dieser Grenze werden in diesem ersten Vorschlag der Anwendung eines vorschlagsgemäßen Quantenzufallszahlengenerators 28 als sicher angesehen, wie weiter unten erläutert wird. Das EEPROM 6 und das DRAM 8 (und der Speicher 30, falls vorhanden), befinden sich außerhalb der kryptografischen Grenze, und ohne Sicherheitsmaßnahmen wäre der Inhalt dieser Speicher im Sinne des hier vorgelegten Dokuments nicht sicher. Die Schnittstellen 12, 63, 301, 32 und 81 befinden sich an der physikalischen und kryptografischen Grenze der Steuervorrichtung 4 Innerhalb der mikrointegrierten Schaltung 2. Das hier vorgelegte Dokument offenbart somit eine mikrointegrierte Schaltung 2, die internen Schnittstellen, 63, 301, 32 und 81 an einer kryptografischen Grenze zwischen einer Steuervorrichtung 4 und anderen Teilen (8, 30, 6) der integrierten mikroelektronischen Schaltung 2 aufweist, die als nicht sicher oder weniger sicher eingestuft werden. Der wesentliche Zweck dieser internen Schnittstellen, 63, 301, 32 und 81 ist somit die sichere Abschirmung einer internen Steuervorrichtung 4 innerhalb der mikrointegrierten mikroelektronischen Schaltung 2. The processor(s) 10 preferably executes instructions only from the tightly coupled memory 14 and from the DRAM 8 in the example of Figure 1 presented here. The boundary of the control device 4 is a cryptographic virtual boundary, and the data and program execution within this boundary are considered secure in this first proposal for the application of a proposed quantum random number generator 28, as explained below. The EEPROM 6 and the DRAM 8 (and the memory 30, if present) are outside the cryptographic boundary, and without security measures the contents of these memories would not be secure in the sense of the document presented here. The interfaces 12, 63, 301, 32 and 81 are located at the physical and cryptographic boundary of the control device 4 Within the micro-integrated circuit 2. The document presented here thus discloses a micro-integrated circuit 2 having internal interfaces 63, 301, 32 and 81 at a cryptographic boundary between a control device 4 and other parts (8, 30, 6) of the integrated microelectronic circuit 2 that are classified as non-secure or less secure. The essential purpose of these internal interfaces 63, 301, 32 and 81 is thus the secure shielding of an internal control device 4 within the micro-integrated microelectronic circuit 2.
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 DRAM 8 and the EEPROM 6 are preferably cryptographically protected by authentication codes. In this example, the authentication codes used in the DRAM 8 are preferably of a different type than the authentication codes used in the EEPROM 6. In this example, the contents of the EEPROM 6 are protected against undetected malicious modification at least by the use of digital signatures. The format of the data in the EEPROM 6 is also preferably different from that in the DRAM 8.
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 EEPROM 6 preferably stores the firmware arranged in one or more data records 61, each with a digital signature 62. The digital signatures used in this example of the proposal use public and private keys. Therefore, the details of the digital signatures are not described further, as they are known to the person skilled in the art. When a processor (10-1, 10-2) reads a data record from the EEPROM 6, the processor 10 checks its digital signature. If the digital signature is valid, the data record is processed by the processor(s) 10 using computer-implemented methods of the firmware. The processor(s) 10 thus preferably only executes validly signed firmware. For signing, the processors 10 preferably use keys and authentication codes that depend on quantum random numbers 418 of one or more quantum random number generators 28.
Wie in Figur 1 dargestellt, enthält das Boot-ROM 16 in einem Beispiel einen Code, den der Prozessor 10 zum Lesen eines Ladeprogramms S2 aus dem EEPROM 6 verwendet, um weitere Datensätze aus dem EEPROM 6 zu lesen. Eine Logik im Prozessor 10 lädt einen Programmzähler (nicht dargestellt) im Prozessor 10 wird mit der Startadresse 15 des Boot-ROMs 16. Der Prozessor 10 führt dann den Code im Boot-ROM 15 aus. Dieser Code des Boot-ROMS 15 kann ein computerimplementiertes Ladeprogramm aus dem EEPROM 6 lesen. Der Boot-Code im Boot-ROM 15 gilt als sicher, da er sich innerhalb der kryptografischen Grenze 4 befindet. Das Ladeprogramm ist durch eine digitale Signatur geschützt, die der Prozessor 10 bei Ausführung des Boot-ROM-Codes S4 im Boot-ROM 15 anhand des im ersten OTP-Speicher 20 gespeicherten öffentlichen Schlüssels überprüft. Nachfolgende Datensätze werden mit Hilfe des Ladeprogramms gelesen S6. Das Ladeprogramm im EEPROM 6 und die nachfolgenden Datensätze sind jeweils mit einer digitalen Signatur versehen und haben einen oder mehrere öffentliche Schlüssel eingebettet. Der Der Prozessor 10 prüft bei Ausführung des Ladecodes des Ladeprogramms im EEPROM 6 in Schritt S8 die Signatur des neu aus dem EEPROM 6 gelesenen Datensatzes anhand eines öffentlichen Schlüssels, der in einem zuvor geladenen oder im OTP-Speicher 20 gespeicherten Datensatz eingebettet ist. As shown in Figure 1, in one example, the boot ROM 16 contains code that the processor 10 uses to read a loader program S2 from the EEPROM 6 to read further records from the EEPROM 6. Logic in the processor 10 loads a program counter (not shown) in the processor 10 with the start address 15 of the boot ROM 16. The processor 10 then executes the code in the boot ROM 15. This boot ROM 15 code can read a computer-implemented loader program from the EEPROM 6. The boot code in the boot ROM 15 is considered secure because it is within the cryptographic boundary 4. The loader program is protected by a digital signature that the processor 10 verifies when executing the boot ROM code S4 in the boot ROM 15 against the public key stored in the first OTP memory 20. Subsequent records are read using the loader program S6. The loading program in EEPROM 6 and the subsequent data records are each provided with a digital signature and have a or several public keys embedded. When executing the loading code of the loading program in the EEPROM 6 in step S8, the processor 10 checks the signature of the data set newly read from the EEPROM 6 using a public key that is embedded in a data set previously loaded or stored in the OTP memory 20.
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 EEPROM 6 may contain too much firmware code/data for the small, tightly coupled memory TCM 14 of the controller 4 within the microelectronic circuit 2 to store. The TCM 14 preferably stores firmware code/data that is immediately required by the processor(s) 10. The remainder of the firmware record is transferred to the DRAM 8. Since the DRAM 8 lies outside the cryptographic boundary 4, the codes/data stored there are cryptographically protected by authentication codes that the processor 10 has preferably generated using quantum random numbers from the quantum random number generator 28.
Figur 3 Figure 3
Wie in Figur 3 dargestellt, liest der Prozessor 10 die Daten als Datensatz aus dem EEPROM 6 und schreibt diese als Wörter in den DRAM 8 geschrieben bzw. liest diese Wörter aus diesem DRAM 8 wieder. Wenn in diesem Beispiel der Prozessor 10 einen Datensatz aus dem EEPROM in Schritt S20 liest, wird validiert der Prozessor 10 diesen wie in Figur 4 und der zugehörigen Beschreibung beschrieben. Zumindest ein Teil der Daten des Satzes speichert der Prozessor 10 im Schritt S21 im TCM 14. Die restlichen Daten des Satzes verarbeitet der Prozessor 10 beispielsweise wie folgt und speichert sie im DRAM 8. Der (die) Prozessor(en) 10 arbeitet (arbeiten) mit der optionalen Hash- Engine 18 zusammen, um beispielsweise in Schritt S22 für jedes Wort der verbleibenden Daten einen Hash-Wert zu berechnen und in Schritt S24 den Hash-Wert im DRAM 8 an einer mit dem gespeicherten Wort verbundenen Stelle zu speichern. Die Wortgröße wird entsprechend den Systembeschränkungen gewählt. Sie kann so klein wie ein Byte sein. In der Praxis kann sie 32 Bit betragen. Wenn der Prozessor 10 ein Wort in Schritt S26 aus dem DRAM 8 liest, berechnen der Prozessor 10 und die Hash-Engine 18 den Hash-Wert vorzugsweise neu und vergleichen in Schritt S30 den neu berechneten Hash-Wert mit dem entsprechenden im DRAM 8 gespeicherten Hash-Wert. 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. 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. As shown in Figure 3, the processor 10 reads the data as a record from the EEPROM 6 and writes it as words into the DRAM 8 or reads these words back from this DRAM 8. In this example, when the processor 10 reads a record from the EEPROM in step S20, the processor 10 validates it as described in Figure 4 and the associated description. The processor 10 stores at least part of the data of the record in the TCM 14 in step S21. The processor 10 processes the remaining data of the record, for example as follows, and stores it in the DRAM 8. The processor(s) 10 cooperates with the optional hash engine 18 to calculate a hash value for each word of the remaining data, for example in step S22, and to store the hash value in the DRAM 8 at a location associated with the stored word in step S24. The word size is chosen according to the system limitations. It can be as small as one byte. In practice, it can be 32 bits. When the processor 10 reads a word from the DRAM 8 in step S26, the processor 10 and the hash engine 18 preferably recalculate the hash value and compare the recalculated hash value with the corresponding hash value stored in the DRAM 8 in step S30. 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 processing in step S36 and/or the processor 10 generates an error message and/or the processor 10 ignores the data/code. Storing words in the DRAM 8 with corresponding authentication codes, which are preferably based on quantum random numbers from the quantum random number generator 28, facilitates random access to the words by the processor(s) 10.
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 OTP memory 20. It could also use another key stored in the OTP memory. Preferably, the secret key is based on a quantum random number from the quantum random number generator 28. An example of the hash value is HMAC (address | | data | | secret key), where the character string " | | " here stands for the concatenation. Taking into account the number of bytes that the DRAM 8 can store, the HASH value preferably comprises at least enough bits to avoid or at least reduce duplication of HASH values in the DRAM 8. The number of bits of the HASH value is preferably at least 96 bits and can also be significantly larger. The industry standard is 160 bits, which reduces the probability of duplication of HASH values to a sufficiently low level.
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 cryptographic boundary 4 and protecting the data stored in the DRAM 8 and EEPROM 6, the integrated circuit 2, in particular that of the microcontroller, is protected against unauthorized access to the programs and data used by the processor(s) 10 of the computer in normal operation. This is of particular importance in the automotive field to prevent plagiarism and unauthorized spare parts, which usually require knowledge of the firmware of the illegally copied spare parts. The JTAG test interface 12 could, however, allow access to the processor(s) 10 in a test mode with known EMULATE and TRACE routines and still allow illegal program modifications. The JTAG test port 12 is required for testing at least during the manufacturing process of the integrated circuit 2, for example that of a microcontroller, and can be used for fault diagnosis after manufacturing. Such an analysis capability of an automotive integrated circuit 2, for example an automotive microcontroller, is an indispensable prerequisite for meeting the quality requirements of T16491.
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 JTAG interface 12, the OTP memory 22 can, for example, comprise at least one security bit which, together with the blocking circuit 24, blocks the JTAG interface 12.
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 Figur 2). Die Deaktivierungsschaltung, die Teil des Schaltkreises der Steuervorrichtung 4 innerhalb des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, ist, umfasst vorzugsweise ein Gatter 241, das beispielsweise zwischen dem seriellen Ausgang der JTAG-Schnittstelle 10 und dem/den Prozessor(en) 10 liegt, und ein Gatter 242, das zwischen dem seriellen Eingang der JTAG-Schnittstelle 10 und dem/den Prozessor(en) 10 liegt. Das Sicherheitsbit "1" im OTP-Speicher 22 deaktiviert die Gatter 241 und 242. Da das Sicherheitsbit nicht geändert werden kann, ist der Testanschluss dann gegen eine Verwendung nach der Herstellung und Lieferung des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, gesichert. In an example, the OTP memory 22 contains only one bit. The OTP memory 22 allows a bit to be changed only once from one state, e.g. "0", to the opposite state "1". During the During manufacture of the integrated circuit 2, e.g. the microcontroller, the bit is e.g. "0", which enables testing. In a final test step, the manufacturer of the exemplary integrated circuit 2, e.g. the microcontroller, sets the bit to "1" before releasing the integrated circuit 2, e.g. the microcontroller, for delivery and use. The JTAG port 12 typically has a serial input and a serial output (see Figure 2). The deactivation circuit, which is part of the circuit of the control device 4 within the integrated circuit 2, e.g. the microcontroller, preferably comprises a gate 241, e.g. located between the serial output of the JTAG interface 10 and the processor(s) 10, and a gate 242, e.g. located between the serial input of the JTAG interface 10 and the processor(s) 10. The security bit "1" in the OTP memory 22 deactivates the gates 241 and 242. Since the security bit cannot be changed, the test port is then secured against use after the manufacture and delivery of the integrated circuit 2, for example the microcontroller.
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 OTP memory 22 has a two-bit security code, which is initially "00". This allows a check during manufacture, after which the code is set to "01", i.e. one of the two bits is set to "1". This code "01" locks the gates 241 and 242. If an error occurs, the integrated circuit 2, for example of the microcontroller, is returned to its manufacturer, who sets the other bit to "1", resulting in the code "11", which allows a check via the terminal 12. Such a check is preferably destructive, since it does not allow a reset to the original value. Access to the OTP memory 22 to change the security code can be made by a suitable access code, preferably generated by means of a quantum random number generator 28, which is provided with a digital signature that can be verified by a quantum random number-based key stored in the OTP memory 20. The key may, for example, be the standard public key stored in memory 20. This allows the security code to be changed to "11", which enables verification via JTAG interface 12. The original integrated circuit 2, for example the microcontroller, is preferably retained by the manufacturer and preferably destroyed and the user receives a new integrated circuit 2, for example a microcontroller.
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 code is changed by the manufacturer to "011" to allow testing. After testing, the code is changed to "111", thereby securing the JTAG interface 12 against use and the integrated circuit 2, for example, the microcontroller, to which the user can be returned. Only a signed access code provided with a digital signature verified by a key in the OTP memory 20 can be used to change the code stored in the OTP memory 22.
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 EEPROM Additional interface and additional EEPROM
Wie in Figur 1 dargestellt, kann der die Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, zusätzlich zu den Anschlüssen 3 und 12 optional noch mindestens eine weitere Schnittstelle 32 aufweisen. Diese weitere Schnittstelle 32 kann beispielsweise ein Ethernet-Anschluss oder ein Fibre-Channel-Anschluss oder ein automobiler Datenbusanschluss für Datenbusse wie CAN, LIN, DSI3 oder PSI5 sein. Ein Fibre-Channel-Anschluss im Sinne des hier vorgelegten Dokuments ist ein Datenanschluss, der einen Lichtwellenleiter oder einen anderen Wellenleiter für elektromagnetische Strahlung nutzt. As shown in Figure 1, the control device 4 of the integrated circuit 2, for example the microcontroller, can optionally have at least one further interface 32 in addition to the connections 3 and 12. This further interface 32 can be, for example, an Ethernet connection or a Fibre Channel connection or an automotive data bus connection for data buses such as CAN, LIN, DSI3 or PSI5. A Fibre Channel connection in the sense of the document presented here is a data connection that uses an optical fiber or another waveguide for electromagnetic radiation.
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 integrated circuit 2, for example the microcontroller, can additionally have a further non-volatile memory 30 outside the control device 4 of the integrated circuit 2, for example a microcontroller, which stores data that is cryptographically protected by a security parameter stored in the OTP memory 20. The further non-volatile memory 30 is coupled to the control device 4 via the internal interface 301 of the integrated circuit 2, for example the microcontroller.
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 non-volatile memory 30 can be an EEPROM, for example. The further memory 30 can store further critical security parameters outside the control device 4. The further parameters are preferably encrypted and provided with digital signatures to make them secure. The further parameters are preferably encrypted with the secret key that is only valid for the control device 4 and is stored in the OTP memory 20. Preferably, the secret key is based on a quantum random number from a quantum random number generator 28. The digital signatures of the further parameters are created using the unique secret key stored in the OTP memory 20. This secret key is used to decrypt the further security parameters and to verify the digital signatures read from the further memory 30.
Der weitere nichtflüchtige Speicher 30 kann andere verschlüsselte und/oder digital signierte Daten enthalten. 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 non-volatile memory 30 may contain other encrypted and/or digitally signed data. The additional security parameters outside the control device 4 of the integrated circuit 2, for example the microcontroller, can be used to secure the data and codes transmitted via the interface(s) 32.
Herstellung des integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers. Manufacturing of the integrated circuit 2, for example the microcontroller.
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 integrated circuit 2, e.g. the microcontroller, the boot code is preferably hard-coded in the boot ROM 16; the loader and other codes/data are stored in the EEPROM 6 with digital signatures based on the public and private keys, preferably generated using quantum random numbers of a quantum random number generator 28; and preferably at least one public key is generated using a quantum random number of a quantum random number generator and stored in the OTP memory 20.
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 OTP 20 when the security code, which is preferably based on a quantum random number of a quantum random number generator 28, is set in the OTP 22 and the test port of the exemplary JTAG interface 12 has been blocked. The control device 4 of the integrated circuit 2, for example the microcontroller, contains the necessary quantum random number generator QRNG 28 in the example presented here. The firmware stored in the tightly coupled memory 14 or in the DRAM 8 reads one or more quantum random numbers of e.g. 256 bits from the quantum random number generator 28 and stores them in the OTP 20 as a secret key without this data leaving the control device 4, preferably within the integrated circuit 2, for example the microcontroller. This preferably only happens after the test port 12 has been deactivated in order to prevent access to the secret key even for persons who have access to the manufacturing process. Preferably, the logic gates of the integrated circuit 2, for example the microcontroller, or at least those of the control device 4 of the integrated circuit 2, for example the microcontroller, are designed in such a way that the current peaks that occur when logical states change within the circuits of the logic gates do not allow any conclusions to be drawn about the processes and/or the data and/or the quantum random numbers and/or the circuit states of the device. This avoids so-called side channels. For this purpose, the proposed device can comprise current sources, complementary switching, complementary dummy circuits, energy reserves (e.g. capacitances), etc.
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. 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 hash function of the hashing engine 18 may be any suitable hash function and is not limited to the example of HMAC described above. The on-chip quantum random number generator 28 QRNG could be omitted from the integrated circuit 2, for example the microcontroller, and instead an off-chip quantum random number generator QRNG could be used to generate the secret key during the manufacturing process. However, an on-chip quantum random number generator QRNG is significantly more secure.
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 EEPROM 6 is preferably cryptographically protected, in this example by digital signatures. During production, the firmware is first compiled. It is then digitally signed with a secret private key of a private-public key system. Preferably, the secret private key of the private-public key system is based on a quantum random number of a quantum random number generator 28. The public key is preferably stored in the OTP memory 20 so that the signature can be verified. The signed firmware is stored in the EEPROM 6. The digital signatures can be created by transmitting the compiled firmware to a secure signature generator during the production process. The secure signature generator can be the integrated circuit 2, for example of the microcontroller, namely the control device 4 in cooperation with the quantum random number generator 28 itself. The signed firmware can be downloaded into the EEPROM 6 via a communication connection, e.g. the Internet, if the signing is done externally. However, the processor 10 can remove the signature of the firmware before storing it in the EEPROM 6 and replace it with its own quantum random number-based signature based on a quantum random number from its quantum random number generator 28, which then makes it impossible for anyone to read the firmware without exception.
Anstelle eines EEPROMs kann der nichtflüchtige Speicher 6 ein beliebiger anderer geeigneter Speicher sein, beispielsweise ein FLASH-Speicher. Instead of an EEPROM, the non-volatile memory 6 can be any other suitable memory, for example a FLASH memory.
Der weitere nichtflüchtige Speicher 30 kann beispielsweise ein serieller EEPROM-Speicher sein.The additional non-volatile memory 30 may, for example, be a serial EEPROM memory.
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 programmable memory OTP 22, which contains the security code, can be replaced with another re-programmable, non-volatile memory and the security code can be changed using signed firmware. However, a memory 22 that can only be programmed once is more secure because its programming is irreversible.
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 DRAM 8 can be further protected by making access to the DRAM 8 physically very difficult and detectable in case of an attempt. For example, the connections between the DRAM 8 and the control device 4 can be buried in layers of the metallization stack of the integrated circuit 2, for example the microcontroller, or otherwise protected against physical scanning (eg by e-beam). Preferably, the Device parts of the control device 4 have such a scanning protection. In particular, it is advantageous if the quantum random number generator 28 has such a scanning protection, for example in the form of a metal layer 53, 142 lying at a predefined potential.
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 integrated circuit 2, for example of the microcontroller, can be provided with such scanning protection, for example in the form of a metal layer 53, 142 lying at a predefined potential. The entire integrated circuit 2, for example of the microcontroller, can also be housed in a tamper-proof housing with tamper-proof seals.
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. 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 secure integrated circuit 2, for example of the microcontroller, preferably has at least one photon source 54 or a silicon LED 54 or a first SPAD diode 54 as a photon source for photons of the quantum random number generator 28. The secure integrated circuit 2, for example of the microcontroller, preferably has at least one photon detector 55 or a second SPAD diode 55. An optical system preferably optically couples the at least one photon source 54 or the silicon LED 54 or the first SPAD diode 54 to the photon detector 55 or the second SPAD diode 55 by means of these photons. The optical system can comprise an optical waveguide 44. The quantum random number generator 28 is preferably a quantum process-based generator for true random numbers (QRNG) 28. The quantum process-based generator for true random numbers (QRNG) 28 preferably comprises a photon source 54 or a silicon LED 54 or a first SPAD diode 54 as a light source for an optical quantum signal and a photon detector 55 or a second SPAD diode 55 as a photodetector for this optical quantum signal. Furthermore, the quantum process-based generator for true random numbers (QRNG) 28 preferably comprises at least the processing circuit and optionally the optical fiber 44. The optical fiber 44, which may be present, preferably optically couples the photon source 54 or the silicon LED 54 or the first SPAD diode 54 to the photon detector 55 or a second SPAD diode 55. An operating circuit supplies the photon source 54 or the silicon LED 54 or the first SPAD diode 54 with electrical energy in such a way that the photon source 54 or the silicon LED 54 or the first SPAD diode 54 emit light. The emission of light requires that the operating voltage provides a sufficient electrical bias voltage for the photon source 54 or the silicon LED 54 or the first SPAD diode 54. A processing circuit (402, 403, 404) detects the signal from the photon detector 55 or the second SPAD diode 55 and forms the quantum random number 418 from it. The processing circuit then preferably makes the quantum random number 418 thus formed available to one or more of the one or more processors 10 via a data bus 419. The semiconductor crystal of the integrated circuit 2, for example of the microcontroller, preferably has a surface 56. The semiconductor crystal typically has a semiconducting material below its surface 56. In particular when using conventional semiconductor circuit manufacturing processes, such as CMOS processes, bipolar processes, BiCMOS processes and BCD processes, the surface 56 of the semiconductor crystal typically has a metallization stack as structured metal layers and electrical insulation layers. The structured metal layers typically form the electrically conductive conductor tracks, which are electrically separated from one another by the insulation layers. The metallization stack thus has a typically structured and optically transparent and electrically insulating layer 44. At least part of this typically structured, transparent and electrically insulating layer 44 of the surface 56 preferably forms the optical waveguide 44.
Die hier vorgestellten Beispiele der Figuren 6 und 7 verwenden eine erste SPAD-Diode 54 als Photonenquelle 54. Die erste SPAD-Diode 54 strahlt in den Beispielen der Figuren 6 und 7 beispielsweise aus dem halbleitenden Material des Halbleitersubstrats 49 in diesen optischen Lichtwellenleiter 44 Licht 57 ein. D. h. in der Regel strahlt die erste SPAD-Diode 54 senkrecht zur Oberfläche 56 im Wesentlichen nach oben und nicht zur Seite in das Halbleitersubstrat 49 des Halbleiterkristalls 49 hinein. Das Material des Halbleiterkristalls 49 weist nämlich eine hohe Dämpfung für dieses Licht auf. Trotzdem ist die Abstrahlung der Photonen 57 der ersten SPAD-Diode 54 im Lichtwellenleiter 44 nicht gerichtet. Insbesondere ist die Ausstrahlung über das Substrat 48, 49 sehr gedämpft, da sichtbares Licht eine sehr hohe Absorption besitzt. Durch dies Anordnung kann die Vorrichtung mehr Photonen der ersten SPAD-Diode 54 direkt mit der zweiten SPAD-Diode 55 koppeln, die hier in den Beispielen der Figuren 6 und 7 als Photonendetektor 54 dient. Der optische Lichtwellenleiter 44 transportiert in den Beispielen der Figuren 6 und 7 diese Photonen 57, 58, 59 der ersten SPAD-Diode 54 im Lichtwellenleiter 44 im Vergleich zu anderen Lösungen aus dem Stand der Technik praktisch verlustfrei zur zweiten SPAD-Diode 55. Der Lichtwellenleiter 44 bestrahlt in den Beispielen der Figuren 6 und 7 mit diesen Photonen 57, 58, 59 der ersten SPAD-Diode 54 die zweite SPAD-Diode 55 in der Art, dass das Licht 59 von innerhalb des Lichtwellenleiters 44 wieder in das halbleitende Material des Halbeleitersubstrats 49 von der Oberfläche 56 her eindringt und dort Vorrichtungsteile der zweiten SPAD-Diode 55 trifft. Die zweite SPAD-Diode 55 erzeugt dann in Abhängigkeit von der Bestrahlung mit diesen Photonen 59 ein Empfangssignal. The examples presented here in Figures 6 and 7 use a first SPAD diode 54 as photon source 54. In the examples in Figures 6 and 7, the first SPAD diode 54 radiates light 57 from the semiconducting material of the semiconductor substrate 49 into this optical waveguide 44, for example. This means that the first SPAD diode 54 generally radiates perpendicular to the surface 56, essentially upwards, and not sideways, into the semiconductor substrate 49 of the semiconductor crystal 49. The material of the semiconductor crystal 49 has a high attenuation for this light. Nevertheless, the emission of the photons 57 of the first SPAD diode 54 in the optical waveguide 44 is not directed. In particular, the emission via the substrate 48, 49 is very attenuated, since visible light has a very high absorption. This arrangement allows the device to couple more photons from the first SPAD diode 54 directly to the second SPAD diode 55, which here serves as the photon detector 54 in the examples of Figures 6 and 7. In the examples in Figures 6 and 7, the optical waveguide 44 transports these photons 57, 58, 59 of the first SPAD diode 54 in the optical waveguide 44 to the second SPAD diode 55 with virtually no loss compared to other prior art solutions. In the examples in Figures 6 and 7, the optical waveguide 44 irradiates the second SPAD diode 55 with these photons 57, 58, 59 of the first SPAD diode 54 in such a way that the light 59 penetrates from within the optical waveguide 44 back into the semiconducting material of the semiconductor substrate 49 from the surface 56 and there strikes device parts of the second SPAD diode 55. The second SPAD diode 55 then generates a received signal depending on the irradiation with these photons 59.
Typischerweise versorgt zumindest eine Betriebsschaltung in den Beispielen der Figuren 6 und 7 die zumindest eine erste SPAD-Diode 54 zumindest zeitweise mit elektrischer Energie. Die zumindest eine erste SPAD-Diode 54 speist dann bei Versorgung mit ausreichender elektrischer Energie Photonen 57 in den in den Figuren 6 und 7 vorgesehenen Lichtwellenleiter 44 ein. Der Lichtwellenleiter 44 transportiert diese Photonen 57, 58, 59 dann weiter. Der in den Beispielen der Figuren 6 und 7 vorgesehene Lichtwellenleiter 44 strahlt dann die transportierten Photonen 58 als im Wesentlichen senkrecht sich bewegende Photonen 59 in die zweite SPAD-Diode 55 ein. Da dieser Transport der Photonen von der ersten SPAD-Diode 54 zur zweiten SPAD-Diode 55 aufgrund der geringen Dämpfung im Lichtwellenleiter 44 wesentlich weniger Photonen verliert als in anderen Konstruktionen aus dem Stand der Technik, die das stark absorbierende Halbleitersubstrat 49, 49 benutzen, ist der Quantenwirkungsgrad massiv höher. Damit steigt die Bit-Rate der Quantenzufallsbits 411, mit der die Vorrichtung Quantenzufallszahlen 418 erzeugen kann, an. Daher reicht bei der hier vorgestellten Konstruktion bereits ein Paar aus einer einzigen ersten SPAD-Diode 54 und einer einzigen zweiten SPAD-Diode 55 aus. Andere Vorrichtungen aus dem Stand der Technik verwenden typischerweise mehrere SPAD-Dioden. Typically, at least one operating circuit in the examples of Figures 6 and 7 supplies the at least one first SPAD diode 54 with electrical energy at least temporarily. The at least one first SPAD diode 54 then feeds Photons 57 into the optical waveguide 44 provided in Figures 6 and 7. The optical waveguide 44 then transports these photons 57, 58, 59 further. The optical waveguide 44 provided in the examples in Figures 6 and 7 then radiates the transported photons 58 as essentially vertically moving photons 59 into the second SPAD diode 55. Since this transport of photons from the first SPAD diode 54 to the second SPAD diode 55 loses significantly fewer photons due to the low attenuation in the optical waveguide 44 than in other prior art designs that use the highly absorbent semiconductor substrate 49, 49, the quantum efficiency is massively higher. This increases the bit rate of the quantum random bits 411 with which the device can generate quantum random numbers 418. Therefore, in the construction presented here, a pair of a single first SPAD diode 54 and a single second SPAD diode 55 is sufficient. Other prior art devices typically use multiple SPAD diodes.
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 integrated circuit 2, for example of the microcontroller, at least one data interface of the one or more data interfaces 64 is a wired automotive data bus interface 64. In this case, the wired automotive data bus interface 64 can be, for example, a CAN data bus interface or a CAN-FD data bus interface or a Flexray data bus interface or a PSI5 data bus interface or a DSI3 data bus interface or a LIN data bus interface or an Ethernet data bus interface or an SPI data bus interface or a MELIBUS data bus interface.
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 integrated circuit 2, for example the microcontroller, at least one data interface 64 of the one or more data interfaces 64 is a wireless data bus interface. The wireless data bus interface 64 can be, for example, a WLAN interface or a Bluetooth interface.
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 El B- Datenbusschnittstelle oder eine DALI-Datenbusschnittstelle oder eine PROFIBUS- Datenbusschnittstelle sein. In a further development of the proposed secure integrated circuit 2, for example the microcontroller, at least one data interface 64 of the one or more data interfaces 64 is a wired data bus interface 64. The wireless data bus interface 64 can be, for example, a KNX data bus interface or an EIB data bus interface or a DALI data bus interface or a PROFIBUS data bus interface.
Obwohl die vorschlagsgemäße Vorrichtung beispielhaft unter Bezugnahme auf eineAlthough the proposed device is described by way of example with reference to a
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. Control device 4 and the integrated circuit 2, for example the microcontroller, As described above, it is not limited to a control device 4 or the integrated circuit 2, for example the microcontroller. The proposed device can also be applied to other types of integrated circuit processors and other integrated circuits. A microprocessor is only a particularly favorable, because complex, example of a proposed exemplary integrated circuit 2.
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 integrated circuit 2, for example the microcontroller. The embodiments of the proposal ensure that the data to be processed, including the executable code, cannot be changed by unauthorized persons who access the data stored outside the integrated circuit 2, for example the microcontroller, or, if such access occurs, ensure that this access and/or such an attempted access does not go unnoticed and that the data and/or program codes and/or keys and/or authentication data etc. cannot be changed unnoticed. Security is ensured by security data, and the security data itself is secure because it is stored within the integrated circuit 2, for example the microcontroller, in a protected area 4 and protected from unauthorized access.
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 embodiments to the combination with other features of the embodiments is expressly not intended. In addition, material features of the device can also be reformulated and used as process features and Process features 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 6 Figure 6
Der sichere integrierte Schaltkreises 2, beispielsweise des Mikrocontrollers, weist in dem Beispiel der Figur 6 beispielhaft zumindest eine erste SPAD-Diode 54 und zumindest eine zweite SPAD-Diode 55 und zumindest einen optischen Lichtwellenleiter 44 auf. Der Quantenzufallszahlengenerator 28 ist bevorzugt ein quantenprozessbasierender Generator für echte Zufallszahlen (QRNG) 28. Der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) 28 umfasst im Beispiel der Figur 6 eine erste SPAD-Diode 54 als Lichtquelle für ein optisches Quantensignal und eine zweite SPAD-Diode 55 als Fotodetektor für das optische Quantensignal. Des Weiteren umfasst der quantenprozessbasierende Generator für echte Zufallszahlen (QRNG) 28 in dem Beispiel der Figur 6 zumindest die Verarbeitungsschaltung und den optische Lichtwellenleiter 44. Bevorzugt koppelt der optische Lichtwellenleiter 44 in dem Beispiel der Figur 6 die zumindest eine erste SPAD-Diode 54 mit der zumindest einen zweiten SPAD-Diode 55 optisch. Eine Betriebsschaltung versorgt in dem Beispiel der Figur 6 die erste SPAD-Diode 54 in der Art mit elektrischer Energie, dass die erste SPAD-Diode 54 Licht 57 emittiert. Die Abstrahlung von Licht 57 erfordert in dem Beispiel der Figur 6 dabei, dass die Betriebsspannung eine ausreichende elektrische Vorspannung der ersten SPAD-Diode 54 (404.1) zur Verfügung stellt. Eine Verarbeitungsschaltung (402, 403, 404) erfasst in dem Beispiel der Figur 6 das Signal der zweiten SPAD-Diode 55 (404.3) 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 integrated circuit 2, for example of the microcontroller, has, in the example of Figure 6, at least one first SPAD diode 54 and at least one second SPAD diode 55 and at least one optical waveguide 44. The quantum random number generator 28 is preferably a quantum process-based generator for true random numbers (QRNG) 28. The quantum process-based generator for true random numbers (QRNG) 28 in the example of Figure 6 comprises a first SPAD diode 54 as a light source for an optical quantum signal and a second SPAD diode 55 as a photodetector for the optical quantum signal. Furthermore, the quantum process-based generator for true random numbers (QRNG) 28 in the example of Figure 6 comprises at least the processing circuit and the optical waveguide 44. Preferably, the optical waveguide 44 in the example of Figure 6 optically couples the at least one first SPAD diode 54 to the at least one second SPAD diode 55. In the example of Figure 6, an operating circuit supplies the first SPAD diode 54 with electrical energy in such a way that the first SPAD diode 54 emits light 57. In the example of Figure 6, the emission of light 57 requires that the operating voltage provides a sufficient electrical bias voltage for the first SPAD diode 54 (404.1). In the example of Figure 6, a processing circuit (402, 403, 404) detects the signal of the second SPAD diode 55 (404.3) and forms the quantum random number 418 therefrom. The processing circuit then preferably makes the quantum random number 418 thus formed available to one or more of the one or more processors 10 via a data bus 419.
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 semiconductor crystal 49 of the control device 4 of the integrated circuit 2, for example the microcontroller, has a surface 56. Typically, the semiconductor crystal 49 has a semiconducting material below its surface 56. In particular, when using conventional semiconductor circuit manufacturing processes, such as CMOS processes, In bipolar processes, BiCMOS processes and BCD processes, the surface 56 of the semiconductor crystal 49 typically has a metallization stack as structured metal layers and electrical insulation layers. The structured metal layers typically form the electrically conductive conductor tracks, which are electrically separated from one another by the insulation layers. The metallization stack thus has a typically structured and optically transparent and electrically insulating layer 44. At least part of this typically structured, transparent and electrically insulating layer 44 of the surface 56 preferably forms the optical waveguide 44.
In dem Beispiel der Figur 6 strahlt die erste SPAD-Diode 54 beispielsweise aus dem halbleitenden Material des Halbleitersubstrats 49 in diesen optischen Lichtwellenleiter 44 Licht 57 ein. D. h. in dem Beispiel der Figur 6 strahlt die erste SPAD-Diode 54 im Gegensatz zu anderen Vorrichtungen aus dem Stand der Technik senkrecht zur Oberfläche 56 im Wesentlichen nach oben und nicht zur Seite in das Halbleitersubstrat 49 des Halbleiterkristalls hinein, das eine hohe Dämpfung aufweist. Trotzdem ist die Abstrahlung der Photonen 57 der ersten SPAD-Diode 54 im Lichtwellenleiter 44 nicht gerichtet. Insbesondere ist die Ausstrahlung über das Substrat 48, 49 sehr gedämpft, da sichtbares Licht eine sehr hohe Absorption besitzt. Hierdurch kann die Vorrichtung der Figur 6 im Vergleich zu Vorrichtungen aus dem Stand der Technik mehr Photonen der ersten SPAD-Diode 54 direkt mit der zweiten SPAD-Diode 55 koppeln. Der optische Lichtwellenleiter 44 transportiert diese Photonen 57, 58, 59 der ersten SPAD-Diode 54 im Beispiel der Figur 6 im Lichtwellenleiter 44 im Vergleich zu anderen Vorrichtungen aus dem Stand der Technik praktisch verlustfrei zur zweiten SPAD-Diode 55. Der Lichtwellenleiter 44 bestrahlt mit diesen Photonen 57, 58, 59 der ersten SPAD-Diode 54 in dem Beispiel der Figur 6 die zweite SPAD-Diode 55 in der Art, dass das Licht 59 von innerhalb des Lichtwellenleiters 44 wieder in das halbleitende Material des Halbeleitersubstrats 49 von der Oberfläche 56 aus eindringt und dort Vorrichtungsteile der zweiten SPAD-Diode 55 trifft. Die zweite SPAD-Diode 55 erzeugt dann im Beispiel der Figur 6 in Abhängigkeit von der Bestrahlung mit diesen Photonen 59 ein Empfangssignal. In the example of Figure 6, the first SPAD diode 54 radiates light 57, for example, from the semiconducting material of the semiconductor substrate 49 into this optical waveguide 44. This means that in the example of Figure 6, in contrast to other devices from the prior art, the first SPAD diode 54 radiates perpendicular to the surface 56 essentially upwards and not sideways into the semiconductor substrate 49 of the semiconductor crystal, which has a high attenuation. Nevertheless, the emission of the photons 57 of the first SPAD diode 54 is not directed in the optical waveguide 44. In particular, the emission via the substrate 48, 49 is very attenuated, since visible light has a very high absorption. As a result, the device of Figure 6 can couple more photons of the first SPAD diode 54 directly to the second SPAD diode 55 compared to devices from the prior art. The optical waveguide 44 transports these photons 57, 58, 59 of the first SPAD diode 54 in the example of Figure 6 in the optical waveguide 44 to the second SPAD diode 55 with virtually no loss compared to other devices from the prior art. The optical waveguide 44 irradiates the second SPAD diode 55 with these photons 57, 58, 59 of the first SPAD diode 54 in the example of Figure 6 in such a way that the light 59 penetrates from within the optical waveguide 44 back into the semiconducting material of the semiconductor substrate 49 from the surface 56 and there strikes device parts of the second SPAD diode 55. The second SPAD diode 55 then generates a received signal in the example of Figure 6 depending on the irradiation with these photons 59.
Typischerweise versorgt zumindest eine Betriebsschaltung im Beispiel der Figur 6 die zumindest eine erste SPAD-Diode 54 zumindest zeitweise mit elektrischer Energie. Die zumindest eine erste SPAD- Diode 54 speist dann im Beispiel der Figur 6 bei Versorgung mit ausreichender elektrischer Energie Photonen 57 in den zumindest einen Lichtwellenleiter 44 ein. Der Lichtwellenleiter 44 transportiert im Beispiel der Figur 6 diese Photonen 57, 58, 59 dann weiter. Der zumindest eine Lichtwellenleiter 44 strahlt dann im Beispiel der Figur 6 die transportierten Photonen 58 als im Wesentlichen senkrecht sich bewegende Photonen 59 in die zweite SPAD-Diode 55 ein. Da dieser Transport der Photonen von der ersten SPAD-Diode 54 zur zweiten SPAD-Diode 55 im Beispiel der Figur 6 aufgrund der geringen Dämpfung im Lichtwellenleiter 44 wesentlich weniger Photonen verliert als in anderen Konstruktionen aus dem Stand der Technik, die das stark absorbierende Halbleitersubstrat 48, 49 benutzen, ist der Quantenwirkungsgrad massiv höher. Damit steigt bei einer Vorrichtung entsprechend dem Beispiel der Figur 6 die erzeugbare Quantenzufallsbit-Rate, mit der die Vorrichtung wiederum Quantenzufallszahlen erzeugen kann, an. Daher reicht bei der hier vorgestellten Konstruktion der Figur 6 typischerweise bereits ein Paar aus einer einzigen ersten SPAD-Diode 54 und einer einzigen zweiten SPAD-Diode 55 aus. Vorrichtungen aus dem Stand der Technik verwenden typischerweise mehrere SPAD-Dioden. Typically, at least one operating circuit in the example of Figure 6 supplies the at least one first SPAD diode 54 with electrical energy at least temporarily. The at least one first SPAD diode 54 then feeds photons 57 into the at least one optical waveguide 44 in the example of Figure 6 when supplied with sufficient electrical energy. The optical waveguide 44 then transports these photons 57, 58, 59 further in the example of Figure 6. The at least one optical waveguide 44 then radiates the transported photons 58 as essentially vertically moving photons 59 into the second SPAD diode 55 in the example of Figure 6. Since this transport of the photons from the first SPAD diode 54 to the second SPAD diode 55 in the example of Figure 6 is due to the low attenuation in the optical waveguide 44 loses significantly fewer photons than in other prior art designs that use the highly absorbent semiconductor substrate 48, 49, the quantum efficiency is massively higher. This increases the quantum random bit rate that can be generated in a device according to the example in Figure 6, with which the device can in turn generate quantum random numbers. Therefore, in the design presented here in Figure 6, a pair of a single first SPAD diode 54 and a single second SPAD diode 55 is typically sufficient. Prior art devices typically use multiple SPAD diodes.
Figur 7 Figur 7 entspricht im Wesentlichen der Figur 6. Im Unterschied zur Figur 6 sind der Halbleiterkristall 49 und die epitaktische Schicht 48 nun mit einer ersten optisch transparenten Isolatorschicht, beispielsweise einer Oxidschicht 143 bedeckt. Die Durchkontaktierungen 140 sind in dem Beispiel der Figur 7 mit Metall elektrisch leitend gefüllt. Die Metallisierungsebene 1 mit den elektrischen Leitungen der ersten Verdrahtungsebene 141 kontaktieren in dem Beispiel der Figur 7 diese Durchkontaktierungen 140. Auf dieser ersten Isolationsschicht 142 und der ersten Metallisierungslage mit der ersten Verdrahtungsebene 141 ist in dem Beispiel der Figur 7 eine zweite optisch transparente Isolationsschicht 144, vorzugsweise ebenfalls in Form einer Oxidschicht, aufgebracht. Auch diese kann durch Durchkontaktierungen, die in der Figur 7 nicht eingezeichnet sind, durchkontaktiert sein, sodass Leitungen der ersten Metallisierungsebene mit Leitungen der zweiten Metallisierungsebene in dem Beispiel der Figur 7 verbunden werden können. Die gestrichelt eingezeichnete Grenzfläche 145 zwischen der ersten optisch transparente Isolationsschicht 143 und der zweiten optisch transparente Isolationsschicht 144 ist in dem Beispiel der Figur 7 im Wesentlichen ebenfalls optisch transparent und reflektiert und/oder absorbiert das Licht der ersten SPAD-Diode 55 im Wesentlichen bevorzugt nicht. Die erste optisch transparente Isolationsschicht 143 und die zweite optisch transparente Isolationsschicht 144 bilden in dem Beispiel der Figur 7 im Wesentlichen den optischen Wellenleiter im Bereich der ersten SPAD-Diode 54 und der zweiten SPAD-Diode 55. Im optischen Pfad zwischen der ersten SPAD-Diode 54 und der zweiten SPAD-Diode 55 befinden sich in dem Beispiel der Figur 7 vorzugsweise keine Durchkontaktierungen 140 und keine Metallleitungen 141, sodass das Licht der ersten SPAD-Diode 54 in dem Beispiel der Figur 7 ungehindert die zweite SPAD-Diode 55 erreichen kann. Ein Metalldeckel 142 verhindert in dem Beispiel der Figur 7 den Austritt von Photonen nach oben und spiegelt diese vorzugsweise wieder in den Lichtwellenleiter 44 in dem Beispiel der Figur 7 zurück. Die Durchkontaktierungen 140 und die Metallleitungen der ersten Metallisierungsebene 141 verhindern in ähnlicher Weise in dem Beispiel der Figur 7, dass Licht aus dem Lichtwellenleiter 44 in der horizontalen im Metallisierungsstapel verloren geht. Figur 8 Figure 7 Figure 7 essentially corresponds to Figure 6. In contrast to Figure 6, the semiconductor crystal 49 and the epitaxial layer 48 are now covered with a first optically transparent insulator layer, for example an oxide layer 143. The vias 140 are filled with electrically conductive metal in the example in Figure 7. The metallization level 1 with the electrical lines of the first wiring level 141 contact these vias 140 in the example in Figure 7. On this first insulation layer 142 and the first metallization layer with the first wiring level 141, a second optically transparent insulation layer 144, preferably also in the form of an oxide layer, is applied in the example in Figure 7. This can also be plated through by vias that are not shown in Figure 7, so that lines of the first metallization level can be connected to lines of the second metallization level in the example in Figure 7. The dashed boundary surface 145 between the first optically transparent insulation layer 143 and the second optically transparent insulation layer 144 is also essentially optically transparent in the example in Figure 7 and preferably does not reflect and/or absorb the light from the first SPAD diode 55. In the example in Figure 7, the first optically transparent insulation layer 143 and the second optically transparent insulation layer 144 essentially form the optical waveguide in the region of the first SPAD diode 54 and the second SPAD diode 55. In the example in Figure 7, there are preferably no vias 140 and no metal lines 141 in the optical path between the first SPAD diode 54 and the second SPAD diode 55, so that the light from the first SPAD diode 54 can reach the second SPAD diode 55 unhindered in the example in Figure 7. A metal cover 142 prevents photons from escaping upwards in the example of Figure 7 and preferably reflects them back into the optical waveguide 44 in the example of Figure 7. The vias 140 and the metal lines of the first metallization level 141 similarly prevent light from the optical waveguide 44 from being lost horizontally in the metallization stack in the example of Figure 7. Figure 8
Figur 8 zeigt schematisch das vereinfachte Blockdiagram eines quantenbasierten ZufallsgeneratorsFigure 8 shows a schematic simplified block diagram of a quantum-based random number generator
(Quantenzufallszahlengenerators 28) wie er dem Vorschlag dieses Dokuments entspricht. (Quantum Random Number Generator 28) as proposed in this document.
Ein bevorzugt gemeinsamer Systemtakt 2106 taktet bevorzugt die digitalen Schaltungen der beispielhaft in der Figur 8 dargestellten Vorrichtung. Der Quantenzufallszahlengenerator 28 der Figur 8 ist bevorzugt Teil der Steuervorrichtung 4 und damit des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers. Der Aufbau des Quantenzufallszahlengenerators 28 beinhaltet eine Entropie Quelle 401, in dem Beispiel der Figur 8 einen breitbandigen 40 dB Hochfrequenzverstärkers 402 oder dergleichen und einem Analog-Digital Wandler 403, der ggf. auch nur ein Inverter oder dergleichen sein kann. In Experimenten wurde ein Analog-zu-Digital-Wandler 403 mit einer Auflösung von 14 Bit und einer Abtastrate von 125 MS/s und mit einer Auswertevorrichtung 404 erfolgreich verwendet. A preferably common system clock 2106 preferably clocks the digital circuits of the device shown by way of example in Figure 8. The quantum random number generator 28 of Figure 8 is preferably part of the control device 4 and thus of the integrated circuit 2, for example the microcontroller. The structure of the quantum random number generator 28 includes an entropy source 401, in the example of Figure 8 a broadband 40 dB high-frequency amplifier 402 or the like and an analog-digital converter 403, which may also be just an inverter or the like. In experiments, an analog-to-digital converter 403 with a resolution of 14 bits and a sampling rate of 125 MS/s and with an evaluation device 404 was successfully used.
Die Entropie Quelle 401 des Quantenzufallszahlengenerators 28 umfasst in dem Beispiel der Figur 8 ein Array 54 aus Single Photon Avalanche Dioden (SPAD) 54 als Photonenquellen 54 und ein Array 55 aus Single Photon Avalanche Dioden (SPAD) 55 als Photonendetektoren 55. Es kann sich auch um ein einziges gemeinsames Array handeln. Die Spannungswandler 91 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, versorgen die ersten SPADs 54 des Arrays 54 aus Single Photon Avalanche Dioden (SPAD) 54 des Quantenzufallszahlengenerators 28, die als Photonenquellen 54 dienen, und die zweiten SPADs 55 des Arrays 55 aus Single Photon Avalanche Dioden (SPAD) 55 des Quantenzufallszahlengenerators 28, die als Photonendetektoren 55 dienen, vorzugsweise mit einer solchen Betriebsspannung, dass diese sich vorzugsweise im sogenannten Geiger Modus befinden. Die Betriebsspannung dieser SPAD-Dioden 54, 55 liegt dann über der Durchbruchsspannung. Die SPAD- Dioden 54,55 sind dann bevorzugt in Sperrrichtung angeschlossen. Zusätzlich ist für jede SPAD-Diode 54,55 vorzugsweise ein Quenching-Widerstand 401.4 in Reihe geschaltet. Der Quenching-Widerstand 401.4 verhindert eine thermische Zerstörung der jeweiligen SPAD-Diode 54, 55 bei einer ausgelösten Ladungsträgerlawine. Der jeweilige Quenching-Widerstand 401.4 der Figur 8 dient hier gleichzeitig als Shunt-Widerstand für die Erfassung des elektrischen Diodenstroms durch die SPAD-Dioden 54, 55. Das Stromsignal der zweiten Single Photon Avalanche Dioden 55 des Arrays 55 aus Single Photon Avalanche Dioden (SPAD) wird über einen Shunt-Widerstand 401.4 für diese zweiten SPAD-Dioden 55 gemessen. Ein dem Beispiel der Figur 8 bildet der Vorwiderstand zur Begrenzung der Stromstärke durch die jeweiligen SPAD-Dioden den Shunt-Widerstand 401.4. Der Shunt-Widerstand 401.4 kann aber unabhängig vom Quenching-Widerstand 401.4 in die Zuleitung der jeweiligen SPAD-Diode 54, 55 eingefügt sein. Ein beispielhaftes gemeinsames Array aus SPAD-Dioden umfasst in dem Beispiel der Figur 8 beispielhaft vier aktive erste SPAD-Dioden 54 und zwölf passive zweite SPAD-Dioden 55. Die beispielhaft vier aktiven, ersten SPAD-Dioden 54 und zwölf passiven, zweite SPAD-Dioden 55 sind bevorzugt über einen optischen Wellenleiter (Lichtwellenleiter 44) gekoppelt. Die aktiven ersten SPAD-Dioden 54 emittieren spontan und zufällig einzelne Lichtpulse 57. Sie entsprechen der ersten SPAD-Diode 54 der Figuren 6 und 7. Die aktiven ersten SPAD-Dioden 54 befinden sich bevorzugt im Inneren des Arrays aus ersten und zweiten SPAD-Dioden 54 und 55. Die vorschlagsgemäße Vorrichtung versorgt mittels ihrer Spannungswandler die aktiven ersten SPAD-Dioden 54 mit einer erhöhten Versorgungsspannung. Hierzu verwendet die vorschlagsgemäße Vorrichtung bevorzugt besonders spannungsfeste DMOS-Transistoren in diesen Spannungswandlern. Daher ist es besonders vorteilhaft, wenn der einstückige, mikrointegrierte Quantenzufallszahlengenerator 28 in einer BCD- Halbleitertechnologie gefertigt ist, die typischerweise die Fertigung von CMOS-Schaltkreisen, SPADs und DMOS-Transistoren gleichzeitig kostengünstig und chipflächeneffektiv zulässt. Die vorschlagsgemäße Vorrichtung betreibt daher die aktiven, ersten SPAD-Dioden 54 in dem Beispiel der Figur 8 vorzugsweise weit oberhalb der Durchbruchspannung der ersten SPAD-Dioden 54. Dieser Betrieb bei einer erhöhten Versorgungsspannung der ersten SPAD-Dioden 54 erhöht die Dunkelzählrate dieser ersten SPAD-Dioden 54, was zu einer höheren Anzahl an spontan emittierten Photonen 57 führt. Der optische Lichtwellenleiter 44 leitet einige Photonen 58 der emittierten Photonen 57 an die passiven, zweiten SPAD-Dioden 55 im Beispiel der Figur 8 weiter. Der optische Lichtwellenleiter 44 entspricht dem Lichtwellenleiter 44 der Figuren 6 und 7. Die passiven, zweiten SPAD-Dioden 55 entsprechen der zweiten SPAD-Diode 55 der Figuren 6 und 7. Ein oder mehrere Spannungswandler der vorschlagsgemäßen Vorrichtung versorgen die passiven, zweiten SPAD- Dioden 55 in dem Beispiel der Figur 8 mit einer erhöhten Versorgungsspannung. Auch hierzu verwendet die vorschlagsgemäße Vorrichtung bevorzugt besonders spannungsfeste DMOS- Transistoren in diesen Spannungswandlern. Daher ist es besonders vorteilhaft, wenn der einstückige, mikrointegrierte Quantenzufallszahlengenerator 28 in einer BCD-Halbleitertechnologie gefertigt ist, die typischerweise die Fertigung von CMOS-Schaltkreisen, SPADs und DMOS-Transistoren gleichzeitig kostengünstig und chipflächeneffektiv zulässt. Die vorschlagsgemäße Vorrichtung betreibt die passiven, zweiten SPAD-Dioden 55 nur knapp über der Durchbruchsspannung. Bevorzugt sind die passiven, zweiten SPAD-Dioden 55 als Ring um die aktiven, ersten SPAD-Dioden 54 in dem Beispiel der Figur 8 angeordnet. Andere Anordnungen sind denkbar. Insbesondere ist es denkbar die ersten SPAD-Dioden 54 durch andere Silizium-LEDs zu ersetzen und eine Anordnung von solchen anderen Silizium-LEDs und zweiten SPAD-Dioden 55 nahe bei einander zu verwenden, wobei dann die Lichtübertragung direkt durch das Halbleitersubstrat 49 als Lichtwellenleiter 44 mit einer extrem kurzen Lichtübertragungsstrecke von nur wenigen pm erfolgt. Die passiven, zweiten SPAD-Dioden 55 detektieren in dem Beispiel der Figur 8 zumindest einen Teil der über den Lichtwellenleiter 44 ankommenden Photonen 59. Die passiven, zweiten SPAD-Dioden 55 erzeugen in Abhängigkeit von den ankommenden Photonen 59 einen Stromfluss über einen Shunt-Widerstand, der den zweiten SPAD-Dioden 55 zugeordnet ist. Die Entropiequelle 401 umfasst in dem Beispiel der Figur 8 bevorzugt die Shunt-Widerstände, die Betriebsvorrichtung der SPAD-Dioden, die SPAD-Dioden 54 und 55 und den Lichtwellenleiter 44. Ein Spannungssignal 405 der Entropie Quelle 401 verbindet vorzugsweise die Entropie Quelle 401 mit einem bevorzugten, beispielhaften, breitbandigen 40 dB Hochfrequenzverstärker 402. In anderen Ausführungen des Vorschlags wird dieser 40 dB Hochfrequenzverstärker 402 nicht benötigt. Insofern ist der 40 dB Hochfrequenzverstärker 402 optional. Vorzugsweise entspricht das Spannungssignal dem Spannungsabfall über den Quenching- Widerstand 401.4, der in dem Beispiel der Figur als Shunt-Widerstand 401.4 fungiert. Es ist denkbar die ersten SPAD-Dioden 54 und die zweiten SPAD-Dioden 55 über einen gemeinsamen Quenching- Widerstand 401.4 zu versorgen, der dann auch als gemeinsamer Shunt-Widerstand fungiert. Der vorgeschlagene, beispielhafte Hochfrequenzverstärker 402 besitzt bevorzugt und beispielhaft eine Bandbreite von 30 bis 4000 MHz und bevorzugt einen 1-dB-Kompressionspunkt von 20 dBm. Der Spannungshub des Spannungssignals 405 der Entropie Quelle 401 bewegte sich in Versuchen im Zusammenhang mit der Ausarbeitung der technischen Lehre des hier vorgelegten Dokuments im Sub-Millivoltbereich. Der beispielhaft vorgeschlagene Hochfrequenzverstärker 402 verstärkt beispielsweise den Spannungshub dieses Spannungssignals 405 der Entropie Quelle 401 auf beispielhafte 50 bis 150 mV. The entropy source 401 of the quantum random number generator 28 comprises in the example of Figure 8 an array 54 of single photon avalanche diodes (SPAD) 54 as photon sources 54 and an array 55 of single photon avalanche diodes (SPAD) 55 as photon detectors 55. It can also be a single common array. The voltage converters 91 of the integrated circuit 2, for example of the microcontroller, supply the first SPADs 54 of the array 54 of single photon avalanche diodes (SPAD) 54 of the quantum random number generator 28, which serve as photon sources 54, and the second SPADs 55 of the array 55 of single photon avalanche diodes (SPAD) 55 of the quantum random number generator 28, which serve as photon detectors 55, preferably with such an operating voltage that they are preferably in the so-called Geiger mode. The operating voltage of these SPAD diodes 54, 55 is then above the breakdown voltage. The SPAD diodes 54, 55 are then preferably connected in the reverse direction. In addition, a quenching resistor 401.4 is preferably connected in series for each SPAD diode 54, 55. The quenching resistor 401.4 prevents thermal destruction of the respective SPAD diode 54, 55 in the event of a charge carrier avalanche being triggered. The respective quenching resistor 401.4 in Figure 8 also serves as a shunt resistor for detecting the electrical diode current through the SPAD diodes 54, 55. The current signal of the second single photon avalanche diodes 55 of the array 55 of single photon avalanche diodes (SPAD) is measured via a shunt resistor 401.4 for these second SPAD diodes 55. In the example in Figure 8, the series resistor for limiting the current through the respective SPAD diodes forms the shunt resistor 401.4. However, the shunt resistor 401.4 can be inserted into the supply line of the respective SPAD diode 54, 55 independently of the quenching resistor 401.4. An exemplary common array of SPAD diodes in the example in Figure 8 comprises four active first SPAD diodes 54 and twelve passive second SPAD diodes 55. The exemplary four active first SPAD diodes 54 and twelve passive second SPAD diodes 55 are preferably coupled via an optical waveguide (optical waveguide 44). The active first SPAD diodes 54 emit individual light pulses 57 spontaneously and randomly. They correspond to the first SPAD diode 54 of Figures 6 and 7. The active first SPAD diodes 54 are preferably located inside the array of first and second SPAD diodes 54 and 55. The proposed device supplies the active first SPAD diodes 54 with an increased supply voltage by means of its voltage converters. For this purpose, the proposed device preferably uses particularly voltage-resistant DMOS transistors in these voltage converters. It is therefore particularly advantageous if the one-piece, micro-integrated quantum random number generator 28 is manufactured using a BCD semiconductor technology, which typically allows the manufacture of CMOS circuits, SPADs and DMOS transistors simultaneously at low cost and with effective chip area. The proposed device therefore operates the active, first SPAD diodes 54 in the example of Figure 8 preferably well above the breakdown voltage of the first SPAD diodes 54. This operation at an increased supply voltage of the first SPAD diodes 54 increases the dark count rate of these first SPAD diodes 54, which leads to a higher number of spontaneously emitted photons 57. The optical waveguide 44 passes some photons 58 of the emitted photons 57 on to the passive, second SPAD diodes 55 in the example of Figure 8. The optical waveguide 44 corresponds to the optical waveguide 44 of Figures 6 and 7. The passive, second SPAD diodes 55 correspond to the second SPAD diode 55 of Figures 6 and 7. One or more voltage converters of the proposed device supply the passive, second SPAD diodes 55 in the example of Figure 8 with an increased supply voltage. For this purpose, too, the proposed device preferably uses particularly voltage-resistant DMOS transistors in these voltage converters. It is therefore particularly advantageous if the one-piece, micro-integrated quantum random number generator 28 is manufactured using a BCD semiconductor technology, which typically allows the manufacture of CMOS circuits, SPADs and DMOS transistors at the same time in a cost-effective and chip-area-effective manner. The proposed device operates the passive, second SPAD diodes 55 just above the breakdown voltage. Preferably, the passive, second SPAD diodes 55 are arranged as a ring around the active, first SPAD diodes 54 in the example of Figure 8. Other arrangements are conceivable. In particular, it is conceivable to replace the first SPAD diodes 54 with other silicon LEDs and to use an arrangement of such other silicon LEDs and second SPAD diodes 55 close to each other, in which case the light transmission takes place directly through the semiconductor substrate 49 as an optical waveguide 44 with an extremely short light transmission path of only a few pm. The passive, second SPAD diodes 55 detect at least some of the photons 59 arriving via the optical waveguide 44 in the example of Figure 8. The passive, second SPAD diodes 55 generate, depending on the incoming photons 59 a current flow via a shunt resistor which is assigned to the second SPAD diodes 55. In the example of Figure 8, the entropy source 401 preferably comprises the shunt resistors, the operating device of the SPAD diodes, the SPAD diodes 54 and 55 and the optical waveguide 44. A voltage signal 405 of the entropy source 401 preferably connects the entropy source 401 to a preferred, exemplary, broadband 40 dB high-frequency amplifier 402. In other embodiments of the proposal, this 40 dB high-frequency amplifier 402 is not required. In this respect, the 40 dB high-frequency amplifier 402 is optional. The voltage signal preferably corresponds to the voltage drop across the quenching resistor 401.4, which in the example of the figure functions as a shunt resistor 401.4. It is conceivable to supply the first SPAD diodes 54 and the second SPAD diodes 55 via a common quenching resistor 401.4, which then also functions as a common shunt resistor. The proposed exemplary high-frequency amplifier 402 preferably has a bandwidth of 30 to 4000 MHz and preferably a 1 dB compression point of 20 dBm. The voltage swing of the voltage signal 405 of the entropy source 401 was in the sub-millivolt range in tests in connection with the elaboration of the technical teaching of the document presented here. The exemplary proposed high-frequency amplifier 402 amplifies, for example, the voltage swing of this voltage signal 405 of the entropy source 401 to, for example, 50 to 150 mV.
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 Figur 8 ist nur eine von vielen verschiedenen Realisierungsmöglichkeiten der in diesem Dokument vorgestellten technischen Lehre. Die Auswertevorrichtung 404 ist bevorzugt Teil des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers. Bevorzugt umfasst der integrierte Schaltkreis 2, beispielsweise des Mikrocontrollers, mit einem oder mehreren Prozessoren 10-1, 10-2. Die Auswerteschaltung 404 verfügt in den Beispielen der Figuren 8 und 9 über einen beispielhaften 14 Bit Analog-Digital-Wandler (ADC) 403 mit einer beispielhaften Abtastrate von 125 Mega-Samples/s und einer beispielhaften Bandbreite von 50 MHz. Es hat sich bei Ausarbeitung gezeigt, dass geringere Bitbreiten und geringere Abtastraten möglich sind. Ggf. ist eine analoge Vorverarbeitung vor der Digitalisierung durch den Analog-zu-Digital-Wandler 403 mittels Schaltungen zur Pulsverbreiterung 2022 zweckmäßig. Das verstärkte Spannungssignal des beispielhaften Hochfrequenzverstärkers 402 ist das Verstärkerausgangssignal 406 des Hochfrequenzverstärkers 402. Der Analog-zu-Digital- Wandler 403 tastet das Verstärkerausgangssignal 406 des Hochfrequenzverstärkers 402 mit einer Abtastrate des Analog-zu-Digitalwandlers 403 ab. Vorzugsweise hängt die Abtastrate von dem Systemtakt 2106 ab. In der Regel ist die Abtastrate des Analog-zu-Digitalwandlers 403 gleich der Frequenz des Systemtakts 2106. Der Analog-zu-Digital-Wandler 403 gibt beispielsweise die ermittelten Abtastwerte des Verstärkerausgangssignals 406 des Hochfrequenzverstärkers 402 digital mit einer Busbreite von beispielsweise 14 Bit beispielsweise an Die Auswertevorrichtung 404 weiter. Im Folgenden wird auch ein Vorschlag beschrieben, der ohne Hochfrequenzverstärkers 402 arbeitet und der einen Analog-zu-Digital-Wandler 403 mit einer Bit-Breite von 1 vorsieht. An amplifier output signal 406 of the high-frequency amplifier 402 connects, for example, the exemplary high-frequency amplifier 402 to an exemplary evaluation device 404, which essentially comprises sub-devices of the control device 4. The evaluation device 404 of Figure 8 is only one of many different implementation options of the technical teaching presented in this document. The evaluation device 404 is preferably part of the integrated circuit 2, for example the microcontroller. The integrated circuit 2, for example the microcontroller, preferably comprises one or more processors 10-1, 10-2. In the examples of Figures 8 and 9, the evaluation circuit 404 has an exemplary 14-bit analog-digital converter (ADC) 403 with an exemplary sampling rate of 125 mega-samples/s and an exemplary bandwidth of 50 MHz. During development, it has been shown that smaller bit widths and lower sampling rates are possible. If necessary, analog preprocessing before digitization by the analog-to-digital converter 403 using pulse broadening circuits 2022 is expedient. The amplified voltage signal of the exemplary high-frequency amplifier 402 is the amplifier output signal 406 of the high-frequency amplifier 402. The analog-to-digital converter 403 samples the amplifier output signal 406 of the high-frequency amplifier 402 at a sampling rate of the analog-to-digital converter 403. Preferably, the sampling rate depends on the system clock 2106. As a rule, the sampling rate of the analog-to-digital converter 403 is equal to the Frequency of the system clock 2106. The analog-to-digital converter 403 passes on the determined sample values of the amplifier output signal 406 of the high-frequency amplifier 402 digitally with a bus width of 14 bits, for example, to the evaluation device 404. A proposal is also described below which works without a high-frequency amplifier 402 and which provides an analog-to-digital converter 403 with a bit width of 1.
Die als Blockschaltbild der vereinfacht in Figur 8 dargestellten Vorrichtung beinhaltet beispielhaft einen Komparator 404.2, einen Zeit-zu-Pseudozufallszahl-Wandler (TPRC=time to pseudo random number converter) 404.3, eine Entropie Extraktions-Vorrichtung 404.4 und eine Finite State Machine (endlichen Automaten) 404.8. The device shown in simplified form as a block diagram in Figure 8 includes, for example, a comparator 404.2, a time-to-pseudo-random number converter (TPRC) 404.3, an entropy extraction device 404.4 and a finite state machine 404.8.
Der Komparator 404.2 vergleicht in dem Beispiel der Figur 8 den beispielhaften digitalen 14 Bit Wert 407 des Analog-zu-Digital-Wandlers 403 mit einer Konstanten 404.1, die einen Schwellwert darstellt, und erzeugt einen zwei Takte langen 1 Bit Ausgangspuls auf seinem Ausgangssignal 409 des Komparators 404.2, wenn der Ausgangswert des Analog-zu-Digital-Wandlers 403 größer ist als die Konstante 404.1. Im Falle einer Vorrichtung ohne Hochfrequenzverstärkers 402 und mit einem Analog-zu-Digital-Wandler 403 mit einer Bit-Breite von 1 entfallen der Komparator 404.2 und die Konstante 404.1 und der Analog-zu-Digital-Wandler 403 erzeugt gleich das Ausgangssignal 409 des Komparators, da der Analog-zu-Digital-Wandler 403 dann die Funktion des Komparators 404.2 miterfüllt. Die Nachteile einer solchen Konstruktion sind u.a. ihre geringere Flexibilität und die erhöhten Anforderungen an Konstruktion und Produktion. Das Ausgangssignal 409 des Komparators 404.2 verbindet den Komparator 404.2 mit dem Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC). Der Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) umfasst bevorzugt beispielsweise ein linear rückgekoppeltes 32 Bit Schieberegister, der mit dem Systemtakt 2106 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, hochzählt. Der Oszillator 30 und das Taktsystem der Steuervorrichtung 4 stellen diesen Takt typischerweise bereit. Die Bitbreite dieses linear rückgekoppelten Schieberegisters kann je nach Anwendung abweichen. Vorzugsweise ist diese Bitbreite über ein Register der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, einstellbar. Vorzugsweise ist das Rückkoppelpolynom des linear rückgekoppelten Schieberegisters des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) über ein Register der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, einstellbar. Der Systemtakt 2106 kann beispielsweise eine Frequenz von 125 MHz haben. Ein Puls auf dem 1 Bit Ausgangssignal des Komparators 404.2 veranlasst vorzugsweise den Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) den aktuellen Schieberegisterwert des linear rückgekoppelten Schieberegisters des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) als Pseudozufallszahl am Ausgang 410 des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) auszugeben. Die Pseudozufallszahlenändern sich typischerweise mit der Taktperiode des Systemtakts 2106, wodurch sich eine Zeitauflösung hinsichtlich der Pulse auf dem 1 Bit Ausgangssignal des Komparators 404.2 ergibt. Bei einem beispielhaften 125MHz Systemtakt 2106 ergibt sich dann eine Zeitauflösung von 1/(125 MHz)=8 ns. Der Ausgang 410 des Zeit-zu-Pseudozufallszahlen-WandlerIn the example of Figure 8, the comparator 404.2 compares the exemplary digital 14-bit value 407 of the analog-to-digital converter 403 with a constant 404.1, which represents a threshold value, and generates a two-cycle 1-bit output pulse on its output signal 409 of the comparator 404.2 if the output value of the analog-to-digital converter 403 is greater than the constant 404.1. In the case of a device without a high-frequency amplifier 402 and with an analog-to-digital converter 403 with a bit width of 1, the comparator 404.2 and the constant 404.1 are omitted and the analog-to-digital converter 403 immediately generates the output signal 409 of the comparator, since the analog-to-digital converter 403 then also fulfills the function of the comparator 404.2. The disadvantages of such a design include its reduced flexibility and the increased demands on design and production. The output signal 409 of the comparator 404.2 connects the comparator 404.2 to the time-to-pseudo-random number converter 404.3 (TPRC). The time-to-pseudo-random number converter 404.3 (TPRC) preferably comprises, for example, a linearly-coupled 32-bit shift register that counts up with the system clock 2106 of the integrated circuit 2, for example the microcontroller. The oscillator 30 and the clock system of the control device 4 typically provide this clock. The bit width of this linearly-coupled shift register can vary depending on the application. This bit width can preferably be set via a register of the control device 4 of the integrated circuit 2, for example the microcontroller. Preferably, the feedback polynomial of the linearly fed back shift register of the time-to-pseudo-random number converter 404.3 (TPRC) can be set via a register of the control device 4 of the integrated circuit 2, for example the microcontroller. The system clock 2106 can have a frequency of 125 MHz, for example. A pulse on the 1-bit output signal of the comparator 404.2 preferably causes the time-to-pseudo-random number converter 404.3 (TPRC) to output the current shift register value of the linearly fed back shift register of the time-to-pseudo-random number converter 404.3 (TPRC) as a pseudo-random number at the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC). The pseudorandom numbers typically change with the clock period of the system clock 2106, which results in a time resolution with regard to the pulses on the 1 bit output signal of the comparator 404.2. With an exemplary 125 MHz system clock 2106, this results in a time resolution of 1/(125 MHz)=8 ns. The output 410 of the time-to-pseudorandom number converter
404.3 (TPRC) gibt den beispielhaften 32 Bit Schieberegisterwert, auch Rohdaten genannt, des Zeit-zu- Pseudozufallszahlen-Wandler 404.3 (TPRC) an die im Signalpfad nachfolgende Entropie-Extraktion404.3 (TPRC) passes the exemplary 32 bit shift register value, also called raw data, of the time-to-pseudorandom number converter 404.3 (TPRC) to the entropy extraction following in the signal path
404.4 weiter. Die Entropie-Extraktion 404.4 wandelt die zufälligen Rohdaten RD des Zeit-zu- Pseudozufallszahlen-Wandler 404.3 (TPRC) auf dem Signal des Ausgangs 410 des Zeit-zu- Pseudozufallszahlen-Wandler 404.3 (TPRC) in eine 1 Bit Zufallszahl 411 RN um. Die Rohdaten auf dem Signal des Ausgangs 410 des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) stellen typischerweise den letzten Schieberegisterwert dar, bei dem das Ausgangssignal 409 des Komparators 404.2 einen Puls zeigte. Der Ausgang 411 der Entropie-Extraktion 404.4 ist mit dem Eingang der Finite State Machine FSM 404.8 verbunden. 404.4. The entropy extraction 404.4 converts the random raw data RD of the time-to-pseudo-random number converter 404.3 (TPRC) on the signal of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC) into a 1-bit random number 411 RN. The raw data on the signal of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC) typically represents the last shift register value at which the output signal 409 of the comparator 404.2 showed a pulse. The output 411 of the entropy extraction 404.4 is connected to the input of the finite state machine FSM 404.8.
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 Figur 1. Der Prozessor 404.11 kann beispielsweise ein Dual-Core Arm Cortex-A9 MPCore sein. Der Prozessor 404.11 kann auch einige der Funktionen der Teilvorrichtungen der Auswertevorrichtung 404 mittels eines geeigneten Programms ausführen und so diese Vorrichtungsteile ggf. ersetzen. The finite state machine 404.8 typically has the task of receiving data in the form of a serial stream of quantum random bits 411 from the entropy extraction 404.4, converting the serial stream of random data bits into random data words and storing these in the RAM block 404.9 of the evaluation device 404, which is typically the volatile memory. The finite state machine 404.8 preferably communicates with the processor 404.11 (10-1, 10-2) via an internal data bus 419. After a successful write operation, the finite state machine 404.8 sets a finish flag 404.10. The processor 404.11 can preferably write and/or read the finish flag 404.10 via the internal data bus 419. The finish flag 404.10 can optionally be part of the RAM 404.9 or a register of the processor 404.11. The processor 404.11 preferably controls and monitors the finite state machine 404.8 via the internal data bus 419. The finish flag 404.10 is preferably not set when the system starts. The processor 404.11 can then access the RAM block 414.9 and read the random number from the RAM 404.9, for example using a C program that is started on the embedded processor 404.11, for example a dual-core Arm Cortex-A9 MPCore. The processor 404.11 is preferably identical to the first processor 10-1 in Figure 1. The processor 404.11 can be a dual-core Arm Cortex-A9 MPCore, for example. The processor 404.11 can also carry out some of the functions of the sub-devices of the evaluation device 404 by means of a suitable program and thus replace these device parts if necessary.
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 9 mehr. Bevorzugt fügt der Watchdog 404.5 in diesem Fall Zufallsbits eines anderen echten Zufallszahlengenerators und/oder eines anderen Quantenzufallszahlengenerators und/oder Pseudozufallsbits eines Pseudozufallszahlengenerators, dessen Startwert durch gültige Zufallsbits eines Quantenzufallszahlengenerators (QRNG) oder eines echten Zufallszahlengenerators (TRNG) bestimmt wird. Da der Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC) bereits konstruktiv sicherstellt, dass dieser Fall nicht auftreten sollte gibt der Watchdog 404.5 in einem solchen Fall bevorzugt eine Fehlermeldung an den Prozessor 404.11 aus. Bevorzugt ist der Watchdog 404.5 gleichzeitig auch ein Watchdog des ersten Prozessors 10-1. Darüber hinaus überwacht der Watchdog 404.5 im Sinne des hier vorgelegten Dokuments ggf. weitere Größen, wie z.B. das Übereinstimmen von Spannungswerten innerhalb des Quantenzufallszahlengenerators 28 und/oder innerhalb der Vorrichtung mittels eines oder mehrerer Analog-zu-Digital-Wandler und/oder mittels einer oder mehrerer Spannungsüberwachungsvorrichtungen wie Spannungsmonitore 413 etc. Preferably, the processor 404.11 controls a watchdog 404.5. In the sense of the document presented here, the watchdog 404.5 is not only a watchdog timer that includes a timer that is synchronized with the system clock of the quantum random number generator 28 or the system clock 2106 of the processor 404.11 is clocked and which must be reset to a start value by the processor 404.11 at regular intervals in order to avoid interrupting the program execution of the processor 404.11 when a watchdog counter reading threshold is reached and/or crossed by the counter reading of the timer of the watchdog 405.5. The watchdog 405.5 also carries out further monitoring tasks within the quantum random number generator 28. For example, the watchdog 404.5 preferably monitors the entropy of the quantum random bits 411. In particular, the watchdog 404.5 preferably ensures that the quantum random bits 411 preferably do not have more than q consecutive random bits of the same logical value. If this is the case, the watchdog 404.5 preferably inserts other bits instead of the quantum random bits 411 into this serial bit data stream from the entropy extraction 404.5 to the finite state machine 407.8. More on this in the following Figure 9. In this case, the watchdog 404.5 preferably inserts random bits from another true random number generator and/or another quantum random number generator and/or pseudorandom bits from a pseudorandom number generator whose starting value is determined by valid random bits from a quantum random number generator (QRNG) or a true random number generator (TRNG). Since the time-to-pseudorandom number converter 404.3 (TPRC) already ensures by design that this case should not occur, the watchdog 404.5 preferably outputs an error message to the processor 404.11 in such a case. Preferably, the watchdog 404.5 is also a watchdog of the first processor 10-1. In addition, the watchdog 404.5 monitors other variables within the meaning of the document presented here, such as the agreement of voltage values within the quantum random number generator 28 and/or within the device by means of one or more analog-to-digital converters and/or by means of one or more voltage monitoring devices such as voltage monitors 413, etc.
Figur 9 Figure 9
Figur 9 zeigt die erweiterte beispielhafte Auswertevorrichtung 404, die nun eine Überwachung der Zufallszahl 411 RN umfasst und ein zusätzliches Backup System für den Fehlerfall aufweist, um auch bei einem Ausfall des Quantenzufallszahlengenerators die Sicherheit (Security) der Anwendungsschaltung mittels eines Notlaufverfahrens abzusichern. Zur besseren Übersicht sind die Komponenten Prozessor 404.11 RAM 404.9 und Finish-Flag 404.10 weggelassen. Die Leserin/der Leser soll diese Vorrichtungsteile bzw. Funktionen in der Figur 9 weiterhin als vorhanden betrachten. Der Fachmann kann aber leicht die Anbindung an die Finite-State-Machine 404.8 aus der Figur 8 in die Figur 9 kopieren und kommt dann zu der offenbarten technischen Lehre. Der Watchdog 404.5, ein optionales weiteres linear rückgekoppeltes Schieberegister 404.6 als Backup- Pseudozufallszahlengenerator PRNG und einen Signal-Multiplexer 404.7 erweitern die Vorrichtung der Figur 8 zur Vorrichtung der Figur 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 Figur 9 mit einem Spannungsmonitor 413 verbunden. Bevorzugt überwacht der Watchdog-Schaltkreis 404.5 die Spannungswerte, die der Spannungsmonitor 413 ermittelt. Es hat sich bewährt, wenn der Spannungsmonitor 413 nicht nur die Spannungen im Quantenzufallszahlengenerator 28 ermittelt und überwacht, sondern auch andere Spannungen innerhalb der jeweiligen Anwendungsschaltung. Bei dem Spannungsmonitor 413 kann es sich um den besagten Analog-zu-Digital-Wandler handeln. Figure 9 shows the expanded exemplary evaluation device 404, which now includes monitoring of the random number 411 RN and has an additional backup system for the event of an error in order to ensure the security of the application circuit by means of an emergency operation procedure even if the quantum random number generator fails. For a better overview, the components processor 404.11 RAM 404.9 and finish flag 404.10 are omitted. The reader should still consider these device parts or functions to be present in Figure 9. However, the person skilled in the art can easily copy the connection to the finite state machine 404.8 from Figure 8 into Figure 9 and then arrive at the disclosed technical teaching. The watchdog 404.5, an optional additional linear feedback shift register 404.6 as a backup pseudorandom number generator PRNG and a signal multiplexer 404.7 expand the device of Figure 8 to the device of Figure 9. The output 411 of the entropy extraction 404.4 is now connected to the watchdog 404.5 and the signal multiplexer 404.7 as an example. The watchdog 404.5 monitors the quantum random number RN at the output 411 of the entropy extraction 404.4. The watchdog 404.5 detects at least three defined error cases as proposed. For this purpose, the watchdog 404.5 passes valid quantum random bits 411 to the optional additional linear feedback shift register 404.6, for example, while generating a seed value S 412. The watchdog 404.5 preferably prevents the use of these valid quantum random bits by the finite state machine 404.8. If an error occurs, the watchdog 404.5 sets error bits in an unmarked error register ER of the processor 404.11. Which error bit the watchdog 404.5 sets in the error register of the processor 404.11 preferably depends on the respective error case that the watchdog 404.5 detects. In addition, the watchdog 404.5 is connected to a voltage monitor 413 via one or more, preferably digital input/output signal lines 414 in the example in Figure 9. The watchdog circuit 404.5 preferably monitors the voltage values that the voltage monitor 413 determines. It has proven useful if the voltage monitor 413 not only determines and monitors the voltages in the quantum random number generator 28, but also other voltages within the respective application circuit. The voltage monitor 413 can be the aforementioned analog-to-digital converter.
Der Spannungsmonitor 413 überwacht in dem Beispiel der Figur 9 vorzugsweise die Betriebsspannungen der Entropiequelle 401 und/oder andere Spannungen, die Spannungswandler innerhalb der Anwendungsschaltung erzeugen. Ist beispielsweise eine der Betriebsspannung einer Photonenquelle 54 und/oder einer Silizium-LED 54 und/oder einer ersten SPAD-Diode 54 und/oder eines Photonendetektors 55 und/oder einer zweiten SPAD-Diode 55 zu niedrig, also spannungswertbetragsmäßig unterhalb eines unteren Betriebsspanungsschwellwerts für diese Bauteile, oder zu hoch, also spannungswertbetragsmäßig oberhalb eines oberen Betriebsspanungsschwellwerts für diese Bauteile, so detektiert der Spannungsmonitor 413 diese Spannungsabweichung und meldet diese an den Watchdog 404.5 und/oder den Prozessor 10-1, 404.11. Bevorzugt kann der Prozessor 404.11 die Werte des Spannungsmonitors 413 über den internen Datenbus 419 der Steuervorrichtung 4 des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, auslesen. Im Fall einer solchen Spannungsabweichung signalisiert der Spannungsmonitor 413 an den Watchdog 404.5 oder direkt an den Prozessor 404.11 eine solche Abweichung. Im Falle einer Signalisierung an den Watchdog 404.5 kann beispielsweise der Watchdog 404.5 ein Interrupt-Signal 420 für den Prozessor 404.11 erzeugen. Der Watchdog 404.5 kann beispielsweise einen solchen Interrupt 420 des Microcontrollers 404.11 oder einer anderen Teilvorrichtung eines Anwendungssystems auslösen, wenn die Versorgungsspannung der Entropiequelle 401 oder des Hochfrequenzverstärkers 402 oder eines anderen Vorrichtungsteils des Quantenzufallszahlengenerators QRNG 28 und/oder des integrierten Schaltkreises 2, beispielsweise des Mikrocontrollers, und/oder der Anwendungsvorrichtung fehlerhaft ist. Hat der Watchdog 404.5 einen Fehler des Quantenzufallsgenerators 28 detektiert, so veranlasst er vorzugsweise den Quantenzufallszahlengenerator 28 in einen Notlaufzustand zu wechseln. Hierzu setzt der Watchdog 404.5 vorzugsweise das Selektionssignal 416 eines Signalmultiplexers 404.7, sodass der Signalmultiplexers 404.7 statt des Ausgangs 411 der Entropie-Extraktion 404.4 die Pseudozufallszahl PRN des optionalen weiteren linear rückgekoppelten Schieberegisters 404.6 in Form eines Stroms von Pseudozufallsbits über eine Pseudozufallssignalleitung 417 als Ersatz für die zumindest potenziell fehlerhafte Zufallszahl RN des Ausgangs 411 der Entropie-Extraktion 404.4 an den Eingang der Finite State Machine 404.8 legt. In the example of Figure 9, the voltage monitor 413 preferably monitors the operating voltages of the entropy source 401 and/or other voltages that voltage converters generate within the application circuit. If, for example, one of the operating voltages of a photon source 54 and/or a silicon LED 54 and/or a first SPAD diode 54 and/or a photon detector 55 and/or a second SPAD diode 55 is too low, i.e. the voltage value is below a lower operating voltage threshold for these components, or too high, i.e. the voltage value is above an upper operating voltage threshold for these components, the voltage monitor 413 detects this voltage deviation and reports it to the watchdog 404.5 and/or the processor 10-1, 404.11. Preferably, the processor 404.11 can read the values of the voltage monitor 413 via the internal data bus 419 of the control device 4 of the integrated circuit 2, for example the microcontroller. In the case of such a voltage deviation, the voltage monitor 413 signals such a deviation to the watchdog 404.5 or directly to the processor 404.11. In the case of a signal to the watchdog 404.5, the watchdog 404.5 can, for example, generate an interrupt signal 420 for the processor 404.11. The watchdog 404.5 can, for example, trigger such an interrupt 420 of the microcontroller 404.11 or another sub-device of an application system if the supply voltage of the entropy source 401 or the high-frequency amplifier 402 or another device part of the quantum random number generator QRNG 28 and/or the integrated circuit 2, for example the microcontroller, and/or the application device is faulty. If the watchdog 404.5 has detected a fault in the quantum random number generator 28, it preferably causes the quantum random number generator 28 to switch to an emergency running state. For this purpose, the watchdog 404.5 preferably sets the selection signal 416 of a signal multiplexer 404.7, so that the signal multiplexer 404.7 applies the pseudorandom number PRN of the optional additional linear feedback shift register 404.6 in the form of a stream of pseudorandom bits via a pseudorandom signal line 417 to the input of the finite state machine 404.8 instead of the output 411 of the entropy extraction 404.4 as a replacement for the at least potentially erroneous random number RN of the output 411 of the entropy extraction 404.4.
Das optionale weitere linear rückgekoppelte Schieberegister 404.6 ist in dem Beispiel der Figur 9 mit dem Ausgang Seed S 412 des Watchdog 404.5 verbunden. Der Watchdog 404.5 aktiviert im Fehlerfall das optionale, weitere, linear rückgekoppelte Schieberegister 404.6. Das optionale, zusätzliche, linear rückgekoppelte Schieberegister 404.6 generiert dann Pseudozufallszahlen PRN als Pseudozufallszahlengenerator PRNG. Der Seed S 412 weist bevorzugt die letzten gerade noch gültigen Quantenzufallsbits auf. Der Watchdog 404.5 legt bevorzugt diese letzten gültigen Quantenzufallsbits 411 an den Eingang des optionalen, weiteren, linear rückgekoppelten Schieberegisters 404.6. Der Seed S dient somit als zufälliger PQC sicherer Startwert für das Generatorpolynom der Rückkopplung des optionalen, weiteren linear rückgekoppelten Schieberegisters 404.6 für die Generierung der Pseudozufallszahl PRN und deren Signalisierung über die Pseudozufallssignalleitung 417. Das Generatorpolynom sowie der Grad des Generatorpolynoms sind dabei bevorzugt frei wählbar. The optional additional linear feedback shift register 404.6 is connected in the example of Figure 9 to the output Seed S 412 of the watchdog 404.5. In the event of an error, the watchdog 404.5 activates the optional additional linear feedback shift register 404.6. The optional additional linear feedback shift register 404.6 then generates pseudorandom numbers PRN as a pseudorandom number generator PRNG. The seed S 412 preferably has the last quantum random bits that are still valid. The watchdog 404.5 preferably applies these last valid quantum random bits 411 to the input of the optional additional linear feedback shift register 404.6. The seed S thus serves as a random PQC secure starting value for the generator polynomial of the feedback of the optional, further linear feedback shift register 404.6 for the generation of the pseudorandom number PRN and its signaling via the pseudorandom signal line 417. The generator polynomial and the degree of the generator polynomial are preferably freely selectable.
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 output 411 of the entropy extraction 404.4 with the 1 bit random number RN of the entropy extraction 404.4 or the signal of the pseudorandom signal line 417 with the pseudorandom number PRN of the linear feedback shift register 404.6 are connected to the inputs of the signal multiplexer 404.7. The signal multiplexer 404.7 forwards one of the two inputs to the finite state machine 404.8 depending on the value of the selection signal 416 SEL. It is of course conceivable to use a multiplexer with more than two inputs and a more complex control signal if the application requires it. The number of inputs of the signal multiplexer 404.7 is therefore typically greater than or equal to two.
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 evaluation device 404 within the control device 4. If the writing process is successful, the finite state machine 404.8 sets the finish flag 404.10 again. The processor 404.11 can then access the RAM block 404.9, for example by means of a C program that preferably runs on the embedded processor 404.11, and read out the random number and use it, for example, for encryption.
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 output signal 409 of comparator 404.2 as a time value. If a time value at the output 410 of time-to-pseudo-random number converter 404.3 is less than a minimum value, it is a value that lies within the dead time of the second SPAD diodes 55. When such a value occurs, evaluation device 404 preferably discards the generated pseudo-random numbers and preferably increases the error counter by the first error step size, which can also be negative. In this case, entropy extraction 404.4 waits for the next random number to be determined by time-to-pseudo-random number converter 404.3. Once the random bit has been extracted in this way, quantum random number generator 28 starts the process from the beginning.
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. This device is thus able to detect a failure of the voltage supply 5 of the entropy source 401 or other parts of the device (e.g. 4, 28). The processor 404.11 can also use the analog-to-digital converter 403 to record voltages and currents in the quantum random number generator 28 and/or within the control device 4 of the integrated circuit of a microcontroller and/or within the integrated circuit 2, for example the microcontroller, for test purposes and compare the values thus determined with expected value ranges in which these values must lie. The processor 404.11 can also record digital values within the quantum random number generator 28 and/or within the control device 4 of the integrated circuit of a microcontroller and/or within the integrated circuit 2, for example the microcontroller.
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. 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. For example, the processor 404.11 can set the constant Const 404.1 so low for test purposes that the noise floor essentially controls the time-to-pseudo-random number converter 404.3. To do this, the processor 404.11 preferably sets an operating state of the time-to-pseudo-random number converter 404.3 in which the time-to-random number converter 404.3 restarts with the last seed value after generating a pseudo-random number. The values of the time-to-pseudo-random number converter 404.3 should then satisfy an expected statistic within a tolerance band. If this is not the case, an error is present. The processor 404.11 can create this statistic and, if necessary, conclude that this error exists if the statistical values determined do not lie within an expected value interval. The watchdog 404.5 can monitor the entropy of the quantum random bits 411 provided. If the average entropy of the quantum random bits 411 deviates from the expected random mean value of 50% by significantly more than an allowed entropy deviation value over an entropy measurement period, the watchdog 404.5 preferably concludes that there is an error in the quantum random number generator 28 and preferably increments the error counter by the said error counter step size. The watchdog 404.5 then preferably stops the use of these quantum random bits of the output 411 of the entropy extraction 404.4 in order to prevent the device from sending plain text over the data bus. In the sense of the document presented here, plain text means that the data sent and/or stored is in a form that allows a third party to gain unauthorized access to the content of a data message and/or stored data and/or program code directly and/or by applying statistical or other methods. It is conceivable that a virtual permanent one or a virtual permanent zero is generated randomly even in functioning sub-devices. Randomness also includes the permanent zero and the permanent one. It is therefore sensible if the maximum length of a bit sequence without changing the logical state at the output 411 of the entropy extraction 404.4 is limited by the watchdog 404.5 to a value that can be programmed by the processor 404.11.
Im Wesentlichen kann der vorbeschriebene Quantenzufallszahlengenerator 28 damit folgende Fehler erkennen und durch einen Notlauf mittels eines optionalen, weiteren PseudozufallszahlengeneratorsEssentially, the quantum random number generator 28 described above can thus detect the following errors and, by means of an emergency run using an optional, additional pseudorandom number generator,
404.6, also beispielsweise mittels eines optionalen weiteren, linear rückgekoppelten Schieberegisters404.6, for example by means of an optional additional linear feedback shift register
4104.6, mit niedrigerem Sicherheitsniveau auffangen: 4104.6, with a lower safety level:
• Störung von Versorgungsspannungen • Disturbance of supply voltages
• Fehlerhafte Signalerzeugung der Photonenquellen 54 und/oder der Silizium-LEDs 54 und/oder der ersten SPAD-Dioden 54, • Faulty signal generation of the photon sources 54 and/or the silicon LEDs 54 and/or the first SPAD diodes 54,
• Fehlerhafte Signalerzeugung der Photonendetektoren 55 und/oder der zweiten SPAD-Dioden 55, • Faulty signal generation of the photon detectors 55 and/or the second SPAD diodes 55,
• Störung des optionalen Lichtwellenleiters 44, • Malfunction of the optional fiber optic cable 44,
• Störung der Ankoppelung der Photonenquellen 54 und/oder der Silizium-LEDs 54 und/oder der ersten SPAD-Dioden 54 an den Lichtwellenleiter 44, • Disturbance of the coupling of the photon sources 54 and/or the silicon LEDs 54 and/or the first SPAD diodes 54 to the optical waveguide 44,
• Störung der Ankoppelung der Photonendetektoren 55 und/oder der zweiten SPAD-Dioden 55 an den Lichtwellenleiter 44, • Disturbance of the coupling of the photon detectors 55 and/or the second SPAD diodes 55 to the optical waveguide 44,
• Schaltungsausfälle im Digitalteil 404 des Quantenzufallszahlengenerators 28, • Circuit failures in the digital part 404 of the quantum random number generator 28,
• Fehlerhafte Entropie der gelieferten Quantenzufallsbits 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• Incorrect entropy of the supplied quantum random bits 411. It is conceivable to use a second complete quantum random number generator 28 instead of the optional, additional linear feedback shift register 404.6 or the optional, additional pseudorandom number generator 404.6, the output 411 of which is the entropy extraction
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. 404.4 then the multiplexer 404.7 is used instead of the signal of the optional additional pseudorandom signal line 417 for the emergency operation of the quantum random number generator 28. In the event that the output of the optional, additional pseudorandom number generator 404.6 depends on one or more real quantum random bits 411 as seed 412, it is again a quantum random number as long as the number of inserted bits is limited. Preferably, the watchdog 405.5 determines the number q of the permitted, maximum consecutive quantum random bits 411 by means of a quantum random number. If this quantum random number, which the watchdog 404.5 uses to determine q, only includes quantum random bits 411 with a single logical value, there is a possibility that an error is present. The number q should then not be maximum in order to avoid sending or storing plain text. Rather, the watchdog 404.5 should then choose the number q very small, preferably minimal.
Figur 10 Figure 10
Fig. 10 zeigt das Flussdiagramm 500 des Entropie Extraktionsverfahrens, das beispielsweise die Entropieextraktion 404.4 ausführt. Das Verfahren sieht vor, zunächst in einem ersten Schritt 501 zwei Werte des Ausgangs 410 des Zeit-zu-Pseudozufallszahlen-Wandlers 404.3 zu ermitteln und in einem Schieberegister der Entropie Extraktion 404.4 zu speichern. Sind zwei Werte im Schieberegister der Entropie Extraktion 404.4 gespeichert, so vergleicht die der Entropie Extraktion 404.4 diese beiden Werte in einem zweiten Schritt 502. Die beiden Werte im Schieberegister der EntropieextraktionFig. 10 shows the flow chart 500 of the entropy extraction method, which, for example, carries out the entropy extraction 404.4. The method provides for determining two values of the output 410 of the time-to-pseudo-random number converter 404.3 in a first step 501 and storing them in a shift register of the entropy extraction 404.4. If two values are stored in the shift register of the entropy extraction 404.4, the entropy extraction 404.4 compares these two values in a second step 502. The two values in the shift register of the entropy extraction
404.4 umfassen also einen ersten Wert und einen zweiten Wert, die beide der Zeit-zu- Pseudozufallszahlen-Wandler 404.3 mittels zweier verschiedener Pseudozufallszahlenermittlungen in Abhängigkeit von dem jeweiligen Zeitraum zwischen jeweils zwei Signalpulsen des Ausgangssignals 409 des Komparators 404.2 ermittelt hat. In einem dritten Schritt 503 bewertet die Entropie Extraktion 404.4 die beiden Werte. Ist der erste Wert kleiner als der zweite Wert und die Differenz zwischen Wert 1 und Wert 2 größer als eine Mindestdifferenz e, so setzt die Entropie-Extraktion404.4 thus comprise a first value and a second value, both of which the time-to-pseudo-random number converter 404.3 has determined by means of two different pseudo-random number determinations depending on the respective time period between two signal pulses of the output signal 409 of the comparator 404.2. In a third step 503, the entropy extraction 404.4 evaluates the two values. If the first value is smaller than the second value and the difference between value 1 and value 2 is greater than a minimum difference e, the entropy extraction sets
404.4 den Wert ihres Ausgangs 411 auf einen ersten logischen Wert. Ist der erste Wert größer als der zweite Wert und die Differenz zwischen dem ersten Wert und dem zweiten Wert größer als die Mindestdifferent e, so setzt die Entropie-Extraktion 404.4 ihren Ausgang auf einen zweiten logischen Wert, der vom ersten logischen Wert verschieden ist. Ist die Differenz zwischen dem ersten Wert und dem zweiten Wert kleiner als die Mindestdifferenz e, so verwirft die Entropieextraktion den ersten Wert und den zweiten Wert. Bevorzugt veranlasst die Entropieextraktion den Watchdog 404.5 in einem solchen Fall einen Fehlerzähler um eine erste Fehlerzählerschrittweite zu erhöhen. Die erste Fehlerzählerschrittweite kann negativ sein. Umgekehrt kann die Entropieextraktion 404.4 den Fehlerzähler des Watchdogs 404.5 um eine zweite Fehlerzählerschrittweite erniedrigen, wenn die Differenz zwischen dem ersten Wert und dem zweiten Wert größer als die Mindestdifferenz e ist. Die zweite Fehlerzählerschrittweite kann gleich der ersten Fehlerzählerschrittweite sein. Typischerweise sind die Vorzeichen der ersten Fehlerzählerschrittweite und der zweiten Fehlerzählerschrittweite gleich. Bevorzugt kann der Prozessor 404.11 die Fehlerzählerschrittweiten und den Startwert des Fehlerzählers und einen Fehlerzählerschwellwert setzen. Kreuzt der Zählerstand des Fehlerzählers den Fehlerzählerschwellwert, so signalisiert der Watchdog 404.5 vorzugsweise mittels eines Interrupts 420 oder einer anderen Signalisierung an den Prozessor 404.11 das Vorliegen eines kritischen Fehlerzustands. Der Prozessor 404.11 startet dann typischerweise ein Selbsttestprogramm, um die verschiedenen Teile des Quantenzufallszahlengenerators 28 zu testen. Bevorzugt kann der Prozessor 404.11 hierzu beispielsweise den Analog-zu-Digital-Wandler 403 in einen Zustand versetzen, in dem der Prozessor 404.11 ein Ausgangsregister des Analog-zu-Digital-Wandlers 403 mit Testwerten beschreiben kann, die die nachfolgende Signalkette dann wie echte Abtastwerte weiterverarbeitet. Da die Testwerte vorbekannt sind, kann der Prozessor 404.11 die korrekte Reaktion des Restsystems, beispielsweise das Hochzählen des Fehlerzählers im Watchdog 404.5, beobachten und bewerten. Bevorzugt kann der Mikrocontroller 404.11 daher möglichst alle Speicherknoten der Auswerteschaltung 404 bzw. der Steuervorrichtung 4 überwachen und deren logischen Zustand lesen. 404.4 sets the value of its output 411 to a first logical value. If the first value is greater than the second value and the difference between the first value and the second value is greater than the minimum difference e, the entropy extraction 404.4 sets its output to a second logical value that is different from the first logical value. If the difference between the first value and the second value is smaller than the minimum difference e, the entropy extraction discards the first value and the second value. In such a case, the entropy extraction preferably causes the watchdog 404.5 to increase an error counter by a first error counter step size. The first error counter step size can be negative. Conversely, the entropy extraction 404.4 can Decrement the error counter of the watchdog 404.5 by a second error counter step size if the difference between the first value and the second value is greater than the minimum difference e. The second error counter step size can be equal to the first error counter step size. Typically, the signs of the first error counter step size and the second error counter step size are the same. Preferably, the processor 404.11 can set the error counter step sizes and the start value of the error counter and an error counter threshold value. If the count of the error counter crosses the error counter threshold value, the watchdog 404.5 signals the presence of a critical error state to the processor 404.11, preferably by means of an interrupt 420 or another signaling. The processor 404.11 then typically starts a self-test program to test the various parts of the quantum random number generator 28. For this purpose, the processor 404.11 can preferably, for example, put the analog-to-digital converter 403 into a state in which the processor 404.11 can write test values to an output register of the analog-to-digital converter 403, which the subsequent signal chain then processes like real sample values. Since the test values are known in advance, the processor 404.11 can observe and evaluate the correct reaction of the rest of the system, for example the incrementing of the error counter in the watchdog 404.5. The microcontroller 404.11 can therefore preferably monitor as many memory nodes as possible of the evaluation circuit 404 or the control device 4 and read their logical state.
Figur 11 Figure 11
Figur 11 zeigt ein beispielhaftes Oszillogramm des Spannungssignals 404 der Entropie Quelle 401. Wie leicht zu erkennen ist, treten erste Spikes 601 mit einer ersten Höhe und zweite Spikes 602 mit einer zweiten Höhe auf. Die Streuung der ersten Höhe der ersten Spikes 601 und die Streuung der zweiten Höhe der zweiten Spikes 602 ist jeweils so gering, dass eine klare Trennung dieser Ereignisse 601, 602 mittels eines beispielhaften Schneidepegels 603 über die Wahl der Konstanten 404.1 möglich ist. Der Schneidepegel 603 entspricht dem Wert den der Prozessort 404.11 mittels der Konstanten 404.1, die vorzugsweise als Register des Prozessors 404.11 ausgeführt ist, einstellt. Figure 11 shows an example oscillogram of the voltage signal 404 of the entropy source 401. As can easily be seen, first spikes 601 occur with a first height and second spikes 602 with a second height. The scatter of the first height of the first spikes 601 and the scatter of the second height of the second spikes 602 are each so small that a clear separation of these events 601, 602 is possible by means of an example cutting level 603 via the selection of the constant 404.1. The cutting level 603 corresponds to the value that the processor location 404.11 sets using the constant 404.1, which is preferably implemented as a register of the processor 404.11.
Figur 12 Figure 12
Figur 12 zeigt den schematischen Ablauf einer Server-Client-Kommunikation unter Nutzung eines vorschlaggemäßen Quantenzufallszahlengenerators. Dabei soll eine erste Vorrichtung, wie beispielsweise die der Figur 1, als Server über einen Datenbus mit einer zweiten Vorrichtung, wie beispielsweise die der Figur 1, als Client verschlüsselt kommunizieren. Sowohl die erste Vorrichtung als auch die zweite Vorrichtung sollen in einem ersten Beispiel jeweils einen Quantenzufallszahlengenerator 28 umfassen, den der jeweilige erste Prozessor 10-1 des Rechners Ill Figure 12 shows the schematic sequence of a server-client communication using a proposed quantum random number generator. A first device, such as that in Figure 1, as a server, should communicate in an encrypted manner via a data bus with a second device, such as that in Figure 1, as a client. In a first example, both the first device and the second device should each comprise a quantum random number generator 28, which the respective first processor 10-1 of the computer Ill
(hier des beispielhaften mikrointegrierten Schaltkreises 2) für die Verschlüsselung nutz. Bevorzugt entspricht der Quantenzufallszahlengenerator 28 ganz oder teilweise einer Konstruktion entsprechend einer der Figuren 5 bis 9. Ganz besonders bevorzugt umfassen die Quantenzufallszahlengeneratoren der ersten Vorrichtung und der zweiten Vorrichtung jeweils einen Quantenzufallszahlengenerator 28, der jeweils zumindest eine Photonenquelle 54 bzw. eine SiliziumLED 54 bzw. eine erste SPAD-Diode 54 und jeweils beispielsweise einen Lichtwellenleiter 44 beispielsweise in Form des Oxid-Stapels 44 auf der Halbleiteroberfläche des Halbleitersubstrats 49 und bevorzugt zumindest einen Photonendetektor 55 bzw. eine zweite SPAD-Diode 55 als Empfänger. Dies steigert die Datenrate der erzeugten Quantenzufallsbits 411 und befähigt den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) der jeweiligen Vorrichtung sehr schnell die Schlüssel zu erzeugen und zu tauschen. Die jeweiligen ersten Prozessoren 10-1 der jeweiligen Rechner (hier des beispielhaften mikrointegrierten Schaltkreises 2) der jeweiligen Vorrichtungen verschlüsseln ihre wechselseitige Kommunikation bevorzugt mittels eines RSA-Verschlüsselungsverfahrens. Das beispielhafte RSA Verschlüsselungsverfahren ist beispielsweise aus 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 bekannt. Die Primzahlen, die der jeweilige erste Prozessor 10-1 des jeweiligen Rechners (hier des jeweiligen beispielhaften mikrointegrierten Schaltkreises 2) der jeweiligen Vorrichtung zur Erzeugung des öffentlichen und des privaten Schlüssels vorzugsweise verwendet, erzeugt bevorzugt der Quantenzufallszahlengenerator 28 QRNG zufällig. Die Kommunikation des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mit dem jeweiligen ersten Prozessor 10- 1 des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client umfasst bevorzugt zum Ersten den Prozess „Server Process", welcher auf dem jeweiligen ersten Prozessor 10-1 des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers, also der ersten Vorrichtung, gestartet wird, und zum Zweiten den Prozess „Client Process", welcher auf dem jeweiligen ersten Prozessor 10-1 des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Client, also der zweiten Vorrichtung, gestartet wird. Der jeweilige erste Prozessor 10-1 des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients kommuniziert typischerweise mit dem jeweiligen ersten Prozessor 10-1 des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers über sogenannte Sockets. Dabei handelt es sich um Kommunikationspunkte, welche das jeweilige Betriebssystem des jeweiligen Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) bereitstellt. Bevorzugt stammen die benötigten Funktionen, um eine Kommunikation aufzubauen, beispielsweise aus der Standard C-Library socket. h. Das Folgende erläutert beispielhaft die Kommunikation gemäß Figur 12: Zu Beginn erzeugt sich der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers einen Socket-Descriptor in Schritt 3000. Ein Socket- Descriptor im Sinne des hier vorgelegten Dokuments ist ein Integer ähnlicher File-Handle, den beispielsweise die Standard C Library-Funktion socket() der socket.h Library erzeugt. Der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers kann diesen Socket-Descriptor in späteren Funktionsaufrufen, die Sockets verwenden, nutzen. (here the exemplary micro-integrated circuit 2) for the encryption. The quantum random number generator 28 preferably corresponds in whole or in part to a construction according to one of Figures 5 to 9. Most preferably, the quantum random number generators of the first device and the second device each comprise a quantum random number generator 28, each of which has at least one photon source 54 or a silicon LED 54 or a first SPAD diode 54 and each, for example, an optical waveguide 44, for example in the form of the oxide stack 44 on the semiconductor surface of the semiconductor substrate 49 and preferably at least one photon detector 55 or a second SPAD diode 55 as a receiver. This increases the data rate of the generated quantum random bits 411 and enables the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the respective device to generate and exchange the keys very quickly. The respective first processors 10-1 of the respective computers (here the exemplary micro-integrated circuit 2) of the respective devices encrypt their mutual communication preferably by means of an RSA encryption method. The exemplary RSA encryption method is known, for example, from RL 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. The prime numbers that the respective first processor 10-1 of the respective computer (here the respective exemplary micro-integrated circuit 2) of the respective device preferably uses to generate the public and private keys are preferably randomly generated by the quantum random number generator 28 QRNG. The communication of the computer (here the exemplary micro-integrated circuit 2) of the server with the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client preferably comprises, firstly, the process "Server Process", which is executed on the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the server, i.e. the first device, is started, and secondly the process "Client Process", which is started on the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client, i.e. the second device. The respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the client typically communicates with the respective first processor 10-1 of the respective computer (here the exemplary micro-integrated circuit 2) of the server via so-called sockets. These are communication points which the respective operating system of the respective computer (here the exemplary micro-integrated circuit 2) provides. The functions required to establish communication preferably come, for example, from the standard C library socket. h. The following explains the communication according to Figure 12 as an example: At the beginning, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates a socket descriptor in step 3000. A socket descriptor in the sense of the document presented here is an integer-like file handle that is generated, for example, by the standard C library function socket() of the socket.h library. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server can use this socket descriptor in later function calls that use sockets.
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 step 3010. Binding in the sense of this document means that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server uses the standard C function bind() from the standard C library socket.h to logically link the port and the IP address to the socket descriptor generated in step 3000. In the sense of this document, a port is a part of the network address that enables the assignment of data packets between server and client programs. In the sense of this document, an IP address is a network address that makes a participant in a network uniquely identifiable.
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 I isten() 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 next step 3020, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server goes into a passive waiting state 3020 and waits for connection requests from a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client. In the sense of the document presented here, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably calls the standard C function I isten() of the socker.h library for this purpose. The function indicates that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server is ready, that the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) can accept connection requests from clients. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) creates a queue for incoming connection requests from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client in one of the memories of the computer (here the exemplary micro-integrated circuit 2) or the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) or another device part of the computer (here the exemplary micro-integrated circuit 2). If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server detects a connection request from a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client, the first processor 10-1 accepts the connection request. Processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server receives this connection request from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
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 step 3030. The first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server detects a connection request from the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the client by the first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server leaving the listen() function. The first processor 10-1 of the computer (here of the exemplary micro-integrated circuit 2) of the server accepts the connection request preferably by calling the standard C function accept() of the socket.h standard C library. The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server preferably extracts the first connection request from the queue of open connection requests for the server and then uses it to establish the connection to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client. If successful, the accept() function returns a socket descriptor of the client to the first processor 10-1 of the computer (here the example micro-integrated circuit 2). A socket descriptor in the sense of this document is an integer similar to a file handle of the standard C library socket.h. This then creates the connection between the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server and the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client.
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 Q.RNG 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 subsequent step 3040. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server then executes this function keyExchange() in this step 3040 in order to send the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client its public key. However, this function keyExchangeServer() is not a standard C function. In this function, in this step 3040, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates quantum random numbers using a quantum random number generator 28 Q.RNG. The quantum random number preferably has a bit width of n. Here, n is a positive integer including zero. This Random numbers of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) of the server serve in the example presented in this document as indices for a look-up table of the first 2n prime numbers. This look-up table is preferably located in one of the memories of the computer (here the exemplary micro-integrated circuit 2) or in a memory of sub-devices 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 then reads the prime number corresponding to this index of the quantum random number of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) from the memory of the computer (here the exemplary micro-integrated circuit 2) of the server. Using these prime numbers, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) server generates both a public and a private key according to the aforementioned RSA encryption method.
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 data interface 64 of the computer (here of the exemplary micro-integrated circuit 2) of the server and the data bus 95 and the data interface 64 of the computer (here of the exemplary micro-integrated circuit 2).
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 data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and the data bus 65 and the data interface 64 of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server. Preferably, this message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client includes a public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client. Thus, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client typically transmits the private key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client via the data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and the data bus 95 and the data interface 64 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 server. If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server has received the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server stores this public key in a memory of the computer (here the exemplary micro-integrated circuit 2) of the server.
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 data bus interface 64 and the data bus 65 and the data bus interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client.
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 prepared 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) desAfter 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 computer (here the exemplary micro-integrated circuit 2) of the client from step 3030 of the method. The recv() function, which the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server typically executes, typically stores the received data in the temporary cache of the computer (here the exemplary micro-integrated circuit 2) of the
Servers. 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 DecryptQ 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. Server. 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) of the server preferably executes the function Decrypt() 3060 in a further step 3060. This function Decrypt() is not a standard C function. In this step 3060, the function DecryptQ decrypts the message of the server's private key from step 3040, which is temporarily stored in the memory of the computer (here the exemplary micro-integrated circuit 2), in accordance with the RSA method. As a result, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server decrypts the received encrypted message from the client using the private key from step 3040 temporarily stored in the memory of the computer (here the exemplary micro-integrated circuit 2) according to the RSA method. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably stores the then decrypted message in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the server.
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 further step 3070. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server encrypts in this step 3070 in in this case, the server encrypts its own message using the client's public key from 3040 according to the RSA method. This Encrypt() function is not a standard C function. The server stores its now encrypted message in a temporary buffer on the server's computer (here the example micro-integrated circuit 2).
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 send() function in a step 3080. In step 3080, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server sends its encrypted message stored in the buffer of the computer (here the exemplary micro-integrated circuit 2) 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 the data bus 65 and via the data interface 64 of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2). For the purposes of this document, the send() function is a standard C function from the standard C library socket.h. The send() function sends data via a socket descriptor, in this case the client's socket descriptor from step 3030. The typical cycle ends when the transfer ends.
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 step 3040.
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 step 3100. A socket descriptor in the sense of this document is again an integer similar to a file handle, for example the standard C library function socket() of the socket.h library, which the first Processor 10-1 of the client's computer (here, the exemplary micro-integrated circuit 2) can use in subsequent function calls that use sockets. The first processor 10-1 of the client's computer (here, the exemplary micro-integrated circuit 2) makes a connection request to the first processor 10-1 of the server's computer (here, the exemplary micro-integrated circuit 2) using the port and IP address specified in step 3010.
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 step 3010 and the client socket from step 3100.
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 step 3030, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client executes the function KeyExchangeClient() in a step 3120. This function is not a standard C function. By executing this function, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client generates one or more QRNG quantum random numbers using the quantum random number generator 28. This quantum random number has a bit width n. Here, n is a positive integer including zero. These random numbers of the quantum random number generator 28 of the computer (here the exemplary micro-integrated circuit 2) of the client preferably serve as indices for a look-up table of the first 2 n prime numbers. Using these prime numbers or other prime numbers, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client generates both a public and a private key according to RSA encryption (ANGANG). The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client stores its public key generated in this way and its private key generated in this way preferably in a memory of the computer (here the exemplary micro-integrated circuit 2) of the client. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then sends its public key to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server via the data interface 64 of the computer (here the exemplary micro-integrated circuit 2) of the client and via the data bus 65 and via the data interface 54 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 client then waits for a message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server. This message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server typically contains the public key of the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server.
Im Anschluss führt der erste Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients die Funktion EncryptQ 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 EncryptQ function 3130. By executing the Encrypt() function in step 3130, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client encrypts its 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. This function is not a standard C function. The client saves the encrypted message in a temporary buffer.
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 step 3140 and sends its encrypted message to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server. In the sense of this document, the send() function is a standard C function of the standard C library socket.h. By executing the send() function, the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client sends data via a socket descriptor, in this case the client's socket descriptor from 3100.
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 step 3150 for an encrypted message from the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server. If the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client receives a message, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client stores this received and typically encrypted message in a temporary buffer. In the sense of the present document, the function recv() is preferably a standard C function of the standard C library socket.h. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client reads incoming data 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, by executing the function recv(). The first processor 10-1 of the The client's computer (here the exemplary micro-integrated circuit 2) preferably stores the read data in a temporary buffer of the client's computer (here the exemplary micro-integrated circuit 2).
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 DecryptQ in einem Schritt 3160 aus. Diese Funktion DeCryptQ 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 DecryptQ in a step 3160. This function DeCryptQ is not a standard C function. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client decrypts an encrypted message of 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 executing the function Decrypt() 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 using the RSA method. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client then stores the message decrypted in this way in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client.
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 step 3120.
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. Figur 13 If the communication is terminated 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, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client executes the close() function in step 3170. 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 exemplary micro-integrated circuit 2) of the client closes the open connection to a socket and thus ends the communication with the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server. Figure 13
Figur 13 zeigt den schematischen Ablauf der Funktionen KeyExchangeServer() und KeyExchangeClient(). Figure 13 shows the schematic flow of the functions KeyExchangeServer() and KeyExchangeClient().
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-l)(q-l) 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 step 3200. This KeyExchangeServer() function is not a standard C function. The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server uses the KeyExchangeServer() function to generate two different prime numbers p and q, the product n=p*q and the Euler phi function phi = (p-l)(q-l) in step 3200.
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 step 3210. This setE() function in step 3210 is not a standard C function. When the setE() function is called in step 3210, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server generates a number e that is coprime to phi, where the number phi is the number from step 3200. Coprime in the sense of this document means that there is no natural number other than the number one that divides the number e and phi at the same time.
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 step 3220. This findD() function is not a standard C function. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server uses the findD() function to calculate the multiplicative inverse of e, so that (e*d)mod phi = 1.
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). 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 example micro-integrated circuit 2) of the server calls the function recv() in step 3230. The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server now waits for an incoming message from the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client, which should typically include the client's public key. In the sense of this document, the function recv() is a standard C function of the standard C library socket.h. By calling the function recv(), the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server reads the incoming data from a socket descriptor, in this case the socket descriptor of the client. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server preferably stores the read data in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2). Now the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server calls the send() function in step 3240. In this step 3240, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server sends its public key (d,n) from steps 3200 and 3220 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client. In the sense of this document, the send() function is a standard C function of the standard C library socket. i.e. the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server uses the send() function to send data via a socket descriptor, in this case the client's socket descriptor from step 3030.
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 step 3245.
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-l)(q-l). When starting the KeyExchangeClient() function, the first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client first calls the setPrimes() function in step 3250. This function is not a standard C function. The first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client uses the KexExchangeClient() function to generate the prime number p and the prime number q that is different from q. The first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client uses the KexExchangeClient() function to generate the product n=p*q. The first processor 10-1 of the computer (here of the example micro-integrated circuit 2) of the client uses the KexExchangeClient() function to generate the Euler Phi function phi = (p-l)(q-l).
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 step 3260. This function is not a standard C function. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client uses the function setE() to generate an integer e that is coprime to the number phi from step 3250. Coprime in the sense of this 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.
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. 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. 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. Now the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client calls the send() function 3280 and sends its public key (d,n) from steps 3250 and 3270 to the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server. In the sense of this document, the send() function is a standard C function of the standard C library socket.h. The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client uses the send() function to send data via a socket descriptor, in this case the client's socket descriptor from step 3100.
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 step 3290. The first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the client now waits for an incoming message from the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server with the public key of the first processor 10-1 of the computer (here the example micro-integrated circuit 2) of the server. In the sense of this document, the function recv() is a standard C function of the standard C library socket.h. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client reads 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, using the recv() function and stores the data in a temporary buffer of the computer (here the exemplary micro-integrated circuit 2) of the client.
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 step 3295.
Figur 14 Figure 14
FIG. 14 zeigt schematischen Ablauf der Funktion setPrimes(). FIG. 14 shows a schematic flow of the function setPrimes().
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, a quantum random number using a quantum random number generator QRNG 28 in step 3300. This quantum random number has a bit width n. Here, n is a positive integer including zero. In the technical teaching of the document presented here, these quantum random numbers serve as indices for a look-up table of the first 2 n prime numbers. The calling first processor 10-1 stores the prime number, which is indexed by the quantum random number, as a variable p.
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 step 3310 with the preferred bit width n using the quantum random number generator 28 QRNG. These quantum random numbers preferably serve the calling first processor 10-1 again as indices for a look-up table of the first 2 n prime numbers. The calling first processor 10-1 stores the prime number, which is indexed by the random number, as a variable q in a buffer of the computer (here the exemplary micro-integrated circuit 2), of which the first processor 10-1 is preferably a part.
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 step 3320 whether the logical statement q ==p is true. If this statement is true, step 3310 is repeated.
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 step 3330.
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 step 3340.
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 step 3350.
Figur 15 Figure 15
Die Figur 15 zeigt den schematischen Ablauf der Funktion setE() 3400. 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 Quantenzufallszahlengenerators 28 QRNG ist aber bevorzugt. Danach überprüft der aufrufende Prozessor 10-1 im Schritt 3410, ob die logische Aussage gcd(e,phi) 1= 1 erfüllt ist. Figure 15 shows the schematic sequence of the setE() function 3400. 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 which 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 quantum random number generator 28 QRNG and by a pseudo-random number generator PRNG and by iterating up an integer number starting with 2. However, generation using the quantum random number generator 28 QRNG is preferred. Then, the calling processor 10-1 checks in step 3410 whether the logical statement gcd(e,phi) 1= 1 is satisfied.
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 repeats step 3400.
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 16 Figure 16
Figur 16 zeigt den schematischen Ablauf der Funktion findD(). Wenn der aufrufende Prozessor 10-1 die der Funktion findD() im Schritt 3500 aufruft, so initialisiert der aufrufende Prozessor 10-1 im Schritt 3500 eine Variablen d mit 0. Figure 16 shows the schematic flow of the findD() function. When the calling processor 10-1 calls the findD() function in step 3500, the calling processor 10-1 initializes a variable d with 0 in step 3500.
In dem nachfolgenden Schritt 3510 addiert der aufrufende Prozessor 10-1 zu der Zahl d die Zahl 1 hinzu. In the subsequent step 3510, the calling processor 10-1 adds the number 1 to the number d.
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 step 3520, the calling processor 10-1 checks whether the logical statement (e*d) (mod phi) == 1 is true. If the logical statement (e*d) (mod phi) == 1 is not true, the calling processor repeats the steps from step 3510.
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, then in step 3530 the calling processor 10-1 leaves the function findD() and the calling processor 10-1 returns the current value of d 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.
Figur 17 Figure 17
Figur 17 zeigt den schematischen Ablauf einer sicheren Übertragung von quantenbasierten Zufallszahlen zwischen einem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) eines Servers 3600 und einem ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) eines Client 3610. 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 Q.RNG 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 Q.RNG aufweisen soll. Figure 17 shows the schematic sequence of a secure transmission of quantum-based random numbers between a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a server 3600 and a first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of a client 3610. In the case of the present document, the server 3600 is a first processor 10-1 of a computer (here the exemplary micro-integrated circuit 2), wherein the computer (here the exemplary micro-integrated circuit 2) of this server 3600 has a quantum random number generator 28 Q.RNG. In the case of the present document, the client 3610 is another first processor 10-1 of a computer 2, wherein this computer (here the exemplary micro-integrated circuit 2) of the client 3610 should NOT have a quantum random number generator 28 Q.RNG.
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 server 3600 generates quantum random numbers QZ1. The quantum random numbers QZ1 serve the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 as a basis for generating a private and a public key of the server 3600 according to an asymmetric encryption method.
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 step 3620, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 sends the public key of the server 3600 via a non-tap-proof channel to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610.
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 client 3610 then generates a pseudo-random number PZ or a random number generated in another way. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 stores the pseudo-random number PZ or the random number generated in another way in a memory of the computer (here the exemplary micro-integrated circuit 2) of the client 3610. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 generates a first private key of the client 3610 and a first public key of the client 3610 using this pseudo-random number PZ or this random number generated in another way.
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 öffentlichenThe first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 encrypts the first public key of the client 3610 using the public
Schlüssels des Servers 3600. 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. Server 3600 key. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 then sends the encrypted first public key of the client 3610 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600.
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 server 3600 now decrypts this message with its first private key. As a result, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 now has the first public key of the client 3610 without this being known to third parties.
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 server 3600 then generates a further, second quantum random number QZ2 using the quantum random number generator 28. 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.
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 server 3600 now encrypts the second quantum random number QZ2 with the first public key of the client 3610. For example, the first public key of the client 3610 can be the client's. 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'. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 then preferably sends 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 in a step 3640.
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. 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. The first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 decrypts the encrypted second quantum random number QZ2' using its first private key to form the second quantum random number QZ2. 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 the client 3610 can decrypt the encrypted second quantum random number QZ2' with the random number PZ known to it, for example by bitwise XORing the encrypted second quantum random number QZ2' with the random number PZ known to it to form the second quantum random number QZ2. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 uses the second quantum random number QZ2 that it now has as a 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 the client 3610 now sends its second public key to the server 3600 via the non-tap-proof channel. In doing so, it preferably encrypts this second public key of the client 3610 with the public key of the server 3600. The server 3600 decrypts the encrypted second public key of the client 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 the client 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 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 the Clients 3610 generate a new public key based on a new quantum random number from its quantum random number generator 28 QRNG encrypted with the second public key of the client 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 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 process again so that the keys change permanently. This also makes it impossible for a quantum computer to break the keys.
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 18 Figure 18
Figur 18 zeigt schematisch das vorschlagsgemäße Verfahren 3700 zur Erzeugung einer Quantenzufallszahl. Figure 18 shows schematically the proposed method 3700 for generating a quantum random number.
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. 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 method 3700 begins with the generation 3710 of a random single photon stream (57, 58, 59, 44) by means of one or more photon sources 54 or one or more silicon LEDs 54 or one or more first SPAD diodes (54), which are preferably manufactured in one piece in a semiconductor material 49. The method 3700 continues with the transmission 3720 of the random single photon stream (57, 58, 59, 44), for example by means of an optical waveguide 44 different from the semiconductor substrate (49, 48) or by means of the semiconductor substrate 49 as an optical waveguide or by means of direct irradiation to one or more photon detectors 55 or one or more second SPAD diodes 55.
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 method 3700 by the conversion 3730 of the random single photon stream (57, 58, 59, 44) into a detection signal in the form of a voltage signal 405 of the entropy source 401, which preferably comprises the photon sources 54 or the silicon LEDs 54 or the first SPAD diodes 54 and the optical system for optical coupling and the photon detectors 55 or the second SPAD diodes 55. The optical system can comprise a direct optical coupling of these components and/or comprise an optical waveguide 44.
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 method 3700, the processing 3740, in particular amplifying and/or filtering and/or analog-to-digital converting, of 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, follows.
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 method 3700, the pulses of the conditioned detection signal generated by coupling the emissions of a photon source 54 or a silicon LED 54 or a first SPAD diode 54 on the one hand and a photon detector 55 or a second SPAD diode 55 on the other hand are optionally separated 3750 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 a corresponding output signal 409, in particular of the comparator 404.2. If necessary, the analog-to-digital converter 403 can generate the output signal 409 directly if it is a 1-bit analog-to-digital converter 403. In this respect, this step 3750 is optional and is therefore only shown in dashed lines.
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 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 a photon source 54 or a silicon LED 54 or a first SPAD diode 54 on the one hand and a photon detector 55 or a second SPAD diode 55 on the other hand, as the first value of the output 410 of the time-to-pseudorandom number converter 404.3.
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. Then follows the determination of 3765 second first pseudorandom number depending on a second time interval between the third pulse and the fourth pulse of a second pair of two successive pulses of the conditioned detection signal, produced by optical coupling of the emissions of a photon source 54 or a silicon LED 54 or a first SPAD diode 54 on the one hand and a photon detector 55 or a second SPAD diode 55 on the other hand, as the second value of the output 410 of the time-to-pseudo-random number converter 404.3.
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 random bit 411 is then determined 3670 by comparing the value of the first pseudorandom number and the value of the second pseudorandom number.
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 above 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 an interrupt via an interrupt signal 420 or by setting a flag.
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 19 Figure 19
Figur 19 zeigt einen weiteren beispielhaften Vorschlag für einen einstückigen, monolithisch integrierten Schaltkreis 2, beispielsweise einen Mikrocontroller. Figure 19 shows another exemplary proposal for a one-piece, monolithic integrated circuit 2, for example a microcontroller.
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 integrated circuit 2, for example the microcontroller, here comprises one or more processors 10-1, 10-2; a bus arbiter 82; an internal data bus 419; a read-only memory ROM 19; a volatile random access memory RAM 8; a first non-volatile, multi-programmable memory NVM 6; a second non-volatile, multi-programmable memory NVM 30; a first non-volatile, only once programmable memory OTP I 20; a second non-volatile, only once programmable memory OTP II 22; a test controller 12, in particular a JTAG test controller; a circuit (block) 24 for deactivating tests; one or more data bus interfaces 64; a tightly coupled memory TCM 14; an interface 32 to a system 32 controlled by the integrated circuit 2, for example by the microcontroller; a Quantum random number generator 28; a reset circuit 83; an analog input processing 84, an analog-to-digital converter 85; a digital signal processing 86; one or more digital-to-analog converters 87; an analog output processing 88; one or more voltage converters 91;
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 voltage converter 91 or the multiple voltage converters 91 generate the necessary internal operating voltages of the integrated circuit 2, for example the microcontroller, from the external supply voltages. Since the entropy source 401 in particular generally requires a higher operating voltage than the supply voltages provided externally, at least one of the voltage converters 91 preferably comprises a charge pump or the like. Typically, such voltage converters 91 here comprise DMOS transistors.
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 analog input processor 84 acquires one or more external analog signals 89 and prepares them for analog-to-digital conversion. For example, the analog input processor 84 may include one or more amplifiers, filters, analog adders, analog multipliers, logarithmizers, exponentiators, voltage sources, current sources, and/or other analog circuits for adapting, enhancing, or modifying the external analog signals 89.
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-digital converter 85 can then convert the external analog signals 89 thus processed into a data stream of digital samples of the external analog signals 89, for example with a sampling frequency that typically depends on the system clock 2106.
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. Der oder die Digital-zu-Analog-Wandler 87 wandelt die digitalen Ausgangssignale des digitale Signalverarbeitung 86 zu internen analogen Ausgangssignalen. A digital signal processor 86 can then convert the digitized and processed external analog signals 89 into digital output signals using circuits that carry out circuit-implemented methods and/or computer-implemented methods. The digital signal processor 86 can also generate new digital output signals. The digital signal processor 86 typically works with the system clock 2106. When generating these two output signal groups, the digital signal processor 86 can use quantum random numbers from the quantum random number generator 28. If the digital signal processor 86 is to generate a modulated excitation signal for a sensor, for example, and is to evaluate a response signal from this sensor as an external analog signal 89 after processing and digitization, it is useful in some applications, for example, if the digital signal processor 86 uses such a quantum random number as a spreading code for generating the excitation signal of the sensor and then searches for and detects this spreading code in the external analog signal 89, for example using a synchronous demodulator. The digital-to-analog converter(s) 87 converts the digital output signals of the digital signal processing 86 to internal analog output signals.
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 analog output processing 88 processes the analog internal output signals into analog output signals 90. For example, the analog output processing 88 can include filters, amplifiers and power amplifiers.
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 rest circuit 83 brings the integrated circuit 2, for example the microcontroller, into a predefined state. Such a reset can occur, for example, when the operating voltage is switched on or when the operating voltage drops or when one of the processors 10-1, 10-2 requests such a rest from the reset circuit 83, for example via the data bus 419 or a SW rest signaling line, or when a means for monitoring the correct functioning of the quantum random generator 28 (watchdog 404.5, voltage monitor 2013) detects an error from a predefined set of errors. This enables the system to be restarted.
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 random number generator 28 preferably has the features presented here. Most preferably, the quantum random number generator 28 comprises a time-to-pseudo-random number generator 404.3.
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 random number generator 28 comprises means for monitoring the correct functioning of the quantum random number generator 28. Such means can be, for example, a voltage monitor 413 and/or a watchdog 404.5. These means typically generate an interrupt signal 420 in the event of an error and/or a suspected attack.
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 integrated circuit 2, for example the microcontroller, can also trigger interrupts using additional interrupt lines. An interrupt logic in the processors controls the behavior of the processors 10-1, 10-2.
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 random number generator 28. If the means of the quantum random number generator 28 for monitoring the correct functioning of the quantum random number generator 28, for example by means of the interrupt line 420, signal an error in the quantum random number generator 28, the processors 10-1, 10-2 preferably execute other computer-implemented replacement methods instead of these computer-implemented methods or modify parameters of these computer-implemented methods or execute These computer-implemented methods preferably no longer exist at all, at least as long as the error no longer exists.
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 integrated circuit 2, for example the microcontroller, to circuit parts and contents of memories of the integrated circuit 2, for example the microcontroller. Typically, the deactivation circuit 24 can, for example, allow or prevent the activation of predetermined test modes. This can include, for example, the activation of scan paths and access to memory contents.
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 deactivation circuit 24. Thus, certain circuit and memory areas are not accessible for access after processor activation by a processor 10-1, 10-2. These circuit and memory areas are thus protected against processor activation of the access. It can be provided that no processor activation at all is possible by a processor 10-1, 10-2.
Bevorzugt kann die Test-Schnittstelle (JTAG-Schnittstelle) 12 nur einen Teil der Zugriffe durch eine Umkonfiguration der Deaktivierungsschaltung 24 beeinflussen. Somit sind bestimmte Schaltungsund 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 deactivation circuit 24. Thus, certain circuit and memory areas are not accessible for access after test controller activation by the test interface (JTAG interface) 12. These circuit and memory areas are thus protected against access by test controller activation. It can be provided that no test controller activation at all is possible through the test interface (JTAG interface) 12.
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 memory OTP II 22.
Der Inhalt des ersten, nicht flüchtigen und nur einmal programmierbaren Speichers OTP I 20 kann beispielsweise kritische Systemparameter (CSPs) umfassen. The contents of the first, non-volatile and only once programmable memory OTP I 20 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, multi-programmable memory NVM 6 may comprise an EEPROM and/or a flash memory or the like. The memory content of the first volatile, multi-programmable memory programmable memory NVM 6 may, for example, include records 61 and signatures 61.
Der flüchtige Schreiblesespeicher RAM 8 kann ein SRAM und/oder ein DRAM oder dergleichen umfassen. Der zweite Prozessor 10-2 soll in der Figur 19 optional sein. The volatile random access memory RAM 8 may comprise an SRAM and/or a DRAM or the like. The second processor 10-2 is intended to be optional in Figure 19.
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 Figur 19 sind dies die beiden Prozessoren 10-1, 10-2. The bus arbiter 82 regulates the access of the device parts of the exemplary one-piece, monolithic integrated circuit 2, for example the microcontroller, which want to gain active write access to the internal data bus 419. In the case of Figure 19, these are the two processors 10-1, 10-2.
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 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 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 20 Figure 20
Figur 20 zeigt eine Vorrichtung ähnlich der Vorrichtung der Figuren 8 und 9. Im Unterschied zu den Figuren 8 und 9 umfasst der Quantenzufallszahlengenerator 28 in der Figur 20 keinen Hochfrequenzverstärker 402 und keinen Analog-Digital-Converter (ADC) 403 mit 14 Bit Breite und keinen Komparator 404.1 und keine Konstante 404.1. Die Vorrichtung der Figur 20 ist dazu geeignet, einen Quantenzufallszahlengenerator 28 zu bilden, bei dem die Photonenquelle 54 und der Photonendetektor 55 elektrisch in Serie geschaltet sind. In dem Fall lassen sich die stimulierten Emissionen nicht mehr vom Dark-Count unterscheiden. Figure 20 shows a device similar to the device of Figures 8 and 9. In contrast to Figures 8 and 9, the quantum random number generator 28 in Figure 20 does not comprise a high frequency amplifier 402 and an analog-digital converter (ADC) 403 with a width of 14 bits and a comparator 404.1 and a constant 404.1. The device of Figure 20 is suitable for forming a quantum random number generator 28 in which the photon source 54 and the Photon detector 55 are electrically connected in series. In this case, the stimulated emissions can no longer be distinguished from the dark count.
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 voltage signal 405 of the entropy source 401 are usually shorter than the frequency of the system clock 2106. This means that a direct sampling of the voltage signal 405 of the entropy source 401 with a sampling frequency equal to the frequency of the system clock 2106 no longer satisfies the Nyquist condition. Therefore, the exemplary 1-bit analog-digital converter (ADC) 403 is followed by a pulse extension circuit 2023 which extends a pulse on the voltage signal 405 of the entropy source 401 to a time length greater than one clock period of the system clock 2106 and preferably ends the generated pulse synchronously with the system clock 2106, so that the pulse on the voltage signal 405 of the entropy source 401 can be reliably synchronized by a subsequent flip-flop. The processor 10-1, 10-2 generated in this way can preferably access the registers of the watchdog 404.5, the memory RAM 404.9 or the FIFO 404.9 and the finish flag 404.10 via the internal data bus 419 and read them and, as far as permitted or possible, write them. The finish flag 404.10 preferably signals to the processor 10-1, 10-2 via an interrupt line (not shown) that a new quantum random number is available in the RAM/FIFO 404.9. Reading the contents of the RAM/FIFO preferably clears this finish flag 404.10 again. In order to save energy, it is sensible to switch off device parts of the quantum random number generator 28 when the finish flag 404.10 is set. Preferably, the processor 10-1, 10-2 can access device parts of the quantum random number generator 28 via the data bus 419 and switch certain parts of the quantum random number generator 28 on and off by setting or deleting flags in the registers of these device parts. These device parts can be, for example: the voltage monitor 419, a voltage converter 91 of the quantum random number generator 28, in particular a charge pump for supplying the entropy source 401, the ADC 403, the pulse extension circuit 2023, the time-to-pseudo-random number converter (TPRC) 404.3, the entropy extraction 404.4, the finite state machine 404.8. Preferably, the watchdog 404.5 evaluates these register bits and checks whether an enable register inside it has a permissible authentication code for these switches on or off. The finite state machine 404.8 preferably also evaluates these flags and preferably only allows the generation of quantum random numbers 418 when all parts of the quantum random number generator 28 are working.
Das einsynchronisiertes Spannungssignal 415 kann dann wie oben beschrieben verarbeitet werden. Hinsichtlich der übrigen Vorrichtungsteile verweist das hier vorgelegte Dokument auf die vorausgehenden Beschreibungen. Figur 21 The synchronized voltage signal 415 can then be processed as described above. With regard to the remaining device parts, the document presented here refers to the preceding descriptions. Figure 21
Figur 21 zeigt ein Beispiel für einen Zeit-zu-Pseudozufallszahl-Wandler 404.3. Die entscheidende Idee ist hier im Quantenzufallszahlengenerator 28 statt eines Digitalzählers wie im Stand der Technik einen Pseudozufallszahlengenerator 404.3 zu verwenden, der den ersten und den zweiten Wert für die Entropieextraktion 404.4 erzeugt. Die hier vorgelegte Schrift verweist hier auf Figur 18 bezüglich des entsprechenden Prozesses. 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. Dieses wird aber vorschlagsgemäß ebenfalls zufällig ausgesucht. Gleiches gilt für den Seed-Wert des Pseudozufallszahlengenerators, den der Angreifer ebenfalls ermitteln müsste. Ein weiterer Vorteil eines Pseudozufallszahlengenerators an Stelle eines Zählers ist der geringere Flächenbedarf der Rückkoppellogik eines einfach primitiven Rückkoppelpolynoms gegenüber einem Binärzähler. Ist das linear rückgekoppelte Schieberegister des Pseudozufallszahlengenerators lang genug, so ist jedem Takt zwischen zwei Pulsen des Spannungssignals 405 der Entropie Quelle 401 typischerweise eine eindeutige Pseudozufallszahl zugeordnet. Vorzugsweise startet der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) die Erzeugung einer Pseudozufallszahl durch das Schieberegister des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mit einem ersten Puls auf dem Spannungssignals 405 der Entropie Quelle 401 und beendet die Erzeugung der Pseudozufallszahl mit einem nachfolgenden zweiten Puls auf der Spannungssignals 405 der Entropie Quelle 401. Figure 21 shows an example of a time-to-pseudorandom number converter 404.3. The key idea here is to use a pseudorandom number generator 404.3 in the quantum random number generator 28 instead of a digital counter as in the prior art, which generates the first and second values for the entropy extraction 404.4. The document presented here refers to Figure 18 for the corresponding process. The advantage is that even if a disturbance is successfully introduced into the synchronized voltage signal 415, the randomness of the quantum random bit 411 is only marginally disturbed, since the attacker would also have to know the feedback polynomial. However, this is also randomly selected according to the proposal. The same applies to the seed value of the pseudorandom number generator, which the attacker would also have to determine. Another advantage of a pseudorandom number generator instead of a counter is the smaller area required for the feedback logic of a simple, primitive feedback polynomial compared to a binary counter. If the linear feedback shift register of the pseudorandom number generator is long enough, a unique pseudorandom number is typically assigned to each clock pulse between two pulses of the voltage signal 405 of the entropy source 401. Preferably, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) starts the generation of a pseudorandom number by the shift register of the time-to-pseudorandom number converter 404.3 (TPRC) with a first pulse on the voltage signal 405 of the entropy source 401 and ends the generation of the pseudorandom number with a subsequent second pulse on the voltage signal 405 of the entropy source 401.
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 random number generator 28 changes the feedback polynomial of the linearly feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number m of random quantum bits 411 as a function of one or more previously determined random quantum bits 411.
Folgende einfach Primitiven Rückkoppelpolynome sind beispielsweise aus der Literatur beispielsweise bekannt:
Figure imgf000139_0001
Figure imgf000140_0001
The following simple primitive feedback polynomials are known from the literature, for example:
Figure imgf000139_0001
Figure imgf000140_0001
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. 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 RKNi 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 RKNi 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. 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. In order to prevent the protection of the quantum random number generator 28 from being broken, it is also useful if, for example, the quantum random number generator 28 changes the shift register length n of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number k of random quantum bits 411 depending on one or more previously determined random bits. For this purpose, it is useful if the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of the feedback polynomial selection register 2112 for this purpose. The value stored in the feedback polynomial The value stored in the selection register 2112 preferably controls the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC). Thus, the value stored in the feedback polynomial selection register 2112 preferably selects which feedback polynomial of the m feedback polynomial circuits RKNi to RKN m determines the logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, by means of a line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this random bit 411 is used for the feedback polynomial selection register 2112. This prevents double use and thus increases security. Instead, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the feedback polynomial selection register 2112. This has the advantage that the feedback polynomial of the m feedback polynomial circuits RKNi to RKN m selected by the feedback polynomial selection register 2112 is completely random. This means that 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 random bits 411, even if an attack on the entropy source 401 is successful.
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 SBi 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 SBi bis SBn des Zeit-zu-Pseudozufallszahl- Wandlers 404.3 (TPRC) In order to further harden the proposed micro-integrated quantum random number generator 28, it is also useful if, for example, the quantum random number generator 28 changes the start value (seed value) of the linear feedback shift register of the pseudorandom number generator of the time-to-pseudorandom number converter 404.3 (TPRC) after the complete determination of a number p of random quantum bits 411 depending on one or more previously determined random bits. For this purpose, it is useful if the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or a processor (10-1, 10-2) rewrites the value of a seed reload register in the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) with random bits for this purpose. The bit width of a seed reload register in the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably corresponds to the number n of the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC). The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably counts the number of successfully generated quantum random bits 411. For this purpose, the finite state machine 404.8 preferably signals the generation of a valid random bit to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC). Instead of counting the valid quantum random bits 411, it is also possible to count the successfully generated random data words 418 in the finite state machine 404.8. The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably loads the new seed value of a seed reload register in the shift register controller 2103 into the shift register bits SBi to SB n of the time-to-pseudo-random number converter 404.3 (TPRC) in one or more of the following events.
• bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Quantenzufallsbits 411 und/oder • upon reaching a predetermined number of successfully generated quantum random bits 411 and/or
• bei Erreichen einer vorbestimmten Anzahl erfolgreich erzeugter Zufallsdatenworte 418 und/oder • upon reaching a predetermined number of successfully generated random data words 418 and/or
• 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 RKNi bis RKNm des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). • when changing the value of the feedback polynomial selection register 2112 of the time-to-pseudorandom number converter 404.3 (TPRC) and thus the selected feedback polynomial of the m feedback polynomials RKNi to RKN m of the time-to-pseudorandom 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 random number generator 28 are covered with a metal layer 142, 53 in order to ward off any influence by temperature or electromagnetic radiation or electrostatic fields or magnetic fields. Preferably, the metal layer also comprises a soft magnetic layer to ward off attempts at attack using magnetic fields.
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 dasPreferably, by means of a line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device prevents the forwarding of a generated quantum random bit 411 by the finite state machine 404.8 when this random bit 411 is used for the seed reload register in the shift register controller 2103 in the time-to-pseudo-random number converter 404.3 (TPRC). This prevents double use and thus increases security. Instead, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device preferably uses this random bit 411 to generate a random data word for storage in the seed reload register in the shift register controller 2103. This has the advantage that the
Seed-Nachladeregisters im Schieberegistercontroller 2103 ausgewählte Seed-Wert des linear rückgekoppelten Schieberegisters der n Schieberegisterbits SBi 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. Seed reload register in the shift register controller 2103 selected seed value of the linear feedback shift register of the n shift register bits SBi to SB n is completely random. Since a If the linear feedback shift register has two cycles when using simple primitive feedback polynomials, one of which only includes a shift register value, this one-cycle shift register value must be prevented. If the random reload value of the seed reload register in the shift register controller 2103 corresponds to the one-cycle seed value of the linear feedback shift register with the current feedback polynomial or the next intended feedback polynomial, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device generates a new random reload value in the seed reload register of the shift register controller 2103.
Bevorzugt sind die m Rückkoppelpolynome RKNi 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 RKNi 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 SBi bis SBn umfasst. Befindet sich der Zustandsvektor der n Schieberegisterbits SBi 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 SBi 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 RKNi to RKN m are selected such that the one-cycle seed values are equal. This reduces the effort required to detect the one-cycle shift register value, since this no longer depends on the selected feedback polynomial of the feedback polynomials RKNi to RKN m . In any case, it is recommended that the time-to-pseudorandom number converter 404.3 (TPRC) includes a detection circuit 2113 for detecting an illegal value of the state vector of the n shift register bits SBi to SB n when linear feedback shift registers are used. If the state vector of the n shift register bits SBi to SB n is in such an illegal state, the detector 2113 preferably signals this illegal state to the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or one of the processors (10-1, 10-2) or another device. The detector 2113 or the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) or the processor (10-1, 10-2) or the other device then resets the value of the state value of the state vector of the n shift register bits SBi to SB n to a predetermined value and/or the value of the seed reload register in the shift register controller 2103. These reload values are preferably different from the one-cycle shift register value. This preferably also occurs when the watchdog 404.5 and/or the voltage monitor 413 detect a fault or a suspected or possible attack. The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) preferably counts the number of these faults. Preferably, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) reduces this counter value again depending on the number of random quantum bits 411 and/or random data words 418 successfully generated, in particular since the last disturbance. If this number and/or the event density of such events exceeds a certain predetermined temporal density and/or a certain numerical value, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) signals a defect in the quantum random number generator 28 or a successful Attack on the quantum random number generator 28. Typically, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) then signals the finite state machine 404.8 that no more random numbers may be generated. Preferably, a processor (10-1, 10-2) must then reactivate the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) using a predetermined reactivation code word. The processor (10-1, 10-2) then writes this reactivation code word via the internal data bus 419 of the quantum random number generator 28 into a special reactivation register of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC), which reactivates the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) and the quantum random number generator 28 and preferably resets all error counters. The number of possible reactivations is preferably limited. If the maximum number of reactivations is exceeded, the quantum random number generator 28 can preferably no longer be reactivated. The counter for the reactivations of the quantum random number generator 28 can preferably be reset by means of a special reset command before this maximum value is reached. Preferably, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28 or another device of the quantum random number generator 28 issues a warning before reaching this blocking limit.
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 random number generator 28 is started, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first ensures that the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) first determines a new seed value based on quantum random numbers 411 and a new value of the feedback polynomial selection register 2112 based on quantum random numbers from quantum random bits 411 by means of a predetermined seed value and a predetermined value of the feedback polynomial selection register 2112. Only when the seed value and the value of the feedback polynomial selection register 2112 are based on quantum random numbers is the initialization phase of the quantum random number generator 28 completed and the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) signals the finite state machine 404.8 that it may use and pass on the quantum random bits 411 and the quantum random data words 418 (quantum random numbers). The finite state machine 404.8 preferably signals this fact to one or more processors (10-1, 10-2). This has the advantage that the device only generates quantum random numbers 418 generated with full protection.
Durch die Verwendung eines Zeit-zu-Pseudozufallszahlengenerators 404.3 (TPRC) ist es einemBy using a time-to-pseudorandom number generator 404.3 (TPRC), it is possible for a
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. Attackers can no longer use a deterministic bit stream instead of the data bit stream the quantum random bits 411, even if an attack on the entropy source 401 is actually successful for whatever reason.
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 random number generator 28 changes this number m after the complete determination of a number m of quantum random bits 411 depending on one or more previously determined random bits.
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 random number generator 28 does not output these already used quantum random bits 411 and does not use them for generating quantum random data words 418.
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 derTypically, the time-to-pseudo-random number generator 404.3 (TPRC) uses the logic value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) as the value of the output 410 of the time-to-pseudo-random number converter 404.3 (TPRC). If necessary, a buffer amplifier can be provided which uses the logic value of the
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.Shift register reload value line 2104 of time-to-pseudo-random number converter 404.3 (TPRC) and output as the value of output 410 of time-to-pseudo-random number converter 404.3 (TPRC).
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 output 410 of the time-to-pseudorandom number converter 404.3, a first pseudorandom number 410.1 and a second pseudorandom number 410.2.
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 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 counts the events in which the two pseudorandom numbers, the first pseudorandom number 410.1 and the second pseudorandom number 410.2, are unequal using this counter and decrements the counter by a second counter step size with each such event, preferably not falling below the value 0. Preferably, the second counter step size is smaller in magnitude than the first counter step size of the counter in the entropy extraction 404.4. If the value of this counter is a exceeds a predetermined value, the control device of the entropy extraction 404.4 assumes a defect in the time-to-pseudorandom number converter 404.3 (TPRC). The control device of the entropy extraction 404.4 then preferably signals a processor (10-1, 10-2) a defect in the quantum random number generator 28 or a successful attack on the quantum random number generator 28. The entropy extraction 404.4 then preferably no longer signals the finite state machine that a quantum random bit 411 has been successfully generated, so that the finite state machine 404.8 can no longer report successful quantum random number generation to a processor (10-1, 10-2) and no longer generates quantum random numbers 418.
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 random bits 411 into quantum random data words 418, each of which represents a quantum random number, and makes these available to the processors (10-1, 10-2) via a RAM or a FIFO 404.9 via the internal data bus 419. The finite state machine 404.8 preferably signals the provision of one or more quantum random numbers to one or more processors (10-1, 10-2).
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 system clock 2106. By using a time-to-pseudorandom number generator 404.3 (TPRC), a monofrequency or otherwise systematic disturbance of the system clock 2106 is spread in the spectrum with a random spreading code, making detection difficult, if not impossible, for an attacker.
Dies Erschwert die Angreifbarkeit des Quantenzufallszahlengenerators 28 weiter. This further complicates the vulnerability of the quantum random number generator 28.
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. Demnach erreicht der vorschlagsgemäße Quantenzufallszahlengenerator 28 also alle genannten Ziele. By using quantum random numbers from quantum random bits 411 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.2 (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. Therefore, the proposed quantum random number generator 28 achieves all of the above-mentioned goals.
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 random number generator 28 that makes it possible to guarantee a high level of entropy so that it at least passes the statistical tests defined by NIST.
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 random number generator 28 which makes it possible to achieve a high bit rate when generating random sequences of quantum random bits 411 and/or quantum random data words 418.
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 an object of the proposal to provide a one-piece, micro-integrated quantum random number generator 28 which, compared to the quantum random number generators of the prior art, has a more compact, more robust and less complex and, above all, micro-integrated and CMOS compatible structure which allows one-piece manufacture and co-integration into conventional systems such as memories (such as DRAMS, SRAMS, flash memories and the like) or processors (microprocessors and/or microcontrollers and/or SoCs by means of a processor on the IC).
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 random number generator 28 with a high degree of security against any attempt to manipulate its internal components. In particular, the use of a time-to-pseudo-random number generator 1004.3 (TRNG) prevents the evaluation of successful attacks on the entropy source 401. Furthermore, the many tests enable a reliable detection of an attack on the quantum random number generator 28 and thus prevent the use of manipulated numbers as supposedly secure quantum random numbers.
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 random number generator 28 which is more economical than the generators of the known state of the art, in particular due to the ability to be co-integrated into CMOS circuits.
Figur 22 Figure 22
Das in Figur 22 dargestellte Diagramm stellt die Erfassung der Pulse (2201, 2202, 2203, 2204) auf dem Spannungssignal 405 der Entropie Quelle 401 dar. Die Entropiequelle 401 umfasst bevorzugt die eine oder die mehreren Photonenquellen 54 bzw. die eine oder die mehreren Silizium-LEDs 54 bzw. die eine oder die mehreren SPAD-Dioden 54 und die Lichtübertragungsstrecke 44 zwischen diesen. Die Entropiequelle 401 ist vorzugsweise in bzw. auf dem Halbleitersubstrat 49 gefertigt und damit vorzugsweise Teil der mikrointegrierten Schaltung des Quantenzufallszahlengenerators 28. Das Ausgangssignal 405 der Entropiequelle 401 ist typischerweise das besagte Spannungssignal 405 der Entropiequelle 401. Das Spannungssignal 405 der Entropiequelle 401 ist bevorzugt das Signal eines oder mehrerer Photonendetektoren 55 bzw. einer oder mehrerer zweiten SPAD-Dioden 55 der Entropiequelle 401. The diagram shown in Figure 22 represents the detection of the pulses (2201, 2202, 2203, 2204) on the voltage signal 405 of the entropy source 401. The entropy source 401 preferably comprises the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 and the light transmission path 44 between them. The entropy source 401 is preferably manufactured in or on the semiconductor substrate 49 and thus preferably part of the micro-integrated circuit of the quantum random number generator 28. The output signal 405 of the entropy source 401 is typically the said voltage signal 405 of the entropy source 401. The voltage signal 405 of the entropy source 401 is preferably the signal of one or more photon detectors 55 or one or more second SPAD diodes 55 of the entropy source 401.
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 SiliziumLEDs 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 voltage signal 405 shows exemplary pulses 2201, 2202, 2203, 2104 for random events of the voltage signal 405. These can be spontaneous voltage pulses of the photon detector 55 or the second SPAD diode 55 of the entropy source 401, which are not related to the activity of the photon source 54 or the silicon LED 54 or the first SPAD diode 54 of the entropy source 401. However, the pulses 2201, 2202, 2203, 2204 of the photon detector 55 or the second SPAD diode 55 of the entropy source 401 can also be based on stimulated emission, which causes the detection of a photon of the one or more photon sources 54 or the one or more silicon LEDs 54 or the one or more SPAD diodes 54 by the photon detector 55 or by the second SPAD diode 55 of the entropy source 401.
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 photon detector 55 or by the second SPAD diode 55 of the entropy source 401, a dead time occurs during which the photon detector 55 or the second SPAD diode 55 of the entropy source 401 is no longer able to receive. If the magnitude of the voltage signal 405 of the entropy source 401 exceeds a threshold value 2105, an analog-to-digital converter (ADC, 403), here an exemplary one-bit analog-to-digital converter 403,
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 system clock 2106 of the quantum random number generator 28, which is preferably one of the system clock cycles of the integral microintegrated circuit, on a synchronized voltage signal 415.
In dem Beispiel der Figur 22 ist die Pulsverlängerungsschaltung 2023 beispielsweise so konstruiert, dass sie für mindestens drei nachfolgende Takte des Systemtakts 2106 auf einen ersten logischen Pegel geht und dann bis zum nächsten Ereignis auf dem zweiten logischen Pegel hier beispielhaft mit der fallenden Flanke des dritten Taktpulses zurückfällt. Statt drei Taktpulsen können a bis n Taktpulse verwendet werden, wobei eine ganze positive Zahl größer 0 ist. In the example of Figure 22, the pulse extension circuit 2023 is designed, for example, such that it goes to a first logic level for at least three subsequent clock pulses of the system clock 2106 and then falls back to the second logic level until the next event, here for example with the falling edge of the third clock pulse. Instead of three clock pulses, a to n clock pulses can be used, where a whole positive number is greater than 0.
In dem Beispiel der Figur 22 stellen die fallenden Flanken der Pulse 2211, 2212, 2213, 2214 des einsynchronisierten Spannungssignal 415 die einsynchronisierten Signale der Entropiequelle 401 dar. 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. In the example of Figure 22, the falling edges of the pulses 2211, 2212, 2213, 2214 of the synchronized voltage signal 415 represent the synchronized signals of the entropy source 401. With a falling edge of a first pulse 2211 of the synchronized voltage signal 415, the time-to-pseudorandom number converter (TPRC) resets a pseudorandom number generator, for example, to a predefined seed value. For example, the pseudorandom number generator of the time-to-pseudorandom number converter (TPRC) can be a feedback shift register that shifts its values by one place to the left or right depending on the design with each clock pulse of the system clock 2106 and feeds the feedback value of the feedback polynomial back into the bit that becomes free.
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 system clock 2106 is bijectively assigned exactly one pseudorandom number of the pseudorandom number generator from the falling edge. This means that the value of the pseudorandom number must be able to be used to determine the temporal position of the relevant clock pulse of the system clock 2106 after the falling edge of the synchronized voltage signal 415.
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 second pulse 2212 synchronized voltage signal 415, a first pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value.
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 third pulse 2213 synchronized voltage signal 415, a second pseudorandom number register takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value. The entropy extraction 401 compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a random bit with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, the entropy extraction 404.4 can, for example, generate a random bit with a second logical level that is different from the first level.
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 fourth pulse 2214 of the synchronized voltage signal 415, the first pseudorandom number register takes over the previous value of a second pseudorandom number register and the second pseudorandom number register instead takes over the last status of the pseudorandom number generator and the time-to-pseudorandom number converter (TPRC) preferably resets the pseudorandom number generator to the predefined seed value. The entropy extraction 401 then compares the value in the first pseudorandom number register with the value in the second pseudorandom number register. If the first value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, then the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a first logical level. If the second value in the first pseudorandom number register is greater than the second value in the second pseudorandom number register, then the entropy extraction 404.4 can, for example, generate another new and here second quantum random bit 411 with a second logical level that is different from the first level.
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 random number generator 28 can continue this process of quantum random bit generation and thus generate a continuous stream of quantum random bits 411, albeit with phase noise.
Figur 23 Figure 23
Figur 23 zeigt einen beispielhaften Spannungswandler 91 zur Versorgung der Entropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial. Der Spannungswandler 91 entspricht dem der Figur 20. Insofern ist die Figur 23 ein Ausschnitt der Figur 20, wobei nur die wesentlichsten Teile zur besseren Klarheit dargestellt sind. Figure 23 shows an example of a voltage converter 91 for supplying the entropy source 411 with a sufficient operating voltage of the supply voltage line V E NT of the entropy source 411 relative to the reference potential line GND at the reference potential. The voltage converter 91 corresponds to that of Figure 20. In this respect, Figure 23 is a section of Figure 20, with only the most important parts being shown for better clarity.
Der Spannungswandler 91 der Figur 23 ist nur ein Beispiel von mehreren möglichen Spannungswandler-Konstruktionen. Der Spannungswandler soll nur als Beispiel für die Erläuterung des möglichen Einsatzes von DMOS-Transistoren in einem vorschlagsgemäßen Quantenzufallszahlengenerator 28 bzw. einer integrierten Schaltung 2, beispielsweise eines Mikrocontrollers, mit einem solchen Quantenzufallszahlengenerator 28 sein. The voltage converter 91 of Figure 23 is only one example of several possible voltage converter designs. The voltage converter is only intended as an example to explain the possible use of DMOS transistors in a proposed quantum random number generator 28 or an integrated circuit 2, for example a microcontroller, with such a quantum random number generator 28.
Der Spannungswandler 91 der Figur 23 umfasst eine erste Halbbrücke. In dem Beispiel der Figur 23 versorgen die Bezugspotenzialleitung GND und die positive Versorgungsspannungsleitung VDD den Spannungswandler zur Versorgung der Entropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial mit elektrischer Energie. The voltage converter 91 of Figure 23 comprises a first half-bridge. In the example of Figure 23, the reference potential line GND and the positive supply voltage line VDD supply the voltage converter to supply the entropy source 411 with a sufficient operating voltage of the supply voltage line V E NT of the entropy source 411 relative to the reference potential line GND at the reference potential with electrical energy.
Die erste Halbbrücke des beispielhaften Spannungswandlers 91 ist in dem Beispiel der Figur 23 zwischen die die Bezugspotenzialleitung GND und die positive Versorgungsspannungsleitung VDD geschaltet. Die erste Halbbrücke des beispielhaften Spannungswandlers 91 der Figur 23 umfasst den High-Side- Transistor 2301 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411 und den Low- Side-Transistor 2302 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411. The first half-bridge of the exemplary voltage converter 91 is connected in the example of Figure 23 between the reference potential line GND and the positive supply voltage line VDD. The first half-bridge of the exemplary voltage converter 91 of Figure 23 comprises the high-side transistor 2301 of the first half-bridge of the charge pump for the entropy source 411 and the low-side transistor 2302 of the first half-bridge of the charge pump for the entropy source 411.
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-side transistor 2303 of the charge pump for the entropy source 411 is electrically connected to the positive supply voltage line VDD.
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 control device 2330 of the voltage converter 91 controls the high-side transistor 2301 of the first half-bridge via the control contact (gate) 2311 of the high-side transistor 2301 of the first half-bridge.
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 control device 2330 of the voltage converter 91 controls the low-side transistor 2302 of the first half-bridge via the control contact (gate) 2312 of the low-side transistor 2302 of the first half-bridge.
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-side transistor 2303 is electrically connected to the output node 2321 of the charge pump. As a result, the high-side transistor 2303 of the second half-bridge forms a MOS diode that becomes conductive when the potential of the output node 2321 of the charge pump falls below the positive potential of the positive supply voltage line VDD minus the threshold voltage of the second high-side transistor 2303. The second high-side transistor 2303 then charges the first energy storage device, here a first capacitor 2306.
Der erste Kondensator 2306 ist in dem Beispiel der Figur 23 mit seinem zweiten Anschluss des ersten Kondensators 2306 mit dem Ausgangsknoten 2321 der Ladungspumpe elektrisch verbunden. Der erste Kondensator 2306 ist in dem Beispiel der Figur 23 mit seinem ersten Anschluss des ersten Kondensators 2306 mit dem Ausgangsknoten 2320 der ersten Halbbrücke der Ladungspumpe elektrisch verbunden. In the example of Figure 23, the first capacitor 2306 is electrically connected to the output node 2321 of the charge pump by its second connection of the first capacitor 2306. In the example of Figure 23, the first capacitor 2306 is electrically connected to the output node 2320 of the first half-bridge of the charge pump by its first connection of the first capacitor 2306.
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 control device 2330 of the voltage converter 91 initially blocks the high-side transistor 2301 of the first half-bridge and the low-side transistor 2302 of the first half-bridge.
Ein Transfer-Transistor 2305 der Ladungspumpe für die Entropiequelle 411 ist in dem Beispiel der Figur 23 zwischen dem Ausgangsknoten 2321 der Ladungspumpe und der positiven Versorgungsspannungsleitung VEXT der Entropiequelle 411 geschaltet. In dem Beispiel der Figur 23 ist der Transfer-Transistor 2305 der Ladungspumpe für die Entropiequelle 411 als MOS-Diode verschaltet. Dadurch bildet der Transfer-Transistor 2305 eine MOS-Diode, die leitend wird, wenn das Potenzial des Ausgangsknoten 2321 der Ladungspumpe unter das positive Potenzial der positiven Versorgungsspannungsleitung VEXT der Entropiequelle 411 minus der Threshold-Spannung des Transfer-Transistors 2305 fällt. Der Transfer-Transistor 2305 lädt dann den zweiten Energiespeicher, hier ein zweiter Kondensator 2307. A transfer transistor 2305 of the charge pump for the entropy source 411 is connected in the example of Figure 23 between the output node 2321 of the charge pump and the positive supply voltage line VEXT of the entropy source 411. In the example of Figure 23, the transfer transistor 2305 of the charge pump for the entropy source 411 is connected as a MOS diode. As a result, the transfer transistor 2305 forms a MOS diode that becomes conductive when the potential of the output node 2321 of the charge pump falls below the positive potential of the positive supply voltage line VEXT of the entropy source 411 minus the threshold voltage of the transfer transistor 2305 falls. The transfer transistor 2305 then charges the second energy storage device, here a second capacitor 2307.
Der zweite Kondensator 2307 ist in dem Beispiel der Figur 23 mit seinem zweiten Anschluss des zweiten Kondensators 2307 mit positiven Versorgungsspannungsleitung VEXT der Entropiequelle 411 elektrisch verbunden. Der zweite Kondensator 2307 ist in dem Beispiel der Figur 23 mit seinem ersten Anschluss des zweiten Kondensators 2307 mit der Bezugspotenzialleitung GND elektrisch verbunden. In the example of Figure 23, the second capacitor 2307 is electrically connected to the positive supply voltage line VEXT of the entropy source 411 via its second terminal of the second capacitor 2307. In the example of Figure 23, the second capacitor 2307 is electrically connected to the reference potential line GND via its first terminal of the second capacitor 2307.
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 control device 2330 of the voltage converter 91 switches the low-side transistor 2302 of the first half-bridge on for a short time in an initialization phase.
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-side transistor 2303 then charges the first capacitor 2306 to the voltage between the positive supply voltage terminal VDD and the reference potential line GND minus the threshold voltage of the second high-side transistor 2303.
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 control device 2330 of the voltage converter 91 blocks the low-side transistor 2302 of the first half-bridge. This ends the charging process of the first capacitor 2306.
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 control device 2330 of the voltage converter 91 switches the high-side transistor 2301 of the first half-bridge to conduct. This shifts the output potential of the output 2321 of the charge pump to a potential with a voltage that corresponds to twice the voltage between the positive supply voltage line VDD and the reference potential line GND minus the threshold voltage of the second high-side transistor 2303. The potential of the output 2321 of the charge pump is thus above the potential of the positive supply voltage line VEXT of the entropy source 411 if the second capacitor 2307 is not charged or is only insufficiently charged or has the wrong polarity. If the voltage difference between the potential of the output 2321 of the charge pump and the potential of the supply voltage line VEXT of the entropy source 411 is greater than the threshold voltage of the transfer transistor 2305, the transfer transistor 2305 switches on and connects the output 2321 of the charge pump to the supply voltage line V E XT of the entropy source 411. This causes charge to pass from the first capacitor 2306 to the second capacitor 2307, which increases the potential of the supply voltage line VEXT of the entropy source 411 until the voltage drops across the first capacitor 2306 and the second capacitor 2307 have equalized.
Die Steuervorrichtung 2330 des Spannungswandlers 91 wiederholt diese Schritte bis kein Ladungstransfer mehr stattfindet. The control device 2330 of the voltage converter 91 repeats these steps until no more charge transfer takes place.
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 control device 2330 of the voltage converter 91, until they determine that the potential of the supply voltage line VEXT of the entropy source 411 has fallen below a minimum potential. If this is the case, the processor 10-1 or the voltage monitor 413 preferably restart the charge pump of the voltage converter 91 by means of another signaling to the control device 2330 of the voltage converter 91 and keep it in operation until no significant charge transfer takes place again.
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 voltage monitor 413 does not detect this state of essentially no longer occurring charge transfer within a predefined period of time after the charge transfer has been restarted, then a defect or a malfunction or an attack is probably present. Preferably, the processor 10-1 and/or the voltage monitor 413 signal this error. For example, the voltage monitor 413 can signal such an error to the watchdog 404.5 via a signal line 414.
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 voltage converter 91 and the second capacitor 2307 can thus supply the entropy source 411 with a sufficient operating voltage on the supply voltage line VEXT of the entropy source 411.
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 second capacitor 2307 can be manufactured externally of the integrated circuit 2, for example the microcontroller, and connected via terminals of the housing of the integrated circuit 2, for example the microcontroller. This enables very high capacitance values for the first capacitor 2306 and/or the second capacitor 2307 in a cost-effective manner.
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 second capacitor 2307 are silicon capacitors. In one embodiment, the first capacitor 2306 and/or the second capacitor 2307 can, when integrating the first capacitor 2306 and/or the second capacitor 2307 into the integrated circuit 2, for example into the microcontroller, for example each be a circuit of trench capacitors which are in the Semiconductor substrate 49 of the quantum random number generator 28. In a further additional or alternative embodiment, when integrating the first capacitor 2306 and/or the second capacitor 2307 into the integrated circuit 2, for example into the microcontroller, the first capacitor 2306 and/or the second capacitor 2307 can each comprise, for example, an interconnection of MIM capacitors that are manufactured in the metallization stack on the semiconductor substrate 49 of the quantum random number generator 28. MIM stands for metal-insulator-metal. An insulation layer of the metallization stack then preferably comprises a high-K material, such as hafnium oxide.
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 second capacitor 2307.
In dem Beispiel der Figur 23 liegt im Betrieb dann zwischen Gate 2313 und Substrat des zweite High- Side-Transistors 2303 und zwischen Gate 2315 und Substrat des Transfer-Transistors 2305 zumindest zeitweise eine erhöhte Spannung an. Daher müssen diese Transistoren besonders spannungsfest sein. Bevorzugt sind der zweite High-Side-Transistor 2303 und/oder der Transfer-Transistor 2305 daher jeweils als DMOS-Transistor ausgeführt. Daher ist es vorteilhaft die integrierte Schaltung 2, beispielsweise den Mikrocontroller, bzw. den monolithisch integrierten Quantenzufallszahlengenerator 28 in einer BCD-Technologie zu fertigen. In the example of Figure 23, during operation, an increased voltage is then present at least temporarily between gate 2313 and substrate of the second high-side transistor 2303 and between gate 2315 and substrate of the transfer transistor 2305. These transistors must therefore be particularly voltage-resistant. The second high-side transistor 2303 and/or the transfer transistor 2305 are therefore preferably each designed as a DMOS transistor. It is therefore advantageous to manufacture the integrated circuit 2, for example the microcontroller, or the monolithically integrated quantum random number generator 28 using BCD technology.
Figur 24 Figure 24
Figur 24 zeigt beispielhaft ein Grob-Layout eines imaginären integrierten Schaltkreises 2, beispielsweise eines Mikrocontrollers, mit einem vorschlagsgemäßen Quantenzufallsgenerator 28 in der Aufsicht. Figure 24 shows an example of a rough layout of an imaginary integrated circuit 2, for example a microcontroller, with a proposed quantum random generator 28 in plan view.
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 integrated circuit 2, for example a microcontroller, has an inner region 2405 of the integrated circuit 2 in which the essential subcircuits of the integrated circuit 2, for example the microcontroller, are located. Typically, this inner region 2405 of the integrated circuit 2, for example the microcontroller, is surrounded by a wiring region 2404 in which supply voltage lines, data bus lines and other lines are typically routed.
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. Das hier vorgelegte Dokument schlägt nun vor, den Quantenzufallszahlengenerator 28, wie er beispielsweise in der Figur 20 beispielhaft dargestellt ist ganz oder zumindest in wesentlichen Teilen im Pad-Rahmen 2403 zu platzieren, da die Lücken zwischen den Anschluss-Pads 2402 oft nicht mit elektronischen Schaltungsteilen gefüllt sind, trotzdem aber bei der Herstellung mitprozessiert werden müssen und daher unnütze Kosten verursachen. Diese Platzierung des Quantenzufallszahlengenerators 28 zu Gänze oder zumindest in wesentlichen Teilen im Pad-Rahmen 2403 reduziert daher die Zusatzkosten für einen solchen Quantenzufallszahlengenerator 28 signifikant. Das hier vorgelegte Dokument schlägt vor, ganz besonders bevorzugt, zumindest die Entropiequelle 401 im Pad-Rahmen zwischen zwei Anschluss-Pads 2402 zu platzieren. Das hier vorgelegte Dokument schlägt vor bevorzugt außerdem den Analog-zu-Digital-Wandler 403 ebenfalls im Pad-Rahmen zwischen zwei Anschluss-Pads 2402 zu platzieren. Das hier vorgelegte Dokument schlägt vor bevorzugt außerdem den Spannungswandler 91 für die Energieversorgung der Entropiequelle 401 ebenfalls im Pad-Rahmen zwischen zwei Anschluss-Pads 2402 zu platzieren. Das hier vorgelegte Dokument schlägt vor bevorzugt außerdem Die Pulsverlängerungsschaltung 2023 ebenfalls im Pad-Rahmen zwischen zwei Anschluss-Pads 2402 zu platzieren. Das hier vorgelegte Dokument schlägt vor bevorzugt außerdem andere Analogteile des Quantenzufallszahlengenerators 28 (z.B. den Verstärker 402) ebenfalls im Pad-Rahmen zwischen zwei Anschluss-Pads 2402 zu platzieren. The wiring area 2404 and the inner area 2405 of the integrated circuit 2, for example the microcontroller, are surrounded by the pad frame 2403, which includes the connection pads (connection areas) 2402 for the electrical bond connections or other electrical connection connections. The document presented here now proposes placing the quantum random number generator 28, as shown for example in Figure 20 by way of example, entirely or at least in substantial parts in the pad frame 2403, since the gaps between the connection pads 2402 are often not filled with electronic circuit parts, but nevertheless have to be processed during production and therefore cause unnecessary costs. This placement of the quantum random number generator 28 entirely or at least in substantial parts in the pad frame 2403 therefore significantly reduces the additional costs for such a quantum random number generator 28. The document presented here proposes, very preferably, to place at least the entropy source 401 in the pad frame between two connection pads 2402. The document presented here also preferably proposes to also place the analog-to-digital converter 403 in the pad frame between two connection pads 2402. The document presented here preferably also proposes to place the voltage converter 91 for the energy supply of the entropy source 401 in the pad frame between two connection pads 2402. The document presented here preferably also proposes to place the pulse extension circuit 2023 in the pad frame between two connection pads 2402. The document presented here preferably also proposes to place other analog parts of the quantum random number generator 28 (eg the amplifier 402) in the pad frame between two connection pads 2402.
Figur 25 Figure 25
Figur 25 zeigt eine schematische Darstellung einer ersten Ausführungsform eines Quantenzufallszahlengenerators 28 gemäß Stand der Technik in der Aufsicht. Die Darstellung ist an eine entsprechende Figur der EP 3 529 694 Bl angelehnt und zeigt die Oberfläche O eines zugehörigen Substrates 49, in welches die Entropiequelle 401 integriert ist. Eine kreisförmige Photonenquelle 54 mit einem zur Bereitstellung von Photonen eingerichteten p-n-Übergang wird über eine entsprechende Kontaktierung mit Strom versorgt und dabei zur Emission einzelner horizontal sich ausbreitender Photonen 58 angeregt. Zur Detektion der emittierten Photonen 58 ist neben der Photonenquelle 54 ein zugehöriger Einzelphotonendetektor 55 in Form einer SPAD-Diode 55 angeordnet. Es handelt sich bei der Photonenquelle 54 und dem Einzelphotonendetektor 55 wie bei herkömmlichen hybriden Ansätzen für photonische Entropiequellen 401 allerdings auch weiterhin um strukturell und funktional getrennte Elemente, die zur Integration in einem gemeinsamen Halbleitersubstrat 49 lediglich nebeneinander angeordnet werden und bei denen der Transport der Photonen 58 durch das Halbleitersubstrat 49 mit großer Dämpfung erfolgt. Dies hat eine niedrige Datenrate zur Folge. Ein vom Einzelphotonendetektor 55 bei der Absorption eines Photons 58 erzeugter Strompuls kann dann zunächst in einem zugehörigen Mittel zur elektronischen Erfassung 25152 („electronic sampling means") registriert und ausgewertet werden, insbesondere um eine Bitfolge auf der Grundlage der Anzahl der im Einzelphotonendetektor 55 erfassten Photonen zu erzeugen. Weiterhin ist ein Mittel zur elektronischen Nachbearbeitung 25154 („electronic post-processing means") vorgesehen, welches so konfiguriert sein soll, dass es die binären Sequenzen des Mittels zur elektronischen Erfassung 55 so verarbeiten, dass eine sogenannte „Whitening"-Operation durchgeführt wird. Diese soll eine Vielzahl von Kompressionsoperationen umfassen, die dazu dienen, die statistischen Eigenschaften der erzeugten binären Sequenzen zu verbessern. Der Nachbearbeitungsschritt soll das Entropieniveau des Bitstroms der Entropiequelle 401 erhöhen. Dabei muss jedoch sichergestellt sein, dass die verwendeten Kompressionsoperationen nicht wiederrum zu einer prinzipiellen Vorhersagbarkeit der erzeugten Zufallszahlen durch Einführung deterministischer Abhängigkeiten bei der Anwendung führen. Figure 25 shows a schematic representation of a first embodiment of a quantum random number generator 28 according to the prior art in plan view. The representation is based on a corresponding figure in EP 3 529 694 B1 and shows the surface O of an associated substrate 49 in which the entropy source 401 is integrated. A circular photon source 54 with a pn junction set up to provide photons is supplied with power via a corresponding contact and is thereby excited to emit individual horizontally propagating photons 58. To detect the emitted photons 58, an associated single photon detector 55 in the form of a SPAD diode 55 is arranged next to the photon source 54. However, as with conventional hybrid approaches for photonic entropy sources 401, the photon source 54 and the single photon detector 55 are still structurally and functionally separate elements that are simply arranged next to one another for integration in a common semiconductor substrate 49 and in which the transport of the photons 58 through the semiconductor substrate 49 takes place with great attenuation. This results in a low data rate. A current pulse generated by the single photon detector 55 when a photon 58 is absorbed can then first be registered and evaluated in an associated electronic sampling means 25152, in particular to generate a bit sequence based on the number of photons detected in the single photon detector 55. Furthermore, an electronic post-processing means 25154 is provided, which is to be configured to process the binary sequences of the electronic sampling means 55 in such a way that a so-called "whitening" operation is carried out. This is to include a large number of compression operations that serve to improve the statistical properties of the generated binary sequences. The post-processing step is to increase the entropy level of the bit stream of the entropy source 401. However, it must be ensured that the compression operations used do not in turn lead to a fundamental predictability of the generated random numbers by introducing deterministic dependencies in the application.
Um die Effizienz der Zufallszahlenerzeugung, d. h. die effektive Entropierate, zu erhöhen, wird der photonische Teil, also die Entropiequelle 401, des Q.RNG an der Oberfläche O des Halbleitersubstrats 49 vorzugsweise von einer lichtblockierenden Schicht 142, 53 („light inhibitor filter"), welcher zur Abschattung gegenüber einem äußeren Lichteinfall dient, geschützt. Dabei kann die lichtblockierende Schicht 142, 53 insbesondere durch eine Metallisierungsschicht, die direkt während des Produktionsprozesses, zum Beispiel durch die CMOS-Technik, als letzte Metallisierungsebene aufgebracht werden kann, bereitgestellt werden. Dadurch soll der Photonendetektor 55 von externem Licht abgeschirmt werden und ihn nur für solche Photonen empfindlich zu machen, die aufgrund des Übersprechens von der Photonenquelle 54 durch das Halbleitersubstrat 49 gelangen. Darüber hinaus soll durch die Metallisierungsschicht 142, 53 auch die optische Kopplung der von Photonenquelle 54 emittierten Photonen 58 verbessern, indem diese nach innen reflektiert und so an einem Austritt aus der Oberfläche O des Halbleitersubstrats 49 behindert werden. To increase the efficiency of random number generation, i.e. In order to increase the effective entropy rate, the photonic part, i.e. the entropy source 401, of the Q.RNG on the surface O of the semiconductor substrate 49 is preferably protected by a light-blocking layer 142, 53 ("light inhibitor filter"), which serves to shade against external light incidence. The light-blocking layer 142, 53 can be provided in particular by a metallization layer that can be applied directly during the production process, for example by CMOS technology, as the last metallization level. This is intended to shield the photon detector 55 from external light and to make it sensitive only to those photons that pass through the semiconductor substrate 49 due to crosstalk from the photon source 54. In addition, the metallization layer 142, 53 is also intended to improve the optical coupling of the photons 58 emitted by the photon source 54 by reflecting them inwards and thus preventing them from exiting the surface O of the semiconductor substrate 49.
Nachteilig bei einer solchen Anordnung der optischen Komponenten nebeneinander ist der Abstand zwischen den Komponenten, welcher die Kopplungsstärke aufgrund von dem geringen Beleuchtungswinkel und der potentiellen Photonenabsorption in den verschiedenen Materialien reduziert. Zudem besteht trotz der partiell aufgebrachten lichtblockierenden Schicht 142, 53 potentiell auch weiterhin die Möglichkeit des optischen Zugriffs und damit eines Angriffs von der Oberfläche O des Substrats 49 oder sogar von der Rückseite des Halbleitersubstrats 49 aus. Über dieses können nämlich beispielsweise zusätzliche Photonen gezielt injiziert oder extrahiert werden, so dass letztlich die Zählstatistik und damit die Entropie der erzeugten Zufallszahlen beeinflusst und kompromittiert werden kann. Weiterhin ist in der Darstellung auch zu erkennen, dass die einzelnen Photonen 58 isotrop in alle Raumrichtungen verteilt emittiert werden, so dass nur ein Bruchteil der Photonen 58 vom Photonendetektor 55 erfasst und somit statistisch ausgewertet werden kann. Dies verringert zum einen erheblich die Effizienz der Zufallszahlenerzeugung und führt anderseits dazu, das eine Vielzahl von Photonen 58 ungenutzt ins Halbleitersubstrat 49 emittiert werden, wo diese an anderer Stelle eventuell ebenfalls durch Beobachter bzw. Angreifer extrahiert werden oder zu Störungen führen können. The disadvantage of such an arrangement of the optical components next to each other is the distance between the components, which reduces the coupling strength due to the small illumination angle and the potential photon absorption in the various materials. In addition, despite the partially applied light-blocking layer 142, 53, there is still the potential for optical access and thus an attack from the surface O of the substrate 49 or even from the back of the semiconductor substrate 49. This can be used, for example, to specifically inject or extract additional photons, so that ultimately the counting statistics and thus the entropy of the random numbers generated can be influenced and compromised. Furthermore, the illustration also shows that the individual Photons 58 are emitted isotropically distributed in all spatial directions, so that only a fraction of the photons 58 can be detected by the photon detector 55 and thus statistically evaluated. On the one hand, this significantly reduces the efficiency of the random number generation and, on the other hand, leads to a large number of photons 58 being emitted unused into the semiconductor substrate 49, where they may also be extracted elsewhere by observers or attackers or may lead to interference.
Figur 26 Figure 26
Figur 26 zeigt eine schematische Darstellung einer zweiten Ausführungsform einer Entropiequelle 401 gemäß Stand der Technik in einer Seitenansicht. Die Darstellung ist an eine entsprechende Figur aus Khanmohammadi et al. (A. Khanmohammadi, R. Enne, M. Hofbauer and H. Zimmermann, "A Monolithic Silicon Quantum Random Number Generator Based on Measurement of Photon Detection Time," in IEEE Photonics Journal, vol. 7, no. 5, pp. 1-13, Oct. 2015, Art no. 7500113) angelehnt. Auch in diesem Beispiel ist der prinzipielle Aufbau einer Nebeneinanderanordnung einer Photonenquelle 54 (Si-LED), welche zur Aussendung von einzelnen Photonen 58 eingerichtet ist, und einem Einzelphotonendetektor 55 (SPAD) klar zu erkennen. Im Unterschied zur in Figur 25 gezeigten Anordnung wird die Photonenquelle 54 hierbei jedoch als kreisförmiges zentrales Element bereitgestellt, welches im Wesentlichen vollständig von einem entsprechend angepassten kreisringförmig ausgebildeten Einzelphotonendetektor 55 umgeben wird. Die gemeinsame radiale Symmetrieachse R liegt entsprechend im Zentrum der derart ausgebildeten Entropiequelle 401. Die Photonenquelle 54 wird dabei durch eine in einer tiefliegenden n-Wanne („deep n well") ausgebildeten n-Wanne („n well") realisiert, die über ein in die Oberfläche O des Substrats 49 („p- substrate") zentral um die radiale Symmetrieachse R eingebrachtes n++-Gebiet als Kathode 26122 und ein daneben angeordnetes p++-Gebiet als Anode 26124 mit Strom versorgt wird. Außerhalb der tiefliegenden n-Wanne wird der Einzelphotonendetektor 55 ebenfalls an die Oberfläche O über ein eingebrachtes n++-Gebiet als Kathode 26132 und ein weiter von der radialen Symmetrieachse R entfernt angeordnetes p++-Gebiet als Anode 26134 kontaktiert. An die Kathode 26132 schließt sich unterhalb eine p-Wanne („p well") an. Unterhalb der Anode 26134 ist hingegen in einer tiefliegenden p-Wanne („deep p well") ein p-Wanne („p well") ausgebildet. Die Photonenquelle 54 wird hierbei als Element innerhalb der Struktur des Photonendetektors 55 bereitgestellt, so dass im Gegensatz zur Figur 25 diese eine strukturelle und funktionale Einheit bilden. Figure 26 shows a schematic representation of a second embodiment of an entropy source 401 according to the prior art in a side view. The representation is based on a corresponding figure from Khanmohammadi et al. (A. Khanmohammadi, R. Enne, M. Hofbauer and H. Zimmermann, "A Monolithic Silicon Quantum Random Number Generator Based on Measurement of Photon Detection Time," in IEEE Photonics Journal, vol. 7, no. 5, pp. 1-13, Oct. 2015, Art no. 7500113). In this example, too, the basic structure of a side-by-side arrangement of a photon source 54 (Si-LED), which is set up to emit individual photons 58, and a single-photon detector 55 (SPAD) can be clearly seen. In contrast to the arrangement shown in Figure 25, however, the photon source 54 is provided as a circular central element which is essentially completely surrounded by a correspondingly adapted circular ring-shaped single-photon detector 55. The common radial axis of symmetry R is accordingly located in the center of the entropy source 401 formed in this way. The photon source 54 is realized by an n-well (“n well”) formed in a deep n-well (“deep n well”), which is supplied with power via an n++ region introduced into the surface O of the substrate 49 (“p-substrate”) centrally around the radial axis of symmetry R as cathode 26122 and a p++ region arranged next to it as anode 26124. Outside the deep n-well, the single photon detector 55 is also contacted to the surface O via an introduced n++ region as cathode 26132 and a p++ region arranged further away from the radial axis of symmetry R as anode 26134. A p-well (“p well”) is connected below the cathode 26132. Below the anode 26134, however, a p-well ("p well") is formed in a deep p-well ("deep p well"). The photon source 54 is provided as an element within the structure of the photon detector 55, so that in contrast to Figure 25, these form a structural and functional unit.
Auch bei diesem Beispiel für eine Entropiequelle 401 gemäß Stand der Technik werden die Photonen 58 im Wesentlichen allseitig in das Halbleitersubstrat 49 emittiert, so dass die auch bereits zur Ausführungsform nach Figur 25 beschrieben Nachteile hinsichtlich der Sicherheit gegenüber Beobachtern bzw. Angreifern und zur verringerten Effizienz ebenfalls zutreffen. Durch den spezifischen Aufbau als kreisringförmige Anordnung und die strukturelle Verknüpfung des Einzelphotonendetektors 55 mit der Photonenquelle 54 kann gegenüber Figur 25 jedoch die Integrationsdichte weiter erhöht werden. Dies beinhaltet neben einem geringeren Flächenverbrauch zur Ausbildung der Entropiequelle 401 auch eine Erhöhung der Sicherheit gegenüber Angriffen sowie eine gesteigerte Effizienz bei der Zufallszahlenerzeugung bzw. der Entropierate als Vorteile. Dies hängt insbesondere auch damit zusammen, dass durch die Verringerung aller Abstände die Verluste an Photonen 58 durch auftretende Materialabsorption und ungünstige Emissionsrichtungen geringer werden. Zudem wird dadurch die Fläche für mögliche Angriffe verkleinert. Davon abgesehen besteht auch hierbei prinzipiell jedoch ebenfalls auch weiterhin die Möglichkeit insbesondere an der Oberfläche 0 sowie auch an anderen Stellen des Halbleitersubstrats 49 zur Beeinflussung der Zählstatistik durch Angreifer einzelne Photonen 58 auszukoppeln oder zu injizieren. Eine solche Nebeneinanderanordnung der beiden optischen Komponenten einer optischen Entropiequelle 401 weist daher einige Nachteile auf, die einer besonders sicheren, kompakten und zuverlässigen Zufallszahlenerzeugung für SoC-Anwendungen bisher entgegenstehen. In this example of an entropy source 401 according to the prior art, the photons 58 are emitted essentially from all sides into the semiconductor substrate 49, so that the disadvantages already described for the embodiment according to Figure 25 with regard to security against observers or attackers and reduced efficiency also apply. However, the specific structure as a circular arrangement and the structural linking of the single photon detector 55 with the photon source 54 means that the integration density can be further increased compared to Figure 25. In addition to a smaller area requirement for forming the entropy source 401, this also includes increased security against attacks and increased efficiency in random number generation or the entropy rate as advantages. This is particularly related to the fact that by reducing all distances, the loss of photons 58 due to material absorption and unfavorable emission directions is reduced. In addition, the area for possible attacks is reduced. Apart from that, in principle it is still possible for attackers to extract or inject individual photons 58, particularly at the surface 0 and at other points on the semiconductor substrate 49, in order to influence the counting statistics. Such a juxtaposition of the two optical components of an optical entropy source 401 therefore has some disadvantages that have so far prevented particularly secure, compact and reliable random number generation for SoC applications.
Figur 27 Figure 27
Figur 27 zeigt eine schematische Darstellung eines mit einem Verfahren zur Bereitstellung tiefliegender p-n-Übergänge 27050 und 27052 in einem BCD-Prozess bereitgestellten BCD-Substrats 27110 und eine TCAD-Darstellung der resultierenden Dotierstoffverteilung. Ein Ausführungsbeispiel eines Verfahren zur Erzeugung tiefliegender p-n-Übergänge 27050 und 27052 in einem BCD-Prozess umfasst ein Bereitstellen eines Trägersubstrats 49; ein Einbringen eines ersten Dotierstoffs zur Ausbildung eines ersten Gebiets 27022 (z. B. NBL) vom ersten Leitungstyp (negativ für NBL) in eine Oberfläche S des Trägersubstrats 49; ein Einbringen eines zweiten Dotierstoffs zur Ausbildung eines zweiten Gebiets 27032 (z. B. PBL) vom zweiten Leitungstyp (positiv für PBL) in die Oberfläche S des Trägersubstrats 49, wobei sich das erste Gebiet 27022 (NBL) und das zweite Gebiet 27032 (PBL) zumindest teilweise überlagern; ein Aufwachsen einer epitaktischen Schicht 48 auf die Oberfläche S des Trägersubstrats 49, wobei sich das erste Gebiet 27022 (NBL) und das zweite Gebiet 27032 (PBL) durch Diffusion des ersten Dotierstoffs und des zweiten Dotierstoffs in der epitaktischen Schicht 48 ausbreiten und dadurch einen in der epitaktischen Schicht 48 liegenden p-n-Übergang 27050 ausbilden. Figure 27 shows a schematic representation of a BCD substrate 27110 provided with a method for providing deep p-n junctions 27050 and 27052 in a BCD process and a TCAD representation of the resulting dopant distribution. An embodiment of a method for producing deep p-n junctions 27050 and 27052 in a BCD process comprises providing a carrier substrate 49; introducing a first dopant to form a first region 27022 (e.g. NBL) of the first conductivity type (negative for NBL) into a surface S of the carrier substrate 49; introducing a second dopant to form a second region 27032 (e.g. PBL) of the second conduction type (positive for PBL) into the surface S of the carrier substrate 49, wherein the first region 27022 (NBL) and the second region 27032 (PBL) at least partially overlap; growing an epitaxial layer 48 on the surface S of the carrier substrate 49, wherein the first region 27022 (NBL) and the second region 27032 (PBL) spread by diffusion of the first dopant and the second dopant in the epitaxial layer 48 and thereby form a p-n junction 27050 lying in the epitaxial layer 48.
In der Darstellung handelt es sich bei dem ersten Gebiet 27022 um eine tiefliegende NBL-Schicht und bei dem zweiten Gebiet 27032 um eine tiefliegende PBL-Schicht. Die Reihenfolge ist jedoch vertauschbar, so dass es sich bei dem ersten Gebiet 27022 auch um eine tiefliegende PBL-Schicht und bei dem zweiten Gebiet 27032 um eine tiefliegende NBL-Schicht handeln kann. Über eine entsprechende Anpassung der Diffusionslängen der einzelnen Dotierstoffe kann auch die Schichtfolge der p-n-Übergänge 27050 und 27052 umgekehrt werden, z. B. könnten in Figur 27 auch die NBL- und PBL-Schichten am p-n-Übergang 27050 und 27052 vertauscht werden. In the illustration, the first region 27022 is a deep NBL layer and the second region 27032 is a deep PBL layer. However, the order can be interchanged, so that the first region 27022 can also be a deep PBL layer and the second region 27032 can be a deep NBL layer. By appropriately adapting the diffusion lengths of the individual dopants, the The layer sequence of the pn junctions 27050 and 27052 can be reversed, e.g. in Figure 27 the NBL and PBL layers at the pn junction 27050 and 27052 could also be swapped.
Das beschriebene Verfahren unterscheidet sich von den herkömmlichen Verfahren zur Bereitstellung von BCD-Substraten 27110 gemäß Stand der Technik insbesondere dadurch, dass sich das erste Gebiet 27022 (NBL) und das zweite Gebiet 27032 (PBL) zumindest teilweise überlagern. Insbesondere kann unmittelbar nach dem Einbringen des zweiten Dotierstoffs in einer Aufsicht auf die Oberfläche S des T rägersubstrats 49 das erste Gebiet 27022 oder das zweite Gebiet 27032 vollständig das jeweils anderen Gebiet (27032, 27022) überlagern. Daher liegt bei der gezeigten Ausführungsform unmittelbar nach dem Einbringen des zweiten Dotierstoffs zur Ausbildung des zweiten Gebiets 27032 (PBL) dieses in einer Aufsicht auf die Oberfläche S des Trägersubstrats 49 vollständig im ersten Gebiet 27022 (NBL). Um dabei einen in der epitaktischen Schicht liegenden p-n-Übergang 27050 auszubilden, weisen der erste und der zweite Dotierstoff vorzugsweise unterschiedliche Diffusionseigenschaften im Trägersubstrat 49 und/oder in der epitaktischen Schicht 48 auf. Insbesondere kann der zweite Dotierstoff im zweiten Gebiet 27032 (PBL), wie gezeigt, eine höhere Diffusions-Beweglichkeit (und damit Diffusionslänge) im Trägersubstrat 49 und in der epitaktischen Schicht 48 als der erste Dotierstoff im ersten Gebiet 27022 (NBL) aufweisen. The method described differs from the conventional methods for providing BCD substrates 27110 according to the prior art in particular in that the first region 27022 (NBL) and the second region 27032 (PBL) at least partially overlap. In particular, immediately after the introduction of the second dopant, in a plan view of the surface S of the carrier substrate 49, the first region 27022 or the second region 27032 can completely overlap the other region (27032, 27022). Therefore, in the embodiment shown, immediately after the introduction of the second dopant to form the second region 27032 (PBL), the second region 27032 (PBL) lies completely in the first region 27022 (NBL) in a plan view of the surface S of the carrier substrate 49. In order to form a p-n junction 27050 lying in the epitaxial layer, the first and the second dopant preferably have different diffusion properties in the carrier substrate 49 and/or in the epitaxial layer 48. In particular, the second dopant in the second region 27032 (PBL), as shown, can have a higher diffusion mobility (and thus diffusion length) in the carrier substrate 49 and in the epitaxial layer 48 than the first dopant in the first region 27022 (NBL).
Zur Verstärkung der Diffusion kann nach dem Einbringen des ersten Dotierstoffs und/oder des zweiten Dotierstoffs eine Erwärmung des Trägersubstrats 49 erfolgt. Weiterhin kann nach dem Aufwachsen der epitaktischen Schicht 48 eine Erwärmung des Trägersubstrats 49 zur Verstärkung der Dotierstoffdiffusion erfolgen. Ein Einbringen des ersten Dotierstoffs und/oder des zweiten Dotierstoffs kann beim vorgestellten Verfahren sowohl maskenlos oder über ein Maskenverfahren erfolgen. Bei dem gezeigten BCD-Wafer kann eine vollständige Überlagerung des ersten Gebiets 27022 (NBL) mit einem einzelnen zweiten Gebiet 27032 (PBL) angenommen werden. Herkömmlicher Weise werden die ersten und zweiten Gebiete 27022 und 27032 jedoch räumlich getrennt voneinander ausgebildet. Insbesondere ist deren Abstand dabei im Allgemeinen mindestens so groß gewählt, dass auch nach dem Ausdiffundieren der einzelnen Dotierstoffe keine sich überlagernden Gebiete erzeugt werden. To increase the diffusion, the carrier substrate 49 can be heated after the introduction of the first dopant and/or the second dopant. Furthermore, after the growth of the epitaxial layer 48, the carrier substrate 49 can be heated to increase the dopant diffusion. In the method presented, the first dopant and/or the second dopant can be introduced either maskless or using a mask method. In the BCD wafer shown, a complete overlay of the first region 27022 (NBL) with a single second region 27032 (PBL) can be assumed. Conventionally, however, the first and second regions 27022 and 27032 are formed spatially separated from one another. In particular, their distance is generally chosen to be at least large enough that even after the individual dopants have diffused out, no overlapping regions are created.
Die unterhalb der schematischen Darstellung angegebene TCAD-Darstellung (engl. „Technology Computer-Aided Design, TCAD") zeigt die Dotierstoffverteilung innerhalb des kontaktierten BCD- Substrats 27110 zur Simulation einer entsprechenden integrierten Diodenstruktur. Aufgrund der in dieser Ausführungsform gezeigten Doppelstruktur mit einem oberen p-n-Übergang 27050 in der epitaktischen Schicht 48 und einem unteren p-n-Übergang 27052 in dem Trägersubstrat 49 ergibt sich in der gezeigten Seitenansicht eine effektive Einschnürung des im Bereich der p-n-Übergänge 27050 und 27052 eingeschlossenen n-Gebiets NBL durch die beiden dieses n-Gebiet NBL umgebenden p-Gebiete PBL. Beide p-n-Übergänge 27050 und 27052 können zur Bereitstellung voneinander unabhängiger SPADs mit einer zur Erzeugung eines Lawineneffekts geeigneten Dotierungsdichte und Feldstärkeverteilung ausgebildet werden. The TCAD representation (Technology Computer-Aided Design, TCAD) shown below the schematic representation shows the dopant distribution within the contacted BCD substrate 27110 for simulating a corresponding integrated diode structure. Due to the double structure shown in this embodiment with an upper pn junction 27050 in the epitaxial layer 48 and a lower pn junction 27052 in the carrier substrate 49, the side view shown results in an effective constriction of the n-region NBL enclosed in the area of the pn junctions 27050 and 27052 by the two of this n-region NBL surrounding p-regions PBL. Both pn junctions 27050 and 27052 can be designed to provide independent SPADs with a doping density and field strength distribution suitable for generating an avalanche effect.
Mittels entsprechender BCD-Substrate 27110 zur weiteren Verwendung in BCD-Technologien lassen sich somit besonders tiefliegende SPADs („deepSPADs") erzeugen. Insbesondere bleibt oberhalb der bereitgestellten SPADs dabei noch genügend Bauraum zur Integration weiterer optoelektronischer Komponenten. Erfindungsgemäß kann daher insbesondere eine oberhalb der tiefliegenden SPAD ausgebildete Zener-avLED dazu genutzt, eine besonders kompakten, vertikal aufgebauten Entropiequelle 401 zu realisieren, bei dem einzelne Photonen 58 durch die Zener-avLED als Photonenquellen 55 vorzugsweise in Richtung des oberen p-n-Übergangs 27050 vertikal nach unten emittiert werden und somit für eine Detektion durch eine unmittelbar unterhalb der Zener-avLED als Photonendetektor 54 am oberen p-n-Übergang 27050 ausgebildeten SPAD als Einzelphotonendetektor 55 bereitgestellt werden (siehe Figur 28 mit zugehöriger Figurenbeschreibung). By means of corresponding BCD substrates 27110 for further use in BCD technologies, particularly deep-lying SPADs ("deepSPADs") can thus be produced. In particular, there is still sufficient installation space above the SPADs provided for the integration of further optoelectronic components. According to the invention, a Zener avLED formed above the deep-lying SPAD can therefore be used in particular to realize a particularly compact, vertically constructed entropy source 401, in which individual photons 58 are emitted by the Zener avLED as photon sources 55 preferably vertically downwards in the direction of the upper p-n junction 27050 and are thus provided for detection by a SPAD formed immediately below the Zener avLED as a photon detector 54 at the upper p-n junction 27050 as a single photon detector 55 (see Figure 28 with associated figure description).
Figur 28 Figure 28
Figur 28 zeigt eine schematische Darstellung einer beispielhaften ersten Ausführungsform einer vorschlagsgemäßen vertikalen Entropiequelle 401. Eine vertikale Entropiequelle 401 zeichnet sich im Sinne des hier vorgelegten Dokuments durch eine vertikale Anordnung der Photonenquelle 54 gegenüber dem Photonendetektor 55 aus. Die Horizontale wird da bei durch die Oberfläche O des Halbleitersubstrats 48 mit der epitaktischen Schicht 48 definiert. Die Verbindungslinie der Schwerpunkte der vertikalen Anordnung aus der Photonenquelle 54 und dem Photonendetektor 55 ist somit vertikal gegenüber der Oberfläche O des Substrats 49 mit der epitaktischen Schicht 48 angeordnet, wobei Vertikal hier relativ weich als ein Winkel von mehr als 30°, optimal 90°dieser Linie gegenüber der Oberfläche O zu verstehen ist. Die gezeigte monolithisch integrierte Entropiequelle 401 umfasst eine Photonenquelle 54 und einen Einzelphotonendetektor 55, wobei die Photonenquelle 54 und der Einzelphotonendetektor 55 in vertikaler Richtung übereinander in einem gemeinsamen Substrat 49 aus einem Halbleitermaterial angeordnet sind. Vorzugsweise handelt es sich bei der Photonenquelle 54 um eine Einzelphotonenquelle (SPS) 54, dazu eingerichtet, zeitgleich nur einzelne oder einige wenige vertikale Photonen 57 bereitzustellen. Vorzugsweise handelt es sich bei der Photonenquelle 54 um eine an einem Arbeitspunkt unterhalb oder nahe der Durchbruchspannung betriebene lichtemittierende Avalanche Zener-Diode (Zener-avLED) 54. Vorzugsweise handelt es sich bei dem Einzelphotonendetektor 55 um eine Einzelphotonen-Lawinendiode (zweite SPAD 55). Die Entropiequelle 401 ist vorzugsweise in einem BCD-Substrat 27110 in BCD-Technologie ausgebildet. Vorzugsweise umfasst das BCD-Substrat 27110 ein Trägersubstrat 49; und eine auf dem Trägersubstrat 49 aufgewachsene epitaktische Schicht 48, wobei zwischen dem Trägersubstrat 49 und der epitaktischen Schicht 48 durch eine Diffusion von in eine Oberfläche S des Trägersubstrats 49 unterhalb der epitaktischen Schicht 48 eingebrachten Dotierstoffen ein in der epitaktischen Schicht liegender tiefliegender p-n-Übergang 27050 erzeugt wurde (siehe Figur 27). Vorzugsweise bildet der Einzelphotonendetektor 55 in einem Bereich um den tiefliegenden p-n-Übergang 27050 ein Lawinengebiet aus und umfasst ein Absorptionsgebiet 47/28010 mit einer Hochvolt-p-Wanne 28010 (engl. „high-voltage p-type well") und eine p-Wanne 47 (engl. „p-type well") zur Umwandlung von Photonen in Elektronen-Lochpaare, wobei sich das Absorptionsgebiet 47/28010 unmittelbar an die den tiefliegenden p-n-Übergang 27050 ausbildenden Gebiete NBL (27022) und PBL (27032) anschließt. Die vollständig ausgeprägte Hochvolt-p-Wanne 28010 ermöglicht dabei einen optimalen Anschluss des tiefliegenden p-n-Übergang 27050 von der Anode her. Figure 28 shows a schematic representation of an exemplary first embodiment of a proposed vertical entropy source 401. A vertical entropy source 401 is characterized in the sense of the document presented here by a vertical arrangement of the photon source 54 relative to the photon detector 55. The horizontal is defined by the surface O of the semiconductor substrate 48 with the epitaxial layer 48. The connecting line of the centers of gravity of the vertical arrangement of the photon source 54 and the photon detector 55 is thus arranged vertically relative to the surface O of the substrate 49 with the epitaxial layer 48, with vertical here being understood to be a relatively soft angle of more than 30°, optimally 90° of this line relative to the surface O. The monolithically integrated entropy source 401 shown comprises a photon source 54 and a single photon detector 55, wherein the photon source 54 and the single photon detector 55 are arranged vertically one above the other in a common substrate 49 made of a semiconductor material. The photon source 54 is preferably a single photon source (SPS) 54, designed to provide only individual or a few vertical photons 57 at the same time. The photon source 54 is preferably a light-emitting avalanche Zener diode (Zener-avLED) 54 operated at an operating point below or close to the breakdown voltage. The single photon detector 55 is preferably a single photon avalanche diode (second SPAD 55). The entropy source 401 is preferably formed in a BCD substrate 27110 using BCD technology. The BCD substrate 27110 preferably comprises a carrier substrate 49; and an epitaxial layer 48 grown on the carrier substrate 49, wherein a deep pn junction 27050 lying in the epitaxial layer was created between the carrier substrate 49 and the epitaxial layer 48 by diffusion of dopants introduced into a surface S of the carrier substrate 49 below the epitaxial layer 48 (see Figure 27). Preferably, the single photon detector 55 forms an avalanche region in a region around the deep pn junction 27050 and comprises an absorption region 47/28010 with a high-voltage p-type well 28010 and a p-type well 47 for converting photons into electron-hole pairs, wherein the absorption region 47/28010 is directly adjacent to the regions NBL (27022) and PBL (27032) forming the deep pn junction 27050. The fully developed high-voltage p-type well 28010 enables an optimal connection of the deep pn junction 27050 from the anode.
Bevorzugt ist, dass der tiefliegende p-n-Übergang 27050 zumindest teilweise zwischen einer tiefliegenden n-Schicht NBL (27022) als Kathode 26132 und einer sich unmittelbar an die tiefliegende n-Schicht NBL (27022) anschließenden tiefliegenden p-Schicht PBL (27032) ausgebildet ist, das Absorptions-gebiet 47/28010 sich unmittelbar an die tiefliegende p-Schicht PBL (27032) anschließt und im Wesentlichen als p-Gebiet (optional ein intrinsisches Gebiet umfassend) ausgebildet ist, und eine als p+-Gebiet ausgebildete Anode 26134 sich unmittelbar an das Absorptionsgebiet 47/28010 anschließt. It is preferred that the deep p-n junction 27050 is formed at least partially between a deep n-layer NBL (27022) as a cathode 26132 and a deep p-layer PBL (27032) directly adjoining the deep n-layer NBL (27022), the absorption region 47/28010 directly adjoins the deep p-layer PBL (27032) and is formed essentially as a p-region (optionally comprising an intrinsic region), and an anode 26134 formed as a p+ region directly adjoins the absorption region 47/28010.
Im gezeigten Ausführungsbeispiel sind die jeweiligen Anoden 26124 und 26134 der Photonenquelle 54 und des Einzelphotonendetektors 55 zusammengelegt. Diese können dann beispielsweise über eine gemeinsame zweite Metallisierung 142, 53 an der Oberfläche S des BCD-Substrats 27110 elektrisch kontaktiert werden. Durch eine gemeinsame und durchgehende Metallisierung 142, 53 (hier beispielhaft eine zweite Metallisierung) kann auch eine Abschattung zur Abschirmung des gesamten Bauraums darunter gegenüber Einstrahlungen elektromagnetischer Wellen von Oben her erreicht werden. Die zugehörigen Kathoden 26122 und 26132 sind beispielhaft jeweils einzeln ausgeführt und können über eine erste zugehörige erste Metallisierung 141 elektrisch kontaktiert werden. Die vorschlagsgemäße vertikale Entropiequelle 401 kann als kreisförmige Struktur ausgebildet sein (entspricht einer räumlichen Rotation der gezeigten Darstellungsebene um eine gedachte zentrale Achse in vertikaler Richtung). Es sind jedoch auch andere Ausbildungen der gezeigten Struktur möglich. Figur 29 In the exemplary embodiment shown, the respective anodes 26124 and 26134 of the photon source 54 and the single photon detector 55 are combined. These can then be electrically contacted, for example, via a common second metallization 142, 53 on the surface S of the BCD substrate 27110. A common and continuous metallization 142, 53 (here, for example, a second metallization) can also be used to achieve shading to shield the entire installation space below against electromagnetic wave radiation from above. The associated cathodes 26122 and 26132 are each designed individually, for example, and can be electrically contacted via a first associated first metallization 141. The proposed vertical entropy source 401 can be designed as a circular structure (corresponds to a spatial rotation of the representation plane shown around an imaginary central axis in the vertical direction). However, other designs of the structure shown are also possible. Figure 29
Figur 29 zeigt eine schematische Darstellung einer beispielhaften zweiten Ausführungsform eine erfindungsgemäßen Entropiequelle 401. Die gezeigte Ausführungsform entspricht weitgehend der in der FIG. 28 gezeigten ersten Ausführungsform. Die Bezugszeichen und deren jeweilige Zuordnung zu einzelnen Merkmalen gelten daher entsprechend. Im Vergleich zur FIG. 28 wurde die Hochvolt-p- Wanne 28010 jedoch strukturell durch eine verjüngte Hochvolt-p-Wanne 28010 und ein schwach n- dotiertes bzw. intrinsisches epitaktisches Gebiet 29010 ersetzt. Dabei bildet die Hochvolt-p-Wanne 28010 des Absorptionsgebiets 47/28010 lediglich einen engen Kanal zwischen der auch in FIG. 2 gezeigten obenliegenden p-Wanne 47 und der tiefliegenden p-Schicht PBL des tiefliegende p-n- Übergang 27050 aus. Die Umgebung des Kanals wird durch das schwach n-dotiertes bzw. intrinsische epitaktische Gebiet 29010 definiert. Durch den Kanal kann wird der tiefliegenden p-n-Übergang 27050 ohne einem zusätzlichen Durchgriff/Punch durch das schwach n-dotierte bzw. intrinsisches epitaktisches Gebiet 29010 von der Anode her angeschlossen. Figure 29 shows a schematic representation of an exemplary second embodiment of an entropy source 401 according to the invention. The embodiment shown largely corresponds to the first embodiment shown in FIG. 28. The reference numerals and their respective assignment to individual features therefore apply accordingly. In comparison to FIG. 28, however, the high-voltage p-well 28010 has been structurally replaced by a tapered high-voltage p-well 28010 and a weakly n-doped or intrinsic epitaxial region 29010. The high-voltage p-well 28010 of the absorption region 47/28010 merely forms a narrow channel between the upper p-well 47, also shown in FIG. 2, and the deep p-layer PBL of the deep p-n junction 27050. The area around the channel is defined by the weakly n-doped or intrinsic epitaxial region 29010. The channel allows the deep p-n junction 27050 to be connected from the anode without an additional punch through the weakly n-doped or intrinsic epitaxial region 29010.
Figur 30 Figure 30
Figur 30 zeigt eine schematische Darstellung einer beispielhaften dritten Ausführungsform einer erfindungsgemäßen Entropiequelle 401. Die gezeigte Ausführungsform entspricht weitgehend der in der FIG. 29 gezeigten Ausführungsform. Die Bezugszeichen und deren jeweilige Zuordnung zu einzelnen Merkmalen gelten daher entsprechend. Im Vergleich zur Figur 29 wurde auf die kanalförmig ausgebildete Hochvolt-p-Wanne 28010 im Absorptionsgebiet 47/28010 verzichtet und das schwach n-dotierte bzw. intrinsische epitaktische Gebiet 29010 erstreckt sich über den gesamten unteren Bereich. Insofern wurde im Vergleich zur Figur 28 die Hochvolt-p-Wanne 28010 strukturell durch ein schwach n-dotierte bzw. intrinsisches epitaktisches Gebiet 29010 ersetzt. Der tiefliegende p-n-Übergang 27050 wird somit erst nach einem zusätzlichen Durchgriff/Punch durch das schwach n- dotierte bzw. intrinsisches epitaktisches Gebiet 29010 von der Anode her angeschlossen, was eine Entkopplung von möglicherweise mehreren nebeneinander parallel angeordneten Zellen bewirkt.Figure 30 shows a schematic representation of an exemplary third embodiment of an entropy source 401 according to the invention. The embodiment shown largely corresponds to the embodiment shown in FIG. 29. The reference numerals and their respective assignment to individual features therefore apply accordingly. In comparison to Figure 29, the channel-shaped high-voltage p-tub 28010 in the absorption region 47/28010 was omitted and the weakly n-doped or intrinsic epitaxial region 29010 extends over the entire lower region. In this respect, in comparison to Figure 28, the high-voltage p-tub 28010 was structurally replaced by a weakly n-doped or intrinsic epitaxial region 29010. The deep p-n junction 27050 is thus only connected after an additional punch through the weakly n-doped or intrinsic epitaxial region 29010 from the anode, which results in a decoupling of possibly several cells arranged next to one another in parallel.
Figur 31 Figure 31
Figur 31 zeigt eine graphische Darstellung der Abhängigkeit des SPAD-Stroms in Abhängigkeit von der Zener-Sperrspannung bei verschiedenen SPAD-Sperrspannungen (kleiner, gleich, größer der Durchbruchspannung) innerhalb einer erfindungsgemäßen Entropiequelle 401. Die gezeigte Abhängigkeit zeigt dabei deutlich, dass der SPAD-Strom mit der Zener-Sperrspannung im Bereich von 5,6 V bis 6,6 V exponentiell ansteigt. Dies gilt für alle Betriebsmodi der zweiten SPAD 55, d. h. unterhalb dessen eigener Durchbruchspannung (< VBD, linearer Bereich), nahe der Durchbruchspannung (~ VBD, Avalanche-Bereich) sowie auch oberhalb der Durchbruch-spannung (> VBD) und somit auch im Geiger-Betrieb. Figur 32 Figure 31 shows a graphical representation of the dependence of the SPAD current on the Zener blocking voltage at different SPAD blocking voltages (less than, equal to, greater than the breakdown voltage) within an entropy source 401 according to the invention. The dependence shown clearly shows that the SPAD current increases exponentially with the Zener blocking voltage in the range from 5.6 V to 6.6 V. This applies to all operating modes of the second SPAD 55, ie below its own breakdown voltage (< VBD, linear range), close to the breakdown voltage (~ VBD, avalanche range) as well as above the breakdown voltage (> VBD) and thus also in Geiger operation. Figure 32
Figur 32 zeigt eine graphische Darstellung der Abhängigkeit des Verhältnisses zwischen SPAD-Strom und Zener-Strom in Abhängigkeit von der Zener-Sperrspannung bei verschiedenen SPAD- Sperrspannungen (kleiner, gleich, größer der Durchbruchspannung) innerhalb einer erfindungsgemäßen Entropiequelle 401. Der gezeigte untere Kurvenverlauf (< VBD) zeigt, dass das gemessene Strom-verhältnis zwischen dem SPAD-Strom und dem Zener-Strom für verschiedene Zener-Sperrspannungen im Bereich 5,8 bis 6,6 V etwa 1:4000 beträgt. Im Bereich der Durchbruchspannung (~ VBD) der zweiten SPAD-Diode 55 steigt das Verhältnis auf Werte um 1:10. Dies ist im sog. Multiplikationsfaktor der SPAD-Diode 55 begründet, welcher im Bereich der Durchbruchspannung den linearen Bereich verlässt. Der obere Kurvenverlauf gibt schließlich das entsprechende Verhältnis bei der oberhalb der zugehörigen Durchbruchspannung (> VBD) betriebenen zweiten SPAD-Diode 55 an (etwa 1:1). Dies bedeutet, dass bei einer oberhalb der zugehörigen Durchbruchspannung (> VBD) betriebenen zweiten SPAD-Diode 55 der erzeugte Fotostrom und der Zener-Strom der Zener-avLED (als Photonenquelle 55) in etwa gleich groß sind und ein deutliches Messsignal mittels der Kopplung von Photonen auf der zweiten SPAD 55 gemessen werden kann. Figure 32 shows a graphical representation of the dependence of the ratio between SPAD current and Zener current as a function of the Zener blocking voltage at various SPAD blocking voltages (less than, equal to, greater than the breakdown voltage) within an entropy source 401 according to the invention. The lower curve shown (< VBD) shows that the measured current ratio between the SPAD current and the Zener current for various Zener blocking voltages in the range 5.8 to 6.6 V is approximately 1:4000. In the breakdown voltage range (~ VBD) of the second SPAD diode 55, the ratio increases to values of around 1:10. This is due to the so-called multiplication factor of the SPAD diode 55, which leaves the linear range in the breakdown voltage range. The upper curve finally indicates the corresponding ratio for the second SPAD diode 55 operated above the associated breakdown voltage (> VBD) (approximately 1:1). This means that when a second SPAD diode 55 is operated above the associated breakdown voltage (> VBD), the generated photocurrent and the Zener current of the Zener avLED (as photon source 55) are approximately equal and a clear measurement signal can be measured by means of the coupling of photons on the second SPAD 55.
Bezugszeichenliste List of reference symbols
Numerische Bezugszeichen Numerical reference symbols
Bezugszeichen von 0 bis 1000 Reference numbers from 0 to 1000
2 integrierte Schaltkreis, beispielsweise eines Mikrocontrollers; 2 integrated circuit, for example a microcontroller;
3 Anschluss; 3 connection;
4 Steuervorrichtung. Bevorzugt handelt es sich bei der Steuervorrichtung 4 um einen Teil eines mikroelektronischen Schaltkreises; 4 Control device. Preferably, the control device 4 is part of a microelectronic circuit;
6 nichtflüchtigen Speicher, internes und/oder externes EEPROM und/oder über eine Datenschnittstelle externer nichtflüchtiger Speicher; 6 non-volatile memory, internal and/or external EEPROM and/or external non-volatile memory via a data interface;
8 Random Access Memory und/oder über eine Datenschnittstelle erreichbarer externer Schreib/Lese-Speicher; 8 Random access memory and/or external read/write memory accessible via a data interface;
10-1 erster Prozessor 10-1; 10-1 first processor 10-1;
10-2 zweiter Prozessor 10-2; 10-2 second processor 10-2;
11 Verkettung 11; 11 concatenation 11;
12 JATG-Test-Schnittstelle mit JTAG-Test-Controller 12 und mit JTAG Testanschlüssen (TDI, TDO, TCK, TM); 12 JATG test interface with JTAG test controller 12 and with JTAG test connectors (TDI, TDO, TCK, TM);
14 eng gekoppelter Speicher TCM 14; 14 tightly coupled memory TCM 14;
15 Startadresse 15 des Boot ROMs 16; 15 Start address 15 of the boot ROM 16;
16 nicht flüchtiger Boot-Speicher (Boot-ROM) 16; 16 non-volatile boot memory (boot ROM) 16;
18 Hashing-Engine 18 (Vorrichtung zur Erzeugung eines Hashs aus Daten, die sie durch einen Prozessor (10-1, 10-2) über den Datenbus 419 erhält.); 18 Hashing engine 18 (device for generating a hash from data received from a processor (10-1, 10-2) via the data bus 419.);
20 erster nur einmal programmierbarer-Speicher (OTP) (erster One-Time-20 first one-time programmable memory (OTP) (first one-time
Programmable-Speicher) (OTP) 20 ; Programmable Memory (OTP) 20 ;
22 zweiter nur einmal programmierbarer-Speicher (OTP) 22 (zweiter One-Time-22 second one-time programmable memory (OTP) 22 (second one-time
Programmable-Speicher (OTP)); Programmable memory (OTP));
24 Schaltung 24 zur Deaktivierung von Tests, Deaktivierungsschaltung; 24 Circuit 24 for deactivating tests, deactivation circuit;
26 kontrolliertes System 26 (z.B. gesteuerte Anlage, Regelstrecke); 26 controlled system 26 (e.g. controlled plant, controlled system);
28 Quantenzufallszahlengenerator 28; 28 quantum random number generator 28;
30 weiterer interner nicht flüchtiger Speicher 30 und/oder weiterer über eine30 additional internal non-volatile memory 30 and/or additional via a
Datenschnittstelle erreichbarer externer nicht flüchtiger Speicher; Data interface accessible external non-volatile memory;
32 Schnittstelle 32 zu einem kontrollierten System 26; 32 Interface 32 to a controlled system 26;
40 Beispielhafte erste SPAD-Diode 40 für den Einsatz als Sensorelement eines 40 Example first SPAD diode 40 for use as a sensor element of a
Einzelphotonendetektors; 41 Isolation, beispielsweise Shallow-Trench-Isolation STI 41 der beispielhaften SPAD-Diode 40 oder LOCOS-lsolation; single photon detector; 41 Isolation, for example shallow trench isolation STI 41 of the exemplary SPAD diode 40 or LOCOS isolation;
42 Anodenkontakt 42 der beispielhaften SPAD-Diode 40; 42 Anode contact 42 of the exemplary SPAD diode 40;
43 Kathodenkontakt 43 der beispielhaften SPAD-Diode 40. Der Kathodenkontakt43 Cathode contact 43 of the exemplary SPAD diode 40. The cathode contact
43 der beispielhaften SPAD-Diode 40 ist bevorzugt aus Indium-Zinn-Oxid (ITO) oder einem anderen transparenten und elektrisch leitendem Material gefertigt; 43 of the exemplary SPAD diode 40 is preferably made of indium tin oxide (ITO) or another transparent and electrically conductive material;
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 Abdeckoxid44 Optical fiber 44 for transporting the photons from the first SPAD diode 54 to the second SPAD diode 55. The optical fiber 44 is made of a covering oxide
44 oder optisch transparente Isolierschicht 44 der beispielhaften SPAD-Diode 40 gefertigt; 44 or optically transparent insulating layer 44 of the exemplary SPAD diode 40;
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 54 handeln; 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 54;
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 ersten SPAD-Diode 40 handeln; 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 first SPAD diode 40;
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 49 handeln. Es kann sich um einen Teil einer SPAD-Diode 40 handeln, die als Photonenquelle 54 oder Photonendetektor 55 in einer horizontalen Entropiequelle 401 eingesetzt wird.. In den Beispielen der Figuren 28 bis 30 handelt es sich um eine p-Wanne der Zener-Diode, die als Photonenquelle 54 der vertikalen Entropiequelle 401 dient; 47 second doped well 47 of a second conduction type. In a CMOS technology with a p-doped wafer material, it can be, for example, a p-doped region in the semiconducting substrate material 49. It can be part of a SPAD diode 40, which is used as a photon source 54 or photon detector 55 in a horizontal entropy source 401. In the examples of Figures 28 to 30, it is a p-well of the Zener diode, which serves as a photon source 54 of the vertical entropy source 401;
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; 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 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); 49 Base material 49 and/or semiconductor 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-crystalline semiconductor wafer or a p-doped single-crystalline semiconductor wafer piece (die);
50 zweite dotierte Wanne eines zweiten Leitungstyps (also bei einem p-dotierten Substrat um ein p dotiertes Gebiet) unterhalb des Anodenkontakts. In einer CMOS-Technologie mit einem p-dotiertem Wafer-Material kann es sich beispielswe5ise um ein p-dotiertes Gebiet im halbleitenden Substratmaterial der SPAD-Diode 40 handeln; 50 second doped well of a second conduction type (i.e., in the case of a p-doped substrate, a p-doped region) below the anode contact. In a CMOS technology with a p-doped wafer material, this can, for example, be a p-doped region in the semiconducting substrate material of the SPAD diode 40;
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; 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, for example, be a p+-doped region in the semiconducting substrate material of the SPAD diode 40;
52 Isolation, beispielsweise ein Oxid oder dergleichen; 52 Insulation, for example an oxide or the like;
53 Metallabdeckung des Lichtwellenleiters 44; 53 Metal cover of the optical fiber 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; 54 First SPAD diode. The first SPAD diode 55 serves at least temporarily as a light source for irradiating the second SPAD diode 45 with photons from the first 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. 55 Second SPAD diode 55. The second SPAD diode 55 serves, for example, at least temporarily as a photodetector for the light from the first SPAD diode 54.
56 Oberfläche 56 des Wafers im Sinne der hier vorgelegten Schrift; 56 Surface 56 of the wafer within the meaning of the document presented here;
57 vertikal nach oben (bzw. unten in Figuren 28 bis 30) in senkrechter Richtung zur Oberfläche 56 emittiertes Licht 57 der ersten SPAD-Diode 54; 57 light 57 of the first SPAD diode 54 emitted vertically upwards (or downwards in Figures 28 to 30) in a direction perpendicular to the surface 56;
58 horizontal im Lichtwellenleiter 44 transportiertes Licht 58, das ein Teil des vertikal von der ersten SPAD-Diode 54 in den Lichtwellenleiter 44 eingestrahlten Lichts 57 ist; 58 light 58 transported horizontally in the optical waveguide 44, which is a part of the light 57 radiated vertically by the first SPAD diode 54 into the optical waveguide 44;
59 vertikal nach unten in senkrechter Richtung zur Oberfläche 56 aus dem Lichtwellenleiter 44 in die zweite SPAD-Diode 55 eingestrahltes Licht 59 der ersten SPAD-Diode 54, das von der ersten SPAD-Diode 54 als senkrechtes Licht 57 in den Lichtwellenleiter 44 hinein emittiert wurde und dann vom Lichtwellenleiter 44 horizontal zur zweiten SPAD-Diode 55 transportiert wurde;59 light 59 of the first SPAD diode 54 radiated vertically downwards in a direction perpendicular to the surface 56 from the optical waveguide 44 into the second SPAD diode 55, which was emitted by the first SPAD diode 54 as perpendicular light 57 into the optical waveguide 44 and was then transported horizontally by the optical waveguide 44 to the second SPAD diode 55;
61 Datensätze; 61 records;
62 digitale Signatur; 62 digital signature;
63 Schnittstelle; 63 interface;
64 Datenbusschnittstelle; 65 externer Datenbus. Der externe Datenbus kann im Sinne der hier vorgelegten Schrift eine drahtgebundene Datenverbindung oder eine drahtlose Datenverbindung sein; 64 data bus interface; 65 external data bus. The external data bus can be a wired data connection or a wireless data connection within the meaning of the document presented here;
81 Schnittstelle 81; 81 interface 81;
82 Bus-Arbiter 82; 82 Bus Arbiter 82;
83 Reset-Schaltung 83; 83 Reset circuit 83;
84 analoge Eingangsverarbeitung 84; 84 analog input processing 84;
85 Analog-zu-Digital-Wandler 85; 85 Analog-to-digital converter 85;
86 digitale Signalverarbeitung 86; 86 digital signal processing 86;
87 Digital-zu-Analog-Wandler 87 87 Digital-to-analog converter 87
88 analoge Ausgangsverarbeitung 88; 88 analog output processing 88;
89 ein oder mehrere externe analoge Signale 89; 89 one or more external analog signals 89;
90 analoge Ausgangssignale 90; 90 analog output signals 90;
91 Spannungswandler 91; 91 Voltage converter 91;
92 Taktgenerator 92. Der Taktgenerator 92 erzeugt vorzugsweise den Systemtakt 2106. Vorzugsweise überwacht der Watchdog 404.5 den 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; 92 Clock generator 92. The clock generator 92 preferably generates the system clock 2106. Preferably, the watchdog 404.5 monitors the system clock 2106 for too low or too high speed and for clock jitter. If the system clock 2106 of the clock generator 92 shows a clock jitter, the watchdog 404.5 reports an error to the processor 10-1 via the data bus 419 or via the interrupt line 420;
140 Kontakt; 140 contact;
141 Metall 1 Leitungen; 141 Metal 1 cables;
142 Metall 2 Leitungen / Metall 2 Deckel; 142 Metal 2 lines / Metal 2 covers;
241 Gatter 241 gates
242 Gatter 242 gates
301 Schnittstelle 301 Interface
401 Entropie-Quelle 401; 401 Entropy Source 401;
402 Hochfrequenzverstärker 402; 402 High frequency amplifier 402;
403 Analog-Digital-Converter (ADC) 403; 403 Analog-to-digital converter (ADC) 403;
404 Auswerteschaltung 404; 404 Evaluation circuit 404;
404.1 Konstante 404.1; 404.1 Constant 404.1;
404.2 Komparator 404.2; 404.2 Comparator 404.2;
404.3 Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC); 404.3 Time-to-Pseudo-Random Number Converter 404.3 (TPRC);
404.4 Entropie-Extraktions-Vorrichtung 404.4; 404.4 Entropy Extraction Device 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.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.7; 404.7 Signal multiplexer 404.7;
404.8 Finite State Machine (endlichen Automaten); 404.8 Finite State Machine;
404.9 RAM oder FIFO; 404.9 RAM or FIFO;
404.10 Finish Flag; 404.10 Finish Flag;
404.11 Prozessor 10-1, 10-2; 404.11 Processor 10-1, 10-2;
405 Spannungssignal der Entropie Quelle 401; 405 Voltage signal of entropy source 401;
406 Verstärkerausgangssignal 406 des Hochfrequenzverstärkers 402; 406 Amplifier output signal 406 of the high frequency amplifier 402;
407 Ausgangssignal 407 des Analog-zu-Digital-Wandlers 403. des digitaler Bit Wert 407 des Analog-zu-Digital-Wandlers 403. Andere Bitbreiten als 1 Bit sind denkbar; 407 Output signal 407 of the analog-to-digital converter 403. of the digital bit value 407 of the analog-to-digital converter 403. Bit widths other than 1 bit are conceivable;
408 Signal der Konstanten 404.1; 408 Signal of constant 404.1;
409 Ausgangssignal 409 des Komparators 404.2; 409 Output signal 409 of comparator 404.2;
410 Ausgang 410 des Zeit-zu-Pseudozufallszahlen-Wandler 404.3 (TPRC); 410 Output 410 of the time-to-pseudo-random number converter 404.3 (TPRC);
411 Ausgang der Entropie Extraktion 404.4; 411 Output of entropy extraction 404.4;
412 Seed S; 412 Seed S;
413 Spannungsmonitor; 413 Voltage monitor;
414 Signalleitungen; 414 signal lines;
415 einsynchronisiertes Spannungssignal 415. Das einsynchronisierte415 synchronized voltage signal 415. The synchronized
Spannungssignal 415 erzeugt die Pulsverlängerungsschaltung 2023 (MF) aus dem Ausgangsignal 407 des Analog-zu-Digital-Wandlers 403 in Abhängigkeit vom Systemtakt 2106; Voltage signal 415 is generated by the pulse extension circuit 2023 (MF) from the output signal 407 of the analog-to-digital converter 403 in dependence on the system clock 2106;
416 Selektionssignal; 416 selection signal;
417 Pseudozufallssignalleitung; 417 Pseudorandom signal line;
418 Quantenzufallsdatenwörter; 418 quantum random data words;
419 interner Datenbus 419 des Quantenzufallszahlengenerators 28. Bevorzugt handelt es sich um den internen Datenbus der Steuervorrichtung 4; 419 internal data bus 419 of the quantum random number generator 28. Preferably, this is the internal data bus of the control device 4;
420 Interrupt Signal 420 des Watchdogs 404.5 des Quantenzufallszahlengenerators 28 bzw. der Steuervorrichtung 4; 420 Interrupt signal 420 of the watchdog 404.5 of the quantum random number generator 28 or the control device 4;
500 Flussdiagramm 500 des Entropie Extraktionsverfahrens; 500 Flowchart 500 of the entropy extraction process;
501 erster Schritt 501 mit Ermittlung des ersten Werts des Ausgangs 410 des Zeit- zu-Pseudozufallszahlen-Wandlers 404.3 und des zweiten Werts des Ausgangs 410 des Zeit-zu- Pseudozufallszahlen -Wandlers 404.3 und Speicherung in einem Schieberegister der Entropie Extraktion 404.4; 501 first step 501 with determination of the first value of the output 410 of the time-to-pseudo-random number converter 404.3 and the second value of the output 410 of the time-to-pseudorandom number converter 404.3 and storage in a shift register of the entropy extraction 404.4;
502 zweiter Schritt des Vergleichens des ersten Werts mit dem zweiten Wert;502 second step of comparing the first value with the second value;
503 dritter Schritt der Bewertung des ersten Werts und des zweiten Werts und der Erzeugung des Quantenzufallsbits 411; 503 third step of evaluating the first value and the second value and generating the quantum random bit 411;
601 erste Spikes; 601 first spikes;
602 zweite Spikes; 602 second spikes;
603 Schneidepegel; 603 cutting level;
Bezugszeichen von 1001 bis 2999 Reference numbers from 1001 to 2999
2021 überwachte interne Spannungen 2021; 2021 monitored internal tensions 2021;
2022 Leitung 2022 zur Verhinderung der Nutzung eines Quantenzufallsbits 411 durch die Finite State Maschine (endlicher Automat) 404.8; 2022 Line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8;
2023 Pulsverlängerungsschaltung 2023, typischerweise in Form eines Monoflops MF. Das Monoflop MF verlängert einen Puls auf der Leitung des digitalen Bit Wert 407 des Analog-zu-Digital-Wandlers 403 auf eine Zeitliche Länge von mindestens einer Taktperiode des Systemtakts 2106; 2023 Pulse extension circuit 2023, typically in the form of a monoflop MF. The monoflop MF extends a pulse on the line of the digital bit value 407 of the analog-to-digital converter 403 to a temporal length of at least one clock period of the system clock 2106;
2101 Schieberegisterbus 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC); 2101 Shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC);
2102 Rückkoppelmultiplexer 2102 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC); 2102 Feedback multiplexer 2102 of the time-to-pseudo-random number converter 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) über den internen Datenbus 419 mittels eines Parallel zur seriell Schieberegistermodus-Umschaltleitung 2107 die n Schieberegisterbits (SBi bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den parallelen Schieberegisterbetriebsmodus um, sodass die Schieberegisterbits (SBi 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) über den internen Datenbus 419 mittels einer mittels eines Parallel zur seriell Schieberegistermodus-Umschaltleitung 2107 die n Schieberegisterbits (SBi bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den seriellen Schieberegisterbetriebsmodus um, sodass das erste Schieberegisterbit SBi der n Schieberegisterbits (SBi 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 (SBi bis SBn) des Schieberegisters den jeweiligen logischen Wert ihres Vorgänger-Schieberegisterbits SBy-i; mit dem nächsten Takt des Systemtakts 2106 übernehmen. 2103 Shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC). The shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) switches the n shift register bits (SBi to SB n ) from the serial shift register operating mode to the parallel shift register operating mode via the internal data bus 419 by means of a parallel to serial shift register mode switching line 2107, for example at the instigation of a processor (10-1, 10-2), so that the shift register bits (SBi to SB n ) of the shift register use the current logic value of the TPRG 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. The shift 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 the internal data bus 419 by means of a parallel to serial shift register mode switching line 2107, the n shift register bits (SBi to SB n ) from the serial shift register operating mode to the serial shift register operating mode, so that the first shift register bit SBi of the n shift register bits (SBi to SB n ) take over the current logical value of the shift register reload value line 2104 of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106 and the other shift register bits SBj of the shift register bits (SBi to SB n ) of the shift register take over the respective logical value of their predecessor shift register bit SBy-i; with the next clock of the system clock 2106.
Einer oder mehrere Prozessoren (10-1, 10-2) können über den internen Datenbus 419 ein oder mehrere Register des Schieberegistercontrollers 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) schreiben und/oder lesen. One or more processors (10-1, 10-2) can write and/or read one or more registers of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via the internal data bus 419.
Bevorzugt können die Prozessoren (10-1, 10-2) über den internen Datenbus 419 ein oder mehrere Register des Schieberegistercontroller 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 im OPT II Speicher 22 mittels der Deaktivierungsschaltung 24 blockiert sein. Preferably, the processors (10-1, 10-2) can write one or more registers of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) via the internal data bus 419 and thus determine the logical value of the TPRG 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 possibly be blocked by an access code in the OPT II memory 22 by means of the deactivation circuit 24.
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 des Schieberegistercontrollers 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 SBi bis SBn detektiert, meldet sie dieses an den 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 SBi 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 vordefiniertenPreferably, however, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) generates the logical value of the TPRG data bus 2110 of the time-to-pseudorandom number converter 404.3 (TPRC) from the data stream of the quantum random bits 411 in a special internal register of the shift register controller 2103 of the time-to-pseudorandom 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 the detection circuit 2113 detects an illegal value of the state vector of the n shift register bits SBi to SB n , it reports this to the shift 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 SBi to SB n to a predetermined value, for example the seed value of the current value of the TPRG data bus 2110 of the time-to-pseudo-random number converter 404.3 (TPRC) or another predefined
Wert. Der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) aktiviert oder deaktiviert vorzugsweise über den Schieberegisterbitaktivierungsbus 2109 die Datenübernahme der n Schieberegisterbits (SBi bis SBn) bei der nächsten Taktflanke der verwendeten Taktflankenrichtung typischerweise bitselektiv. Value. The shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) activates or deactivates, preferably via the shift register bit activation bus 2109, the data transfer of the n shift register bits (SBi to SB n ) at the next clock edge of the clock edge direction used, typically bit-selectively.
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 des Schieberegistercontrollers 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. Preferably, however, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) generates the logical reload value of the feedback polynomial selection register 2112 from the data stream of the quantum random bits 411 in a special internal register of the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) and loads this reload value into the feedback polynomial selection register 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.8 solche Quantenbits 411 nutzt, die der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bereits benutzt hat; By means of a line 2022 for preventing the use of a quantum random bit 411 by the finite state machine 404.8, the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) preferably prevents the finite state machine 404.8 from using those quantum bits 411 that the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) has already used;
2104 Schieberegisternachladewertleitung 2104 des Zeit-zu-Pseudozufallszahl- Wandlers 404.3 (TPRC), die den nächsten seriellen Nachladewert für das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) bei Auswahl eines Rückkoppelnetzwerks der m Rückkoppelnetzwerke (RKNi 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 SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) geladen wird; 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 SBi of the time-to-pseudo-random number converter 404.3 (TPRC) when one of the m feedback networks (RKNi to RKN m ) of the time-to-pseudo-random number converter 404.3 (TPRC) is selected by the feedback multiplexer 2102 and when the serial shift mode is set by the shift register controller 2103 as n, which is loaded into the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106;
2105 Schwellwert 2105; 2105 Threshold 2105;
2106 Systemtakt 2106 des Quantenzufallszahlengenerators 28 und des Zeit-zu- Pseudozufallszahl-Wandlers 404.3 (TPRC) des Quantenzufallszahlengenerators 28; 2106 System clock 2106 of the quantum random number generator 28 and the time-to-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28;
2107 Parallel-zu-Seriell-Schieberegistermodus-Umschaltleitung 2107, die die n Schieberegisterbits (SBi bis SBn) vom seriellen Schieberegisterbetriebsmodus auf den parallelen Schieberegisterbetriebsmodus in Abhängigkeit von ihrem logischen Wert umstellen kann; 2107 Parallel to serial shift register mode switching line 2107, which switches the n shift register bits (SBi to SB n ) from the serial shift register operation mode can switch to the parallel shift register operating mode depending on its logic value;
2109 Schieberegisterbitaktivierungsbus 2109 mit typischerweise n Schieberegisterbitaktivierungsleitungen der jeweils zugehörigen n Schieberegisterbits (SBi bis SBn) zur jeweiligen, vorzugsweise bitselektiven Aktivierung der Datenübernahme der n Schieberegisterbits (SBi 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 (SBi bis SBn) durch eine oder mehrere Parallel-zu-Seriell-Schieberegistermodus- Umschaltleitungen 2107 des Schieberegistercontrollers 2103 des Zeit-zu- Pseudozufallszahl-Wandlers 404.3 (TPRC) festgelegt wird; 2109 Shift register bit activation bus 2109 with typically n shift register bit activation lines of the respectively associated n shift register bits (SBi to SB n ) for the respective, preferably bit-selective activation of the data transfer of the n shift register bits (SBi 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 (SBi to SB n ) by one or more parallel-to-serial shift register mode switching lines 2107 of the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC);
2110 TPRG-Datenbus 2110 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC), der typischer weise je Schieberegisterbit der Schieberegisterbits (SBI 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 (SBI bis SBn) lädt;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 (SBI to SB n ) of the time-to-pseudo-random number converter 404.3 (TPRC), the logical content of which represents one bit of the TPRG data bus 2110. These bits of the TPRG data bus 2110 of the time-to-pseudorandom number converter 404.3 (TPRC) typically form the starting value (seed) of the time-to-pseudorandom number converter 404.3 (TPRC), which the shift register controller 2103 of the time-to-pseudorandom number converter 404.3 (TPRC) loads into the shift register cells of the shift register bits (SBI to SB n ) via the internal data bus 1901 on the command of a processor (10-1, 10-2);
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 des Rü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 (RKNi bis RKNm) aus. Vorzugsweise ändert der Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) den Wert des Steuerregisters 2111 des Rückkoppelmultiplexers 2102 nur dann, wenn ein Quantenzufallsbit 411 erfolgreich erzeugt wurde oder wenn Schieberegistercontroller 2103 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) mindestens einen Startpuls für den 2111 Control register 2111 of the feedback multiplexer 2102 of the time-to-pseudo-random number converter 404.3 (TPRC). Preferably, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) loads the control register 2111 of the feedback 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 (RKNi to RKN m ). Preferably, the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) changes the value of the control register 2111 of the feedback multiplexer 2102 only when a quantum random bit 411 has been successfully generated or when the shift register controller 2103 of the time-to-pseudo-random number converter 404.3 (TPRC) has generated at least one start pulse for the
2112 Rückkoppelpolynom-Auswahlregister 2112; 2113 Detektionsschaltung 2113 zur Detektion eines illegalen Werts des Zustandsvektors der n Schieberegisterbits SBi bis SBn; 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 SBi to SB n ;
2201 erster beispielhafter Puls 2201 der Entropie Quelle 401 auf dem Spannungssignal 405 der Entropie Quelle 401; 2201 first exemplary pulse 2201 of the entropy source 401 on the voltage signal 405 of the entropy source 401;
2202 zweiter beispielhafter Puls 2202 der Entropie Quelle 401 auf dem Spannungssignal 405 der Entropie Quelle 401; 2202 second exemplary pulse 2202 of the entropy source 401 on the voltage signal 405 of the entropy source 401;
2203 dritter beispielhafter Puls 2203 der Entropie Quelle 401 auf dem Spannungssignal 405 der Entropie Quelle 401; 2203 third exemplary pulse 2203 of the entropy source 401 on the voltage signal 405 of the entropy source 401;
2204 vierter beispielhafter Puls 2204 der Entropie Quelle 401 auf dem Spannungssignal 405 der Entropie Quelle 401; 2204 fourth exemplary pulse 2204 of the entropy source 401 on the voltage signal 405 of the entropy source 401;
2211 erster beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem ersten beispielhaften Puls 2201 der Entropie Quelle 401 erzeugt wurde; 2211 first exemplary pulse of the synchronized voltage signal 415 generated from the first exemplary pulse 2201 of the entropy source 401;
2212 zweiter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem zweiten beispielhaften Puls 2202 der Entropie Quelle 401 erzeugt wurde; 2212 second exemplary pulse of the synchronized voltage signal 415 generated from the second exemplary pulse 2202 of the entropy source 401;
2213 dritter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem dritten beispielhaften Puls 2203 der Entropie Quelle 401 erzeugt wurde; 2213 third exemplary pulse of the synchronized voltage signal 415 generated from the third exemplary pulse 2203 of the entropy source 401;
2214 vierter beispielhafter Puls des einsynchronisierten Spannungssignals 415, der aus dem vierten beispielhaften Puls 2204 der Entropie Quelle 401 erzeugt wurde; 2214 fourth exemplary pulse of the synchronized voltage signal 415 generated from the fourth exemplary pulse 2204 of the entropy source 401;
2301 High-Side-Transistor 2301 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411; 2301 High-side transistor 2301 of the first half-bridge of the charge pump for the entropy source 411;
2302 Low-Side-Transistor 2302 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411; 2302 Low-side transistor 2302 of the first half-bridge of the charge pump for the entropy source 411;
2303 zweiter High-Side-Transistor 2303 der zweiten Halbbrücke der Ladungspumpe für die Entropiequelle 411. In dem Beispiel der Figur 23 ist der zweite High- Side-Transistor 2301 der Ladungspumpe für die Entropiequelle 411 als MOS- Diode verschaltet; 2303 second high-side transistor 2303 of the second half-bridge of the charge pump for the entropy source 411. In the example of Figure 23, the second high-side transistor 2301 of the charge pump for the entropy source 411 is connected as a MOS diode;
2305 Transfer-Transistor 2305 der Ladungspumpe für die Entropiequelle 411. In dem Beispiel der Figur 23 ist der Transfer-Transistor 2305 der Ladungspumpe für die Entropiequelle 411 als MOS-Diode verschaltet; 2305 Transfer transistor 2305 of the charge pump for the entropy source 411. In the example of Figure 23, the transfer transistor 2305 of the charge pump for the entropy source 411 is connected as a MOS diode;
2306 erster Energiespeicher, hier in dem Beispiel der Figur 23 ein erster Kondensator 2306; 2307 zweiter Energiespeicher, hier in dem Beispiel der Figur 23 ein zweiter2306 first energy storage, here in the example of Figure 23 a first capacitor 2306; 2307 second energy storage, here in the example of Figure 23 a second
Kondensator 2307; Capacitor 2307;
2311 Steuerkontakt (Gate) 2311 des High-Side-Transistors 2301 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411; 2311 Control contact (gate) 2311 of the high-side transistor 2301 of the first half-bridge of the charge pump for the entropy source 411;
2312 Steuerkontakt (Gate) 2311 des Low-Side-Transistors 2302 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411; 2312 Control contact (gate) 2311 of the low-side transistor 2302 of the first half-bridge of the charge pump for the entropy source 411;
2313 Steuerkontakt (Gate) 2311 des zweiten High-Side-Transistors 2303 der Ladungspumpe für die Entropiequelle 411; 2313 Control contact (gate) 2311 of the second high-side transistor 2303 of the charge pump for the entropy source 411;
2320 Ausgangsknoten 2320 der ersten Halbbrücke der Ladungspumpe für die Entropiequelle 411; 2320 Output node 2320 of the first half bridge of the charge pump for the entropy source 411;
2321 Ausgangsknoten 2321 der Ladungspumpe für die Entropiequelle 411; 2321 Output node 2321 of the charge pump for the entropy source 411;
2330 Steuervorrichtung 2330 des Spannungswandlers 91 zur Versorgung der2330 Control device 2330 of the voltage converter 91 for supplying the
Entropiequelle 411 mit einer ausreichenden Betriebsspannung der Versorgungsspannungsleitung VENT der Entropiequelle 411 gegenüber der Bezugspotenzialleitung GND auf dem Bezugspotenzial. Entropy source 411 with a sufficient operating voltage of the supply voltage line VENT of the entropy source 411 relative to the reference potential line GND at the reference potential.
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; 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 a microintegrated circuit 2;
2402 Anschluss-Pads (Anschlussfläche) einer Leitung des mikrointegrierten Schaltkreises 2; 2402 connection pads (connection area) of a line of the micro-integrated circuit 2;
2403 Pad-Rahmen des mikrointegrierten Schaltkreises 2; 2403 micro-integrated circuit pad frame 2;
2404 Verdrahtungsbereich des mikrointegrierten Schaltkreises 2; 2404 Wiring area of micro-integrated circuit 2;
2405 innerer Bereich des mikrointegrierten Schaltkreises 2; 2405 inner area of the microintegrated circuit 2;
Bezugszeichen von 3000 bis 3999 Reference numbers from 3000 to 3999
3000 Erzeugung eines Socket-Descriptors; 3000 Creating a socket descriptor;
3010 Binden des Socket-Descriptors an einen Port und eine IP-Adresse; 3010 Binding the socket descriptor to a port and IP address;
3020 passiver Wartezustand und Warten auf Verbindungsanfragen einer integrierten Schaltung 2, beispielsweise eines Mikrocontrollers, eines Clients;3020 passive wait state and waiting for connection requests from an integrated circuit 2, for example a microcontroller, a client;
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 Q.RNG und eines RSA-Verfahrens. 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 by 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 by means of an RSA method by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server by means of a quantum random number generator 28 Q.RNG and an RSA method.
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; 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 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 3060 Decrypting the message of the private key from step 3040 stored temporarily in a memory of the computer (here the exemplary micro-integrated circuit 2) according to the RSA method
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; 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 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 über den Datenbus 65 und über die Datenschnittstelle 64 des ersten Prozessors 10-1 des Rechners durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers; 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 the data bus 65 and via the data 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 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; 3090 Execution of the function close() and closing the open connection to a socket, here the socket of the client, and terminating the communication with the client by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server;
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; 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 submitting 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 the step 3010, by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client;
3110 Herstellen einer Verbindung zwischen dem Server-Socket aus dem Schritt 3010 und dem Client-Socket aus dem Schritt 3100; 3110 Establishing a connection between the server socket from step 3010 and the client socket from step 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 Q.RNG und eines RSA-Verfahrens. 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 quantum random number generator 28 Q.RNG and an RSA method.
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; 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 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; 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 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; 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 Clients 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 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 DecryptQ 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; 3160 Decryption of 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 DecryptQ 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 subsequent storage of 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 example microintegrated circuit 2) of the client;
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; 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 Erzeugung zweier verschiedener Primzahlen p und q und des Produkts n=p*q und des Ergebnisses der Eulerschen Phi-Funktion phi = (p-l)(q-l) durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers mittels der Funktion KeyExchangeServer(); 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-l)(q-l) 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 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; 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 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; 3220 Calculating the multiplicative inverse of the number e by means of the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the server using the function findD(), such that (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; 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 public key of the client, 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 socket descriptor of the client, 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 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 3200 und 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 aus dem Schritt 3030; 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 steps 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 from step 3030;
3245 Verlassen der Funktion KeyExchangeServer() durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers; 3245 Exit of the function KeyExchangeServer() by the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the server;
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-l)(q-l) jeweils durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Fuktion KexExchangeClient(); 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-l)(q-l), 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 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; 3260 Generate 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 by means of the function setE(), where coprime in the sense of this 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 Berechnen des multiplikativen Inversen zur Zahl e durch den ersten Prozessor3270 Calculating the multiplicative inverse of the number e by the first processor
10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients mittels der Funktion findD(), sodass gilt (e*d)mod phi = 1; 10-1 of the client's computer (here the exemplary micro-integrated circuit 2) using the function findD(), so that (e*d)mod phi = 1;
3280 Versenden der öffentlichen Schlüssels (d,n) des ersten Prozessor 10-1 des3280 Sending the public key (d,n) of the first processor 10-1 of the
Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients aus den Schritten 3250 und 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 aus Schritt 3100, sendet; computer (here the exemplary micro-integrated circuit 2) of the client from steps 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 from step 3100, using the send() function;
3290 Warten auf eine eintreffende Nachricht des ersten Prozessor 10-1 des3290 Waiting for an incoming message from the first processor 10-1 of the
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; 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 of 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 exemplary micro-integrated circuit 2) the client;
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; 3295 Exit of the function KeyExchangeClient() 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 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; 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 microintegrated circuit 2), of which the calling first processor 10-1 is a part;
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; 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 Berechnen des Produkts n= p * q durch den aufrufenden Prozessort 10-1;3330 Calculating the product n= p * q by the calling processor location 10-1;
3340 Berechnen der Euler'schen Phi-Funktion phi = (q-1) * (p-1) durch den aufrufenden Prozessort 10-1; 3340 Calculating Euler's phi function phi = (q-1) * (p-1) by the calling processor location 10-1;
3350 Verlassen der Funktion setPrimes() durch den aufrufenden Prozessor 10-1;3350 Calling processor exits setPrimes() function 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; 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 which 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 using a random number from the quantum random number generator 28 QRNG, a pseudo-random number generator PRNG, or by iterating up an integer number starting with 2. However, generation using the quantum random number generator 18 QRNG is preferred;
3410 Überprüfen, ob die logische Aussage gcd(e,phi) 1= 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; 3410 Check whether the logical statement gcd(e,phi) 1= 1 is satisfied by the calling processor 10-1 and repeat step 3400 by the calling processor 10-1 if the logical statement is fulfilled. 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 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= 1 nicht erfüllt ist;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= 1 is not satisfied;
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; 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 Addieren der Zahl 1 zu der Zahl d durch den aufrufenden Prozessor 10-1;3510 Adding the number 1 to the number d by the calling processor 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; 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 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; 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; 3600 servers;
3610 Client; 3610 Clients;
3620 Versenden des auf einer ersten Quantenzufallszahl des3620 Sending the first quantum random number of the
Quantenzufallszahlgenerators 28 Q.RNG des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600 basierenden ö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 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Servers 3600; Quantum random number generator 28 Q.RNG of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 based public key of the server 3600 via a non-tap-proof channel 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;
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) des Clients 3610 den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 und Erzeugen eines ersten privaten Schlüssels des Clients 3610 und eines ersten öffentlichen Schlüssels des Clients 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) des Clients 3610 und Verschlüsselung dieses ersten öffentlichen Schlüssel des Clients 3610 mittels des öffentlichen Schlüssels des Servers 3600 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610 und Versenden des 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 durch den ersten Prozessor 10-1 des Rechners (hier des beispielhaften mikrointegrierten Schaltkreises 2) des Clients 3610; 3630 Generating a pseudorandom number PZ or another random number by the first processor 10-1 of the computer (here the exemplary microintegrated circuit 2) of the client 3610 and storing the Pseudorandom number PZ or the otherwise generated random number in a memory of the computer (here the exemplary micro-integrated circuit 2) of the client 3610, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 and generating a first private key of the client 3610 and a first public key of the client 3610 using this pseudorandom number PZ or this otherwise generated random number by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 and encrypting this first public key of the client 3610 using the public key of the server 3600 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 3610 and sending the encrypted first public key of the client 3610 to the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 by the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 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. 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 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 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) des Client 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) 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. 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; 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 the client 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 the client 3610 can, for example, by bitwise XORing the encrypted second quantum random number QZ2' with the known Decrypt the random number PZ to the second quantum random number QZ2. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the client 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 the client 3610 now sends its second public key to the server 3600 via the non-tap-proof channel. In doing so, it preferably encrypts this second public key of the client 3610 with the public key of the server 3600. The server 3600 decrypts the encrypted second public key of the client 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 the client 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 3600 generates and sends a new public key based on a new quantum random number of its quantum random number generator 28 QRNG encrypted with the second public key of the client 3610 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 the client 3610. Preferably, the first processor 10-1 of the computer (here the exemplary micro-integrated circuit 2) of the server 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 change the keys permanently. This makes it impossible for a quantum computer to break the keys;
3700 Verfahren zur Erzeugung einer Quantenzufallszahl QZ 418 mit m Quantenzufallsbits 411; 3700 Method for generating a quantum random number QZ 418 with m quantum random bits 411;
3710 Erzeugung eines zufälligen Einzelphotonenstroms (57, 58, 59, 44) mittels einer oder mehrerer Photonenquellen 54 und/oder einer oder mehrerer SiliziumLEDs 54 und/oder einer oder mehrerer erster SPAD-Dioden (54), wobei bevorzugt die Photonenquellen 54 und/oder die Silizium-LEDs 54 und/oder die ersten SPAD-Dioden (54) einstückig in einem gemeinsamen Halbleitersubstrat 49 gefertigt sind; 3710 Generation of a random single photon stream (57, 58, 59, 44) by means of one or more photon sources 54 and/or one or more silicon LEDs 54 and/or one or more first SPAD diodes (54), wherein preferably the photon sources 54 and/or the silicon LEDs 54 and/or the first SPAD diodes (54) are manufactured in one piece in a common semiconductor substrate 49;
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); 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 or more photon detectors 55 and/or one or more second SPAD diodes (55);
3730 Wandlung des zufälligen Einzelphotonenstroms (57, 58, 59, 44) in ein Detektionssignal in Form eines Spannungssignal 405 der 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 die Photonendetektoren 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; 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 the entropy source 401, which preferably comprises photon sources 54 and/or one or more 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 the optical waveguide 44, and the photon detectors 55 and/or the second SPAD 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 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 dieser Schritt 3750 optional und ist daher nur gestrichelt eingezeichnet; 3750 optionally separating the pulses of the conditioned detection signal generated by optical coupling of the emissions of a photon source 54 and/or a silicon LED 54 and/or a first SPAD diode 54 on the one hand and a photon detector 55 and/or a second SPAD 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 a corresponding output signal 409, in particular of the comparator 404.2. If necessary, the analog-to-digital converter 403 can generate the output signal 409 directly if it is a 1-bit analog-to-digital converter 403. In this respect, this step 3750 is optional and is therefore only shown in dashed lines;
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-LED3760 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 consecutive pulses generated by optical coupling of the emissions of a photon source 54 or a silicon LED
54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors54 or a first SPAD diode 54 on the one hand and a photon detector
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; 55 or a second SPAD diode 55 on the other hand, as the first value of the output 410 of the time-to-pseudo-random number converter 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-LED3765 Determination 3760 of a second pseudorandom number depending on a second time interval between the third pulse and the fourth pulse of a first pair of two consecutive pulses generated by optical coupling of the emissions of a photon source 54 or a silicon LED
54 bzw. einer ersten SPAD-Diode 54 einerseits und eines Photonendetektors54 or a first SPAD diode 54 on the one hand and a photon detector
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. 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; 55 or a second SPAD diode 55 on the other hand, as the first value of the output 410 of the time-to-pseudo-random number converter 404.3. The third pulse can be identical to the second pulse (see step 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 Ü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 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 oder durch das Setzen eines Flags. 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 quantum random 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 the above 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.
15152 Mittels zur elektronischen Erfassung 25152 („electronic sampling means");15152 Electronic sampling means 25152 ("electronic sampling means");
25154 Mittel zur elektronischen Nachbearbeitung 25154 („electronic post-processing means") der Photonen 55 im Stand der Technik; 25154 means for electronic post-processing 25154 of the photons 55 in the prior art;
26122 Kathode 26122; 26122 Cathode 26122;
26(27022) 124 Anode 26124; 26(27022) 124 Anode 26124;
26132 Kathode 26132; 26132 Cathode 26132;
26134 Anode 26134; 26134 Anode 26134;
27022 ersten Gebiet 27022 (z. B. NBL) vom ersten Leitungstyp (negativ für NBL);27022 first area 27022 (e.g. NBL) of the first line type (negative for NBL);
27032 zweites Gebiets 27032 (z. B. PBL) vom zweiten Leitungstyp (positiv für PBL);27032 second area 27032 (e.g. PBL) of the second conduction type (positive for PBL);
27050 in der epitaktischen Schicht 48 liegender p-n-Übergang 27050; 27050 p-n junction 27050 located in the epitaxial layer 48;
27052 pn-Übergang 27052; 27052 pn junction 27052;
27110 BCD-Substrat 27110; 27110 BCD substrate 27110;
28010 Hochvolt-p-Wanne 28010 (engl. „high-voltage p-type well"); 28010 high-voltage p-type well 28010 (English: high-voltage p-type well);
28020 Beobachtungsdiode 28020; 28020 Observation diode 28020;
29010 schwach n-dotiertes bzw. (annähernd) intrinsisches epitaktisches Gebiet 29010; 29010 weakly n-doped or (approximately) intrinsic epitaxial region 29010;
Nicht numerische Bezugszeichen Non-numeric reference symbols
GND Bezugspotenzialleitung GND auf Bezugspotenzial; O Oberfläche 0 des Halbleitersubstrats 49; GND reference potential line GND to reference potential; O surface 0 of the semiconductor substrate 49;
R Symmetrieachse R der Struktur der Figur 26; R axis of symmetry R of the structure of Figure 26;
S Oberfläche S des Trägersubstrats 49; S surface S of the carrier substrate 49;
S2 Lesen eines Ladeprogramms aus dem EEPROM 6; S2 Reading a loading program from the EEPROM 6;
S4 Überprüfung der digitalen Signatur des mittels des Boot-ROM-Codes anhand des im ersten OTP 20 gespeicherten öffentlichen Schlüssels; S4 Verifying the digital signature of the boot ROM code using the public key stored in the first OTP 20;
S6 Lesen nachfolgender Datensätze mit Hilfe des Ladeprogramms S6 Reading subsequent data records using the loader program
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; 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;
520 Lesen eines Datensatzes aus dem EEPROM 6; 520 Reading a data record from the EEPROM 6;
521 Speichern zumindest eines Teils der Daten des Satzes im TCM 14; 521 Storing at least part of the data of the set in the TCM 14;
522 Berechnen eines Hash-Werts für jedes Wort der verbleibenden Daten; 522 Calculating a hash value for each word of the remaining data;
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; 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 the hash engine 18 on the other hand;
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; S26 Recalculation of the hash value when a word is read from the DRAM 8 by the processor 10-1, 10-2 and the hash engine 18;
S30 Vergleich des neu berechneten Hash-Werts mit dem entsprechenden imS30 Comparison of the newly calculated hash value with the corresponding one in the
DRAM 8 gespeicherten Hash-Wert, mittels des Prozessors 10-1, 10-2 und der Hash-Engine 18; DRAM 8 stored hash value, by means of the processor 10-1, 10-2 and the hash engine 18;
S34 Überprüfen, ob die Hash-Werte eine vorbestimmte Beziehung haben, z. B. gleich sind; S34 Checking whether the hash values have a predetermined relationship, e.g. are equal;
S36 Unterbrechen der Verarbeitung und/oder Erzeugen einer Fehlermeldung und/oder Ignorieren von Daten/ Code, wenn sie nicht die vorgegebene Beziehung aufweisen; S36 Interrupting processing and/or generating an error message and/or ignoring data/code if they do not have the specified relationship;
S38 Verarbeitung der gelesenen Daten mittels des Prozessors bzw. der ProzessorenS38 Processing of the read data by the processor(s)
10-1, 10-2, wenn die Hash-Werte eine vorbestimmte Beziehung haben, z. B. gleich sind; 10-1, 10-2, if the hash values have a predetermined relationship, e.g. are equal;
RKNi erstes Rückkoppelnetzwerk RKNi des Zeit-zu-Pseudozufallszahl-WandlersRKNi first feedback network RKNi of the time-to-pseudo-random number converter
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 SBi 404.3 (TPRC), which typically consists of the logical data word that appears on the shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) is present, generates the logical feedback value that the first shift register bit SBi
1. bei Auswahl des ersten Rückkoppelnetzwerks RKNi des Zeit-zu-1. when selecting the first feedback network RKNi of the time-to-
Pseudozufallszahl-Wandlers 404.3 (TPRC) durch den Rückkoppelmultiplexer 2102 und Pseudorandom number converter 404.3 (TPRC) through the feedback multiplexer 2102 and
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 2. when the serial shift mode is set by the shift register controller 2103 via parallel-to-serial shift register mode switching line 2107, a parallel-to-serial shift register mode switching line 2107 and
3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SBi des Schieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SBi bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SBi lädt dann mit dem nächsten Takt des Systemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC). Bevorzugt ist das erste Rückkoppelnetzwerk RKNi 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 RKNi 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 des Schieberegisternachladewertleitung 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 RKNi des Zeit-zu- Pseudozufallszahl-Wandlers 404.3 (TPRC) ein einfach primitives Polynom;3. when the shift register bit activation line of the first shift register bit SBi of the shift register bit activation bus 2109 is activated to activate the data transfer of the first shift register bit SBi at the next clock edge of the clock edge direction signal used, selects the next serial reload value for the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SBi then loads this next serial reload value into the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106. The first feedback network RKNi 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 RKNi of the time-to-pseudo-random number converter 404.3 (TPRC) implements a logical connection of the logical content of the shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reload value 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 RKNi of the time-to-pseudo-random number converter 404.3 (TPRC) implements a simple primitive polynomial;
RKN2 zweites Rückkoppelnetzwerk RKN2des 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 SBi 1. bei Auswahl des zweiten Rückkoppelnetzwerks RKN2des Zeit-zu-RKN 2 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 shift register bit SBi 1. when selecting the second feedback network RKN 2 of the time-to-
Pseudozufallszahl-Wandlers 404.3 (TPRC) durch den Rückkoppelmultiplexer 2102 und Pseudorandom number converter 404.3 (TPRC) through the feedback multiplexer 2102 and
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 2. when the serial shift mode is set by the shift register controller 2103 via parallel-to-serial shift register mode switching line 2107, a parallel-to-serial shift register mode switching line 2107 and
3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SBi des Schieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SBi bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SBi lädt dann mit dem nächsten Takt des Systemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SBi 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 des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert des Schieberegisternachladewertleitung 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 RKN2des 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; 3. when the shift register bit activation line of the first shift register bit SBi of the shift register bit activation bus 2109 is activated to activate the data transfer of the first shift register bit SBi at the next clock edge of the clock edge direction signal used, selects the next serial reload value for the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SBi then loads this next serial reload value into the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106. The second feedback network RKN 2 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 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 the shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reload value 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 drittes Rückkoppelnetzwerk RKN3des 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 SBi 1. bei Auswahl des dritte Rückkoppelnetzwerks RKN3 des Zeit-zu-RKN 3 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 shift register bit SBi 1. when selecting the third feedback network RKN 3 of the time-to-
Pseudozufallszahl-Wandlers 404.3 (TPRC) durch den Rückkoppelmultiplexer 2102 und Pseudorandom number converter 404.3 (TPRC) through the feedback multiplexer 2102 and
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 2. when the serial shift mode is set by the shift register controller 2103 via parallel-to-serial shift register mode switching line 2107, a parallel-to-serial shift register mode switching line 2107 and
3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SBi des Schieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SBi bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SBi lädt dann mit dem nächsten Takt des Systemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SBi 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 des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert des Schieberegisternachladewertleitung 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 RKN3des 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; 3. when the shift register bit activation line of the first shift register bit SBi of the shift register bit activation bus 2109 is activated to activate the data transfer of the first shift register bit SBi at the next clock edge of the clock edge direction signal used, selects the next serial reload value for the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SBi then loads this next serial reload value into the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system 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 the shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reload value 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-tes Rückkoppelnetzwerk RKNm 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 SBi 1. bei Auswahl des m-te Rückkoppelnetzwerks RKNm des Zeit-zu-RKN m m-th feedback network RKN m of the time-to-pseudo-random number converter 404.3 (TPRC), which typically generates the logical feedback value that the first shift register bit SBi 1. when selecting the m-th feedback network RKN m of the time-to-
Pseudozufallszahl-Wandlers 404.3 (TPRC) durch den Rückkoppelmultiplexer 2102 und Pseudorandom number converter 404.3 (TPRC) through the feedback multiplexer 2102 and
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 2. when the serial shift mode is set by the shift register controller 2103 via parallel-to-serial shift register mode switching line 2107, a parallel-to-serial shift register mode switching line 2107 and
3. bei Aktivierung der Schieberegisterbitaktivierungsleitung des ersten Schieberegisterbits SBi des Schieberegisterbitaktivierungsbusses 2109 zur Aktivierung der Datenübernahme des ersten Schieberegisterbits SBi bei der nächsten Taktflanke des verwendeten Taktflankenrichtungssignals als nächsten seriellen Nachladewert für das erste Schieberegisterbit SBi des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) auswählt. Das erste Schieberegisterbit SBi lädt dann mit dem nächsten Takt des Systemtakts 2106 diesen nächsten seriellen Nachladewert in das erste Schieberegisterbit SBi 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 des Schieberegisterbusses 2101 des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) zu dem logischen Wert des Schieberegisternachladewertleitung 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 RKNm 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; 3. when the shift register bit activation line of the first shift register bit SBi of the shift register bit activation bus 2109 is activated to activate the data transfer of the first shift register bit SBi at the next clock edge of the clock edge direction signal used, selects the next serial reload value for the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC). The first shift register bit SBi then loads this next serial reload value into the first shift register bit SBi of the time-to-pseudo-random number converter 404.3 (TPRC) with the next clock of the system clock 2106. The m-th feedback network RKN m 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 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 the shift register bus 2101 of the time-to-pseudo-random number converter 404.3 (TPRC) to the logical value of the shift register reload value 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 m 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);
SBi erste Schieberegisterzelle mit dem ersten Schieberegisterbit SBi. Das erste Schieberegisterbit SBi 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 SBi beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriel I- 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 der Schieberegisternachladewertleitung 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-Seriel I- 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 ersten 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. SBi first shift register cell with the first shift register bit SBi. The first shift register bit SBi 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 logical Value of the parallel-to-serial shift register mode switching line 2107 preferably reloads the first shift register bit SBi, for example a) at a first logical value of the parallel-to-serial I 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 shift register reload value line 2104 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 I 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 follow the logic value of the first 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 (e.g. high).
SB2 zweite Schieberegisterzelle mit dem zweiten Schieberegisterbit SB2. Das zweite Schieberegisterbit SB2speist 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-Seriel I- 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 ersten Schieberegisterbits SBides Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriel I- 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 zweiten 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 2 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-pseudorandom number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode 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 I 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 first 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 I 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 second 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);
SB3 dritte Schieberegisterzelle mit dem dritten Schieberegisterbit SB3. Das dritteSB3 third shift register cell with the third shift register bit SB 3 . The third
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-Seriel I- 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 zweiten Schieberegisterbits SB2des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriel I- 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 dritten 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; 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-pseudorandom number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode 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 I 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 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 I 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 follow the logic value of the third 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 (e.g. high);
SB4 vierte Schieberegisterzelle mit dem vierten Schieberegisterbit SB4. Das vierteSB4 fourth shift register cell with the fourth shift register bit SB4. The fourth
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-Seriel I- 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 dritten Schieberegisterbits SB3des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriel I- 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 vierten 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; Shift register bit SB4 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 logical Value of the parallel-to-serial shift register mode switching line 2107, the fourth shift register bit SB4 preferably loads, for example, a) at a first logic value of the parallel-to-serial I 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 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 I 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 fourth 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 (e.g. high);
SBg fünfte Schieberegisterzelle mit dem fünften Schieberegisterbit SB5. 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-Seriel I- 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 vierten Schieberegisterbits SB 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-Seriel I- 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 fünften 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; SBg fifth shift register cell with the fifth shift register bit SB 5 . 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-pseudorandom number converter 404.3 (TPRC). Depending on the logic value of the parallel-to-serial shift register mode switching line 2107, the fifth shift register bit SBs preferably loads, for example, a) at a first logic value of the parallel-to-serial I 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 fourth shift register bit SB 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 I 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 fifth 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);
SBs sechste Schieberegisterzelle mit dem sechsten Schieberegisterbit SBe. 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 SBe beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriel I- 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 fünften Schieberegisterbits SB5des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriel I- 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 sechsten 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; SBs sixth shift register cell with the sixth shift register bit SBe. 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 register mode switching line 2107, the sixth shift register bit SBe 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 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 I 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 sixth 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 (eg high);
SB? siebte Schieberegisterzelle mit dem siebten Schieberegisterbit SB?. Das siebteSB? seventh shift register cell with the seventh shift register bit SB?. The seventh
Schieberegisterbit SB? 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 SB? beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriel I- 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 sechsten Schieberegisterbits SB6des Zeit-zu-Pseudozufallszahl-Wandlers 404.3 (TPRC) als ihren nächsten logischen Wert nach und b) bei einem zweiten logischen Wert der Parallel-zu-Seriel I- 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 siebten 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; Shift register bit SB? 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 logical Value of parallel to serial shift register mode switch line 2107 preferentially loads the seventh shift register bit SB? for example, a) at a first logic value of the parallel-to-serial I 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 sixth shift register bit SB 6 of the time-to-pseudo-random number converter 404.3 (TPRC) as its next logic value after and b) at a second logic value of the parallel-to-serial I 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 follows the logic value of the seventh 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 (e.g. high);
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-Seriel I- 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 siebten Schieberegisterbits SB? 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-Seriel I- 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 achten 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 8 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-pseudorandom number converter 404.3 (TPRC). Depending on the logical value of the parallel-to-serial shift register mode 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 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-pseudorandom number converter 404.3 (TPRC) of the quantum random number generator 28, the logical value of the seventh shift register bit SB? 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 I 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 eighth 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-s) (n-6)-te Schieberegisterzelle mit dem (n-6)-ten Schieberegisterbit SB(n-6). DasSB(ns) (n-6)-th shift register cell with the (n-6)-th shift register bit SB( n -6). The
(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-Seriel I- 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-Seriel I- 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; (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-pseudorandom 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), for example, a) at a first logic value of the parallel-to-serial I 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, preferably reloads 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 I 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-s) (n-5)-te Schieberegisterzelle mit dem (n-5)-ten Schieberegisterbit SB(n-s). DasSB(ns) (n-5)-th shift register cell with the (n-5)-th shift register bit SB( n -s). The
(n-5)-te Schieberegisterbit SB(n-s) 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-Seriel I- 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-Seriel I- 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(n-5)-th shift register bit SB( n -s) 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 logical Value of the parallel-to-serial shift register mode switching line 2107 preferably loads the (n-5)th shift register bit SB( n -6) for example a) at a first logic value of the parallel-to-serial I 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 I 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-5)-th bit of the
TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; TPRG data bus 2110 as its next logic value if simultaneously the first shift register bit enable line of the shift register bit enable bus 2109 is active (e.g. high);
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-Seriel I- 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)-tenSB( 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-pseudorandom 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
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-Seriel I- 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; Shift register bits SB( n -7) of the time-to-pseudo-random number converter 404.3 (TPRC) as their next logical value and b) at a second logical value of the parallel-to-serial I 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)-te Schieberegisterzelle mit dem (n-3)-ten Schieberegisterbit SB(n-3). DasSB( n -3) (n-3)-th shift register cell with the (n-3)-th shift register bit SB( n -3). The
(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-Seriel I- 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-Seriel I- 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; (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-pseudorandom 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), for example, a) at a first logic value of the parallel-to-serial I 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, preferably reloads 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 I 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)-te Schieberegisterzelle mit dem (n-2)-ten Schieberegisterbit SB(n-2). DasSB( n -2) (n-2)-th shift register cell with the (n-2)-th shift register bit SB( n -2). The
(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-Seriel I- 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-Seriel I- 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(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 logical Value of the parallel-to-serial shift register mode switching line 2107 preferably loads the (n-2)th shift register bit SB( n -6) for example a) at a first logic value of the parallel-to-serial I 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 I 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-2)-th bit of the
TPRG-Datenbusses 2110 als ihren nächsten logischen Wert nach, wenn gleichzeitig die erste Schieberegisterbitaktivierungsleitung des Schieberegisterbitaktivierungsbusses 2109 aktiv (z.B. high) ist; TPRG data bus 2110 as its next logic value if simultaneously the first shift register bit enable line of the shift register bit enable bus 2109 is active (e.g. high);
SB(n-l) (n-l)-te Schieberegisterzelle mit dem (n-l)-ten Schieberegisterbit SB(n-i). Das (n-l)-te Schieberegisterbit SB(n-i) speist seinen logischen Inhalt in die (n-l)-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-l)-te Schieberegisterbit SB(n-6) beispielsweise a) bei einem ersten logischen Wert der Parallel-zu-Seriel I- 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)-tenSB(nl) (nl)-th shift register cell with the (nl)-th shift register bit SB( n -i). The (nl)-th shift register bit SB( n -i) feeds its logical content into the (nl)-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 (nl)-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
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-Seriel I- 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-l)-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; Shift register bits SB( n -7) of the time-to-pseudo-random number converter 404.3 (TPRC) as their next logical value and b) at a second logical value of the parallel-to-serial I 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 (nl)-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);
SBn n-te Schieberegisterzelle mit dem n-ten Schieberegisterbit SBn. Das n-teSB n n-th shift register cell with the n-th shift register bit SB n . The n-th
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-Seriel I- 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-l)-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-Seriel I- 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; 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-pseudorandom 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), for example, a) at a first logic value of the parallel-to-serial I 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, preferably loads the logic value of the (nl)-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 I 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 Versorgungsspannungsleitung VDD auf einem positiven elektrischenVDD positive supply voltage line VDD on a positive electrical
Potenzial gegenüber dem Bezugspotenzial der Bezugspotenzialleitung GND; Potential compared to the reference potential of the reference potential line GND;
VENT positive Versorgungsspannungsleitung VEXT der Entropiequelle 411; Relevante Schriften VENT positive supply voltage line VEXT of the entropy source 411; Relevant writings
R. L. Rivest, A. Shamir, and L. Adleman, „A Method for Obtaining Digital Signatures and Public-KeyR. 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 Cryptosystems" Communications of the ACM, February 1978, Vol. 21, No. 2, pages 120 to 126

Claims

Ansprüche Expectations
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) eine Entropiequelle (401) aufweist und wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) dazu eingerichtet ist ein Signal (405) der Entropiequelle (401) mittels zumindest eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) auszuwerten und wobei der quantenprozessbasierende Generator (28) weiter dazu eingerichtet ist ein oder mehrere Zufallsbits (411) in Abhängigkeit von dem ein Signal (405) der Entropiequelle (401) zu erzeugen. 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) has an entropy source (401) and wherein the quantum process-based generator (28) for true random numbers (411, 418) is configured to evaluate a signal (405) of the entropy source (401) by means of at least one time-to-pseudo-random number converter (TPRC) (404.3) and wherein the quantum process-based generator (28) is further configured to generate one or more random bits (411) depending on the signal (405) of the entropy source (401).
2. 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) einstückig auf einem Halbleitersubstrat (49) mit einer Oberfläche (O) ausgeführt ist und wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) eine vertikale Entropiequelle (401) aufweist und wobei die vertikale Entropiequelle (401) eine Photonenquelle (54) aufweist und wobei die vertikale Entropiequelle (401) einen Photonendetektor (55) aufweist und wobei die Oberfläche (O) des Halbleitersubstrats (49) eine horizontale Ebene mit einer ersten Richtung in der Ebene (1. Ebenenvektor) und einer zweiten Richtung in der Ebene (2. Ebenenvektor), die von der ersten Richtung in der Ebene verschieden ist, definiert und wobei die Photonenquelle (54) und der Photonendetektor (55) bezogen auf die erste und zweite Richtung in der horizontale Ebene der Oberfläche (O) des Halbleitersubstrats (49) in einer vertikalen Richtung zu der ersten und zweiten Richtung in der Ebene im Halbleitersubstrat (49) angeordnet sind und wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) dazu eingerichtet ist ein oder mehrere Zufallsbits (411) in Abhängigkeit von dem ein Signal (405) der Entropiequelle (401) zu erzeugen. 2. 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) is integrally formed on a semiconductor substrate (49) having a surface (O), and wherein the quantum process-based generator (28) for true random numbers (411, 418) has a vertical entropy source (401), and wherein the vertical entropy source (401) has a photon source (54), and wherein the vertical entropy source (401) has a photon detector (55), and wherein the surface (O) of the semiconductor substrate (49) defines a horizontal plane with a first direction in the plane (1st plane vector) and a second direction in the plane (2nd plane vector) which is different from the first direction in the plane, and wherein the photon source (54) and the photon detector (55) are arranged in a vertical direction to the first and second direction in the plane in the semiconductor substrate (49) relative to the first and second direction in the horizontal plane of the surface (O) of the semiconductor substrate (49), and wherein the quantum process-based generator (28) for true random numbers (411, 418) is configured to generate one or more random bits (411) as a function of a signal (405) from the entropy source (401).
3. 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) eine Entropiequelle (401) in einem Halbleitersubstrat (49) mit einer Oberfläche (O) und mit einer Rückseite umfasst, die der Oberfläche (O) gegenüber auf der anderen Seite des Halbleitersubstrats (49) liegt, umfasst und wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen umfasst, wobei dieser Angriff insbesondere ein Angriff von der Rückseite des Halbleitersubstrats (49) her sein kann. 3. 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) comprises an entropy source (401) in a semiconductor substrate (49) with a surface (O) and with a back side which lies opposite the surface (O) on the other side of the semiconductor substrate (49), and wherein the quantum process-based generator (28) for true random numbers (411, 418) comprises means for detecting an attack on the entropy source (401) by means of photons, wherein this attack can in particular be an attack from the back side of the semiconductor substrate (49).
4. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 3, wobei diese Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen eine Beobachtungsdiode (28020) umfassen. 4. Quantum process-based generator (28) for true random numbers (411, 418) according to claim 3, wherein said means for detecting an attack on the entropy source (401) by means of photons comprise an observation diode (28020).
5. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 4, wobei der quantenprozessbasierende Generator (28) einen Watchdog (404.5) umfasst. 5. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 4, wherein the quantum process-based generator (28) comprises a watchdog (404.5).
6. Quantenprozessbasierter Generator (28) für echte Zufallszahlen (411, 418) nach einem der6. Quantum process-based generator (28) for true random numbers (411, 418) according to one of the
Ansprüche 1 bis 5, wobei der quantenprozessbasierende Generator (28) einen Spannungsmonitor (423) umfasst. Claims 1 to 5, wherein the quantum process-based generator (28) comprises a voltage monitor (423).
7. Quantenprozessbasierter Generator (28) für echte Zufallszahlen (411, 418) nach einem der7. Quantum process-based generator (28) for true random numbers (411, 418) according to one of the
Ansprüche 5 bis 6, wobei der Watchdog (404.5) und/oder der Spannungsmonitor (413) dazu eingerichtet sind, den quantenprozessbasierenden Generator (28) mittels der Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen, insbesondere mittels der Beobachtungsdiode (28020), auf einen Angriff oder eine Störung zu überwachen. Claims 5 to 6, wherein the watchdog (404.5) and/or the voltage monitor (413) are configured to monitor the quantum process-based generator (28) for an attack or a disturbance by means of the means for detecting an attack on the entropy source (401) by means of photons, in particular by means of the observation diode (28020).
8. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 7, wobei die mindestens zwei Vorrichtungsteile des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) entsprechend einem der besagten Ansprüche und ggf. weitere Schaltungsteile einstückig auf einem gemeinsamen Halbleitersubstrat (49) als einstückiger quantenprozessbasierenden Generator (28) ausgeführt sind, wobei die Vorrichtungsteile des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) und die ggf. weiteren Schaltungsteile zumindest als Vorrichtungsteile die Entropiequelle (401) oder die vertikale Entropiequelle (401) und den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) umfassen oder zumindest die vertikale Entropiequelle (401) und den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) oder einen Zeit-zu- Digital-Wandler (TDC) (404.3) anstelle des Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) umfassen oder zumindest die Entropiequelle (401) oder die vertikale Entropiequelle (401) und8. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 7, wherein the at least two device parts of the quantum process-based generator (28) for true random numbers (411, 418) according to one of the said claims and optionally further circuit parts are designed in one piece on a common semiconductor substrate (49) as a one-piece quantum process-based generator (28), wherein the device parts of the quantum process-based generator (28) for true random numbers (411, 418) and the optionally further circuit parts comprise at least as device parts the entropy source (401) or the vertical entropy source (401) and the time-to-pseudo-random number converter (TPRC) (404.3) or at least the vertical entropy source (401) and the time-to-pseudo-random number converter (TPRC) (404.3) or a time-to-digital converter (TDC) (404.3) instead of the Time-to-pseudorandom number converter (TPRC) (404.3) or at least the entropy source (401) or the vertical entropy source (401) and
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen umfassen oder zumindest den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) oder einen Zeit-zu- Digital-Wandler (TDC) (404.3) anstelle des Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) und Means for detecting an attack on the entropy source (401) by means of photons or at least the time-to-pseudo-random number converter (TPRC) (404.3) or a time-to-digital converter (TDC) (404.3) instead of the time-to-pseudo-random number converter (TPRC) (404.3) and
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen und und wobei die Vorrichtungsteile des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) zusätzlich folgende Vorrichtungsteile umfassen können: einen integrierten Schaltkreis (2) und/oder ein oder mehrere Photonenquellen (54) und/oder ein oder mehrere Photonendetektoren (55) und/oder ein oder mehrere optische Funktionselement (44) und/oder einen oder mehrere Lichtwellenleiter (44) und/oder einen Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) und/oderMeans for detecting an attack on the entropy source (401) by means of photons and and wherein the device parts of the quantum process-based generator (28) for true random numbers (411, 418) can additionally comprise the following device parts: an integrated circuit (2) and/or one or more photon sources (54) and/or one or more photon detectors (55) and/or one or more optical functional elements (44) and/or one or more optical waveguides (44) and/or a time-to-pseudo-random number converter (TPRC) (404.3) and/or
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen und/oder eine oder mehrere Beobachtungsdioden (28020) und/oder einen Watchdog (404.5) und/oder einen oder mehrere Spannungsmonitore (423) und/oder einen oder mehrere Spannungswandler (91) und/oder einen oder mehrere Verstärker (402) und/oder einen oder mehrere Komparatoren (404.2) und/oder eine Entropie-Extraktions-Vorrichtung (404.4) und/oder eine Finite-State-Machine (FSM) (404.8) und/oder einen Signal-Multiplexer (404.7) und/oder ein oder mehrere RAMs und/oder FIFOs (404.9) und/oder ein oder mehrere Finish Flags (404.10) und/oder einen internen Datenbus (419) und/oder ein oder mehrere Signalleitungen und/oder ein oder mehrere Interrupt Signale (420) und/oder eine Pulsverlängerungsschaltung (2023) und/oder einen Rückkoppelmultiplexer (2102) des Zeit-zu-Pseudozufallszahl-WandlersMeans for detecting an attack on the entropy source (401) by means of photons and/or one or more observation diodes (28020) and/or a watchdog (404.5) and/or one or more voltage monitors (423) and/or one or more voltage converters (91) and/or one or more amplifiers (402) and/or one or more comparators (404.2) and/or an entropy extraction device (404.4) and/or a finite state machine (FSM) (404.8) and/or a signal multiplexer (404.7) and/or one or more RAMs and/or FIFOs (404.9) and/or one or more finish flags (404.10) and/or an internal data bus (419) and/or one or more signal lines and/or one or more interrupt signals (420) and/or a pulse extension circuit (2023) and/or a feedback multiplexer (2102) of the Time-to-pseudorandom number converter
(404.3) (TPRC) und/oder ein Steuerregister (2111) des Rückkoppelmultiplexers (2102) und/oder ein oder mehrere Rückkoppelpolynom-Auswahlregister (2112) und/oder eine Detektionsschaltung (2113) und/oder einen Schieberegistercontroller (2103) und/oder ein oder mehrere Rückkoppelnetzwerke (RKNi bis RKNm) des Zeit-zu-(404.3) (TPRC) and/or a control register (2111) of the feedback multiplexer (2102) and/or one or more feedback polynomial selection registers (2112) and/or a detection circuit (2113) and/or a shift register controller (2103) and/or one or more feedback networks (RKNi to RKN m ) of the time-to-
Pseudozufallszahl-Wandlers (404.3) (TPRC) und/oder ein oder mehrere Schieberegisterbits (SBi bis SBn) und/oder einen oder mehrere zweite High-Side-Transistoren (2303), insbesondere in Form von DMOS-Transistoren, und/oder einen oder mehrere Transfer-Transistoren (2305), insbesondere in Form vonPseudorandom number converter (404.3) (TPRC) and/or one or more shift register bits (SBi to SB n ) and/or one or more second high-side transistors (2303), in particular in the form of DMOS transistors, and/or one or more transfer transistors (2305), in particular in the form of
DMOS-Transistoren, und/oder ein oder mehrere erste Energiespeicher (2306) und/oder ein oder mehrere zweite Energiespeicher (2307) und/oder ein oder mehrere Steuervorrichtungen (2330) der Spannungswandler (91) und/oder einen Pad-Rahmen (2401) des mikrointegrierten Schaltkreises (2) und/oderDMOS transistors, and/or one or more first energy storage devices (2306) and/or one or more second energy storage devices (2307) and/or one or more control devices (2330) of the voltage converters (91) and/or a pad frame (2401) of the micro-integrated circuit (2) and/or
Mittel (25145) zur elektronischen Nachbearbeitung und/oder eine oder mehrere Beobachtungsdioden (28020) und/oder eine Kapselung mit einer oder mehreren Metallschichten (53, 142) und/oder einer oder mehreren Silizid-Schichten und Durchkontaktierungen (140) und/oder eine oder mehrere Datenbusschnittstellen (64) und/oder eine JTAG-Test-Schnittstelle (12) und/oder eine andere Testschnittstelle und/oder eine Steuervorrichtung (4) und/oder ein oder mehrere nichtflüchtigen Speicher (6) und/oder ein oder mehrere EEPROMs (6) und/oder ein oder mehrere Random Access Memorys (8) (flüchtige Schreib/Lese-Speicher) und/oder einen oder mehrere Prozessoren (10-1, 10-2) und/oder einen oder mehrere eng gekoppelte Speicher (TCM) (14) und/oder einen nicht flüchtigen Boot-Speicher (Boot-ROM) (16) und/oder eine Hashing-Engine (18) und/oder einen oder mehrere nur einmal programmierbare-Speicher (OTP) (20, 22) (One- Time-Programmable-Speicher) und/oder eine Deaktivierungsschaltung (24) und/oder einen oder mehrere weitere interne nicht flüchtige Speicher (30) und/oder eine oder mehrere Schnittstellen (32) zu einem oder mehreren kontrollierten Systemen (26) und/oder einen oder mehrere Taktgeneratoren (92) (incl. ggf. notwendiger PLLs) und/oder einen oder mehrere Spannungswandler (91) und/oder eine oder mehrere Reset-Schaltungen (83) und/oder eine oder mehrere Datenbusschnittstellen (64) und/oder eine oder mehrere interne Schnittstellen (81, 63, 301) und/oder eine oder mehrere optische Funktionselemente (44) und/oder eine oder mehrere analogen Eingangsverarbeitungen (84) und/oder einen oder mehrere Analog-zu-Digital-Wandler (85) und/oder eine oder mehrere digitale Signalverarbeitungen (86) und/oder einen oder mehrere Digital-zu-Analog-Wandler (87) und/oder eine oder mehrere analoge Ausgangsverarbeitungen (88). Means (25145) for electronic post-processing and/or one or more observation diodes (28020) and/or an encapsulation with one or more metal layers (53, 142) and/or one or more silicide layers and vias (140) and/or one or more data bus interfaces (64) and/or a JTAG test interface (12) and/or another test interface and/or a control device (4) and/or one or more non-volatile memories (6) and/or one or more EEPROMs (6) and/or one or more random access memories (8) (volatile read/write memories) and/or one or more processors (10-1, 10-2) and/or one or more tightly coupled memories (TCM) (14) and/or a non-volatile boot memory (boot ROM) (16) and/or a hashing engine (18) and/or one or more one-time programmable memories (OTP) (20, 22) (one-time programmable memories) and/or a deactivation circuit (24) and/or one or more further internal non-volatile memories (30) and/or one or more interfaces (32) to one or more controlled systems (26) and/or one or more clock generators (92) (including any necessary PLLs) and/or one or more voltage converters (91) and/or one or more reset circuits (83) and/or one or more data bus interfaces (64) and/or one or more internal interfaces (81, 63, 301) and/or one or more optical functional elements (44) and/or one or more analog input processing (84) and/or one or more analog-to-digital converters (85) and/or one or more digital signal processing (86) and/or one or more digital-to-analog converters (87) and/or one or more analog output processing (88).
9. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 8, wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418), dazu eingerichtet ist, aus mehreren Zufallsbits (411) wenigstens eine Zufallszahl (418) zu erzeugen und wobei der quantenprozessbasierende Generator (28) weiter dazu eingerichtet ist die wenigstens eine Zufallszahl (418) zur Verfügung zu stellen oder zu nutzen. 9. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 8, wherein the quantum process-based generator (28) for true random numbers (411, 418) is configured to generate at least one random number (418) from a plurality of random bits (411), and wherein the quantum process-based generator (28) is further configured to provide or use the at least one random number (418).
10. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 1 und Anspruch 9, wobei das die logischen Werte in der zeitlichen Reihenfolge der Pseudozufallsbits eines Zeit-zu-Pseudozufallszahlen-Wandlers (TPRG) (404.3) des quantenprozessbasierenden Generators (28) von einem oder mehreren Quantenzufallsbits (411) und/oder einer oder mehrerer Quantenzufallszahlen (418) abhängen. 10. Quantum process-based generator (28) for true random numbers (411, 418) according to claim 1 and claim 9, wherein the logical values in the time sequence of the pseudorandom bits of a time-to-pseudorandom number converter (TPRG) (404.3) of the quantum process-based generator (28) depend on one or more quantum random bits (411) and/or one or more quantum random numbers (418).
11. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 5 bis 10, wobei der Watchdog (404.5) dazu eingerichtet ist eine korrekte Funktion des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) zu überwachen. 11. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 5 to 10, wherein the watchdog (404.5) is configured to monitor correct functioning of the quantum process-based generator (28) for true random numbers (411, 418).
12. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 11, wobei der Watchdog (404.5) dazu eingerichtet ist die Zufälligkeit der erzeugten Quantenzufallsbits (411) in Form eines oder mehrerer Messwerte zu messen und jeweils mit einem jeweiligen Toleranzintervall oder einem jeweiligen Schwellwert zu vergleichen, und wobei der Watchdog (404.5) dazu eingerichtet ist auf einen jeweiligen Fehler bei einer jeweiligen Abweichung des jeweiligen Messwerts gegenüber dem jeweiligen Toleranzintervall oder dem jeweiligen Schwellwert zu schließen. 12. Quantum process-based generator (28) for true random numbers (411, 418) according to claim 11, wherein the watchdog (404.5) is configured to measure the randomness of the generated quantum random bits (411) in the form of one or more measured values and to compare each with a respective tolerance interval or a respective threshold value, and wherein the watchdog (404.5) is configured to infer a respective error in the case of a respective deviation of the respective measured value from the respective tolerance interval or the respective threshold value.
13. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der13. Quantum process-based generator (28) for true random numbers (411, 418) according to one of the
Ansprüche 5 bis 12, wobei der Watchdog (404.5) dazu eingerichtet ist eine korrekte Funktion des Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) des zumindest einen Zeit-zu-Pseudozufallszahlen-Wandlers (TPRG) (404.3) des quantenprozessbasierenden Generators (28) zu überwachen und/oder ein Verhalten in Form der zeitlichen Statistik der logischen Werte in der zeitlichen Reihenfolge der Pseudozufallsbits des Zeit-zu-Pseudozufallszahlen-Wandlers (TPRC) (404.3) zu überwachen und in Form von statistischen Messwerten zu erfassen und bei Abweichungen der statistischen Messwerte von dem erwarteten Verhalten in Form einer Verlassens erlaubter Messwertbereiche für diese Messwerte einen Fehler festzustellen und/oder zu signalisieren. Claims 5 to 12, wherein the watchdog (404.5) is arranged to to monitor a correct function of the time-to-pseudo-random number converter (TPRC) (404.3) of the at least one time-to-pseudo-random number converter (TPRG) (404.3) of the quantum process-based generator (28) and/or to monitor a behavior in the form of the temporal statistics of the logical values in the temporal order of the pseudorandom bits of the time-to-pseudo-random number converter (TPRC) (404.3) and to record them in the form of statistical measured values and, in the event of deviations of the statistical measured values from the expected behavior in the form of a departure from permitted measured value ranges for these measured values, to determine and/or signal an error.
14. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 13, wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen (411, 418) mit seinen mindestens zwei Vorrichtungsteilen einstückig als Teil eines integrierten Schaltkreises (2) gefertigt ist und wobei die Vorrichtungsteile des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) und die ggf. weiteren Schaltungsteile zumindest als Vorrichtungsteile eine bzw. die Entropiequelle (401) oder eine bzw. die vertikale Entropiequelle (401) und einen bzw. den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) umfassen oder zumindest eine bzw. die vertikale Entropiequelle (401) und einen bzw. den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) oder im Falle der Ansprüche 2 oder 3 einen Zeit-zu-Digital-Wandler (TDC) (404.3) anstelle des Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) umfassen oder zumindest eine bzw. die Entropiequelle (401) oder eine bzw. die vertikale Entropiequelle (401) und 14. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 13, wherein the quantum process-based generator (28) for true random numbers (411, 418) with its at least two device parts is manufactured in one piece as part of an integrated circuit (2) and wherein the device parts of the quantum process-based generator (28) for true random numbers (411, 418) and the optionally further circuit parts comprise at least as device parts one or the entropy source (401) or one or the vertical entropy source (401) and one or the time-to-pseudo-random number converter (TPRC) (404.3) or at least one or the vertical entropy source (401) and one or the time-to-pseudo-random number converter (TPRC) (404.3) or in the case of Claims 2 or 3 comprise a time-to-digital converter (TDC) (404.3) instead of the time-to-pseudo-random number converter (TPRC) (404.3) or at least one or the entropy source (401) or one or the vertical entropy source (401) and
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen umfassen oder zumindest einen bzw. den Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) oder im Falle der Ansprüche 2 oder 3 einen Zeit-zu-Digital-Wandler (TDC) (404.3) anstelle des Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) und Means for detecting an attack on the entropy source (401) by means of photons or at least a time-to-pseudo-random number converter (TPRC) (404.3) or, in the case of claims 2 or 3, a time-to-digital converter (TDC) (404.3) instead of the time-to-pseudo-random number converter (TPRC) (404.3) and
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen umfassen und wobei die Vorrichtungsteile des quantenprozessbasierenden Generators (28) für echte Zufallszahlen (411, 418) zusätzlich folgende Vorrichtungsteile umfassen können: einen integrierten Schaltkreis (2) und/oder ein oder mehrere Photonenquellen (54) und/oder ein oder mehrere Photonendetektoren (55) und/oder ein oder mehrere optische Funktionselement (44) und/oder einen oder mehrere Lichtwellenleiter (44) und/oder einen Zeit-zu-Pseudozufallszahlen-Wandler (TPRC) (404.3) und/oderMeans for detecting an attack on the entropy source (401) by means of photons and wherein the device parts of the quantum process-based generator (28) for true random numbers (411, 418) can additionally comprise the following device parts: an integrated circuit (2) and/or one or more photon sources (54) and/or one or more photon detectors (55) and/or one or more optical functional elements (44) and/or one or more optical waveguides (44) and/or a time-to-pseudo-random number converter (TPRC) (404.3) and/or
Mittel zur Detektion eines Angriffs auf die Entropiequelle (401) mittels Photonen und/oder eine oder mehrere Beobachtungsdioden (28020) und/oder einen Watchdog (404.5) und/oder einen oder mehrere Spannungsmonitore (423) und/oder einen oder mehrere Spannungswandler (91) und/oder einen oder mehrere Verstärker (402) und/oder einen oder mehrere Komparatoren (404.2) und/oder eine Entropie-Extraktions-Vorrichtung (404.4) und/oder eine Finite-State-Machine (FSM) (404.8) und/oder einen Signal-Multiplexer (404.7) und/oder ein oder mehrere RAMs und/oder FIFOs (404.9) und/oder ein oder mehrere Finish Flags (404.10) und/oder einen internen Datenbus (419) und/oder ein oder mehrere Signalleitungen und/oder ein oder mehrere Interrupt Signale (420) und/oder eine Pulsverlängerungsschaltung (2023) und/oder einen Rückkoppelmultiplexer (2102) des Zeit-zu-Pseudozufallszahl-WandlersMeans for detecting an attack on the entropy source (401) by means of photons and/or one or more observation diodes (28020) and/or a watchdog (404.5) and/or one or more voltage monitors (423) and/or one or more voltage converters (91) and/or one or more amplifiers (402) and/or one or more comparators (404.2) and/or an entropy extraction device (404.4) and/or a finite state machine (FSM) (404.8) and/or a signal multiplexer (404.7) and/or one or more RAMs and/or FIFOs (404.9) and/or one or more finish flags (404.10) and/or an internal data bus (419) and/or one or more signal lines and/or one or more interrupt signals (420) and/or a pulse extension circuit (2023) and/or a feedback multiplexer (2102) of the time-to-pseudo-random number converter
(404.3) (TPRC) und/oder ein Steuerregister (2111) des Rückkoppelmultiplexers (2102) und/oder ein oder mehrere Rückkoppelpolynom-Auswahlregister (2112) und/oder eine Detektionsschaltung (2113) und/oder einen Schieberegistercontroller (2103) und/oder ein oder mehrere Rückkoppelnetzwerke (RKNi bis RKNm) des Zeit-zu-(404.3) (TPRC) and/or a control register (2111) of the feedback multiplexer (2102) and/or one or more feedback polynomial selection registers (2112) and/or a detection circuit (2113) and/or a shift register controller (2103) and/or one or more feedback networks (RKNi to RKN m ) of the time-to-
Pseudozufallszahl-Wandlers (404.3) (TPRC) und/oder ein oder mehrere Schieberegisterbits (SBi bis SBn) und/oder einen oder mehrere zweite High-Side-Transistoren (2303), insbesondere in Form von DMOS-Transistoren, und/oder einen oder mehrere Transfer-Transistoren (2305), insbesondere in Form vonPseudorandom number converter (404.3) (TPRC) and/or one or more shift register bits (SBi to SB n ) and/or one or more second high-side transistors (2303), in particular in the form of DMOS transistors, and/or one or more transfer transistors (2305), in particular in the form of
DMOS-Transistoren, und/oder ein oder mehrere erste Energiespeicher (2306) und/oder ein oder mehrere zweite Energiespeicher (2307) und/oder ein oder mehrere Steuervorrichtungen (2330) der Spannungswandler (91) und/oder einen Pad-Rahmen (2401) des mikrointegrierten Schaltkreises (2) und/oderDMOS transistors, and/or one or more first energy storage devices (2306) and/or one or more second energy storage devices (2307) and/or one or more control devices (2330) of the voltage converters (91) and/or a pad frame (2401) of the micro-integrated circuit (2) and/or
Mittel (25145) zur elektronischen Nachbearbeitung und/oder eine oder mehrere Beobachtungsdioden (28020) und/oder eine Kapselung mit einer oder mehreren Metallschichten (53, 142) und/oder einer oder mehreren Silizid-Schichten und Durchkontaktierungen (140) und/oder eine oder mehrere Datenbusschnittstellen (64) und/oder eine JTAG-Test-Schnittstelle (12) und/oder eine andere Testschnittstelle und/oder eine Steuervorrichtung (4) und/oder ein oder mehrere nichtflüchtigen Speicher (6) und/oder ein oder mehrereMeans (25145) for electronic post-processing and/or one or more observation diodes (28020) and/or an encapsulation with one or more metal layers (53, 142) and/or one or more silicide layers and vias (140) and/or one or more data bus interfaces (64) and/or a JTAG test interface (12) and/or another test interface and/or a control device (4) and/or one or more non-volatile memories (6) and/or one or more
EEPROMs (6) und/oder ein oder mehrere Random Access Memorys (8) (flüchtige Schreib/Lese-Speicher) und/oder einen oder mehrere Prozessoren (10-1, 10-2) und/oder einen oder mehrere eng gekoppelte Speicher (TCM) (14) und/oder einen nicht flüchtigen Boot-Speicher (Boot-ROM) (16) und/oder eine Hashing-Engine (18) und/oder einen oder mehrere nur einmal programmierbare-Speicher (OTP) (20, 22) (One-EEPROMs (6) and/or one or more random access memories (8) (volatile read/write memories) and/or one or more processors (10-1, 10-2) and/or one or more tightly coupled memories (TCM) (14) and/or a non-volatile boot memory (boot ROM) (16) and/or a hashing engine (18) and/or one or more one-time programmable memories (OTP) (20, 22) (one-
Time-Programmable-Speicher) und/oder eine Deaktivierungsschaltung (24) und/oder einen oder mehrere weitere interne nicht flüchtige Speicher (30) und/oder eine oder mehrere Schnittstellen (32) zu einem oder mehreren kontrolliertenTime-Programmable Memory) and/or a deactivation circuit (24) and/or one or more further internal non-volatile memories (30) and/or one or more interfaces (32) to one or more controlled
Systemen (26) und/oder einen oder mehrere Taktgeneratoren (92) (incl. ggf. notwendiger PLLs) und/oder einen oder mehrere Spannungswandler (91) und/oder eine oder mehrere Reset-Schaltungen (83) und/oder eine oder mehrere Datenbusschnittstellen (64) und/oder eine oder mehrere interne Schnittstellen (81, 63, 301) und/oder eine oder mehrere optische Funktionselemente (44) und/oder eine oder mehrere analogen Eingangsverarbeitungen (84) und/oder einen oder mehrere Analog-zu-Digital-Wandler (85) und/oder eine oder mehrere digitale Signalverarbeitungen (86) und/oder einen oder mehrere Digital-zu-Analog-Wandler (87) und/oder eine oder mehrere analoge Ausgangsverarbeitungen (88). Systems (26) and/or one or more clock generators (92) (including any necessary PLLs) and/or one or more voltage converters (91) and/or one or more reset circuits (83) and/or one or more data bus interfaces (64) and/or one or more internal interfaces (81, 63, 301) and/or one or more optical functional elements (44) and/or one or more analog input processing (84) and/or one or more analog-to-digital converters (85) and/or one or more digital signal processing (86) and/or one or more digital-to-analog converters (87) and/or one or more analog output processing (88).
15. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 14, wobei der integrierte Schaltkreis (2) in einer BCD-Technologie gefertigt ist. 15. Quantum process-based generator (28) for true random numbers (411, 418) according to claim 14, wherein the integrated circuit (2) is manufactured using a BCD technology.
16. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 14 oder Anspruch 15, 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. 16. A quantum process-based true random number generator (28) according to claim 14 or claim 15, wherein the integrated circuit (2) comprises a voltage converter (91) for supplying the entropy source (401) of the quantum process-based true random number generator (28) (411, 418), and wherein the voltage converter (91) comprises one or more DMOS transistors.
17. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 14 bis 16, wobei der integrierte Schaltkreis (2) einer der folgenden Schaltkreise ist oder einen der folgenden Schaltkreise umfasst: ein Mikrocontroller, ein Mikroprozessor, ein Speicher, ein DRAM, ein SRAM, ein RAM, ein flüchtiger Speicher, ein OTP-Speicher, 17. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 14 to 16, wherein the integrated circuit (2) is one of the following circuits or comprises one of the following circuits: a microcontroller, a microprocessor, a memory, a DRAM, an SRAM, a RAM, a volatile memory, an OTP storage,
- 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 RFID-Schaltkreis; ein Sachaltkreis eines Mobiltelefons oder eines Smartphones, 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, ein Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zur Individualisierung des Schaltkreises, ein Schaltkreis mit einer Vorrichtung zur Erzeugung und/oder Nutzung einer Zufallszahl zu Testzwecken, insbesondere zu Selbsttestzwecken und/oder zu insbesondere Zwecken der Prüfung einer Anwendungsschaltung, deren Teil der Schaltkreis ist. - an EEPROM, a flash memory, an MRAM, an 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, an RFID circuit; a circuit of a mobile phone or a smartphone, 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 for electronic security, 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 with a device for generating and/or using a spreading code, a circuit with a device for generating and/or using a random number for individualizing the circuit, a circuit with a device for generating and/or using a random number for testing purposes, in particular for self-testing purposes and/or for the purposes of testing an application circuit of which the circuit is a part.
18. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 14 bis 17, wobei der integrierte Schaltkreis (2) interne Schnittstellen (63, 301, 32 und 81) als spezielle Schaltkreise an einer kryptografischen Grenze zwischen einer Steuervorrichtung (4) und anderen Teilen (8, 30, 6) der integrierten mikroelektronischen Schaltung (2) aufweist, die als nicht sicher oder weniger sicher eingestuft werden, und wobei der quantenprozessbasierende Generator (28) für echte Zufallszahlen18. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 14 to 17, wherein the integrated circuit (2) has internal interfaces (63, 301, 32 and 81) as special circuits at a cryptographic boundary between a control device (4) and other parts (8, 30, 6) of the integrated microelectronic circuit (2) which are classified as not secure or less secure, and wherein the quantum process-based generator (28) for true random numbers
(411, 418) innerhalb der kryptografischen Grenze zwischen der Steuervorrichtung (4) und den anderen Teilen (8, 30, 6) der integrierten mikroelektronischen Schaltung (2) angeordnet ist. (411, 418) is arranged within the cryptographic boundary between the control device (4) and the other parts (8, 30, 6) of the integrated microelectronic circuit (2).
19. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 18, wobei die Entropiequelle (401) eine Photonenquelle (54) umfasst und wobei die Entropiequelle (401) einen Photonendetektor (55) umfasst und wobei die Photonenquelle (54) dazu eingerichtet ist bei Versorgung mit elektrischer Energie Photonen als Quantensignal (57) zu emittieren und wobei die Photonenquelle (54) mit dem Photonendetektor (55) optisch gekoppelt ist und wobei der Photonendetektor (55) dazu eingerichtet ist das Quantensignal (57) der Photonenquelle (54) zumindest teilweise zu empfangen und ein Ausgangssignal (405) der Entropiequelle (401) oder ein Vorläufersignal desselben zu erzeugen. 19. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 18, 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) is configured to emit photons as a quantum signal (57) 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) is configured to at least partially receive the quantum signal (57) of the photon source (54) and to generate an output signal (405) of the entropy source (401) or a precursor signal thereof.
20. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 19 und Anspruch 2, wobei die Photonenquelle (54) eine Silizium-LED, insbesondere eine Zener-avLED, umfasst. 20. Quantum process-based generator (28) for true random numbers (411, 418) according to claim 19 and claim 2, wherein the photon source (54) comprises a silicon LED, in particular a Zener avLED.
21. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach Anspruch 19 oder 20, wobei die Photonenquelle (55) eine SPAD-Diode umfasst. 21. A quantum process based true random number generator (28) according to claim 19 or 20, wherein the photon source (55) comprises a SPAD diode.
22. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der Ansprüche 1 bis 21, wobei der quantenprozessbasierende Generator (28) ganz oder in Teilen in einem Pad-Rahmen (2403) zwischen Anschluss-Pads (2402) eines integrierten Schaltkreises (2) auf einem Die (2401) dieses integrierten Schaltkreises (2) platziert ist, und wobei zumindest die Entropiequelle (401) im Pad-Rahmen (2403) zwischen den Anschluss-Pads (2402) des integrierten Schaltkreises (2) auf dem Die (2401) dieses integrierten Schaltkreises (2) platziert ist. 22. Quantum process-based generator (28) for true random numbers (411, 418) according to one of claims 1 to 21, wherein the quantum process-based generator (28) is placed entirely or in part in a pad frame (2403) between connection pads (2402) of an integrated circuit (2) on a die (2401) of this integrated circuit (2), and wherein at least the entropy source (401) is placed in the pad frame (2403) between the connection pads (2402) of the integrated circuit (2) on the die (2401) of this integrated circuit (2).
23. Quantenprozessbasierender Generator (28) für echte Zufallszahlen (411, 418) nach einem der23. Quantum process-based generator (28) for true random numbers (411, 418) according to one of the
Ansprüche 5 bis 24, wobei die Entropiequelle (401) des quantenprozessbasierenden Generators (28), insbesondere mittels Metallschichten (53, 142) und/oder Silizid-Schichten und Durchkontaktierungen (140), bis auf Signaldurchführungen durch diese Kapselung von zumindest einer Seite, besser zumindest von zwei Seiten, besser zumindest von dreiClaims 5 to 24, wherein the entropy source (401) of the quantum process-based generator (28), in particular by means of metal layers (53, 142) and/or silicide layers and vias (140), except for signal feedthroughs through this encapsulation from at least one side, better at least from two sides, better at least from three
Seiten, besser zumindest von vier Seiten, besser zumindest von fünf Seiten gekapselt ist. sides, preferably at least four sides, preferably at least five sides.
PCT/DE2023/100717 2022-10-04 2023-09-26 Qrng with prng use and vertical entropy source WO2024074170A1 (en)

Applications Claiming Priority (5)

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 2023-09-26

Publications (2)

Publication Number Publication Date
WO2024074170A1 true WO2024074170A1 (en) 2024-04-11
WO2024074170A4 WO2024074170A4 (en) 2024-07-11

Family

ID=88585080

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2023/100717 WO2024074170A1 (en) 2022-10-04 2023-09-26 Qrng with prng use and vertical entropy source

Country Status (2)

Country Link
DE (4) DE102023126170A1 (en)
WO (1) WO2024074170A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0352694B1 (en) 1988-07-27 1993-03-24 Neopost Industrie Buckling folder
WO2016016741A1 (en) 2014-07-30 2016-02-04 Trentino Sviluppo S.P.A. True random number generator
US20190212985A1 (en) * 2016-05-05 2019-07-11 Id Quantique Sa 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
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0352694B1 (en) 1988-07-27 1993-03-24 Neopost Industrie Buckling folder
WO2016016741A1 (en) 2014-07-30 2016-02-04 Trentino Sviluppo S.P.A. True random number generator
US20190212985A1 (en) * 2016-05-05 2019-07-11 Id Quantique Sa Quanta image sensor quantum random number generation
EP3529694B1 (en) 2016-10-21 2020-12-16 Trentino Sviluppo SPA Improved random number generator, in particular improved true random number generator
DE102018208015A1 (en) * 2018-05-22 2019-11-28 Robert Bosch Gmbh Quantum random number generator and method for producing a quantum random number generator
WO2023072956A1 (en) 2021-10-27 2023-05-04 Elmos Semiconductor Se Car processor with pqc encryption support

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
A. KHANMOHAMMADIR. ENNEM. HOFBAUERH. ZIMMERMANN: "A Monolithic Silicon Quantum Random Number Generator Based on Measurement of Photon Detection Time", IEEE PHOTONICS JOURNAL, vol. 7, no. 5, October 2015 (2015-10-01), pages 1 - 13, XP011586189, DOI: 10.1109/JPHOT.2015.2479411
ANQI HUANG ET AL: "Implementation vulnerabilities in general quantum cryptography", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 17 May 2018 (2018-05-17), XP080879264 *
BURRI SAMUEL ET AL: "SPADs for quantum random number generators and beyond", 2014 19TH ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE (ASP-DAC), IEEE, 20 January 2014 (2014-01-20), pages 788 - 794, XP032570101, DOI: 10.1109/ASPDAC.2014.6742986 *
FABIO ACERBI ET AL: "A Robust Quantum Random Number Generator Based on an Integrated Emitter-Photodetector Structure", IEEE JOURNAL OF SELECTED TOPICS IN QUANTUM ELECTRONICS, vol. 24, no. 6, 1 November 2018 (2018-11-01), USA, pages 1 - 7, XP055666331, ISSN: 1077-260X, DOI: 10.1109/JSTQE.2018.2814787 *
FRANCESCO CECCARELLI ET AL: "Recent advances and future perspectives of single-photon avalanche diodes for quantum photonics applications", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 12 October 2020 (2020-10-12), XP081977007, DOI: 10.1002/QUTE.202000102 *
KHANMOHAMMADI, ABBAS ET AL.: "A monolithic silicon quantum random number generator based on measurement of photon detection time", IEEE PHOTONICS JOURNAL, vol. 7, no. 5, 2015, pages 1 - 13, XP011586189, DOI: 10.1109/JPHOT.2015.2479411
R. L. RIVESTA. SHAMIRL. ADLEMAN: "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems", COMMUNICATIONS OFT HE ACM, vol. 21, no. 2, February 1978 (1978-02-01), pages 120 - 126
TISA SIMONE ET AL: "High-Speed Quantum Random Number Generation Using CMOS Photon Counting Detectors", IEEE JOURNAL OF SELECTED TOPICS IN QUANTUM ELECTRONICS, IEEE, USA, vol. 21, no. 3, 1 May 2015 (2015-05-01), pages 1 - 7, XP011569061, ISSN: 1077-260X, [retrieved on 20150105], DOI: 10.1109/JSTQE.2014.2375132 *
WEN-BO LIU ET AL: "Source-independent quantum random number generator against detector blinding attacks", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 26 April 2022 (2022-04-26), XP091209026 *

Also Published As

Publication number Publication date
DE102023126171A1 (en) 2024-04-04
WO2024074170A4 (en) 2024-07-11
DE102023126167A1 (en) 2024-05-02
DE102023126170A1 (en) 2024-04-04
DE102023126168A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
EP4423963A1 (en) Car processor with pqc encryption support
DE102022128216A1 (en) Method for a doubly encrypted free-space quantum key distribution
DE102022125568A1 (en) device for data processing
WO2024074170A1 (en) Qrng with prng use and vertical entropy source
LU505175B1 (en) Integrated quantum random number generator
DE102022125837A1 (en) Optically controlled electronic fuse
Schellenberg Novel methods of passive and active side-channel attacks.
DE102018100357A1 (en) CHIP AND METHOD FOR SAFE SAVING OF SECRET DATA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23797650

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)