KR20160048860A - Methods and apparatuses for prime number generation and storage - Google Patents

Methods and apparatuses for prime number generation and storage Download PDF

Info

Publication number
KR20160048860A
KR20160048860A KR1020167007529A KR20167007529A KR20160048860A KR 20160048860 A KR20160048860 A KR 20160048860A KR 1020167007529 A KR1020167007529 A KR 1020167007529A KR 20167007529 A KR20167007529 A KR 20167007529A KR 20160048860 A KR20160048860 A KR 20160048860A
Authority
KR
South Korea
Prior art keywords
seed
random number
random
prime
generating
Prior art date
Application number
KR1020167007529A
Other languages
Korean (ko)
Inventor
비잔 안사리
루 시아오
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160048860A publication Critical patent/KR20160048860A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Abstract

하나의 특징은, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 이 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하기 위한 방법에 관련된다. 생성되는 난수 R가 소수임이 결정될 때까지, 단계들은 반복되고, 생성되는 난수 R가 소수임이 결정될 때, 이 난수 R를 생성하는데 사용된 난수 씨드 S가 메모리 회로에 저장된다. 추후에, 저장된 난수 씨드 S는 메모리 회로로부터 리트리빙될 수 있고, 그리고 소수는 난수 씨드 S에 기초하여 재생성된다. 일 예에서, 생성된 난수 R은 추가로, 보안 메모리 회로에 저장될 수 있는 비밀 키 kS에 기초한다.One feature is to repeatedly generate a random number seed S having k bits, generate a random number R with n bits based on the seed S, -k is less than n, and if the random number R is a prime number By determining whether or not the primitive is a primitive. The steps are repeated until the generated random number R is determined to be a decimal number, and when the generated random number R is determined to be a decimal number, the random number seed S used to generate the random number R is stored in the memory circuit. Thereafter, the stored random number seed S can be deleted from the memory circuit, and the prime number is regenerated based on the random number seed S. In one example, the generated random number R is additionally based on a secret key k S that can be stored in a secure memory circuit.

Description

소수 생성 및 저장을 위한 방법들 및 장치들{METHODS AND APPARATUSES FOR PRIME NUMBER GENERATION AND STORAGE}METHODS AND APPARATUS FOR PRIME NUMBER GENERATION AND STORAGE FIELD OF THE INVENTION [0001]

[0001] 다양한 특징들은 암호 기법(cryptography)에 관한 것이고, 더욱 구체적으로는, 소수들의 생성 및 효율적인 저장을 위한 방법들 및 장치들에 관한 것이다.[0001] The various features relate to cryptography, and more particularly to methods and apparatus for generation and efficient storage of prime numbers.

[0002] 많은 암호 보안 알고리즘들, 예컨대, RSA(Rivest Shamir Adleman) 알고리즘은 암호 키들을 활용하여 동작한다. 이러한 키들은 통상적으로, 비교적 커다란(예컨대, 512개 비트, 1,024개 비트 등) 소수들을 요구할 수 있는 키 생성 프로세스들을 사용하여 생성된다. 그러나, 소수 생성은 느린 프로세스이고, 그리고 소수 생성과 연관된 프로세싱 시간은 통상적으로 키 생성 프로세스들에서 보틀 넥으로서 동작한다. 요구되는 프로세싱 시간은 키 생성 프로세스에 의해 생성될 키의 비트 길이의 세제곱(cube)에 비례한다. 예컨대, 2,048개 비트 암호 키 및 3,072개 비트 암호 키를 생성하는 것은, 1,024개 비트 키를 생성하는 것보다 각각 8배 및 27배 더 느릴 수 있다. 전력 및 속도 제약들이 관련되는 모바일 디바이스 애플리케이션들에서, 전력 소모량 및 프로세싱 시간의 이러한 증가들은 악영향이다.[0002] Many cryptographic security algorithms, such as the Rivest Shamir Adleman (RSA) algorithm, operate using cryptographic keys. These keys are typically generated using key generation processes that may require relatively large (e.g., 512 bits, 1,024 bits, etc.) prime numbers. However, prime number generation is a slow process, and the processing time associated with prime generation typically operates as bottleneck in key generation processes. The required processing time is proportional to the cube of the bit length of the key to be generated by the key generation process. For example, generating 2,048 bit cryptographic keys and 3,072 bit cryptographic keys may be 8 and 27 times slower than generating 1,024 bit keys, respectively. In mobile device applications where power and rate constraints are involved, these increases in power consumption and processing time are adversely affected.

[0003] 일부 애플리케이션들에 따라, 암호 키들은, 이 암호 키들이 애플리케이션에 의해 실제로 요구되기 이전에 이 암호 키들이 생성된다는 점에서, "오프라인"으로 생성될 수 있다. 이러한 오프라인 방식으로 생성되는 암호 키들을 생성하는데 사용되는 소수들 또는 암호 키들은 통상적으로 메모리에 저장되고, 이후, 요구 시 애플리케이션(들)에 전달된다. 그 경우, 위에서 설명된 키 생성과 연관된 프로세싱 시간에서의 보틀 넥은 사실상 제거된다. 그러나, 이러한 오프라인 키 생성 방식들에 대한 하나의 두드러진 이슈는, 키들 및/또는 키들을 생성하는데 사용되는 소수들이 비교적 커다랄 수 있고(예컨대, 1,024개 비트들을 초과) 그리고 이러한 커다란 키들 및/또는 소수들을 저장하는데 요구되는 필요한 메모리 회로들이 항상 용이하게 이용 가능한 것이 아닐 수 있다는 점이다. 이 문제점을 가라앉히기 위해, 규칙적인 데이터 압축 기법들은 이들 경우들에서 그다지 적용 가능하지 않은데, 그 이유는 암호 키들 및 소수들이 높은 엔트로피를 갖고 그리고 통상적인 압축 알고리즘들에 대해 효율적으로 압축될 수 없기 때문이다.[0003] Depending on some applications, cryptographic keys may be generated "off-line" in that these cryptographic keys are generated before the cryptographic keys are actually required by the application. The decimals or cryptographic keys used to generate the cryptographic keys generated in such an off-line manner are typically stored in memory and then forwarded to the application (s) upon request. In that case, the bottleneck at the processing time associated with the key generation described above is virtually eliminated. However, one outstanding issue with such off-line key generation schemes is that the prime numbers used to generate the keys and / or keys can be relatively large (e.g., greater than 1,024 bits) and that such large keys and / The necessary memory circuits required to store < RTI ID = 0.0 > a < / RTI > To alleviate this problem, regular data compression schemes are not very applicable in these cases because cryptographic keys and decimals have high entropy and can not be efficiently compressed for conventional compression algorithms to be.

[0004] 따라서, 암호 보안 알고리즘들, 예컨대, RSA에서의 사용을 위한 커다란 소수들을 저장하는데 요구되는 메모리의 양을 최소화시키기 위하여 소수 생성 및 저장을 돕는 새로운 방법들 및 장치들이 요구된다. [0004] Therefore, new methods and devices are needed to help generate and store prime numbers to minimize the amount of memory required to store cryptographic security algorithms, e.g., large prime numbers for use in RSA.

[0005] 하나의 특징은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법을 제공한다. 이 방법은, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 이 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하는 단계를 포함한다. 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S는 메모리 회로에 저장된다. 일 양상에 따라, 방법은, 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하는 단계, 및 이 난수 씨드 S에 기초하여 소수를 재생성하는 단계를 더 포함한다. 다른 양상에 따라, 방법은 소수에 기초하여 암호 키를 생성하는 단계를 더 포함한다. [0005] One feature provides a method for generating and storing seed values for prime generation. This method repeatedly generates a random number seed S having k bits, generates a random number R having n bits based on the seed S, and repeatedly generates a random number R with -k being n , And determining whether the random number R is a prime number, thereby generating a prime number. The random number seed S used to generate the random number R determined to be a prime number is stored in the memory circuit. According to an aspect, the method further includes the steps of retrying the stored random seed S from the memory circuit, and regenerating the prime number based on the random seed S. According to another aspect, the method further comprises generating an encryption key based on the prime number.

[0006] 일 양상에 따라, 방법은 씨드 S를 저장한 이후에, 메모리 회로로부터 난수 R를 삭제하는 단계를 더 포함한다. 다른 양상에 따라, 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초한다. 또 다른 양상에 따라, 방법은 소수인 것으로 결정된 난수 R를 생성하는데 사용된 비밀 키 kS를 보안 메모리 회로에 저장하는 단계를 더 포함한다. [0006] According to an aspect, the method further includes deleting the random number R from the memory circuit after storing the seed S. According to another aspect, generating the random number R is further based on the secret key k S. According to another aspect, the method further comprises storing the secret key k S used to generate the random number R determined to be a prime number in the secure memory circuit.

[0007] 일 양상에 따라, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S가 저장된다. 다른 양상에 따라, 씨드 S에 기초하여 난수 R를 생성하는 것은, 입력으로서 씨드 S를 수신하고 출력으로서 난수 R를 생성하는 일방향 함수 f를 실행하는 것을 포함하고, 이 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나이다.[0007] According to an aspect, the random number seed S is stored prior to receiving a request for one or more prime numbers from the cryptographic key generation process. According to another aspect, generating a random number R based on the seed S includes executing a one-way function f that receives the seed S as input and generates a random number R as output, which one- / ≪ / RTI > or a block cipher.

[0008] 다른 특징은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 장치를 제공하고, 이 장치는 메모리 회로, 및 이 메모리 회로에 통신 가능하게 커플링된 프로세싱 회로를 포함하고, 이 프로세싱 회로는, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 이 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하고, 그리고 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하도록 구성된다. 일 양상에 따라, 프로세싱 회로는 추가로, 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하고, 그리고 난수 씨드 S에 기초하여 소수를 재생성하도록 구성된다. 다른 양상에 따라, 프로세싱 회로는 추가로, 소수에 기초하여 암호 키를 생성하도록 구성된다. 또 다른 양상에 따라, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S가 저장된다. 다른 양상에 따라, 소수인 것으로 결정된 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초하고, 그리고 프로세싱 회로는 추가로, 비밀 키 kS를 보안 메모리 회로에 저장하도록 구성된다. [0008] Another feature provides an apparatus for generating and storing seed values for fractional generation, the apparatus comprising a memory circuit, and a processing circuit communicatively coupled to the memory circuit, the processing circuit comprising: , Repeatedly generating a random number seed S with k bits until a random number R is determined to be a prime, generating a random number R with n bits based on the seed S, and -k is less than n, And by determining whether the random number R is a prime number, generating a prime number and storing the random number seed S used to generate the random number R determined to be a prime number in a memory circuit. According to an aspect, the processing circuitry is further configured to retrieve the stored random seed S from the memory circuit, and regenerate the prime number based on the random seed S. According to another aspect, the processing circuitry is further configured to generate a cryptographic key based on a prime number. In accordance with another aspect, a random seed S is stored prior to receiving a request for one or more primes from the cryptographic key generation process. According to another aspect, generating a random number R determined to be a prime number is further based on a secret key k S , and the processing circuitry is further configured to store the secret key k S in a secure memory circuit.

[0009] 다른 특징은, 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 장치를 제공하고, 이 장치는, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하기 위한 수단, 및 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하기 위한 수단을 포함한다. 일 양상에 따라, 장치는, 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하기 위한 수단, 및 난수 씨드 S에 기초하여 소수를 재생성하기 위한 수단을 더 포함한다. 다른 양상에 따라, 소수인 것으로 결정된 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초하고, 그리고 장치는, 비밀 키 kS를 보안 메모리 회로에 저장하기 위한 수단을 더 포함한다. [0009] Another feature provides an apparatus for generating and storing seed values for the generation of prime numbers, the apparatus repeatedly generating random seeds S having k bits, until the determined random number R is determined to be a prime number Means for generating a random number R with n bits based on the seed S and -k is less than n, and means for determining whether the random number R is a prime number, And means for storing the random number seed S used to generate the determined random number R in the memory circuit. According to an aspect, the apparatus further comprises means for recycling the stored random number seed S from the memory circuit, and means for regenerating a prime number based on the random number seed S. According to another aspect, generating a random number R determined to be a prime number is further based on the secret key k S , and the apparatus further comprises means for storing the secret key k S in the secure memory circuit.

[0010] 다른 특징은 하나 또는 그 초과의 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체를 제공하고, 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 프로세서로 하여금, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하게 하고, 그리고 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하게 한다. 일 양상에 따라, 명령들은 추가로, 프로세서로 하여금, 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하게 하고, 그리고 난수 씨드 S에 기초하여 소수를 재생성하게 한다. [0010] Other features provide a computer-readable storage medium having stored thereon one or more instructions, wherein instructions, when executed by the at least one processor, cause the processor to perform the steps of: By repeatedly generating a random number seed S with k bits, generating a random number R with n bits based on the seed S, -k is less than n, and determining whether the random number R is a prime number, To generate a prime number, and to store the random number seed S used to generate the random number R determined to be a prime number in a memory circuit. According to an aspect, the instructions further cause the processor to retrieve the stored random seed S from the memory circuit, and regenerate the prime number based on the random seed S.

[0011] 다른 특징은, 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법을 제공하고, 이 방법은, k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하는 단계, 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하는 단계, 각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하는 단계 ―n은 k + g 미만이고, 복수의 난수들 Ri 각각은 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―, 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하는 단계 ―난수 RP는 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 제2 씨드 SP는 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 난수 씨드 S에 기초함―, 및 난수 씨드 S 및 보충 씨드 TP를 메모리 회로에 저장하는 단계를 포함한다. 일 양상에 따라, 복수의 난수들 Ri은 추가로, 비밀 키 kS에 기초하고, 그리고 방법은 비밀 키 kS를 보안 메모리 회로에 저장하는 단계를 더 포함한다. 다른 양상에 따라, 방법은, 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 TP를 리트리빙하는 단계, 및 난수 씨드 S 및 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하는 단계를 더 포함한다. 또 다른 양상에 따라, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S 및 보충 씨드 TP가 저장되고, 그리고 방법은, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하는 단계, 소수 난수 RP에 기초하여 암호 키를 생성하는 단계, 및 암호 키를 암호 키 생성 프로세스에 제공하는 단계를 더 포함한다. [0011] Another feature provides a method for generating and storing seed values for fractional generation, the method comprising: generating a random seed S having k bits and a plurality of supplemental seeds each having g bits, T phase, the method comprising: respectively generating a plurality of second seed of S i based on a plurality of supplemental seed of T i of different supplemental seed and the random number seed S of generating a i, a plurality of random numbers, each having n bits the R i for generating -n + k is less than g and, R i each of a plurality of random number being based on a second, different seed of the plurality of the second seed s i -, at least one of the plurality of random numbers R i comprising: a single random number R P determined that the minority-random number R P is the second basis of the seed s P of the plurality of second seed to s i, and the replacement of the second seed s P includes a plurality of supplemental seed of T i seed based on the random number seed, and T P S -, S, and the random number seed, and the seed supplemental memory T P times To include the step of storing. According to an aspect, the plurality of random numbers R i are additionally based on the secret key k S , and the method further comprises storing the secret key k S in the secure memory circuit. According to another aspect, the method, further comprising the step of: on the basis of a random number seed S and the supplemental seed T P stored from the memory circuit in step, and the random number seed S and supplemental seed T P for living discrete regenerate few random number R P do. According to another aspect, the random seed S and the supplemental seed T P are stored prior to receiving a request for one or more prime numbers from the cryptographic key generation process, and the method further comprises: the steps comprising: generating an encryption key based on a small number of the random number R P, and providing the encryption key to the encryption key generating process for receiving a request for a small number of excess further includes.

[0012] 일 양상에 따라, 복수의 제2 씨드들 Si 중 상이한 제2 씨드들에 기초하여 복수의 난수들 Ri을 생성하는 단계는, 입력들로서 복수의 제2 씨드들 Si 각각을 수신하고 출력들로서 복수의 난수들 Ri을 생성하는 일방향 함수 f를 실행하는 단계를 포함하고, 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나이다. 다른 양상에 따라, 방법은, 복수의 난수들 Ri 중 적어도 하나의 난수가 소수가 아님을 결정하는 단계, g개 비트들을 갖는 다른 보충 씨드 T2를 생성하는 단계, 보충 씨드 T2 및 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하는 단계, n개 비트들을 갖는 다른 난수 R2를 생성하는 단계 ―난수 R2는 제2 씨드 S2에 기초함―, 난수 R2가 소수임을 결정하는 단계, 및 보충 씨드 T2를 메모리 회로에 저장하는 단계를 더 포함한다. 또 다른 양상에 따라, 방법은, 메모리 회로로부터 저장된 난수 씨드 S 및 보충 씨드 T2를 리트리빙하는 단계, 및 난수 씨드 S 및 보충 씨드 T2에 기초하여 소수 난수 R2를 재생성하는 단계를 더 포함한다. 다른 양상에 따라, 방법은, 미리결정된 수의 소수들에 대한 요청을 수신하는 단계, 및 각각이 상이한 소수들과 연관되는 다수의 보충 씨드들이 이 미리결정된 수와 동일한 수로 저장될 때까지, 다른 보충 씨드 T2를 생성하는 방법 단계, 보충 씨드 T2 및 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하는 방법 단계, n개 비트들을 갖는 다른 난수 R2를 생성하는 방법 단계 ―난수 R2는 제2 씨드 S2에 기초함―, 난수 R2가 소수임을 결정하는 방법 단계, 및 보충 씨드 T2를 메모리 회로에 저장하는 단계를 반복하는 단계를 더 포함한다. [0012] According to one aspect, generating a plurality of random numbers R i based on different second seeds of the plurality of second seeds S i comprises receiving each of the plurality of second seeds S i as inputs And a one-way function f for generating a plurality of random numbers R i as outputs, wherein the one-way function f is at least one of a secure hash function and / or a block cipher. According to another aspect, the method further comprising at least one random number of a plurality of random numbers R i determines that it is not a prime number, generating a different supplement seed T 2 having the g bits, supplemental seed T 2 and the random number seed Generating another second seed S 2 based on S, generating another random number R 2 having n bits, wherein the random number R 2 is based on the second seed S 2 , determining that the random number R 2 is a prime number , And storing the supplemental seed T 2 in a memory circuit. According to another aspect, the method further includes the steps of recycling the stored random number seed S and replenishment seed T 2 from the memory circuit, and regenerating the prime random number R 2 based on the random number seed S and the replenish seed T 2 do. According to another aspect, a method includes receiving a request for a predetermined number of prime numbers, and repeating the steps of: receiving a request for a predetermined number of prime numbers, until each of the plurality of supplementary seeds associated with different prime numbers is stored with the same number as this predetermined number method of generating a seed T 2 steps, supplemental seed T 2 and the random number seed method based on the S for generating another second seed S 2 steps, how to generate a different random number R 2 having n bits step-random number R 2 Is based on a second seed S 2 - a method step of determining that the random number R 2 is a prime number, and a step of storing the replenish seed T 2 in a memory circuit.

