Digital Signature Algorithm (DSA)是Schnorr和ElGamal簽名算法的變種,被美國NIST作為DSS(DigitalSignature Standard)。算法中應用了下述參數:
p:L bits長的素數。L是64的倍數,范圍是512到1024;
q:p - 1的160bits的素因子;
g:g = h^((p-1)/q) mod p,h滿足h < p - 1, h^((p-1)/q) mod p > 1;
x:x < q,x為私鑰 ;
y:y = g^x mod p ,( p, q, g, y )為公鑰;
H( x ):One-Way Hash函數。DSS中選用SHA( Secure Hash Algorithm )。
p, q, g可由一組用戶共享,但在實際應用中,使用公共模數可能會帶來一定的威脅。簽名及驗證協議如下:
1. P產生隨機數k,k < q;
2. P計算 r = ( g^k mod p ) mod q
s = ( k^(-1) (H(m) + xr)) mod q
簽名結果是( m, r, s )。
3. 驗證時計算 w = s^(-1)mod q
u1 = ( H( m ) * w ) mod q
u2 = ( r * w ) mod q
v = (( g^u1 * y^u2 ) mod p ) mod q
若v = r,則認為簽名有效。
DSA是基于整數有限域離散對數難題的,其安全性與RSA相比差不多。DSA的一個重要特點是兩個素數公開,這樣,當使用別人的p和q時,即使不知道私鑰,你也能確認它們是否是隨機產生的,還是作了手腳。RSA算法卻作不到。
標簽:
Algorithm
Signature
Digital
Schnorr
上傳時間:
2014-01-01
上傳用戶:qq521
執行步驟1:
執行EX1126程式進入學生考試系統
權限描述:
使用者查詢:於”姓名”中輸入”Arno”,於”學號”中輸入”good”,再按下”使用者查詢”
即可查詢.
修改使用者:於”姓名”中輸入”GUEST”,於”學號”中輸入”0000”,再按下” 修改使用者即可修改:
功能描述:
使用者開始考試,於”姓名”中輸入自己的姓名,於”學號”中輸入學號,再按下” 考試去”即可: 開始考試,同時系統紀錄考生狀態為”1”.
使用者考試,完成後按下”結算成績”,同時系統顯示紀錄考生該科分數,同時清除考生登入狀態,使其無法重覆考試,老師並可查詢考生成績.
標簽:
1126
Arno
good
EX
上傳時間:
2016-07-31
上傳用戶:chens000