System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及密碼學,具體涉及一種基于隨機比特串的私鑰和公鑰生成方法。
技術介紹
1、目前已知的各種類型的加密程序,既包括對稱型的,也包括非對稱型的。在非對稱加密程序中,可以是采用每個人都知道的公鑰對數據加密,可以只采用通常保密的補充私鑰(complementary?private?key)對所得到的密文解密,也可以采用公鑰/私鑰對生成并驗證數字證書(或簽名)。就數字證書(或簽名)而言,在對某一數據實施的密碼操作中采用私鑰,以生成數字證書(簽名),并采用公鑰驗證加密方的身份。這里,私鑰即是用戶的身份代表,可以用來鑒別用戶的真偽。
2、公鑰可能被廣泛傳播,但是私鑰通常僅少數方知道。公鑰可以被用于加密僅可以利用私鑰解密的消息。已知的公鑰加密系統依賴于基于數學問題的密碼算法,例如,rsa公鑰加密系統依賴于整數分解的難度,基于橢圓曲線的公鑰加密依賴于離散對數的難度,但隨著量子技術的發展,最廣泛采用的公鑰密碼系統,即rsa和橢圓曲線密碼學(ecc),將被通用量子計算機破解,其變得不再安全。
3、非確定性多項式時間問題(np問題)是一類重要的計算問題,其解可以在非確定性圖靈機上以多項式時間內驗證,但尋找解卻可能需要指數時間。近年來,np問題的解在密碼學領域找到了廣泛的應用,特別是基于np問題解的密碼學利用np問題的難解性來構建安全的身份驗證機制。例如,可以將一個np問題的解作為用戶的私鑰,并將問題本身作為公鑰。用戶可以通過提供其私鑰來證明其身份,而攻擊者則很難在沒有私鑰的情況下找到問題的解。
4、滿足性問
5、由此可見,2-out-of-4sat問題的上述特性,使其在密碼學領域具有潛在的應用價值;然而,目前尚不存在利用2-out-of-4sat的問題特性,選擇二進制比特串作為密碼,將問題的解作為私鑰,將問題本身作為公鑰,即基于二進制比特串生成私鑰和公鑰的方法,這限制了其在實際應用中的推廣和發展。
技術實現思路
1、專利技術目的:本專利技術目的是提供一種基于隨機比特串的私鑰和公鑰生成方法,采用本專利技術所生成的私鑰和公鑰具有抗量子計算能力,解決了目前的密碼學體系公鑰私鑰易被量子計算機破解的問題;還解決了2-out-of-4sat問題的特性在實際應用中無法推廣和發展的問題。
2、技術方案:本專利技術一種基于隨機比特串的私鑰和公鑰生成方法,包括以下步驟:
3、(1)獲取n個變量:獲取一個長度為n的二進制隨機比特串,并將該比特串的每一位對應賦值給n個變量的每一個變量,將n個變量記作{a1,a2,…,an};
4、(2)生成子句:基于n個變量生成m個子句,將m個子句記作{c1,c2,…,cm},并將每個子句中涉及的4個變量按照腳標的大小順序進行排列;
5、(3)構建子句矩陣:將m個子句轉化為子句矩陣p,該子句矩陣p為一個m×4的矩陣,子句矩陣p的每個矩陣元pcd∈[1,n],pcd表示為第c個子句中涉及的第d個變量的腳標值,其中c∈[1,m],d∈[1,4];
6、(4)輸出結果:將步驟(3)中的子句矩陣p作為公鑰進行輸出,將n個變量{a1,a2,…,an}作為私鑰,分發給需要私鑰的用戶。
7、進一步地,所述基于n個變量生成m個子句的具體過程步驟為:
8、1)確定一個概率參數pa,該概率參數pa用于控制生成子句的概率,其取值范圍為0<pa<1;
9、2)不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合,判斷該變量組合是否滿足2個變量數值為1和2個變量數值為0的條件,若滿足,執行下一步;若不滿足,繼續遍歷;
10、3)響應于選擇4個不同變量的變量組合滿足2個變量數值為1和2個變量數值為0的條件,則基于概率參數pa確定是否將該變量組合作為一個子句;
11、4)重復執行步驟2)和步驟3),對生成的子句數量進行計數,若計數數值小于m,則繼續執行,直至子句數量的計數數值等于m。
12、進一步地,所述步驟1)中概率參數pa與子句數量m滿足以下條件:
13、
14、其中,!表示階乘,n表示變量數。
15、進一步地,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
16、首先從n個變量中任選4個不同的變量,作為第一變量組合,判斷該第一變量組合是否滿足2個變量數值為1和2個變量數值為0的條件;判斷完成后,從剩下的n-4個變量中再任選4個不同的變量,作為第二變量組合,判斷該第二變量組合是否滿足2個變量數值為1和2個變量數值為0的條件;依此類推。
17、進一步地,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
18、首先從n個變量中任選4個不同的變量,作為第一變量組合,判斷該第一變量組合是否滿足2個變量數值為1和2個變量數值為0的條件,若滿足,則下一次從剩下的n-4個變量中任選4個不同的變量,作為第二變量組合;若不滿足,則將該4個變量放回,下一次從n個變量中重新任選4個不同的變量,作為第二變量組合,此刻的第二變量組合與第一變量組合不同,判斷該第二變量組合是否滿足2個變量數值為1和2個變量數值為0的條件;依此類推。
19、進一步地,所述步驟3)中基于概率參數pa確定是否將該變量組合作為一個子句是指:
20、在選擇4個不同變量的變量組合滿足2個變量數值為1和2個變量數值為0的條件下,從本地隨機生成一個0~1之間的隨機小數,比較隨機小數和概率參數pa的大小,若隨機小數小于概率參數pa,則將該4個不同變量的變量組合作為一個子句;若隨機小數大于概率參數pa,則放棄該4個不同變量的變量組合。
21、進一步地,所述每個子句中涉及的4個變量按照腳標的大小順序進行排列是指:
22、對于m個子句{c1,c2,…,cm}中第t個子句ct,t∈[1,m],設其涉及的4個變量為(ai,aj,ak,al),i<j<k<l,則將該子句表示為ct(ai,aj,ak,al)。
23、進一步地,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
24、首先從n個變量中任選4個不同的變量,作為第一變量組合,判斷該第一變量組合是否滿足2個變量數值為1和2個變量數值為0的條件;判斷完成后,則將該4個變量放回,下一次從n個變量中重新任選4個不同的變量,作為第二變量組合,此刻的第二變量組合與第一變量組合不同,判斷該第二本文檔來自技高網...
【技術保護點】
1.一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述基于n個變量生成m個子句的具體過程步驟為:
3.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟1)中概率參數pa與子句數量m滿足以下條件:
4.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
5.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
6.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟3)中基于概率參數pa確定是否將該變量組合作為一個子句是指:
7.根據權利要求1所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述每個子句中涉及的4個變量按照腳標的大小順序
8.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
...【技術特征摘要】
1.一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述基于n個變量生成m個子句的具體過程步驟為:
3.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟1)中概率參數pa與子句數量m滿足以下條件:
4.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰生成方法,其特征在于,所述步驟2)中不重復地遍歷步驟(1)中獲得的n個變量中4個不同變量的變量組合的過程為:
5.根據權利要求2所述的一種基于隨機比特串的私鑰和公鑰...
【專利技術屬性】
技術研發人員:李明陽,翁晨洵,陳增兵,張超,朱夢雅,徐乃瑞,
申請(專利權)人:南京大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。