10.2 BPKAS-2
10.2 BPKAS-2
{DL,EC}BPKAS-2-{CLIENT,SERVER}是{離散對數,橢圓曲線}口令鑒別密鑰協商方案,其中方案包含參與方{CLIENT,SERVER}。
10.2.1 方案選項
客戶和服務器應該建立或者協商確定以下選項:
a) 公開密鑰產生原語和秘密值產生原語和相關的參數:PEPKGP-1,SVDP-2;
b) 共享的基于口令的八位位組串π;
c) 和π相關的有效的{DL,EC}域參數,包括q,r;以及密鑰s,w,w’;
d) 隨機元素生成函數Redp,可選項為:{DL,EC}REDP-1,{DL,EC}REDP-2;
e) 密鑰產生函數Kdf,可選項為:KDF1,KDF2;
f) 一個或者多個密鑰產生參數八位位組串{P1,P2…};
10.2.2 密鑰協商操作
10.2.2.1 客戶密鑰協商
a) 計算第一個群元素πT=Redp(hex(01) ||π);
b) 計算第二個群元素πR=Redp(hex(02) ||π);
c) 隨機選擇一個整數s∈[1,r-1],作為私鑰;
d) 計算口令相關的公鑰w={DL,EC}PEPKGP-1(s, πT);
e) 發送w給服務器;
f) 從服務器接收公鑰w’;
g) 如果w’不是群的有效元素,則輸出“invalid”并停止;
h) 計算域元素z ={DL,EC}SVDP-2(s, πR,w’);
i) 計算八位位組串Z=FE2OSP(z);
j) 對每一個密鑰產生參數Pi,根據Z,產生一個共享秘密私鑰Ki=Kdf(Z, Pi);
10.2.2.2 服務器密鑰協商
a) 計算第一個群元素πT=Redp(hex(02) ||π);
b) 計算第二個群元素πR=Redp(hex(01) ||π);
c) 隨機選擇一個整數s∈[1,r-1],作為私鑰;
d) 計算口令相關的公鑰w={DL,EC}PEPKGP-1(s, πT);
e) 發送w給客戶;
f) 從客戶接收公鑰w’;
g) 如果w’不是群的有效元素,則輸出“invalid”并停止;
h) 計算域元素z ={DL,EC}SVDP-2(s, πR , w’);
i) 計算八位位組串Z=FE2OSP(z);
j) 對每一個密鑰產生參數Pi,根據Z,產生一個共享秘密私鑰Ki=Kdf(Z, Pi);
10.2.3 密鑰證實操作
BPKAS-2方案中客戶可以選擇是否在使用Z或者K1,K2…Kt之前確認服務器正確獲得了Z。對于服務器而言該步驟同樣是可選的。
10.2.3.1 服務器密鑰證實
a) 可選項
1) 計算oT=GE2OSP(πT);
2) 計算os=KCF1(hex(03), w’,w,Z, oT);
3) 發送os給客戶。
b) 可選項
4) 從客戶接收八位位組串oc;
5) 計算oR=GE2OSP(πR);
6) 計算o4=KCF1(hex(04), w’,w,Z, oR);
10.2.3.2 客戶密鑰證實
a) 可選項
1) 從服務器接收八位位組串os;
2) 計算oR =GE2OSP(πR);
3) 計算o3=KCF1(hex(03), w,w’,Z, oR);
4) 如果o3≠os,輸出“invalid”并停止。
b) 可選項
5) 計算oT=GE2OSP(πT);
6) 計算oc=KCF1(hex(04),w,w’,Z, oπ);
GB/T 32213-2015 信息安全技術 公鑰基礎設施 遠程口令鑒別與密鑰建立規范