博客專欄

        EEPW首頁 > 博客 > ECDSA簽名算法介紹

        ECDSA簽名算法介紹

        發布人:hanini 時間:2021-12-07 來源:工程師 發布文章


        一、ECDSA概述

        橢圓曲線數字簽名算法(ECDSA)是使用橢圓曲線密碼(ECC)對數字簽名算法(DSA)的模擬。與普通的離散對數問題(DLP)和大數分解問題(IFP)不同,橢圓曲線離散對數問題沒有亞指數時間的解決方法。因此橢圓曲線密碼的單位比特強度要高于其他公鑰體制。

        數字簽名算法(DSA)在聯邦信息處理標準FIPS中有詳細論述,稱為數字簽名標準。它的安全性基于素域上的離散對數問題。可以看作是橢圓曲線對先前離散對數問題(DLP)的密碼系統的模擬,只是群元素由素域中的元素數換為有限域上的橢圓曲線上的點。橢圓曲線離散對數問題遠難于離散對數問題,單位比特強度要遠高于傳統的離散對數系統。因此在使用較短的密鑰的情況下,ECC可以達到于DL系統相同的安全級別。這帶來的好處就是計算參數更小,密鑰更短,運算速度更快,簽名也更加短小。

        二、ECDSA原理

        ECDSA是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中采取的算法為ECC,最后簽名出來的值也是分為r,s。
         簽名過程如下:
           1、選擇一條橢圓曲線Ep(a,b),和基點G;
           2、選擇私有密鑰k(k<n,n為G的階),利用基點G計算公開密鑰K=kG;
           3、產生一個隨機整數r(r<n),計算點R=rG;
           4、將原數據和點R的坐標值x,y作為參數,計算SHA1做為hash,即Hash=SHA1(原數據,x,y);
           5、計算s≡r - Hash * k (mod n)
           6、r和s做為簽名值,如果r和s其中一個為0,重新從第3步開始執行
        驗證過程如下:
           1、接受方在收到消息(m)和簽名值(r,s)后,進行以下運算
           2、計算:sG+H(m)P=(x1,y1), r1≡ x1 mod p。
           3、驗證等式:r1 ≡ r mod p。
           4、如果等式成立,接受簽名,否則簽名無效。

         


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。




        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 布拖县| 洛浦县| 江阴市| 铜梁县| 苍溪县| 朝阳区| 永宁县| 蕲春县| 剑川县| 青田县| 栖霞市| 黔江区| 崇文区| 赤城县| 塔河县| 陈巴尔虎旗| 四川省| 安龙县| 甘谷县| 梓潼县| 青州市| 克什克腾旗| 土默特右旗| 鹰潭市| 河北省| 南溪县| 延寿县| 彰化县| 米易县| 杭锦旗| 东安县| 灵武市| 烟台市| 甘孜县| 义乌市| 平南县| 水富县| 喀什市| 襄垣县| 定兴县| 大宁县|