CN112262544A - 生成和处理密码学参数的设备、系统、以及方法 - Google Patents
生成和处理密码学参数的设备、系统、以及方法 Download PDFInfo
- Publication number
- CN112262544A CN112262544A CN201980039265.3A CN201980039265A CN112262544A CN 112262544 A CN112262544 A CN 112262544A CN 201980039265 A CN201980039265 A CN 201980039265A CN 112262544 A CN112262544 A CN 112262544A
- Authority
- CN
- China
- Prior art keywords
- prime
- value
- unit
- generator
- deterministic
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 title abstract description 30
- 238000012360 testing method Methods 0.000 claims abstract description 53
- 238000012986 modification Methods 0.000 claims abstract description 25
- 230000004048 modification Effects 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 40
- 238000003860 storage Methods 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 33
- 238000005549 size reduction Methods 0.000 claims description 22
- 230000001172 regenerating effect Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000008929 regeneration Effects 0.000 description 17
- 238000011069 regeneration method Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 13
- 238000012937 correction Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 230000001413 cellular effect Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001673669 Porcine circovirus 2 Species 0.000 description 1
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229920002239 polyacrylonitrile Polymers 0.000 description 1
- 201000006292 polyarteritis nodosa Diseases 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000009938 salting Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
-
- 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/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/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3033—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7204—Prime number generation or prime number testing
-
- 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
-
- 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/34—Encoding or coding, e.g. Huffman coding or error correction
-
- 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/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
生成和处理密码学参数的设备、系统、以及方法。第一设备和第二设备存储有相同的秘密种子值,利用相同的确定性伪随机数生成函数,并且利用相同的确定性值修改函数。第一设备生成候选值,顺序地修改其值,并执行素性测试,直到找到经确认的质数。第一设备向第二设备指示要执行多少次值修改的迭代,从而无需在第二设备中执行任何素性测试便能达到并因此在其中重新生成相同的已经确认的质数。
Description
技术领域
一些实施例涉及信息安全和密码学领域。
背景技术
全世界每天有数百万人出于各种目的使用电子设备。例如,人们利用膝上型计算机、台式计算机、智能电话、平板计算机、以及其他电子设备来发送和接收电子邮件(e-mail)、浏览互联网、玩游戏、消费音频/视频和数字内容、参与即时消息(IM)和视频会议、执行网银交易和在线购物、以及执行其他各种任务。
一些任务需利用对信息的加密。例如,用户可以利用互联网在电子商务(e-commerce)供应商处进行在线购物,或者可以利用专用移动应用(“app”)来执行银行交易。出于安全性目的,在终端用户设备和远程服务器(例如,供应商、银行等的远程服务器)之间交换的数据可以被加密。
一些密码学系统利用质数进行数据加密、进行解密、和/或进行其他密码学任务。例如,Rivest-Shamir-Adelman(RSA)密码学系统可以利用公共加密密钥和私有(秘密)解密密钥;使得公共加密密钥是基于两个秘密的大质数的乘积;而要进行数据解密,则需要知道这两个秘密的大质数。
附图说明
图1A是根据一些说明性实施例的系统的示意图。
图1B是该系统的更详细的图示,其描绘了该系统的附加组件。
图2A是根据一些说明性实施例的另一系统的示意图。
图2B和图2C是该另一系统的两个设备的更详细的图示。
具体实施方式
申请人已经意识到下述问题:尽管一些密码学算法需要生成大质数,但是一些电子设备缺乏充分且/或快速地执行此任务的处理资源。例如,蜂窝电话或便携式电子设备或“物联网”(IoT)设备可能被生产为具有特定的限制,诸如具有小形状因子、具有重量轻的组件、具有有限的电池功率、具有低功率处理器、具有有限的存储器量等。因此,这样的设备可能无法快速生成(一个或多个)大质数,或者可能能以可能会阻碍或削弱设备性能的生成速率来生成质数。
根据一些实施例,具有有限处理资源的客户端侧设备(或“较弱”设备)需要生成(一个或多个)质数,并且该任务经由具有更充裕的处理资源的远程服务器或远程处理设备(或“较强”设备)部分地执行。例如,客户端设备和远程服务器中的每一者都被预先配置为在本地存储相同的、特定的秘密数据项(例如,种子值);并且还在本地存储相同的、特定的确定性伪随机数生成(D-PRNG)函数,该函数用于生成初始候选值并执行确定性迭代函数以将质数候选值顺序地改变为其他质数候选值。D-PRNG函数是将秘密数据项(或从秘密数据项导出的其他特定值)作为输入接收的函数,并能够生成初始伪随机候选值,并且顺序迭代函数使用计数器来执行多次迭代。迭代函数(IF)的每次迭代都会生成随后进行素性检查的候选数其。但是,并不是经由客户端侧设备内的D-PRNG和迭代函数来执行候选生成的多次迭代,以及随后的在客户端侧设备内进行的对每个候选数的素性检查,而是客户端侧设备将部分质数生成过程委派给远程服务器。
例如,客户端侧设备向远程服务器发送指示客户端侧设备需要利用大质数的初始消息。远程服务器接收到该消息;并然后基于秘密数据项来执行D-PRNG函数的多次迭代,并且检查候选输出数的素性,直到可以确认候选输出数的素性为止。例如,在17次这样的迭代之后,远程服务器处的D-PRNG函数会生成该远程服务器确认是质数的候选值。然后,在一些实施方式中,远程服务器向客户端侧设备发送例如下述消息:其指示:“请您运行D-PRNG函数17次迭代,但无需对任何候选者执行任何素性测试;您的D-PRNG函数的第17次迭代产生的候选值为经确认的质数”;从而允许客户端侧设备跳过所有17个候选者的所有素性检查。
一些实施方式可以结合各种密码学单元或系统、加密单元、解密单元、公共密钥密码系学统、以及利用大质数的各种字段和组操作来使用;特别是结合利用大质数来生成密码学资产(诸如秘密密钥或解密密钥或私钥)的单元和算法,诸如Rivest-Shamir-Adelman(RSA)密码学系统、有限域密码学(FFC)系统、数字签名算法(DSA)系统等来使用。
出于说明的目的,本文中的讨论的一些部分可能涉及为“客户端”设备或“客户端侧设备”或“终端用户设备”执行质数生成任务的“服务器”或“远程服务器”或“服务器侧”设备;或类似地,出于说明的目的,本文中的讨论的一些部分可能涉及为“弱”或“较弱”设备或“精简计算资源设备”执行质数生成任务的“强”或“较强”设备或“丰富计算资源设备”;然而,一些实施例可以与任何两种其他类型的设备结合使用,或者与任何合适的系统或设备对(其中请求或要求第一设备(任何适当类型的设备)以促进在第二设备(任何合适类型的设备)上(或在其中,或由其)进行(一个或多个)质数的生成)结合使用;例如包括:设备集合或设备网络,在其中更可用的设备或当前可用的设备被指派(例如,临时地、或专设地、或一次性地、或重复地、或经常地)以辅助另一设备进行(一个或多个)质数的生成任务。
申请人已经意识到,一些客户端侧设备(特别是IoT设备或传感器)以及形状因子有限的设备或便携式设备可以配备有处理能力精简的处理器,和/或可以配备有有限的存储器量,特别是安全存储器(例如,用于保存大密码学密钥);并因此可能不适用于快速地、在本地生成质数和/或密码学密钥。
申请人还已经意识到,在诸如RSA密码系统之类的一些密码系统中,绝大部分的处理资源和/或处理时间可能会被对质数候选者进行的素性测试所消耗。例如,申请人已经意识到,由于需对多个质数候选者进行多次素性检查迭代,入门级处理器或低成本处理器可能会花费几分钟甚至几个小时来进行生成单个大质数的任务,特别是在需要生成大型密码学密钥时(例如,2,048位或4,096位或8,192位的密码学密钥)。申请人还已经意识到,将这样的长密码学密钥安全地存储在安全存储器中可能需要较大的存储空间(例如,单个密码学密钥需要4-12kb的安全存储装置)。
申请人已经意识到,常规设备可能会以可能消耗时间和/或消耗处理资源的方式执行(一个或多个)质数的生成。例如,常规设备生成(例如,随机地或伪随机地)秘密种子值,或者从另一源接收或获得这样的秘密种子值。该秘密种子值随后被用作确定性伪随机数生成(PRNG)函数的种子值。确定性PRNG接收该种子值,并可能还接收附件数据;并且随后执行确定性密码学算法,该算法生成伪随机数来作为“质数候选者”。然后,该设备对每个当前质数候选者执行素性测试,直到某一质数候选者被确认为质数为止。确定性PRNG执行多次迭代以生成质数候选,只要这样的候选者仍被需要并且直到素性测试确认至少一个质数候选者为质数为止。
一些实施例包括用于生成、传递、压缩、存储、处理、和/或重新生成质数以及与(一个或多个)质数相关(或基于这些质数)的密码学资产或密码学参数的方法、系统、以及设备。例如,一种方法包括:通过使用传递给确定性PRNG函数的秘密种子以及可选的附加数据,来针对所需质数中的每一者确定性地生成初始质数候选者。所生成的质数候选者被传递给一个或多个素性测试函数,例如执行素性测试的确定性函数。如果没有通过素性测试,则(一个或多个)确定性函数根据确定性算法对已被测试质数候选者执行顺序的改变。对于被确认为质数的每个质数候选者,系统保存确定性PRNG函数所使用的(一个或多个)相关计数器的最终值,从而允许存储和/或发送质数的基于(一个或多个)这样的计数器的(一个或多个)相关值的压缩表示(例如,“确定性PRNG的第17次迭代是经确认的质数”,或“确定性PRNG生成的第17个候选者是经确认的质数”)。
确定性PRNG的(一个或多个)这样的计数器的(一个或多个)值、以及秘密种子值和可选的附加数据(例如,密钥索引)可以被用作经确认的质数的“压缩形式”或“更短版本”,并因此也可以被用于从(一个或多个)这样的经确认的质数导出的密码学密钥或密码学资产或密码学参数,它们随后可以被有效地存储或保存在(例如安全的)小存储器单元中,可以被快速地传送或发送,和/或可以根据需要使用相同的确定性PRNG函数来通过对质数候选者重复相同的迭代直到达到给定的计数器值,而被快速重新生成,而无需重新执行任何素性测试,从而通过功率降低或资源有限的设备实现已经确认的质数的重新生成。
在一些实施方式中,在对每个质数候选者进行素性测试的较“强”设备(例如,具有较快处理器和充裕的存储器的服务器计算机)上执行新质数组以及由此其对应的压缩形式的密码学密钥的第一生成。将指示确定性PRNG的哪个计数器值或哪次迭代将产生经确认的质数的压缩数据随后发送或传送到“弱”或“较弱”设备(例如,便携式电子设备、IoT设备),该设备执行该质数的快速重新生成,但无需执行任何素性测试。
申请人已经意识到,基于以下各项,即使是具有有限处理资源的较“弱”设备(例如,便携式设备、IoT设备)也能够快速且高效地生成大的、已经确认的质数:(I)预定义的确定性PRNG函数,其对于“弱”设备以及远程服务器是已知的;和(II)秘密种子值,其仅对于“弱”设备和该远程服务器是已知的;以及(III)计数器值或迭代值,其向“弱”设备准确指示直到生成经确认的质数为止将要执行(基于秘密种子值)多少次确定性PRNG函数的迭代。因此,“较强”设备可以执行(一个或多个)质数的初始生成,包括多个候选数的生成并且包括针对每个这样的候选者进行的素性测试;并且然后,“较强”设备可以向“较弱”设备指示确定性PRNG的哪次迭代会产生已经确认的质数,从而使“较弱”设备在其侧上快速重新生成该已经确认的质数,并将该已经确认的质数用于进行密码学操作(例如,用于进行密码学密钥的导出或生成)。因此,当运行确定性PRNG的多次迭代时,“较强”设备不仅保存并存储经确认的质数,而且还保存并存储产生(一个或多个)经确认的质数时的(一个或多个)计数器值或(一个或多个)迭代值;因为这些计数器值或迭代值之后可以发送、传送或以其他方式传输到“较弱”设备,并且可以在其中快速、高效地重新生成这样的已经确认的质数;例如,无需在“较弱”设备上执行任何素性测试。
在一些实施例中,“压缩数据”(例如,计数器值或迭代值)从较强设备到较弱设备的传送或发送或传输不一定要通过(或经由)受保护的信道或安全信道;例如,在下述情况下:公共种子值被预存储或预安装(例如,以安全的方式)在弱设备和强设备二者上,以作为仅这两个设备知道的“共享秘密”(例如,在弱设备的序列化过程中被预安装);或在下述情况下:公共种子值被以安全的方式建立,以确保仅强设备和弱设备知道该种子值(例如,使用Diffie-Hellman(DH)密钥交换)。
参照图1A,该图是根据一些说明性实施例的系统100的示意图。系统100可以包括第一设备101(也可以被称为“辅助设备”),其可以辅助第二设备102(也可以被称为“被辅助设备”)进行生成(一个或多个)质数的任务。例如,第二设备102可以是处理资源有限的“弱”或“较弱”设备;例如IoT设备或传感器;便携式设备;小形状因子设备。相反,第一设备101可以是具有充裕或足够或充足或未减少的处理资源的“强”或“较强”设备,例如本地服务器计算机、远程服务器计算机、“云计算”服务器或设备。系统100的组件可以操作或协同操作以实现质数的高效生成、重新生成、处理、存储(或保存)、和/或传送(或发送或传输);例如,实现单个质数(表示为P)或多个质数的高效生成、重新生成、处理、存储(或保存)和/或传送(或发送或传输)。
第一设备101和第二设备102可以经由一个或多个通信链路和/或通信信道和/或通信网络进行通信,或者可以交换消息或信号,这些信道不一定是(或包括)安全信道;例如,经由有线链路、无线通信链路、蜂窝通信链路、蜂窝2G或3G或4G或4G-LTE或5G通信链路、Wi-Fi链路、IEEE 802.11链路、Wi-Max链路、IEEE 802.16链路、蓝牙链路、Zigbee链路、局域网(LAN)或无线LAN(W-LAN)等。
例如,第一设备101接收或生成或预存储有秘密种子(表示为S)以及可选的非秘密附加数据(表示为A)。在说明性实施方式中,秘密种子(S)可以具有256位;并且附加数据(A)可以是秘密种子S的哈希值(例如,将秘密种子S作为输入馈送的哈希函数的1,792位的输出)。在一些实施方式中,附加数据(A)不必是秘密的;并且可以存储在不一定是安全存储器的存储器单元或存储单元中;并且可以通过不一定需要是安全信道的通信信道进行传输或发送。
第二设备102预存储有相同的秘密种子(S),或者经由安全信道从第一设备101(或从受信任的第三方)接收相同的秘密种子(S)。第二设备102还预存储有相同的附加数据(A),或者从第一设备101或从受信任的第三方接收(例如,经由安全信道,或者甚至经由非安全信道)附加数据(A)。
因此,相同的秘密种子(S)被本地存储在第一设备101中并且被本地存储在第二设备102中;并且,相同的非秘密附加数据(A)被本地存储在第一设备101中并且被本地存储在第二设备102中。
在一些实施例中,可选地,确定性附加数据生成器194A可以被包括在第一设备101中,并且可以经由确定性算法根据秘密种子(S)在本地生成附加数据(A);例如,通过哈希算法或其他确定性转换算法。类似地,确定性附加数据生成器194B可以被包括在第二设备101中,并且可以经由第一设备101的确定性附加数据生成器194A所采用的相同确定性算法根据秘密种子(S)在本地生成附加数据(A)。因此,这两个设备101-102都可以预存储相同的秘密值(S);并且它们中的每一者都可以独立生成并在本地存储相同的附加数据(A)。
在第一设备中,确定性PRNG 111生成候选值(或“质数候选者”或“质数候选值”或“PCV”)。由于这是初始候选值,因此在生成第一质数候选值PCV之前或紧接在其生成之后,迭代计数器C1被重置或设置为零(例如,经由计数器重置/提前模块117)。然后,在第一设备101内通过合适的(例如,确定性)素性测试单元112测试第一质数候选值PCV的素性。可以通过任何合适的(一种或多种)方法来执行素性测试,以确定输入数是否为质数;例如,通过试除算法(例如,检查2或从3到平方根(P)的任何奇数是否能整除质数候选值PCV而不留下余数)、或通过椭圆曲线素性测试等。
如果质数候选值PCV的素性测试结果为“假”(或“未通过”或“非真”),表明质数候选值PCV不是质数,则:确定性顺序改变模块113确定性地且顺序地将质数候选值PCV的值修改为新的质数候选值,表示为PCV′;并且迭代计数器C1的值增加1(例如,通过计数器重置/提前模块117),以指示刚刚执行了第一次顺序改变迭代。确定性顺序改变模块113可以利用以确定性(非随机)方式将先前的质数候选值PCV改变为新的、不同的质数候选者PCV′的任何合适的确定性函数;例如,通过将值“2”(十进制)加到先前的质数候选者PCV,或通过执行其他确定性操作(例如,ANSI X9.31,B4节“质数的生成(Generation of Primes)”中描述的操作,步骤2、3、4)。新的质数候选者PCV′随后被馈送到素性测试单元112,并且迭代地重复该过程(例如,以确定性的方式顺序地改变质数候选值PCV′的值,同时相应地在每次迭代中更新迭代计数器C1),直到第一质数候选值产生素性测试结果“真”,该结果指示经确认的质数。
一旦质数候选值(诸如在初始PCV的三次连续改变之后生成的质数候选值PCV″′)的素性测试结果为“真”,则该特定质数候选值就是经确认的初始数,表示为CPN。可选地,素性测试单元112输出全长的经确认的质数CPN或将其本地存储在第一设备内。压缩质数存储单元114将经确认的质数CPN的“压缩版本”或“短格式”或“大小减小的版本”本地存储在第一设备101内。在一些实施方式中,经确认的质数CPN的压缩版本可以是三项数据组,包括:(i)秘密种子值S、(ii)附加数据A、以及(iii)素性测试结果为肯定时的迭代计数器C1的值。在其他实施方式中,经确认的质数CPN的压缩版本可以仅仅是单个数(例如,具有为零或自然数的值),其仅指示素性测试结果为肯定时的迭代计数器C1的值(因为秘密种子值S和附加数据A已经被预存储在第一设备101中的其他地方并且是固定值,并且对于第二设备102是已知的)。
经确认的质数CPN的压缩版本随后可以经由一个或多个有线和/或无线通信链路,和/或经由受保护的通信信道,或甚至经由不受保护的通信信道从第一设备101被传送、传输或发送到(一个或多个)其他设备,特别是第二设备102。例如,第一设备101可以将指示迭代计数器C1的最终值的消息或信号发送或传送或传输到第二设备102。
在接收到经确认的质数的压缩版本时,第二设备102可以进行操作以在其侧上本地重新生成经确认的质数CPN的完整版本或全长非压缩版本。
如上所述,第二设备102也将与安全地存储在第一设备101中的相同的秘密种子值S安全地存储在其中;并且,第二设备102还将存储在第一设备101中的相同的附加数据A存储(安全地或非安全地)在其中。此外,第二设备具有与第一设备的确定性PRNG 111相同的确定性PRNG 121;即,第二设备102的确定性PRNG 121包括或具有或利用第一设备101的确定性PRNG 111所使用的相同确定性PRNG函数。另外,第二设备102包括确定性顺序改变模块123,该模块具有或包括或利用第一设备101的确定性顺序改变模块113所使用的相同确定性顺序改变函数。
与第一设备101相反,素性测试单元不存在于第二设备102中,或者不被包括在第二设备102中,或者被从第二设备102排除;或者,在一些实施方式中,素性测试单元可以被包括在第二设备102中(例如,出于大规模生产方面的考量或限制),但是被去激活或被关闭或被旁路或根本不能被第二设备102利用。
第二设备102从第一设备101接收经确认的质数CPN的压缩版本;例如,通过仅在确认质数时在第一设备101处达到迭代计数器C1的最终值时才从第一设备101接收。
第二设备102的确定性PRNG 121继续基于秘密种子值S和附加数据A在本地生成初始质数候选值PCV。由于这是初始候选者,第二设备102中的本地迭代计数器C2被重置或设置(例如,经由计数器重置/提前模块127)为零。不在第二设备102内对初始质数候选值CPN进行素性测试。而是,(例如,经由计数器值比较器128)将第二设备的迭代计数器C2的值与从第一设备接收的迭代计数器C1的值进行比较(或对照检查);从而检查第二设备102的确定性PRNG 121的最近执行的操作是否具有与在第一设备101中产生经确认的质数(CPN)的迭代数相同的迭代数。
如果检查结果是肯定的,即第二设备102的迭代计数器C2的当前值等于从第一设备101接收的作为其最终迭代计数器C1的C1的值,则:第二设备102的确定性PRNG 121的输出进一步用作经确认的质数CPN(例如,用于密码学目的),和/或以全长/非压缩格式(例如,存储这样的经确认的质数CPN的所有位或所有数位)本地存储在第二设备内(例如,安全地存储在安全存储器中);并且可选地,迭代计数器C2的当前值也被本地存储在第二设备102内,以便能够根据迭代计数器C2的最终值进一步重新生成该特定的经确认的质数CPN。
相反,如果检查结果是否定的,即第二设备102的迭代计数器C2的当前值不等于从第一设备101接收的作为其最终迭代计数器C1的C1的值,则:质数候选值PCV被丢弃,因为它不是经确认的质数;并且第二设备102的迭代计数器C2的值增加1(例如,通过计数器重置/提前模块127);并且第二设备102的确定性顺序改变模块123进行操作以便以确定性(非随机)的方式确定性地且顺序地将最近的质数候选值PCV改变为新的、不同的质数候选值PCV′。随后并不对新的质数候选者PCV′进行素性测试;而是将第二设备102的迭代计数器C2的值与从第一设备101接收的迭代计数器C1的值进行比较;并且在第二设备102中迭代地重复该过程,直到迭代计数器C2的值达到(即,等于)从第一设备101接收到的迭代计数器C1的值,从而向第二设备102指示最近的顺序修改后的质数候选值PCV(例如,如果进行了三次顺序改变,则为PCV″′)确实是经确认的质数CPN,然后第二设备可以将其用于进行密码学任务。
由于第一设备101和第二设备102都利用相同的种子值S、相同的附加数据A、相同的确定性PRNG函数(111、121)、以及相同的确定性顺序改变函数(113、123),并且由于第二设备102执行了与在第一设备101中找到经确认的质数时该第一设备所指示的迭代次数(C1)相同的迭代次数(C2),因此系统100使得第二设备102能够在其中重新生成该相同的已经确认的质数,而无需在第二设备102内执行任何素性测试。
可选地,压缩质数存储单元124将经确认的质数CPN的“压缩版本”或“短格式”或“大小减小的版本”本地存储在第二设备102内。在一些实施方式中,经确认的质数CPN的压缩版本可以是三项数据组,包括:(i)秘密种子值S、(ii)附加数据A、以及(iii)从第一设备101接收的迭代计数器C1的值。在其他实施方式中,经确认的质数CPN的压缩版本可以仅仅是单个数字(例如,具有为零或自然数的值),其仅指示从第一设备101接收的迭代计数器C1的值;因为秘密种子值S和附加数据A已经被预存储在第二设备102中的其他地方,并且是固定值。
为了简化讨论,图1A描绘了系统100的说明性实施方式,其重点在于参与质数的生成或重新生成的特定组件。现在参照图1B,该图是系统100的更详细的图示,描绘了可以被包括在该系统中的附加组件。
例如,第一设备101可以包括:处理单元131(例如,处理器、处理器核心、集成电路(IC)、专用集成电路(ASIC)、中央处理单元(CPU)、图形处理单元(GPU)、控制器等),其能够执行代码和/或指令;存储器单元132(例如,随机存取存储器(RAM)、闪存存储器),其用以存储数据,特别是用于进行短期或临时存储;存储单元133(例如,硬盘驱动器(HDD)、固态驱动器(SDD)、基于闪存的存储装置),用以存储数据,特别是用于进行长期存储;安全存储器134,其可以是专用存储器单元或存储器单元中不受攻击和/或不受篡改和/或不受未授权用户或模块或应用侦听的专用部分或区域;可选的安全执行环境(SEE)135,可以在其中执行一个或多个处理操作;有线或无线收发器136,其能够与第二设备102通信(例如,能够从第二设备102接收请求生成质数的消息或信号;能够向第二设备102发送或传输包括经确认的质数的压缩版本或大小减小的表示的消息);和/或可选地可以是计算机或计算机服务器的一部分的其他合适的组件或模块或单元(例如键盘、鼠标、显示单元、电源、操作系统(OS)、驱动器、应用等)。可选地,第一设备101中参与(一个或多个)质数的生成的一些或全部组件可以被实现为质数生成器单元130(或其一部分)。
第二设备102可以例如包括:能够执行数据加密的加密单元141;能够对数据进行解密的解密单元142;能够执行其他密码学操作或安全性相关的操作(例如,哈希、加盐、认证、生成或应用或验证数字签名等)的密码学单元143。可选地,第二设备102中参与(一个或多个)质数的重新生成和/或参与以压缩形式存储这些质数的一些或全部组件可以被实现为质数重新生成器/存储单元140(或其一部分)。
可选地,第二设备102可以包括:处理单元171(例如,处理器、处理器核心、集成电路(IC)、专用集成电路(ASIC)、中央处理单元(CPU)、图形处理单元(GPU)、控制器等),其能够执行代码和/或指令;存储器单元172(例如,随机存取存储器(RAM)、闪存存储器),其用以存储数据,特别是用于进行短期或临时存储;存储单元173(例如,硬盘驱动器(HDD)、固态驱动器(SDD)、基于闪存的存储装置),其用以存储数据,特别是用于进行长期存储;安全存储器174,其可以是专用存储器单元或存储器单元中的不受攻击和/或不受篡改和/或不受未授权用户或模块或应用侦听的专用部分或区域;可选的安全执行环境(SEE)175,可以在其中执行一个或多个处理操作;有线或无线收发器176,其能够与第一设备101通信(例如,能够向第一设备101发送请求生成质数的消息或信号;能够从第一设备101接收包括或反映经确认的质数的压缩版本或大小减小的表示的消息);和/或可选地可以是电子设备的一部分的其他合适的组件或模块或单元(例如键盘、鼠标、显示单元、屏幕、触屏、加速度计、指南针单元、陀螺仪、一个或多个传感器、全球定位系统(GPS)单元、电池或其他电源、操作系统(OS)、驱动器、应用、“app”或“移动app”等)。
加密单元141、解密单元142、和/或密码学单元143中的一者或多者可能偶尔或周期性地需要使用大质数,例如作为密码学操作的一部分。第二设备102的质数请求器144可以经由收发器145诸如无线地(或通过有线链路)向第一设备102发送消息或信号,以指示从第二设备102接收压缩格式的新质数的请求。随后,第二设备102的收发器176(或其他接收器单元)可以从第一设备101接收回包括或指示已经确认的质数的压缩格式的消息,该质数的素性已经由第一设备101进行了测试并得到了确认;并且所接收的压缩格式使得第二设备102的质数重新生成器/存储单元140能够在本地重新生成该相同的已经确认的质数,而无需在本地测试或重新测试其素性。
系统100可以可选地包括一个或多个其他合适的组件、单元和/或模块。例如,在一些实施方式中,第一设备101和第二设备102可以包括秘密种子生成/交换单元(151、152),使得这两个设备101-102能够生成和/或交换(以安全的方式)秘密种子值;例如,使用Diffie-Hellman(DH)密钥交换或使用其他密钥建立/密钥交换算法。
可选地,第一设备101和第二设备102可以包括附加数据生成/交换单元(153、154),使得这两个设备101-102能够生成和/或交换(例如,以安全的方式)被确定性PRNG(111、121)用作输入(与秘密种子值S一起)的相同附加数据(A)。例如,在一些实施方式中,附加数据(A)可以是(或可以包括)秘密种子值的哈希值,或者是秘密种子值的至少一部分的哈希值;其中,第一设备101和第二设备102都利用对相同种子值或种子值的相同部分进行操作的相同哈希函数,并且这可以经由它们的确定性附加数据生成器(194A、194B)来实现。在其他实施方式中,附加数据(A)可以由确定性地使大小较小的种子值膨胀为大小较大的附加数据的函数来生成;或者,可以由第一设备101生成,然后可以从第一设备101被安全地发送到第二设备102;或者,可以由第二设备102生成,然后可以从第二设备102被安全地发送到第一设备101。
在一些实施方式中,可选地,系统100可以利用已经确认的质数的大小减小表示的其他合适的格式或版本,这使得能够快速重新生成已经确认的质数,而不需要对这些候选质数执行或重新执行素性测试;并且这样的其他格式不一定需要包括迭代计数器(C1)的值。例如,并不是发送与顺序修改质数候选值PCV的最终迭代相对应的迭代计数器(C1)的最终值,而是第一设备101可以采用全长的经确认的质数CPN;例如,经由仅提取全长的经确认的质数的8或12或16或24或32或64个最低有效位/最右位(或数位)的K位提取器161,可以仅从该质数中提取K个最右位(或数位)或仅提取K个最低有效位(或数位)。所提取的K位可以从第一设备101发送到第二设备102,而不是发送迭代计数器C1的值。然后,第二设备102以迭代方式生成质数候选值;但是,第二设备102并不对生成的迭代进行计数并比较计数器值直到达到C1,而是将每个本地生成的质数候选者的K个最右/最低有效位与从第一设备101接收到的并且属于已经确认的质数的K位项进行比较。如果当前生成的质数候选者的K个最右/最低有效位与从第一设备101接收到的K位项相同,则第二设备102确定当前质数候选者确实是已经确认的质数,并将其进一步用于密码学任务。相反,如果当前生成的质数候选者的K个最右/最低有效位与从第一设备101接收到的K位项不同,则第二设备102确定当前质数候选者不是经确定的质数,并且第二设备102继续执行本地生成质数候选者并检查其K个最右/最低有效位的(一次或多次)附加迭代,直到找到匹配为止。比较操作可以例如由第二设备中的K位比较器单元162执行。
在一些实施方式中,并不是以其“原样”格式来发送全长的经确认的质数的最右K位或最低有效K位,而是可以可选地在第一设备101处例如经由K位转换单元163来准备这些K位的转换版本,该K位转换单元取出这些K位并将其从秘密种子值S(或附加数据A)中减去(或者,与它们进行异或XOR运算),这样的操作(减法;或XOR;或其他转换操作)的结果是从第一设备101发送到第二设备102的转换版本。然后,第二设备102接收全长的经确认的质数的最右/最低有效K位的转换版本,并经由K位逆转换单元164在本地执行逆转换操作(例如,与种子值进行XOR运算;或将转换版本添加到种子值),该K位逆转换单元164因此产生全长的经确认的质数的最右/最低有效K位的实际值;然后,第二设备102将其与每个本地生成的(且未经测试的)质数候选者的最右/最低有效K位进行比较,以确定当前质数候选者是否确实是已经确认的质数。K本身的值(即,要发送多少个最右位)可以基于特定的实现考量进行预配置或可以被动态地确定,可选地,将估计特定搜索空间内的质数频率的函数纳入考量。
在一些实施方式中,可以通过利用可以被称为“校正因子”或“校正系数”或“校正参数”的一个或多个参数来以压缩或大小减小的形式表示经确认的质数CPN和/或将经确认的质数CPN传递到第二设备102。例如,并不将迭代计数器C1的最终值(或者,这样的多个迭代计数器的最终值组,诸如本文进一步讨论的迭代计数器C1至C6的最终值)从第一设备101发送到第二设备102,而是可以在第一设备101处由校正参数生成器181生成一个或多个校正参数,并且可以将其从第一设备发送至第二设备102,在第二设备中这样的校正参数可以由基于校正的CPN重新生成器182使用以重新生成经确认的质数CPN。例如,第一设备101的确定性PRNG 111可以利用秘密种子值(S)和附加数据(A)来生成大奇数(非偶数)伪随机数,表示为PRN-0;该数作为确定性PRNG 111的初始输出被本地存储在PRNG 111中,并被用作初始质数候选值PVC。确定性顺序改变模块113确定性地并且顺序地修改PVC(例如,通过将十进制的“2”加到最近的PVC),并且素性测试单元112检查每个这样的质数候选值PVC的素性,直到找到经确认的质数CPN为止。然后,第一设备101的压缩版本生成器183可以在经确认的质数CPN和初始质数候选者PRN-0之间执行XOR运算,并且XOR结果被本地存储为可以立即将初始质数候选者PRN-0转换为经确认的质数CPN的校正参数,从而无需对质数候选值PVC进行任何顺序的或迭代的修改。第一设备101随后可以仅将该校正参数(并且不需要发送任何(一个或多个)迭代计数器的任何(一个或多个)值)发送或传送或传输给第二设备102;并且第二设备102可以利用其基于校正的CPN重新生成器182直接并立即重新生成经确认的质数CPN;例如,通过利用其确定性PRNG 122来生成初始质数候选值PRN-0,然后用从第一设备101接收到的校正参数来执行与PRN-0的XOR操作,从而直接重新生成全长的经确认的质数CPN。这样的实施方式可以特别地与相对较小的质数结合使用,和/或与根据ANSIX9.31标准进行操作的系统结合使用,和/或与特定实体可以实现的专有或非标准的质数生成实施方式结合使用。
可以使用其他合适的方法或格式来创建全长的经确认的质数的压缩版本,或将其解压缩回其全长格式,或者以其他方式重新生成经确认的质数但无需进行素性测试。
一些实施例可以减少对用于存储质数的存储器的使用,和/或节省用于存储质数的安全存储器量(安全存储器可能是稀疏的或有限的)。例如,可以使用256位的种子值来生成大小为4,096位的RSA密码学密钥,这之后需要安全存储器的4,096位进行存储。相比之下,一些实施方式可以通过利用例如六个计数器来重新生成大质数,每个计数器具有例如16位的数据,这通常足以对迭代进行计数,直到达到经确认的质数为止;从而总共利用6*16=96位来表示六个这样的计数器的值;或只需要总共352位(即表示6个计数器的96位,再加上秘密种子的256位)来以压缩格式存储RSA密码学密钥。这可以将安全存储器的使用量明显节省十一倍,从而(在一些说明性实施方式中)针对单个RSA密钥的安全存储,将安全存储器的使用量从4,096位减少到352位。实际上,一些计算机化系统中的存储空间可能很充裕;但是,安全存储器可能是极其有限的,尤其是在小形状因子设备、便携式设备、移动设备、电池供电的设备、物联网(IoT)设备中。
类似地,这样的实施方式可以明显节省(或减少)用于发送、接收、传送和/或传输密码学参数和/或质数的带宽;因为,例如在一些实施方式中,并不是针对每个RSA密钥传输4,096位,而是可以针对每个RSA密钥仅传输352位。带宽的减少还可以转换为发送时间/接收时间的减少、以及发送/接收所消耗的能量资源的减少,或者在这样的发送/接收期间可能发生的错误的减少。
在一些实施方式中,可能不一定需要安全通信信道来实现经确认的质数CPN的压缩版本从第一设备101第二设备102的安全的传送。而是,这两个设备101-102可能已经将相同的秘密种子S作为共享秘密进行了预存储;或者,在两个设备上这样的秘密种子的建立可以使用Diffie-Hellman(DH)密钥交换来进行(例如,较强设备,即第一设备101,使用真实随机数生成器(TRNG)或经由其他方式生成秘密种子)。即使被攻击者拦截,迭代计数器(C1)的值的传输也不足以生成经确认的质数本身;即使攻击者也知道设备101或102使用特定确定性PRNG;因为秘密种子值是成功重新生成经确认的质数所必需的。
在一些实施例中,安全或受保护的通信信道被用于第一设备101和第二设备102之间的任何(一个或多个)通信,或至少一些这样的通信;例如,为了防止攻击者或对手拦截(一个或多个)消息并用错误的数据进行替换,从而导致重新生成的数不是经确认的质数。例如,如果第一设备101不安全地向第二设备102将消息“17”作为迭代计数器C1的最终值进行发送,则攻击者(例如中间人或其他对手)可能拦截消息并将“17”的值替换为“13”,从而使第二设备102在仅13次迭代而不是17次迭代之后生成一个数,第二设备102会将这个数视为经确认的质数,即使该数并不是质数。因此,第一设备101可以利用消息加密/解密单元187,并且第二设备102可以利用消息加密/解密单元188,以便例如通过利用可以从秘密种子值S导出的(一个或多个)密码学密钥来加密和解密在它们之间交换的消息。其他方法可以被利用以确保这两个设备101-102之间的通信不会被拦截或篡改。
根据一些实施方式,第二设备102处的质数的重新生成或解压缩可以在较短的时间段内快速和/或高效地执行,同时消耗较少量的处理资源和/或存储器资源;因为这种重新生成或解压缩不需要进行任何素性测试;或者,在一些实施方式中,这样的重新生成不需要进行任何耗电的大数计算或算术;因此,即使在“弱”设备(例如IoT传感器或IoT设备、或入门级/特征精简的电子设备)上,也可以快速执行这样的重新生成。这进而可能有助于降低生产这样的IoT设备和/或这样的电子设备的可能成本,因为这可能不再需要大量的处理资源进行大质数的生成。类似地,由于不需要进行大量计算或算术,即使在特征精简的设备上,大质数的重新生成或解压缩也可以较快速地被执行。
参照图2A,该图是根据一些说明性实施例的另一系统200的示意图。系统200可以是系统100的特定实现,其被特别地修改和配置为启用RSA密码系统(例如,为了简化本文的讨论,非CRT密码系统,该系统不利用中国余数定理(CRT))。
例如,第一设备201可以是计算机或服务器计算机,并且可以执行包括素性测试在内的质数的全生成;而第二设备202可以是“较弱”电子设备(例如,便携式设备、IoT传感器、IoT设备),其可以仅基于第二设备202从第一设备101接收到的已经确认的质数的压缩版本来重新生成该已经确认的质数。
设备201-202中的每一者将相同的秘密种子(表示为S),可选地还有相同的附加数据(表示为A)存储在其中。此外,设备201-202中的每一者都包括并利用相同的确定性PRNG单元(分别为211-212)来作为质数生成器单元的一部分。
第一设备201利用其确定性PRNG单元211和/或其质数生成器单元231(例如,其包括检查质数候选值的素性的素性测试单元215)的其他组件来执行对大质数的搜索。质数生成器单元231找到在第一设备201内测试了素性并经过了确认的质数。在如此找到经确认的质数CPN(表示为295)时,第一设备201的大小减小表示生成器291生成经确认的质数CPN的大小减小表示293(或压缩版本)。例如,大小减小表示可以包括第一设备201在其确定性PRNG单元的迭代操作中使用的六个迭代计数器的最终值。包括这六个计数器值的大小减小表示293可以从第一设备201被发送或传送或传输到第二设备202,而不是传输全长的经确认的质数CPN。
替代地,在一些实施方式中,CPN的大小减小表示293可以是或可以指示校正参数,这使得第二设备202能够通过利用确定性PRNG212一次重建或重新生成全长的CPN,然后将其输出与从第一设备201接收到的校正参数执行XOR运算。
第二设备202接收例如包括六个计数器值的大小减小表示293,并将其存储在本地。质数重新生成器单元232的确定性PRNG单元212按由大小减小表示293中指示的那些接收值所指示的迭代次数来迭代地操作。当达到所涉及的六个迭代计数器中的每一个迭代计数器的迭代次数时,质数重新生成器单元232的输出是已经由第一设备201找到的相同经确认的质数CPN,而无需在第二设备202中不执行任何素性测试,第二设备202然后可以利用其来进行密码学任务。
在一些实施方式中,例如,系统200可以与基于非秘密公共指数E(例如,可能较短)和秘密私有指数D的公共密钥或私有密钥、以及非秘密模数N(例如,具有较大的大小,例如在2,048位至8,096位的范围内)结合使用。该模数可以由两个(或多个)大的秘密质数(表示为P和Q)构成,使得N=P*Q。反过来,可以根据预定义的安全性考量来构造每个大质数(P和Q);例如,使得(P-1)=P1*k1,并且(P+1)=P2*k2;其中P1和P2中的每一者也是质数,并且具有较大的大小(例如,在100位至300位的范围内);其中,K1和K2均为整数;其中,质数Q是基于类似的预定义安全性考量被类似地构造的。可以将公共指数E选择为较小的奇数(例如:3、或7、或65,537)。私有指数D由确定性模逆函数(表示为F)计算得出,该函数使用E和P和Q作为其参数;使得D=F(E,P,Q)。
RSA密码系统的安全存储装置或密码学存储装置的量可取决于所利用的秘密质数的大小。因此,如果利用大质数,则密码学密钥的生成可能需要更长的时间,并且这种密码学密钥的存储可能需要安全存储器或安全存储装置中(例如,可以是用于安全启动机制或用于其他敏感任务的有限非易失性硬编码存储器)的更多空间。
参照图2B,该图是图2A的第一设备201的更详细的图示。第一设备201不是直接生成大质数P,而是基于两个辅助质数(P1和P2)来生成大质数P。
例如,第一设备201通过利用其确定性PRNG单元212A为三个质数(即,为P1、P2和P)中的每个质数生成初始质数候选值,该确定性PRNG单元212A由秘密种子S并且可选地用附加数据A(例如,设备ID、密钥ID、或其他唯一数)播种。由第一设备201的素性测试单元215对分别表示为PCV1、PCV2和PCV的每个质数候选值进行素性测试。如果针对所有三个质数候选者(P1、P2和P)的所有素性测试均是肯定的,则质数生成算法停止,因为找到了经确认的质数;否则,将每个适当的质数候选值(计数器C1、C2和C3)的计数器递增1,然后顺序地计算(由第一设备201的确定性顺序改变模块218)下一个质数候选值,并且随后进行素性测试。针对第一组三个质数中的每个质数(P1、P2和P)迭代地执行该过程。
还通过下述过程在第一设备201中执行相同的过程来寻找第二组三个质数(表示为Q1、Q2和Q):利用生成质数候选值(表示为QVC1、QVC2和QVC)的确定性PRNG单元212B,并对经由三个计数器(分别表示为C4、C5和C6)计数的相应候选值进行迭代的、顺序的改变,并进行所描述的素性测试。
在生成经确认的质数P时,第一设备201存储相关的迭代计数器C1、C2和C3的当前值;例如,作为三元素元组或三元组(C1、C2、C3),或作为五元素元组或五元组(S、A、C1、C2、C3)。类似地,在生成经确认的质数Q时,第一设备201存储相关的迭代计数器C4、C5和C6的当前值;例如,作为三元素元组或三元组(C4、C5、C6),或作为五元素元组或五元组(S、A、C4、C5、C6)。
然后,第一设备201生成至少包括六个迭代计数器(C1、C2、C3、C4、C5、C6)的这些最终值的消息并将其发送给第二设备202;并且这样的消息是质数P和Q的压缩表示或大小减小的版本,这使得它们能够由第二设备202重新生成,而无需在第二设备202中执行任何素性测试。
参照图2C,该图是图2A的第二设备202的更详细的图示。例如,第二设备202通过利用其确定性PRNG单元222A为三个质数(即,为P1、P2和P)中的每个质数生成初始候选,该确定性PRNG单元222A由秘密种子S并且可选地用附加数据A(例如,设备ID、密钥ID或其他唯一数)播种。然而,第二设备202没有对这些候选者中任何一个进行素性测试。而是,第二设备202利用一个或多个计数器比较器单元219来检查它是否已经实际达到了在收到的消息中指示的迭代次数(即:C1、C2、C3、C4、C5、C6)。如果计数器尚未达到其基于接收到的消息的目标值,则将该计数器的值增加1,并且再执行一次相关联的操作;即,第二设备202的确定性顺序改变模块228生成下一个质数候选者。相反,一旦计数器达到其基于接收到的消息的目标值,则不再重复与此计数器相关联的操作;并且一旦六个计数器都达到其相应的目标,该算法就停止并产生两个已经确认的质数(P和Q),而无需在第二设备202中执行任何素性测试。然后,通过使用公开指数E,该重新生成的质数(P和Q)使第二设备能够本地计算RSA私钥或公钥的所有相关参数(例如,参数P、Q、N和D)。
一些实施方式可以包括用于生成和利用一个或多个(例如,秘密)质数的方法和系统,特别是用于密码学算法或操作或单元的方法和系统。例如,秘密种子值(例如,对于两个特定设备而言是已知的,而对于其他设备或实体而言是未知的),可选地还有附加数据(例如,从秘密种子值或从其一部分中导出的哈希值或其一部分),被用作到至少一个确定性PRNG单元的输入,这进而又生成初始质数候选值(PCV)。较强设备会对初始PCV执行素性测试;确定性顺序修改单元将初始PCV修改为后续值,这些后续值会进行迭代测试,直到第一PCV被确认为质数为止。然后,较强设备向较弱设备指示(从初始PCV生成开始)直到生成质数为止要执行多少次这样的顺序修改的迭代;较弱设备在本地执行类似的过程,但无需在较弱设备中进行任何素性测试,直到它生成作为已经确认的质数的PCV为止。该指示可以例如是对候选值的顺序修改迭代进行计数的一个或多个计数器的值;或者,可以是其他合适的指示。
可选地,附加数据可以包括、或者可以包含、或者可以基于、或者可以从密钥标识数据(KeyID或Key-ID)和/或用户标识数据(UserID或User-ID)、或从唯一设备ID(例如,可以在这样的设备的序列化过程中分配或指派给这样的设备(例如,分配或指派给较弱设备))导出。
在一些实施方式中,可以将计数器的所述最终值与预定义的最大值进行比较;并且,如果一些或至少一个计数器超过了预定义的最大值,则质数的生成过程可以从根据确定性算法改变的确定性PRNG输入数据开始被重复进行,可能是通过顺序递增这样的数据中的任何成员。
在一些实施方式中,可以通过在较强设备处初始生成经确认的质数中所使用的相同或相等的确定性算法或函数和输入数据,来执行在较弱设备处的经确认的质数的重新生成;并且,在较弱设备中执行质数候选值的顺序改变过程,但无需进行素性测试,直到所有这样的迭代的(一个或多个)计数器都达到了最终的计数器值为止,这些最终的计数器值是从较强设备在较强设备处生成经确认的质数时接收的。
(一个或多个)质数的压缩格式或大小减小的表示可以存储在存储设备或存储器单元或存储库中;例如,指示秘密种子值,可选地还有附加数据以及(一个或多个)迭代计数器的(一个或多个)值。可选地,由较强设备传递到较弱设备的经确认的质数的压缩表示可以仅包括对需要执行的初始PCV修改的顺序迭代次数的指示;因为较弱设备可能已经在其中存储了(例如安全地)同样被较强设备利用的相同的秘密种子值、相同的附加数据、相同的确定性PRNG函数、以及相同的确定性顺序修改函数。
在一些实施方式中,可选地,第一设备和第二设备可以是同一个,或者可以是相同的单个设备或系统,或者可以是一个单个装置中的(或一同位于其中的)两个单元或子单元;例如,使得装置的第一单元生成通过了素性测试的经确认的质数,然后(例如,直接地;或经由中间存储器单元或存储单元)将要执行的迭代次数(或对经确认的质数的大小减小表示的其他指示)传送到装置的第二单元;并且然后,该相同装置的第二单元通过执行所指示的迭代次数并且不通过该装置的第二单元执行任何素性测试,来重新生成(例如,在稍后的时间点)相同的已经确认的质数。
可选地,质数的生成、存储、传送和/或重新生成可以作为用于RSA算法或另一密码学算法的私钥和公钥对的生成、存储、传送和/或重新生成的一部分来执行;例如,通过选择公用的公共指数,生成至少两个质因数(P、Q,可选地还有附加质因数),这些质因数应可选地满足附加要求;诸如,对于因数P(类似地,对于因数Q,可选地还有其他质因数),值(P-1)和(P+1)具有较大的质因数(P1、P2)的要求;并且可以根据上述(一种或多种)方法生成、存储、传送和/或重新生成这样的质数。
可选地,一些实施方式,诸如在密码学RSA系统或类似系统中,可以利用已经确认的质数的两种(或更多种)不同类型的大小减小表示。例如,可以针对经确认的质数利用第一类型的表示,对该表示的进一步利用独立于其他值或其他条件(例如,经确认的质数,诸如P1、P2、Q1、Q2);使得该第一种类型的大小减小表示可能基于XOR运算或减法运算的结果,介于最终质数候选值(其为经确认的质数)与最初由确定性PRNG生成的初始质数候选值之间。可以针对经确认的质数利用第二类型的表示,对该表示的进一步利用取决于其他值或其他条件(例如,经确认的质数,诸如P、Q);使得第二类型的大小减小表示可以基于初始质数候选值的修改的迭代的计数器的值。这样的实施方式可以针对不同类型的经确认的质数利用两种(或更多种)不同类型的大小减小表示,以实现一个或多个实现目标,特别是以实现经确认的质数的增强型大小减小表示,和/或减少重新生成经确认的质数所需的时间或处理资源。例如,针对对其的进一步利用独立于其他质数或其他条件的经确认的质数:这两种类型的大小减小表示中的每一种都可以产生足够小的(大小减小的)表示,如果利用第一类型的大小减小表示(例如,基于XOR运算或减法运算的结果),则这样的经确认的质数的重新生成可能会更快或更节省资源。相反,针对对其的利用取决于其他条件的满足(例如,对其的利用取决于与其他质数的特定关系)的经确认的质数:第一种类型的大小减小表示(例如,使用XOR运算或减法运算)可能会产生(在一些情况下)具有长度过长或大小过大的大小减小表示,这是因为在初始质数候选值和最终质数候选值(其为经确认的质数)之间可能存在较大距离;而基于迭代计数器值的第二种类型的表示可能会为该第二类型的经确认的质数产生较小大小的表示,即使这样的经确认的质数的重新生成(在一些情况下)在利用这种类型的大小减小表示时会稍慢。
在一些实施方式中,计算、操作和/或确定可以在单个设备内本地执行,或者可以由多个设备执行或跨多个设备执行,或者可以通过可选地利用通信信道交换原始数据和/或处理后的数据和/或处理结果来部分本地和部分远程地(例如,在远程服务器上)执行。
尽管出于说明的目的,本文中的讨论的部分涉及有线链路和/或有线通信,但是一些实施方式在此方面不受限制,而是可以利用有线通信和/或无线通信;可以包括一个或多个有线和/或无线链路;可以利用有线通信和/或无线通信的一个或多个组件;和/或可以利用一种或多种无线通信的方法或协议或标准。
一些实施方式可以利用不是通用计算机的专用机器或专用设备,或者可以使用非通用(non-generic)计算机或非通用(non-general)计算机或机器。这样的系统或设备可以利用或可以包括一个或多个组件或单元或模块,这些组件或单元或模块不是“通用(non-generic)计算机”的一部分,也不是“通用(non-general)计算机”的一部分,例如,蜂窝收发器、蜂窝发送器、蜂窝接收器、GPS单元、位置确定单元、(一个或多个)加速度计、(一个或多个)陀螺仪、设备方位检测器或传感器、设备定位检测器或传感器等。
一些实施方式可以利用自动化方法或自动化过程、或者机器实现的方法或过程、或者用作半自动化或部分自动化的方法或过程、或者用作可以由计算机或机器或系统或其他设备执行或进行的一组步骤或操作。
一些实施方式可以利用代码或程序代码或机器可读指令或机器可读代码,这些代码可以存储在非暂态存储介质或非暂态存储物品(例如,CD-ROM、DVD-ROM、物理存储器单元、物理存储单元)中,使得程序或代码或指令在由处理器或机器或计算机执行时,使这样的处理器或机器或计算机执行本文所描述的方法或过程。这样的代码或指令可以是或可以包括例如以下一项或多项:软件、软件模块、应用、程序、子例程、指令、指令集、计算代码、字、值、符号、字符串、变量、源代码、编译代码、解释代码、可执行代码、静态代码、动态代码;包括(但不限于)高级编程语言、低级编程语言、面向对象的编程语言、可视化编程语言、编译的编程语言、解释的编程语言、C、C++、C#、Java、JavaScript、SQL、Ruby on Rails、Go、Cobol、Fortran、ActionScript、AJAX、XML、JSON、Lisp、Eiffel、Verilog、硬件描述语言(HDL)、寄存器转换级别(RTL)、BASIC、Visual BASIC、Matlab、Pascal、HTML、HTML5、CSS、Perl、Python、PHP、机器语言、机器代码、汇编语言等中的的代码或指令。
本文中利用诸如术语,例如“处理”、“计算”、“算数”、“确定”、“建立”、“分析”、“检查”、“检测”、“测量”等的讨论可以指代可以自动和/或自主地操纵和/或将被表示为寄存器和/或累加器和/或存储器单元和/或存储单元内的物理(例如,电子)数量变换为可以执行其他合适的操作的其他数据的处理器、计算机、计算平台、计算系统、或其他电子设备或计算设备的(一个或多个)操作和/或(一个或多个)过程。
如本文所使用的,术语“多个(plurality和a plurality)”包括例如“复数个”或“两个或更多个”。例如,“多个项”包括两个或更多个项。
对“一个实施例”、“实施例”、“说明性实施例”、“各种实施例”、“一些实施例”和/或类似术语的引用可以指示这样描述的(一个或多个)实施例可以可选地包括特定特征、结构、或特点,但并非每个实施例都必须包括该特定特征、结构、或特点。此外,短语“在一个实施例中”的重复使用不一定指代相同的实施例,尽管它也可以指代相同的实施例。类似地,短语“在一些实施例中”的重复使用不一定指相同的一系列或一组实施例,尽管它也可以指相同的一系列或一组实施例。
如本文所使用的,除非另有说明,否则使用序数形容词(诸如“第一”、“第二”、“第三”、“第四”等)来描述项或对象仅表示所提到的诸如这样的项或对象的不同实例;不旨在暗示如此描述的项或对象必须在时间、空间、排名、或任何其他排序方式上都处于特定的给定序列。
一些实施方式可以用在或结合各种设备和系统使用,例如,个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持计算机、手持设备、个人数字助理(PDA)设备、手持PDA设备、平板电脑、车载设备、车外设备、混合设备、车辆设备、非车辆设备、移动或便携式设备、消费类设备、非移动或非便携式设备、电器、无线通信站、无线通信设备、无线接入点(AP)、有线或无线路由器或网关或交换机或集线器、有线或无线调制解调器、视频设备、音频设备、音频-视频(A/V)设备、有线或无线网络、无线局域网、无线视频局域网(WVAN)、局域网(LAN)、无线局域网(WLAN)、个人局域网(PAN)、无线PAN(WPAN)等。
一些实施方式可以与单向和/或双向无线电通信系统、蜂窝无线电电话通信系统、移动电话、蜂窝电话、无线电话、个人通信系统(PCS)设备、PDA或结合了无线通信功能的手持设备、移动或便携式全球定位系统(GPS)设备、结合了GPS接收器或收发器或芯片的设备、结合了RFID元件或芯片的设备、多输入多输出(MIMO)收发器或设备、单输入多输出(SIMO)收发器或设备、多输入单输出(MISO)收发器或设备、具有一个或多个内部天线和/或外部天线的设备、数字视频广播(DVB)设备或系统、多标准无线电设备或系统、有线或无线手持设备(例如,智能手机)、无线应用协议(WAP)设备等一起使用。
一些实施方式可以包括或者可以通过使用“app”或应用来实现,该“app”或应用可以免费或付费从“app商店”或“应用商店”下载或获得,或者可以预安装在计算设备或电子设备上,或者可以传送到和/或安装在这样的计算设备或电子设备上。
在一些实施方式中,设备包括:存储器单元,用以存储秘密种子值,并存储对所需迭代次数的传入指示;确定性伪随机数生成器(PRNG),用以将所述秘密种子值作为输入来接收,并生成候选值;确定性顺序修改单元,用以按照所述所需迭代次数而迭代地修改候选值;质数重新生成器,用以将经过所述所需迭代次数顺序修改的候选值作为经确认的质数来输出。可选地,存储器单元还存储有附加数据项;其中,确定性PRNG将秘密种子值和附加数据项用作输入。
例如,附加数据项包括以下各项中的至少一项:秘密种子值的哈希值;秘密种子值的哈希值的一部分;秘密种子值的一部分的哈希值;秘密种子值的一部分的哈希值的一部分。例如,附加数据项包括从以下各项中的一项或多项生成的数据完整性值的至少一部分:秘密种子值;所需迭代次数;由秘密种子值播种的确定性伪随机数生成器(PRNG)的初始运行所生成的初始候选值;最终重新生成的质数候选值。可选地,附加数据项包括以下各项中的至少一项:所述设备的唯一Key-ID;设所述备的唯一User-ID;所述设备的唯一Device-ID;设备的唯一序列化标识符。
例如,所述存储器单元用以存储六个迭代计数器的传入最终值;其中,所述质数生成器将通过以下方式顺序地搜索符合预定义条件的两个质数(P、Q)和相应的两组质因数(P1、P2;Q1、Q2):迭代地修改所述两个质数和所述质因数的候选值直到达到所有迭代计数器的传入最终值和/或比较条件。可选地,该设备还包括:密码学单元,用以在选自以下操作的至少一个操作中利用所述经确认的质数:编码操作、解码操作、密码学操作。可选地,该设备还包括:无线通信接收器,用以通过安全无线通信链路从远程服务器无线接收对所需迭代次数的传入指示。可选地,所述质数生成器在不对任何候选值执行任何素性测试的情况下将所述经确认的质数输出。
在一些实施方式中,装置包括:存储器单元,用以存储秘密种子值,并存储附加数据项;确定性伪随机数生成器(PRNG),用以将所述秘密种子值和所述附加数据项作为输入来接收,并生成候选值;确定性顺序修改单元,用以迭代地修改所述候选值,其中,在所述确定性顺序修改单元进行每次迭代时使迭代计数器递增;素性测试单元,用以确定特定候选值是经确认的质数,并将所述迭代计数器的当前值输出;质数大小减小表示生成器,用以生成所述经确认的质数的大小减小表示,该表示使得远程设备能够在本地重新生成所述经确认的质数。
例如,该装置还包括:无线通信发送器,用以经由安全无线通信链路向远程设备发送指示所述迭代计数器的所述当前值的消息;其中,所述消息使得所述远程设备能够基于下述各项来在本地重新生成所述经确认的质数:(i)所述消息、(ii)所述秘密种子值、以及(iii)所述附加数据项。可选地,质数大小减小表示生成器将生成包括下述值的所述经确认的质数的大小减小表示:所述迭代计数器的所述当前值。可选地,质数大小减小表示生成器将生成包括下述两项之差的所述经确认的质数的大小减小表示:(i)所述经确认的质数、以及(ii)由所述确定性PRNG单元生成的初始候选值。可选的,质数大小减小表示生成器将生成包括在下述两项之间进行的XOR运算的结果的所述经确认的质数的大小减小表示:包括(i)所述经确认的质数的最低有效K位、以及(ii)由所述确定性PRNG单元生成的初始候选值的最低有效K位。可选地,所述质数大小减小表示生成器将通过以下方式顺序地搜索符合预定义条件的两个质数(P、Q)和相应的两组质因数(P1、P2;Q1、Q2):(I)迭代地修改所述两个质数和所述质因数的候选值直到达到一组经确认的质数;以及(II)存储六个相应的迭代计数器的六个最终值,这些最终值使得远程设备能够据其来重新生成所述两个质数和所述质因数。
在一些实施方式中,设备包括:存储器单元,用以存储秘密种子值;确定性伪随机数生成器(PRNG),用以将所述秘密种子值作为输入来接收,并生成候选值;确定性顺序修改单元,用以经由确定性值修改函数,而通过一次或多次迭代迭代地修改所述候选值;以下各项中的至少一项:(I)质数生成器,包括:素性测试单元,用以确定特定候选值是经确认的质数,并在达到所述经确认的质数时将迭代计数器的当前值输出;质数大小减小表示生成器,用以生成所述经确认的质数的大小减小表示,该表示使得另一单元能够根据所述大小减小表示来重新生成所述经确认的质数;(II)质数重新生成器,用以将对所需迭代次数的传入指示作为输入来接收,用以使所述确定性顺序修改单元通过所述所需迭代次数迭代地修改所述候选值,其中,在所述确定性顺序修改单元进行每次迭代时使迭代计数器递增,并且用以将通过所述所需迭代次数顺序修改的所述候选值作为经确认的质数来输出。
可选地,该设备包括质数生成器和质数重新生成器二者,它们被实现为一同位于同一壳体内的两个单元并且具有对所述秘密种子值的共享访问。例如,该设备还包括:存储单元,用以存储质数的大小减小表示;其中,所述质数生成器生成全长的经确认的质数,并将经确认的质数的大小减小表示写入所述存储单元中;其中,所述质数重新生成器从所述存储单元读取经确认的质数的大小减小表示,并重新生成所述经确认的质数。可选地,该设备包括质数生成器和质数重新生成器二者,它们被实现为一同位于同一壳体内的两个单元并且具有对所述秘密种子值的共享访问;其中,单个确定性PRNG服务于质数生成器和质数重新生成器二者;其中,单个确定性顺序修改单元服务于质数生成器和质数重新生成器二者。
在一些实施例中,方法包括:通过执行以下各项,在第一电子单元处重新生成已经在第二单元处被确认为质数的数:经由被馈送秘密种子值的确定性伪随机数生成器(PRNG)函数生成候选值,所述秘密种子值对于第一单元和第二单元是已知的;针对从第二单元发送到第一单元的消息中指示的特定修改-迭代次数,以确定性的方式顺序地修改所述候选值。可选地,该方法包括:在执行所述候选值的所述特定修改-迭代次数时,将最新的候选值作为重新生成的已经确认的质数来输出。可选地,该方法包括:在密码学操作中利用所述重新生成的已经确认的质数。
本文参照一个或多个实施方式描述的功能、操作、组件和/或特征可以与本文参照一个或多个其他实施方式描述的一种或多种其他功能、操作、组件和/或特征组合或结合使用。一些实施例可以包括本文描述的模块或功能或组件或单元中的一些或全部的任何可能或适当的组合、重新布置、组装、重新组装、或其他利用,即使它们是在上述讨论的不同位置或不同章节中讨论的,或者即使它们是在不同的附图或多个附图中示出的。
尽管本文已经图示出并描述了一些说明性实施例的某些特征,但是本领域技术人员可以想到各种修改、替换、改变、和等同形式。因此,权利要求书旨在涵盖所有这样的修改、替代,改变、和等同形式。
Claims (22)
1.一种设备,包括:
存储器单元,用以存储秘密种子值,并存储对所需次迭代次数的传入指示;
确定性伪随机数生成器(PRNG),用以将所述秘密种子值作为输入来接收,并生成候选值;
确定性顺序修改单元,用以针对所述所需迭代次数而迭代地修改所述候选值;
质数重新生成器,用以将针对所述所需迭代次数顺序修改的候选值作为经确认的质数来输出。
2.根据权利要求1所述的设备,
其中,所述存储器单元还存储有附加数据项;
其中,所述确定性PRNG将所述秘密种子值和所述附加数据项用作输入。
3.根据权利要求2所述的设备,
其中,所述附加数据项包括以下各项中的至少一项:
所述秘密种子值的哈希值;
所述秘密种子值的哈希值的一部分;
所述秘密种子值的一部分的哈希值;
所述秘密种子值的一部分的哈希值的一部分。
4.根据权利要求2所述的设备,
其中,所述附加数据项包括从以下各项中的一项或多项生成的数据完整性值的至少一部分:
所述秘密种子值;
所述所需迭代次数;
由所述秘密种子值播种的所述确定性伪随机数生成器(PRNG)的初始运行所生成的初始候选值;
最终重新生成的质数候选值。
5.根据权利要求2所述的设备,
其中,所述附加数据项包括以下各项中的至少一项:
所述设备的唯一Key-ID;
所述设备的唯一User-ID;
所述设备的唯一Device-ID;
所述设备的唯一序列化标识符。
6.根据任一前述权利要求所述的设备,
其中,所述存储器单元用以存储六个迭代计数器的传入最终值;
其中,所述质数生成器用以通过以下方式顺序地搜索符合预定义条件的两个质数(P、Q)和相应的两组质因数(P1、P2;Q1、Q2):迭代地修改所述两个质数和所述质因数的候选值直到达到所有迭代计数器的所述传入最终值和/或比较条件。
7.根据任一前述权利要求所述的设备,还包括:
密码学单元,用以在选自以下操作的至少一个操作中利用所述经确认的质数:编码操作、解码操作、密码学操作。
8.根据任一前述权利要求所述的设备,还包括:
无线通信接收器,用以通过安全无线通信链路从远程服务器无线接收对所需迭代次数的传入指示。
9.根据任一前述权利要求所述的设备,
其中,所述质数生成器在不对任何候选值执行任何素性测试的情况下将所述经确认的质数输出。
10.一种装置,包括:
存储器单元,用以存储秘密种子值,并存储附加数据项;
确定性伪随机数生成器(PRNG),用以将所述秘密种子值和所述附加数据项作为输入来接收,并生成候选值;
确定性顺序修改单元,用以迭代地修改所述候选值,其中,在所述确定性顺序修改单元进行每次迭代时使迭代计数器递增;
素性测试单元,用以确定特定候选值是经确认的质数,并将所述迭代计数器的当前值输出;
质数大小减小表示生成器,用以生成所述经确认的质数的大小减小表示,该表示使得远程设备能够在本地重新生成所述经确认的质数。
11.根据权利要求10所述的装置,还包括:
无线通信发送器,用以经由安全无线通信链路向所述远程设备发送指示所述迭代计数器的所述当前值的消息;
其中,所述消息使得所述远程设备能够基于以下各项来在本地重新生成所述经确认的质数:(i)所述消息、(ii)所述秘密种子值、以及(iii)所述附加数据项。
12.根据权利要求10和11中任一项所述的装置,
其中,所述质数大小减小表示生成器将生成包括下述值的所述经确认的质数的大小减小表示:所述迭代计数器的所述当前值。
13.根据权利要求10和11中任一项所述的装置,
其中,所述质数大小减小表示生成器将生成包括下述两项之差的所述经确认的质数的大小减小表示:(i)所述经确认的质数、以及(ii)由所述确定性PRNG单元生成的初始候选值。
14.根据权利要求10和11中任一项所述的装置,
其中,所述质数大小减小表示生成器将生成包括在下述两项之间进行的XOR运算的结果的所述经确认的质数的大小减小表示:(i)所述经确认的质数的最低有效K位、以及(ii)由所述确定性PRNG单元生成的初始候选值的最低有效K位。
15.根据权利要求10和11中任一项所述的装置,
其中,所述质数大小减小表示生成器将通过以下方式顺序地搜索符合预定义条件的两个质数(P、Q)和相应的两组质因数(P1、P2;Q1、Q2):(I)迭代地修改所述两个质数和所述质因数的候选值直到达到一组经确认的质数;以及(II)存储六个相应的迭代计数器的六个最终值,这些最终值使得所述远程设备能够据其来重新生成所述两个质数和所述质因数。
16.一种设备,包括:
存储器单元,用以存储秘密种子值;
确定性伪随机数生成器(PRNG),用以将所述秘密种子值作为输入来接收,并生成候选值;
确定性顺序修改单元,用以经由确定性值修改函数,而通过一次或多次迭代迭代地修改所述候选值;
以下各项中的至少一项:
(I)质数生成器,包括:
素性测试单元,用以确定特定候选值是经确认的质数,并在达到所述经确认的质数时将迭代计数器的当前值输出;
质数大小减小表示生成器,用以生成所述经确认的质数的大小减小表示,该表示使得另一单元能够根据所述大小减小表示来重新生成所述经确认的质数;
(II)质数重新生成器,
用以将对所需迭代次数的传入指示作为输入来接收,
用以使所述确定性顺序修改单元针对所述所需迭代次数迭代地修改所述候选值,其中,在所述确定性顺序修改单元进行每次迭代时使迭代计数器递增,并且
用以将针对所述所需迭代次数顺序修改的候选值作为经确认的质数来输出。
17.根据权利要求16所述的设备,
其中,所述设备包括所述质数生成器和所述质数重新生成器二者,它们被实现为一同位于同一壳体内的两个单元并且具有对所述秘密种子值的共享访问。
18.根据权利要求16和17中任一项所述的设备,还包括:
存储单元,用以存储质数的大小减小表示;
其中,所述质数生成器生成全长的经确认的质数,并将经确认的质数的大小减小表示写入所述存储单元中;
其中,所述质数重新生成器从所述存储单元读取经确认的质数的大小减小表示,并重新生成所述经确认的质数。
19.根据权利要求16所述的设备,
其中,所述设备包括所述质数生成器和所述质数重新生成器二者,它们被实现为一同位于同一壳体内的两个单元并且具有对所述秘密种子值的共享访问;
其中,单个确定性PRNG服务于所述质数生成器和所述质数重新生成器二者;
其中,单个确定性顺序修改单元服务于所述质数生成器和所述质数重新生成器二者。
20.一种方法,包括:
通过执行以下操作,在第一电子单元处重新生成已经在第二单元处被确认为质数的数:
经由被馈送秘密种子值的确定性伪随机数生成器(PRNG)函数生成候选值,所述秘密种子值对于所述第一单元和所述第二单元是已知的;
针对从所述第二单元发送到所述第一单元的消息中指示的特定修改-迭代次数,以确定性的方式顺序地修改所述候选值。
21.根据权利要求20的方法,包括:
在执行所述候选值的所述特定修改-迭代次数时,将最新的候选值作为重新生成的已经确认的质数来输出。
22.根据权利要求20和21中任一项所述的方法,包括:
在密码学操作中利用所述重新生成的已经确认的质数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1809593.5A GB2574613B (en) | 2018-06-12 | 2018-06-12 | Device, system, and method of generating and handling cryptographic parameters |
GB1809593.5 | 2018-06-12 | ||
PCT/GB2019/051153 WO2019239094A1 (en) | 2018-06-12 | 2019-04-25 | Device, system, and method of generating and handling cryptographic parameters |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112262544A true CN112262544A (zh) | 2021-01-22 |
CN112262544B CN112262544B (zh) | 2024-01-02 |
Family
ID=62975428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980039265.3A Active CN112262544B (zh) | 2018-06-12 | 2019-04-25 | 生成和处理密码学参数的设备、系统、以及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11323254B2 (zh) |
CN (1) | CN112262544B (zh) |
GB (1) | GB2574613B (zh) |
WO (1) | WO2019239094A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220400005A1 (en) * | 2019-10-16 | 2022-12-15 | Hewlett-Packard Development Company, L.P. | Generating prime numbers |
US11251953B2 (en) * | 2020-07-15 | 2022-02-15 | Juniper Networks, Inc. | Proving prime integers for encryption |
US11546142B1 (en) * | 2021-12-22 | 2023-01-03 | Bakhtgerey Sinchev | Cryptography key generation method for encryption and decryption |
WO2024072815A1 (en) * | 2022-09-27 | 2024-04-04 | Fort Robotics, Inc. | Method for securely generating and distributing symmetric keys for grouping secure communications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688973A (zh) * | 2002-06-21 | 2005-10-26 | 爱特梅尔股份有限公司 | 检验密码应用的可能素数 |
EP2104031A2 (en) * | 2008-03-21 | 2009-09-23 | Renesas Technology Corp. | Data processing system and data processing method |
EP2256987A1 (fr) * | 2009-05-28 | 2010-12-01 | Proton World International N.V. | Protection d'une génération de nombres premiers pour algorithme RSA |
US20130051552A1 (en) * | 2010-01-20 | 2013-02-28 | Héléna Handschuh | Device and method for obtaining a cryptographic key |
WO2018097797A1 (en) * | 2016-11-28 | 2018-05-31 | Huawei International Pte. Ltd. | Method and system for deriving deterministic prime number |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064843A1 (ja) * | 2003-12-26 | 2005-07-14 | Matsushita Electric Industrial Co.,Ltd. | 素数算出装置及び方法並びに鍵発行システム |
US8971530B2 (en) * | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
WO2013088065A1 (fr) * | 2011-12-15 | 2013-06-20 | Inside Secure | Procede de generation de nombres premiers prouves adapte aux cartes a puce |
US9800407B2 (en) * | 2013-08-30 | 2017-10-24 | Qualcomm Incorporated | Methods and apparatuses for prime number generation and storage |
EP3035586A1 (en) * | 2014-12-18 | 2016-06-22 | Gemalto Sa | Method for on-board prime number generation |
JP6918582B2 (ja) * | 2017-06-02 | 2021-08-11 | パナソニック株式会社 | 乱数性検証システム及び乱数性検証方法 |
US11477017B2 (en) * | 2017-10-06 | 2022-10-18 | Btq Ag | System and method for quantum-safe authentication, encryption, and decryption of information |
-
2018
- 2018-06-12 GB GB1809593.5A patent/GB2574613B/en not_active Expired - Fee Related
-
2019
- 2019-04-25 US US15/733,921 patent/US11323254B2/en active Active
- 2019-04-25 CN CN201980039265.3A patent/CN112262544B/zh active Active
- 2019-04-25 WO PCT/GB2019/051153 patent/WO2019239094A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688973A (zh) * | 2002-06-21 | 2005-10-26 | 爱特梅尔股份有限公司 | 检验密码应用的可能素数 |
EP2104031A2 (en) * | 2008-03-21 | 2009-09-23 | Renesas Technology Corp. | Data processing system and data processing method |
EP2256987A1 (fr) * | 2009-05-28 | 2010-12-01 | Proton World International N.V. | Protection d'une génération de nombres premiers pour algorithme RSA |
CN101902331A (zh) * | 2009-05-28 | 2010-12-01 | 质子世界国际公司 | 用于rsa算法的素数生成的保护 |
US20130051552A1 (en) * | 2010-01-20 | 2013-02-28 | Héléna Handschuh | Device and method for obtaining a cryptographic key |
WO2018097797A1 (en) * | 2016-11-28 | 2018-05-31 | Huawei International Pte. Ltd. | Method and system for deriving deterministic prime number |
Non-Patent Citations (1)
Title |
---|
李佳璐;周玉洁;: "嵌入式系统中RSA密钥生成的高效实现", 计算机工程与设计, no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
GB2574613A (en) | 2019-12-18 |
CN112262544B (zh) | 2024-01-02 |
US11323254B2 (en) | 2022-05-03 |
GB2574613B (en) | 2020-07-22 |
US20210226783A1 (en) | 2021-07-22 |
WO2019239094A1 (en) | 2019-12-19 |
GB201809593D0 (en) | 2018-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112262544B (zh) | 生成和处理密码学参数的设备、系统、以及方法 | |
US11115183B2 (en) | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof | |
CN109150499B (zh) | 动态加密数据的方法、装置、计算机设备和存储介质 | |
CN110545190B (zh) | 一种签名处理的方法、相关装置以及设备 | |
US10243738B2 (en) | Adding privacy to standard credentials | |
US20140294177A1 (en) | Identity based public key cryptosystem | |
US8806214B2 (en) | Communication with non-repudiation and blind signatures | |
EP2698945B1 (en) | Vectorial private equality testing | |
US11496295B2 (en) | Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device | |
WO2013063694A1 (en) | Lightweight stream cipher cryptosystems | |
CN113452527A (zh) | 用于有状态的基于散列的签名的鲁棒状态同步 | |
CN112865973A (zh) | 基于格的加密密钥和数字签名的生成方法 | |
US11522669B2 (en) | Using cryptographic blinding for efficient use of Montgomery multiplication | |
US8824677B1 (en) | Provably secure and efficient pseudorandom number generation | |
WO2022166214A1 (zh) | 一种密接数据验证方法、客户端、服务器及存储介质 | |
KR102443255B1 (ko) | 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법 | |
WO2018213875A1 (en) | Asymmetric cryptography and authentication | |
CN110287733B (zh) | 一种文件防篡改方法和装置 | |
US11750367B2 (en) | Simulation device and method for homomorphic cryptosystem | |
Aguilera et al. | First end‐to‐end PQC protected DPU‐to‐DPU communications | |
WO2022271216A1 (en) | Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms | |
Lara-Nino et al. | Lightweight key establishment for WSNs | |
US20230044442A1 (en) | Information leakage mitigation associated with elliptic curve operations | |
US20240106628A1 (en) | Efficient side channel protection for lightweight authenticated encryption | |
CN114499828B (zh) | 通信方法、物联网终端、网关设备及物联网系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |