Random number generation device, method of operating random number generation device, and electronic device
Patent Information
- Application Number
- CN202610188703.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-02-17
- Filing Date
- 2026-02-10
- Publication Date
- 2026-08-18
AI Technical Summary
因此,制造成本被增加,并且各种变化的总熵输入不能被灵活地处理
Smart Images

Figure CN122593741A_ABST
Abstract
Description
[0001] This application is based on and claims priority to Korean Patent Application No. 10-2025-0020355, filed on February 17, 2025, with the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference. Technical Field
[0002] This disclosure relates to electronic devices, and more specifically, to random number generation devices, methods of operating random number generation devices, and electronic devices. Background Technology
[0003] As technology advances and personalized electronic devices (such as smartphones) become more prevalent, users can encrypt their personal information and other important data and store them on storage devices. Electronic devices can have enhanced data security by utilizing user-defined passwords, patterns, biometric information, and more.
[0004] To ensure data security, random number generators may be included in electronic devices. Random number generators can be designed according to standards published by the National Institute of Standards and Technology (NIST), such as NIST Special Publications 800-90A and / or 800-90C. Random number generators may use entropy input to handle cryptographic operations during instantiation or reseeding. However, according to the standards (e.g., NIST Special Publications 800-90A and / or 800-90C), the total entropy input required for instantiation or reseeding is determined, and random number generators of related technologies store the total entropy input until instantiation or reseeding is complete. Therefore, it is difficult to reduce the size of the memory and also difficult to reduce the size of the electronic device.
[0005] Furthermore, the size of the total entropy input required according to standards (e.g., NIST Special Publications 800-90A and / or 800-90C) can be set differently depending on factors such as security strength. As the size of the total entropy input varies, the random number generators of the relevant techniques are designed differently. Therefore, manufacturing costs are increased, and the various variations in the total entropy input cannot be handled flexibly. Summary of the Invention
[0006] The invention discloses a random number generation apparatus, a method for operating the random number generation apparatus, and an electronic device. The random number generation apparatus includes a seed material memory, an output memory, and a cryptographic engine. The seed material memory has an optimal size for generating random numbers using seed material processed once.
[0007] According to one aspect of the disclosure, a random number generation apparatus is provided, the random number generation apparatus comprising: instantiation and reseeding functional logic and random number generation logic, wherein the instantiation and reseeding functional logic is configured to: receive an entropy input from an entropy source for each of at least some of a plurality of cryptographic operation sequences, the entropy input having a size less than or equal to a reference size of a reference seed material that can be processed once during a cryptographic operation; repeatedly execute cryptographic operations in the current cryptographic operation sequence based on the seed material configured to be processed once during a cryptographic operation in the current cryptographic operation sequence and the operation results of cryptographic operations in previous cryptographic operation sequences; and output a derived function signal corresponding to an internal state based on a plurality of operation result values after the plurality of cryptographic operation sequences have been completed, wherein the random number generation logic is configured to: generate random number data including random numbers based on the derived function signal.
[0008] According to another aspect of the disclosure, a method for operating a random number generation apparatus is provided, the method comprising: receiving an entropy input from an entropy source for each of at least some of a plurality of cryptographic operation sequences, the entropy input having a size less than or equal to a reference size of a reference seed material that can be processed once in the cryptographic operation; repeatedly performing cryptographic operations in the current cryptographic operation sequence based on the seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence and the operation results of cryptographic operations in previous cryptographic operation sequences; outputting a derived function signal corresponding to an internal state based on a plurality of operation result values after the plurality of cryptographic operation sequences have been completed; and generating random number data including random numbers based on the derived function signal.
[0009] According to another aspect of the disclosure, an electronic device is provided, the electronic device comprising: a random number generator configured to generate random numbers; and a processor configured to execute an encryption algorithm based on the random numbers. The random number generator includes: instantiation and reseeding functional logic and random number generation logic, the instantiation and reseeding functional logic being configured to: receive an entropy input from an entropy source for each of at least some of a plurality of cryptographic operation sequences, the entropy input having a size less than or equal to a reference size of a reference seed material that can be processed once during a cryptographic operation; repeatedly execute cryptographic operations in the current cryptographic operation sequence based on the seed material configured to be processed once during a cryptographic operation in the current cryptographic operation sequence and the operation results of cryptographic operations in previous cryptographic operation sequences; and output a derived function signal corresponding to an internal state based on a plurality of operation result values after the plurality of cryptographic operation sequences have been completed, the random number generation logic being configured to: generate random number data including the random numbers based on the derived function signal. Attached Figure Description
[0010] The exemplary embodiments will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings.
[0011] Figure 1 This is a block diagram of an electronic device according to an embodiment.
[0012] Figure 2 This is a block diagram of the instantiation and reseeding functional units according to the embodiment.
[0013] Figure 3 It is a diagram used to describe information according to an embodiment.
[0014] Figure 4A , Figure 4B and Figure 4C This is a diagram illustrating the generation of derived function signals according to one or more embodiments.
[0015] Figure 5A , Figure 5B and Figure 5C This is a diagram illustrating the generation of derived function signals according to one or more embodiments.
[0016] Figure 6A , Figure 6B and Figure 6C Each of these is a diagram illustrating the generation of derived function signals according to one or more embodiments.
[0017] Figure 7 This is a flowchart illustrating the operation method of a random number generation apparatus according to an embodiment.
[0018] Figure 8 It is used to describe Figure 7 A flowchart of an embodiment of operation S120.
[0019] Figure 9 It is used to describe Figure 8 A flowchart of an embodiment of operation S220.
[0020] Figure 10 It is shown Figure 8 A flowchart of another embodiment of operation S220.
[0021] Figure 11 This is a flowchart illustrating a method for generating derived function signals according to an embodiment. Detailed Implementation
[0022] In the following description, exemplary embodiments will be described in detail with reference to the accompanying drawings.
[0023] Regardless of order and / or importance, the ordinal expressions “first,” “second,” etc., used in this specification can describe various components and are used only to distinguish one component from others, not to limit the components. For example, regardless of order or importance, a first user device and a second user device can refer to different user devices. For example, without departing from the scope of the rights set forth herein, a first component can be renamed a second component, and similarly, a second component can be renamed a first component.
[0024] Figure 1 This is a block diagram of the electronic device 10 according to an embodiment.
[0025] Reference Figure 1 The electronic device 10 may be a subsystem included in a system that is different from, for example, a fixed computing system (such as a server, desktop computer, etc.), a portable computing system (such as a mobile phone, wearable device, laptop computer, etc.), or a standalone computing system (such as a home appliance, industrial equipment, or vehicle).
[0026] In some embodiments, the electronic device 10 may include an entropy source 100, a random number generator 110, and a processor 120. According to some embodiments, the entropy source 100 may be external to the electronic device 10.
[0027] Entropy source 100 can be configured to generate entropy input ENT and to provide entropy input ENT to random number generation device 110.
[0028] The random number generation device 110 can be configured to generate random number data (RND) including random numbers (random numbers or random bits) based on the entropy input ENT. For example, the random number generation device 110 can be implemented as a random number generation device (such as a pseudo-random number generator (PRNG), a deterministic RNG (DRNG), a true RNG (TRNG), a deterministic random bit generator (DRBG), etc.). The random number generation device 110 according to the embodiment can comply with the standards of the National Institute of Standards and Technology (e.g., NIST Special Publication 800-90A and / or 800-90C) and can perform all the functions in the standards (e.g., NIST Special Publication 800-90A and / or 800-90C). If the random number generation device 110 according to the embodiment is a DRBG, the DRBG can be implemented as a counter-mode deterministic random bit generator (CTR_DRBG), a hash-based deterministic random bit generator (HASH_DRBG), etc.
[0029] In an embodiment, the random number generation device 110 may include an instantiation and reseeding functional unit (or instantiation and reseeding functional logic) 111 and a random number generation unit (or random number generation logic) 112.
[0030] The instantiation and reseeding functional unit 111 may receive an entropy input ENT from the entropy source 100. In an embodiment, the entropy input ENT may have a size that is processed once during the cryptographic operation (or simply "crypto operation") of the instantiation and reseeding functional unit 111. The instantiation and reseeding functional unit 111 may be configured to generate a derived function signal DFS corresponding to an internal state (e.g., an initial state) based on the entropy input ENT.
[0031] The instantiation and reseeding function unit 111 can be configured to receive an entropy input from the entropy source 100 for each of at least some of the multiple cryptographic operation sequences, having a size “less than or equal to the reference size of the reference seed material that can be processed once during the cryptographic operation”.
[0032] The instantiation and reseeding function unit 111 can be configured to repeatedly execute the cryptographic operations in the current cryptographic operation sequence based on "seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence" and "operation results of the cryptographic operations in the previous cryptographic operation sequence".
[0033] The instantiation and reseeding function unit 111 can be configured to output a derived function signal corresponding to the internal state based on multiple operation result values after multiple cryptographic operation sequences have been completed.
[0034] In an embodiment, the instantiation and reseeding functional unit 111 may include a seed material storage 111a, a controller 111b, a cryptographic engine 111c, and an output storage 111d.
[0035] Seed material storage 111a can store entropy input ENT provided from entropy source 100. Seed material storage 111a can communicate with controller 111b, receive at least one control data including various values from controller 111b, and store the values of the control data. The various data stored in seed material storage 111a can be referred to as seed material.
[0036] The controller 111b can provide at least one control data to the seed material storage 111a. The controller 111b can also provide control signals for controlling the operation of the cryptographic engine 111c to the cryptographic engine 111c.
[0037] Cryptographic engine 111c can perform cryptographic operations based on control signals from controller 111b. Cryptographic engine 111c can store the value of the result of the cryptographic operation in output memory 111d. Cryptographic engine 111c can communicate with output memory 111d, receive the value of the operation result from output memory 111d as an intermediate result value, and use the intermediate result value during cryptographic operations. For example, cryptographic engine 111c can be implemented using various engines such as Advanced Encryption Standard (AES)-256 and Secure Hash Algorithm (SHA)-256.
[0038] The output memory 111d can store the values of the operation results provided by the cryptographic engine 111c. Within the output memory 111d, storage areas can be allocated for storing the individual values of the operation results.
[0039] The random number generation unit 112 can be configured to generate random number data RND based on the derived function signal DFS.
[0040] Processor 120 can be configured to generate a cryptographic key KY by performing an encryption algorithm based on random number data RND. The cryptographic key KY can be used for authentication operations.
[0041] As described above, the size of each of the seed material memory 111a and the output memory 111d can be reduced by storing only the amount of entropy input ENT required for the cryptographic engine 111c to operate once (or be processed once during cryptographic operation) in the seed material memory 111a when the functional unit 111 is instantiated and reseeded.
[0042] Furthermore, as described above, by reducing the size of each of the seed material memory 111a and the output memory 111d, the area of the random number generation device 110 and the electronic device 10 including the random number generation device 110 can be reduced, thereby achieving device integration.
[0043] Figure 2 This is a block diagram of the instantiation and reseeding functional unit 200 according to the embodiment.
[0044] Reference Figure 2 The instantiation and reseeding functional unit 200 can be used with Figure 1The instantiation and reseeding function unit 200 corresponds to this. When instantiation or reseeding is performed (e.g., when instantiation or reseeding is enabled), the instantiation and reseeding function unit 200 may prioritize the execution of cryptographic operations using the same entropy input and may update the control information used in that cryptographic operation. Furthermore, the instantiation and reseeding function unit 200 may store intermediate result values of the prioritized cryptographic operations. The instantiation and reseeding function unit 200 can then perform cryptographic operations using entropy input as input and one or more previously generated intermediate result values.
[0045] In an embodiment, the instantiation and reseeding function unit 200 may include a seed material storage 210, a controller 220, a cryptographic engine 230, and an output storage 240.
[0046] Seed material memory 210 may be configured to receive at least one of control data CTRLD and entropy input ENT. Furthermore, seed material memory 210 may be configured to store at least one of the received control data CTRLD and entropy input ENT as seed material SDMTL. For example, when instantiated or reseeded, seed material memory 210 may store seed material SDMTL that can be processed once by cryptographic engine 230. When entropy input ENT is stored in seed material memory 210, seed material memory 210 may provide a completion signal DNS indicating the completion of collection of entropy input ENT to controller 220. Seed material memory 210 may store at least one control data CTRLD provided from controller 220. The data stored in seed material memory 210 may be referred to as seed material SDMTL, and according to embodiments, seed material SDMTL may include a counter value, output length, and entropy input corresponding to a specific cryptographic operation sequence, as described below. However, the disclosure is not limited thereto. The size (e.g., storage capacity) of seed material memory 210 may be a reference size for reference seed material. Reference seed material may be seed material that can be processed once during cryptographic operations of cryptographic engine 230.
[0047] Controller 220 can generate control data CTRLD including values for configuring the seed material SDMTL. Controller 220 can generate and / or update at least one control data CTRLD based on a completion signal DNS, and provide at least one control data CTRLD (e.g., generated and / or updated control data) to the seed material memory 210. The control data CTRLD may include at least one value for configuring the seed material SDMTL. The at least one control data CTRLD may include a count value, an output length, and various other values. The count value may be a value representing the number of times a cryptographic operation is repeated in a sequence of cryptographic operations (i.e., the number of repetitions). The output length may be a value indicating the size of the value resulting from the operation and / or a value indicating the size of the storage area allocated in the output memory 240 for storing the value resulting from the operation. Controller 220 can provide at least one control signal CECTRLS to the cryptographic engine 230 to control the operation of the cryptographic engine 230.
[0048] Cryptographic engine 230 can be configured to perform cryptographic operations based on multiple operation result values of output data OD and seed material SDMTL. Furthermore, cryptographic engine 230 can be configured to update multiple operation result values by storing them in output memory 240. Cryptographic engine 230 can initiate cryptographic operations based on control signal CECTRLS and receive a seed block SDB including the seed material SDMTL stored in seed material memory 210. For example, the seed material SDMTL may include a count value, an output length, and an entropy input corresponding to a specific cryptographic operation sequence. For example, the seed block SDB may include an entropy input corresponding to a specific cryptographic operation sequence. For example, the seed block SDB may include control data (such as a count value and an output length) and an entropy input corresponding to a specific cryptographic operation sequence. When a cryptographic operation is performed, cryptographic engine 230 may store the value of the output data OD of the cryptographic operation in output memory 240. Cryptographic engine 230 may receive the value stored in output memory 240 as the value of initialization vector IV and perform cryptographic operations based on the value of initialization vector IV and seed block SDB.
[0049] Output memory 240 can store the values of output data OD for cryptographic operations and provide the stored values as the values of initialization vector IV to cryptographic engine 230. When multiple cryptographic operation sequences are completed, output memory 240 can output a derived function signal DFS based on the values of output data OD provided from cryptographic engine 230. Output memory 240 may include multiple storage regions (RGNs) 241 for storing the values of output data OD. For example, multiple operation result values (e.g., values of output data OD) of previous cryptographic operation sequences can be stored in multiple storage regions 241 respectively. The values of corresponding output data OD can be stored in the corresponding storage regions, and the values of corresponding output data OD can be updated as the cryptographic operation sequence proceeds. The size of output memory 240 can be based on the size of the output data OD output by cryptographic engine 230 and the number of times the cryptographic operation is repeated in a cryptographic operation sequence (see reference). Figure 3 The value is determined by m (for example, m is an integer greater than 1).
[0050] As described above, according to the disclosed embodiments, when designing instantiation and reseeding logic according to standards (e.g., NIST Special Publications 800-90A and / or 800-90C), there may be an effect of optimizing the size of the seed material memory 210 and the output memory 240 by processing total seed material of various sizes without changing the size of the seed material memory 210 and the output memory 240, and an effect of optimizing the area of the instantiation and reseeding functional unit 200 and the random number generation device 110 including the instantiation and reseeding functional unit 200 by reducing the size of the seed material memory 210 and the output memory 240.
[0051] Figure 3 It is a diagram used to describe information according to an embodiment.
[0052] Reference Figures 1 to 3 Control data 310 (e.g., Figure 2 The control data 310 (CTRLD) is data generated by the controller 220 and may include various sizes (or lengths) (such as, for example, a count indicating the number of times the cryptographic operation of the cryptographic engine 230 is repeated, the size (or length) of the entropy input, the requested bit length, the maximum size of data that the cryptographic engine 230 can process at one time during the cryptographic operation, and the size of the derived function signal). The size of the control data 310 can be determined in various ways.
[0053] The total entropy input 320 can be all of the entropy inputs required to perform cryptographic operations in the random number generation device 110. The size of the total entropy input 320 can be determined based on the security strength (s) and the entropy (H) of each bit of the entropy source 100. For example, according to standards (e.g., NIST Special Publication (SP) 800-90A and / or 800-90C), when instantiated, the total size of the entropy input can be determined based on 1.5 times the security strength required by the DRBG (e.g., 1.5s), and when reseeding, the total size of the entropy input can be determined based on the security strength (e.g., s). The length of the total entropy input 320 required by the DRBG can be determined as 1.5s / H at instantiation or s / H at reseeding, depending on the entropy of the entropy source 100. The value of each bit of the entropy source 100 can be greater than 0 and less than or equal to 1 (e.g., 0). <H≤1)。
[0054] The total seed material 330 may include control data 310 and total entropy input 320. For example, the total seed material 330 may correspond to the combination of control data 310 and total entropy input 320. The size of the total seed material 330 may be the sum of the size of control data 310 and the size of total entropy input 320.
[0055] When the cryptographic engine 230 performs a single cryptographic operation, the maximum size of the seed material that the cryptographic engine 230 can process at one time can be predetermined according to the type of the cryptographic engine 230 (e.g., CTR_DRBG, HASH_DRBG, HMAC_DRBG, etc.). For example, if the cryptographic engine 230 is AES-256, then AES-256 can process up to 128 bits of seed material. For example, if the cryptographic engine 230 is SHA-256, then SHA-256 can process up to 512 bits of seed material. The total seed material 330 can be divided into multiple seed blocks 340_1 to 340_n (where n is an integer greater than 1), and the number (n) of seed blocks 340_1 to 340_n can be determined according to the size of the total seed material 330 and the maximum size of the seed material that the cryptographic engine 230 can process at one time. For example, assuming the total size of seed material 330 is T, and the maximum size of seed material that the cryptographic engine 230 can process at one time is k, the number (n) of seed blocks 340_1 to 340_n can be determined by rounding up the value of T / k (e.g., Roundup(T / k)). However, the disclosure is not limited to the example described above.
[0056] The maximum size of the seed material that the cryptographic engine 230 can process at one time may not be proportional to the size of the total seed material 330. In this case, at least some of the seed blocks 340_1 to 340_n may be the same size as each other, and the remaining seed blocks 340_1 to 340_n may be different in size from the seed blocks of the same size. For example, the size of the nth seed block 340_n may be different from the size of the remaining seed blocks 340_1 to 340_n, and the remaining seed blocks 340_1 to 340_n may be the same size as each other.
[0057] The total seed material 330 can correspond to the merging of control data 310 and total entropy input 320, and the multiple seed blocks 340_1 to 340_n can be obtained by dividing the total seed material 330 into units of the largest size of seed material that the cryptographic engine 230 can process at one time. Therefore, the types of seed material included in some of the multiple seed blocks 340_1 to 340_n, the types of seed material included in some other seed blocks, and the types of seed material included in other seed blocks can be the same or different from each other.
[0058] In a cryptographic operation sequence, a seed block can be provided to the cryptographic engine 230. For example, in the first cryptographic operation sequence (or the initial cryptographic operation sequence), the first seed block 340_1 can be provided to the random number generation device 110; in the second cryptographic operation sequence, the second seed block 340_2 can be provided to the random number generation device 110; and in the nth cryptographic operation sequence (or the final cryptographic operation sequence), the nth seed block 340_n can be provided to the random number generation device 110. Therefore, multiple cryptographic operation sequences executed by the cryptographic engine 230 can correspond to multiple seed blocks.
[0059] Multiple output data 350_1 to 350_m may include the values of the operation results obtained by the cryptographic engine 230 when performing cryptographic operations using multiple seed blocks 340_1 to 340_n respectively. The number (m) of output data 350_1 to 350_m may correspond to the number (m) of repetitions of the cryptographic operation performed by the cryptographic engine 230, and may be determined based on the requested bit length and the size of the output data generated by the cryptographic engine 230. See below. Figures 5A to 6C Describe the number of repetitions (m).
[0060] The internal state 360 corresponding to the derived function signal DFS can be configured based on multiple output data 350_1 to 350_m. For example, according to standards (e.g., NIST Special Publications 800-90A and / or 800-90C), the internal state 360 may include various information such as K (key length (or key size)), V (internal state value), C (a constant for seed length), state, and operating state).
[0061] Figure 4A , Figure 4B and Figure 4C This is a diagram illustrating an embodiment of generating a derived function signal.
[0062] Reference Figure 2 , Figure 3 , Figure 4A , Figure 4B and Figure 4C The number (n) of the cryptographic operation sequences CRYPODR1 to CRYPODRn can correspond to the number of seed blocks, and can be based on... Figure 3 The total size of the seed material 330 and the maximum size of the seed material that the cryptographic engine 230 can process at one time (e.g., Roundup(T / k)) are determined. The number (m) of iterations ITRN1 to ITRNm of the cryptographic operations repeated by the cryptographic engine 230 can be determined based on the requested bit length and the size of the output data generated by the cryptographic engine 230.
[0063] Reference Figure 4A In the first cryptographic operation sequence CRYPODR1 among multiple cryptographic operation sequences CRYPODR1 to CRYPODRn, the seed material memory 210 can be configured to provide a first seed material, including first control data and a first entropy input, to the cryptographic engine 230. The first cryptographic operation sequence CRYPODR1 may correspond to an initial cryptographic operation sequence. In the first cryptographic operation sequence CRYPODR1, a first seed block SDB1 may be provided to the cryptographic engine 230 for each of the iterations ITRN1 to ITRNm. The first seed block SDB1 (e.g., the first seed material of the first seed block SDB1) may include a count value (e.g., Figure 4A The "0x1", "0x2", ... or "0xm" in the text, and at least one length (e.g., Figure 4A The “LEN” in the code and the first entropy input ENT1. The first entropy input ENT1 can be the entropy input ENT provided to the instantiation and reseeding functional unit 200 in the first cryptographic operation sequence CRYPODR1.
[0064] In the first iteration ITRN1 of the first cryptographic operation sequence CRYPODR1, a first seed block SDB1 may be provided to the cryptographic engine 230. In this case, the count value of the first seed block SDB1 may be "0x1" indicating the first iteration ITRN1. The cryptographic engine 230 may perform cryptographic operations using the initialization vector IV and the first seed block SDB1, and store the value of the first output data OD11 in the first storage area RGN1 of the output memory 240. In one embodiment, the value of the initialization vector IV may be a preset default value and may be stored in the output memory 240. The value of the output data (e.g., the operation result value or intermediate value) may be stored in the output memory 240 and used as the value of the initialization vector IV in the cryptographic operations of the next cryptographic operation sequence.
[0065] In the second iteration ITRN2 of the first cryptographic operation sequence CRYPODR1, a first seed block SDB1 can be provided to the cryptographic engine 230. In this case, the count value of the first seed block SDB1 can be "0x2" indicating the second iteration ITRN2. The count value can be changed by the controller 220 each time a cryptographic operation is completed in an iteration and can be stored in the seed material memory 210. The cryptographic engine 230 can perform cryptographic operations using the value of the initialization vector IV and the first seed block SDB1, and store the value of the second output data OD12 in the second storage area RGN2 of the output memory 240.
[0066] The third to the (m-1)th iterations can be performed as described above. In the m-th iteration ITRNm of the first cryptographic operation sequence CRYPODR1, the first seed block SDB1, including the count value "0xm", can be provided to the cryptographic engine 230, and the cryptographic engine 230 can use the value of the initialization vector IV and the first seed block SDB1 to perform cryptographic operations, and store the value of the m-th output data OD1m in the m-th storage area RGNm of the output memory 240.
[0067] Reference Figure 4BIn the second cryptographic operation sequence CRYPODR2 among multiple cryptographic operation sequences CRYPODR1 to CRYPODRn, the seed material memory 210 can be configured to provide a second seed material, including a second entropy input, to the cryptographic engine 230. The second cryptographic operation sequence CRYPODR2 can be a cryptographic operation sequence that appears after the first cryptographic operation sequence CRYPODR1. In the second cryptographic operation sequence CRYPODR2, a second seed block SDB2 can be provided to the cryptographic engine 230 for each of the iterations ITRN1 to ITRNm. The second seed block SDB2 can include the second entropy input ENT2 provided in the second cryptographic operation sequence CRYPODR2 to the instantiation and reseeding functional unit 200.
[0068] In the first iteration ITRN1 of the second cryptographic operation sequence CRYPODR2, the cryptographic engine 230 may receive the values of the second seed block SDB2 and the first initialization vector IV1. The value of the first initialization vector IV1 may correspond to the value of the first output data OD11 stored in the first storage area RGN1 of the output memory 240 in the first cryptographic operation sequence CRYPODR1. The cryptographic engine 230 may perform cryptographic operations based on the second seed block SDB2 and the first initialization vector IV1, and update the value of the first storage area RGN1 of the output memory 240 by storing the value of the first output data OD21 in the first storage area RGN1 of the output memory 240.
[0069] In the second iteration ITRN2 of the second cryptographic operation sequence CRYPODR2, the cryptographic engine 230 can receive the values of the second seed block SDB2 and the second initialization vector IV2. The value of the second initialization vector IV2 corresponds to the value of the second output data OD12 stored in the second storage area RGN2 of the output memory 240 in the first cryptographic operation sequence CRYPODR1. The cryptographic engine 230 can perform cryptographic operations and store the value of the second output data OD22 in the second storage area RGN2 of the output memory 240, and the value stored in the second storage area RGN2 of the output memory 240 can be updated.
[0070] The third to the (m-1)th iterations can be performed as described above. In the m-th iteration ITRNm of the second cryptographic operation sequence CRYPODR2, the cryptographic engine 230 can perform cryptographic operations based on the second seed block SDB2 and the m-th initialization vector IVm, and store the value of the m-th output data OD2m in the m-th storage area RGNm of the output memory 240.
[0071] Following the second cryptographic operation sequence CRYPODR2, the third to (n-1)th cryptographic operation sequences can be executed sequentially as described above. The second cryptographic operation sequence CRYPODR2 and the third to (n-1)th cryptographic operation sequences can each be referred to as intermediate cryptographic operation sequences. In each of the intermediate cryptographic operation sequences following the second cryptographic operation sequence CRYPODR2, the controller 220 may omit the generation of control data 310, and the seed material memory 210 may provide additional seed material, including newly received entropy input, to the cryptographic engine 230.
[0072] Reference Figure 4C In the nth cryptographic operation sequence CRYPODRn among multiple cryptographic operation sequences CRYPODR1 to CRYPODRn, the nth entropy input ENTn can be stored in the seed material memory 210 of the instantiation and reseeding functional unit 200, and can be repeatedly provided to the cryptographic engine 230 for each of the iterations ITRN1 to ITRNm, including the nth entropy input ENTn, as described above. Figure 4A and Figure 4B Described as follows, in each iteration, the cryptographic engine 230 can receive the value stored in the corresponding storage area as the value of the initial vector, perform cryptographic operations using the nth seed block SDBn and the value of the corresponding initial vector, and store the value of the corresponding operation result in the corresponding storage area. In the m-th iteration ITRNm of the n-th cryptographic operation sequence CRYPODRn, the cryptographic engine 230 can perform cryptographic operations based on the n-th seed block SDBn and the m-th initial vector IVm, and store the value of the m-th output data ODnm in the m-th storage area RGNm of the output memory 240. When the m-th iteration ITRNm of the n-th cryptographic operation sequence CRYPODRn is completed, the derived function signal DFS corresponding to the internal state based on the first operation result to the m-th operation result (e.g., ODn1 to ODnm) stored in the output memory 240 can be output.
[0073] Figure 5A , Figure 5B and Figure 5C This is a diagram illustrating an embodiment of generating a derived function signal.
[0074] Reference Figure 1 , Figure 2 , Figure 3 , Figure 5A , Figure 5B and Figure 5CIn an embodiment, the random number generation device 110 may be implemented as a CTR_DRBG that meets the specifications of standards (e.g., NIST Special Publications 800-90A and / or 800-90C) as shown in [Table 1] below.
[0075] [Table 1]
[0076] In the random number generation apparatus 110 with specifications according to [Table 1], the size (or length) of the total entropy input required for cryptographic operations (i.e., the size of the total entropy input 320) is 768 bits (e.g., 1.5). s / H=3 256 / (2 0.5). The size of control data 310 includes counter bits, entropy input length bits, output length bits, etc., and is 192 bits (e.g., Counter (32 bits) + 96'b0 (96 bits) + entropy_input_length / 8 (32 bits) + output_length / 8 (32 bits)). The total seed material 330 is 960 bits in size (e.g., 768 + 192 = 960). In AES-256 500, the number (n) of the cryptographic operation sequences is 8 (Roundup((768 + 192) / 128) = 8). In each sequence of cryptographic operations, the number of repetitions (m) of the AES-256 500 cryptographic operations is 3, based on the ratio of the requested bit length (e.g., the sum of the key size (Key_Length) and the size of the AES-256 output data (AES_output_len) in [Table 1]) to the size of the AES-256 output data (e.g., (256+128) / 128=3). In this case, the number of storage areas allocated for storing the values of the operation results is also 3.
[0077] AES-256 500 can be Figure 2 An example of the cryptographic engine 230, and the output memory 510 is compatible with... Figure 2 The output memory 240 corresponds to this. When instantiated by CTR_DRBG with specifications according to [Table 1], an entropy input for configuring the size of the seed material required for one-time processing of AES-256500 (e.g., 128 bits) is provided to the seed material memory 210. In this case, since the size of the count value and other values of the control data 310 are 128 bits (e.g., 128 = 32 + 96), an entropy input is required from the second cryptographic operation sequence CRYPODR2. Taking into account the other values of the control data 310 (e.g., Figure 5BGiven the sizes of "0x60" and "0x30" in the sequence, the required entropy input size in the second cryptographic operation sequence CRYPODR2 is 64 bits. The required entropy input size for each of the third to seventh cryptographic operation sequences CRYPODR7 is 128 bits. Considering the size of the total seed material 330 (e.g., 960 bits) and other values of the control data 310 (e.g., ...), Figure 5C The size of “8'h80” and “56'b0” in the code indicates that the entropy input required for the eighth cipher operation sequence CRYPODR8 is 64 bits.
[0078] Reference Figure 5A In the first cryptographic operation sequence CRYPODR1, the seed material memory 210 can be configured to provide a first seed material, including first control data, to the cryptographic engine 230. In the first iteration ITRN1 of the first cryptographic operation sequence CRYPODR1, some values including the control data (e.g., ...) can be... Figure 5A The first seed block SDB1 (containing "0x1" and "96'b0") is provided to AES-256 500. (Refer to...) Figure 4A Similarly, in the above scenario, the AES-256 500 can perform cryptographic operations based on the first seed block SDB1 and the initialization vector IV, and store the value of the first output data OD11 in the first storage area RGN1 of the output memory 510. In the second iteration ITRN2 of the first cryptographic operation sequence CRYPODR1, the count value can be updated from "0x1" to "0x2" by the controller 220, the AES-256 500 can perform cryptographic operations, and the value of the second output data OD12 can be stored in the second storage area RGN2 of the output memory 510. In the third iteration ITRN3 of the first cryptographic operation sequence CRYPODR1, the count value can be updated from "0x2" to "0x3" by the controller 220, and the value of the third output data OD13 generated by the cryptographic operations of the AES-256 500 can be stored in the third storage area RGN3 of the output memory 510.
[0079] Reference Figure 5B In the second cryptographic operation sequence CRYPODR2, the seed material storage 210 can be configured to include values of the second control data (e.g., Figure 5B The second seed material ("0x60", "0x30") and the first entropy input ENT1 are provided to the AES-256 500. The second seed block SDB2 can be provided to the AES-256 500 for each of the first iterations ITRN1 to the third iteration ITRN3. The AES-256 500 can perform the actions described above. Figure 4BThe described cryptographic operations, the corresponding operation results can be stored in their respective storage areas, and the values in the corresponding storage areas can be updated.
[0080] The third cipher sequence CRYPODR3 through the seventh cipher sequence CRYPODR7 can be executed sequentially as described above. (See also...) Figure 5C In the eighth cryptographic operation sequence CRYPODR8, specific values (e.g., for each of the first iterations ITRN1 to the third iteration ITRN3) will include the seventh entropy input ENT7 and control data 310. Figure 5C The eighth seed block SDB8 ("8'h80", "56'b0") is provided to AES-256 500. See above for reference. Figure 4C Similar to the described cryptographic operations, the AES-256 500 can perform cryptographic operations, and the values of the corresponding operation results can be stored in the corresponding storage areas, and the values in the corresponding storage areas can be updated. When the third iteration ITRN3 of the eighth cryptographic operation sequence CRYPODR8 is completed, the derived function signal DFS corresponding to the internal state based on the first to third operation results (e.g., OD81 to OD83) stored in the output memory 510 can be output.
[0081] According to Figure 5A , Figure 5B and Figure 5C In the embodiment shown, the seed material memory 210 is 128 bits in size, the output memory 510 is 384 bits in size, and therefore the total memory size is 512 bits.
[0082] In other embodiments, the random number generation device 110 may be implemented as a CTR_DRBG that meets the specifications of standards (e.g., NIST Special Publications 800-90A and / or 800-90C) as shown in [Table 2] below.
[0083] [Table 2]
[0084] The total entropy input 320 of the random number generation device 110, which has specifications according to [Table 2], is 384 bits in size (e.g., 1.5). s / H=3 256 / (2 1) The size of the control data CTRLLD is 192 bits. The total seed material 330 is 576 bits in size. In AES-256, the number (n) of multiple cipher sequence operations is 5 (Roundup((384+192) / 128)=5). In each cipher sequence operation, the number of repetitions (m) of the AES-256 cipher operation is 3. Therefore, compared with in Figure 5A , Figure 5B and Figure 5C As shown in the figure, the five cryptographic operation sequences can be executed in a random number generation device 110 having specifications according to [Table 2].
[0085] Although the size of the total seed material 330 required in a CTR_DRBG with specifications according to [Table 1] differs from the size of the total seed material 330 required in a CTR_DRBG with specifications according to [Table 2], the hardware of the random number generation device 110 implemented using CTR_DRBG can be designed identically. That is, as in Figure 5A , Figure 5B and Figure 5C In the embodiment shown, the seed material memory 210 is 128 bits in size, the output memory 510 is 384 bits in size, and therefore the total memory size is 512 bits. Thus, by designing hardware for the random number generation device 110 to handle seed materials of various lengths in the same way, manufacturing costs can be reduced and the versatility of the random number generation device 110 can be increased.
[0086] Figure 6A , Figure 6B and Figure 6C This is a diagram illustrating an embodiment of generating a derived function signal.
[0087] Reference Figure 1 , Figure 2 , Figure 3 , Figure 6A , Figure 6B and Figure 6C In an embodiment, the random number generation device 110 may be implemented as a HASH_DRBG that meets the specifications of standards (e.g., NIST Special Publications 800-90A and / or 800-90C) as shown in [Table 3] below.
[0088] [Table 3]
[0089] The total entropy input 320 of the random number generation device 110, which has specifications according to [Table 3], is 1536 bits in size (e.g., 3...). 256 / (2 0.25). The size of the control data CTRLD is 40 bits, including the counter value bits and the output length bits (e.g., Counter (8 bits) + output_length (32 bits)). The total seed material 330 is 1576 bits in size (e.g., 1536 + 40 = 1576). The size of the seed material that SHA-256 600 can process at one time during cryptographic operations is 512 bits. In SHA-256 600, the number (n) of cryptographic operation sequences is 4 (Roundup((1536 + 40) / 512) = 4). The size of the output data when SHA-256 600 performs cryptographic operations is 256 bits, and the required bit length here corresponds to the key size (e.g., the key size in [Table 3]). In each sequence of cryptographic operations, the number of iterations (m) in which the cryptographic operations of SHA-256 600 are repeated is 2 (e.g., K_len / hash_output_len=Roundup(440 / 256)).
[0090] SHA-256 600 is Figure 2 An example of the cryptographic engine 230, and the output memory 610 is compatible with... Figure 2 The output memory 240 corresponds to this. When instantiated by HASH_DRBG with specifications according to [Table 3], an entropy input of the size of the seed material required for configuring the SHA-256600 one-time processing (e.g., 512 bits) is provided to and stored in the seed material memory 210. In this case, considering that the size of the control data 310 is 40 bits, the size of the entropy input required in the first cryptographic operation sequence CRYPODR1 is 472 bits. The size of the entropy input required in each of the second cryptographic operation sequences CRYPODR2 and CRYPODR3 is 512 bits. Considering the size of the total seed material 330 (e.g., 1576 bits), the size of the entropy input required in the fourth cryptographic operation sequence CRYPODR4 is 40 bits.
[0091] Reference Figure 6A In the first iteration ITRN1 of the first cryptographic operation sequence CRYPODR1, control data (e.g., Figure 6A The first seed block SDB1, containing "0x1" and "32'h1b8", and the first entropy input ENT1, is provided to the SHA-256600. The SHA-256600 can perform cryptographic operations based on the first seed block SDB1 and the initialization vector IV, and store the value of the first output data OD11 in the first storage area RGN1 of the output memory 610. In the second iteration ITRN2 of the first cryptographic operation sequence CRYPODR1, control data (e.g., ...) can be included. Figure 6AThe first seed block SDB1 of the first entropy input ENT1 ("0x2", "32'h1b8") and the first seed block SDB1 are provided to the SHA-256 600, and the SHA-256 600 can perform cryptographic operations similar to those described above, and the value of the second output data OD12 can be stored in the second storage area RGN2 of the output memory 610.
[0092] Reference Figure 6B In the second cryptographic operation sequence CRYPODR2, a second seed block SDB2, including the second entropy input ENT2, can be provided to the SHA-256 600. Similar to the above, the SHA-256 600 can perform cryptographic operations and store the corresponding operation results in the corresponding storage area. Thereafter, a third cryptographic operation sequence can be executed, and as in... Figure 6C As shown, in the fourth cryptographic operation sequence CRYPODR4, a fourth seed block SDB4, including the fourth entropy input ENT4, can be provided to the SHA-256 600, and the SHA-256 600 can perform cryptographic operations. When the fourth cryptographic operation sequence CRYPODR4 is completed, the derived function signal DFS corresponding to the internal state based on the first and second operation results (e.g., OD41 and OD42) stored in the output memory 610 can be output. The V value according to the standard (e.g., NIST Special Publications 800-90A and / or 800-90C) can be transmitted to the output memory 610. The C value can be calculated from the calculated V value, and the final result value can be output. In this case, the C value does not use seed material as input.
[0093] According to Figure 6A , Figure 6B and Figure 6C In the illustrated embodiment, the seed material memory 210 is 512 bits in size, and the output memory 610 is 512 bits in size, and therefore the total memory size is 1024 bits.
[0094] Although based on Figures 4A to 6C The CTR_DRBG or HASH_DRBG examples shown are examples, but the disclosure is not limited thereto, and the examples can also be applied to HMAC_DRBG.
[0095] Figure 7 This is a flowchart illustrating the operation method of a random number generation apparatus according to an embodiment.
[0096] Reference Figure 1 and Figure 7In operation S110, the instantiation and reseeding function unit 111 of the random number generation device 110 can receive an entropy input ENT from the entropy source 100 for each of at least some of the multiple cryptographic operation sequences, having a reference size less than or equal to the reference seed material that can be processed once during the cryptographic operation.
[0097] In operation S120, the instantiation and reseeding function unit 111 of the random number generation device 110 can repeatedly execute the cryptographic operations in the current cryptographic operation sequence based on seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence and the operation results of the cryptographic operations in the previous cryptographic operation sequence.
[0098] In operation S130, the instantiation and reseeding function unit 111 of the random number generation device 110 can output a derived function signal DFS corresponding to the internal state based on the multiple operation result values after multiple cryptographic operation sequences have been completed.
[0099] In operation S140, the random number generation unit 112 of the random number generation device 110 can generate random number data RND including random numbers based on the derived function signal DFS.
[0100] Figure 8 It is used to describe Figure 7 A flowchart of an embodiment of operation S120.
[0101] Reference Figure 2 and Figure 8 According to the embodiment, operation S120 may include operations S210, S220, S230, and S240. For example, operations S210 to S240 may be performed by... Figure 2 The instantiation and reseeding function unit 200 in the middle is executed.
[0102] In operation S210, the controller 220 of the instantiation and reseeding function unit 200 can generate control data CTRLD including at least one value for configuring seed materials.
[0103] In operation S220, the seed material memory 210 of the instantiation and reseeding function unit 200 can store at least one of the control data CTRLD and the entropy input ENT as seed material SDMTL.
[0104] In operation S230, the cryptographic engine 230 of the instantiated and reseeded functional unit 200 can perform cryptographic operations in the current cryptographic operation sequence based on seed material and multiple operation result values (e.g., corresponding operation result values among multiple operation result values of previous cryptographic operation sequences).
[0105] In operation S240, the cryptographic engine 230 of the instantiated and reseeded functional unit 200 can update multiple operation result values.
[0106] Figure 9 It is used to describe Figure 8 A flowchart of an embodiment of operation S220.
[0107] Reference Figure 9 According to the embodiment, operation S220 may include operation S310 and operation S320.
[0108] In operation S310, during the first cryptographic operation sequence, the seed material memory 210 can store a first seed material including first control data and a first entropy input. During the first cryptographic operation sequence, the cryptographic engine 230 can receive the first seed material from the seed material memory 210 and perform cryptographic operations.
[0109] In operation S320, in the second cryptographic operation sequence following the first cryptographic operation sequence, the seed material memory 210 may store a second seed material including a second entropy input. In the second cryptographic operation sequence, the cryptographic engine 230 may receive the second seed material from the seed material memory 210 and perform cryptographic operations.
[0110] Operation S220 according to the embodiment may further include operation S330. In operation S330, in each of the cryptographic operation sequences following the second cryptographic operation sequence, the seed material memory 210 may omit new control data and store additional seed material including newly received entropy input.
[0111] The above reference Figure 9 The described embodiments are consistent with those referred to above. Figure 4A , Figure 4B and Figure 4C The described embodiments correspond. Optionally, the above refers to... Figure 9 The described embodiments are consistent with those referred to above. Figure 6A , Figure 6B and Figure 6C The described embodiments correspond to those.
[0112] Figure 10 It is shown Figure 8 A flowchart of another embodiment of operation S220.
[0113] Reference Figure 10 According to another embodiment, operation S220 may include operation S410 and operation S420.
[0114] In operation S410, during the first cryptographic operation sequence, the seed material memory 210 may store a first seed material including first control data.
[0115] In operation S420, in the second cryptographic operation sequence following the first cryptographic operation sequence, the seed material memory 210 may store a second seed material including the second control data and the first entropy input.
[0116] Operation S220 according to the embodiment may further include operation S430. In operation S430, in each of the cryptographic operation sequences following the second cryptographic operation sequence, the seed material memory 210 may store additional seed material including new control data and newly received entropy input.
[0117] The above reference Figure 10 The described embodiments are consistent with those referred to above. Figure 5A , Figure 5B and Figure 5C The described embodiments correspond to those.
[0118] Figure 11 This is a flowchart illustrating a method for generating derived function signals according to an embodiment.
[0119] In operating the S500, instantiation or reseeding can be enabled.
[0120] In operation S510, it is determined whether the collection of k-bit seed material has been completed. For example, k bits can be the size of seed material that the cryptographic engine 230 can process at one time during cryptographic operations in a cryptographic operation sequence. That is, k bits can be a reference size of reference material. The collection of k-bit seed material can, for example, be the storage of k-bit seed material in seed material memory 210.
[0121] In operation S520, control information can be updated. The control information may represent values included in the control data CTRLD described above.
[0122] In operation of S530, the collected seed materials can be input into the cryptographic engine 230.
[0123] In operation S540, operations of the cryptographic engine 230 (e.g., cryptographic operations) can be performed.
[0124] In operation S550, the count value (e.g., Op) can be incremented by 1.
[0125] In operation S560, it is determined whether the count value (e.g., Op) has reached the predetermined number of repetitions (e.g., m). If the count value (e.g., Op) has not reached the number of repetitions (e.g., m), then operation S520 can be executed.
[0126] When the count value (e.g., Op) reaches the number of repetitions (e.g., m), in operation S570, the value of the password operation sequence (e.g., Cnt) may be incremented by 1. In operation S580, it is determined whether the value of the password operation sequence (e.g., Cnt) has reached a predetermined number (e.g., n). If the value of the password operation sequence (e.g., Cnt) has not reached the predetermined number (e.g., n), then operation S510 may be executed.
[0127] When the value of the cryptographic operation sequence (e.g., Cnt) reaches a predetermined number (e.g., n), the result can be output in operation S590. For example, the value stored in the output memory 240 can be output to the random number generation unit 112.
[0128] According to the embodiment, when instantiation or reseeding is performed, the cryptographic operations of the cryptographic engine 230 can be processed in parallel order by using as many entropy inputs as possible in the cryptographic engine 230. The intermediate values of the processing can be temporarily stored in the output memory 240, and when the cryptographic operations are performed by using subsequent entropy inputs, the previously processed intermediate values can be applied as the values of the initial vector IV.
[0129] Those skilled in the art will understand that the disclosed structure can be modified or altered in various ways without departing from the scope or spirit of the disclosure. The disclosure is considered to include such modifications and alterations if they fall within the scope of the appended claims and their equivalents.
[0130] According to one or more example embodiments, at least one of the components, elements, modules, or units (collectively referred to as "components" in this paragraph) represented by the blocks in the accompanying drawings may be embodied as various numbers of hardware, software, and / or firmware structures performing the corresponding functions described above. For example, at least one of these components may use a direct circuit structure (such as a memory, processor, logic circuit, lookup table, etc.) that can perform the corresponding function under the control of one or more microprocessors or other control devices. Furthermore, at least one of these components may be embodied in a portion of a module, program, or code containing one or more executable instructions for performing a specified logical function, and executed by one or more microprocessors or other control devices. Additionally, at least one of these components may include, or may be implemented by, a processor (such as a central processing unit (CPU)), microprocessor, etc., performing the corresponding function. Two or more of these components may be combined into a single component performing all the operations or functions of the combined two or more components. Furthermore, at least a portion of the function of at least one of these components may be performed by another component among these components. Furthermore, although a bus is not shown in the block diagrams of the accompanying drawings, communication between components may be performed via a bus. The functional aspects of the example embodiments above may be implemented in algorithms executed on one or more processors. Furthermore, the components represented by blocks or processing steps may employ any number of related technologies, signal processing and / or control, data processing, etc., used for electronic configuration.
[0131] Although the disclosure has been specifically shown and described with reference to the disclosed embodiments, those skilled in the art will understand that various changes in form and detail may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims.
Claims
1. A random number generation device, comprising: The instantiation and reseeding function logic is configured to: receive entropy input from an entropy source for each of at least some of a plurality of cryptographic operation sequences, the entropy input having a size less than or equal to the reference size of the reference seed material that can be processed once during the cryptographic operation; repeatedly execute the cryptographic operation in the current cryptographic operation sequence based on the seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence and the operation results of the cryptographic operation in the previous cryptographic operation sequence; and output a derived function signal corresponding to the internal state based on the plurality of operation result values after the plurality of cryptographic operation sequences have been completed. as well as The random number generation logic is configured to generate random number data, including random numbers, based on the derived function signal.
2. The random number generating device of claim 1, wherein, The instantiation and reseeding logic includes: A seed material storage device is configured to receive at least one of entropy input and control data, and is configured to store at least one of the received entropy input and control data as seed material, wherein the control data includes at least one value for configuring the seed material. The controller is configured to generate control data; The output memory includes multiple storage areas, where the results of multiple operations in the previous cryptographic operation sequence are stored respectively in the multiple storage areas; and The cryptographic engine is configured to perform a cryptographic operation in each of repeatedly executed cryptographic operations based on a seed material and a corresponding operation result value among the plurality of operation result values of the previous cryptographic operation sequence, and is configured to update the plurality of operation result values of the previous cryptographic operation sequence by storing the operation result value of the cryptographic operation in a corresponding storage area in the output memory.
3. The random number generating device of claim 2, wherein, The seed material storage is also configured to provide a completion signal to the controller based on entropy input, and The controller is configured to generate or update control data based on completion signals, and to provide control signals for controlling the cryptographic engine. The cryptographic engine is configured to perform cryptographic operations based on control signals and store the corresponding operation result values in the corresponding storage area.
4. The random number generating device of claim 2, wherein, The seed material storage is also configured as follows: In the first cryptographic operation sequence among the plurality of cryptographic operation sequences, a first seed material, including first control data and a first entropy input, is provided to the cryptographic engine; and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material, including a second entropy input, is provided to the cryptographic engine.
5. The random number generating device of claim 4, wherein, The controller is also configured to omit the generation of control data in each of the cryptographic operation sequences following the second cryptographic operation sequence, and The seed material storage is further configured to provide additional seed material, including newly received entropy input, to the cryptographic engine in each of the cryptographic operation sequences following the second cryptographic operation sequence.
6. The random number generating device of claim 2, wherein, The seed material storage is also configured as follows: In the first cryptographic operation sequence among the plurality of cryptographic operation sequences, a first seed material including first control data is provided to the cryptographic engine, and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material, including second control data and a first entropy input, is provided to the cryptographic engine.
7. The random number generating apparatus of any one of claims 2 to 6, wherein, Control data includes a count value indicating the number of times a cryptographic operation is repeated in a sequence of cryptographic operations.
8. The random number generating apparatus of any one of claims 2 to 6, wherein, The seed material storage has a reference size for the reference seed material.
9. The random number generating apparatus of any one of claims 2 to 6, wherein, The size of the output memory is determined based on the size of the output data and the number of times the cryptographic operation is repeated in a sequence of cryptographic operations. The output data includes the values of the operation results output by the cryptographic engine.
10. A method for operating a random number generation device, the method comprising: For each of at least some of a plurality of cryptographic operation sequences, an entropy input is received from an entropy source, the entropy input having a size less than or equal to the reference size of the reference seed material that can be processed in one go in the cryptographic operation; Based on the seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence and the operation results of the cryptographic operation in the previous cryptographic operation sequence, the cryptographic operation in the current cryptographic operation sequence is repeatedly executed; Based on the multiple operation result values after the multiple cryptographic operation sequences are completed, the derived function signal corresponding to the internal state is output. as well as Random number data, including random numbers, is generated based on derived function signals.
11. The operating method of claim 10, wherein, The steps of repeatedly performing password operations include: Generate control data that includes at least one value for configuring seed materials; Store at least one of the control data and entropy input as seed material; In each of the cryptographic operations in the repeatedly executed current cryptographic operation sequence, the cryptographic operation is performed based on the seed material and the corresponding operation result value among multiple operation result values of the previous cryptographic operation sequence; and The plurality of operation result values of the previous cryptographic operation sequence are updated based on the operation result value of the cryptographic operation.
12. The operating method of claim 11, wherein, The steps for storing material as seed include: In the first cryptographic operation sequence, a first seed material including first control data and a first entropy input is stored; and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material including the second entropy input is stored.
13. The operating method of claim 12, wherein, The step of storing as seed material further includes: in each of the cryptographic operation sequences following the second cryptographic operation sequence, omitting the generation of new control data and storing additional seed material including the newly received entropy input.
14. The operating method of claim 11, wherein, The steps for storing material as seed include: In the first cryptographic operation sequence, a first seed material including first control data is stored; and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material including second control data and a first entropy input is stored.
15. The operating method of claim 14, wherein, The step of storing as seed material further includes storing additional seed material, comprising new control data and newly received entropy input, in each of the cryptographic operation sequences following the second cryptographic operation sequence.
16. An electronic device comprising: The random number generator is configured to generate random numbers. as well as The processor is configured to execute an encryption algorithm based on the random number. The random number generator includes: The instantiation and reseeding logic is configured to: receive entropy input from an entropy source for each of at least some of a plurality of cryptographic operation sequences, the entropy input having a size less than or equal to the reference size of the reference seed material that can be processed once during the cryptographic operation; repeatedly execute the cryptographic operations in the current cryptographic operation sequence based on the seed material configured to be processed once during the cryptographic operation in the current cryptographic operation sequence and the operation results of the cryptographic operations in the previous cryptographic operation sequences; and output a derived function signal corresponding to the internal state based on the multiple operation result values after the plurality of cryptographic operation sequences have been completed; and A random number generator is configured to generate random number data including the random number based on a derived function signal.
17. The electronic device of claim 16, wherein, The instantiation and reseeding logic includes: A seed material storage device is configured to receive at least one of entropy input and control data, and is configured to store at least one of the received entropy input and control data as seed material, wherein the control data includes at least one value for configuring the seed material. The controller is configured to generate control data; The output memory includes multiple storage areas, where the results of multiple operations in the previous cryptographic operation sequence are stored respectively in the multiple storage areas; and The cryptographic engine is configured to perform a cryptographic operation in each of repeatedly executed cryptographic operations based on a seed material and a corresponding operation result value among the plurality of operation result values of the previous cryptographic operation sequence, and is configured to update the plurality of operation result values of the previous cryptographic operation sequence by storing the operation result value of the cryptographic operation in a corresponding storage area in the output memory.
18. The electronic device of claim 17, wherein, The seed material storage is also configured as follows: In the first cryptographic operation sequence among the plurality of cryptographic operation sequences, a first seed material, including first control data and a first entropy input, is provided to the cryptographic engine; and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material, including a second entropy input, is provided to the cryptographic engine.
19. The electronic device of claim 17, wherein, The seed material storage is also configured as follows: In the first cryptographic operation sequence among the plurality of cryptographic operation sequences, a first seed material including first control data is provided to the cryptographic engine, and In the second cryptographic operation sequence following the first cryptographic operation sequence, a second seed material, including second control data and a first entropy input, is provided to the cryptographic engine.
20. The electronic device of any of claims 17 to 19, wherein, The seed material storage has a reference size for the seed material, and The size of the output memory is determined based on the size of the output data and the number of times the cryptographic operation is repeated in a sequence of cryptographic operations. The output data includes the values of the operation results output by the cryptographic engine.
Citation Information
Patent Citations
Method and apparatus for encoding / decoding image and recording medium for storing bitstream
KR1020250020355A