CN105027074A - 质数产生 - Google Patents

质数产生 Download PDF

Info

Publication number
CN105027074A
CN105027074A CN201480010280.2A CN201480010280A CN105027074A CN 105027074 A CN105027074 A CN 105027074A CN 201480010280 A CN201480010280 A CN 201480010280A CN 105027074 A CN105027074 A CN 105027074A
Authority
CN
China
Prior art keywords
random number
random
test
prime
word
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.)
Pending
Application number
CN201480010280.2A
Other languages
English (en)
Inventor
肖露
宾加·安萨里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105027074A publication Critical patent/CN105027074A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/586Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一个特征关于一种减少与产生质数相关联的计算延迟的方法。所述方法包含产生具有多个位的第一随机数。接着,对所述第一随机数执行第一质数测试。接着,确定所述产生的第一随机数是未能通过还是通过了所述第一质数测试。如果所述第一随机数未能通过所述质数测试,那么使用相等数目的随机产生的位替换所述第一随机数的所述多个位中的一部分但并非所有,以产生第二随机数。接着,再次对所述第二随机数执行质数测试。重复这个过程直至检测到质数。

Description

质数产生
技术领域
各种特征涉及用于质数产生的方法及装置,且更明确地说,涉及促进质数产生的方法及装置。
背景技术
质数在公用密钥密码术中广泛使用。举例来说,RSA(Rivest、Shamir、Adleman)为针对密键产生过程需要质数的大部分最广泛使用的公用密钥密码中的一种。用于密码术的质数必须足够大以确保较大的密钥空间,所述密钥空间抵消强力攻击。
可用于RSA密码术方案的典型质数可为(例如)1,024位,其产生2,048位公用密钥/私用密钥对。此时,产生如此大的质数对于具有相对先进的处理器的个人电脑及服务器为耗时的,并且导致明显延迟。这种延迟变成影响在某些应用程序(例如,受信任的平台模块(TPM)及智能卡(UICC)需要RSA密钥产生时的移动计算的关键因素。在最新的基于ARM的处理器中产生1,024位质数可采取数量级为秒的延迟,所述延迟显著影响用户体验。因此,促进质数产生的任何方法将有益于密码编译应用程序,尤其是移动计算应用程序。
图1说明先前技术中发现的产生质数的典型方法100。首先,使用真随机数产生器(RNG)或高质量伪随机数产生器(PRNG)产生n字的随机数R 102。其次,对候选数R执行“质数测试”104。“质数测试”为一种用于确定一数字是否为质数的算法。在许多情况下,质数测试实际上为在本质上概率的复合数字测试(即,其确定一数字是否为复合数字)。这些测试的实例包含Miller-Rabin质数测试及Solovay-Strassen质数测试。
第三,如果候选数字R通过质数测试(即,所述数字R可能为质数),那么R可在密钥产生过程中用作质数106。否则,如果候选数字R未能通过所述质数测试(即,确定所述数字R并非质数),那么数字R被丢弃并且产生完全新的随机数R2108,且重复以上步骤104、106和/或108。
尽管质数测试促成与质数产生相关联的大部分延迟,但在确定候选随机数并非质数(即,步骤108)之后,所述延迟的另一有效的促成者是由于产生新随机数R(即,步骤102)所花费的时间。随机选择的数字R为质数的概率极低。举例来说,根据质数定理,1,024位的数字为质数的概率约为1/710(1/ln(21024))。出于此原因,可丢弃候选质数(即,步骤108),并且可在(某种程度上)确认候选质数为质数(即,步骤106)之前多次产生(即,步骤102)新候选质数。
因此,存在以下需求:促进质数产生,以使得与产生及确定数字为质数相关联的总延迟减少。关于依赖于质数产生的密码术的应用可从这些加速的质数产生方案得到明显益处。
发明内容
一个特征关于一种产生质数的方法,所述方法包括:产生具有多个位的第一随机数,对产生的第一随机数执行第一质数测试,确定所述产生的第一随机数未能通过所述第一质数测试,使用相等数目的随机产生的替换第一随机数的多个位中的一部分但非所有,以产生第二随机数,以及对所述第二随机数执行第二质数测试。根据一个方面,所述方法进一步包括确定第二随机数未能通过第二质数测试,及使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有,以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者。根据另一方面,第一随机数包括多个x-位字,并且多个位的替换的部分为第一x-位字。根据另一个方面,,所述方法进一步包括在使用第一x位字替换多个位的所述部分之前,使第一随机数向左或向右旋转至少一个x位字。
根据一个方面,多个位的替换的部分形成连续的位块。根据另一方面,多个位的替换的部分为部分具有非连续位数的所述多个位的随机位。根据另一个方面,第一随机数及第二随机数各自具有至少八个(8)位,并且多个位的替换的部分为至少两个(2)位。根据另一方面,所述方法进一步包括确定第二随机数未能通过第二质数测试,使用相等数目的随机产生的位替换第二随机数的多个位中的一部分但非所有,以产生第三随机数,以及对所述第三随机数执行第三质数测试。
根据一个方面,第一和第二随机数各自包括多个x位字,并且第一随机数的多个位的所述替换的部分为第一x位字,且第二随机数的多个位的所述替换的部分为第二x位字。根据另一方面,第一x位字及第二x位字具有不同字编号。根据另一个方面,第一x位字及第二x位字具有连续字编号。根据另一方面,第一x位字及第二x位字具有非连续字编号。
根据一个方面,第一和第二随机数各自包括多个x位字,并且经替换以产生第二随机数的第一随机数的多个位的所述部分为第一x位字,且所述方法进一步包括:确定第二随机数未能通过第二质数测试,及使用随机产生的x位字替换第二随机数的第一x位字,及对第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数。根据另一方面,所述方法进一步包括在确定第二随机数的第一x位字已替换所述预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字。
另一特征关于一种质数产生器,所述质数产生器包括:随机数产生器电路,其适于产生具有多个位的第一随机数;质数测试电路,其以通信方式耦合到所述随机数产生器电路,所述质数测试电路适于对产生的第一随机数执行第一质数测试,及确定所述产生的第一随机数未能通过第一质数测试;以及位替换电路,其以通信方式耦合到所述质数测试电路,所述位替换电路适于使用相等数目的随机产生的位替换第一随机数的多个位的一部分但非所有,以产生第二随机数,其中所述质数测试电路进一步适于对第二随机数执行第二质数测试。根据一个方面,质数测试电路进一步适于确定第二随机数未能通过第二质数测试,且位替换电路进一步适于使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者。根据另一方面,第一随机数包括多个x-位字,并且多个位的替换的部分为第一x-位字。根据另一个方面,位替换电路进一步适于在使用第一x位字替换多个位的所述部分之前使第一随机数向左或向右转动至少一个x位字。
根据一个方面,质数测试电路进一步适于确定第二随机数未能通过第二质数测试,位替换电路进一步适于使用相等数目的随机产生的位替换第二随机数的多个位中的一部分但非所有,以产生第三随机数,并且质数测试电路进一步适于对所述第三随机数执行第三质数测试。根据另一方面,第一和第二随机数各自包括多个x位字,经替换以产生第二随机数的第一随机数的多个位的所述部分为第一x位字,质数测试电路进一步适于确定第二随机数未能通过第二质数测试,并且位替换电路进一步适于使用随机产生的x位字替换第二随机数的第一x位字,及对第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已经替换预定次数。根据另一个方面,位替换电路进一步适于在确定第二随机数的第一x位字已经替换预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字。
另一特征关于一种质数产生器,所述质数产生器包括:用于产生具有多个位的第一随机数的装置;用于对产生的第一随机数执行第一质数测试的装置;用于确定产生的第一随机数未能通过第一质数测试的装置;用于使用相等数目的随机产生的位替换第一随机数的多个位中的一部分但非所有以产生第二随机数的装置;以及用于对第二随机数执行第二质数测试的装置。根据一个方面,质数产生器进一步包括用于确定第二随机数未能通过第二质数测试的装置;及用于使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有以及对第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者的装置。根据另一方面,质数产生器进一步包括用于在使用第一x位字替换多个位的所述部分之前,使第一随机数向左或向右旋转至少一个x位字的装置。根据另一方面,质数产生器进一步包括用于确定第二随机数未能通过第二质数测试的装置;用于使用相等数目的随机产生的位替换第二随机数的多个位中的一部分但非所有以产生第三随机数的装置;以及用于对第三随机数执行第三质数测试的装置。
根据一个方面,第一和第二随机数各自包括多个x位字,并且经替换以产生第二随机数的第一随机数的多个位的所述部分为第一x位字,且所述质数产生器进一步包括:用于确定第二随机数未能通过第二质数测试的装置;及用于使用随机产生的x位字替换第二随机数的第一x位字及对第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数的装置。根据另一方面,质数产生器进一步包括用于在确定第二随机数的第一x位字已替换预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字的装置。
另一特征关于一种计算机可读存储媒体,其具有用于产生质数的一或多个指令,所述指令在由至少一个处理器执行时致使所述处理器:产生具有多个位的第一随机数,对产生的第一随机数执行第一质数测试,确定所述产生的第一随机数未能通过第一质数测试,使用相等数目的随机产生的位替换第一随机数的多个位中的一部分但非所有,以产生第二随机数,以及对第二随机数执行第二质数测试。根据一个方面,所述指令当由处理器执行时进一步致使所述处理器:确定第二随机数未能通过第二质数测试,及使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有,以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者。根据另一方面,所述指令当由所述处理器执行时进一步致使所述处理器:在使用第一x位字替换多个位的所述部分之前,使第一随机数向左或向右旋转至少一个x位字。根据又一个方面,所述指令当由处理器执行时进一步致使所述处理器:确定第二随机数未能通过第二质数测试,使用相等数目的随机产生的位替换第二随机数的多个位中的一部分但非所有,以产生第三随机数,以及对第三随机数执行第三质数测试。
根据一个方面,第一和第二随机数各自包括多个x位字,并且经替换以产生第二随机数的第一随机数的多个位的所述部分为第一x位字,且其中所述指令当由处理器执行时进一步致使所述处理器:确定第二随机数未能通过第二质数测试,及使用随机产生的x位字替换第二随机数的第一x位字,及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数。根据另一方面,所述指令当由所述处理器执行时进一步致使所述处理器:在确定第二随机数的第一x位字已替换预定次数时,使用随机产生的x位字替换第二随机数的第二x位字。
附图说明
图1说明先前技术中发现的产生质数的典型方法。
图2说明数字R。
图3到5说明用于质数产生的方法。
图6说明质数产生装置的示意框图。
图7说明质数产生装置的处理电路的示意框图。
图8说明可与质数产生装置整合的各种电子装置。
具体实施方式
在以下描述中,给出具体细节以提供对本发明的各种方面的透彻理解。然而,所属领域的技术人员应了解,所述方面可在没有这些具体细节的情况下实践。举例来说,可以通过框图展示电路以便避免以不必要的细节混淆所述方面。在其它情况下,可不详细展示众所周知的电路、结构和技术以便不混淆本发明的方面。
词语“示范性”在本文中用于表示“充当实例、例子或说明”。本文中描述为“示范性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。如本文所使用的“质数测试”及“复合数字测试”可互换使用,并且通常被称作“质数测试”。举例来说,如Miller-Rabin测试的测试可证明数字为复合的。借此,所述测试还证明所述数字并非质数。因此,如本文所使用,对一数执行质数测试包含证明或尝试证明数字为复合的那些测试。如本文所使用的“随机数”可为真随机(例如,其由真随机数产生器(RNG)产生)或可为伪随机(例如,其使用伪随机数产生器(PRNG)产生)。
概述
一个实施方案提供一种减少与产生质数相关联的计算延迟的方法。所述方法包含产生具有多个位的第一随机数。接着,对第一随机数执行第一质数测试。接着,确定所述产生的第一随机数是未能通过还是通过了所述第一质数测试。如果第一随机数未能通过所述质数测试,那么使用相等数目的随机产生的位替换所述第一随机数的多个位中的一部分但并非所有,以产生第二随机数。接着,再次对所述第二随机数执行质数测试。重复这个过程(即,受测试的随机数的部分位)直至检测到质数。
示范性方法
图2说明根据本发明的一个方面的数字R 200。数字R 200为包括n个x位字202、204、…、206的z位数,其中:z等于或大于二(2);n等于或大于二(2);且x等于或大于一(1)。因此,数字R的总位数目z等于n*x。可使用真随机数产生器或伪随机数产生器产生数字R 200。根据一个实例,z位随机数R 200为1,024位数,包括各自为三十二(32)位的三十二(32)字。当然,随机数R 200可为具有大于一的位长度的任何随机数,并且包括各自具有一或多个位的多个字。
图3说明根据本发明的一个方面的用于质数产生的方法300。首先,产生具有n个x位字的z位随机数R(例如,图2中的数字R 200)302。随机数R为可为或可不为质数的候选数字。接着,对候选数字R执行质数测试(例如,Miller-Rabin测试)304。如果候选数字R通过质数测试(即,在一定准确性程度上确定R可为质数),那么可选择随机数R作为质数306。接着,例如,数字R可用于密钥产生。
另外,如果候选数字R未能通过质数测试(即,在一定准确性程度上确定R并非质数),那么使用随机或伪随机产生的x位值替换随机数R的x位字(例如,图2中的字202)以形成新随机数R2,同时剩余位/字保持相同308。接着将新随机数R2反馈到质数测试310。重复这个过程以使得如果随机数R2未能通过质数测试,那么使用新随机或伪随机产生的x位值替换R2的另一不同x位字(例如,图2中的字204)以形成新随机数R3,并且接着对R3执行质数测试。最终将产生/检测到质数,并且停止所述过程300。仅作为一个实例,产生的随机数R、R2、R3等可为包括三十二个32位字的1,024位数。
以此方式,并非使用新产生的随机数替换整个随机数R(参见图1中的步骤108),本发明公开了以下方法,其中仅替换随机数R、R2、R3等中的选择部分,并且再执行质数测试。举例来说,如果1,024位候选随机数未能通过质数测试,那么可使用新产生的随机位替换1,024位数的相对较小部分(例如,32位部分)同时剩余992位未受影响。仅改变1,024位数中的32位仍允许在所述变化之后存在许多可能的质数(例如,232/(1024*ln(2))=6,051,101质数)。因此,在不必改变其它992位的情况下并不存在质数的概率极低。因此,通过仅产生及替换z位数(例如,1,024位数)的x位字(例如,32位字)并非随机产生全新z位数(例如,1,024位数)可节省许多时间。
作为一个实例,如果随机数R为1,024位,且x位字各自为32位,那么提出的方法相比先前技术方法(例如,方法100)可节省与随机数产生相关联的时间的96.875%。因此,即使随机数产生仅促成(例如)与质数产生相关联的总延迟的10%,提出的方法可针对给定实例将总质数产生延迟减少约9.7%。
如上文关于图3所论述,如果新产生的候选随机数R2、R3等未能通过质数测试,那么候选随机数的另一x位部分经替换以产生新随机数。如果,例如,z位字包括n个x位字,那么在所述过程300的n次迭代之后(即,执行n次步骤308,因为迄今还没有产生通过质数测试的随机数),原始候选随机数R将已经完全逐字替换以形成全新随机数。这确保所述算法将始终终止以使得检测到/产生质数,是因为如果使用新产生的随机字替换随机数R的相同x位字同时剩余字不经替换,那么与替换的x位字相关联的数字的那些范围内不存在质数的可能性极小。
参考图2及3,根据一个方面,可执行图3的步骤308以使得所述过程300的每一迭代以连续方式使用随机产生的x位字替换x位字202、204、…、206。也就是说,如果确定第一候选随机数R并非质数,那么通过使用随机x位值替换(例如)第一x位字202来产生后续随机数R2。如果还确定随机数R2并非质数,那么通过使用随机x位值替换第二x位字204来产生下一后续随机数R3。因此,x位字可以连续方式替换(即,替换的x位字具有连续字编号)直至已经替换所有n个x位字,并且假定尚未检测到质数,再次替换第一x位字202,接着替换第二204,等等。
根据一个方面,可使用转动/偏移命令实施前述实例。举例来说,图3的步骤308可通过使z位随机数R向左或向右转动/偏移一个x位字及接着使用随机产生的x位字替换固定位置中的字(例如,最高有效位字或最低有效位字)来执行。
根据另一方面,可以非连续方式替换x位字202、204、…、206。举例来说,如果确定第一候选随机数R并非质数,那么通过使用随机x位值替换(例如)第二x位字204来产生后续随机数R2。如果还确定随机数R2并非质数,那么通过使用随机x位值替换第n x位字206来产生下一后续随机数R3。因此,在此情况下,以非连续(甚至是随机)方式替换x位字202、204、…、206(即,替换的x位字具有非连续字编号)。
根据另一方面,在替换z位随机数R、R2、R3等的一个x位字202、204、…、206或另一部分之前可多次替换另一个x位字202、204、…、206。举例来说,如果确定第一候选随机数R并非质数,那么通过使用随机x位值替换(例如)第一x位字202来产生后续随机数R2。如果还确定随机数R2并非质数,那么通过使用另一随机x位值替换第一x位字202来产生下一后续随机数R3。以此方式,假定未检测到质数,在继续和使用随机产生的值替换另一字(例如,第二x位字204)之前可多次使用不同随机x位值替换第一x位字202。根据一个方面,在继续和使用随机产生的值替换第二x位字204之前可使用随机x位值替换第一x位字202,进行预定义次数(例如,任何大于一(1)的整数值)。
参考图2,如本文所使用,术语“第一x位字”未必指代x位字A 202,而替代地是指任何x位字202、204、…、206,因为术语“第一”仅帮助区别和识别一个x位字与另一x位字。类似地,术语“第二x位字”未必指代x位字B 204,而替代地是指除第一x位字外的任何x位字202、204、…、206。因此,术语“第二”仅帮助区别和识别一个x位字与另一第一x位字。相同原理适用于随后编号的x位字(例如,第三x位字、第四x位字、…、第n x位字等)。
图4说明根据本发明的另一方面的用于质数产生的方法400。首先,产生z位随机数R(例如,图2中的数字R 200)402。随机数R为可为或可不为质数的候选数字。接着,对候选数字R执行质数测试(例如,Miller-Rabin测试)404。如果候选数字R通过质数测试(即,在一定准确性程度上确定R可为质数),那么可选择随机数R作为质数406。接着,例如,数字R可用于密钥产生。
另外,如果候选数字R未能通过质数测试(即,在一定准确性程度上确定R并非质数),那么使用相等数目的随机或伪随机产生的位替换随机数R的选择位数以形成新随机数R2,同时剩余位保持相同408。接着将新随机数R2反馈到质数测试410。重复这个过程以使得如果随机数R2未能通过质数测试,那么使用其它随机或伪随机产生的位替换R2的另一不同位部分以形成新随机数R3。接着对R3执行质数测试。最终可产生/检测到质数,并且停止所述过程400。根据一个实例,候选随机数R、R2、R3中的每一者具有至少八个(8)位,且多个位的替换的部分为至少两个(2)位。
现将所述过程400的两个非限制性例子描述为实例。
作为第一实例,最初可使用PRNG产生具有2,048位的随机候选数字R(例如,步骤402)。接着,可对候选数字R执行质数测试(例如,Miller-Rabin测试),其后可接着确定候选数字R并非质数(例如,步骤404)。接着,使用具有相同位长度的随机产生的值替换候选数字R的位部分。举例来说,使用随机产生的64位值替换开始于位数344及结束于位数407(最高有效位(MSB)为位数1)的R的64位部分以产生新随机数R2(例如,步骤408)。
接着对候选数字R2执行质数测试,其后可确定候选数字R2并非质数(例如,步骤404)。另外,使用具有相同位长度的随机产生的值替换候选数字R2的位部分。此时,例如,可使用随机产生的32位值替换开始于位数字1,234及结束于位数字1,265的R2的32位部分以产生新随机数R3(例如,步骤408)。对R3执行质数测试,并且重复替换未能通过的候选数字的位部分以产生新候选数字的这个过程直至确定候选数字通过质数测试(例如,步骤406)。
作为第二实例,最初可使用PRNG产生具有512位的随机候选数字R(例如,步骤402)。接着,可对候选数字R执行质数测试(例如,Miller-Rabin测试),其后可接着确定候选数字R并非质数(例如,步骤404)。接着,使用相等数目的随机产生的位替换候选数字R的非连续位部分。举例来说,可使用相等数目的随机产生的位(即,48)替换候选数字R的48位(例如,步骤408)。在一个例子中,这些位中的一些可包含除其他之外的位数12、44、77、223及498。也就是说,不同于先前实例,所述位并未以分组形式经选择及替换。实情为,所述位经随机选择及替换。一旦所述位已经替换,就因此产生新随机候选数字R2
接着对候选数字R2执行质数测试,其后可确定候选数字R2并非质数(例如,步骤404)。另外,使用相等数目的随机产生的位替换候选数字R2的位的随机部分。此时,例如,可使用相等数目的随机产生的位(即,32)替换候选数字R2的32位(例如,步骤408)。在一个例子中,这些位中的一些可包含除其他之外的位数9、24、124、332及506。一旦所述位已经替换,就因此产生新随机数R3。对R3执行质数测试,并且重复选择及替换未能通过的候选数字的随机位以产生新候选数字的这个过程直至确定候选数字通过质数测试(例如,步骤406)。
图5说明根据本发明的一个方面的用于产生质数的方法500。最初,产生具有多个位的第一随机数502。接着,对产生的第一随机数执行第一质数测试504。接着,确定产生的第一随机数未能通过第一质数测试506。接着,使用相等数目的随机产生的位替换第一随机数的多个位中的一部分但非所有以产生第二随机数508。接着,对产生的第二随机数执行第二质数测试510。根据一个方面,确定第二随机数未能通过第二质数测试,并且使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有,且对第二随机数运行连续质数测试直至确定第二随机数通过所述连续质数测试中的一者。
示范性装置
图6说明根据本发明的一个方面的质数产生装置600的示意框图。质数产生装置600可包含处理电路602、存储器电路604、输入/输出(I/O)接口606和/或通信接口608,以上各者通过总线610以通信方式耦合。处理电路602包含至少一个处理器(例如,专用集成电路、数字信号处理器、应用程序处理器等),所述至少一个处理器适于执行上文关于图3、4及5所描述的操作中的任一者,包括(但不限于)产生随机数及选择及替换z位随机数R的位。存储器电路604包含一或多个易失性、非易失性存储器电路和/或计算机可读媒体,所述计算机可读媒体包括(但不限于)SRAM、DRAM、SDRAM、NAND FLASH、NOR FLASH、硬盘驱动器、光盘(CD)等。存储器电路604适于存储除其它以外的计算机可读指令,所述指令当由一或多个处理器执行时致使处理电路604执行上文关于图3、4及5所描述的操作。
I/O接口606可包含多个输入及输出装置中的任一者,包括(但不限于)显示器、键盘、触摸屏显示器、鼠标、相机、操纵杆等。通信接口608可包含允许质数产生装置600与一或多个网络(例如,蜂窝式网络)和/或其它电子装置通信的无线通信接口和/或有线通信接口。通信接口608还可包含串行及并行通信端口(例如,USB等)。
图7说明根据本发明的一个方面的质数产生装置的处理电路602的示意框图。处理电路602可包括随机数产生器模块/电路702、质数测试模块/电路704和/或位/字替换模块/电路706。电路702、704、706可以通信方式彼此耦合,如由图7中所示的双箭头所指示。电路702、704、706可为经硬连线以执行各种操作和/或上文关于图2、3、4和/或5所描述的方法步骤的专用集成电路(ASIC)。尽管在所说明的实例中电路702、704、706展示为处理电路602的部分,但在一些方面中每一电路702、704、706可为物理上不同于彼此和/或处理电路602的独立电路。
通常,随机数产生器模块/电路702可为用于产生在以上各种方法/过程中描述的随机数R、R2、R3、随机位及随机x位字的装置。具体来说,随机数产生器模块/电路702可为:用于产生具有多个位的第一随机数的装置;用于产生相等数目的随机位以帮助产生第二随机数的装置;及用于产生随机x位字的装置。
通常,质数测试模块/电路704可为用于对各种候选数字执行质数测试(例如,Miller-Rabin质数测试或Solovay-Strassen质数测试)以确定(在某一可靠性程度上)所述候选数字是否为质数的装置。具体来说,质数测试模块/电路704可为:用于对产生的第一随机数执行第一质数测试的装置;用于确定产生的第一随机数未能通过第一质数测试的装置;用于对第二随机数执行第二质数测试的装置;用于确定第二随机数未能通过第二质数测试的装置;及用于对第三随机数执行第三质数测试的装置。
通常,位/字替换模块/电路706可为用于使用其它随机产生的位及字替换候选数字的位部分及字的装置。具体来说,位/字替换模块/电路706可为:用于使用相等数目的随机产生的位替换第一随机数的多个位中的一部分但非所有以产生第二随机数的装置;用于使用相等数目的随机产生的位替换第二随机数的多个位的部分但非所有以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者的装置;用于在使用第一x位字替换多个位的所述部分之前,使第一随机数向左或向右旋转至少一个x位字的装置;用于使用相等数目的随机产生的位替换第二随机数的多个位中的一部分但非所有以产生第三随机数的装置;用于使用随机产生的x位字替换第二随机数的第一x位字及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数的装置;及用于在确定第二随机数的第一x位字已替换预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字的装置。
图8说明可与质数产生装置600整合的各种电子装置802、804、806。举例来说,移动电话802、膝上型计算机804及固定位置终端806可包含质数产生装置600。图8中说明的电子装置802、804、806仅为示范性的。其它电子装置还可以质数产生装置600为特征,所述质数产生装置包括(但不限于)手持式个人通信***(PCS)单元、便携式数据单元(例如,个人数据助理)、具GPS功能的装置、导航装置、机顶盒、音乐播放器、视频播放器、娱乐单元、固定位置数据单元(例如,仪表读取设备)或存储或检索数据或计算机指令或其任何组合的任何其它装置。
图2到8中所说明的组件、步骤、特征和/或功能中的一或多者可重新布置和/或组合成单个组件、步骤、特征或功能或体现在若干组件、步骤或功能中。在不脱离本发明的情况下,还可以添加额外的元件、组件、步骤和/或功能。图6、7及8中说明的设备、装置和/或组件可经配置以执行图2到5中描述的方法、特征或步骤中的一或多者。本文中所描述的算法也可以有效地实施于软件中和/或嵌入于硬件中。
此外,在本发明的一个方面中,图6及7中说明的处理电路602可为特定处理器(例如,专用集成电路(例如,ASIC)),其经特定设计和/或硬连线以执行图3、4及5中所描述的算法、方法和/或步骤。因此,这种特定处理器(例如,ASIC)可为用于执行图3、4及5中所描述的算法、方法和/或步骤的装置的一个实例。
并且,应注意,可将本发明的各方面描述为过程,所述过程被描绘为流程图、流图、结构图或框图。尽管流程图可将操作描述为顺序过程,但许多操作可并行或同时执行。另外,操作的顺序可经重新布置。当过程的操作完成时,所述过程终止。过程可以对应于方法、功能、过程、子例程、子程序等。当过程对应于功能时,过程的终止对应于功能返回到调用功能或主功能。
此外,存储媒体可表示用于存储数据的一或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置和/或其它机器可读媒体和处理器可读媒体,和/或用于存储信息的计算机可读媒体。术语“机器可读媒体”、“计算机可读媒体”和/或“处理器可读媒体”可包括(但不限于)非暂时性媒体(诸如,便携式或固定存储装置)、光学存储装置及能够存储、含有或携载指令和/或数据的各种其它媒体。因此,本文中描述的各种方法可以完全或部分地由可以存储在“机器可读媒体”、“计算机可读媒体”和/或“处理器可读媒体”中且由一或多个处理器、机器和/或装置执行的指令和/或数据来实施。
此外,本发明的方面可以由硬件、软件、固件、中间件、微码或其任何组合实施。当以软件、固件、中间件或微码实施时,用于执行必要任务的程序代码或代码段可存储在例如存储媒体或其它存储器的机器可读媒体中。处理器可以执行必要任务。代码段可以表示步骤、功能、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、权标传递、网络传输等任何合适的方式传递、转发或传输。
结合本文中揭示的实例描述的各种说明性逻辑块、模块、电路、元件和/或组件可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的理器、控制器、微控制器或状态机。处理器还可以实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的结合,或任何其它此类配置。
结合本文中揭示的实例而描述的方法或算法可以处理单元、编程指令或其它方向的形式直接体现在硬件、可由处理器执行的软件模块或两者的组合中,且可含于单个装置中或跨越多个装置而分布。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。存储媒体可以耦合到处理器,使得处理器可以从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
所属领域的技术人员将进一步了解,结合本文所揭示的方面描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此类功能性是实施为硬件还是软件取决于特定应用及施加于整个***的设计约束。
本文中描述的本发明的各种特征可实施于不同***中而不脱离本发明。应注意,本发明的前述方面仅为实例,且不应解释为限制本发明。本发明的各方面的描述既定是说明性的,且不限制权利要求书的范围。因此,本发明的教示可容易应用于其它类型的设备,且所属领域的技术人员将明白许多替代方案、修改及变化。

Claims (39)

1.一种产生质数的方法,其包括:
产生具有多个位的第一随机数;
对所述产生的第一随机数执行第一质数测试;
确定所述产生的第一随机数未能通过所述第一质数测试;
使用相等数目的随机产生的位替换所述第一随机数的所述多个位中的一部分但非所有,以产生第二随机数;以及
对所述第二随机数执行第二质数测试。
2.根据权利要求1所述的方法,其进一步包括:
确定所述第二随机数未能通过所述第二质数测试;及
使用相等数目的随机产生的位替换所述第二随机数的所述多个位的部分但非所有,以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者。
3.根据权利要求2所述的方法,其中所述第一随机数包括多个x位字,并且所述多个位的所述替换的部分为第一x位字。
4.根据权利要求3所述的方法,其进一步包括:
在使用所述第一x位字替换所述多个位的所述部分之前,使所述第一随机数向左或向右转动至少一个x位字。
5.根据权利要求1所述的方法,其中所述多个位的所述替换的部分形成连续的位块。
6.根据权利要求1所述的方法,其中所述多个位的所述替换的部分为所述多个位的具有部分非连续位编号的随机位。
7.根据权利要求1所述的方法,其中所述第一随机数及所述第二随机数各自具有至少八个(8)位,并且所述多个位的所述替换的部分为至少两个(2)位。
8.根据权利要求1所述的方法,其进一步包括:
确定所述第二随机数未能通过所述第二质数测试;
使用相等数目的随机产生的位替换所述第二随机数的所述多个位中的一部分但非所有,以产生第三随机数;以及
对所述第三随机数执行第三质数测试。
9.根据权利要求8所述的方法,其中所述第一和第二随机数各自包括多个x位字,并且所述第一随机数的所述多个位的所述替换的部分为第一x位字,且所述第二随机数的所述多个位的所述替换的部分为第二x位字。
10.根据权利要求9所述的方法,其中所述第一x位字及所述第二x位字具有不同字编号。
11.根据权利要求10所述的方法,其中所述第一x位字及所述第二x位字具有连续字编号。
12.根据权利要求10所述的方法,其中所述第一x位字及所述第二x位字具有非连续字编号。
13.根据权利要求1所述的方法,其中所述第一和第二随机数各自包括多个x位字,并且经替换以产生所述第二随机数的所述第一随机数的所述多个位的所述部分为第一x位字,且所述方法进一步包括:
确定所述第二随机数未能通过所述第二质数测试;及
使用随机产生的x位字替换所述第二随机数的所述第一x位字,及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已经替换预定次数。
14.根据权利要求13所述的方法,其进一步包括:
在确定所述第二随机数的所述第一x位字已经替换所述预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字。
15.一种质数产生器,其包括:
随机数产生器电路,其适于产生具有多个位的第一随机数;
质数测试电路,其以通信方式耦合到所述随机数产生器电路,所述质数测试电路适于
对所述产生的第一随机数执行第一质数测试,及
确定所述产生的第一随机数未能通过所述第一质数测试;以及
位替换电路,其以通信方式耦合到所述质数测试电路,所述位替换电路适于使用相等数目的随机产生的位替换所述第一随机数的所述多个位的一部分但非所有,以产生第二随机数,其中所述质数测试电路进一步适于对所述第二随机数执行第二质数测试。
16.根据权利要求15所述的质数产生器,其中所述质数测试电路进一步适于确定所述第二随机数未能通过所述第二质数测试,且所述位替换电路进一步适于使用相等数目的随机产生的位替换所述第二随机数的所述多个位的部分但非所有及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者。
17.根据权利要求16所述的质数产生器,其中所述第一随机数包括多个x位字,并且所述多个位的所述替换的部分为第一x位字。
18.根据权利要求17所述的质数产生器,其中所述位替换电路进一步适于在使用所述第一x位字替换所述多个位的所述部分之前使所述第一随机数向左或向右转动至少一个x位字。
19.根据权利要求15所述的质数产生器,其中所述第一随机数及所述第二随机数各自具有至少八个(8)位,并且所述多个位的所述替换的部分为至少两个(2)位。
20.根据权利要求15所述的质数产生器,其中所述质数测试电路进一步适于确定所述第二随机数未能通过所述第二质数测试,所述位替换电路进一步适于使用相等数目的随机产生的位替换所述第二随机数的多个位中的一部分但非所有,以产生第三随机数,并且所述质数测试电路进一步适于对所述第三随机数执行第三质数测试。
21.根据权利要求20所述的质数产生器,其中所述第一和第二随机数各自包括多个x位字,并且所述第一随机数的所述多个位的所述替换的部分为第一x位字,且所述第二随机数的所述多个位的所述替换的部分为第二x位字。
22.根据权利要求15所述的质数产生器,其中所述第一和第二随机数各自包括多个x位字,经替换以产生所述第二随机数的所述第一随机数的所述多个位的所述部分为第一x位字,所述质数测试电路进一步适于确定所述第二随机数未能通过所述第二质数测试,并且所述位替换电路进一步适于使用随机产生的x位字替换所述第二随机数的所述第一x位字,及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已经替换预定次数。
23.根据权利要求22所述的质数产生器,其中所述位替换电路进一步适于在确定所述第二随机数的所述第一x位字已经替换所述预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字。
24.一种质数产生器,其包括:
用于产生具有多个位的第一随机数的装置;
用于对所述产生的第一随机数执行第一质数测试的装置;
用于确定所述产生的第一随机数未能通过所述第一质数测试的装置;
用于使用相等数目的随机产生的位替换所述第一随机数的所述多个位中的一部分但非所有以产生第二随机数的装置;以及
用于对所述第二随机数执行第二质数测试的装置。
25.根据权利要求24所述的质数产生器,其进一步包括:
用于确定所述第二随机数未能通过所述第二质数测试的装置;及
用于使用相等数目的随机产生的位替换所述第二随机数的所述多个位的部分但非所有以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者的装置。
26.根据权利要求25所述的质数产生器,其中所述第一随机数包括多个x位字,并且所述多个位的所述替换的部分为第一x位字。
27.根据权利要求26所述的质数产生器,其进一步包括:
用于在使用所述第一x位字替换所述多个位的所述部分之前使所述第一随机数向左或向右旋转至少一个x位字的装置。
28.根据权利要求24所述的质数产生器,其进一步包括:
用于确定所述第二随机数未能通过所述第二质数测试的装置;
用于使用相等数目的随机产生的位替换所述第二随机数的所述多个位中的一部分但非所有以产生第三随机数的装置;以及
用于对所述第三随机数执行第三质数测试的装置。
29.根据权利要求28所述的质数产生器,其中所述第一和第二随机数各自包括多个x位字,并且所述第一随机数的所述多个位的所述替换的部分为第一x位字,且所述第二随机数的所述多个位的所述替换的部分为第二x位字。
30.根据权利要求29所述的质数产生器,其中所述第一和第二随机数各自包括多个x位字,并且经替换以产生所述第二随机数的所述第一随机数的所述多个位的所述部分为第一x位字,且所述质数产生器进一步包括:
用于确定所述第二随机数未能通过所述第二质数测试的装置;及
用于使用随机产生的x位字替换所述第二随机数的所述第一x位字及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数的装置。
31.根据权利要求30所述的质数产生器,其进一步包括:
用于在确定所述第二随机数的所述第一x位字已替换所述预定次数时使用随机产生的x位字替换所述第二随机数的第二x位字的装置。
32.一种计算机可读存储媒体,其具有用于产生质数的一或多个指令,所述指令在由至少一个处理器执行时致使所述处理器:
产生具有多个位的第一随机数;
对所述产生的第一随机数执行第一质数测试;
确定所述产生的第一随机数未能通过所述第一质数测试;
使用相等数目的随机产生的位替换所述第一随机数的所述多个位中的一部分但非所有,以产生第二随机数;以及
对所述第二随机数执行第二质数测试。
33.根据权利要求32所述的计算机可读存储媒体,其中所述指令当由所述处理器执行时进一步致使所述处理器:
确定所述第二随机数未能通过所述第二质数测试;及
使用相等数目的随机产生的位替换所述第二随机数的所述多个位的部分但非所有,以及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者。
34.根据权利要求33所述的计算机可读存储媒体,其中所述第一随机数包括多个x位字,并且所述多个位的所述替换的部分为第一x位字。
35.根据权利要求34所述的计算机可读存储媒体,其中所述指令当由所述处理器执行时进一步致使所述处理器:
在使用所述第一x位字替换所述多个位的所述部分之前,使所述第一随机数向左或向右旋转至少一个x位字。
36.根据权利要求32所述的计算机可读存储媒体,其中所述指令当由所述处理器执行时进一步致使所述处理器:
确定所述第二随机数未能通过所述第二质数测试;
使用相等数目的随机产生的位替换所述第二随机数的所述多个位中的一部分但非所有,以产生第三随机数;以及
对所述第三随机数执行第三质数测试。
37.根据权利要求36所述的计算机可读存储媒体,其中所述第一和第二随机数各自包括多个x位字,并且所述第一随机数的所述多个位的所述替换的部分为第一x位字,且所述第二随机数的所述多个位的所述替换的部分为第二x位字。
38.根据权利要求32所述的计算机可读存储媒体,其中所述第一和第二随机数各自包括多个x位字,并且经替换以产生所述第二随机数的所述第一随机数的所述多个位的所述部分为第一x位字,且其中所述指令当由所述处理器执行时进一步致使所述处理器:
确定所述第二随机数未能通过所述第二质数测试;及
使用随机产生的x位字替换所述第二随机数的所述第一x位字,及对所述第二随机数运行连续质数测试直至确定所述第二随机数通过了所述连续质数测试中的一者或确定所述第二随机数的所述第一x位字已替换预定次数。
39.根据权利要求38所述的计算机可读存储媒体,其中所述指令当由所述处理器执行时进一步致使所述处理器:
在确定所述第二随机数的所述第一x位字已替换所述预定次数时,使用随机产生的x位字替换所述第二随机数的第二x位字。
CN201480010280.2A 2013-03-08 2014-03-04 质数产生 Pending CN105027074A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/791,514 2013-03-08
US13/791,514 US9182943B2 (en) 2013-03-08 2013-03-08 Methods and devices for prime number generation
PCT/US2014/020306 WO2014138060A1 (en) 2013-03-08 2014-03-04 Prime number generation

Publications (1)

Publication Number Publication Date
CN105027074A true CN105027074A (zh) 2015-11-04

Family

ID=50442600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480010280.2A Pending CN105027074A (zh) 2013-03-08 2014-03-04 质数产生

Country Status (6)

Country Link
US (1) US9182943B2 (zh)
EP (1) EP2965193A1 (zh)
JP (1) JP6246239B2 (zh)
KR (1) KR101666974B1 (zh)
CN (1) CN105027074A (zh)
WO (1) WO2014138060A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373366B (zh) * 2015-10-12 2018-11-09 武汉瑞纳捷电子技术有限公司 一种生成大素数的方法及装置
JP6542171B2 (ja) * 2016-09-15 2019-07-10 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置
CN108270564A (zh) * 2016-12-30 2018-07-10 广东精点数据科技股份有限公司 一种rsa加密算法中的大素数生成方法及装置
KR102217928B1 (ko) * 2019-06-14 2021-02-19 광운대학교 산학협력단 랜덤 소수 생성 방법 및 그를 위한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156819A1 (en) * 2001-04-23 2002-10-24 Pijnenburg Beheer B.V. Digital true random number generator circuit
CN1419762A (zh) * 2000-03-28 2003-05-21 格姆普拉斯公司 由互质数产生电子密钥的装置及方法
CN1641716A (zh) * 2004-01-09 2005-07-20 财团法人资讯工业策进会 数据加密的方法与***
US20110142231A1 (en) * 2009-12-11 2011-06-16 Oki Semiconductor Co., Ltd. Prime number generating device, prime number generating method, and computer readable storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947430A (en) 1987-11-23 1990-08-07 David Chaum Undeniable signature systems
JP2785349B2 (ja) * 1988-07-25 1998-08-13 株式会社安川電機 絶対値エンコーダの符号パターン作成方法
JP3606418B2 (ja) * 1997-03-04 2005-01-05 松下電器産業株式会社 乱数生成装置
US6404890B1 (en) 1998-04-08 2002-06-11 Citibank, Na Generating RSA moduli including a predetermined portion
JP3034516B1 (ja) * 1999-03-08 2000-04-17 株式会社東芝 物理乱数発生装置
JP3711821B2 (ja) 1999-11-25 2005-11-02 日本電信電話株式会社 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体
JP2008027327A (ja) * 2006-07-25 2008-02-07 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
US8472620B2 (en) 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
WO2009078217A1 (ja) * 2007-12-19 2009-06-25 Konica Minolta Holdings, Inc. ネットワークシステムおよびデータ送信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1419762A (zh) * 2000-03-28 2003-05-21 格姆普拉斯公司 由互质数产生电子密钥的装置及方法
US20020156819A1 (en) * 2001-04-23 2002-10-24 Pijnenburg Beheer B.V. Digital true random number generator circuit
CN1641716A (zh) * 2004-01-09 2005-07-20 财团法人资讯工业策进会 数据加密的方法与***
US20110142231A1 (en) * 2009-12-11 2011-06-16 Oki Semiconductor Co., Ltd. Prime number generating device, prime number generating method, and computer readable storage medium

Also Published As

Publication number Publication date
KR101666974B1 (ko) 2016-10-17
JP6246239B2 (ja) 2017-12-13
EP2965193A1 (en) 2016-01-13
US9182943B2 (en) 2015-11-10
WO2014138060A1 (en) 2014-09-12
JP2016514315A (ja) 2016-05-19
KR20150128798A (ko) 2015-11-18
US20140258353A1 (en) 2014-09-11

Similar Documents

Publication Publication Date Title
CN101540672B (zh) 数据处理***以及数据处理方法
CN108108614B (zh) 安全处理器以及安全处理器的操作方法
US10354063B2 (en) Protection of a modular calculation
US8291223B2 (en) Arithmetic circuit for montgomery multiplication and encryption circuit
CN105027074A (zh) 质数产生
KR20160048860A (ko) 소수 생성 및 저장을 위한 방법들 및 장치들
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
US20200104754A1 (en) Method for managing a machine learning model
KR20210146513A (ko) 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
US20150058639A1 (en) Encryption processing device and storage device
CN116436709B (zh) 一种数据的加解密方法、装置、设备和介质
US20110142231A1 (en) Prime number generating device, prime number generating method, and computer readable storage medium
CN103765493B (zh) 数字平方计算机实现的方法和设备
CN113032797A (zh) 在处理设备中执行加密操作的方法
CN113141255A (zh) 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法
CN109299621B (zh) 对迭代计算的防范水平攻击的保护
JP7055142B2 (ja) 暗号アプリケーションのための素数を生成する方法
CN108062289B (zh) 快速傅里叶变换fft地址换序方法、信号处理方法及装置
CN104579651A (zh) 椭圆曲线密码点乘运算的方法和装置
CN110071927B (zh) 一种信息加密方法、***及相关组件
JP5875717B1 (ja) 乱数生成装置、乱数生成方法、およびプログラム
CN114257365A (zh) 加密装置、加密装置的操作方法和存储控制器
US20160034255A1 (en) Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof
CN112487448B (zh) 一种加密信息处理装置、方法及计算机设备
US9531531B2 (en) Methods and devices for fixed execution flow multiplier recoding and scalar multiplication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151104

WD01 Invention patent application deemed withdrawn after publication