7.3 用戶密鑰生成進程
使用下述兩種方式計算公開驗證密鑰和私有簽名密鑰(簽名實體必須保證私有簽名密鑰是秘密的):
a) 密鑰生成進程I
如果域參數集合是有效的,可以使用下面的步驟生成私有簽名密鑰和與之對應的公開驗證密鑰:
1) 在集合[1, n *– 1]中選擇隨機或偽隨機整數xA。xA*必須防止未經授權的泄露,而且其必須是不可預測的;
2) 計算Y**A= G **^xA^;
3) 密鑰對即為(Y**A, x**A),其中Y**A用于公開驗證密鑰,x**A用于私有簽名密鑰。
算法統一表示為P *= *G *和Q = Y*A。
b) 密鑰生成進程II
如果域參數集合是有效的,可以使用下面的步驟生成私有簽名密鑰和與之對應的公開驗證密鑰:
1) 在集合[1, n *– 1]中選擇隨機或偽隨機整數e。計算xA,滿足xA在[1, *n *– 1]區間,xAe = 1 mod *n。x**A和e必須防止未經授權的泄露,而且其必須是不可預測的;
2) 計算Y**A= G **^e^;
3) 密鑰對即為(Y**A, x**A),其中Y**A用于公開驗證密鑰,x**A用于私有簽名密鑰。
算法統一表示為P= Y**A 和Q= G。
在使用公開驗證密鑰之前,驗證方需要確保公開驗證密鑰的有效性和所屬。有效性可以通過多種方式獲得,參考6.6.2。
注1:有些方案私有簽名密鑰x**A的范圍是[1, *n *– 2]。
注2:密鑰生成I是比較流行,經常使用的方式。在有些環境下,求模運算代價比較高,密鑰生成II可能更有優勢。
GB/T 15851.3—2018 信息技術 安全技術 帶消息恢復的數字簽名方案 第3部分:基于離散對數的機制
推薦文章: