10.2 簽名生成進程
10.2.1 輸入和輸出
簽名生成進程的輸入包括:
a) 域參數;
b) 私有簽名密鑰x**A,和
c) 帶有填充/自然冗余的數據d,即八位位組串{0, 1}^8^^L^^(^^n^^)^。
從消息中傳輸數據d,參考第7.4.2和7.4.3節。簽名生成進程的輸出是包括A對消息M數字簽名的一對值(r, s)∈{0, 1}^8^^L^^(^^n^^)^ ′[1, n ? 1]。
10.2.2 生成隨機數和預簽名(橢圓曲線計算)
預簽名
a) 在區間[1, n *? 1]里選擇隨機整數k*。
b) 計算有橢圓曲線點R *= *kP。
c) 計算Π= Mask(EC2OSPE(R, uncompressed))。
注:采用未壓縮格式的轉換函數EC2OSP的定義參考B.6。
1.1.3 計算簽名(模n的算術運算)
簽名(r, s)∈{0, 1}^8^^L^^(^^n^^)^ ′ [1, *n *? 1]按照如下或者等同如下的步驟進行計算:
a) 轉換r *=d⊕Π*;
b) 計算s *= (OS2IP(r)k – OS2IP(r) – 1) / (x*A+ 1) mod n;
c) 清除k。
如果簽名生成進程生成了s *= 0或者OS2IP(r) mod *n *= 0,那么必須采用新的隨機值k*重新進行簽名生成進程。
1.1.4 組成已簽消息
一對值(r, s)∈{0, 1}^8^^L^^(^^n^^)^ ′[1, n *? 1] 包括A對數據d*的簽名。
GB/T 15851.3—2018 信息技術 安全技術 帶消息恢復的數字簽名方案 第3部分:基于離散對數的機制
推薦文章: