日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ECC椭圆曲线算法(4)签名验证过程

發(fā)布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ECC椭圆曲线算法(4)签名验证过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 說明

Alice和Bob在通信的過程中,為了驗證消息的來源,既消息確實是Alice發(fā)出來的。需要由Alice對消息使用自己的私鑰生成一個簽名hash,然后Bob用Alice的公鑰進行驗證,判斷hash是否一樣,從而知道簽名是否正確。

2. 步驟

假設:

  • 基點:G
  • 私鑰:k
  • 公鑰:K =k *G
  • Message:M

step1. Alice 數(shù)據(jù)傳送前的操作:生成公私鑰對

step2. Alice

  • 選擇隨機數(shù)r
  • 計算點r*G,得到(x, y)
  • 根據(jù)消息求哈希h
  • 根據(jù)隨機數(shù)r、消息M的哈希h、私鑰k,計算s = (h + kx)/r.
  • 將消息M、簽名{rG, s}、公鑰K發(fā)給Bob

step3. Bob:收到消息M、以及簽名{rG=(x,y), s}

  • 根據(jù)消息求哈希h
  • 使用發(fā)送方公鑰K計算:hG/s + xK/s,并與rG比較,如相等即驗簽成功

hG/s + xK/s = hG/s + x(kG)/s = (h+xk)G/s = r(h+xk)G / (h+kx) = rG


注:

  • r值
    在選擇隨機數(shù)r的時候,真正的算法需要做一個判斷,計算 r 值是否為0, 如果r == 0, 需要重新隨機:r = x ? mod? n
  • n值
    如果說橢圓曲線方程可用(CURVE, G, n)表示,其中CURVE表示橢圓曲線點域和幾何方程;G是所有點倍積運算的基點;n是該橢圓曲線的可倍積階數(shù)(multiplicative order),作為一個很大的質數(shù),n的幾何意義在于,nG 是阿貝爾群的單位元。
  • h值
    實際上需要對h值作一個轉換,既是對h的二進制形式下最左邊(即最高位)L_n個bits,而L_n是上述橢圓曲線參數(shù)中的可倍積階數(shù)n的二進制長度。注意z 可能大于n,但長度絕對不會比 n 更長

【參考】

  • 密碼學系列 - 橢圓曲線 ECDSA - 簽名與驗簽 csdn
  • Elliptic Curve Digital Signature Algorithm Wikipedia
  • 總結

    以上是生活随笔為你收集整理的ECC椭圆曲线算法(4)签名验证过程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。