基于口令的認證方法及用于執行該方法的裝置制造方法
【專利摘要】本發明公開一種基于口令的認證方法及用于執行該方法的裝置。根據本發明一個實施例的基于口令的認證方法包括如下步驟:在終端中,利用所述終端用戶的ID以及與服務器交換的密鑰生成因子而生成基于ID的密鑰K;在所述終端中,利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰加密算法而對所述用戶的口令進行加密,并將加密的所述口令發送給所述服務器,從而請求所述終端用戶的認證;在所述終端中,從所述服務器接收針對上述認證請求的響應。
【專利說明】基于口令的認證方法及用于執行該方法的裝置
【技術領域】
[0001]本發明涉及一種網絡上的安全技術。
【背景技術】
[0002]基于口令的密鑰交換協議(PAKE:Password Authenticated Key Exchange)是指參與通信的兩個以上的主體共享基于其中的一個以上主體所掌握的口令而加密的用于通信的密鑰的過程。PAKE可根據其具體實現方式而分為基于公開密鑰證書的PAKE和基于非公開密鑰證書的PAKE。
[0003]對于基于公開密鑰證書的PAKE而言,存在的問題在于為了交換密鑰而始終要有執行公開密鑰認證的步驟,且在服務器的私鑰被泄露時無法保障有關賬戶的前向安全性(forward secrecy)和后向安全性(backward security)。另外,至于為了解決這種基于公開密鑰證書的問題而提出的基于非公開密鑰證書的PAKE (相關規范:IEEE P1363.2以及IS0/IEC11770-4),則由于采用了將口令直接進行冪運算而存儲的認證單元(verifier)構成方式,從而導致了現有的系統中數據遷移(migration)及參數(parameter)更新有困難的新問題。并且,由于采用這種方式時需要將口令與參數組(group parameter)直接結合,因此為了應對離線分析而需要相對較多的實時計算量,存在無法實現協議的消息流靈活交替的問題。
【發明內容】
[0004]本發明旨在解決如上所述的技術問題,本發明實施例的目的在于提供一種通過在現有技術中的基于口令的密鑰交換協議中應用基于ID的加密技術而兼具基于公開密鑰證書的PAKE以及基于非公開密鑰證書的PAKE的所有優點的高效的認證及密鑰交換協議。
[0005]根據本發明一個實施例的一種基于口令的認證方法,包括如下步驟:在終端中,利用所述終端用戶的ID以及與服務器交換的密鑰生成因子而生成基于ID的密鑰K ;在所述終端中,利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰加密算法而對所述用戶的口令進行加密,并將加密的所述口令發送給所述服務器,從而請求所述終端用戶的認證;在所述終端中,從所述服務器接收針對上述認證請求的響應。
[0006]上述密鑰生成步驟可包括如下步驟:在所述終端中,將通過終端側隨機數X計算的第一密鑰要素X發送給服務器;在所述終端中,從所述服務器中接收第二密鑰要素Y,其中,所述終端可利用所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID而生成所述密鑰K。
[0007]所述終端可利用所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成共同哈希值e,并利用所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成所述密鑰K。
[0008]可通過對包含所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I的第一字符串進行哈希運算而生成所述密鑰K。[0009]所述第一密鑰要素X為可通過如下數學式進行計算:
[0010]x=gx
[0011]其中,當把有限群Zn={0,1,2,-,n-1}的最大循環子群的產生源表示為g時,g為
通過g = g2生成的循環子群G的產生源,而N為滿足N=pq的整數,P和q為分別滿足P = 3
(mod4)、q = 3 (mod4)的質數。
[0012]所述密鑰K為可通過如下數學式進行計算:
[0013]K=Ii1 (X,(Y,I),(YIT)
[0014]其中,Ii1為第一隨機哈希函數,I=H (ID), H為滿足關系H:{0,1:T一>G的哈希函數。
[0015]所述方法還可以包括如下步驟:執行完將加密的所述口令發送給所述服務器的步驟之后,在所述終端中利用第二隨機哈希函數h2而對包含所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I的字符串進行哈希運算而生成會話密鑰sk ;在所述終端中,利用第三隨機哈希函數h3而對包含所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、以及所述口令的第二字符串進行哈希運算而生成第一驗證值;在所述終端中,將所述第一驗證值發送給所述服務器。
[0016]所述會話密鑰Sk為可以通過如下數學式進行計算:
[0017]sk=h2 (X,(Y,I),(YIT)
[0018]所述終端可將所述ID與所述第一密鑰要素X —同發送給所述服務器,或者可將所述ID與所述第一驗證值一同發送給所述服務器。
[0019]所述方法在執行完將所述第一驗證值發送給所述服務器的步驟之后,還可以包括如下步驟:在所述終端中,從所述服務器接收第二驗證值;在所述終端中,利用所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、所述口令、以及第四隨機哈希函數h4而驗證所述第二驗證值。
[0020]另外,根據本發明另一實施例的基于口令的認證方法,包括如下步驟:
[0021]在服務器中,利用終端用戶的ID以及與所述終端交換的密鑰生成因子而生成基于ID的密鑰K ;在所述服務器中,從所述終端接收所述用戶的被加密的口令;在所述服務器中,利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰解密算法而對加密的所述口令進行解密,并利用解密的所述口令而認證所述終端用戶。
[0022]上述密鑰生成步驟還可以包括如下步驟:在所述服務器中,從密鑰分配裝置接收對應于所述ID的私鑰Sid ;在所述服務器中,從所述終端接收第一密鑰要素X ;在所述服務器中,將通過服務器側隨機數I計算的第二密鑰要素Y發送給所述終端,其中,所述服務器可利用所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID、以及所述私鑰Sid而生成所述密鑰K。
[0023]所述服務器可利用所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成共同哈希值e,并利用所述共同哈希值e、所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID的哈希值1、以及所述私鑰Sid而生成所述密鑰K。
[0024]可通過將包含所述共同哈希值e、所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID的哈希值1、以及所述私鑰Sid的第一字符串進行哈希運算而生成所述密鑰K。
[0025]所述私鑰Sid為可以通過如下數學式進行計算:
[0026]
【權利要求】
1.一種基于口令的認證方法,包括如下步驟: 在終端中,利用所述終端用戶的ID以及與服務器交換的密鑰生成因子而生成基于ID的密鑰K ; 在所述終端中,利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰加密算法而對所述用戶的口令進行加密,并將加密的所述口令發送給所述服務器,從而請求所述終端用戶的認證; 在所述終端中,從所述服務器接收針對上述認證請求的響應。
2.如權利要求1所述的基于口令的認證方法,其中,上述密鑰生成步驟包括如下步驟: 在所述終端中,將通過終端側隨機數X計算的第一密鑰要素X發送給服務器; 在所述終端中,從所述服務器中接收第二密鑰要素Y, 其中,所述終端利用所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID而生成所述密鑰K。
3.如權利要求1所述的基于口令的認證方法,其中,所述終端利用所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成共同哈希值e,并利用所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成所述密鑰K。
4.如權利要求3所述的基于口令的認證方法,其中,通過對包含所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I的第一字符串進行哈希運算而生成所述密鑰K。
5.如權利要求4所述的基于口令的認證方法,其中,所述第一密鑰要素X為通過如下數學式進行計算:
X=gx 其中,當把有限群Zn= {O,1,2,…,N-1}的最大循環子群的產生源表示為g時,g為通過g = α'生成的循環子群G的產生源,而N為滿足N=pq的整數,P和q為分別滿足p ^ 3(mod4)、q = 3 (mod4)的質數。
6.如權利要求5所述的基于口令的認證方法,其中,所述密鑰K為通過如下數學式進行計算:
K=Ii1 (X,(Y,I),(Yir) 其中,Ii1為第一隨機哈希函數,I=H (ID), H為滿足關系H: {O,I}*—>G的哈希函數。
7.如權利要求6所述的基于口令的認證方法,其中,還包括如下步驟: 執行完將加密的所述口令發送給所述服務器的步驟之后,在所述終端中利用第二隨機哈希函數匕而對包含所述共同哈希值e、所述終端側隨機數X、所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I的字符串進行哈希運算而生成會話密鑰sk ; 在所述終端中,利用第三隨機哈希函數h3而對包含所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、以及所述口令的第二字符串進行哈希運算而生成第一驗證值; 在所述終端中,將所述第一驗證值發送給所述服務器。
8.如權利要求7所述的基于口令的認證方法,其中,所述會話密鑰sk是通過如下數學式進行計算:
sk=h2 (X,(Y,I),(YIe)x)。
9.如權利要求7所述的基于口令的認證方法,其中,所述終端將所述ID與所述第一密鑰要素X —同發送給所述服務器,或者將所述ID與所述第一驗證值一同發送給所述服務器。
10.如權利要求7所述的基于口令的認證方法,其中,在執行完將所述第一驗證值發送給所述服務器的步驟之后,還包括如下步驟: 在所述終端中,從所述服務器接收第二驗證值; 在所述終端中,利用所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、所述口令、以及第四隨機哈希函數h4而驗證所述第二驗證值。
11.一種基于口令的認證方法,包括如下步驟: 在服務器中,利用終端用戶的ID以及與所述終端交換的密鑰生成因子而生成基于ID的密鑰K ; 在所述服務器中,從所述終端接收所述用戶的被加密的口令; 在所述服務器中,利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰解密算法而對加密的所述口令進行解密,并利用解密的所述口令而認證所述終端用戶。`
12.如權利要求11所述的基于口令的認證方法,其中,上述密鑰生成步驟還包括如下步驟: 在所述服務器中,從密鑰分配裝置接收對應于所述ID的私鑰Sid ; 在所述服務器中,從所述終端接收第一密鑰要素X ; 在所述服務器中,將通過服務器側隨機數I計算的第二密鑰要素Y發送給所述終端,其中,所述服務器利用所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID、以及所述私鑰Sid而生成所述密鑰K。
13.如權利要求12所述的基于口令的認證方法,其中,所述服務器利用所述第一密鑰要素X、所述第二密鑰要素Y、以及所述ID的哈希值I而生成共同哈希值e,并利用所述共同哈希值e、所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID的哈希值1、以及所述私鑰Sid而生成所述密鑰K。
14.如權利要求13所述的基于口令的認證方法,其中,通過將包含所述共同哈希值e、所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID的哈希值1、以及所述私鑰Sid的第一字符串進行哈希運算而生成所述密鑰K。
15.如權利要求14所述的基于口令的認證方法,其中,所述私鑰Sid為通過如下數學式進行計算: 其中,當把有限群ZN={0,1,2,…,N-1}的最大循環子群的產生源表示為g時,g為通過i = ^生成的循環子群G的產生源,而N為滿足N=pq的整數,P和q為分別滿足 O OP ^ 3 (mod4), q ^ 3 (mod4)的質數,IDi為構成所述ID的第i個字符,α為所述ID的長度,
16.如權利要求15所述的基于口令的認證方法,其中,所述第二密鑰要素為通過如下數學式進行計算:
Y=gy。
17.如權利要求16所述的基于口令的認證方法,其中,所述密鑰K為通過如下數學式進行計算:
K=Ii1 (X,(Y,I),Xy+SIDXe) 其中,Ii1為第一隨機哈希函數,I=H (ID), H為滿足關系H: {O,I}*—>G的哈希函數。
18.如權利要求17所述的基于口令的認證方法,其中,執行完上述終端認證步驟之后還包括如下步驟: 在所述服務器中,從所述終端接收第一驗證值; 在所述服務器中,利用第二隨機哈希函數h2而對包含所述共同哈希值e、所述第一密鑰要素X、所述服務器側隨機數y、所述第二密鑰要素Y、所述ID的哈希值1、以及所述私鑰Sid的字符串進行哈希運算而生成會話密鑰sk ; 在所述服務器中,利用所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、解密的所述口令、以及第三隨機哈希函數h3而驗證所述第一驗證值。
19.如權利要求18所述的基于口令的認證方法,其中,所述會話密鑰為通過如下數學式進行計算:
sk=h2 (X,(Y,I),Xy+SIDXe)。
20.如權利要求18所述的基于口令的認證方法,其中,所述服務器將所述ID與所述第一密鑰要素X —并接收,或者將所述ID與所述第一驗證值一并接收。
21.如權利要求18所述的基于口令的認證方法,其中,執行完上述第一驗證值驗證步驟之后,還包括如下步驟: 在所述服務器中,利用第四隨機哈希函數h4而對包含所述第一密鑰要素X、所述第二密鑰要素Y、所述ID的哈希值1、所述會話密鑰sk、以及所述口令的第二字符串進行哈希運算而生成第二驗證值; 在所述服務器中,將所述第二驗證值發送給所述終端。
22.如權利要求11所述的基于口令的認證方法,其中,上述終端認證步驟還包括如下步驟: 在所述服務器中,利用硬件安全模塊生成解密的所述口令的消息認證碼值; 判斷生成的所述消息認證碼值和預先存儲的值是否一致。
23.一種用于執行基于口令的認證方法的裝置,包括: 一個以上的處理器; 存儲器; 一個以上的程序, 其中,所述一個以上的程序被存儲于所述存儲器,并通過所述一個以上的處理器而得到執行,而所述程序包括用于執行如下步驟的命令:利用終端用戶的ID以及與服務器交換的密鑰生成因子而生成基于ID的密鑰K ; 利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰加密算法而對所述用戶的口令進行加密,并將被加密的所述口令發送給所述服務器,從而請求所述終端用戶的認證; 從所述服務器接收針對上述認證請求的響應。
24.一種用于執行基于口令的認證方法的裝置,包括: 一個以上的處理器; 存儲器; 一個以上的程序, 其中,所述一個以上的程序被存儲于所述存儲器,并通過所述一個以上的處理器而得到執行,而所述程序包括用于執行如下步驟的命令: 利用終端用戶的ID以及與所述終端交換的密鑰生成因子而生成基于ID的密鑰K ; 從所述終端接收所述用戶的被加密的口令; 利用將生成的所述密鑰K作為對稱密鑰的對稱密鑰解密算法而對被加密的所述口令進行解密,并利用解密的所述口令`而認證所述終端用戶。
【文檔編號】H04L9/32GK103795534SQ201310473362
【公開日】2014年5月14日 申請日期:2013年10月11日 優先權日:2012年10月31日
【發明者】尹爻珍, 權珆經 申請人:三星Sds株式會社, 世宗大學校產學協力團