[0013] 다른 특징은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 장치를 제공하고, 장치는 메모리 회로, 및 메모리 회로에 통신 가능하게 커플링된 프로세싱 회로를 포함하고, 프로세싱 회로는, k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하고, 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하고, 각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하고 ―n은 k + g 미만이고, 복수의 난수들 Ri 각각은 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―, 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하고 ―난수 RP는 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 제2 씨드 SP는 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 난수 씨드 S에 기초함―, 그리고 난수 씨드 S 및 보충 씨드 TP를 메모리 회로에 저장하도록 구성된다. 일 양상에 따라, 복수의 난수들 Ri은 추가로, 비밀 키 kS에 기초하고, 그리고 프로세싱 회로는 추가로, 비밀 키 kS를 보안 메모리 회로에 저장하도록 구성된다. 다른 양상에 따라, 프로세싱 회로는 추가로, 메모리 회로로부터 저장된 난수 씨드 S 및 보충 씨드 TP를 리트리빙하고, 그리고 난수 씨드 S 및 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하도록 구성된다. 또 다른 양상에 따라, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S 및 보충 씨드 TP가 저장되고, 그리고 프로세싱 회로는 추가로, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하고, 소수 난수 RP에 기초하여 암호 키를 생성하고, 그리고 암호 키를 암호 키 생성 프로세스에 제공하도록 구성된다. [0013] Another feature provides an apparatus for generating and storing seed values for fractional generation, the apparatus comprising a memory circuit, and a processing circuit communicatively coupled to the memory circuit, wherein the processing circuit comprises k Generating a plurality of supplementary seeds T i each having g bits, each of the plurality of supplementary seeds T i comprising a plurality of supplementary seeds and a plurality of second Generating seeds S i and generating a plurality of random numbers R i each having n bits, wherein -n is less than k + g, and each of the plurality of random numbers R i comprises a plurality of second seeds S i based on a second, different seed - and random number R P is based on the second seed s P of the plurality of second seed of s i, -, and at least one random number R P of the plurality of random numbers R i determines that a small number, and The second seed SP is a seed of a plurality of supplementary seeds T i , T P and a random number seed S, and is configured to store the random number seed S and the replenish seed T P in a memory circuit. According to an aspect, the plurality of random numbers R i are additionally based on the secret key k S , and the processing circuitry is further configured to store the secret key k S in the secure memory circuit. According to another aspect, the processing circuitry is further configured to retrieve the stored random seed S and replenish seed T P from the memory circuit and regenerate the prime random number R P based on the random seed S and the replenish seed T P. According to another aspect, the random number seed S and supplemental seed T P are stored before receiving a request for one or more prime numbers from the cryptographic key generation process, and the processing circuit further includes a cryptographic key generation process To generate a cryptographic key based on the prime random number R P , and to provide the cryptographic key to the cryptographic key generation process.

[0014] 일 양상에 따라, 복수의 제2 씨드들 Si 중 상이한 제2 씨드들에 기초하여 복수의 난수들 Ri을 생성하는 것은, 프로세싱 회로가 추가로, 입력들로서 복수의 제2 씨드들 Si 각각을 수신하고 출력들로서 복수의 난수들 Ri을 생성하는 일방향 함수 f를 실행하도록 구성되는 것을 포함하고, 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나이다. 다른 양상에 따라, 프로세싱 회로는 추가로, 복수의 난수들 Ri 중 적어도 하나의 난수가 소수가 아님을 결정하고, g개 비트들을 갖는 다른 보충 씨드 T2를 생성하고, 보충 씨드 T2 및 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하고, n개 비트들을 갖는 다른 난수 R2를 생성하고 ―난수 R2는 제2 씨드 S2에 기초함―, 난수 R2가 소수임을 결정하고, 그리고 보충 씨드 T2를 메모리 회로에 저장하도록 구성된다. 또 다른 양상에 따라, 프로세싱 회로는 추가로, 메모리 회로로부터 저장된 난수 씨드 S 및 보충 씨드 T2를 리트리빙하고, 그리고 난수 씨드 S 및 보충 씨드 T2에 기초하여 소수 난수 R2를 재생성하도록 구성된다. [0014] According to one aspect, generating a plurality of random numbers R i based on different second seeds among the plurality of second seeds S i is further characterized in that the processing circuit further comprises a plurality of second seeds S i , and to generate a plurality of random numbers R i as outputs, wherein the one-way function f is at least one of a secure hash function and / or a block cipher. According to a further aspect, the processing circuit may be added by, determining at least one random number of a plurality of random numbers R i is not a prime number, and generates the other supplemental seed T 2 having the g bits and replacement seed T 2 and the random number on the basis of the seed S to generate another second seed S 2, and generate another random number R 2 having n bits, and - the random number R 2 is a second seed being based on S 2 - determines that, the random number R 2 is prime and , And a supplemental seed T 2 in a memory circuit. According to another aspect, the processing circuitry is further configured to retrieve the stored random seed S and supplemental seed T 2 from the memory circuit and regenerate the prime random number R 2 based on the random seed S and the replenish seed T 2 .

[0015] 다른 특징은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 장치를 제공하고, 장치는, k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하기 위한 수단, 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하기 위한 수단, 각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하기 위한 수단 ―n은 k + g 미만이고, 복수의 난수들 Ri 각각은 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―, 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하기 위한 수단 ―난수 RP는 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 제2 씨드 SP는 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 난수 씨드 S에 기초함―, 및 난수 씨드 S 및 보충 씨드 TP를 메모리 회로에 저장하기 위한 수단을 포함한다. 일 양상에 따라, 장치는, 메모리 회로로부터 저장된 난수 씨드 S 및 보충 씨드 TP를 리트리빙하기 위한 수단, 및 난수 씨드 S 및 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하기 위한 수단을 더 포함한다. [0015] Another feature provides an apparatus for generating and storing seed values for prime generation, the apparatus comprising a random number seed S having k bits and a plurality of supplementary seeds T i Means for generating a plurality of second seeds S i , each based on a different replenishment seed and a random seed S among the plurality of replenish seeds T i , a plurality of random numbers each having n bits wherein a plurality of random numbers R i - means to produce the R i -n + k is less than g and, a plurality of random numbers R i each being based on different second seed of a plurality of the second seed s i of the random number R P is the second basis of the seed s P of the plurality of second seed to s i, and the second seed s P includes a plurality of supplemental seed T i - at least one means for the random number R P determines that a small number Based on the replenishment seed T P and the random number seed S, and the random number seed S and the replenishment seed And means for storing T P in the memory circuit. According to one aspect, the apparatus, on the basis of a random number seed S and supplemental seed T P stored from the memory circuit to the means for living discrete, and the random number seed S and supplemental seed T P The means for regenerating the small number of the random number R P .

[0016] 다른 특징은 하나 또는 그 초과의 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체를 제공하고, 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 프로세서로 하여금, k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하게 하고, 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하게 하고, 각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하게 하고 ―n은 k + g 미만이고, 복수의 난수들 Ri 각각은 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―, 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하게 하고 ―난수 RP는 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 제2 씨드 SP는 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 난수 씨드 S에 기초함―, 그리고 난수 씨드 S 및 보충 씨드 TP를 메모리 회로에 저장하게 한다. 일 양상에 따라, 명령들은 추가로, 프로세서로 하여금, 메모리 회로로부터 저장된 난수 씨드 S 및 보충 씨드 TP를 리트리빙하게 하고, 그리고 난수 씨드 S 및 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하게 한다.[0016] Other features provide a computer-readable storage medium having stored thereon one or more instructions, wherein instructions, when executed by the at least one processor, cause the processor to perform the steps of: , and a plurality of supplemental seed in T i to it, and generates a plurality of second seed of S i based respectively on different replacement seed and the random number seed S of a plurality of supplemental seed of T i having respectively the g bits And generates a plurality of random numbers R i each having n bits, -n is less than k + g, and each of the plurality of random numbers R i is a second one of the plurality of second seeds S i , - determining that at least one random number R P among the plurality of random numbers R i is a prime number, and - the random number R P is based on a second seed S P of the plurality of second seeds S i , The seed S P is a seed of a plurality of supplementary seeds T i , T P and a random seed S, and causes the memory circuit to store the random number seed S and the replenish seed T P. According to an aspect, the instructions further cause the processor to retrieve the stored random seed S and replenish seed T P from the memory circuit and to recreate the prime random number R P based on the random seed S and the replenish seed T P .

[0017] 도 1은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도의 제1 예를 예시한다.
[0018] 도 2는 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도의 제2 예를 예시한다.
[0019] 도 3은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트의 제1 예를 예시한다.
[0020] 도 4는 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도의 제3 예를 예시한다.
[0021] 도 5는 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도의 제4 예를 예시한다.
[0022] 도 6은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트의 제2 예를 예시한다.
[0023] 도 7a 및 도 7b는 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도의 제5 예를 예시한다.
[0024] 도 8은 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(800)를 예시한다.
[0025] 도 9는 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트(900)를 예시한다.
[0026] 도 10은 본원에 설명되는 암호 보안을 위한 방법들 중 임의의 방법을 실행하는 전자 디바이스(1000)에 대한 하드웨어 구현이 예시적이고 개략적인 블록도를 예시한다.
[0027] 도 11은 프로세싱 회로의 개략적인 블록도를 예시한다.
[0028] 도 12는 프로세싱 회로의 개략적인 블록도를 예시한다.
[0017] FIG. 1 illustrates a first example of a flow diagram of a method for generating and storing seed values for prime generation.
[0018] FIG. 2 illustrates a second example of a flowchart of a method for generating and storing seed values for prime generation.
[0019] FIG. 3 illustrates a first example of a flow chart of a method for generating and storing seed values for prime generation.
[0020] FIG. 4 illustrates a third example of a flowchart of a method for generating and storing seed values for prime generation.
[0021] FIG. 5 illustrates a fourth example of a flowchart of a method for generating and storing seed values for prime generation.
[0022] FIG. 6 illustrates a second example of a flow chart of a method for generating and storing seed values for prime generation.
[0023] Figures 7A and 7B illustrate a fifth example of a flowchart of a method for generating and storing seed values for prime generation.
[0024] FIG. 8 illustrates a flowchart 800 of a method for generating and storing seed values for prime generation.
[0025] FIG. 9 illustrates a flow chart 900 of a method for generating and storing seed values for prime generation.
[0026] FIG. 10 illustrates an exemplary, schematic block diagram of a hardware implementation for an electronic device 1000 that implements any of the methods for cryptographic security described herein.
[0027] Figure 11 illustrates a schematic block diagram of a processing circuit.
[0028] Figure 12 illustrates a schematic block diagram of a processing circuit.

[0029] 하기의 설명에서는, 본 개시물의 다양한 양상들의 완전한 이해를 제공하기 위해 특정 세부사항들이 제공된다. 그러나, 이러한 특정 세부사항들 없이, 양상들이 실시될 수 있음이 당업자에 의해 이해될 것이다. 예컨대, 양상들을 불필요한 세부사항으로 모호하게 하는 것을 회피하기 위하여, 회로들은 블록도들로 도시될 수 있다. 다른 실례들에서, 본 개시물의 양상들을 모호하게 하지 않기 위하여, 잘 알려진 회로들, 구조들 및 기법들은 상세히 도시되지 않을 수 있다.[0029] In the following description, specific details are set forth in order to provide a thorough understanding of the various aspects of the disclosure. However, it will be understood by those skilled in the art that aspects may be practiced without these specific details. For example, to avoid obscuring aspects with unnecessary detail, the circuits may be shown in block diagrams. In other instances, well known circuits, structures and techniques may not be shown in detail in order not to obscure aspects of the disclosure.

[0030] 본원에서 단어 "예시적"은 "예, 실례, 또는 예시로서의 역할을 하는"을 의미하는데 사용된다. 본원에서 "예시적"으로서 설명되는 임의의 구현 또는 양상이 반드시 본 개시물의 다른 양상들보다 바람직하거나 또는 유리한 것으로서 이해되어야 하는 것은 아니다. 마찬가지로, 용어 "양상들"은 본 개시물의 양상들 전부가 개시되는 특징, 장점, 또는 동작 모드를 포함함을 요구하지는 않는다. 본원에 사용되는 바와 같이, "소수 테스트(primality test)들" 및 "합성수 테스트(composite number test)들"은 상호 교환 가능하게 사용될 수 있고, 그리고 일반적으로 "소수 테스트들"로 지칭된다. 예컨대, Miller-Rabin 테스트와 같은 테스트들은 수(number)가 합성수임을 증명할 수 있다. 그렇게 함으로써, 테스트는 수가 소수가 아님을 또한 증명한다. 따라서, 본원에 사용된 바와 같이, 수에 대해 소수 테스트를 실행하는 것은 수가 합성수임을 증명하거나 또는 증명하려고 시도하는 그러한 테스트들을 포함한다. 본원에 사용된 바와 같이, "난수"는 참으로 랜덤할 수 있거나(예컨대, 그것은 진정한 난수 발생기(RNG:random number generator)에 의해 생성되었음) 또는 난수는 의사 랜덤할 수 있다(예컨대, 그것은 의사 난수 발생기(PRNG:pseudo random number generator)를 사용하여 생성되었음).[0030]  The word "exemplary" is used herein to mean "serving as an example, instance, or illustration. &Quot; Any embodiment or aspect described herein as "exemplary " is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term "aspects" do not require that all aspects of the disclosure be included with the disclosed features, advantages, or mode of operation. As used herein, "primality tests" and "composite number tests" may be used interchangeably and are generally referred to as "minority tests. &Quot; For example, tests such as the Miller-Rabin test can prove that the number is synthetic. By doing so, the test also proves that the number is not a prime number. Thus, as used herein, performing a prime test on a number includes those tests that attempt to prove or prove that the number is synthetic. As used herein, a "random number" may be indeed random (e.g., it is generated by a true random number generator (RNG)) or the random number may be pseudo-random Generated using a pseudo random number generator (PRNG)).

개요summary

[0031] 본원에서는 값들, 예컨대, 소수들을 생성하는데 사용되는 씨드 값들을 저장하는데 요구되는 메모리 회로 스토리지 공간의 양을 감소시키는 방법들 및 디바이스들이 설명되고, 이어서, 이 소수들은 보안 알고리즘들을 위한 암호 키들을 생성하는데 사용될 수 있다. 구체적으로, 비교적 많은 비트 수의 소수들 대신에, 하나 또는 그 초과의 비교적 작은 비트 수의 씨드 값들이 미리-컴퓨팅 및 저장된다. 이 씨드들 값들이, 요구 시 소수들을 생성하는데 추후 시점에 사용될 수 있다. 이러한 방법들 및 디바이스들은, 스토리지 공간이 제한되는 암호 가속기(crypto-accelerator) 하드웨어 모듈들을 갖는 모바일 디바이스들에 특히 유용하다. 또한, 다른 디바이스들은 암호 키 프로비저닝 비용들을 낮추기 위해 본원에 설명되는 방법들 및 장치들로부터 이득을 얻을 수 있다.[0031] Methods and devices for reducing the amount of memory circuit storage space required to store values, e. G., Seed values used to generate seeds, are described herein, and these prime numbers are then used to generate cryptographic keys for security algorithms Can be used. Specifically, instead of relatively large numbers of bits, the seed values of one or more relatively small number of bits are pre-computed and stored. These seed values can be used at a later point in time to generate prime numbers on demand. These methods and devices are particularly useful for mobile devices with crypto-accelerator hardware modules that have limited storage space. In addition, other devices may benefit from the methods and apparatuses described herein to lower cryptographic key provisioning costs.

소수 생성을 위해 사용되는 Used for generating prime numbers 씨드Seed 값들의 생성 및 저장을 위한 예시적 방법들 Exemplary methods for generating and storing values

[0032] 도 1은 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(100)를 예시한다. 먼저, k-비트 난수 씨드 S가 생성된다(102). 난수 씨드 S는, 예컨대, 난수 발생기 또는 의사 난수 발생기를 사용하여 생성될 수 있다. 값 k는 2와 동일하거나 또는 그 초과의 임의의 정수일 수 있다. 이후, 난수 씨드 S는 n-비트 난수 R를 생성하는데 사용될 수 있고(104), 여기서 n > k이다. 구체적으로, 방정식 (1)에 따라 난수 씨드 S에 기초하여 난수 R를 생성하기 위해, 일방향 함수 f가 실행될 수 있다: [0032] FIG. 1 illustrates a flowchart 100 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a k-bit random number seed S is generated (102). The random seed S may be generated using, for example, a random number generator or a pseudo random number generator. The value k may be any integer equal to or greater than two. Then, the random seed S may be used to generate an n-bit random number R (104), where n > k. Specifically, in order to generate the random number R based on the random number seed S according to the equation (1), a one-way function f can be executed:

R = f(S) (1).R = f (S) (1).

일 예에 따라, 함수 f는 암호 해시 함수, 예컨대, 보안 해시 함수(예컨대, SHA-1, SHA-2, etc.) 또는 블록 암호, 예컨대, 비밀 키를 갖는 AES(advanced encryption standard)일 수 있다. According to one example, the function f may be a cryptographic hash function, e.g., a secure hash function (e.g. SHA-1, SHA-2, etc.) or an AES (advanced encryption standard) with a block cipher, .

[0033] 다음 차례로, 난수 R가 소수인지의 여부를 결정하기 위해 소수 테스트가 수행된다(106). 단지 일 예로서, 수행되는 소수 테스트는 Miller-Rabin 소수 테스트를 포함할 수 있다. 난수 R가 소수인 것으로 결정되면, 난수 씨드 S는 메모리에 저장된다(108). 그렇지 않으면, 방법 단계들(102, 104, 106)이 반복되어, 새로운 난수 씨드 S가 생성되고(102), (예컨대, 함수 f를 사용하여) 난수 씨드 S에 기초하여 새로운 난수 R가 생성되며(104), 그리고 새롭게 생성된 난수 R가 소수인지의 여부를 결정하기 위해 소수 테스트가 실행된다(106). 난수 R가 소수인 것으로 결정될 때까지, 이들 단계들(102, 104, 106)이 계속해서 반복되고, 난수 R가 소수인 것으로 결정된 이후, 난수 R를 생성했던 난수 씨드 S가 저장된다(108). 일 예에 따라, 난수 씨드 S의 후속하는 반복들은 소수인 것으로 결정되지 않았던, 앞서 생성된 난수 R의 k개 비트들을 사용할 수 있다. 예컨대, 난수 씨드 S의 후속하는 반복은 이전 반복으로부터의 난수 R의 첫 번째 k개 비트들과 동일할 수 있다. [0033] Next, a decimal test is performed to determine whether the random number R is a prime number (106). By way of example only, the fractional tests performed may include the Miller-Rabin decimal test. If it is determined that the random number R is a prime number, the random number seed S is stored in memory (108). Otherwise, the method steps 102, 104, and 106 are repeated to generate a new random seed S (102) and a new random number R is generated based on the random seed S (e.g., using function f) 104), and a decimal test is performed (106) to determine whether the newly generated random number R is a prime number. These steps 102, 104, and 106 are repeated until the random number R is determined to be a decimal number, and after the random number R is determined to be a decimal number, the random number seed S that generated the random number R is stored (108). According to one example, subsequent iterations of the random number seed S may use k bits of the previously generated random number R that were not determined to be a prime number. For example, the subsequent iteration of the random seed S may be identical to the first k bits of the random number R from the previous iteration.

[0034] 난수 씨드 S의 비트들의 수(k)가 소수 난수 R의 비트들의 수(n) 미만이기 때문에, 난수 R 대신에 씨드 S를 저장함으로써 메모리 공간이 절약되며, 이 난수 R는 폐기/삭제될 수 있다. 추후에, 난수 씨드 S는 (예컨대, 자신이 저장된 메모리 회로로부터) 리트리빙될 수 있고, 그리고 일방향 함수 f를 사용하여 소수 난수 R를 재생성하는데 사용될 수 있다. 예컨대, 키 생성 프로세스는 하나 또는 그 초과의 소수들을 요청할 수 있고, 이 하나 또는 그 초과의 소수들은 위에서 설명된 방법(100)을 사용하여 공급될 수 있다. 단지 일 예에 따라, 이로써 생성된 키들은 암호 보안 알고리즘, 예컨대, RSA에 의해 사용될 수 있다.[0034] Since the number of bits (k) of the random number seed S is less than the number (n) of bits of the prime random number R, memory space is saved by storing the seed S instead of the random number R, and this random number R can be discarded / deleted . In the future, the random seed S may be retrieved (e.g., from the memory circuit in which it is stored) and used to regenerate the prime random number R using the one-way function f. For example, the key generation process may request one or more prime numbers, and one or more prime numbers may be supplied using the method 100 described above. According to only one example, the keys thus generated may be used by a cryptographic security algorithm, e.g., RSA.

[0035] 따라서, 도 1에 예시된 방법에 따라, 소수인 난수 R가 생성될 수 있고, 그리고 이후, 키 생성 알고리즘, 예컨대, RSA에 대해 사용되어, 암호 보안 키가 생성될 수 있다. 도 1에 예시된 방법은, 암호 보안 알고리즘(예컨대, 키들을 생성하기 위해 소수(들)를 요청하는 RSA 알고리즘)으로부터 소수에 대한 요청을 수신하기 이전에, 소수 난수 R를 생성하는 것으로 알려진 난수 씨드 S가 생성 및 저장된다는 점에서, "오프라인"으로 수행될 수 있다.[0035] Thus, according to the method illustrated in FIG. 1, a random number R, which is a prime number, can be generated and then used for a key generation algorithm, e.g., RSA, to generate a cryptographic secret key. The method illustrated in FIG. 1 may be used to generate a random number R that is known to generate a prime number random number R prior to receiving a request for a prime number from a cryptographic security algorithm (e.g., an RSA algorithm that requests a prime number (s) May be performed "offline" in that S is generated and stored.

[0036] 도 2는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(200)를 예시한다. 먼저, k-비트 난수 씨드 S가 프로세싱 회로(202)(예컨대, 프로세서)에서 생성된다(208). (일 양상에 따라, 프로세싱 회로(202)에 의해 수행되는 단계들이 소프트웨어로 구현될 수 있음을 주목하라.) 이후, (예컨대, 도 1에 대해 위에서 설명된 함수 f를 사용하여) 씨드 S에 기초하여 n-비트 난수 R가 생성된다(210). 다음 차례로, 생성된 난수 R가 소수인지의 여부가 결정된다(212). 적어도 하나의 난수 R가 소수인 것으로 결정될 때까지, 단계들(208, 210, 212)이 반복된다(214). 이후, 일단 난수 R가 소수인 것으로 결정되면, 소수 난수 R를 생성하는데 사용된 씨드 S가 메모리 회로(204)(예컨대, 메모리)에 저장된다(216). 이 지점에서 소수 난수 R는 폐기 또는 삭제될 수 있는데, 그 이유는 씨드 S가 저장되었기 때문이다. 다음 차례로, 암호 보안 알고리즘(예컨대, RSA)을 구현하는 애플리케이션(206)으로부터 하나 또는 그 초과의 소수들에 대한 요청이 수신된다(218). 이 요청에 응답하여, 메모리로부터 씨드 S가 리트리빙되고(220), 그리고 이 씨드 S를 사용하여 n-비트 소수 난수 R가 재생성된다(222). 마지막으로, 이 소수 난수 R가 키 생성을 위해 소수(들)를 요청하는 애플리케이션에 송신/제공된다(224). [0036] Figure 2 illustrates a flowchart 200 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a k-bit random number seed S is generated 208 in the processing circuit 202 (e.g., a processor). (Note that the steps performed by the processing circuit 202 may be implemented in software, depending on the aspect). Thereafter, the seed S is generated (e.g., using the function f described above for FIG. 1) And an n-bit random number R is generated (210). Next, it is determined whether the generated random number R is a prime number (212). Steps 208, 210 and 212 are repeated 214 until at least one random number R is determined to be a prime number. Thereafter, once it is determined that the random number R is a prime number, the seed S used to generate the prime random number R is stored (216) in the memory circuit 204 (e.g., memory). At this point, the decimal random number R can be discarded or deleted because the seed S is stored. In turn, a request is received 218 for one or more prime numbers from an application 206 implementing a cryptographic security algorithm (e.g., RSA). In response to this request, the seed S is retired from the memory (220), and the n-bit prime random number R is regenerated (222) using this seed S. Finally, this prime random number R is sent / provided 224 to the application requesting the prime number (s) for key generation.

[0037] 도 3은 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트(300)를 예시한다. 먼저, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고(304), 이 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고(306) ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써(308), 소수 난수가 생성된다(302). 다음 차례로, 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S가 저장된다(310). [0037] Figure 3 illustrates a flow chart 300 of a method for generating and storing seed values for prime generation in accordance with an aspect. (304) a random number seed S having k bits repeatedly, and generates (306) a random number R having n bits based on the seed S, repeatedly until the generated random number R is determined to be a decimal number, -K is less than n, and by determining whether the random number R is a prime number (308), a prime random number is generated (302). Next, the random number seed S used to generate the random number R determined to be a prime number is stored (310).

[0038] 도 4는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(400)를 예시한다. 먼저, k-비트 난수 씨드 S가 생성된다(402). 난수 씨드 S는 예컨대, 난수 발생기 또는 의사 난수 발생기를 사용하여 생성될 수 있다. 값 k는 2와 동일하거나 또는 그 초과의 임의의 정수일 수 있다. 이후, 난수 씨드 S는 비밀 키 kS와 함께 n-비트 난수 R를 생성하는데 사용될 수 있고(404), 여기서 n > k이다. 구체적으로, 방정식 (2)에 따라 난수 씨드 S 및 비밀 키 kS에 기초하여 난수 R를 생성하기 위해, 일방향 함수 f가 실행될 수 있다: [0038] FIG. 4 illustrates a flowchart 400 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a k-bit random number seed S is generated (402). The random seed S may be generated using, for example, a random number generator or a pseudo random number generator. The value k may be any integer equal to or greater than two. The random number seed S may then be used 404 to generate an n-bit random number R with the secret key k S , where n > k. Specifically, in order to generate the random number R based on the random number seed S and the secret key k S according to equation (2), a one-way function f may be executed:

R = f(S, kS) (2). R = f (S, k S ) (2).

일 예에서, 비밀 키 kS는 방법(400)을 수행하는 장치에만 알려질 수 있다. 일 양상에 따라, 비밀 키 kS는 방법(400)을 수행하는 장치에서 보안 메모리(예컨대, 판독 전용 메모리, 암호화될 수 있거나 또는 암호화되지 않을 수 있는 OTP(one-time programmable) 메모리)로부터 리트리빙될 수 있다. 이러한 경우, 비밀 키 kS는, 키 kS의 허가되지 않은 액세스/발견을 막기 위해, 사전에 보안 메모리에 저장될 수 있다. 다른 양상에 따라, 비밀 키 kS가 반드시 장치에서 보안 메모리에 저장되는 것이 아닐 수 있으며, 대신에, 장치에서 즉석에서(on the fly) 생성된다. In one example, the secret key k S may only be known to the device performing method 400. In accordance with an aspect, the secret key k S may be transferred from the secure memory (e.g., read-only memory, one-time programmable (OTP) memory that may or may not be encrypted) . In this case, the secret key k S may be previously stored in the secure memory to prevent unauthorized access / discovery of the key k S. According to another aspect, the secret key k S may not necessarily be stored in the secure memory at the device, but instead is created on the fly in the device.

[0039] 일 예에 따라, 일방향 함수 f는, 암호 메시지 인증 코드(MAC:message authentication code), 예컨대, 해시-기반 메시지 인증 코드(HMAC:hash-based message authentication code), 또는 블록 암호, 예컨대, AES(advanced encryption standard)일 수 있다. 양쪽 경우들 모두에서, MAC 또는 블록 암호는 비밀 키 kS를 사용한다. [0039] According to an example, the one-way function f may be a message authentication code (MAC), for example a hash-based message authentication code (HMAC) AES (advanced encryption standard). In both cases, the MAC or block cipher uses the secret key k S.

[0040] 다음 차례로, 난수 R가 소수인지의 여부를 결정하기 위해, 소수 테스트가 수행된다(406). 난수 R가 소수인 것으로 결정되면, 난수 씨드 S가 메모리에 저장된다(408). 선택적으로, 비밀 키 kS가 이미 보안 메모리에 저장된 것이 아닌 경우들(예컨대, 비밀 키 kS가 위에서 설명된 바와 같이 생성되는 경우들)에서, 그러면 비밀 키 kS는 난수 R가 소수임이 결정된 이후에 메모리에 저장된다. 난수 R가 소수가 아닌 것으로 결정되면, 방법 단계들(402, 404, 406)이 반복되어, 새로운 난수 씨드 S가 생성되고(402), (예컨대, 함수 f를 사용하여) 난수 씨드 S 및 비밀 키 kS에 기초하여 새로운 난수 R가 생성되며(404), 그리고 새롭게 생성된 난수 R가 소수인지의 여부를 결정하기 위해 소수 테스트가 실행된다(406). 난수 R가 소수인 것으로 결정될 때까지, 이들 단계들(402, 404, 406)이 계속해서 반복되고, 난수 R가 소수인 것으로 결정된 이후, 난수 R를 생성했던 난수 씨드 S 및 비밀 키 kS가 저장된다(408). 일 예에 따라, 비밀 키 kS는 (예컨대, 암호화된 OTP 메모리에) 안전하게 저장되고, 그리고 다른 예에 따라 비밀 키 kS는 표준 메모리(예컨대, 보통의 RAM(random access memory))에 저장된다. [0040] Next, in order to determine whether the random number R is a prime number, a decimal test is performed (406). If it is determined that the random number R is a decimal number, the random number seed S is stored in memory (408). Alternatively, the secret key k S is the case other than that already stored in the secure memory (e. G., If the secret key k S is generated as described above), then the secret key k S is since the random number R is determined to be a small number of Lt; / RTI > If it is determined that the random number R is not a prime, the method steps 402, 404, 406 are repeated to generate a new random number seed S 402 (using a function f, for example) A new random number R is generated 404 based on k S , and a decimal test is performed 406 to determine whether the newly generated random number R is a prime number. After these steps 402, 404, and 406 are repeated and the random number R is determined to be a decimal number, the random number seed S and the secret key k S that generated the random number R are stored until the random number R is determined to be a decimal number. (408). According to one example, the secret key k S is securely stored (e.g., in an encrypted OTP memory), and in accordance with another example, the secret key k S is stored in a standard memory (e.g., ordinary random access memory (RAM) .

[0041] 함수 f를 사용하여 소수 난수 R를 재생성하기 위해, 난수 씨드 S 및 비밀 키 kS는 추후에 미래 시점에 리트리빙 및 사용될 수 있다. 예컨대, 키 생성 프로세스는 하나 또는 그 초과의 소수들을 요청할 수 있고, 이 하나 또는 그 초과의 소수들은 위에서 설명된 방법(400)을 사용하여 공급될 수 있다. 단지 일 예에 따라, 이로써 생성된 키들은 암호 보안 알고리즘, 예컨대, RSA에 의해 사용될 수 있다.[0041] In order to regenerate the prime number R using the function f, the random number seed S and the secret key k S can be retrieved and used at a later time in the future. For example, the key generation process may request one or more prime numbers, and one or more prime numbers may be supplied using the method 400 described above. According to only one example, the keys thus generated may be used by a cryptographic security algorithm, e.g., RSA.

[0042] 따라서, 도 4에 예시된 방법에 따라, 소수인 난수 R가 생성될 수 있고, 이어서, 이 소수인 난수 R는 암호 보안 알고리즘, 예컨대, RSA에 대한 암호 보안 키를 생성하는데 사용된다. 도 4에 예시된 방법은, 키 생성 프로세스로부터 소수에 대한 요청을 수신하기 이전에, 소수 난수 R를 생성하는 것으로 알려진 난수 씨드 S 및 비밀 키 kS가 생성 및 저장된다는 점에서, "오프라인"으로 수행될 수 있다.[0042] Thus, according to the method illustrated in FIG. 4, a random number R, which is a prime number, can be generated, and then this prime number R is used to generate a cryptographic security key for the cryptographic security algorithm, e.g., RSA. The method illustrated in FIG. 4 is characterized in that, prior to receiving a request for a prime number from the key generation process, a random number seed S and a secret key k S , which are known to generate a prime number R, are generated and stored, .

[0043] 도 5는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(500)를 예시한다. 먼저, k-비트 난수 씨드 S가 프로세싱 회로(502)(예컨대, 프로세서)에서 생성된다(508). (일 양상에 따라, 프로세싱 회로(502)에 의해 수행되는 단계들이 소프트웨어로 구현될 수 있음을 주목하라.) 이후, 비밀 키 kS가 생성되거나 또는 메모리 회로(504)(예컨대, 메모리)의 보안 메모리로부터 리트리빙되고(509), 그리고 (예컨대, 도 4에 대해 위에서 설명된 함수 f를 사용하여) 씨드 S 및 비밀 키 kS에 기초하여 n-비트 난수 R가 생성된다(510). 다음 차례로, 생성된 난수 R가 소수인지의 여부가 결정된다(512). 적어도 하나의 난수 R가 소수인 것으로 결정될 때까지, 단계들(508, 509, 510, 512)이 반복된다(514). 이후, 일단 난수 R가 소수인 것으로 결정되면, 소수 난수 R를 생성하는데 사용된 씨드 S가 메모리 회로(예컨대, RAM과 같은 표준 메모리)에 저장된다(516). 소수 난수 R는 이 지점에서 폐기 또는 삭제될 수 있는데, 그 이유는 씨드 S가 저장되었기 때문이다. 다음 차례로, 암호 키 생성 함수/프로세스를 구현하는 애플리케이션(506)으로부터 하나 또는 그 초과의 소수들에 대한 요청이 수신된다(518). 이 요청에 응답하여, 씨드 S 및 비밀 키 kS가 메모리로부터 리트리빙되고(520)(예컨대, 씨드 S는 표준 메모리, 예컨대, RAM으로부터 리트리빙되고, 그리고 비밀 키 kS는 보안 메모리로부터 리트리빙됨), 그리고 씨드 S 및 비밀 키 kS를 사용하여 n-비트 소수 난수 R가 재생성된다(522). 마지막으로, 소수 난수 R는, 키 생성을 위한 소수(들)를 요청하는 애플리케이션에 송신/제공된다(524). [0043] FIG. 5 illustrates a flowchart 500 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a k-bit random seed S is generated (508) in a processing circuit 502 (e.g., a processor). (Note that, depending on the aspect, the steps performed by the processing circuit 502 may be implemented in software). After that, the secret key k S is generated or the security of the memory circuit 504 (509), and an n-bit random number R is generated 510 based on the seed S and the secret key k S (e.g., using the function f described above with respect to FIG. 4). Next, it is determined whether the generated random number R is a prime number (512). Steps 508, 509, 510, 512 are repeated 514 until at least one random number R is determined to be a prime number. Thereafter, once it is determined that the random number R is a prime number, the seed S used to generate the prime random number R is stored 516 in a memory circuit (e.g., standard memory such as RAM). The decimal random number R can be discarded or deleted at this point because the seed S is stored. In turn, a request is received 518 for one or more prime numbers from an application 506 implementing the cryptographic key generation function / process. In response to this request, the seed S and the secret key k S are retrieved from memory 520 (e.g., the seed S is retrieved from standard memory, e.g., RAM, and the secret key k S is retrieved from the secure memory , And the n-bit prime random number R is regenerated (522) using the seed S and the secret key k S. Finally, the decimal random number R is sent / provided 524 to the application requesting the prime number (s) for key generation.

[0044] 도 6은 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트(600)를 예시한다. 먼저, 생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고(604), 이 씨드 S 및 비밀 키 kS에 기초하여 n개 비트들을 갖는 난수 R를 생성하고(606) ―k는 n 미만임―, 그리고 난수 R가 소수인지의 여부를 결정함으로써(608), 소수 난수가 생성된다(602). 다음 차례로, 소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S 및 비밀 키 kS가 저장된다(610). 난수 씨드 S가 표준 메모리, 예컨대, RAM에 저장될 수 있는 반면에, 비밀 키 kS는 보안 메모리, 예컨대, OTP 메모리에 저장될 수 있다. [0044] FIG. 6 illustrates a flow chart 600 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a random number seed S having k bits is repeatedly generated (604) until it is determined that the generated random number R is a decimal number, and a random number R having n bits based on the seed S and secret key k S is calculated (606) -k is less than n, and by determining whether the random number R is a prime number (608), a prime random number is generated (602). In the next step, the random number seed S and the secret key k S used to generate the random number R determined to be a prime number are stored (610). While the random seed S may be stored in standard memory, e.g., RAM, the secret key k S may be stored in secure memory, e.g., OTP memory.

[0045] 도 7a 및 도 7b는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(700)를 예시한다. 도 7a를 참조하면, 먼저, k-비트 난수 씨드 S 및 복수의 g-비트 보충 씨드들 Ti이 생성되고(702), 여기서 정수 i = {1, 2, ... m}이고, 그리고 m > 1이다. 난수 씨드 S 및 복수의 보충 씨드들 Ti은 예컨대, 난수 발생기 또는 의사 난수 발생기를 사용하여 생성될 수 있다. 값 k는 2와 동일하거나 또는 그 초과의 임의의 정수일 수 있고, 그리고 값 g는 1과 동일하거나 또는 그 초과의 임의의 정수일 수 있다. 일 양상에 따라, g-비트 보충 씨드들 Ti 각각은 k-비트 난수 씨드 S보다 더 적은 수의 비트들을 갖는다(즉, g < k이다). [0045] Figures 7A and 7B illustrate a flowchart 700 of a method for generating and storing seed values for prime generation in accordance with an aspect. 7A, a k-bit random seed S and a plurality of g-bit supplementary seeds T i are generated 702 where an integer i = {1, 2, ... m} and m > 1. The random number seed S, and a plurality of supplemental seed T i can be created for example, using a random number generator or a pseudo-random number generator. The value k may be any integer equal to or greater than 2, and the value g may be any integer equal to or greater than one. According to an aspect, each of the g-bit supplementary seeds T i has fewer bits than the k-bit random number seed S (i.e., g < k).

[0046] 다음 차례로, 난수 씨드 S 및 복수의 보충 씨드들 Ti에 기초하여 복수의 제2 씨드들 Si이 생성된다. 예컨대, 난수 씨드 S를 복수의 보충 씨드들 Ti 각각과 연관시킴으로써, 복수의 제2 씨드들 Si이 생성될 수 있다(704). 제2 씨드들 Si의 생성이 복수의 보충 씨드들 Ti과 난수 씨드 S의 연관으로 제한되지 않음을 주목하라. 난수 씨드 S 및 복수의 보충 씨드들 Ti에 기초하여 제2 씨드들 Si을 생성하기 위해 임의의 논리 동작(들)이 수행될 수 있다. [0046] Next, a plurality of second seeds S i are generated based on the random number seed S and the plurality of supplementary seeds T i . For example, by associating a random seed S with each of a plurality of supplemental seeds T i , a plurality of second seeds S i may be generated 704. Note that the second seed to do the production of S i not limited to a plurality of supplemental seed of T i and the association of the random number seed S. A random number seed, and S is any logical operation (s) may be performed on the basis of the plurality of supplemental seed in T i to produce a second seed of S i.

[0047] 이후, 제2 씨드들 Si에 기초하여 복수의 n-비트 난수들 Ri이 생성되고(706), 여기서 n > k + g이다. 일 양상에 따라, 방정식 (3)에 따라 제2 씨드들 Si에 기초하여 난수들 Ri을 생성하기 위해 일방향 함수 f가 실행될 수 있다: [0047] Thereafter, a plurality of n-bit random numbers R i are generated 706 based on the second seeds S i , where n> k + g. According to an aspect, a one-way function f may be executed to generate random numbers R i based on the second seeds S i according to equation (3): &lt; EMI ID =

Ri = f(Si) 정수 값들 i ≥ 1의 경우 (3).R i = f (S i ) For integer values i ≥ 1 (3).

[0048] 다른 양상에 따라, 방정식 (4)에 따라 제2 씨드들 Si 및 비밀 키 kS(708)에 기초하여 난수들 Ri을 생성하기 위해 일방향 함수 f가 실행될 수 있다: [0048] According to another aspect, a one-way function f may be executed to generate random numbers R i based on the second seeds S i and the secret key k S (708) according to equation (4):

Ri = f(Si, kS) 정수 값들 i ≥ 1의 경우 (4).R i = f (S i , k S ) For integer values i ≥ 1 (4).

일 예에서, 비밀 키 kS는 방법(700)을 수행하는 장치에만 알려질 수 있다. 일 양상에 따라, 비밀 키 kS는 방법(700)을 수행하는 장치에서 보안 메모리(예컨대, 판독 전용 메모리, 암호화될 수 있거나 또는 암호화되지 않을 수 있는 OTP(one-time programmable) 메모리)로부터 리트리빙될 수 있다.In one example, the secret key k S may be known only to the device performing method 700. In accordance with an aspect, the secret key k S may be transferred from a secure memory (e.g., read-only memory, one-time programmable (OTP) memory that may be encrypted or unencrypted) .

[0049] 다음 차례로, 난수들 중 임의의 난수가 소수인지의 여부를 결정하기 위해 난수들 Ri 각각에 대해 소수 테스트가 수행된다(710). 난수들 Ri 중 임의의 난수가 소수인 것으로 결정되면, 소수인 것으로 결정된 하나 또는 그 초과의 난수들 Ri을 생성하는데 사용된 난수 씨드 S 및 하나 또는 그 초과의 보충 씨드들 Ti이 메모리에 저장된다(712). 선택적으로, 일방향 함수 f에 의해 비밀 키 kS가 사용되었다면, 비밀 키 kS가 보안 메모리에 저장된다(714). 난수들 Ri 중 아무 것도 소수가 아니라면, 적어도 하나의 난수 Ri가 소수인 것으로 결정될 때까지, 단계들(702, 704, 706, 710)이 반복된다.[0049] Next, a decimal test is performed (710) on each of the random numbers R i to determine whether any of the random numbers is a prime number. If it is determined that any random number among the random numbers R i is a prime number, the random number seed S and one or more supplementary seeds T i used to generate one or more random numbers R i determined to be a prime number are stored in memory (712). Optionally, if the secret key k S has been used by the one-way function f, then the secret key k S is stored 714 in secure memory. None of the random numbers R i is also not a prime number, is repeated at least one time to be determined by random numbers R i is a prime number, the step (702, 704, 706, 710).

[0050] 도 7b를 참조하면, 적어도 하나의 난수 Ri가 소수인 것으로 결정되지만, 난수들 Ri 전부가 소수인 것은 아닌 것으로 결정된 이후, Ri가 소수가 아닌 것으로 결정되었던 모든 i에 대해, 하나 또는 그 초과의 g-비트 보충 씨드들 Ti이 재생성된다(716). 다음 차례로, Ri가 소수가 아닌 것으로 결정되었던 모든 i에 대해, 난수 씨드 S 및 재생성된 보충 씨드들 Ti에 기초하여 하나 또는 그 초과의 제2 씨드들 Si이 재생성된다(718). 예컨대, 씨드 S를 보충 씨드들 Ti과 연관시킴으로써, 제2 씨드들 Si이 생성될 수 있다. 이후, Ri가 소수가 아닌 것으로 결정되었던 모든 i에 대해, 일방향 함수 f를 사용하여 제2 씨드들 Si에 기초하여 하나 또는 그 초과의 난수들 Ri이 재생성된다(720). 일 예에 따라, 일방향 함수 f는 입력으로서 비밀 키 kS를 수신할 수 있다(예컨대, 단계(708) 참조). 7b, it is determined that at least one random number R i is a prime number, but after all random numbers R i have been determined not to be a prime, for all i where R i has been determined not to be a prime number, One or more g-bit supplemental seeds T i are regenerated 716. Next, for all i where R i was determined not to be a prime, one or more second seeds S i are regenerated 718 based on the random seed S and the regenerated supplementary seeds T i . For example, by associating the seed S with the seed supplemental T i, a second can be produced with seed S i. Thereafter, for all i where R i was determined not to be a prime, one or more random numbers R i are regenerated 720 based on the second seeds S i using the one-way function f. According to one example, the one-way function f may receive the secret key k S as an input (e.g., see step 708).

[0051] 다음 차례로, 재생성된 난수들 Ri에 대해 소수 테스트가 수행된다(722). 제공된 난수 Ri가 소수인 것으로 결정되면, 난수 Ri를 재생성하는데 부분적으로 사용되었던, 이 난수 Ri에 대응하는 보충 씨드 Ti가 저장된다(724). 그렇지 않으면, 난수 Ri가 소수가 아닌 것으로 결정되면, 재생성되는 난수들 Ri 전부가 소수일 때까지, 프로세스 단계들(716, 718, 720, 및 722)이 반복되고, 그리고 이에 따라, 그러한 난수들 Ri을 생성하는데 사용된 대응하는 보충 씨드들 Ti이 또한 저장된다(724). 일 양상에 따라, 임계치 수의 반복들 이후에, 난수 씨드 S를 포함하는 수 공간(number space)에서 어떠한 소수들도 남지 않았을 경우, 단계들(716, 718, 720, 722)이 반복적으로 수행되는 것이 중지될 수 있다.[0051] Next, a decimal test is performed on the regenerated random numbers R i (722). Provided when the random number R i is determined to be a prime number, the part that was used to regenerate the random numbers R i, supplemental seed T i corresponding to the random number R i are stored (724). Otherwise, if it is determined that the random numbers R i is not a prime number, until the random numbers R i all that is regenerated few, process steps (716, 718, 720, and 722) is repeated, and thus, such a random number The corresponding supplementary seeds T i used to generate R i are also stored 724. According to an aspect, steps 716, 718, 720, 722 are repeatedly performed if no prime numbers remain in the number space including the random number seed S after the repetitions of the threshold number Can be stopped.

[0052] 도 7a 및 도 7b에 도시된 방법(700)을 더욱 잘 예시하기 위한 예가 하기에서 제공된다. 먼저, 제공된 키 생성 프로세스에 의해 스무 개의 소수들이 원해짐을 가정하라. 이후, 단일의 k-비트 랜덤 씨드 S 및 스무 개의 g-비트 랜덤 보충 씨드들 T1, T2, ... T20이 생성된다(702). 다음 차례로, 보충 씨드들 T1, T2, ... T20에 기초하여 스무 개의 제2 씨드들 S1, S2, ... S20이 생성되고(704), 그리고 이어서, 함수 f를 사용하여 제2 씨드들 S1, S2, ... S20에 기초하여 스무 개의 난수들 R1, R2, ... R20이 생성된다(706). 이후, 난수들 R2, R7, 및 R17이 소수인 것으로 결정되고 그리고 나머지 난수들 R1, R3 ... R6, R8 ... R16, R18, R19, R20이 소수가 아닌 것으로 결정됨을 가정하라(710). 결과적으로, 난수 씨드 S 및 보충 씨드들 T2, T7, 및 T17이 메모리(예컨대, 표준 메모리 RAM)에 저장된다(712). [0052] An example for better illustrating the method 700 shown in Figures 7a and 7b is provided below. First, assume that twenty decimal fractions are desired by the key generation process provided. Thereafter, a single k-bit random seed S and twenty g-bit random supplementary seeds T 1 , T 2 , ... T 20 are generated 702. In turn, twenty second seeds S 1 , S 2 , ... S 20 are generated (704) based on the supplemental seeds T 1 , T 2 , ... T 20 , and then the function f Using the second seeds S 1 , S 2 , ... S 20 , twenty random numbers R 1 , R 2 , ... R 20 are generated (706). Then, the random numbers R 2 , R 7 , and R 17 are determined to be prime numbers and the remaining random numbers R 1 , R 3 ... R 6 , R 8 ... R 16 , R 18 , R 19 , R 20 It is assumed that this is not a prime (710). As a result, the random seed S and the supplementary seeds T 2 , T 7 , and T 17 are stored 712 in memory (e.g., standard memory RAM).

[0053] 다음 차례로, 난수들 R1, R3 ... R6, R8 ... R16, R18, R19, R20이 소수가 아닌 것으로 결정되었기 때문에, 보충 씨드들 T1, T3 ... T6, T8 ... T16, T18, T19, T20이 재생성된다(예컨대, 랜덤한 새로운 값들)(716). 이후, 새롭게 재생성된 보충 씨드들 T1, T3 ... T6, T8 ... T16, T18, T19, T20에 기초하여 새로운 제2 씨드들 S1, S3 ... S6, S8 ... S16, S18, S19, S20이 재생성되고(718), 그리고 이어서, 새롭게 재생성된 제2 씨드들 S1, S3 ... S6, S8 ... S16, S18, S19, S20에 기초하여 새로운 난수들 R1, R3 ... R6, R8 ... R16, R18, R19, R20이 재생성된다(720). 다음 차례로, 새롭게 재생성된 난수들 R1, R3 ... R6, R8 ... R16, R18, R19, R20에 대해, 이들이 소수인지를 결정하기 위해, 소수 테스트가 다시 실행된다(722). 이번에는, 난수들 R1, R6, R16, 및 R18이 이제 소수임이 결정되고, 그리고 이에 따라 대응하는 보충 씨드들 T1, T6, T16, 및 T18이 메모리에 저장됨(724)을 가정하라. 이후, 스무 개의 난수들 R1, R2, ... R20 전부가 소수인 것으로 결정될 때까지, 여전히 소수가 아닌 나머지 난수들에 대해, 단계들(716, 718, 720, 722)이 다시 반복된다. Since it has been determined in the following order that the random numbers R 1 , R 3 ... R 6 , R 8 ... R 16 , R 18 , R 19 , R 20 are not prime, the supplementary seeds T 1 , T 3 ... T 6 , T 8 ... T 16 , T 18 , T 19 , T 20 are regenerated (e.g., new random values) 716. Then, the newly regenerated supplement seed T 1, T 3 ... T 6 , T 8 ... T 16, T 18, T 19, T 20 on the basis of the new second seed of S 1, S 3 .. S 6 , S 8 ... S 16 , S 18 , S 19 , S 20 are regenerated 718 and then the newly regenerated second seeds S 1 , S 3 ... S 6 , S 8 ... s 16, s 18, s 19, the new random number based on the s 20 R 1, R 3 ... R 6, R 8 ... R 16, R 18, R 19, R 20 is regenerated (720). Next, for the newly regenerated random numbers R 1 , R 3 ... R 6 , R 8 ... R 16 , R 18 , R 19 , R 20 , to determine if they are prime, (722). This time, it is determined that the random numbers R 1 , R 6 , R 16 , and R 18 are now a prime number and thus the corresponding supplementary seeds T 1 , T 6 , T 16 , and T 18 are stored in memory 724). Thereafter, steps 716, 718, 720, 722 are repeated again for the remaining random numbers that are not still decimals until all twenty random numbers R 1 , R 2 , ... R 20 are determined to be decimal numbers. do.

[0054] 난수 씨드 S의 비트들의 수(k) 더하기 보충 씨드(들) Ti의 비트들의 수(g)가 소수 난수(들) Ri의 비트들의 수(n) 미만이기 때문에, 난수(들) Ri 대신에 씨드 S 및 보충 씨드(들) Ti를 저장함으로써 메모리 공간이 절약되고, 이 난수(들) Ri는 폐기/삭제될 수 있다. 추후에, 일방향 함수 f를 사용하여 소수 난수(들) Ri를 재생성하기 위해 난수 씨드 S 및 보충 씨드(들) Ti가 메모리로부터 리트리빙되어 사용될 수 있다. 소수 난수(들) Ri를 생성하기 위해 함수 f에 의해 비밀 키 kS가 또한 사용되었던 경우들에서, 함수 f를 사용하여 소수 난수 Ri를 재생성하기 위해 (보충 씨드들 Ti 및 난수 씨드 S에 부가하여) 비밀 키 kS가 또한 보안 메모리로부터 리트리빙되어 사용된다. Since the number of bits (k) of the random seed S and the number of bits g of the supplementary seed (s) T i are less than the number n of bits of the prime random number (s) R i , ) R i instead by storing the seed S and supplemental seed (s) T i in the memory space is saved, a random number (s) R i may be discarded / removed. Thereafter, the random number seed S and the supplementary seed (s) T i can be used to retrieve from the memory to regenerate the prime number random number (s) R i using the one-way function f. In cases where the secret key k S has also been used by the function f to generate the decimal random number (s) R i , the function f may be used to regenerate the prime number R i (the supplementary seeds T i and the random seed S The secret key k S is also used to retrieve from the secure memory.

[0055] 따라서, 도 7a 및 도 7b에 예시된 방법에 따라, 복수의 소수인 난수들 Ri이 생성될 수 있고, 이후, 복수의 암호 보안 키들을 생성하기 위해, 암호 보안 알고리즘, 예컨대, RSA에 대해 사용될 수 있다. 도 7a 및 도 7b에 예시된 방법은, 키 생성 함수로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S 및 복수의 보충 씨드들 Ti ―소수 난수들 Ri을 생성하는 것으로 알려짐/증명됨― 이 생성 및 저장된다는 점에서, "오프라인"으로 수행될 수 있다.[0055] Thus, according to the method illustrated in FIGS. 7A and 7B, a plurality of prime numbers R i may be generated, and then a cryptographic security algorithm, such as RSA Lt; / RTI &gt; The method illustrated in Figures 7A and 7B generates a random seed S and a plurality of supplemental seeds T i -fractional random numbers R i before receiving a request for one or more prime numbers from the key generation function Quot; offline "in that they are created and stored.

[0056] 도 8a 및 도 8b는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름도(800)를 예시한다. 도 8a를 참조하면, 먼저, k-비트 난수 씨드 S 및 복수의 g-비트 보충 씨드들 Ti이 프로세싱 회로(802)(예컨대, 프로세서)에서 생성되고(808), 여기서 정수 i = {1, 2, ... m}이고, 그리고 m > 1이다. (일 양상에 따라, 프로세싱 회로(802)에 의해 수행되는 단계들이 소프트웨어로 구현될 수 있음을 주목하라.) 이후, 복수의 (k+g)-비트 제2 씨드들 Si이 씨드 S 및 복수의 보충 씨드들 Ti에 기초하여(예컨대, 복수의 보충 씨드들 Ti과 씨드 S를 연관시킴) 생성된다(810). 다음 차례로, (예컨대, 도 7a 및 도 7b에 대해 위에서 설명된 일방향 함수 f를 사용하여) 제2 씨드들 Si에 기초하여 복수의 n-비트 난수들 Ri이 생성되고(812), 여기서 n > g + k이다. 이후, 생성된 난수들 Ri 중 임의의 난수가 소수인지의 여부가 결정된다(814). 적어도 하나의 난수 Ri가 소수인 것으로 결정될 때까지, 단계들(808, 810, 812, 814)이 반복된다. 적어도 하나 또는 그 초과의 난수들 Ri이 소수인 것으로 결정됨을 가정하면, 소수 난수(들) Ri를 생성하는데 사용된 씨드 S 및 보충 씨드(들) Ti가 메모리 회로(804)(예컨대, 메모리)에 저장된다(816). [0056] Figures 8A and 8B illustrate a flowchart 800 of a method for generating and storing seed values for prime generation in accordance with an aspect. Referring to Figure 8a, the first, k- bit random number seed S, and a plurality of bit replacement seed g- T i is generated by the processing circuit 802 (e.g., processor) 808, where the integer i = {1, 2, ... m}, and m > 1. (Note that the steps performed by the processing circuitry 802 may be implemented in software.) After the plurality of (k + g) -bit second seeds S i are seeds S and a plurality replacement of the seed is produced by T i (e.g., the ability to associate a plurality of supplemental seed T i and the seed s) based on 810. Next, a plurality of n-bit random numbers R i are generated (812) based on the second seeds S i (e.g., using the one-way function f described above with respect to Figures 7a and 7b) > g + k. Then, it is determined whether any random number among the generated random numbers R i is a prime number (814). Until it is determined that at least one of the random numbers R i is a prime number, the steps (808, 810, 812, 814) is repeated. Assuming a determined to be at least one or R i is a small number of random numbers that exceed, few random number (s), the seed S and supplemental seed (s) used to generate the R i T i, a memory circuit 804 (e. G. Memory) (816).

[0057] 다음 차례로, 소수가 아닌 것으로 결정되었던 그러한 난수들 Ri과 연관된 보충 씨드들 Ti이 재생성된다(818). 이후, 재생성된 보충 씨드들 Ti에 기초하여 새로운 제2 씨드들 Si이 재생성되고(820), 그리고 이어서, 재생성된 제2 씨드들 Si에 기초하여 새로운 난수들 Ri이 재생성된다(822). 다음 차례로, 재생성된 난수들 Ri에 대해 이들이 소수인지를 결정하기 위해 소수 테스트들이 실행된다(824). 소수인 것으로 결정된 난수들 Ri과 연관된 보충 씨드들 Ti이 메모리 회로(804)에 저장된다(826). 도 8b를 참조하면, 재생성된 난수들 Ri 전부가 소수인 것으로 결정될 때까지, 프로세스 단계들(818, 820, 822, 824, 826)이 반복되고(828), 그리고 이에 따라, 그들과 연관된 보충 씨드들 Ti이 또한 메모리 회로(804)에 저장된다. 소수인 것으로 결정된 난수들 Ri이 이 지점에서 폐기 또는 삭제될 수 있는데, 그 이유는 씨드들 S 및 연관된 보충 씨드들 Ti이 저장되었고 그리고 소수들 Ri을 재생성하는데 사용될 수 있기 때문이다. [0057] Next, supplementary seeds T i associated with such random numbers R i that were determined to be non-decimal are regenerated 818. After, the new random numbers R i regeneration based on the basis of the regenerated replenishment seed in T i to the new second seed of S i (820), is regenerated and then regenerated a second seed of S i (822 ). Next, for the regenerated random numbers R i , a small number of tests are performed to determine if they are prime numbers (824). Supplementary seeds T i associated with random numbers R i determined to be a prime number are stored 826 in the memory circuit 804. 8B, process steps 818, 820, 822, 824, and 826 are repeated 828 until all of the regenerated random numbers R i are determined to be decimal, and thus, Seeds T i are also stored in the memory circuit 804. The random numbers R i determined to be a prime number can be discarded or deleted at this point since the seeds S and the associated supplementary seeds T i have been stored and can be used to regenerate the prime numbers R i .

[0058] 다음 차례로, 암호 키 생성 함수를 구현하는 애플리케이션(806)으로부터 하나 또는 그 초과의 소수들에 대한 요청이 수신된다(830). 이 요청에 응답하여, 씨드 S 및 보충 씨드들 Ti이 메모리(804)로부터 리트리빙되고(832), 그리고 씨드 S 및 보충 씨드들 Ti을 사용하여 n-비트 소수 난수들 Ri이 재생성된다(834). 제2 씨드들 Si에 기초하여 난수들 Ri을 생성했던 일방향 함수 f에 의해 비밀 키 kS가 사용되었다면, 소수 난수들 Ri을 재생성하기 위하여, 메모리(예컨대, 보안 메모리)로부터 비밀 키 kS가 또한 리트리빙된다. 마지막으로, 소수 난수들 Ri은 키 생성을 위한 소수(들)를 요청하는 애플리케이션(806)에 송신/제공된다(836). [0058] Next, a request is received (830) for one or more prime numbers from the application 806 implementing the cryptographic key generation function. In response to the request, the seed S, and T i is the seed supplemental discrete Living from the memory 804, 832, and using the seed S and the seed supplemental T i n- bit decimal random numbers R i is regenerated (834). 2 If the seed of the secret key by the one-way function f based on the S i that generate random numbers R i k S used, in order to regenerate a few random numbers R i, secret key k from the memory (e.g., Secure Memory) S is also lit. Finally, the prime random numbers R i are sent / provided 836 to the application 806 requesting the prime number (s) for key generation.

[0059] 도 9는 일 양상에 따라 소수 생성을 위한 씨드 값들을 생성 및 저장하기 위한 방법의 흐름 차트(900)를 예시한다. 먼저, k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti이 생성된다(902). 다음 차례로, 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si이 생성된다(904). 이후, 각각이 n개 비트들을 갖는 복수의 난수들 Ri ―n은 k + g 미만임― 이 생성되고, 그리고 복수의 난수들 Ri 각각은 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초한다(906). 다음 차례로, 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임이 결정되고, 여기서 난수 RP는 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 제2 씨드 SP는 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 난수 씨드 S에 기초한다(908). 이후, 난수 씨드 S 및 보충 씨드 TP는 메모리 회로에 저장된다(910). [0059] FIG. 9 illustrates a flow chart 900 of a method for generating and storing seed values for prime generation in accordance with an aspect. First, a random number seed S having k bits and a plurality of supplementary seeds T i each having g bits are generated (902). Next, a plurality of second seeds S i , each based on a different replenishment seed and a random seed S among the plurality of replenish seeds T i , are generated (904). Then, each of the plurality of n bits random numbers R i -n having the k + g is less than Im - is generated and, and a plurality of random numbers R i each is different from the first seed of a plurality of the second seed S i (906). Next, it is determined that at least one random number R P of the plurality of random numbers R i is a prime, wherein the random number R P is based on a second seed S P of the plurality of second seeds S i , and the second seed S P Is based on the supplementary seed T P and the random number seed S among the plurality of supplementary seeds T i (908). Then, the random number seed S and the supplementary seed T P are stored in the memory circuit (910).

[0060] 본 개시물의 일 양상에 따라, 저장된 난수 씨드 S 및 보충 씨드 TP는 메모리 회로로부터 리트리빙될 수 있고, 그리고 소수 난수 RP는 난수 씨드 S 및 보충 씨드 TP에 기초하여 재생성될 수 있다. 다른 양상에 따라, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 난수 씨드 S 및 보충 씨드 TP가 저장될 수 있다. 이후, 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청이 수신될 수 있다. 응답하여, 암호 키가 소수 난수 RP에 기초하여 생성될 수 있다. 이후, 암호 키가 암호 키 생성 프로세스에 제공될 수 있다. [0060] According to one aspect of the disclosure, the stored random number seed S and the replenish seed T P can be retrieved from the memory circuit, and the prime random number R P can be regenerated based on the random number seed S and the replenish seed T P have. According to another aspect, the random seed S and the supplementary seed T P may be stored prior to receiving a request for one or more primes from the cryptographic key generation process. Thereafter, a request for one or more prime numbers may be received from the cryptographic key generation process. In response, a cryptographic key may be generated based on the decimal random number R P. Thereafter, a cryptographic key may be provided to the cryptographic key generation process.

[0061] 일 양상에 따라, 복수의 제2 씨드들 Si 중 상이한 제2 씨드들에 기초하여 복수의 난수들 Ri을 생성하는 단계는, 입력들로서 복수의 제2 씨드들 Si 각각을 수신하고 출력들로서 복수의 난수들 Ri을 생성하는 일방향 함수 f를 실행하는 단계를 포함할 수 있고, 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나이다. 다른 양상에 따라, 복수의 난수들 Ri 중 적어도 하나의 난수가 소수가 아님이 결정될 수 있다. 이후, g개 비트들을 갖는 다른 보충 씨드 T2가 생성될 수 있고, 보충 씨드 T2 및 난수 씨드 S에 기초하여 다른 제2 씨드 S2가 생성될 수 있으며, 그리고 n개 비트들을 갖는 다른 난수 R2가 제2 씨드 S2에 기초하여 생성될 수 있다. 다음 차례로, 난수 R2가 소수임이 결정될 수 있고, 결과적으로, 보충 씨드 T2는 메모리 회로에 저장될 수 있다.[0061] According to an aspect, generating a plurality of random numbers R i based on different second seeds of the plurality of second seeds S i comprises receiving each of the plurality of second seeds S i as inputs And executing a one-way function f to generate a plurality of random numbers R i as outputs, wherein the one-way function f is at least one of a secure hash function and / or a block cipher. According to another aspect, it can be determined that at least one random number among the plurality of random numbers R i is not a prime number. Thereafter, another replica seed T 2 having g bits may be generated, another second seed S 2 may be generated based on the replica seed T 2 and the random number seed S, and another random number R 2 may be generated based on the second seed S 2. In the next turn, it can be determined that the random number R 2 is a prime number, and as a result, the supplementary seed T 2 can be stored in the memory circuit.

[0062] 일 양상에 따라, 저장된 난수 씨드 S 및 보충 씨드 T2는 메모리 회로로부터 리트리빙될 수 있고, 그리고 소수 난수 R2는 난수 씨드 S 및 보충 씨드 T2에 기초하여 재생성될 수 있다. 다른 양상에 따라, 미리결정된 수의 소수들에 대한 요청이 수신될 수 있다. 응답하여, 각각이 상이한 소수들과 연관되는 다수의 보충 씨드들이 미리결정된 수와 동일한 수로 저장될 때까지, 하기의 단계들은 반복될 수 있다: 다른 보충 씨드 T2를 생성하는 단계; 보충 씨드 T2 및 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하는 단계; 제2 씨드 S2에 기초하여 n개 비트들을 갖는 다른 난수 R2를 생성하는 단계; 난수 R2가 소수임을 결정하는 단계; 및 보충 씨드 T2를 메모리 회로에 저장하는 단계.[0062] According to an aspect, the stored random number seed S and the replenish seed T 2 can be retrieved from the memory circuit, and the prime number R 2 can be regenerated based on the random number seed S and the replenish seed T 2 . According to another aspect, a request for a predetermined number of prime numbers may be received. In response, there until each have the same number of storage with different numbers of a plurality of supplemental seed are determined in advance to be associated with a small number of steps are to be repeated, the method comprising: generating a different supplement seed T 2; Generating another second seed S 2 based on the replenishment seed T 2 and the random number seed S; Generating another random number R 2 having n bits based on the second seed S 2 ; Determining that the random number R 2 is a prime number; And supplemental seed T 2 in a memory circuit.

예시적 전자 Exemplary Electronics 디바이스device

[0063] 도 10은 본원에 설명된 암호 보안을 위한 방법들 중 임의의 방법을 실행하는 전자 디바이스(1000)에 대한 하드웨어 구현의 예시적이고 개략적인 블록도를 예시한다. 전자 디바이스(1000)는 모바일폰, 스마트폰, 태블릿, 휴대용 컴퓨터, 및/또는 회로를 갖는 임의의 다른 전자 디바이스일 수 있다. 전자 디바이스(1000)는 통신 인터페이스(1010), 사용자 인터페이스(1012), 및 프로세싱 시스템(1014)을 포함할 수 있다. 프로세싱 시스템(1014)은 프로세싱 회로(예컨대, 프로세서)(1004), 메모리 회로(예컨대, 메모리)(1005), 컴퓨터-판독가능 저장 매체(1006), 버스 인터페이스(1008), 및 버스(1002)를 포함할 수 있다. 프로세싱 시스템(1014) 및/또는 프로세싱 회로(1004)는 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 대해 설명된 단계들, 기능들, 및/또는 프로세스들 중 임의의 것을 수행하도록 구성될 수 있다. [0063] 10 illustrates an exemplary, schematic block diagram of a hardware implementation for an electronic device 1000 that implements any of the methods for cryptographic security described herein. The electronic device 1000 may be a mobile phone, a smart phone, a tablet, a portable computer, and / or any other electronic device having circuitry. The electronic device 1000 may include a communication interface 1010, a user interface 1012, and a processing system 1014. The processing system 1014 includes a processing circuit (e.g., processor) 1004, a memory circuit (e.g., memory) 1005, a computer-readable storage medium 1006, a bus interface 1008, . The processing system 1004 and / or the processing circuitry 1004 may be implemented in any of a variety of ways as described above with respect to Figures 1, 2, 3, 4, 5, 6, 7a, 7b, 8a, 8b, and / May be configured to perform any of the described steps, functions, and / or processes described herein.

[0064] 프로세싱 회로(1004)는 전자 디바이스(1000)에 대한 데이터를 프로세싱하도록 적응되는 하나 또는 그 초과의 프로세서들(예컨대, 제1 프로세서 등)일 수 있다. 예컨대, 프로세싱 회로(1004)는 전문화된 프로세서, 예컨대, 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 대해 설명된 단계들 중 임의의 단계를 수행하기 위한 수단으로서의 역할을 하는 ASIC(application specific integrated circuit)일 수 있다.[0064] The processing circuitry 1004 may be one or more processors (e.g., a first processor, etc.) adapted to process data for the electronic device 1000. For example, processing circuitry 1004 may be implemented in a specialized processor, e.g., as shown in Figures 1, 2, 3, 4, 5, 6, 7a, 7b, 8a, 8b, and / And may be an application specific integrated circuit (ASIC) serving as a means for performing any of the steps described above.

[0065] 프로세싱 회로들(1004)의 예들은 마이크로프로세서들, 마이크로제어기들, DSP(digital signal processor)들, FPGA(field programmable gate array)들, PLD(programmable logic device)들, 상태 머신들, 게이티드 논리(gated logic), 이산 하드웨어 회로들, 및 본 개시물 전체에 걸쳐 설명된 다양한 기능을 수행하도록 구성된 다른 적절한 하드웨어를 포함한다. 프로세싱 회로(1004)는 또한, 버스(1002)를 관리하는 것, 그리고 컴퓨터-판독가능 저장 매체(1006) 및/또는 메모리(1005) 상에 저장된 소프트웨어를 실행하는 것을 담당한다. 소프트웨어는, 프로세싱 회로(1004)에 의해 실행될 때, 프로세싱 시스템(1014)으로 하여금, 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 대해 위에서 설명된 다양한 기능들, 단계들, 및/또는 프로세스들을 수행하게 한다. 컴퓨터-판독가능 저장 매체(1006)는 소프트웨어를 실행할 때 프로세싱 회로(1004)에 의해 조작되는 데이터를 저장하는데 사용될 수 있다. [0065] Examples of processing circuits 1004 include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic gated logic, discrete hardware circuits, and other suitable hardware configured to perform various functions described throughout this disclosure. The processing circuitry 1004 is also responsible for managing the bus 1002 and executing software stored on the computer-readable storage medium 1006 and / or the memory 1005. The software may cause the processing system 1014 to perform the functions of the processing system 1004 when executed by the processing circuitry 1004 in accordance with any one or more of the methods described above with reference to Figures 1, 2, 3, 4, 5, 6, 7a, 7b, 8a, 8b , And / or to perform the various functions, steps, and / or processes described above with respect to FIG. Computer-readable storage medium 1006 can be used to store data manipulated by processing circuitry 1004 when executing software.

[0066] 메모리 회로(1005)는 비-휘발성 메모리, 예컨대, 이에 제한되지는 않지만, FLASH 메모리, 자기 또는 광학 하드 디스크 드라이브들 등일 수 있다. 일부 양상들에서, 섹터 정보 및/또는 오버헤드 메시지들(구성 시퀀스 번호를 포함함)을 저장하는 메모리는 무기한으로 정보를 저장하기 위하여 계속해서 전력을 공급받을 수 있는 휘발성 메모리, 예컨대, DRAM(예컨대, DDR SDRAM), SRAM 등일 수 있다. 메모리 회로(1005)는 난수 씨드 S를 저장하기 위한 수단, 보충 씨드들 Ti을 저장하기 위한 수단, 및 보안이 이루어질 때 비밀 키 kS를 저장하기 위한 수단의 일 예로서의 역할을 한다. [0066] The memory circuit 1005 may be a non-volatile memory, such as, but not limited to, FLASH memory, magnetic or optical hard disk drives, and the like. In some aspects, the memory storing the sector information and / or the overhead messages (including the configuration sequence number) is a volatile memory that can be continuously powered to store information indefinitely, e.g., a DRAM , DDR SDRAM), SRAM, and the like. The memory circuit 1005 is a means to supplement seed T i means for storing, and serves as an example of one means for storing the secret key k S when security is made to store the random number seed S.

[0067] 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술어로 지칭되든지 또는 다른 방식으로 지칭되든지 간에, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행 가능들, 실행 스레드들, 프로시저들, 함수들 등을 의미하도록 폭넓게 해석될 것이다. 소프트웨어는 컴퓨터-판독가능 저장 매체(1006) 상에 상주할 수 있다. 컴퓨터-판독가능 저장 매체(1006)는 비-일시적 컴퓨터-판독가능 저장 매체일 수 있다. 비-일시적 컴퓨터-판독가능 저장 매체는, 예로서, 자기 스토리지 디바이스(예컨대, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 디스크(예컨대, CD(compact disc) 또는 DVD(digital versatile disc)), 스마트 카드, 플래시 메모리 디바이스(예컨대, 카드, 스틱, 또는 키 드라이브), RAM(random access memory), ROM(read only memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically erasable PROM), 레지스터, 탈착 가능 디스크, 그리고 컴퓨터에 의해 액세스 및 판독될 수 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. 컴퓨터-판독가능 저장 매체는 또한, 예로서, 반송파, 송신선, 그리고 컴퓨터에 의해 액세스 및 판독될 수 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수 있다. 컴퓨터-판독가능 저장 매체(1006)는 프로세싱 시스템(1014)에 상주할 수 있거나, 프로세싱 시스템(1014)의 외부에 있을 수 있거나, 또는 프로세싱 시스템(1014)을 포함하는 다수의 엔티티들에 걸쳐 분산될 수 있다. 컴퓨터-판독가능 저장 매체(1006)는 컴퓨터 프로그램 물건으로 구현될 수 있다.[0067] The software may include instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, firmware, middleware, microcode, hardware descriptors, Will be broadly interpreted to mean a computer-readable medium, including but not limited to, applications, software applications, software packages, routines, subroutines, objects, executables, execution threads, procedures, The software may reside on the computer-readable storage medium 1006. Computer-readable storage medium 1006 can be a non-transitory computer-readable storage medium. Non-transient computer-readable storage media include, for example, magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips), optical disks (e.g., compact discs (CD) or digital versatile discs Flash memory devices (e.g., card, stick, or key drive), random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EEPROM), electrically erasable PROM Registers, removable disks, and any other suitable medium for storing software and / or instructions that can be accessed and read by a computer. The computer-readable storage medium may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and / or instructions that can be accessed and read by a computer. The computer-readable storage medium 1006 may reside in the processing system 1014 or may be external to the processing system 1014 or may be distributed across a plurality of entities including the processing system 1014 . The computer-readable storage medium 1006 may be embodied in a computer program product.

[0068] 본 예에서, 프로세싱 시스템(1014)은 버스(1002)로 일반적으로 표현되는 버스 아키텍처를 이용하여 구현될 수 있다. 버스(1002)는 프로세싱 시스템(1014)의 특정 애플리케이션 및 전체 설계 제약들에 따라 임의의 수의 상호연결 버스들 및 브릿지들을 포함할 수 있다. 버스(1002)는 하나 또는 그 초과의 프로세서들(프로세서(1004)로 일반적으로 표현됨), 메모리(1005), 및 컴퓨터-판독가능 미디어(컴퓨터-판독가능 저장 매체(1006)로 일반적으로 표현됨)를 포함하는 다양한 회로들을 서로 연결시킨다. 버스(1002)는 또한, 다양한 다른 회로들, 예컨대, 타이밍 소스들, 주변장치들, 전압 조정기들, 및 전력 관리 회로들을 연결시킬 수 있고, 이들은 기술분야에서 잘 알려져 있고 이에 따라 더 이상 추가로 설명되지 않을 것이다. 버스 인터페이스(1008)는 버스(1002)와 통신 인터페이스(1010)(존재한다면) 사이에 인터페이스를 제공한다. 통신 인터페이스(1010)는 송신 매체를 통해 다른 장치와 통신하기 위한 수단을 제공한다. 장치의 성질에 따라, 사용자 인터페이스(1012)(예컨대, 키패드, 디스플레이, 스피커, 마이크로폰, 터치스크린 디스플레이 등)가 또한 전자 디바이스(1000)에 제공될 수 있다.[0068] In this example, processing system 1014 may be implemented using a bus architecture that is generally represented by bus 1002. The bus 1002 may include any number of interconnect buses and bridges in accordance with the particular application of the processing system 1014 and overall design constraints. The bus 1002 may include one or more processors (typically represented by a processor 1004), a memory 1005, and a computer-readable medium (typically represented by a computer-readable storage medium 1006) And connects the various circuits including them to each other. The bus 1002 may also couple various other circuits, such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, . Bus interface 1008 provides an interface between bus 1002 and communication interface 1010 (if present). Communication interface 1010 provides a means for communicating with other devices via a transmission medium. Depending on the nature of the device, a user interface 1012 (e.g., a keypad, display, speaker, microphone, touch screen display, etc.) may also be provided to the electronic device 1000.

[0069] 도 11은 일 양상에 따라 프로세싱 회로(1004)의 개략적인 블록도를 예시한다. 프로세싱 회로(1004)는 소수 발생기 회로(1102), 난수 씨드 S 리트리버 회로(1103), 소수 재발생기 회로(1105), 및 함수 f 실행 회로(1107)를 포함할 수 있다. 소수 발생기 회로(1102)는 난수 씨드 S 발생기 회로(1104), 난수 R 발생기 회로(1106), 및 소수 테스트 회로(1108)를 포함할 수 있다. [0069] FIG. 11 illustrates a schematic block diagram of a processing circuit 1004 in accordance with an aspect. The processing circuit 1004 may include a decimal generator circuit 1102, a random number seed S retriever circuit 1103, a decimal re-generator circuit 1105, and a function f execution circuit 1107. The decimal generator circuit 1102 may include a random number seed S generator circuit 1104, a random number R generator circuit 1106, and a decimal test circuit 1108.

[0070] 소수 발생기 회로(1102)는, 반복적으로, k개 비트들을 갖는 난수 씨드 S를 생성하고, 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고, 그리고 난수 R가 소수인지의 여부를 결정함으로써, 소수를 생성하기 위한 수단의 일 예로서의 역할을 한다. 구체적으로, 난수 씨드 S 발생기 회로(1104)는 난수 씨드 S를 생성하기 위한 수단의 일 예로서의 역할을 하고, 난수 R 발생기 회로(1106)는 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하기 위한 수단의 일 예로서의 역할을 하고, 그리고 소수 테스트 회로(1108)는 난수 R가 소수인지의 여부를 결정하기 위한 수단의 일 예로서의 역할을 한다. [0070] The decimal generator circuit 1102 repeatedly generates a random number seed S with k bits, generates a random number R having n bits based on the seed S, and determines whether the random number R is a prime number , And serves as an example of a means for generating a prime number. Specifically, the random number seed S generator circuit 1104 serves as an example of a means for generating the random number seed S, and the random number R generator circuit 1106 generates a random number R having n bits based on the seed S And the decimal test circuit 1108 serves as an example of a means for determining whether the random number R is a prime number.

[0071] 난수 씨드 S 리트리버 회로(1103)는 메모리 회로(1005)로부터 난수 씨드 S를 리트리빙하기 위한 수단의 일 예로서의 역할을 한다. 소수 재발생기 회로(1105)는 난수 씨드 S에 기초하여 소수를 재생성하기 위한 수단의 일 예로서의 역할을 한다. 함수 f 실행 회로(1107)는 입력으로서 씨드 S를 수신하고 출력으로서 난수 R를 생성하는 일방향 함수 f를 실행하기 위한 수단의 일 예로서의 역할을 한다. [0071] The random number seed S retriever circuit 1103 serves as an example of a means for recycling the random number seed S from the memory circuit 1005. The minority reac- tivator circuit 1105 serves as an example of a means for regenerating a prime number based on the random number seed S. [ The function f execution circuit 1107 serves as an example of a means for executing the one-way function f that receives the seed S as an input and generates a random number R as an output.

[0072] 도 12는 일 양상에 따라 프로세싱 회로(1004)의 개략적인 블록도를 예시한다. 프로세싱 회로(1004)는 씨드 S 및 보충 씨드 Ti 발생기 회로(1202), 제2 씨드 Si 발생기 회로(1204), 난수 Ri 발생기 회로(1206), 소수 테스트 회로(1208), 씨드 리트리벌 회로(1210), 및 소수 난수 재발생기 회로(1212)를 포함할 수 있다. [0072] FIG. 12 illustrates a schematic block diagram of a processing circuit 1004 in accordance with an aspect. The processing circuit 1004 includes a seed S and a supplemental seed T i generator circuit 1202, a second seed S i generator circuit 1204, a random number R i generator circuit 1206, a minority test circuit 1208, Circuitry 1210, and a prime number randomizer generator circuit 1212.

[0073] 씨드 S 및 보충 씨드 Ti 발생기 회로(1202)는 난수 씨드 S 및 보충 씨드들 Ti을 생성하기 위한 수단의 일 예로서의 역할을 한다. 제2 씨드 Si 발생기 회로(1204)는 각각이 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 난수 씨드 S에 기초하는 제2 씨드들 Si을 생성하기 위한 수단의 일 예로서의 역할을 한다. 난수 Ri 발생기 회로(1206)는 각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하기 위한 수단의 일 예로서의 역할을 하고, 이 난수들 Ri은 각각이 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초한다. 소수 테스트 회로(1208)는 난수 RP가 소수인지의 여부를 결정하기 위한 수단의 일 예로서의 역할을 한다. 씨드 리트리벌 회로(1210)는 난수 씨드 S 및 복수의 보충 씨드들 Ti(예컨대, 씨드 TP)을 리트리빙하기 위한 수단의 일 예로서의 역할을 한다. 소수 난수 재발생기 회로(1212)는 난수 씨드 S 및 보충 씨드들 Ti(예컨대, 보충 씨드 TP)에 기초하여 소수 난수(예컨대, 소수 난수 RP)를 재생성하기 위한 수단의 일 예로서의 역할을 한다. The seed S and the supplemental seed T i generator circuit 1202 serve as an example of the means for generating the random number seed S and the supplementary seeds T i . Second seed S i generator circuit 1204 and the second a role as an example of means for generating a seed of S i, each based on a different random number seed and the seed supplemental S of the plurality of supplemental seed of T i. Random numbers R i generator circuit 1206, each of n serve one serving as the means for generating a plurality of random numbers R i having the bits, and the random numbers R i is S i of each of the plurality of second seed Lt; / RTI &gt; Small number of the test circuit 1208 acts as an example of one means for determining whether or not the random number R P few. The seed retrigger circuit 1210 serves as an example of a means for retrying the random seed S and a plurality of supplementary seeds T i (e.g., seed T P ). The decimal random number generator circuit 1212 serves as an example of a means for regenerating a prime number random number (e.g., a prime number R P ) based on the random number seed S and the supplementary seeds T i (e.g., the supplementary seed T P ) .

[0074] 본원에 설명된 방법들 및 디바이스들은, 암호 보안 및/또는 암호 키 생성으로 제한되지 않는 임의의 사용을 위해, 소수 생성을 위한 씨드 값들을 생성 및 저장하는데 사용될 수 있다.[0074] The methods and devices described herein may be used to generate and store seed values for prime generation, for any use that is not limited to cryptographic security and / or cryptographic key generation.

[0075] 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 도 9, 도 10, 도 11, 및/또는 도 12에서 예시된 컴포넌트들, 단계들, 특징들, 및/또는 기능들 중 하나 또는 그 초과는 재배열될 수 있고 그리고/또는 단일의 컴포넌트, 단계, 특징 또는 기능으로 결합될 수 있거나 또는 여러 컴포넌트들, 단계들, 또는 기능들로 구현될 수 있다. 또한, 본 발명으로부터 벗어남 없이, 부가의 엘리먼트들, 컴포넌트들, 단계들, 및/또는 기능들이 부가될 수 있다. 도 10, 도 11, 및/또는 도 12에서 예시된 장치, 디바이스들, 및/또는 컴포넌트들은 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 설명된 방법들, 특징들, 또는 단계들 중 하나 또는 그 초과를 수행하도록 구성될 수 있다. 본원에 설명된 알고리즘들은 또한, 효율적으로 소프트웨어로 구현될 수 있고 그리고/또는 하드웨어에 임베딩될 수 있다.[0075] Components illustrated in Figures 1, 2, 3, 4, 5, 6, 7a, 7b, 8a, 8b, 9, 10, 11, and / One or more of the steps, features, and / or functions may be rearranged and / or combined into a single component, step, feature or function, or may be combined with other components, steps, . &Lt; / RTI &gt; Further, additional elements, components, steps, and / or functions may be added without departing from the invention. The devices, devices, and / or components illustrated in Figures 10, 11, and / or 12 may include any of the devices illustrated in Figures 1, 2, 3, 4, 5, 6, 7A, 7B, , &Lt; / RTI &gt; FIG. 8B, and / or FIG. The algorithms described herein may also be efficiently implemented in software and / or embedded in hardware.

[0076] 또한, 본 개시물의 일 양상에서, 도 10, 도 11, 및/또는 도 12에서 예시된 프로세싱 회로(1004)는 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 설명된 알고리즘들, 방법들, 및/또는 단계들을 수행하도록 특정하게 설계되고 그리고/또는 하드-와이어링된 전문화된 프로세서(예컨대, 애플리케이션 특정 집적 회로(예컨대, ASIC)일 수 있다. 따라서, 이러한 전문화된 프로세서(예컨대, ASIC)는 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 설명된 알고리즘들, 방법들, 및/또는 단계들을 실행하기 위한 수단의 일 예일 수 있다. 또한, 컴퓨터-판독가능 저장 매체(1006)는 프로세서(1004) 판독가능 명령들을 저장할 수 있고, 이 명령들은, 전문화된 프로세서(예컨대, ASIC)에 의해 실행될 때, 이 전문화된 프로세서로 하여금, 도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8a, 도 8b, 및/또는 도 9에 설명된 알고리즘들, 방법들, 및/또는 단계들을 수행하게 한다.[0076] Further, in an aspect of the present disclosure, the processing circuit 1004 illustrated in Figures 10, 11, and / or 12 may include any of the processing circuits 1004 illustrated in Figures 1, 2, 3, 4, 5, 6, (E.g., application-specific) processors that are specifically designed and / or hard-wired to perform the algorithms, methods, and / or steps described in Figures 7B, 8A, 8B, 1, 2, 3, 4, 5, 6, 7A, 7B, 8A, 8B, and 8C, The computer-readable storage medium 1006 may also be a processor-readable medium such as, but not limited to, a processor 1004 readable (e.g., readable, writable) Instructions that, when executed by a specialized processor (e.g., an ASIC), cause the specialized processor to &lt; RTI ID = 0.0 &gt; 1, 2, 3, 4, 5, 6, 7A, 7B, 8A, 8B, and / or 9 in order to perform the algorithms, methods and / do.

[0077] 또한, 본 개시물의 양상들이 흐름차트, 흐름도, 구조도, 또는 블록도로서 묘사되는 프로세스로서 설명될 수 있음이 주목된다. 흐름차트가 순차적 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 많은 동작들이 병렬로 또는 동시에 수행될 수 있다. 부가하여, 동작들의 순서는 재배열될 수 있다. 프로세스는 자신의 동작들이 완료될 때 종료된다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 프로세스의 종료는 호출 함수 또는 메인 함수로의 함수의 리턴에 대응한다.[0077] It is also noted that aspects of the disclosure may be described as a process depicted as a flow chart, a flow diagram, a structure diagram, or a block diagram. While a flow chart can describe operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of operations can be rearranged. The process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, and the like. When a process corresponds to a function, the termination of the process corresponds to the return of the function to the calling function or main function.

[0078] 또한, 저장 매체는, ROM(read-only memory), RAM(random access memory), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 및/또는 정보를 저장하기 위한 다른 머신-판독가능 매체들 및 프로세서-판독가능 매체들, 및/또는 컴퓨터-판독가능 매체들을 비롯해, 데이터를 저장하기 위한 하나 또는 그 초과의 디바이스들을 표현할 수 있다. 용어들 "머신-판독가능 매체", "컴퓨터-판독가능 매체", 및/또는 "프로세서-판독가능 매체"는, 이에 제한되지는 않지만, 비-일시적 매체들, 예컨대, 휴대용 또는 고정 스토리지 디바이스들, 광학 스토리지 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 포함 또는 운반할 수 있는 다양한 다른 매체들을 포함할 수 있다. 따라서, 본원에 설명된 다양한 방법들은 "머신-판독가능 매체", "컴퓨터-판독가능 매체", 및/또는 "프로세서-판독가능 매체"에 저장될 수 있는 명령들 및/또는 데이터에 의해 완전히 또는 부분적으로 구현될 수 있고, 그리고 하나 또는 그 초과의 프로세서들, 머신들 및/또는 디바이스들에 의해 실행될 수 있다.[0078] The storage medium may also be read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices and / or other machine- Readable media, and / or computer-readable media, as well as one or more devices for storing data. The term "machine-readable medium", "computer-readable medium", and / or "processor-readable medium" includes, but is not limited to, non-transitory mediums such as portable or fixed storage devices Optical storage devices, and various other media capable of storing, containing, or carrying instruction (s) and / or data. Thus, the various methods described herein may be fully or partially replaced by instructions and / or data that may be stored in "machine-readable medium", "computer-readable medium", and / Partially implemented, and may be executed by one or more processors, machines, and / or devices.

[0079] 또한, 본 개시물의 양상들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 태스크들을 수행하는 프로그램 코드 또는 코드 세그먼트들은 머신-판독가능 매체, 예컨대, 저장 매체 또는 다른 스토리지(들)에 저장될 수 있다. 프로세서가 필요한 태스크들을 수행할 수 있다. 코드 세그먼트는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램문들의 임의의 결합을 표현할 수 있다. 코드 세그먼트는, 정보, 데이터, 인수들, 파라미터들, 또는 메모리 콘텐츠들을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은, 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 비롯한 임의의 적절한 수단을 통해 전달, 포워딩, 또는 송신될 수 있다.[0079] In addition, aspects of the disclosure may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments that perform the necessary tasks may be stored on a machine-readable medium, such as a storage medium or other storage (s). The processor can perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or hardware circuit by conveying and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be communicated, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission,

[0080] 본원에 개시된 예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 엘리먼트들, 및/또는 컴포넌트들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그래밍 가능한 논리 컴포넌트, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된, 이들의 임의의 결합을 이용하여 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 통상적인 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 컴퓨팅 컴포넌트들의 결합, 예컨대, DSP 및 마이크로프로세서의 결합, 다수의 마이크로프로세서들, DSP 코어와 공조된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.[0080] The various illustrative logical blocks, modules, circuits, elements, and / or components described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC) field programmable gate array) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0081] 본원에 개시된 예들과 관련하여 설명된 방법들 또는 알고리즘들은 직접적으로 하드웨어로, 프로세서에 의해 실행 가능한 소프트웨어 모듈로, 또는 프로세싱 유닛, 프로그래밍 명령들, 또는 다른 디렉션들의 형태의 양쪽의 결합으로 구현될 수 있고, 그리고 단일의 디바이스에 포함될 수 있거나 또는 다수의 디바이스들에 걸쳐 분산될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 탈착 가능 디스크, CD-ROM, 또는 기술분야에서 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 저장 매체가 프로세서에 커플링될 수 있어, 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.[0081] The methods or algorithms described in connection with the examples disclosed herein may be implemented as either hardware, as a software module executable by a processor, or as a combination of both in the form of a processing unit, programming instructions, or other instructions , And may be included in a single device or distributed across multiple devices. The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. A storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integrated into the processor.

[0082] 당업자들은 추가로, 본원에 개시된 양상들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽의 결합들로서 구현될 수 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호 교환 가능성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 위에서 일반적으로 그들의 기능 면에서 설명되었다. 이러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정 애플리케이션, 및 전체 시스템에 부과되는 설계 제약들에 따라 좌우된다.[0082] Those skilled in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both will be. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.

[0083] 본 발명으로부터 벗어남 없이, 본원에 설명된 본 발명의 다양한 특징들이 상이한 시스템들에서 구현될 수 있다. 본 개시물의 전술된 양상들이 단지 예들이고, 그리고 본 발명을 제한하는 것으로서 이해되지 않아야 함이 주목되어야 한다. 본 개시물의 양상들의 설명은 예시적인 것으로 의도되고, 그리고 청구항들의 범위를 제한하는 것으로 의도되지 않는다. 이와 같이, 본 교시들은 다른 타입들의 장치들에 쉽게 적용될 수 있고, 그리고 많은 대안들, 수정들, 및 변형들이 당업자에게 명백할 것이다.[0083] Without departing from the present invention, various features of the invention described herein may be implemented in different systems. It should be noted that the foregoing aspects of the disclosure are merely examples, and should not be understood as limiting the invention. The description of aspects of the disclosure is intended to be illustrative, and is not intended to limit the scope of the claims. As such, these teachings can be readily applied to other types of devices, and many alternatives, modifications, and variations will be apparent to those skilled in the art.

Claims (38)

방법으로서,
생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로,
k개 비트들을 갖는 난수 씨드 S를 생성하고,
상기 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고
상기 난수 R가 소수인지의 여부를 결정함으로써,
소수를 생성하는 단계; 및
소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하는 단계
를 포함하는,
방법.
As a method,
Until it is determined that the generated random number R is a prime,
generating a random number seed S having k bits,
Generate a random number R with n bits based on the seed S, and -k is less than n, and
By determining whether the random number R is a prime number,
Generating a prime number; And
Storing a random number seed S used to generate a random number R determined to be a prime number in a memory circuit
/ RTI &gt;
Way.
제 1 항에 있어서,
상기 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하는 단계; 및
상기 난수 씨드 S에 기초하여 상기 소수를 재생성하는 단계
를 더 포함하는,
방법.
The method according to claim 1,
Recycling the stored random seed S from the memory circuit; And
Regenerating the prime number based on the random number seed S
&Lt; / RTI &gt;
Way.
제 2 항에 있어서,
상기 소수에 기초하여 암호 키를 생성하는 단계
를 더 포함하는,
방법.
3. The method of claim 2,
Generating an encryption key based on the prime number
&Lt; / RTI &gt;
Way.
제 1 항에 있어서,
상기 씨드 S를 저장한 이후에, 메모리 회로로부터 상기 난수 R를 삭제하는 단계
를 더 포함하는,
방법.
The method according to claim 1,
Deleting the random number R from the memory circuit after storing the seed S,
&Lt; / RTI &gt;
Way.
제 1 항에 있어서,
상기 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초하는,
방법.
The method according to claim 1,
The generating of the random number R further comprises the step of generating, based on the secret key k S ,
Way.
제 5 항에 있어서,
소수인 것으로 결정된 난수 R를 생성하는데 사용된 상기 비밀 키 kS를 보안 메모리 회로에 저장하는 단계
를 더 포함하는,
방법.
6. The method of claim 5,
Storing the secret key k S used to generate the random number R determined to be a prime number in the secure memory circuit
&Lt; / RTI &gt;
Way.
제 1 항에 있어서,
암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 상기 난수 씨드 S가 저장되는,
방법.
The method according to claim 1,
Prior to receiving a request for one or more prime numbers from the cryptographic key generation process, the random seed S is stored,
Way.
제 1 항에 있어서,
상기 씨드 S에 기초하여 난수 R를 생성하는 것은,
입력으로서 상기 씨드 S를 수신하고 출력으로서 상기 난수 R를 생성하는 일방향 함수 f를 실행하는 것
을 포함하고,
상기 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나인,
방법.
The method according to claim 1,
To generate the random number R based on the seed S,
Executing a one-way function f that receives the seed S as input and generates the random number R as an output
/ RTI &gt;
Wherein the one-way function f is at least one of a secure hash function and / or a block secret,
Way.
장치로서,
메모리 회로; 및
상기 메모리 회로에 통신 가능하게 커플링된 프로세싱 회로
를 포함하고,
상기 프로세싱 회로는,
생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로,
k개 비트들을 갖는 난수 씨드 S를 생성하고,
상기 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고
상기 난수 R가 소수인지의 여부를 결정함으로써,
소수를 생성하고; 그리고
소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 상기 메모리 회로에 저장하도록
구성되는,
장치.
As an apparatus,
A memory circuit; And
A processing circuit communicatively coupled to the memory circuit,
Lt; / RTI &gt;
The processing circuit comprising:
Until it is determined that the generated random number R is a prime,
generating a random number seed S having k bits,
Generate a random number R with n bits based on the seed S, and -k is less than n, and
By determining whether the random number R is a prime number,
Generate a prime number; And
The random number seed S used to generate the random number R determined to be a prime number is stored in the memory circuit
Configured,
Device.
제 9 항에 있어서,
상기 프로세싱 회로는 추가로,
상기 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하고; 그리고
상기 난수 씨드 S에 기초하여 상기 소수를 재생성하도록
구성되는,
장치.
10. The method of claim 9,
The processing circuit may further comprise:
Recycling the stored random number seeds S from the memory circuit; And
And regenerates the prime number based on the random number seed S
Configured,
Device.
제 10 항에 있어서,
상기 프로세싱 회로는 추가로,
상기 소수에 기초하여 암호 키를 생성하도록
구성되는,
장치.
11. The method of claim 10,
The processing circuit may further comprise:
And generates an encryption key based on the prime number
Configured,
Device.
제 9 항에 있어서,
암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 상기 난수 씨드 S가 저장되는,
장치.
10. The method of claim 9,
Prior to receiving a request for one or more prime numbers from the cryptographic key generation process, the random seed S is stored,
Device.
제 9 항에 있어서,
소수인 것으로 결정된 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초하고, 그리고 상기 프로세싱 회로는 추가로, 상기 비밀 키 kS를 보안 메모리 회로에 저장하도록 구성되는,
장치.
10. The method of claim 9,
Generating a random number R determined to be a prime number is further based on a secret key k S and the processing circuit is further configured to store the secret key k S in a secure memory circuit,
Device.
장치로서,
생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로,
k개 비트들을 갖는 난수 씨드 S를 생성하고,
상기 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고
상기 난수 R가 소수인지의 여부를 결정함으로써,
소수를 생성하기 위한 수단; 및
소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하기 위한 수단
을 포함하는,
장치.
As an apparatus,
Until it is determined that the generated random number R is a prime,
generating a random number seed S having k bits,
Generate a random number R with n bits based on the seed S, and -k is less than n, and
By determining whether the random number R is a prime number,
Means for generating a prime number; And
Means for storing a random number seed S used to generate a random number R determined to be a prime number in a memory circuit
/ RTI &gt;
Device.
제 14 항에 있어서,
상기 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하기 위한 수단; 및
상기 난수 씨드 S에 기초하여 상기 소수를 재생성하기 위한 수단
을 더 포함하는,
장치.
15. The method of claim 14,
Means for recycling a random seed S stored from the memory circuit; And
Means for regenerating the prime number based on the random number seed S
&Lt; / RTI &gt;
Device.
제 14 항에 있어서,
암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 상기 난수 씨드 S가 저장되는,
장치.
15. The method of claim 14,
Prior to receiving a request for one or more prime numbers from the cryptographic key generation process, the random seed S is stored,
Device.
제 14 항에 있어서,
소수인 것으로 결정된 난수 R를 생성하는 것은 추가로, 비밀 키 kS에 기초하고, 그리고 상기 장치는, 상기 비밀 키 kS를 보안 메모리 회로에 저장하기 위한 수단을 더 포함하는,
장치.
15. The method of claim 14,
Generating a random number R determined to be a prime number is further based on a secret key k S and the apparatus further comprises means for storing the secret key k S in a secure memory circuit.
Device.
하나 또는 그 초과의 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체로서,
상기 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
생성되는 난수 R가 소수임이 결정될 때까지, 반복적으로,
k개 비트들을 갖는 난수 씨드 S를 생성하고,
상기 씨드 S에 기초하여 n개 비트들을 갖는 난수 R를 생성하고 ―k는 n 미만임―, 그리고
상기 난수 R가 소수인지의 여부를 결정함으로써,
소수를 생성하게 하고; 그리고
소수인 것으로 결정된 난수 R를 생성하는데 사용된 난수 씨드 S를 메모리 회로에 저장하게 하는,
컴퓨터-판독가능 저장 매체.
A computer-readable storage medium having stored thereon one or more instructions,
Wherein the instructions, when executed by the at least one processor, cause the processor to:
Until it is determined that the generated random number R is a prime,
generating a random number seed S having k bits,
Generate a random number R with n bits based on the seed S, and -k is less than n, and
By determining whether the random number R is a prime number,
To generate a prime number; And
The random number seed S used to generate the random number R determined to be a prime number is stored in the memory circuit,
Computer-readable storage medium.
제 18 항에 있어서,
상기 명령들은 추가로, 상기 프로세서로 하여금,
상기 메모리 회로로부터 저장된 난수 씨드 S를 리트리빙하게 하고; 그리고
상기 난수 씨드 S에 기초하여 상기 소수를 재생성하게 하는,
컴퓨터-판독가능 저장 매체.
19. The method of claim 18,
The instructions further cause the processor to:
Causing the stored random number seeds S to be lit from the memory circuit; And
And regenerating the prime number based on the random number seed S,
Computer-readable storage medium.
방법으로서,
k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하는 단계;
각각이 상기 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 상기 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하는 단계;
각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하는 단계 ―n은 k + g 미만이고, 상기 복수의 난수들 Ri 각각은 상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―;
상기 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하는 단계 ―상기 난수 RP는 상기 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 상기 제2 씨드 SP는 상기 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 상기 난수 씨드 S에 기초함―; 및
상기 난수 씨드 S 및 상기 보충 씨드 TP를 메모리 회로에 저장하는 단계
를 포함하는,
방법.
As a method,
the random number having k bits seed S, and a step of generating a plurality of seed supplement with T i, each having two g bits;
Generating a plurality of second seeds S i each based on a different replenishment seed among the plurality of replica seeds T i and the random seed S;
And generating a plurality of random numbers R i, each having n bits -n + k is less than g, the plurality of random numbers R i in each of the different second seed of a second seed lightwave of S i of the plurality of Foundation;
Determining that at least one random number R P of the plurality of random numbers R i is a prime number, wherein the random number R P is based on a second seed S P of the plurality of second seeds S i , P is based on the replenishment seed T P and the random seed S among the plurality of replenishment seeds T i ; And
Storing the random number seed S and the replenish seed T P in a memory circuit
/ RTI &gt;
Way.
제 20 항에 있어서,
상기 복수의 난수들 Ri은 추가로, 비밀 키 kS에 기초하고, 그리고 상기 방법은 상기 비밀 키 kS를 보안 메모리 회로에 저장하는 단계를 더 포함하는,
방법.
21. The method of claim 20,
Wherein the plurality of random numbers R i are further based on a secret key k S and the method further comprises storing the secret key k S in a secure memory circuit.
Way.
제 20 항에 있어서,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 TP를 리트리빙하는 단계; 및
상기 난수 씨드 S 및 상기 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하는 단계
를 더 포함하는,
방법.
21. The method of claim 20,
Recycling the stored random seed S and the replenish seed T P from the memory circuit; And
The random number seed S and the step of reproducing a small number of the random number R P on the basis of the seed supplemental T P
&Lt; / RTI &gt;
Way.
제 22 항에 있어서,
암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 상기 난수 씨드 S 및 상기 보충 씨드 TP가 저장되고, 그리고 상기 방법은,
상기 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하는 단계;
상기 소수 난수 RP에 기초하여 암호 키를 생성하는 단계; 및
상기 암호 키를 상기 암호 키 생성 프로세스에 제공하는 단계
를 더 포함하는,
방법.
23. The method of claim 22,
The random seed S and the replenish seed T P are stored prior to receiving a request for one or more primes from the cryptographic key generation process,
Receiving a request for one or more prime numbers from the cryptographic key generation process;
Generating an encryption key based on the decimal random number R P ; And
Providing the cryptographic key to the cryptographic key generation process
&Lt; / RTI &gt;
Way.
제 21 항에 있어서,
상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드들에 기초하여 상기 복수의 난수들 Ri을 생성하는 단계는,
입력들로서 상기 복수의 제2 씨드들 Si 각각을 수신하고 출력들로서 상기 복수의 난수들 Ri을 생성하는 일방향 함수 f를 실행하는 단계
를 포함하고,
상기 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나인,
방법.
22. The method of claim 21,
Generating the plurality of random numbers R i based on different second seeds among the plurality of second seeds S i comprises:
Executing a one-way function f that receives each of the plurality of second seeds S i as inputs and generates the plurality of random numbers R i as outputs
Lt; / RTI &gt;
Wherein the one-way function f is at least one of a secure hash function and / or a block secret,
Way.
제 21 항에 있어서,
상기 복수의 난수들 Ri 중 적어도 하나의 난수가 소수가 아님을 결정하는 단계;
g개 비트들을 갖는 다른 보충 씨드 T2를 생성하는 단계;
상기 보충 씨드 T2 및 상기 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하는 단계;
n개 비트들을 갖는 다른 난수 R2를 생성하는 단계 ―상기 난수 R2는 상기 제2 씨드 S2에 기초함―;
상기 난수 R2가 소수임을 결정하는 단계; 및
상기 보충 씨드 T2를 상기 메모리 회로에 저장하는 단계
를 더 포함하는,
방법.
22. The method of claim 21,
Determining that at least one random number among the plurality of random numbers R i is not a prime number;
generating another complementary seed T 2 having g bits;
Generating another second seed S 2 based on the replenishment seed T 2 and the random seed S;
generating another random number R 2 having n bits, wherein the random number R 2 is based on the second seed S 2 ;
Determining that the random number R 2 is a prime number; And
Storing said supplementary seed T 2 in said memory circuit
&Lt; / RTI &gt;
Way.
제 25 항에 있어서,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 T2를 리트리빙하는 단계; 및
상기 난수 씨드 S 및 상기 보충 씨드 T2에 기초하여 상기 소수 난수 R2를 재생성하는 단계
를 더 포함하는,
방법.
26. The method of claim 25,
Recycling the stored random seed S and the replenish seed T 2 from the memory circuit; And
Regenerating the prime number R 2 based on the random number seed S and the replenishment seed T 2
&Lt; / RTI &gt;
Way.
제 25 항에 있어서,
미리결정된 수의 소수들에 대한 요청을 수신하는 단계; 및
각각이 상이한 소수들과 연관되는 다수의 보충 씨드들이 상기 미리결정된 수와 동일한 수로 저장될 때까지, 다른 보충 씨드 T2를 생성하는 방법 단계, 상기 보충 씨드 T2 및 상기 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하는 방법 단계, n개 비트들을 갖는 다른 난수 R2를 생성하는 방법 단계 ―상기 난수 R2는 상기 제2 씨드 S2에 기초함―, 상기 난수 R2가 소수임을 결정하는 방법 단계, 및 상기 보충 씨드 T2를 상기 메모리 회로에 저장하는 방법 단계를 반복하는 단계
를 더 포함하는,
방법.
26. The method of claim 25,
Receiving a request for a predetermined number of prime numbers; And
A method of generating another replenishment seed T 2 , each replenishment seed T 2 being different from the other, based on the replenishment seed T 2 and the random seed S, until a number of replenishment seeds each associated with different prime numbers are stored in the same number as the predetermined number step method of generating a second seed S 2, how to generate a different random number R 2 having n bits steps - determining that the random number R 2 is a small number, said random number R 2 is said second seed being based on S 2 And repeating the method steps of storing said supplemental seed T 2 in said memory circuit
&Lt; / RTI &gt;
Way.
장치로서,
메모리 회로; 및
상기 메모리 회로에 통신 가능하게 커플링된 프로세싱 회로
를 포함하고,
상기 프로세싱 회로는,
k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하고,
각각이 상기 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 상기 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하고,
각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하고 ―n은 k + g 미만이고, 상기 복수의 난수들 Ri 각각은 상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―,
상기 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하고 ―상기 난수 RP는 상기 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 상기 제2 씨드 SP는 상기 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 상기 난수 씨드 S에 기초함―; 그리고
상기 난수 씨드 S 및 상기 보충 씨드 TP를 메모리 회로에 저장하도록
구성되는,
장치.
As an apparatus,
A memory circuit; And
A processing circuit communicatively coupled to the memory circuit,
Lt; / RTI &gt;
The processing circuit comprising:
generating a random number seed having the k-bit S, and a plurality of seed supplement with T i, each having two g bits, and
Each generating a different supplementary seed among the plurality of supplementary seeds T i and a plurality of second seeds S i based on the random seed S,
Generating a plurality of random numbers R i each having n bits, wherein -n is less than k + g, and each of the plurality of random numbers R i is based on a different second seed among the plurality of second seeds S i box-,
The second seed S P the random number R P is based on the second seed S P of the second seed of S i of said plurality, and - determining that the at least one random number R P of the plurality of random numbers R i decimal and Is based on the replenish seed T P and the random seed S among the plurality of replenish seeds T i ; And
The random seed S and the replenish seed T P are stored in the memory circuit
Configured,
Device.
제 28 항에 있어서,
상기 복수의 난수들 Ri은 추가로, 비밀 키 kS에 기초하고, 그리고 상기 프로세싱 회로는 추가로, 상기 비밀 키 kS를 보안 메모리 회로에 저장하도록 구성되는,
장치.
29. The method of claim 28,
Wherein the plurality of random numbers R i is further based on a secret key k S and the processing circuit is further configured to store the secret key k S in a secure memory circuit,
Device.
제 28 항에 있어서,
상기 프로세싱 회로는 추가로,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 TP를 리트리빙하고; 그리고
상기 난수 씨드 S 및 상기 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하도록
구성되는,
장치.
29. The method of claim 28,
The processing circuit may further comprise:
Recycling the stored random seed S and the replenish seed T P from the memory circuit; And
To regenerate a prime number random number R P based on the random seed S and the supplementary seed T P
Configured,
Device.
제 30 항에 있어서,
암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하기 이전에, 상기 난수 씨드 S 및 상기 보충 씨드 TP가 저장되고, 그리고 상기 프로세싱 회로는 추가로,
상기 암호 키 생성 프로세스로부터 하나 또는 그 초과의 소수들에 대한 요청을 수신하고;
상기 소수 난수 RP에 기초하여 암호 키를 생성하고; 그리고
상기 암호 키를 상기 암호 키 생성 프로세스에 제공하도록
구성되는,
장치.
31. The method of claim 30,
The random seed S and the replenish seed T P are stored prior to receiving a request for one or more primes from the cryptographic key generation process,
Receive a request for one or more prime numbers from the cryptographic key generation process;
Generate an encryption key based on the decimal random number R P ; And
To provide the encryption key to the encryption key generation process
Configured,
Device.
제 28 항에 있어서,
상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드들에 기초하여 상기 복수의 난수들 Ri을 생성하는 것은, 상기 프로세싱 회로가 추가로,
입력들로서 상기 복수의 제2 씨드들 Si 각각을 수신하고 출력들로서 상기 복수의 난수들 Ri을 생성하는 일방향 함수 f를 실행하도록 구성되는 것
을 포함하고,
상기 일방향 함수 f는 보안 해시 함수 및/또는 블록 암호 중 적어도 하나인,
장치.
29. The method of claim 28,
Generating the plurality of random numbers R i based on different second seeds of the plurality of second seeds S i is further characterized in that the processing circuit further comprises:
And to execute a one-way function f that receives each of the plurality of second seeds S i as inputs and generates the plurality of random numbers R i as outputs
/ RTI &gt;
Wherein the one-way function f is at least one of a secure hash function and / or a block secret,
Device.
제 28 항에 있어서,
상기 프로세싱 회로는 추가로,
상기 복수의 난수들 Ri 중 적어도 하나의 난수가 소수가 아님을 결정하고;
g개 비트들을 갖는 다른 보충 씨드 T2를 생성하고;
상기 보충 씨드 T2 및 상기 난수 씨드 S에 기초하여 다른 제2 씨드 S2를 생성하고;
n개 비트들을 갖는 다른 난수 R2를 생성하고 ―상기 난수 R2는 상기 제2 씨드 S2에 기초함―;
상기 난수 R2가 소수임을 결정하고; 그리고
상기 보충 씨드 T2를 상기 메모리 회로에 저장하도록
구성되는,
장치.
29. The method of claim 28,
The processing circuit may further comprise:
Determine that at least one random number among the plurality of random numbers R i is not a prime number;
generate another complementary seed T 2 having g bits;
Generate another second seed S 2 based on said replenishment seed T 2 and said random seed S;
generate another random number R 2 having n bits, and wherein the random number R 2 is also based on the second seed S 2 -;
Determine that the random number R 2 is a prime number; And
To store the replenish seed T 2 in the memory circuit
Configured,
Device.
제 33 항에 있어서,
상기 프로세싱 회로는 추가로,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 T2를 리트리빙하고; 그리고
상기 난수 씨드 S 및 상기 보충 씨드 T2에 기초하여 상기 소수 난수 R2를 재생성하도록
구성되는,
장치.
34. The method of claim 33,
The processing circuit may further comprise:
Recycling the stored random seed S and the replenish seed T 2 from the memory circuit; And
And regenerates the prime number R 2 based on the random number seed S and the replenish seed T 2
Configured,
Device.
장치로서,
k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하기 위한 수단;
각각이 상기 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 상기 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하기 위한 수단;
각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하기 위한 수단 ―n은 k + g 미만이고, 상기 복수의 난수들 Ri 각각은 상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―;
상기 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하기 위한 수단 ―상기 난수 RP는 상기 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 상기 제2 씨드 SP는 상기 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 상기 난수 씨드 S에 기초함―; 및
상기 난수 씨드 S 및 상기 보충 씨드 TP를 메모리 회로에 저장하기 위한 수단
을 포함하는,
장치.
As an apparatus,
It means for generating a plurality of supplemental seed of T i having the k-bit random number seed having S, and each of the g bits;
Means for generating a plurality of second seeds S i each based on a different replenishment seed among the plurality of replenishment seeds T i and the random seed S;
-N means for generating a plurality of random numbers R i, each having n bits is k + g is less than the plurality of random numbers R i each is different from the first seed from the second seed S i of the plurality of Based on;
Means for determining that at least one random number R P of the plurality of random numbers R i is a prime, wherein the random number R P is based on a second seed S P of the plurality of second seeds S i , S P is based on the replenish seed T P and the random seed S among the plurality of replenish seeds T i ; And
Means for storing the random seed S and the replenish seed T P in a memory circuit
/ RTI &gt;
Device.
제 35 항에 있어서,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 TP를 리트리빙하기 위한 수단; 및
상기 난수 씨드 S 및 상기 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하기 위한 수단
을 더 포함하는,
장치.
36. The method of claim 35,
Means for recycling the stored random seed S and the replenish seed T P from the memory circuit; And
Means for regenerating a prime number R P based on the random seed S and the replenish seed T P
&Lt; / RTI &gt;
Device.
하나 또는 그 초과의 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체로서,
상기 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
k개 비트들을 갖는 난수 씨드 S, 및 각각이 g개 비트들을 갖는 복수의 보충 씨드들 Ti을 생성하게 하고;
각각이 상기 복수의 보충 씨드들 Ti 중 상이한 보충 씨드 및 상기 난수 씨드 S에 기초하는 복수의 제2 씨드들 Si을 생성하게 하고;
각각이 n개 비트들을 갖는 복수의 난수들 Ri을 생성하게 하고 ―n은 k + g 미만이고, 상기 복수의 난수들 Ri 각각은 상기 복수의 제2 씨드들 Si 중 상이한 제2 씨드에 기초함―;
상기 복수의 난수들 Ri 중 적어도 하나의 난수 RP가 소수임을 결정하게 하고 ―상기 난수 RP는 상기 복수의 제2 씨드들 Si 중 제2 씨드 SP에 기초하고, 상기 제2 씨드 SP는 상기 복수의 보충 씨드들 Ti 중 보충 씨드 TP 및 상기 난수 씨드 S에 기초함―; 그리고
상기 난수 씨드 S 및 상기 보충 씨드 TP를 메모리 회로에 저장하게 하는,
컴퓨터-판독가능 저장 매체.
A computer-readable storage medium having stored thereon one or more instructions,
Wherein the instructions, when executed by the at least one processor, cause the processor to:
a random number seed S having k bits, and a plurality of supplementary seeds T i each having g bits;
Each generating a different supplementary seed among the plurality of supplementary seeds T i and a plurality of second seeds S i based on the random seed S;
And to generate a plurality of random numbers R i, each having n bits, and -n is less than k + g, the plurality of random numbers R i in each of the different second seed of a second seed lightwave of S i of the plurality of Foundation;
Determine that at least one random number R P of the plurality of random numbers R i is a prime number, and wherein the random number R P is based on a second seed S p of the plurality of second seeds S i , P is based on the replenishment seed T P and the random seed S among the plurality of replenishment seeds T i ; And
The random seed S and the replenish seed T P in a memory circuit,
Computer-readable storage medium.
제 37 항에 있어서,
상기 명령들은 추가로, 상기 프로세서로 하여금,
상기 메모리 회로로부터 저장된 난수 씨드 S 및 상기 보충 씨드 TP를 리트리빙하게 하고; 그리고
상기 난수 씨드 S 및 상기 보충 씨드 TP에 기초하여 소수 난수 RP를 재생성하게 하는,
컴퓨터-판독가능 저장 매체.
39. The method of claim 37,
The instructions further cause the processor to:
Causing the stored random seed S and the replenish seed T P to be lit from the memory circuit; And
And to regenerate a prime number random number R P based on the random seed S and the supplementary seed T P.
Computer-readable storage medium.
KR1020167007529A 2013-08-30 2014-08-27 Methods and apparatuses for prime number generation and storage KR20160048860A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/014,962 2013-08-30
US14/014,962 US9800407B2 (en) 2013-08-30 2013-08-30 Methods and apparatuses for prime number generation and storage
PCT/US2014/052877 WO2015031458A2 (en) 2013-08-30 2014-08-27 Methods and apparatuses for prime number generation and storage

Publications (1)

Publication Number Publication Date
KR20160048860A true KR20160048860A (en) 2016-05-04

Family

ID=51743539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167007529A KR20160048860A (en) 2013-08-30 2014-08-27 Methods and apparatuses for prime number generation and storage

Country Status (6)

Country Link
US (1) US9800407B2 (en)
EP (1) EP3039812A2 (en)
JP (1) JP2016535310A (en)
KR (1) KR20160048860A (en)
CN (1) CN105493437A (en)
WO (1) WO2015031458A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190127704A (en) * 2017-02-21 2019-11-13 탈레스 Dis 프랑스 Sa Method for generating prime numbers for cryptographic applications

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680647B2 (en) * 2014-03-24 2017-06-13 Infineon Technologies Ag Method of using a token in cryptography
CN106533663B (en) * 2016-11-01 2019-06-25 广东浪潮大数据研究有限公司 Data ciphering method, encryption method, apparatus and data decryption method, decryption method, apparatus
CN108270564A (en) * 2016-12-30 2018-07-10 广东精点数据科技股份有限公司 A kind of generation of large prime method and device in RSA cryptographic algorithms
GB2574613B (en) * 2018-06-12 2020-07-22 Advanced Risc Mach Ltd Device, system, and method of generating and handling cryptographic parameters
US20220400005A1 (en) * 2019-10-16 2022-12-15 Hewlett-Packard Development Company, L.P. Generating prime numbers
US11456867B2 (en) * 2019-10-25 2022-09-27 International Business Machines Corporation Trust-anchoring of cryptographic objects
KR20210142820A (en) 2020-05-19 2021-11-26 삼성전자주식회사 A non volatile memory device storing a public key and a secret key, an electronic device comprising the same and a service provider

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997004378A1 (en) * 1995-07-20 1997-02-06 Dallas Semiconductor Corporation Microcircuit with memory that is protected by both hardware and software
US6104811A (en) * 1996-08-16 2000-08-15 Telcordia Technologies, Inc. Cryptographically secure pseudo-random bit generator for fast and secure encryption
US6345098B1 (en) * 1998-07-02 2002-02-05 International Business Machines Corporation Method, system and apparatus for improved reliability in generating secret cryptographic variables
US6307938B1 (en) * 1998-07-10 2001-10-23 International Business Machines Corporation Method, system and apparatus for generating self-validating prime numbers
JP3711821B2 (en) 1999-11-25 2005-11-02 日本電信電話株式会社 Prime number generation method and apparatus, and storage medium storing prime number generation program
US7120248B2 (en) 2001-03-26 2006-10-10 Hewlett-Packard Development Company, L.P. Multiple prime number generation using a parallel prime number search algorithm
TWI244610B (en) * 2001-04-17 2005-12-01 Matsushita Electric Ind Co Ltd Information security device, prime number generation device, and prime number generation method
US7149763B2 (en) * 2002-09-09 2006-12-12 Gemplus Method for generating a random prime number within a predetermined interval
US8111826B2 (en) * 2006-01-11 2012-02-07 Mitsubishi Electric Corporation Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph
US20080123842A1 (en) * 2006-11-03 2008-05-29 Nokia Corporation Association of a cryptographic public key with data and verification thereof
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
US8472620B2 (en) 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
US20100063932A1 (en) * 2008-09-08 2010-03-11 Jan Leonhard Camenisch Forming Credentials
EP2423905B1 (en) * 2009-04-24 2016-03-16 Nippon Telegraph and Telephone Corporation Apparatus, method, program and recording medium for computation of pairings over finite fields
US8971530B2 (en) * 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
KR101727130B1 (en) * 2010-01-20 2017-04-14 인트린직 아이디 비브이 Device and method for obtaining a cryptographic key
JP5713828B2 (en) 2011-07-27 2015-05-07 キヤノン株式会社 Information processing apparatus, information processing method, and program
JP5744673B2 (en) * 2011-08-10 2015-07-08 キヤノン株式会社 Information processing system, information processing method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190127704A (en) * 2017-02-21 2019-11-13 탈레스 Dis 프랑스 Sa Method for generating prime numbers for cryptographic applications

Also Published As

Publication number Publication date
JP2016535310A (en) 2016-11-10
US20150063565A1 (en) 2015-03-05
CN105493437A (en) 2016-04-13
WO2015031458A3 (en) 2015-06-25
WO2015031458A2 (en) 2015-03-05
US9800407B2 (en) 2017-10-24
EP3039812A2 (en) 2016-07-06

Similar Documents

Publication Publication Date Title
KR20160048860A (en) Methods and apparatuses for prime number generation and storage
TWI734368B (en) Data homomorphic encryption and decryption method and device for realizing privacy protection
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
CN106470102B (en) Encryption device, storage device with encryption device, and encryption and decryption methods thereof
EP2695052B1 (en) Random number generating system based on memory start-up noise
US20200204529A1 (en) Key management
US20120203990A1 (en) Method for storing and recovering data, utilization of the method in a storage cloud, storage server and computer program product
CN103440209A (en) Solid state hard disk data encryption and decryption method and solid state hard disk system
CN109684030B (en) Virtual machine memory key generation device and method, encryption method and SoC system
CN105095097B (en) The memory access of randomization
US20140016778A1 (en) Random bit stream generator with guaranteed minimum period
US20150058639A1 (en) Encryption processing device and storage device
JP6246239B2 (en) Method and device for prime number generation
CN109997144B (en) Separate encryption for solid state drives
CN111934874A (en) Block chain-based data encryption and decryption method, equipment and medium
TWI533652B (en) Method and apparatus for a computable, large, variable and secure substitution box
CN104281612A (en) Data processing method and device
CN107320959B (en) Game role identification information generation method, device, medium and electronic equipment
KR20230078510A (en) Apparatus and method of homomorphic encryption opeation
US20130108038A1 (en) System and method for a collatz based hash function
CN116192395A (en) Trusted system for distributed data storage
CN114756885A (en) Firmware loading method, storage device and computer readable storage medium
CN105393491A (en) Calculation device, calculation method, and program
CN112487448B (en) Encryption information processing device, method and computer equipment
US20150215129A1 (en) Data encryption of a storage area

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination