• evo真人(中国)

    文章橫幅PC版
    文章橫幅iPad版
    文章橫幅手機版

    ElGamal數字簽名

    TIME:2019-03-21 13:39  click: 265 次 來源: 未知

    ElGamal數字簽名算法需要使用隨機數,它是一種非確定性的簽名方案,但它的運算過程並非是ElGamal加密算法的逆過程。

    1.用戶選擇密鑰

    系統先選取一個大素數p及p的本原根a,用戶A選擇一個隨機數x(1xp-1)作為自己的私鑰,計算y=axmod p,將y作為自己的公鑰。整個系統公開的參數有大素數p、本原根a以及每個用戶的公鑰;而每個用戶的私鑰x則嚴格保密。

    2.簽名過程

    給定消息M,用戶A進行下述計算來實現簽名。

    (1)選擇隨機數k∈Zp*,且k與p-1互素(注意:隨機數k需要保密)。

    (2)簽名方A對消息M進行散列壓縮後得到消息散列碼H(M),再計算

    r=ak mod p

    s=(H(M)-xr)k-1mod(p-1)

    將(r,s)作為用戶A對消息M的數字簽名,與消息M一起發送給接收方。

    3.驗證簽名的過程

    接收方B在收到消息M與數字簽名(r,s)後,先計算消息M的散列碼H(M)。然後計算

    yrrs mod p=aH(M) mod p

    如果上式创建,則可確信(r,s)為有效簽名,否則認為簽名是偽造的。

    4.證明驗證簽名的正確性

    若(r,s)為合法用戶採用 ElGamal數字簽名算法對消息M的簽名,則

    yrrs=(ax)r(ak)s=axr+ksmod p

    又因為

    s=(H(M)-xr)k-1mod(p-1)

    兩邊乘k再移項得

    ks+xr=H(M)mod(p-1)

    根據模運算規則有

    axr+ks=aH(M)mod pmod p

    由費馬定理的推論,ak=ak mod(p-1)mod p,將k替換成H(M),有

    axr+ks=aH(M)mod p

    因此有

    yrrs=aH(M)mod p

     

    上一篇:什麼是虛擬專用網絡 下一篇:IPSec的工作原理