第八章 數字簽名技術
阿新 • • 發佈:2021-09-20
轉https://www.cnblogs.com/WittPeng/p/8978737.html
第八章 數字簽名技術
數字簽名概述
基本概念
數字簽名技術一般分為帶仲裁和不帶仲裁的兩類。如果使用對稱金鑰進行數字簽名,則必須使用仲裁者,非對稱可以不帶仲裁。
數字簽名可以實現不可否認性和訊息完整性認證(檢驗是否被篡改或偽造)
原理
(P,S,K,Sig,Ver),P:金鑰生成演算法,S:簽名演算法,K:驗證算髮,Sign,Verify
過程簡圖
數字簽名的實現方案
基於RSA的簽名方案 | 金鑰生成演算法 |
這裡,先選擇e再確定d的原因是:加密的重要性大於解密的重要性。 |
||
簽名演算法 |
|
|||
驗證演算法 |
|
|||
正確性 | ||||
安全性 |
|
|||
基於離散對數的簽名方案 | ElGamal簽名體制 | 金鑰生成演算法 |
簽名者的公鑰是(p,g,y),私鑰是x。 |
|
簽名演算法 | 簽名者選取隨機數k,計算r≡gk(mod p),s≡[h(m)-xr]K-1(mod(p-1)),簽名為(r,s),其中h為安全的Hash函式 | |||
驗證演算法 | 計算h(m)後,驗證yxrs≡gh(m)(mod p)是否成立 | |||
正確性 | ||||
安全性 |
|
|||
Schnorr簽名體制 | 特點 | 簽名速度較快,簽名長度較短 | ||
金鑰生成演算法 |
|
|||
簽名演算法 |
簽名者選擇隨機數k,1≤k≤q-1,然後進行如下計算: r≡gk(mod p) e=h(m,r) s≡(xe+k)(mod q) 簽名為(e,s),其中h為安全的Hash函式。 |
|||
驗證演算法 | 簽名接收者在收到訊息m和簽名(e,s)後,首先計算r1≡gsy-e(mod p),然後驗證e=h(e,r1),如果等式成立則簽名有效,否則無效。 | |||
正確性和安全性 |
安全性和ElGaml類似 |
|||
DSA簽名體制 | 金鑰生成演算法 |
|
||
簽名演算法 | 選取隨機數k,r=(gkmod p)mod q,s≡[h(m)+xr]k-1(mod q),其中h是SHA1的特定Hash函式 | |||
驗證演算法 |
收到m和簽名值(r,s)後,計算 w≡s-1(mod q) u1≡h(m)w(mod q) u2≡rw(mod q) v=(gu1yu2mod p)mod q 比較v和r,相同則簽名有效,否則無效。 |
|||
正確性 | ||||
安全性 | DSA是ElGamal的變形,因此安全性論述在此也同樣使用。還有一點是簽名演算法計算的s正好為0時,會產生1除以0的情況,必須放棄這個簽名。 | |||
三種簽名體制的對比 | ||||
離散對數簽名體制 | ||||
基於橢圓曲線的簽名方案 | 金鑰生成演算法 |
選擇E上一點G∈E,G的階為滿足安全要求的素數n,即nG=O。 選取一個隨機數d∈[1,n-1],計算Q使得Q=dG,那麼公鑰為(n,Q),私鑰為d。 |
||
簽名演算法 |
|
|||
驗證演算法 |
|
|||
正確性 | ||||
安全性 |
ECDSA安全性依賴於基於橢圓曲線的有限群上的離散對數難題,與RSA和有限域離散對數的數字簽名相比,在相同的安全強度條件下,有如下特點 簽名長度短、金鑰儲存空間小,特別是用於儲存空間有限、頻寬受限、要求高速實現的場合。 |
特殊數字簽名
- 代理簽名
- 盲簽名
- 群簽名
- 不可否認簽名
- 門限數字簽名
- 多重數字簽名
- ··· ··