CN105450391A - 使用所存储的输入值和所存储的计数值的密码密钥生成 - Google Patents
使用所存储的输入值和所存储的计数值的密码密钥生成 Download PDFInfo
- Publication number
- CN105450391A CN105450391A CN201510781646.2A CN201510781646A CN105450391A CN 105450391 A CN105450391 A CN 105450391A CN 201510781646 A CN201510781646 A CN 201510781646A CN 105450391 A CN105450391 A CN 105450391A
- Authority
- CN
- China
- Prior art keywords
- random number
- number generator
- pseudo
- input
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
描述了使用所存储的输入值和所存储的计数值的密码密钥生成的本发明的实施例。在一个实施例中,处理器包括存储输入值和计数值的非易失性存储装置以及根据所存储的输入值和所存储的计数值来生成密码密钥的逻辑。
Description
技术领域
本公开涉及信息处理领域,并且更具体来说,涉及加密信息领域。
背景技术
在信息处理系统中,可通过对保密信息进行加密来保护它以免被发现。加密算法通常使用一个或多个密码密钥将未加密信息(“明文”)变换成加密信息(“密文”),如果随后不通过使用一个或多个密码密钥的逆变换进行解密,则加密信息一般没有意义。
例如,Rivest、Shamir和Adelman开发的公有密钥加密算法(“RSA”)使用两个密钥,一个是公有密钥而另一个是私有密钥。可使公有密钥公开可用于加密信息,而使私有密钥保持为保密,以便用于解密采用对应的公有密钥进行加密的信息。两个密钥均从一对素数得出。
发明内容
本发明提供了一种处理器,包括:存储输入值和第一计数值的非易失性存储装置;以及根据所存储的输入值和所存储的第一计数值来生成密码密钥的逻辑。
本发明还提供了一种系统,包括:存储输入值和第一计数值的非易失性存储装置;以及根据所存储的输入值和所存储的第一计数值来生成密码密钥的处理器。
本发明还提供了一种方法,包括:生成输入值;根据所述输入值为伪随机数生成器提供籽数;确定来自所述伪随机数生成器的输出值是否为素数;根据关于所述伪随机数生成器的输出是否为素数的确定,将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;对于将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入的次数进行计数;以及在非易失性存储器中存储所述输入值和将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入的所述次数。
本发明还提供了一种方法,包括:从非易失性存储器读取输入值和第一计数值;根据所述输入值为伪随机数生成器提供籽数;按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;以及根据来自所述伪随机数生成器的输出值来生成密码密钥。
本发明还提供了一种包括指令的机器可读介质,所述指令在被运行时使处理系统执行下列步骤:从非易失性存储器读取输入值和第一计数值;根据所述输入值为伪随机数生成器提供籽数;按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;以及根据来自所述伪随机数生成器的输出值来生成密码密钥。
附图说明
在附图中,本发明是作为示例而不是限制来示出的。
图1示出根据本发明的实施例、生成密码密钥的处理器。
图2示出根据本发明的实施例、存储输入值和计数值的逻辑。
图3示出根据本发明的实施例、存储输入值和计数值的方法。
图4示出根据本发明的实施例、生成密码密钥的逻辑。
图5示出根据本发明的实施例、生成密码密钥的方法。
图6示出根据本发明的实施例、生成密码密钥的系统。
具体实施方式
描述了用于使用所存储的输入值和所存储的计数值的密码密钥生成的本发明的实施例。在本描述中,可能提出例如组件和系统配置等的大量具体细节,以便提供对本发明的更透彻了解。然而,本领域的技术人员会理解,即使没有这类具体细节,也可实施本发明。另外,没有详细示出一些众所周知的结构、电路和其它特征,以免不必要地使本发明难理解。
本发明的实施例的元件可通过硬件、软件、固件或者硬件、软件或固件的任何组合来实现。术语“硬件”一般指的是具有例如电子、电磁、光、光电、机械、机电部件等物理结构的元件。术语“软件”一般指的是逻辑结构、方法、过程、程序、例程、进程、算法、公式、表达式等等。术语“固件”一般指的是在硬件结构(例如闪速存储器或只读存储器)中实现或包含的逻辑结构、方法、过程、程序、例程、进程、算法、公式或表达式。固件的示例是微码、可写控制存储、微编程结构和处理器抽象层。
如背景技术部分中所述,信息处理系统可使用一个或多个密码密钥对信息进行加密和解密。可能希望将这些密钥存储在信息处理系统之内或者信息处理系统另外可访问的非易失性存储装置(storage)中,使得相同的密钥可由同一个系统在系统断电之前和之后使用。但是,不同的系统可能使用不同的密钥,并且以不同方式制作(例如使用光掩模技术)不同系统的单独组件可能在经济上不是可行的。不同系统特有(uniqueto)的信息可使用半导体熔丝或电编程技术来存储,但是大密钥(例如2048位RSA密钥对)的存储可能显著增加每个系统的成本。因此,可能希望信息处理系统具有重新生成一个或多个唯一(unique)密码密钥的能力。本发明的实施例可用于提供那种能力。
图1示出根据本发明的实施例的处理器100。处理器100可以是任何类型的处理器,包括通用微处理器,例如处理器系列、处理器系列、或者来自公司的其它处理器系列的处理器、或者来自另一个公司的另一种处理器或者专用处理器或微控制器。处理器100可包括任何组合的多个线程和多个执行核心。处理器100包括指令逻辑110、执行逻辑120、控制逻辑130和存储区140。处理器100还可包括图1未示出的任何其它电路、结构或逻辑。
指令逻辑110将接收指令。这些指令的一个或多个可以是按照任何已知加密算法对信息进行加密或解密的指令,或者是可用于按照任何已知加密算法对信息进行加密或解密的一系列指令中的指令。指令逻辑110可包括对这些指令进行识别、解码或者以其它方式接收的任何电路、逻辑或其它结构。指令逻辑110还可接收本说明书中没有描述的任何其它指令。在一个实施例中,指令逻辑110可包括对指令进行解码的解码逻辑。
执行逻辑120将响应指令逻辑110接收对信息进行加密或解密的一个或多个指令,而执行加密算法、解码算法和/或加密算法中使用的操作的任何子集。执行逻辑120可包括运行加密算法的任何电路、逻辑或其它结构,例如任何数量的算术逻辑单元、移位器和其它结构。执行逻辑120的全部或者一部分可专用于按照单个标准或算法的加密,或者可以整体、部分和/或连同其它逻辑用于支持按照一种以上标准或算法的加密和/或支持按照这些算法的任一种的解密,和/或还可用于其它操作。执行逻辑120还可包括运行除了加密算法所使用的那些指令之外的指令的任何电路、逻辑或其它结构。
在一个实施例中,执行逻辑120可包括密钥生成逻辑122的全部或部分。在其它实施例中,密钥生成逻辑122的全部或部分可包括在执行逻辑120外部的独立逻辑中。密钥生成逻辑122可包括生成一个或多个密码密钥的任何电路、逻辑或其它结构。密钥生成逻辑122的不同实施例如图2和图3所示。
控制逻辑130将使执行逻辑120运行指令,和/或使密钥生成逻辑122生成一个或多个密码密钥。控制逻辑130可包括任何电路、逻辑或其它结构,其中包括微码、状态机逻辑、可编程逻辑或者任何其它形式的控制逻辑,它可根据指令单元110所接收的指令向执行逻辑120提供控制信号。控制逻辑130还可使处理器100中的任何其它电路、逻辑或其它结构执行在执行逻辑120内没有完全运行的任何其它操作。例如,控制逻辑130可使处理器100取回将要在本发明的实施例中使用的所存储的输入值和所存储的计数值,如下所述。所存储的输入值和所存储的计数值可存储在处理器100之内或者处理器100可访问(accessibletoprocessor100)的任何存储区中并且从其中取回。
例如,在一个实施例中,所存储的输入值和所存储的计数值可从处理器100之内的存储区140取回。存储区140可以是处理器100内的任何类型的存储器或存储元件的存储区。在一个实施例中,存储区140可以是非易失性的。例如,存储区140可以是通过半导体熔丝技术(semiconductorfusetechnology)所实现的可编程只读存储器。在一个实施例中,存储区140可以是安全、私有或者受到保护的,例如仅由执行逻辑120和/或密钥生成逻辑122内的逻辑在由指令逻辑110接收到加密、解密或密钥生成指令时根据控制逻辑130所提供的控制信号才可访问。
图2示出根据本发明的实施例的密钥生成逻辑200。在一个实施例中,图2中的密钥生成逻辑200对应于图1中的密钥生成逻辑122的全部或者一部分或者密钥生成逻辑122的全部或者一部分和控制逻辑130的全部或者一部分的组合。在一个实施例中,密钥生成逻辑200将生成RSA密钥对。
密钥生成逻辑200可包括籽数生成器220、伪随机数生成器230、素性测试器(primalitytester)240、计数器250和密钥生成器260。密钥生成逻辑200可通过硬件、软件和固件的任何组合来实现。例如,籽数生成器220、伪随机数生成器230、素性测试器240、计数器250和密钥生成器260的每个可以是硬件电路、软件模块或者任何其它硬件、软件或固件结构。
密钥生成逻辑200可从真随机数生成器210或者从任何其它源接收输入值。真随机数生成器210可以是生成随机数的任何进程或装置。但是,本发明并不局限于这个方面,即,本发明的实施例不要求输入值为真随机数。真随机数生成器210或者密钥生成逻辑200的输入值的任何其它源可包含于或者独立于密钥生成逻辑200。在一个实施例中,输入值可以是256位值。
籽数生成器220将生成用于伪随机数生成器230的籽数值。籽数生成器220可按照任何确定性方式从单个输入值生成一个或多个籽数值。籽数生成器220可使用例如填充(padding)等任何方式来生成籽数值的总位数,它大于输入值中的位数。
伪随机数生成器230将使用籽数值作为输入值来生成伪随机数的序列。伪随机数生成器230的输出值的统计分布可近似为例如真随机数生成器210等真随机数生成器的输出值的统计分布。但是,与真随机数生成器210不同,伪随机数生成器230是确定性的。给定特定输入,伪随机数生成器230始终生成相同的数字序列。伪随机数生成器230可通过软件算法、硬件移位寄存器或者按照任何其它方式来实现。
素性测试器240将确定数字是否为素数。给定输入,素性测试器240按照任何方式来确定它是否为素数。计数器250将对事件的频度进行计数。计数器250可递增、递减或者按照任何其它方式来计数。在一个实施例中,计数器250可以是16位计数器。
密钥生成器260将生成一个或多个密码密钥。密钥生成器260可按照任何方式来生成密码密钥。在一个实施例中,密钥生成器260将生成RSA密钥对。
在一个实施例中,根据图3的方法300所示的本发明的方法实施例,密钥生成逻辑200可从输入值生成一个或多个密码密钥,并且将输入值和一个或多个计数值存储在非易失性存储器中。
在图3的框310,随机数由真随机数生成器210来生成。在框312,随机数用作对密钥生成逻辑200的输入值。在框314,将随机数存储在非易失性存储器中。在框316,籽数生成器220根据随机数来生成第一和第二两个籽数值。
在框320,将计数器250清零(clear)。在框322,来自框316的第一籽数值用作对伪随机数生成器(PRNG)230的输入。
在框330,伪随机数生成器230根据其输入值来生成伪随机数(PRN)。在框332,由素性测试器240来测试在框330所生成的伪随机数的素性。如果在框332确定伪随机数为素数,则在框360将该伪随机数用作对密钥生成器260的第一输入,以及在框334把来自计数器250的计数值作为第一计数值存储在非易失性存储器中。但是,如果在框332确定伪随机数不是素数,则在框336将该伪随机数(或者它的一部分或者由它得出的数)反馈给伪随机数生成器230的输入,在框338使计数器250递增(increment),以及方法300返回到框330。
在框340,将计数器250清零。在框342,来自框316的第二籽数值用作对伪随机数生成器230的输入。
在框350,伪随机数生成器230根据其输入值来生成伪随机数。在框352,由素性测试器240来测试在框350所生成的伪随机数的素性。如果在框352确定伪随机数为素数,则在框362将该伪随机数用作对密钥生成器260的第二输入,以及在框354把来自计数器250的计数值存储在非易失性存储器中。但是,如果在框352确定伪随机数不是素数,则在框356将该伪随机数(或者它的一部分或者由它得出的数)反馈给伪随机数生成器230的输入,在框358使计数器250递增,以及方法300返回到框350。
在框360,来自框332的伪随机素数用作对密钥生成器260的第一输入。在框362,来自框352的伪随机素数用作对密钥生成器260的第二输入。在框364,密钥生成器使用第一输入作为第一素数以及使用第二输入作为第二素数来生成RSA密钥对。
在框370,存储输入值以及第一和第二计数值的非易失性存储器可被复制或传递到另一个系统或者另一个系统的组件、如处理器或芯片组。因此,在方法300中从输入值所生成的相同RSA密钥对在另一个系统中可按照本发明的另一个实施例重新生成。然后,这个相同的RSA密钥对可在这个另外的系统中从所存储的输入值和所存储的计数值重复地重新生成,使得相同的RSA密钥对可由系统再使用,而无需持续存储RSA密钥对的2048位信息。在具有256位输入值和两个16位计数值的实施例中,而是仅持续存储288位信息。
在本发明的范围之内,可按照不同顺序、以省略所示框、以添加附加框或者以重排序、省略或附加框的组合来执行方法300。作为一个示例,框360至364可省略,因为在创建计数值的系统内生成或使用RSA密钥对可能不是必要或所需的。作为另一个示例,表示随机数和计数值存储和/或复制到非易失性存储器的框314、334、354和374可进行组合,使得存在对单个非易失性存储器的单次写入。
图4示出根据本发明的另一个实施例的密钥生成逻辑400。在一个实施例中,图4中的密钥生成逻辑400对应于图1中的密钥生成逻辑122的全部或者一部分或者密钥生成逻辑122的全部或者一部分和控制逻辑130的全部或者一部分的组合。在一个实施例中,密钥生成逻辑400将生成RSA密钥对。
密钥生成逻辑400可包括籽数生成器420、伪随机数生成器430、计数器450和密钥生成器460。密钥生成逻辑400可通过硬件、软件和固件的任何组合来实现。例如,籽数生成器420、伪随机数生成器430、计数器450和密钥生成器460的每个可以是硬件电路、软件模块或者任何其它硬件、软件或固件结构。
密钥生成逻辑400可从非易失性存储器取回或接收输入值以及第一和第二计数值。例如,在其中密钥生成逻辑处于处理器100内的实施例中,密钥生成逻辑400可从存储区140取回或接收输入值和计数值。根据本发明的另一个实施例、如图3的方法300,输入值和计数值可能已经存储在非易失性存储器中。输入值可以是由真随机数生成器所生成的随机数,但在本发明的范围之内,来自任何源的任何随机、伪随机或非随机数可用作输入值。
籽数生成器420将生成用于伪随机数生成器430的籽数值。籽数生成器420可按照任何确定性方式从单个输入值生成一个或多个籽数值。籽数生成器420可使用例如填充等任何方式来生成籽数值的总位数,它大于输入值中的位数。
伪随机数生成器430将使用籽数值作为输入值来生成伪随机数的序列。伪随机数生成器430的输出值的统计分布可近似为例如真随机数生成器210等真随机数生成器的输出值的统计分布。但是,与真随机数生成器210不同,伪随机数生成器430是确定性的。给定特定输入,伪随机数生成器430始终生成相同的数字序列。伪随机数生成器430可通过软件算法、硬件移位寄存器或者按照任何其它方式来实现。
计数器450将对事件的频度进行计数。计数器450可递增、递减或者按照任何其它方式来计数。
密钥生成器460将生成一个或多个密码密钥。密钥生成器460可按照任何方式来生成密码密钥。在一个实施例中,密钥生成器460将生成RSA密钥对。
在一个实施例中,根据图5的方法500所示的本发明的方法实施例,密钥生成逻辑400可从所存储的输入值以及第一和第二所存储的计数值来生成一个或多个密码密钥。在图5的实施例中,按照本发明的另一个实施例、如方法300,输入值和计数值可能已经创建和存储,其中籽数生成器、伪随机数生成器、计数器和密钥生成器在两个实施例中均使用相同的确定性算法或设计,使得两个实施例对于给定输入值所生成的RSA密钥是相同的。此外,必须将伪随机数生成器的输出反馈给伪随机数生成器的输入、以便根据给定籽数值来生成素数的次数在两个实施例中是相同的。因此,图5的实施例不要求素性测试,因为所存储的计数值与所存储的输入值的配合使用将生成与图3的实施例所生成的相同素数。
在图5的框510,从非易失性存储器取回或接收输入值。在框512,从非易失性存储器取回或接收第一计数值。在框514,从非易失性存储器取回或接收第二计数值。在框516,籽数生成器420根据输入值来生成第一和第二两个籽数值。
在框520,将计数器450清零。在框522,来自框516的第一籽数值用作对伪随机数生成器430的输入。
在框530,伪随机数生成器430根据其输入值来生成伪随机数。在框532,将计数器450的计数与第一计数值进行比较。如果在框532确定计数器450的计数等于第一计数值,则在框560,伪随机数生成器430的输出用作对密钥生成器460的第一输入。但是,如果确定计数器450的计数不等于第一计数值,则在框536将伪随机数生成器430的输出(或者它的一部分或者由它得出的数)反馈给伪随机数生成器430的输入,在框538使计数器450递增,以及方法500返回到框530。
在框540,将计数器450清零。在框542,来自框516的第二籽数值用作对伪随机数生成器430的输入。
在框550,伪随机数生成器430根据其输入值来生成伪随机数。在框552,将计数器450的计数与第二计数值进行比较。如果在框552确定计数器450的计数等于第二计数值,则在框562,伪随机数生成器430的输出用作对密钥生成器460的第二输入。但是,如果确定计数器450的计数不等于第二计数值,则在框556将伪随机数生成器430的输出(或者它的一部分或者由它得出的数)反馈给伪随机数生成器430的输入,在框558使计数器450递增,以及方法500返回到框550。
在框560,来自框532的伪随机素数用作对密钥生成器460的第一输入。在框562,来自框552的伪随机素数用作对密钥生成器460的第二输入。在框564,密钥生成器使用第一输入作为第一素数以及使用第二输入作为第二素数来生成RSA密钥对。
在框570,可将在框564所生成的RSA密钥对的公有密钥传送到另一个系统。在框572,可从其中运行方法500的系统去除电力。因此,在框564所生成的RSA密钥对可从易失性系统存储器擦除。
在框580,可对其中运行方法500的系统恢复电力。在框582,由其它系统使用公有密钥所加密的信息可由系统500接收。然后,在框584,框510至564则可重复进行,以便重新生成在框564所生成的相同RSA密钥对。在框586,由其它系统使用公有密钥所加密的信息可使用私有密钥来解密。
在本发明的范围之内,可按照不同顺序、以省略所示框、以添加附加框或者以重排序、省略或附加框的组合来执行方法500。例如,框510至514可组合成一个操作或者在方法500内单独重排序,以便在方法500内共同地或者在不同时间单独地(separatelyatdifferenttimes)取回或接收输入值以及第一和第二计数值。
图6示出根据本发明的实施例的系统600。系统600包括处理器610,其中具有可包括设计成实现上述本发明的实施例的硬件和/或运行包含(embody)上述本发明的软件和/或固件的通用硬件的密钥生成逻辑612。系统600还可包括非易失性存储装置620,将输入值存储在存储单元(location)622中、将第一计数值存储在存储单元624中以及将第二计数值存储在存储单元626中,分别如上所述。非易失性存储装置620可以是由处理器610可读的任何类型的非易失性存储装置,并且可以是独立存储器组件或者可以是具有另一个功能的组件、如芯片组内的存储装置。系统600还可包括系统存储器630,它可以是静态或动态随机存取存储器或者是处理器610可读的任何其它类型的介质或者这类介质的任何组合。处理器610、非易失性存储装置620和系统存储器630可在系统600内按照任何方式、例如通过一个或多个总线、点对点或其它有线或无线连接直接地或者间接地相互耦合或者通信。
如上所述,本发明的实施例或者实施例的部分可存储在任何形式的机器可读介质中。例如,方法300和/或500的全部或部分可包含在软件或固件指令中,这些指令存储在处理器100和/或处理器610可读的介质上,在由处理器100和/或处理器610运行时,使处理器100和/或处理器610运行本发明的实施例。
这样,描述了使用所存储的输入值和所存储的计数值的密码密钥生成的本发明的实施例。虽然描述了并且在附图中示出了某些实施例,但是要理解,这类实施例只是对广泛的发明的说明而不是限制,并且本发明并不局限于所示和所述的具体构造和配置,因为本领域的技术人员在研究本公开时会想到其它各种修改。在例如增长迅速并且不易预见其它进步的这样的技术的领域中,通过实现技术进步进行促进,所公开的实施例在配置和细节上可易于修改,而没有背离本公开的原理或所附权利要求的范围。
Claims (20)
1.一种处理器,包括:
存储输入值和第一计数值的非易失性存储装置;以及
根据所存储的输入值和所存储的第一计数值来生成密码密钥的逻辑。
2.如权利要求1所述的处理器,其中,所述输入值是随机数。
3.如权利要求2所述的处理器,所述非易失性存储装置还存储第二计数值。
4.如权利要求3所述的处理器,其中,所述逻辑将根据所存储的输入值、所存储的第一计数值和所存储的第二计数值来生成RSA密钥对。
5.如权利要求4所述的处理器,其中,所述逻辑将根据所存储的输入值为伪随机数生成器提供籽数,根据所存储的第一计数值迭代生成第一伪随机数序列,根据所存储的第二计数值迭代生成第二伪随机数序列,以及使用所述伪随机数生成器的第一和第二输出来生成RSA密钥对。
6.一种系统,包括:
存储输入值和第一计数值的非易失性存储装置;以及
根据所存储的输入值和所存储的第一计数值来生成密码密钥的处理器。
7.一种方法,包括:
生成输入值;
根据所述输入值为伪随机数生成器提供籽数;
确定来自所述伪随机数生成器的输出值是否为素数;
根据关于所述伪随机数生成器的输出是否为素数的确定,将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;
对于将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入的次数进行计数;以及
在非易失性存储器中存储所述输入值和将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入的所述次数。
8.如权利要求7所述的方法,其中,生成所述输入值由真随机数生成器来执行。
9.一种方法,包括:
从非易失性存储器读取输入值和第一计数值;
根据所述输入值为伪随机数生成器提供籽数;
按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;以及
根据来自所述伪随机数生成器的输出值来生成密码密钥。
10.如权利要求9所述的方法,还包括:从所述非易失性存储器读取第二计数值。
11.如权利要求10所述的方法,其中,根据所述输入值为伪随机数生成器提供籽数包括从所述输入值来生成第一籽数值和第二籽数值。
12.如权利要求11所述的方法,其中,根据所述输入值为伪随机数生成器提供籽数包括从所述输入值来生成第一籽数值和第二籽数值。
13.如权利要求12所述的方法,其中,为伪随机数生成器提供籽数包括采用所述第一籽数值为所述伪随机数生成器提供籽数,以及采用所述第二籽数值为所述伪随机数生成器提供籽数。
14.如权利要求13所述的方法,其中,按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入包括在采用所述第一籽数值为所述伪随机数生成器提供籽数之后,按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入。
15.如权利要求14所述的方法,还包括:在采用所述第二籽数值为所述伪随机数生成器提供籽数之后,按照所述第二计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入。
16.如权利要求15所述的方法,其中,根据来自所述伪随机数生成器的输出值来生成密码密钥包括在采用所述第一籽数值为所述伪随机数生成器提供籽数之后,按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入之后使用来自所述伪随机数生成器的第一输出值。
17.如权利要求16所述的方法,其中,根据来自所述伪随机数生成器的输出值来生成密码密钥包括在采用所述第二籽数值为所述伪随机数生成器提供籽数之后,按照所述第二计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入之后使用来自所述伪随机数生成器的第二输出值。
18.如权利要求17所述的方法,其中,根据来自所述伪随机数生成器的输出值来生成密码密钥包括在RSA密钥对生成算法中使用所述第一输出值作为第一素数,并且使用所述第二输出值作为第二素数。
19.一种包括指令的机器可读介质,所述指令在被运行时使处理系统执行下列步骤:
从非易失性存储器读取输入值和第一计数值;
根据所述输入值为伪随机数生成器提供籽数;
按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入;以及
根据来自所述伪随机数生成器的输出值来生成密码密钥。
20.如权利要求19所述的机器可读介质,其中,生成密码密钥包括在采用基于所述输入值的第一籽数值为所述伪随机数生成器提供籽数之后按照所述第一计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入之后,使用来自所述伪随机数生成器的第一输出值作为第一素数,以及在采用基于所述输入值的第二籽数值为所述伪随机数生成器提供籽数之后按照第二计数值所指明的次数将所述伪随机数生成器的输出反馈给所述伪随机数生成器的输入之后,使用来自所述伪随机数生成器的第二输出值作为第二素数,从而生成RSA密钥对。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/456909 | 2009-06-24 | ||
US12/456,909 US8971530B2 (en) | 2009-06-24 | 2009-06-24 | Cryptographic key generation using a stored input value and a stored count value |
CN201010220808.2A CN102025487B (zh) | 2009-06-24 | 2010-06-21 | 使用所存储的输入值和所存储的计数值的密码密钥生成 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010220808.2A Division CN102025487B (zh) | 2009-06-24 | 2010-06-21 | 使用所存储的输入值和所存储的计数值的密码密钥生成 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105450391A true CN105450391A (zh) | 2016-03-30 |
CN105450391B CN105450391B (zh) | 2019-06-18 |
Family
ID=42668888
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010220808.2A Active CN102025487B (zh) | 2009-06-24 | 2010-06-21 | 使用所存储的输入值和所存储的计数值的密码密钥生成 |
CN201510781646.2A Active CN105450391B (zh) | 2009-06-24 | 2010-06-21 | 用于生成密钥对的至少一部分的制品、处理器及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010220808.2A Active CN102025487B (zh) | 2009-06-24 | 2010-06-21 | 使用所存储的输入值和所存储的计数值的密码密钥生成 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8971530B2 (zh) |
EP (1) | EP2273718B1 (zh) |
JP (1) | JP5339237B2 (zh) |
KR (1) | KR101222781B1 (zh) |
CN (2) | CN102025487B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2946207A1 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
IN2014CN04637A (zh) * | 2011-12-15 | 2015-09-18 | Inside Secure | |
US9935768B2 (en) | 2012-08-06 | 2018-04-03 | Samsung Electronics Co., Ltd. | Processors including key management circuits and methods of operating key management circuits |
US20140082358A1 (en) | 2012-09-17 | 2014-03-20 | General Instrument Corporation | Efficient key generator for distribution of sensitive material from mulitple application service providers to a secure element such as a universal integrated circuit card (uicc) |
US9800407B2 (en) * | 2013-08-30 | 2017-10-24 | Qualcomm Incorporated | Methods and apparatuses for prime number generation and storage |
US10142103B2 (en) * | 2015-12-07 | 2018-11-27 | The Boeing Company | Hardware assisted fast pseudorandom number generation |
US10680810B2 (en) * | 2016-10-26 | 2020-06-09 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
US10237063B2 (en) | 2016-12-13 | 2019-03-19 | Nxp B.V. | Distributed cryptographic key insertion and key delivery |
US10367639B2 (en) | 2016-12-29 | 2019-07-30 | Intel Corporation | Graphics processor with encrypted kernels |
US10341329B2 (en) | 2017-07-05 | 2019-07-02 | Nxp B.V. | Method for generating a public/private key pair and public key certificate for an internet of things device |
US10439816B2 (en) | 2017-09-08 | 2019-10-08 | Nxp B.V. | Method for provisioning a device with a verified and diversified public key |
US10944557B2 (en) * | 2018-04-25 | 2021-03-09 | Nxp B.V. | Secure activation of functionality in a data processing system |
EP3562092A1 (en) * | 2018-04-26 | 2019-10-30 | Thales Dis Design Services Sas | Method for generating on-board a cryptographic key using a physically unclonable function |
GB2574613B (en) * | 2018-06-12 | 2020-07-22 | Advanced Risc Mach Ltd | Device, system, and method of generating and handling cryptographic parameters |
US10862680B2 (en) * | 2018-09-26 | 2020-12-08 | Intel Corporation | Encoding process for multiple RSA and ECC keys |
US11316687B2 (en) * | 2019-03-04 | 2022-04-26 | Cypress Semiconductor Corporation | Encrypted gang programming |
WO2020220034A1 (en) * | 2019-04-26 | 2020-10-29 | Csub Auxiliary For Sponsored Programs Administration | Reconfigurable security hardware and methods for internet of things (iot) systems |
US11341064B2 (en) * | 2019-12-05 | 2022-05-24 | Realtek Singapore Private Limited | Method of protecting sensitive data in integrated circuit and integrated circuit utilizing same |
KR20210142820A (ko) | 2020-05-19 | 2021-11-26 | 삼성전자주식회사 | 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 |
KR20240079841A (ko) * | 2022-11-29 | 2024-06-05 | 삼성전자주식회사 | 데이터를 암호화하는 방법 및 장치 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3591857B2 (ja) | 1993-12-27 | 2004-11-24 | キヤノン株式会社 | 擬似乱数生成方法及び装置、通信方法及び装置 |
WO1996015582A1 (fr) | 1994-11-09 | 1996-05-23 | Kabushikigaisya Sekogiken | Moteur triphase a reluctance uniforme |
IL113259A (en) * | 1995-04-05 | 2001-03-19 | Diversinet Corp | A device and method for a secure interface for secure communication and data transfer |
EP0753816A1 (en) | 1995-07-07 | 1997-01-15 | Thomson Consumer Electronics, Inc. | A method and apparatus for storing sensitive information securely in a relatively insecure storage medium |
WO1997004377A1 (en) | 1995-07-20 | 1997-02-06 | Dallas Semiconductor Corporation | Single chip microprocessor, math co-processor, random number generator, real-time clock and ram having a one-wire interface |
JP2004248330A (ja) | 1996-12-26 | 2004-09-02 | Toshiba Corp | 暗号装置、暗号鍵生成方法、暗号鍵管理方法 |
TW338865B (en) * | 1997-06-03 | 1998-08-21 | Philips Eloctronics N V | Authentication system |
JPH1139437A (ja) | 1997-07-17 | 1999-02-12 | Dainippon Printing Co Ltd | 公開鍵方式の暗号鍵生成方法及びicカード発行装置 |
US7328350B2 (en) | 2001-03-29 | 2008-02-05 | Arcot Systems, Inc. | Method and apparatus for secure cryptographic key generation, certification and use |
DE19837405A1 (de) | 1998-08-18 | 2000-02-24 | Siemens Ag | Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar |
US6393447B1 (en) * | 1998-10-22 | 2002-05-21 | Lucent Technologies Inc. | Method and apparatus for extracting unbiased random bits from a potentially biased source of randomness |
JP3699618B2 (ja) | 1999-09-24 | 2005-09-28 | 株式会社エヌ・ティ・ティ・ドコモ | 暗号鍵取得方法及び暗号鍵交換装置 |
JP2001109375A (ja) | 1999-10-06 | 2001-04-20 | Nec Corp | 疑似乱数生成装置 |
FR2802661B1 (fr) * | 1999-12-21 | 2003-10-31 | Bull Sa | Generateur de nombres aleatoires haut debit |
KR100362170B1 (ko) * | 2000-05-04 | 2002-11-23 | 한국전자통신연구원 | 라운드 키 생성 및 암호처리용 암호화장치 |
US20030158960A1 (en) * | 2000-05-22 | 2003-08-21 | Engberg Stephan J. | System and method for establishing a privacy communication path |
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 |
US7424115B2 (en) * | 2003-01-30 | 2008-09-09 | Nokia Corporation | Generating asymmetric keys in a telecommunications system |
US7472285B2 (en) * | 2003-06-25 | 2008-12-30 | Intel Corporation | Apparatus and method for memory encryption with reduced decryption latency |
US7146392B2 (en) * | 2003-06-30 | 2006-12-05 | International Business Machines Corporation | Random number generator |
US7519989B2 (en) * | 2003-07-17 | 2009-04-14 | Av Thenex Inc. | Token device that generates and displays one-time passwords and that couples to a computer for inputting or receiving data for generating and outputting one-time passwords and other functions |
JP4668795B2 (ja) * | 2003-12-26 | 2011-04-13 | パナソニック株式会社 | 素数算出装置、鍵発行システム及び素数算出方法 |
JP2005202757A (ja) | 2004-01-16 | 2005-07-28 | Mitsubishi Electric Corp | 擬似乱数生成装置及びプログラム |
KR100883442B1 (ko) * | 2004-07-14 | 2009-02-11 | 인텔 코포레이션 | 온라인 서비스를 사용하여 직접 증명 비밀키를 디바이스에전달하는 방법 |
US7489781B2 (en) * | 2004-10-29 | 2009-02-10 | Research In Motion Limited | Secure peer-to-peer messaging invitation architecture |
US8155306B2 (en) | 2004-12-09 | 2012-04-10 | Intel Corporation | Method and apparatus for increasing the speed of cryptographic processing |
US20060136717A1 (en) * | 2004-12-20 | 2006-06-22 | Mark Buer | System and method for authentication via a proximate device |
US7751565B2 (en) | 2005-01-25 | 2010-07-06 | Pak Kay Yuen | Secure encryption system, device and method |
JP4774509B2 (ja) | 2005-05-13 | 2011-09-14 | 国立大学法人お茶の水女子大学 | 擬似乱数発生システム |
US8265265B2 (en) | 2005-08-19 | 2012-09-11 | Nxp B.V. | Circuit arrangement and method for RSA key generation |
US8468361B2 (en) | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US7725719B2 (en) * | 2005-11-08 | 2010-05-25 | International Business Machines Corporation | Method and system for generating ciphertext and message authentication codes utilizing shared hardware |
WO2008104482A2 (en) | 2007-02-27 | 2008-09-04 | Thomson Licensing | A method and a device for generating compressed rsa moduli |
US8171283B2 (en) * | 2007-03-19 | 2012-05-01 | Telcordia Technologies, Inc. | Vehicle segment certificate management using short-lived, unlinked certificate schemes |
US20110002461A1 (en) * | 2007-05-11 | 2011-01-06 | Validity Sensors, Inc. | Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions |
US8290150B2 (en) * | 2007-05-11 | 2012-10-16 | Validity Sensors, Inc. | Method and system for electronically securing an electronic device using physically unclonable functions |
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
DE102011117236A1 (de) * | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Effiziente Primzahlprüfung |
-
2009
- 2009-06-24 US US12/456,909 patent/US8971530B2/en active Active
-
2010
- 2010-04-13 JP JP2010092556A patent/JP5339237B2/ja active Active
- 2010-05-28 EP EP10251007A patent/EP2273718B1/en active Active
- 2010-06-21 CN CN201010220808.2A patent/CN102025487B/zh active Active
- 2010-06-21 CN CN201510781646.2A patent/CN105450391B/zh active Active
- 2010-06-24 KR KR1020100060036A patent/KR101222781B1/ko active IP Right Grant
-
2015
- 2015-03-03 US US14/636,717 patent/US9800409B2/en active Active
-
2016
- 2016-02-24 US US15/052,173 patent/US10341099B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN105450391B (zh) | 2019-06-18 |
US9800409B2 (en) | 2017-10-24 |
JP5339237B2 (ja) | 2013-11-13 |
KR20100138841A (ko) | 2010-12-31 |
US20160197724A1 (en) | 2016-07-07 |
JP2011010277A (ja) | 2011-01-13 |
US8971530B2 (en) | 2015-03-03 |
CN102025487A (zh) | 2011-04-20 |
US10341099B2 (en) | 2019-07-02 |
US20100329455A1 (en) | 2010-12-30 |
EP2273718B1 (en) | 2012-06-27 |
US20150188705A1 (en) | 2015-07-02 |
CN102025487B (zh) | 2015-12-16 |
KR101222781B1 (ko) | 2013-01-16 |
EP2273718A1 (en) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102025487B (zh) | 使用所存储的输入值和所存储的计数值的密码密钥生成 | |
US9847872B2 (en) | Memory integrity | |
US10396978B2 (en) | Crypto devices, storage devices having the same, and encryption and decryption methods thereof | |
CN104298937B (zh) | 用于存储器地址加密的装置和方法 | |
US8359479B2 (en) | High performance arithmetic logic unit (ALU) for cryptographic applications with built-in countermeasures against side channel attacks | |
CN105095097B (zh) | 随机化的存储器访问 | |
US20040136530A1 (en) | Information processing device | |
US11728967B2 (en) | Dynamic masking | |
KR20110058574A (ko) | 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법 | |
CN104969508A (zh) | 用于保护固定长度的数据结构的完整性的方法 | |
TW201918923A (zh) | 安全邏輯系統及操作安全邏輯系統的方法 | |
CN111008407A (zh) | 用于执行虚拟加密操作的加密电路 | |
TW201728120A (zh) | 防止通過功率分析進行竊聽的電子電路及其防止竊聽的方法 | |
EP3342091B1 (en) | Mixed hardware and software instructions for cryptographic functionalities implementation | |
CHEN et al. | A cryptography system and its parameterized VLSI generator for real-time multimedia | |
Esposito et al. | Parallel architecture implementation of a reliable (k, n) image sharing scheme | |
CN106663177A (zh) | 加密代码执行 | |
Tsai et al. | Cryptographic Watermarking & Stream Cipher Technique for Robust FPGA Intellectual Property Protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |