用于質數產生及存儲的方法及設備的制造方法
【技術領域】
[0001]各種特征涉及密碼術,且更具體地說,涉及質數的產生及有效存儲的方法及設備。
【背景技術】
[0002]許多密碼安全算法,例如維斯特沙米爾阿德曼(Rivest Shamir Adleman) (RSA)算法,利用密碼密鑰來操作。這些密鑰通常使用可要求相對大的(例如,512位、1,024位,等)的質數的密鑰產生過程而產生。然而,質數產生為緩慢的過程,且與質數產生相關聯的處理時間通常充當密鑰產生過程中的瓶頸。所要求的處理時間與待通過密鑰產生過程產生的密鑰的位長的立方成比例。舉例來說,產生2,048位及3,072位密碼密鑰可比產生1,024位密鑰分別慢8倍及27倍。在功率及速度約束相干的移動裝置應用中,功率消耗及處理時間的這些增加為有害的。
[0003]根據一些應用,可“離線”產生密碼密鑰,因為在應用實際上需要密碼密鑰之前產生所述密碼密鑰。密碼密鑰或用于產生以此離線方式產生的密碼密鑰的質數通常存儲于存儲器中,且接著按需求被傳遞到應用。在此情況下,幾乎去除與上文所描述的密鑰產生相關聯的處理時間的瓶頸。然而,伴隨這些離線密鑰產生方案的一個突出難題為密鑰及/或用于產生密鑰的質數可為相對大的(例如,1,024位以上),且所要求存儲這些大密鑰及/或質數的必要的存儲器電路可能不始終容易地可得到。使問題復雜的是,常規數據壓縮技術在這些情況下并非非常適用,因為密碼密鑰及質數具有高熵且無法通過傳統壓縮算法有效地壓縮。
[0004]因此,對于輔助質數產生及存儲以便最小化所要求存儲用于密碼安全算法(例如,RSA)中的大質數的存儲器的量的新方法及設備存在需求。
【發明內容】
[0005]—個特征提供一種用于產生及存儲用于質數產生的種子值的方法。所述方法包括通過重復地進行以下操作產生質數:產生具有k位的隨機數種子S;基于所述種子S產生具有η位的隨機數R,其中k小于η;以及確定所述隨機數R是否為質數,直到確定所產生的所述隨機數R為質數為止。將用于產生確定為質數的所述隨機數R的所述隨機數種子S存儲于存儲器電路中。根據一個方面,所述方法進一步包括從所述存儲器電路檢索所述所存儲的隨機數種子S以及基于所述隨機數種子S再生所述質數。根據另一方面,所述方法進一步包括基于所述質數產生密碼密鑰。
[0006]根據一個方面,所述方法進一步包括在存儲所述種子S之后從存儲器電路刪除所述隨機數R。根據另一方面,產生所述隨機數R進一步基于秘密密鑰ks。根據又另一方面,所述方法進一步包括將用于產生確定為質數的所述隨機數R的所述秘密密鑰ks存儲于安全存儲器電路中。
[0007]根據一個方面,在從密碼密鑰產生過程接收針對一或多個質數的請求之前存儲所述隨機數種子S。根據另一方面,基于所述種子S產生所述隨機數R包含執行接收所述種子S作為輸入及產生所述隨機數R作為輸出的單向函數f,且所述單向函數f為安全散列函數及/或分塊加密中的至少一者。
[0008]另一特征提供一種用于產生及存儲用于質數產生的種子值的設備,其中所述設備包括存儲器電路及以通信方式耦合到所述存儲器電路的處理電路,所述處理電路經配置以:通過重復地進行以下操作產生質數:產生具有k位的隨機數種子S;基于所述種子S產生具有η位的隨機數R,其中k小于η;以及確定所述隨機數R是否為質數,直到確定所產生的所述隨機數R為質數為止;以及將用于產生確定為質數的所述隨機數R的所述隨機數種子S存儲于所述存儲器電路中。根據一個方面,所述處理電路經進一步配置以以從所述存儲器電路檢索所述所存儲的隨機數種子S,以及基于所述隨機數種子S再生所述質數。根據另一方面,所述處理電路經進一步配置以基于所述質數產生密碼密鑰。根據又另一方面,在從密碼密鑰產生過程接收針對一或多個質數的請求之前存儲所述隨機數種子S。根據另一方面,產生確定為質數的所述隨機數R進一步基于秘密密鑰ks,且所述處理電路經進一步配置以將所述秘密密鑰ks存儲于安全存儲器電路中。
[0009]另一特征提供一種用于產生及存儲用于質數產生的種子值的設備,其中所述設備包括:用于通過重復地進行以下操作產生質數的裝置:產生具有k位的隨機數種子S;基于所述種子S產生具有η位的隨機數R,其中k小于η;以及確定所述隨機數R是否為質數,直到確定所產生的所述隨機數R為質數為止;以及用于將用于產生確定為質數的所述隨機數R的所述隨機數種子S存儲于存儲器電路中的裝置。根據一個方面,所述設備進一步包括用于從所述存儲器電路檢索所述所存儲的隨機數種子S的裝置以及用于基于所述隨機數種子S再生所述質數的裝置。根據另一方面,產生確定為質數的所述隨機數R進一步基于秘密密鑰ks,且所述設備進一步包括用于將所述秘密密鑰ks存儲于安全存儲器電路中的裝置。
[0010]另一特征提供一種其上存儲有一或多個指令的計算機可讀存儲媒體,所述指令在由至少一個處理器執行時致使所述處理器:通過重復地進行以下操作產生質數:產生具有k位的隨機數種子S;基于所述種子S產生具有η位的隨機數R,其中k小于η;以及確定所述隨機數R是否為質數,直到確定所產生的所述隨機數R為質數為止;以及將用于產生確定為質數的所述隨機數R的所述隨機數種子S存儲于存儲器電路中。根據一個方面,所述指令進一步致使所述處理器從所述存儲器電路檢索所述所存儲的隨機數種子S以及基于所述隨機數種子S再生所述質數。
[0011]另一特征提供一種用于產生及存儲用于質數產生的種子值的方法,其包括:產生具有k位的隨機數種子S及各自具有g位的多個補充種子;產生各自基于所述多個補充種子^中的不同補充種子及所述隨機數種子S的多個第二種子S1;產生各自具有η位的多個隨機數&,其中η小于k+g,且所述多個隨機數R,中的每一者基于所述多個第二種子Si*的不同第二種子;確定所述多個隨機數仏中的至少一個隨機數Rp為質數,所述隨機數Rp基于所述多個第二種子Si中的第二種子SP,所述第二種子SP基于所述多個補充種子1\中的補充種子TP及所述隨機數種子S;以及將所述隨機數種子S及所述補充種子Tp存儲于存儲器電路中。根據一個方面,所述多個隨機數仏進一步基于秘密密鑰ks,且所述方法進一步包括將所述秘密密鑰ks存儲于安全存儲器電路中。根據另一方面,所述方法進一步包括從所述存儲器電路檢索所述所存儲的隨機數種子S及所述補充種子Tp以及基于所述隨機數種子S及所述補充種子Tp再生所述質數隨機數RP。根據又另一方面,在從密碼密鑰產生過程接收針對一或多個質數的請求之前存儲所述隨機數種子S及所述補充種子Tp,且所述方法進一步包括:從所述密碼密鑰產生過程接收針對一或多個質數的所述請求;基于所述質數隨機數Rp產生密碼密鑰;以及將所述密碼密鑰提供到所述密碼密鑰產生過程。
[0012]根據一個方面,基于所述多個第二種子S,中的所述不同第二種子產生所述多個隨機數仏包含執行接收所述多個第二種子Si*的每一者作為輸入且產生所述多個隨機數仏作為輸出的單向函數f,且所述單向函數f為安全散列函數及/或分塊加密中的至少一者。根據另一方面,所述方法進一步包括:確定所述多個隨機數仏中的至少一個隨機數不為質數;產生具有g位的另一補充種子T2;基于所述補充種子T2及所述隨機數種子S產生另一第二種子&;產生具有η位的另一隨機數心,所述隨機數R2基于所述第二種子&;確定所述隨機數心為質數;以及將所述補充種子T2存儲于所述存儲器電路中。根據又另一方面,所述方法進一步包括從所述存儲器電路檢索所述所存儲的隨機數種子S及所述補充種子T2W及基于所述隨機數種子S及所述補充種子!^再生所述質數隨機數R2。根據另一方面,所述方法進一步包括:接收針對預定數目個質數的請求;以及重復產生另一補充種子T2的方法步驟;基于所述補充種子Τ2及所述隨機數種子S產生另一第二種子&;產生具有η位的另一隨機數他,所述隨機數R2基于所述第二種子&;確定所述隨機數他為質數;以及將所述補充種子T2存儲于所述存儲器電路中,直到已存儲數目等于所述預定數目的各自與不同質數相關聯的補充種子為止。
[0013]另一特征提供一種用于產生及存儲用于質數產生的種子值的設備,其中所述設備包括存儲器電路以及以通信方式耦合到所述存儲器電路的處理電路,所述處理電路經配置以:產生具有k位的隨機數種子S及各自具有g位的多個補充種子;產生各自基于所述多個補充種子^中的不同補充種子及所述隨機數種子S的多個第二種子S1;產生各自具有η位的多個隨機數&,其中η小于k+g,且所述多個隨機數&中的每一者基于所述多個第二種子Si*的不同第二種子;確定所述多個隨機數仏中的至少一個隨機數Rp為質數,所述隨機數Rp基于所述多個第二種子Si中的第二種子SP,所述第二種子SP基于所述多個補充種子1\中的補充種子Tp及所述隨機數種子S;以及將所述隨機數種子S及所述補充種子Tp存儲于所述存儲器電路中。根據一個方面,所述多個隨機數Ri進一步基于秘密密鑰ks,且所述處理電路經進一步配置以將所述秘密密鑰ks存儲于安全存儲器電路中。根據另一方面,所述處理電路經進一步配置以從所述存儲器電路檢索所述所存儲的隨機數種子S及所述補充種子Tp以及基于所述隨機數種子S及所述補充種子Tp再生所述質數隨機數RP。根據又另一方面,在從密碼密鑰產生過程接收針對一或多個質數的請求之前存儲所述隨機數種子S及所述補充種子TP,且所述處理電路經進一步配置以:從所述密碼密鑰產生過程接收針對一或多個質數的所述請求;基于所述質數隨機數Rp產生密碼密鑰;以及將所述密碼密鑰提供到所述密碼密鑰產生過程。
[0014]根據一個方面,基于所述多個第二種子S,中的所述不同第二種子產生所述多個隨機數仏包含所述處理電路經進一步配置以執行接收所述多個第二種子&中的每一者作為輸入及產生所述多個隨機數仏作為輸出的單向函數f,且所述單向函數f為安全散列函數及/或分塊加密中的至少一者。根據另一方面,所述處理電路經進一步配置以:確定所述多個隨機數仏中的至少一個隨機數不為質數;產生具有g位的另一補充種子T2;基于所述補充種子Τ2及所述隨機數種子S產生另一第二種子&;產生具有η位的另一隨機數他,所述隨機數他基于所述第二種子&;確定所述隨機數他為質數;以及將所述補充種子T2存儲于所述存儲器電路中。根據又另一方面,所述處理電路經進一步配置以從所述存儲器電路檢索所述所存儲的隨機數種子S及所述補充種子!^以及基于所述隨機數種子S及所述補充種子!^再生所述質數隨機數R2。
[0015]另一特征提供一種用于產生及存儲用于質數產生的種子值的設備,其中所述設備包括:用于產生具有k位的隨機數種子S及各自具有g位的多個補充種子1\的裝置;用于產生各自基于所述多個補充種子^中的不同補充種子及所述隨機數種子s的多個第二種子裝置;用于產生各自具有η位的多個隨機數&的裝置,其中η小于k+g,且所述多個隨機數Ri中的每一者基于所述多個第二種子S,中的不同第二種子;用于確定所述多個隨機數R,中的至少一個隨機數Rp為質數的裝置,所述隨機數Rp基于所述多個第二種子31中的第二種子SP,所述第二種子Sp基于所述多個補充種子1\中的補充種子Tp及所述隨機數種子S;以及用于將所述隨機數種子S及所述補充種子Tp存儲于存儲器電路中的裝置。根據一個方面,所述設備進一步包括用于從所述存儲器電路檢索所述所存儲的隨機數種子S及所述補充種子Tp的裝置以及基于所述隨機數種子S及所述補充種子Tp再生所述質數隨機數RP的裝置。
[0016]另一特征提供一種其上存儲有一或多個指令的計算機可讀存儲媒體,所述指令在由至少一個處理器執行時致使所述處理器:產生具有k位的隨機數種子S及各自具有g位的多個補充種子T1;產生各自基于所述多個補充種子1\中的不同補充種子及所述隨機數種子S的多個第二種子一,;產生各自具有η位的多個