專利名稱:檢驗密碼應(yīng)用的可能素數(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼術(shù),其包括像素數(shù)生成、密鑰生成及偽隨機數(shù)生成這樣一些基本密碼部件。具體地說,本發(fā)明涉及計算機軟件密碼術(shù)方法以及相應(yīng)的程序硬件裝置,該裝置可進行素數(shù)生成以及對產(chǎn)生的候選數(shù)作可能素性檢驗,所述方法特別著重于速度方面。
背景技術(shù):
對于各種各樣的密碼應(yīng)用,大素數(shù)或可能素數(shù)是有用的。舉例來說,素數(shù)可用于產(chǎn)生一公開密鑰密碼系統(tǒng)(例如RSA)中的密鑰對。此外,正如Van DenEnde的美國專利號4,780,840中所述,可以利用素數(shù)產(chǎn)生一偽隨機數(shù)序。這種數(shù)序又可用于保密通信用的流密碼。
因為在這些類型應(yīng)用中所要求的可能素數(shù)的大小增大,一種能夠高效地以密碼術(shù)方法所用的程控計算機系統(tǒng)或芯片快速地產(chǎn)生這樣一些素數(shù)的方法變得非常重要。在許多應(yīng)用中,為增加安全性及靈活性,希望可在使用前才立即產(chǎn)生大的隨機素數(shù),而不是依賴一組預(yù)先計算出的貯存的素數(shù)。不幸的是,一大素數(shù)生成的難處在于候選的可能素數(shù)必須通過費時的或需要大量計算能力的或兩者兼之的演算法(像是Miller-Rabin或Fermat)來檢驗。能快速地將不太可能的候選數(shù)排除的技術(shù),可使在一可能素數(shù)被鑒定之前需要進行這種嚴(yán)格檢驗的次數(shù)減至最少。
在美國專利號4,351,982中,Miller et al.揭示從一已知素數(shù)開始,通過將序列中的一在前素數(shù)P增大到一新數(shù)值hP+1(h為隨機數(shù))然后對該新數(shù)值作素性檢驗以產(chǎn)生一素數(shù)序列。無論何時,當(dāng)發(fā)現(xiàn)一數(shù)值為一合數(shù)時,將h加2,并且檢驗新的hP+1。一旦發(fā)現(xiàn)一數(shù)值hP+1為一素數(shù),在下次搜索時,該數(shù)值會用作新的素數(shù)P。
P.Mihailescu在一篇題為「產(chǎn)生可能素數(shù)的技術(shù)」〔IEEE P1963 Submission(1994)〕的論文中,敘述了一產(chǎn)生素數(shù)的篩選方法,素數(shù)形式為
N=2*(t+k)*Q+1,式中通過加k以某一方式進行候選素數(shù)的增量搜索。
J.Brandt et al.在一篇題為「關(guān)于以增量搜索來產(chǎn)生可能素數(shù)」〔Advancesin Cryptology-Crypto‘92,Springer-Verlag(1993),pp.358-370〕的論文中,敘述了一種對候選數(shù)作素性檢驗的增量搜索。在該文中,用來以在前檢驗的候選數(shù)產(chǎn)生新的候選數(shù)的增量永遠(yuǎn)為2。
本發(fā)明的一個目的在于提供一計算機軟件(或韌件)方法,通過該方法,一編制了所述軟件的計算機系統(tǒng)或芯片可以有效地免除對不太可能的候選數(shù)作素性檢驗以便可以快速地產(chǎn)生以及檢驗可用于諸如密鑰生成的密碼應(yīng)用的可能素數(shù)。
本發(fā)明的另一個目的在于提供一種以一程控計算機系統(tǒng)或配置的處理芯片的形式的密碼裝置來實施上述的可能素數(shù)產(chǎn)生及檢驗方法。
發(fā)明內(nèi)容
上述的目的藉由一實施一聰明增量以及一小素數(shù)檢驗技術(shù)的方法及裝置來達成,其中的相繼的候選數(shù),從一隨機產(chǎn)生的且為極小素數(shù)(例如2、3、5及7)的互素數(shù)的第一大候選數(shù)開始,將其相對于一指定的小素數(shù)組(例如從11到241的素數(shù))作模簡化及檢驗,直到鑒別出一可能候選數(shù)作更嚴(yán)格的可能素性檢驗為止。
該聰明增量程序函數(shù)尋找相繼的整數(shù)候選數(shù)是通過利用一個相當(dāng)于將選定的極小素數(shù)的互素數(shù)以選定的極小素數(shù)的乘積為模(例如以210為模)所制成的表來確定對下一候選數(shù)的一增量(不一定為2)。該表使以本發(fā)明方法最終找出的素數(shù)的形式保持為不能識別,這對密碼安全性來說是極為需要的。該聰明增量程序函數(shù)可立刻篩出大約四分之三的實在明顯的合數(shù),以致于只有剩余的已知為該些極小素數(shù)的互素數(shù)的候選數(shù)才會于本發(fā)明程序中的小素數(shù)檢驗函數(shù)中接受試除。使用該表還能夠在無需將該大整數(shù)候選數(shù)本身作試除之下就可找到一增量。
小素數(shù)檢驗程序函數(shù)會相對于一列小素數(shù)進行試除。然而,將一組模簡化的數(shù)值而不是將該些極大候選數(shù)本身(例如是32比特大小而不是1024比特的)進行試除可使該程式的速度提高。該些簡化用的模數(shù)為一些小素數(shù)組的大小受限定(例如最大為32比特)的乘積,候選數(shù)將相對于該些相同的小素數(shù)作檢驗。
只有通過小素數(shù)檢驗的候選數(shù)(大約為任何給定范圍中總體整數(shù)的百分之十)才將接受像是Miller-Rabin或Fermat的更嚴(yán)格的可能素性檢驗。
具體實施例方式
本發(fā)明為一以計算機執(zhí)行的用于密碼應(yīng)用的大的(典型為256、324、512、1024比特或更大)可能素數(shù)的產(chǎn)生及檢驗方法。該方法最好實現(xiàn)為軟件程序,其可在一計算機可讀的媒體上儲存及讀取以及可通過一通用的可編程計算機系統(tǒng)來執(zhí)行。該方法也可以實現(xiàn)為在一專用的密碼計算機芯片(例如在一聰明卡)中的韌件,或者甚至可作為可配置的硬件(例如一現(xiàn)場可編程門陣列芯片)或者專用電路系統(tǒng)(例如一專用集成電路芯片),其專門編程或設(shè)計用來在其電路系統(tǒng)中執(zhí)行該方法的步驟??赡芩財?shù)在密碼方面的用途包括產(chǎn)生像是在非對稱(公共-私人密鑰對)編密碼程序中的密鍵??赡芩財?shù)在密碼方面的另一用途為產(chǎn)生像是流密碼通信用的偽隨機數(shù)。本發(fā)明方法典型地為一使用以本方法產(chǎn)生的大的可能素數(shù)的較大密碼計算機程序的一部份。在被編程來執(zhí)行本發(fā)明的方法的時候,計算機系統(tǒng)或?qū)S眯酒梢员灰暈橐环N素數(shù)產(chǎn)生電路或裝置。
本方法通過采用一聰明增量技術(shù)以避免必須檢驗不太可能的候選數(shù)來提高可能素數(shù)的查找速度。選擇一所要求的比特大小(例如1024比特)的隨機數(shù)以及立即將其增量為一極小素數(shù)2、3、5及7的互素數(shù)以產(chǎn)生初始的候選數(shù)。由利用一列小素數(shù)嘗試整數(shù)除法開始,每一候選數(shù)由程控計算機系統(tǒng)或芯片檢驗,并且如果發(fā)現(xiàn)該候選數(shù)為合數(shù)時,則使該候選數(shù)增量一選定的偶數(shù)(不一定為2),以獲得一為極小素數(shù)如2、3、5及7的互素數(shù)的下一候選數(shù)。本方法使用該聰明增量技術(shù)使以整數(shù)除法檢驗的合數(shù)減至最小。不對該大的候選數(shù)直接地進行試除,而是對該候選數(shù)的32比特的模簡化的數(shù)作試除,進一步地提高了本方法的速度。當(dāng)發(fā)現(xiàn)一候選數(shù)通過該小素數(shù)試除檢驗的時候,則可利用一或多種已知的嚴(yán)格的可能素數(shù)檢驗演算法來檢驗該有可能的候選數(shù),例如Miller-Rabin檢驗或Fermat檢驗。因為這些檢驗較費時(例如上述的兩種檢驗皆使用模冪運算),所以只有當(dāng)那些可能候選數(shù)在整數(shù)除法中被找出為小素數(shù)的互素數(shù)時,該些可能候選數(shù)才會接受更嚴(yán)格的檢驗。
計算機程序的主要部分可以包括以下部份
MainIncrement=SmartIncrement(true); AleaIsComposite=SmallPrimesTest(true); Label Generate_Candidate While(AleaIsComposite=true)do Begin LocalIncrement=SmartIncrement(false); MainIncrement=MainIncrement+LocalIncrement; For Counter=0 to MAX_MODULI-1 do Begin Table_Mod[Counter]=(Table_Mod[Counter]+LocalIncrement)% Table_Reductions[Counter]; End; AleaIsComposite=SmallPrimesTest(false); End; Alea=Alea+MainIncrement; If(not Number_Is_Probably_Prime(Alea))then Begin AleaIsComposite=true; Goto Generate_Candidate; End;
在此程序中,″Alea″為待檢驗的隨機挑選的候選的整數(shù)的名稱??梢允褂萌魏坞S機或偽隨機數(shù)生成程序,其能夠快速地產(chǎn)生一具有要求大小的極大奇數(shù)的候選數(shù)?!錝mallPrimesTest″及″SmartIncrement″分別為本發(fā)明將候選數(shù)相對于一列小素數(shù)進行整數(shù)除法檢驗以及聰明增量技術(shù)的函數(shù),以下將作更詳細(xì)地敘述。在最后,我們獲得一個數(shù),其為該些檢驗用的小素數(shù)的互素數(shù)(即″AleaIsComposite″的布爾值為假)。然后,對該數(shù)可以使用任何一或多種適用的更嚴(yán)格的傳統(tǒng)素性檢驗方法(由函數(shù)呼叫″Number_Is_Probably_Prime″示出)。不過,這種嚴(yán)格的檢驗只在那些首先通過SmallPrimesTest的候選數(shù)上實行。(大約百分之九十的可能候選數(shù)因為通過SmartIncrement及SmallPrimesTest函數(shù)被證實為合數(shù)而遭排除,所以較嚴(yán)格的檢驗只在剩余的百分之十的候選數(shù)上進行。)如果該候選數(shù)不能通過那些選擇的嚴(yán)格素性檢驗,則會在主程序停止的地方產(chǎn)生一新的候選數(shù)。
該SmartIncrement函數(shù)使用以下的表
Table_210[210]={0,1,0,0,0,0,0,0,0,0,0,11,0,13,0,0,0,17,0,19,0,0,0,23,0,0,0,0,0,29,0,31,0,0,0,0,0,37,0,0,0,41,0,43,0,0,0,47,0,0,0,0,0,53,0,0,0,0,0,59,0,61,0,0,0,0,0,67,0,0,0,71,0,73,0,0,0,0,0,79,0,0,0,83,0,0,0,0,0,89,0,0,0,0,0,0,0,97,0,0,0,101,0,103,0,0,0,107,0,109,0,0,0,113,0,0,0,0,0,119,0,121,0,0,0,0,0,127,0,0,0,131,0,0,0,0,0,137,0,139,0,0,0,143,0,0,0,0,0,149,0,151,0,0,0,0,0,157,0,0,0,0,0,163,0,0,0,167,0,169,0,0,0,173,0,0,0,0,0,179,0,181,0,0,0,0,0,187,0,0,0,191,0,193,0,0,0,0,0,199,0,0,0,0,0,0,0,0,0,209}
Table_210包括的零值代表所有那些可被2、3、5或7除盡的數(shù)。但是那些為2、3、5及7的互素數(shù)的數(shù),在表內(nèi)則為非零值,例如為該些整數(shù)本身的值。也可以利用其它的方法區(qū)別在該表中代表可除盡及互素數(shù)數(shù)值的元素。該表有助于SmartIncrement選擇一為2、3、5及7的互素數(shù)的候選數(shù),以便利用SmallPrimesTest函數(shù)作進一步的整數(shù)除法檢驗。
該SmartIncrement函數(shù)可以包括以下的程序步驟
Function SmartIncrement(FirstCallBoolean)integer Var Incrementinteger; Begin If(FirstCall=true)then Begin<!-- SIPO <DP n="5"> --><dp n="d5"/> Mod_210=Alea%210; Increment=0; End Else Begin Mod_210=(Mod_210+2)%210; Increment=2; End; While(Table_210[Mod_210]=0)do Begin Mod_210=(Mod_210+2)%210; Increment=Increment+2; End; Return(Increment) End;
SmartIncrement的這一實施例確保每個隨后的候選數(shù)不可以被2、3、5及7除盡。Alea不會被直接使用。更確切地說,增量計算可以基于將Alea以210為模的余數(shù)(即是模余數(shù))。該函數(shù)逐步的通過表Table_210來尋找,直到發(fā)現(xiàn)該表中下一個由Mod_210所指的值(相當(dāng)于相應(yīng)的數(shù)值A(chǔ)lea+Increment)為非零值,即是2、3、5及7的互素數(shù)。對于密碼應(yīng)用來說,重要的是不要使用一具有已知的具體形式的素數(shù)。因此,舉例來說,候選數(shù)的選擇不要限于那些相當(dāng)于將1以210為模的余數(shù),即使該些候選數(shù)會較容易計算。在適當(dāng)?shù)男薷南?,可以使用一?310個數(shù)值組成的較大表以鑒定2、3、5、7及11的互素數(shù)的整數(shù),但由于該表中的極小素數(shù)的數(shù)目增加,返回則會逐漸減少。(除了48/210或22.86%的候選數(shù),Table_210可排除所有的,而較大的Table_2310則除了480/2310或20.78%的候選數(shù),可排除所有的。)要較佳地檢驗較大的小素數(shù)(例如11至241),使用試除勝于用基于表的聰明增量。
小素數(shù)檢驗會利用以下一些表
Table_SmallPrimes
={11,13,17,19,23,29,31,37,41,43,47,53,59,59,61,67,71,73,79,83,89,97,101,103,107,109,1113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241};
Table_Reductions
={11*13*17*19*23*29*31,37*41*43*47*53,59*61*67*71*73,79*83*89*97,101*103*107*109,113*127*131*137,139*149*151*157,163*167*173*179,181*191*193*197,199*211*223*227,229*233*239*241};
Table_SmallPrimesIndexes
={0,7,12,17,21,25,29,33,37,41,45}。
第一表及第二表分別為一列小于250的基本的已知素數(shù)以及以該列中的一些素數(shù)組的乘積。在該些表中,素數(shù)2、3、5及7不包括在內(nèi),因為要保證該隨機數(shù)″Alea″不僅為奇數(shù),而且還要利用以上文詳細(xì)說明的″SmartIncrement″程序?qū)⑵溥x擇為3、5及7的互素數(shù)。第二表中的乘積的大小限于32比特以便于除法運算。(可以采用64比特或更大的乘積來代替,隨可用的硬件而定。)第三″索引″表用來指出在該列小素數(shù)中與第二表中的乘積相應(yīng)的連續(xù)的子集于第一表中的地址。
該表的大小可以擴大或縮小,取決于所要求的檢驗次數(shù)。要認(rèn)定所要求檢驗的次數(shù),通??苫诒仨毊a(chǎn)生的素數(shù)的比特大小。對于那些比本文給出的表更大的表來說,可以較方便地從所有2、3、5及7的互素數(shù)得出該些表,而不是從素數(shù)本身。雖然除了素數(shù)之外,可以包括少數(shù)的合數(shù)(例如可將121、143、169、187、209、221及247加到所述表之中),但產(chǎn)生檢驗用數(shù)值的簡易性可能比令檢驗較絕對需時稍長來得重要。此外,當(dāng)該列小素數(shù)變得較長時,藉由小素數(shù)試除排除證實的合數(shù)則使返回會逐漸減少。至于何時需要從試除轉(zhuǎn)變到更為嚴(yán)格的Miller-Rabin、Fermat或者一些其它的可能素數(shù)檢驗則為一判斷的問題,主要取決于候選數(shù)的比特大小及所要求的保密級。
小素數(shù)檢驗函數(shù)的計算機程序可以包括如下
Function SmallPrimesTest(FirstCallboolean)boolean;<!-- SIPO <DP n="7"> --><dp n="d7"/>Var Compositeboolean;BeginIf(FirstCall=True)thenBeginFor Counter=0 to MAX_MODULI-1 do Begin Table_Mod[Counter]=Alea%Table_Reductions[Counter]; End;End;Composite=false;While(Composite=false)doBeginCounter=0;While((Composite=false)and(Counter<MAX_MODULI))do Begin CounterPrimes=Table_SmallPrimes[Table_SmallPrimesIndexes[Counter]];While((Composite=false)and (CounterPrimes<Table_SmallPrimesIndexes[Counter+1]))do Begin If(((Table_Mod[Counter]+MainIncrement)% Table_SmallPrimes[CounterPrimes])=0)then Composite=true; Else CounterPrimes=CounterPrimes+1; End; Counter=Counter+1; End;End;Return Composite;End;
在首次執(zhí)行小素數(shù)檢驗的時候,通過以″Table_Reductions″中的每一素數(shù)乘積來進行模除以獲得一組32比特余數(shù),原來的大候選整數(shù)″Alea″首先被簡化為一個小得多的32比特整數(shù)表″Table_Mod″。這些在″Table_Mod″中的數(shù)值應(yīng)該被程序保留以供每一隨后的″SmallPrimesTest″函數(shù)呼叫使用,以致于該大整數(shù)除法無需重算。然后,在以目前的試增量″MainIncrement″對″Table_Mod″中的數(shù)作首次增量之后,繼而使用索引表將該候選數(shù)相對于相應(yīng)簡化用的乘積中的相同素數(shù)來進行試除檢驗,并且檢查其余數(shù)。如果以任何在″TableSmallPrimes″中的小素數(shù)作試除的結(jié)果為零值,那么目前的候選數(shù)就被確定為合數(shù),并且送回真值(Composite=true),而無需對該候選數(shù)作任何進一步的試除。如果以所有測試的小素數(shù)得出的余數(shù)皆為非零值,那么就送回假值(Composite=false),而且主程序會繼續(xù)進行更嚴(yán)格的可能素性檢驗。
一旦一候選數(shù)通過所有檢驗,即證明該數(shù)為一可能素數(shù)。然后,該數(shù)會由密碼程序的其它部份用于這樣一些應(yīng)用,像非對稱(公用密鑰)分組密碼的密鑰生成或者流密碼通信用的偽隨機數(shù)生成(如美國專利號4,780,840中所述)。尤其相關(guān)的應(yīng)用是在聰明卡交易中產(chǎn)生話路密鑰,因為較快產(chǎn)生以及檢驗速度使本方法能夠通過放置在聰明卡上的單一芯片處理器毫無延誤地執(zhí)行。
權(quán)利要求
1.一種計算機執(zhí)行的密碼程序應(yīng)用中用作一基本部件的程序方法,所述應(yīng)用的安全性取決于大素數(shù),所述方法產(chǎn)生一或多個用于所述密碼應(yīng)用的可能候選素數(shù),其特征在于所述方法包括以硬件執(zhí)行的密碼應(yīng)用指令,所述指令按以下的步驟程序?qū)嵤?br>
提供一具有一指定的第一比特大小的偽隨機數(shù);
將所述偽隨機數(shù)加上一第一增量以產(chǎn)生一第一候選數(shù),所述第一增量要這樣選擇以使所述第一候選數(shù)為一組極小素數(shù)的互素數(shù);
由所述第一候選數(shù)開始,通過相對于一列除所述極小素數(shù)組之外的小素數(shù)作試除來重復(fù)地檢驗相繼的候選數(shù),直到找出一候選數(shù),其為所述列中全部的所述小素數(shù)的互素數(shù),所述相繼候選數(shù)由以下部驟檢驗
(i)計算所述第一候選數(shù)的一組模簡化數(shù),所述模簡化數(shù)組的元素為余數(shù),所述余數(shù)相當(dāng)于所述第一候選數(shù)以一所述小素數(shù)列中的一些不同素數(shù)組的每一相應(yīng)乘積為模,所述乘積具有一指定的最大第二比特大小,所述第二比特大小比所述第一比特大小至少小四分之三;
(ii)維持一主增量,對于每一所述相繼候選數(shù),所述主增量都要校正,當(dāng)以每一相繼更新的所述主增量加到所述第一候選數(shù)時,就會提供下一個為所述極小素數(shù)組的互素數(shù)的所述相繼候選數(shù);
(iii)對于以目前校正的所述主增量來增量的所述模簡化數(shù)組的每一元素,除非以及直到找出一候選數(shù)為合數(shù)為止,通過相對于相應(yīng)的小素數(shù)組的每一素數(shù)作試除檢驗所述的增量的元素以確定所得余數(shù)是否為零值,如是的話,則標(biāo)明目前的候選數(shù)為合數(shù);
在找出一為所述列中全部的所述小素數(shù)的互素數(shù)之后,使相等于所述第一候選數(shù)與所述目前的主增量相加的所述候選數(shù),接受至少一公知的嚴(yán)格的可能素性檢驗,而且假如根據(jù)任何一所述嚴(yán)格檢驗找出一候選數(shù)為合數(shù),那么就如前所述般通過相對于所述小素數(shù)組作試除不斷地檢驗所述相繼候選數(shù)直到找出一既通過所述小素數(shù)試除又通過所述嚴(yán)格檢驗的候選數(shù),這樣的候選數(shù)被認(rèn)為是一可能素數(shù);以及
將所述可能素數(shù)用于所述密碼程序。
2.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述處理硬件包括一通用的可編程計算機系統(tǒng),而所述程序為一可由所述計算機系統(tǒng)讀取的軟件形式。
3.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述處理硬件包括一集成電路片,而所述程序為一可由所述電路片存取的韌件形式。
4.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述處理硬件包括一可配置的邏輯片,而所述邏輯片可為一配置作執(zhí)行所述程序的現(xiàn)場可編程邏輯陣列。
5.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述程序可以以一專用集成電路的形式專門用來執(zhí)行所述程序步驟。
6.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述第一比特大小至少為256比特。
7.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述第二比特大小為32比特。
8.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述極小素數(shù)組包括2、3、5及7。
9.根據(jù)權(quán)利要求8所述的程序方法,其特征在于所述小素數(shù)列包括11至241的所有相繼的素數(shù)。
10.根據(jù)權(quán)利要求8所述的程序方法,其特征在于通過使一相當(dāng)于所述偽隨機數(shù)以210為模的余數(shù)與一表示0到209數(shù)值的210個元素的表作比較,得出所述第一增量,其中在所述表中,與所有的2、3、5及7的互素數(shù)數(shù)值相應(yīng)的所述表元素不同于可被2、3、5及7之中任何一個除盡的數(shù)相應(yīng)的所述表元素,而且進行比較是要找出一增量,其將使所述余數(shù)成為一為所有的2、3、5及7的互素數(shù)的數(shù)值。
11.根據(jù)權(quán)利要求10所述的程序方法,其特征在于通過與所述有210元素的表比較得出所述主增量,所述每一相繼的主增量值可使所述余數(shù)成為所述表中的素數(shù)的下一互素數(shù)。
12.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述公知的嚴(yán)格的可能素性檢驗包括Miller-Rabin檢驗。
13.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述公知的嚴(yán)格的可能素性檢驗包括Fermat檢驗。
14.根據(jù)權(quán)利要求1所述的程序方法,其特征在于所述可能素數(shù)用于產(chǎn)生至少一密碼密鑰。
全文摘要
本發(fā)明提供一種快速地產(chǎn)生以及檢驗用于密碼應(yīng)用的可能素數(shù)的計算機程序。該在計算機硬件上執(zhí)行的程序指令所執(zhí)行的步驟包括一聰明增量程序函數(shù),其尋找相繼的候選數(shù)是通過利用一相當(dāng)于選定的極小素數(shù)的互素數(shù)的表以找出加到下一候選數(shù)的一增量,藉此可篩出大約四分之三的實在明顯的無需接受試除的部分。該程序指令還包括一小素數(shù)檢驗程序函數(shù),其通過將模簡化數(shù)而不是該些極大候選數(shù)本身相對于一列小素數(shù)進行試除以提高試除速度。只有大約百分之十的通過小素數(shù)檢驗的候選數(shù)將會接著接受更嚴(yán)格,但費時的可能素性檢驗。
文檔編號G06F7/72GK1688973SQ0381831
公開日2005年10月26日 申請日期2003年4月25日 優(yōu)先權(quán)日2002年6月21日
發(fā)明者V·杜帕丘斯 申請人:愛特梅爾股份有限公司