System, method, and computer program for generating true random numbers

By measuring electrical signal timestamps during vehicle startup, the system generates true random numbers for vehicle security without privacy concerns, ensuring immediate availability and sufficient entropy.

JP7896711B2Active Publication Date: 2026-07-29TOYOTA JIDOSHA KK
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2025-01-27
Publication Date
2026-07-29

AI Technical Summary

Technical Problem

Existing vehicle systems face challenges in generating sufficient entropy for true random numbers without compromising user privacy, as collecting data from user interactions can raise privacy concerns and result in insufficient entropy for security functions.

Method used

A system that determines random numbers during the startup process by measuring timestamps as electrical signals flow from the power source to multiple segments in vehicle cores, using nanoseconds or picoseconds as entropy to generate true random numbers.

Benefits of technology

This method ensures sufficient entropy is collected for security functions without compromising user privacy, enabling immediate generation of random numbers post-startup for secure vehicle operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007896711000001
    Figure 0007896711000001
  • Figure 0007896711000002
    Figure 0007896711000002
  • Figure 0007896711000003
    Figure 0007896711000003
Patent Text Reader

Abstract

To provide a system, a method, and a device.SOLUTION: A system, a method, and a device for automatically generating random numbers are provided. According to an embodiment, the system may include a memory storage storing computer-executable instructions, and at least one processor communicatively connected to the memory storage. The at least one processor may be configured to execute the instructions to perform a startup process for a vehicle, determine a plurality of time stamps when electrical signals flow from a power source to a plurality of segments in each of a plurality of cores of the system during the startup process, and generate a random number on the basis of the determined plurality of time stamps.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Systems, methods, and computer programs consistent with exemplary embodiments of the present disclosure relate to true random number generation, and more particularly, to the generation of true numbers for vehicle functions.

Background Art

[0002] Modern vehicles can perform a wide range of complex functions, such as generating telemetry data, transmitting and receiving data via the Internet, and the like. In order for a vehicle to perform the above functions, the vehicle is essentially connected to an upstream server.

[0003] Among these functions, data encryption, authentication, and digital signatures are important aspects for the security of modern vehicles. Generally, cryptographic operations are performed on these functions that involve the generation of random numbers. For example, random numbers can be used by a vehicle to generate dynamic (temporary) keys at startup, can be used for cryptographic exchanges when connecting to an endpoint outside the vehicle, and the like can be done.

[0004] Here, the random number refers to a true random number, and it can be understood that the true random number is not a random number generated by a computer algorithm, but a random number generated by an algorithm that uses entropy (i.e., external unpredictable physical variables such as radioactive decay of isotopes, radio wave sky noise, and the like).

[0005] For example, one or more true random number values (such as radioactive decay of isotopes, radio wave sky noise, and the like) can be collected, and a part of the numbers can be used to generate true random numbers. In one example, three true random number values can be obtained as 01192935, 83783200, and 28473041, and the last three numbers from these values can be used to generate a true random number as 935200041.

[0006] In related technologies, the entropy used to generate random numbers for vehicle functions may be based on user interactions, such as pressure on the steering wheel, vehicle speed in a specific geolocation, how a user turns the vehicle on a particular road, and similar factors. However, generating random numbers based on user interactions may require those interactions to be observed and recorded, which can raise issues regarding privacy laws worldwide related to data collection. To avoid this problem, solutions have been proposed to avoid collecting user data during vehicle startup and for the first 15 minutes of vehicle operation.

[0007] Nevertheless, the above solutions in related technologies may have at least the following drawbacks: Since data is not collected while the vehicle is running, true random variables may not be collected and used as entropy for generating random numbers. Therefore, it is difficult to guarantee that a sufficient amount of entropy is collected to generate random numbers suitable for security functions.

[0008] Therefore, a system is needed that can collect enough entropy to generate random numbers suitable for security functions, while simultaneously generating random numbers for vehicle functions without compromising user privacy. [Overview of the project]

[0009] An exemplary embodiment of the present disclosure automatically determines random numbers during the startup process based on multiple timestamps as electrical signals flow from the power source to multiple segments in each of the multiple cores of the system. Thus, the exemplary embodiment of the present disclosure can collect sufficient entropy to generate random numbers suitable for security functions, while enabling the generation of random numbers for vehicle functions without compromising user privacy.

[0010] According to the embodiment, a system is provided. The system may include a memory storage for storing computer executable instructions, and at least one processor communicatively connected to the memory storage, the at least one processor being configured to execute instructions to perform a starting process for a vehicle, and during the starting process to determine a plurality of timestamps as electrical signals flow from a power source to a plurality of segments in each of a plurality of cores of the system, and to generate random numbers based on the determined plurality of timestamps.

[0011] According to the embodiment, the multiple timestamps may be nanoseconds or picoseconds.

[0012] According to one embodiment, at least one processor may be configured to generate random numbers by executing instructions to determine one or more parts of each of a plurality of determined timestamps, and by combining one or more parts of each of the plurality of determined timestamps to form a random number.

[0013] According to the embodiment, one or more parts relating to each of the determined multiple timestamps may include one or more digits relating to each of the determined multiple timestamps.

[0014] According to one embodiment, at least one processor may be configured to combine one or more parts of each of a plurality of determined timestamps by executing instructions to align one or more parts of each of a plurality of determined timestamps to form a random number, or by performing one or more mathematical operations on one or more parts of each of a plurality of determined timestamps to form a random number.

[0015] According to one embodiment, the system may include a system-on-a-chip (SoC).

[0016] According to one embodiment, multiple timestamps may be determined using an internal debug meter.

[0017] According to the embodiment, multiple timestamps may differ for each startup process.

[0018] According to embodiments, a method is provided that is performed by the system. The method may include performing a starting process for a vehicle, determining a plurality of timestamps during the starting process as electrical signals flow from a power source to a plurality of segments in each of a plurality of cores of the system, and generating random numbers based on the determined plurality of timestamps.

[0019] According to the embodiment, the multiple timestamps may be nanoseconds or picoseconds.

[0020] According to one embodiment, the generation of a random number may include determining one or more parts relating to each of a set of determined timestamps, and combining one or more parts relating to each of the set of determined timestamps to form a random number.

[0021] According to the embodiment, one or more parts relating to each of the determined multiple timestamps may include one or more digits relating to each of the determined multiple timestamps.

[0022] According to the embodiment, a combination of one or more parts relating to each of the determined multiple timestamps may include forming a random number by aligning one or more parts relating to each of the determined multiple timestamps, or forming a random number by performing one or more mathematical operations on one or more parts relating to each of the determined multiple timestamps.

[0023] According to one embodiment, the system may include a system-on-a-chip (SoC).

[0024] According to one embodiment, multiple timestamps may be determined using an internal debug meter.

[0025] According to an embodiment, the plurality of timestamps can be different for all startup processes.

[0026] According to an embodiment, a non - transient computer - readable recording medium is provided. The non - transient computer - readable recording medium may record instructions for causing at least one processor of a system to perform a method on the non - transient computer - readable recording medium. Also, according to an embodiment, a computer program for causing at least one processor to perform a method is provided. The method includes performing a startup process for a vehicle, determining a plurality of timestamps when an electrical signal flows from a power source to a plurality of segments in each of a plurality of cores of the system during the startup process, and generating a random number based on the determined plurality of timestamps.

[0027] According to an embodiment, the plurality of timestamps can be in nanoseconds or picoseconds.

[0028] According to an embodiment, the generation of the random number may include determining one or more portions for each of the determined plurality of timestamps and combining the one or more portions for each of the determined plurality of timestamps to form a random number.

[0029] According to an embodiment, the plurality of timestamps can be determined using internal debug data.

[0030] Additional aspects are described in part below and will become apparent in part from the description or can be realized by the practice of the presented embodiments of the disclosure.

Brief Description of the Drawings

[0031] The features, advantages, and significance of the preferred embodiments of the present disclosure are described below with reference to the accompanying drawings, in which like reference numerals indicate like elements. [Figure 1]Figure 1 shows a block diagram of exemplary components in a random number generation (RNG) system according to one or more embodiments. [Figure 2A] Figure 2A shows an exemplary architecture of a random number generation (RNG) system according to one or more embodiments. [Figure 2B] Figure 2B shows an exemplary core architecture in a random number generation (RNG) system according to one or more embodiments. [Figure 3] Figure 3 shows a flowchart of an exemplary method for generating random numbers according to one or more embodiments. [Modes for carrying out the invention]

[0032] A detailed description of exemplary embodiments follows with reference to the accompanying drawings. The same reference numerals in different drawings may identify the same or similar elements.

[0033] The foregoing disclosures are illustrative and illustrative, but are not intended to be exhaustive or to limit implementations to the exact forms disclosed. Modifications and variations may be possible in view of the foregoing disclosures or may be obtained from implementations. Furthermore, one or more features or components of one embodiment may be incorporated into or combined with another embodiment (or one or more features of another embodiment). Furthermore, it should be understood that in the flowcharts and descriptions of operations provided below, one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) simultaneously, and the order of one or more operations may be changed.

[0034] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement such systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code. It is understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.

[0035] Where particular combinations of features are enumerated in the claims and / or disclosed herein, such combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features can be combined in ways not specifically enumerated in the claims and / or disclosed herein. Each of the dependent claims listed below may depend directly on only one claim, but the disclosure of possible implementations includes each dependent claim combined with all other claims in the set of claims.

[0036] Any element, action, or instruction used herein should not be construed as important or essential unless explicitly stated otherwise. Furthermore, when used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” When referring to only one item, the term “one” or similar terms should be used. Also, when used herein, the terms “has,” “have,” “having,” “include,” “including,” or similar terms are intended to be open-ended. Additionally, the phrase “based on” is intended to mean “at least partially based on” unless explicitly stated otherwise. Furthermore, expressions such as “at least one of [A] and [B],” “[A] and / or [B],” or “at least one of [A] or [B]” should be understood as including only A, only B, or both A and B.

[0037] The features, advantages, and importance of the exemplary embodiments described herein are merely a part of the disclosure and are not intended to be exhaustive or to limit the scope of the disclosure.

[0038] Further descriptions of the features, components, configuration, operation, and implementations of the random number generation system of this disclosure, according to one or more embodiments, are provided below.

[0039] Exemplary system architecture Figure 1 shows a block diagram of exemplary components in a random number generation (RNG) system 100 according to one or more embodiments.

[0040] An RNG system may include a system, platform, module, or similar that can be configured to perform one or more operations or actions to generate random numbers. According to one embodiment, the RNG system 100 may include a chip installed in a vehicle. For example, the RNG system 100 may include a system-on-a-chip (SoC) installed in a vehicle and communicatively connected to one or more components of the vehicle, such as an electronic control unit (ECU) and similar.

[0041] As shown in Figure 1, the RNG system 100 may include at least one communication interface 110, at least one processor 120, at least one input / output unit 130, and at least one storage 140, but it can be understood that without departing from the scope of this disclosure, the RNG system 100 may include more or fewer components than those shown in Figure 1, and / or the components may be arranged in a manner different from that shown in Figure 1.

[0042] The communication interface 110 may include at least one transceiver-like component (e.g., transceiver, separate receiver and transmitter, bus, etc.) that enables the components of the RNG system 100 to communicate with each other and / or with one or more components outside the RNG system 100 via wired connections, wireless connections, or a combination of wired and wireless connections.

[0043] For example, the communication interface 110 may connect the processor 120 to the storage 140, thereby enabling them to communicate with each other and operate in conjunction when performing one or more operations. In another example, the communication interface 110 may connect the RNG system 100 (or one or more components contained therein) in such a way that they can communicate with each other and operate in conjunction.

[0044] According to one or more embodiments, the communication interface 110 may include one or more application programming interfaces (APIs) that enable the RNG system 100 (or one or more components contained therein) to communicate with one or more software applications.

[0045] The input / output unit 130 may include at least one component that enables the RNG system 100 to receive and / or provide output information. In some embodiments, the input / output unit 130 may include at least one input component (e.g., a touchscreen display, button, switch, microphone, sensor, etc.) and at least one output component (e.g., a display, speaker, one or more light-emitting diodes (LEDs), etc.), each of which may be separated from each other.

[0046] The storage 140 may include one or more storage media suitable for internally storing data, information, and / or computer executable instructions. According to embodiments, the storage 140 may include at least one memory storage such as random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) for storing information and / or instructions for use by the processor 120. Furthermore or alternatively, the storage 140 may include, together with a corresponding drive, a hard disk (e.g., magnetic disk, optical disk, magneto-optical disk, and / or solid-state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-temporary computer-readable media.

[0047] According to the embodiment, the storage 140 may be configured to store information such as raw data, metadata, or the like. Furthermore, or alternatively, the storage 140 may be configured to store one or more pieces of information associated with one or more operations performed by the processor 120. For example, the storage 140 may store historical operations performed by the processor 120 to generate random numbers, one or more results of operations performed by the processor 120, or information defining the like. Furthermore, the storage 140 may store data or information required when generating random numbers.

[0048] In some implementations, the storage 140 may include multiple storage media, and the storage 140 may be configured to store copies or duplicates of at least a portion of the information in the multiple storage media in order to provide redundancy and to back up the information or associated data. Furthermore, the storage 140 may also store computer-readable instructions or computer-executable instructions that, when executed by one or more processors (e.g., processor 120), cause one or more processors to perform one or more actions / operations described herein.

[0049] The processor 120 may include at least one processor that is programmable or configurable to perform functions or operations described herein. For example, the processor 120 may be configured to execute computer executable instructions stored in at least one storage medium or memory storage (e.g., storage 140) to perform one or more actions or operations described herein.

[0050] According to the embodiment, the processor 120 may be configured to receive one or more signals and / or one or more user inputs (for example, via the communication interface 110, via the input / output unit 130, etc.) that define one or more instructions for performing one or more operations. Furthermore, the processor 120 may be implemented in hardware, firmware, or a combination of hardware and software. For example, the processor 120 may include at least one of the following: a central processing unit (CPU), an image processing unit (GPU), an accelerator processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processing or computing component.

[0051] According to one embodiment, the processor 120 may be configured to collect, extract, and / or receive one or more pieces of information (such as signals or data), process the received pieces of information, and thereby generate random numbers.

[0052] A description of some exemplary operations that may be performed by the processor 120 of the RNG system 100 for generating random numbers is provided below with reference to Figure 3.

[0053] Figure 2A shows an exemplary architecture of the RNG system 200 according to one or more embodiments. The RNG system 200 may correspond to the RNG system 100 in Figure 1, and therefore, features associated with the RNG system 200 and the RNG system 100 may be similarly applicable to each other unless otherwise explicitly stated.

[0054] As shown in Figure 2A, the RNG system 200 may include a plurality of cores, namely cores 210, 220, 230, and 240. Each of the plurality of cores 210, 220, 230, and 240 may comprise a processor core, which may include one or more of the following: a microcontroller, a microprocessor, a digital signal processor (DSP), an application-specific instruction set processor (ASIP), and the like.

[0055] Figure 2B shows an exemplary architecture of core 210 in RNG system 200 according to one or more embodiments. It should be understood that cores 220, 230, and 240 may have a similar architecture unless otherwise explicitly stated.

[0056] As shown in Figure 2B, the core 210 may include a plurality of segments, namely segment 212-a, segment 212-b, segment 212-c, and segment 212-d, and a monitoring module 214. The plurality of segments may refer to a plurality of physical sections / parts that form the core. According to the embodiment, each of the plurality of segments may include one or more components of the core. For example, the plurality of segments may include one or more of the processor core's control unit, arithmetic logic unit, memory, and similar components. According to the embodiment, the monitoring module 214 may be configured to monitor and track the startup (power-on) process of the RNG system 200. For example, the monitoring module 214 may include an internal debug meter of the SoC configured to monitor and track the SoC startup process during vehicle startup.

[0057] According to the embodiment, the RNG system 200 may include additional components that enable the monitoring module 214 to monitor and track the system startup process, or may be communicably connected to such additional components. For example, the RNG system 200 may include a high-grade camera and / or electroencephalogram as part of the internal diagnostics of the SoC.

[0058] It should be understood that the configurations shown in Figures 2A and 2B are simplified for illustrative purposes and are not intended in any way to limit the scope of this disclosure. Specifically, the number of cores and segments can actually be any number. Furthermore, it should be understood that, without departing from the scope of this disclosure, the RNG system 200 may include more or fewer components than those shown in Figures 2A and 2B, and / or the components may be arranged in a different manner than those shown in Figures 2A and 2B.

[0059] exemplified operation for generating random numbers in this disclosure Some exemplary operations that can be performed by the RNG system of this disclosure are described below with reference to Figure 3.

[0060] Figure 3 shows a flowchart of an exemplary method 300 for generating random numbers according to one or more embodiments. One or more operations in method 300 may be performed by at least one processor (e.g., processor 120) of the RNG system.

[0061] As shown in Figure 3, in operation S310, at least one processor may be configured to perform a start process for the vehicle. The start process may include turning on power to various components of the vehicle, including multiple segments for each of the multiple cores of the system. The method then proceeds to operation S320.

[0062] In operation S320, at least one processor may be configured to determine multiple timestamps during the startup process as electrical signals flow from the power supply to multiple segments in each of the multiple cores of the system. According to one embodiment, the multiple timestamps may comprise the time between the start of the startup process and the time when the electrical signals reach the multiple segments in each of the multiple cores. Furthermore, the multiple timestamps may be nanoseconds or picoseconds.

[0063] For example, returning to Figure 2B, the time between the start of the startup process and the time when the electrical signal reaches segments 212-a, 212-b, 212-c, and 212-d of core 210 could be 1265 picoseconds, 1326 picoseconds, 2854 picoseconds, and 1124 picoseconds, respectively. Therefore, multiple timestamps could have durations of 1265 picoseconds, 1326 picoseconds, 2854 picoseconds, and 1124 picoseconds.

[0064] According to the embodiment, multiple timestamps may differ for each startup process.

[0065] When a vehicle is powered on during the startup process, electricity can flow from the power source to various components of the vehicle, including multiple segments relating to each of the system's multiple cores, where each of the multiple segments can be powered on individually. Here, even though the components are physically wired together and the power-on order of those components remains the same, the time it takes for the electrical signal to flow from the power source to each of the multiple segments will differ each time the vehicle is powered on. For example, the time between the start of the startup process and the time when the electrical signal reaches segment 212-a is 1265 picoseconds in the above example, but this time may differ during subsequent startup processes. Therefore, multiple timestamps can be used as entropy to generate random numbers.

[0066] According to one embodiment, multiple timestamps may be determined using a monitoring module of the RNG system. The monitoring module may include, for example, an internal debug meter included in the SoC. Furthermore, according to another embodiment, multiple timestamps may be stored in memory. The method then proceeds to operation S330.

[0067] In operation S330, at least one processor may be configured to generate random numbers based on a set of determined timestamps.

[0068] According to one embodiment, at least one processor may be configured to generate random numbers based on a plurality of determined timestamps by determining one or more parts relating to each of the plurality of determined timestamps. For example, one or more parts relating to each of the plurality of determined timestamps may include one or more digits relating to each of the plurality of determined timestamps.

[0069] For example, at least one processor may be configured to determine the last three digits for each of a set of determined timestamps, where the determined last three digits for each of the set of determined timestamps could be 265, 326, 854, and 124 for segments 212-a, 212-b, 212-c, and 212-d of core 210, respectively. In another example, at least one processor may be configured to determine the first and last digits for each of the set of determined timestamps, where the determined first and last digits for each of the set of determined timestamps could be 15, 16, 24, and 14 for segments 212-a, 212-b, 212-c, and 212-d of core 210, respectively.

[0070] According to one embodiment, at least one processor may be configured to generate random numbers based on a plurality of determined timestamps by combining one or more parts of each of the plurality of determined timestamps to form a random number.

[0071] According to one embodiment, at least one processor may be configured to form a random number by combining one or more parts of each of the determined multiple timestamps by aligning one or more parts of each of the determined multiple timestamps to form a random number. For example, at least one processor may be configured to form a random number as 265326854124 by aligning the last three digits of each of the determined multiple timestamps.

[0072] According to one embodiment, at least one processor may be configured to combine one or more parts of each of the determined multiple timestamps to form a random number by performing one or more mathematical operations on one or more parts of each of the determined multiple timestamps to form a random number. For example, at least one processor may be configured to multiply the last three digits of each of the determined multiple timestamps to form a random number as 9148355440.

[0073] The above examples provided in relation to the timestamps of segments 212-a, 212-b, 212-c, and 212-d of core 210 should be understood to be simplified for illustrative purposes and not intended in any way to limit the scope of this disclosure. In particular, timestamps of segments relating to other cores of the RNG system may also be used.

[0074] In this regard, since random numbers are generated based on timestamps as electrical signals flow from the power supply to multiple segments in each of the system's multiple cores, rather than on user interaction, random numbers can be generated immediately after startup without compromising user privacy. Furthermore, since the timestamps as electrical signals flow from the power supply to multiple segments in each of the multiple cores are different for all startup processes and are in nanoseconds / picoseconds, sufficient entropy can be collected to generate random numbers suitable for security functions.

[0075] Therefore, since the key may be generated from a random number and available for use immediately after starting, the above process may also enable the vehicle to establish a wireless connection immediately after starting.

[0076] When operation S330 is performed, method 300 may terminate or end. Alternatively, method 300 may return to operation S310, as a result, at least one processor may be configured to repeatedly perform the startup process (in operation S310), determine a number of timestamps (in operation S320), and generate random numbers (in operation S330) for at least a predetermined amount of time.

[0077] For example, a user may start their vehicle in a first time period, and at least one processor may be configured to perform a start process (in operation S310), determine multiple timestamps (in operation S320), and generate a random number (in operation S330). The user may then start their vehicle in a second time period, and at least one processor may be configured to repeat the start process (in operation S310), determine multiple timestamps (in operation S320), and generate a random number (in operation S330). Here, it can be understood that the random number generated when the user starts their vehicle in the first time period may be different from the random number generated when the user starts their vehicle in the second time period.

[0078] Various embodiments The foregoing disclosures are illustrative and illustrative, but are not intended to be exhaustive or to limit the implementations to the exact forms disclosed. Modifications and variations may be possible in view of the foregoing disclosures or may be obtained from implementations of the implementations.

[0079] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail of integration. Furthermore, one or more of the above-described components may be implemented as instructions stored in a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-temporary storage medium (or multiple mediums) having computer-readable program instructions for causing a processor to perform an operation.

[0080] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any preferred combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes, namely, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved ridges on which instructions are recorded, and any preferred combination thereof. The computer-readable storage media used herein should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmitting media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.

[0081] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device, or they may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.

[0082] Computer-readable program code / instructions for performing an operation may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, or similar, and procedural programming languages ​​such as the "C" programming language or similar programming languages. Computer-readable program instructions may be fully executed on the user's computer, partially executed on the user's computer, executed as a standalone software package, partially executed on the user's computer and partially executed on a remote computer, or fully executed on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection to an external computer may be made (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform a particular action or operation.

[0083] The computer-readable program instructions may be provided to a processor of a general-purpose computer, a dedicated computer, or other programmable data processing device to generate a machine, and as a result, the instructions executed via the processor of the computer or other programmable data processing device generate means for implementing the functions / actions specified in the blocks or blocks of a flowchart and / or block diagram. The computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device to function in a particular way, and as a result, the computer-readable storage medium in which the instructions are stored comprises a manufactured article containing instructions that implement the modes of functions / actions specified in the blocks or blocks of a flowchart and / or block diagram.

[0084] Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device to perform a series of operational steps on the computer, other programmable device, or other device, thereby generating a computer implementation process, the instructions executed on the computer, other programmable device, or other device, which implement the functions / actions specified in the blocks or blocks(s) of a flowchart and / or block diagram.

[0085] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in a flowchart or block diagram may represent a microservice module, segment, or part of an instruction set comprising one or more executable instructions for implementing a specified logical function. Methods, computer systems, and computer-readable media may include additional blocks, fewer blocks, different blocks, or blocks in different arrangements compared to those depicted in the figures. In some alternative implementations, the functions described in the blocks may occur regardless of the order in which they are shown in the figures. For example, two consecutively shown blocks may actually be executed simultaneously or substantially simultaneously, or blocks may be executed in reverse order depending on the functions they relate to. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs a specified function or action or executes a dedicated combination of hardware and computer instructions.

[0086] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement the systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it is understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.

[0087] It can be understood that many modifications and variations of this disclosure are possible in light of the teachings above. Within the scope of the attached sections, it will be apparent that this disclosure may be carried out in ways other than those specifically described herein.

Claims

1. It is a system, Memory storage that stores executable instructions for a computer, At least one processor that is communicatively connected to the memory storage, Equipped with, The at least one processor executes the instruction, Perform the vehicle startup process, During the startup process, multiple timestamps are determined as electrical signals flow from the power source to multiple segments in each of the multiple cores of the system within the vehicle in response to the vehicle being powered on. A system configured to generate random numbers based on a plurality of predetermined timestamps.

2. The system according to claim 1, wherein the plurality of timestamps are nanoseconds or picoseconds.

3. The at least one processor executes the instruction, Determining one or more parts of each of the multiple timestamps determined above, The random number is formed by combining one or more parts of each of the multiple determined timestamps, The system according to claim 1 or 2, configured to generate the aforementioned random numbers.

4. The system according to claim 3, wherein the one or more portions relating to each of the determined plurality of timestamps comprises one or more digits relating to each of the determined plurality of timestamps.

5. The at least one processor executes the instruction, The random number is formed by aligning one or more parts of each of the multiple determined timestamps, or To form the random numbers, perform one or more mathematical operations on one or more parts of each of the multiple determined timestamps. The system according to claim 3, configured to combine one or more portions relating to each of the multiple timestamps determined by the above.

6. The system according to claim 1 or 2, comprising a system-on-a-chip (SoC).

7. The system according to claim 1 or 2, wherein the plurality of timestamps are determined using an internal debug meter.

8. The system according to claim 1 or 2, wherein the plurality of timestamps are different for all startup processes.

9. A method performed by the system, Performing the vehicle's startup process, During the startup process, multiple timestamps are determined as electrical signals flow from the power source to multiple segments in each of the multiple cores of the system within the vehicle in response to the vehicle being powered on. The process involves generating random numbers based on the multiple timestamps determined above, Methods that include...

10. The method according to claim 9, wherein the plurality of timestamps are nanoseconds or picoseconds.

11. The generation of the aforementioned random numbers is Determining one or more parts of each of the multiple timestamps determined above, The random number is formed by combining one or more parts of each of the multiple determined timestamps, The method according to claim 9 or 10, including the method described in claim 9 or 10.

12. The method according to claim 11, wherein the one or more portions relating to each of the determined plurality of timestamps comprises one or more digits relating to each of the determined plurality of timestamps.

13. The combination of one or more parts relating to each of the multiple timestamps determined above is: The random number is formed by aligning one or more parts of each of the multiple determined timestamps, or To form the random numbers, perform one or more mathematical operations on one or more parts of each of the multiple determined timestamps. The method according to claim 11, including the method described in claim 11.

14. The method according to claim 9 or 10, wherein the system comprises a system-on-a-chip (SoC).

15. The method according to claim 9 or 10, wherein the plurality of timestamps are determined using an internal debug meter.

16. The method according to claim 9 or 10, wherein the plurality of timestamps are different for all startup processes.

17. A computer program for causing at least one processor to perform a method, wherein the method is Performing the vehicle's startup process, During the aforementioned startup process, multiple timestamps are determined as electrical signals flow from the power source to multiple segments in each of the multiple cores of the system within the vehicle in response to the vehicle being powered on. The process involves generating random numbers based on the multiple timestamps determined above, A computer program that includes [this].

18. The computer program according to claim 17, wherein the plurality of timestamps are nanoseconds or picoseconds.

19. The generation of the aforementioned random numbers is Determining one or more parts of each of the multiple timestamps determined above, The random number is formed by combining one or more parts of each of the multiple determined timestamps, A computer program according to claim 17 or 18, including the computer program described in claim 17 or 18.

20. The computer program according to claim 17 or 18, wherein the plurality of timestamps are determined using an internal debug meter.