国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【密碼算法 之十四】非對(duì)稱算法,ECC橢圓曲線算法 之 ECDSA、ECDH、SM2、SM9等

這篇具有很好參考價(jià)值的文章主要介紹了【密碼算法 之十四】非對(duì)稱算法,ECC橢圓曲線算法 之 ECDSA、ECDH、SM2、SM9等。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. ECC橢圓曲線

??ECC(Elliptic Curve Cryptography),就是橢圓曲線密碼算法,它是基于橢圓曲線數(shù)學(xué)理論實(shí)現(xiàn)的一種非對(duì)稱加密算法。相比RSA,ECC優(yōu)勢(shì)是可以使用更短的密鑰,來實(shí)現(xiàn)與RSA相當(dāng)或更高的安全,RSA加密算法也是一種非對(duì)稱加密算法,在公開密鑰加密和電子商業(yè)中RSA被廣泛使用。據(jù)研究,160位ECC加密安全性相當(dāng)于1024位RSA加密,210位ECC加密安全性相當(dāng)于2048位RSA加密(有待考證)。
??ECDSA(Elliptic Curve Digital Signature Algorithm)算法是基于 ECC 的的一種簽名算法,廣泛用于區(qū)塊鏈、HTTPS 等需要非對(duì)稱加密的場(chǎng)景。

1.1 曲線類型

??曲線分為素?cái)?shù)域曲線、二元域曲線。

  • 素?cái)?shù)域:P-192、P-224、P-256、P-384、P-521
  • 二元域:K-163、K-233、K-283、K-409、K-571、B-163、B-233、B-283、B-409、B-571

1.2 曲線標(biāo)準(zhǔn)

??曲線標(biāo)準(zhǔn)主要有:SECG / NIST / WTLS / ANSI X9.62 / RFC 5639 / SM2

  • SECG
    (1)SECG(Standards for Efficient Cryptography Group),高效密碼學(xué)標(biāo)準(zhǔn)組織(SECG),它是一個(gè)行業(yè)聯(lián)盟,成立于1998年,旨在開發(fā)商業(yè)標(biāo)準(zhǔn),輸出SEC標(biāo)準(zhǔn)規(guī)范;
    (2)SECG成員包括信息安全行業(yè)的領(lǐng)先技術(shù)公司和關(guān)鍵行業(yè)參與者。主要輸出SEC的規(guī)范;
    (3)SECG官網(wǎng):https://www.secg.org/;

  • NIST
    (1)NIST(National Institute of Standards and Technology),是美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所,前身是美國(guó)國(guó)家標(biāo)準(zhǔn)局,目前是隸屬于商務(wù)部的政府實(shí)驗(yàn)室。主要從事標(biāo)準(zhǔn)測(cè)量方面的研究,職能類似中國(guó)計(jì)量院或者法國(guó)的LNE,為業(yè)界提供國(guó)家計(jì)量標(biāo)準(zhǔn),計(jì)量檢測(cè)和校準(zhǔn)技術(shù),參加標(biāo)準(zhǔn)委員會(huì)制定標(biāo)準(zhǔn)等,但本質(zhì)上還是一個(gè)大型的實(shí)驗(yàn)室。有兩個(gè)分部,一個(gè)在馬里蘭州的Gaithersburg,一個(gè)在科州的Boulder;
    (2)NIST是美國(guó)的標(biāo)準(zhǔn),并不是世界標(biāo)準(zhǔn);
    (3)NIST官網(wǎng):https://www.nist.gov/ ;

  • WTLS
    WTLS(Wireless Transport Layer Security),無線傳輸層安全,它是無線應(yīng)用協(xié)議(WAP)的安全級(jí)別,特別是針對(duì)使用WAP的應(yīng)用程序。
    官網(wǎng):https://www.techtarget.com/searchmobilecomputing/definition/Wireless-Transport-Layer-Security

  • ANSI X9.62
    該項(xiàng)目始于1995年,并于1999年正式作為ANSI標(biāo)準(zhǔn)頒布。ANSI X9.62具有高安全性和通用性。它的基域可以是Fp,也可以是F2m。F2m中的元素可以以多項(xiàng)式形式或正規(guī)基形式來表示。若用多項(xiàng)式形式,ANSI X9.62要求模多項(xiàng)式為不可約三項(xiàng)式,標(biāo)準(zhǔn)中提供了一些不可約三項(xiàng)式,另外還給出了一個(gè)不可約五項(xiàng)式。為了提高通用性,針對(duì)每一個(gè)域提供了一個(gè)模多項(xiàng)式。若使用正規(guī)基表示方法,ANSI X9.62規(guī)定使用高斯正規(guī)基。橢圓曲線最主要的安全因素是n,即基點(diǎn)階,ANSI X9.62的n大于2160。橢圓曲線是使用隨機(jī)方法選取的。ANSI X9.62規(guī)定使用以字節(jié)為單位的字符串形式來表示曲線上的點(diǎn),ASN.1語(yǔ)法可以清楚地描述域參數(shù),公鑰和簽名。

  • RFC5639
    ECC曲線標(biāo)準(zhǔn)
    官網(wǎng):https://www.rfc-editor.org/

  • FIPS 186-2
    1997年,NIST開始制定包括橢圓曲線和RSA簽名算法的FIPS 186標(biāo)準(zhǔn)。1998年,NIST推出了FIPS186,它包括RSA與DSA數(shù)字簽名方案,這個(gè)方案也稱為FIPS 186-1。1999年NIST又面向美國(guó)G0vment推出了15種橢圓曲線。這些曲線都遵循ANSI X9.62和IEEE 1363-2000的形式。2000年,包含ANSI X9.62中說明的ECDSA,使用上述曲線的FIPS 186-2問世。

  • SM2
    SM2是國(guó)家密碼管理局于2010年12月17日發(fā)布的橢圓曲線公鑰密碼算法。
    SM2是基于橢圓曲線的非對(duì)稱算法,相對(duì)于RSA算法,SM2具有密鑰更小,運(yùn)算速度更快,相同密鑰長(zhǎng)度下具有更高安全性等優(yōu)勢(shì)。

  • IEEE 1363-2000
    該標(biāo)準(zhǔn)于2000年作為IEEE標(biāo)準(zhǔn)問世。IEEE 1363的覆蓋面很廣,包括公鑰加密,密鑰協(xié)商,基于IFP、DLP、ECDLP的數(shù)字簽名。它與ANSI X9.62和FIPS 186完全不同,它沒有最低安全性限制(比如不再對(duì)基點(diǎn)階進(jìn)行限制),用戶可以有充分的自由。

OpenSSL NIST SECCG ANSI
prime192v1 nistp192 secp192r1 prime192v1
secp224r1 nistp224 secp224r1
prime256v1 nistp256 secp256r1 prime256v1
secp384r1 nistp384 secp384r1
secp521r1 nistp521 secp521r1
sect163k1 nistk163 sect163k1
sect163r2 nistb163 sect163r2
sect233k1 nistk233 sect233k1
sect233r1 nistb233 sect233r1
sect283k1 nistk233 sect283k1
sect283r1 nistb283 sect283r1
sect409k1 nistk409 sect409k1
sect409r1 nistb409 sect409r1
sect571k1 nistk571 sect571k1
sect571r1 nistb571 sect571r1

1.3 表示方法

??橢圓曲線其實(shí)是一個(gè)數(shù)學(xué)方程,通常用下面的方程式來表示:y2 = (x3 + ax + b) mod p

??如果a和b取的值不同,那么對(duì)應(yīng)的曲線形狀也會(huì)不一樣,如下圖:
ecdsa sm2,密碼學(xué),ECDSA,ECC,ECDH,SM2,ASYNC

1.4 曲線運(yùn)算

??橢圓曲線的運(yùn)算有多種,包括:點(diǎn)加(Point Addition)、點(diǎn)乘(Point Multiplication)、倍點(diǎn)(Point Double)等。

1.4.1 點(diǎn)加(Point Addition)

ecdsa sm2,密碼學(xué),ECDSA,ECC,ECDH,SM2,ASYNC

  1. 兩點(diǎn)決定一條直線,也就是說,我們定義通過兩個(gè)點(diǎn)(P,Q) 做一條直線,找到這條直線和EC曲線相交的那個(gè)點(diǎn)(圖1中R’點(diǎn))
  2. 根據(jù)點(diǎn)加法運(yùn)算的定義,可以得到 P+Q+R’=0 ,那么 P+Q=?R’ , ? R’的定義是關(guān)于 x 軸對(duì)稱所得到的一個(gè)點(diǎn)R,如上圖所示,這就是點(diǎn)加法的定義

1.4.2 點(diǎn)乘(Point Multiplication)

??“點(diǎn)加”是ECC計(jì)算中最基本和原始的概念,它描述群當(dāng)中的兩個(gè)元素(點(diǎn))之間的操作,實(shí)際運(yùn)算中大量使用的是“點(diǎn)乘”。但是不要被點(diǎn)乘這個(gè)名字所迷惑,其實(shí)它描述的是:對(duì)同一個(gè)點(diǎn)進(jìn)行多次操作時(shí)的規(guī)則。
??很多常見的寫法例如 kG,很容易誤導(dǎo)初學(xué)者,其實(shí)這個(gè)kG描述的其實(shí)是:針對(duì)點(diǎn)G進(jìn)行“k-1”次點(diǎn)加操作。比如k = 4,如何計(jì)算4G呢,既然我們知道如何任意兩個(gè)點(diǎn)的點(diǎn)加,那么計(jì)算4G無非就是:
??第1步:計(jì)算G+G得到2G
??第2步:計(jì)算2G+G得到3G
??第3步:計(jì)算3G+G得到4G,計(jì)算完成。

1.4.3 倍點(diǎn)(Point Double)

??倍點(diǎn)其實(shí)就是點(diǎn)加的特殊運(yùn)算,當(dāng)P和Q完全重合時(shí),就變成了倍點(diǎn)運(yùn)算。如下圖:
ecdsa sm2,密碼學(xué),ECDSA,ECC,ECDH,SM2,ASYNC

2. ECDSA

??ECDSA,即ECC橢圓曲線簽名算法。設(shè)私鑰、公鑰分別為d、Q,即Q = dG,其中G為基點(diǎn)。

2.1 私鑰簽名

簽名過程如下:

  1. 選擇隨機(jī)數(shù)r,計(jì)算點(diǎn)rG(x,y);
  2. 根據(jù)隨機(jī)數(shù)r,消息M的哈希值h、私鑰d,計(jì)算出 s = (h + dx)/r;
  3. 將消息M和簽名值(rG, s)發(fā)給接收方;

舉例:假設(shè)要簽名的消息是一個(gè)字符串:“Hello World!”。

  1. 是對(duì)“待簽名的消息”生成一個(gè)消息摘要,不同的簽名算法使用不同的消息摘要算法,而ECDSA256使用SHA256生成256比特的摘要;
  2. 產(chǎn)生一個(gè)隨機(jī)數(shù)k,利用隨機(jī)數(shù)k,計(jì)算出兩個(gè)大數(shù)r和s。將r和s拼在一起就構(gòu)成了對(duì)消息摘要的簽名;

2.2 公鑰驗(yàn)簽

  1. 接收方收到消息M、以及簽名{rG=(x,y), s};
  2. 根據(jù)消息求哈希h;
  3. 使用發(fā)送方公鑰Q計(jì)算:hG/s + xQ/s,并與rG比較,如相等即驗(yàn)簽成功(原理:hG/s + xQ/s = hG/s + x(dG)/s = (h+xd)G/s = r(h+xd)G / (h+dx) = rG))。

3. ECDH

??ECDH 是橢圓曲線的笛福赫爾曼算法的變種,它其實(shí)不單單是一種加密算法,而是一種密鑰協(xié)商協(xié)議,也就是說 ECDH 定義了(在某種程度上)密鑰怎么樣在通信雙方之間生成和交換,至于使用這些密鑰怎么樣來進(jìn)行加密完全取決通信雙方。

ECDH的工作流程如下:
(1)Alice 和 Bob 生成各自的私鑰和公鑰。
??Alice的私鑰為 dA,公鑰為 HA = dAG
??Bob的私鑰為 dB,公鑰為 HB = dBG

Alice 和 Bob 需要使用一樣的主要參數(shù):在同一條曲線的同一個(gè)有限域上選擇一樣的基點(diǎn) G。

(2)Alice和Bob通過不安全信道交換各自的公鑰 HA HB,中間人可以竊聽到和,但是在無法攻破離散對(duì)數(shù)難題的情況下無法得到 dA dB
(3)Alice計(jì)算 S = dAHB(使用自身的私鑰和Bob的公鑰),Bob計(jì)算 S = dBHA(使用自身的私鑰和Alice的公鑰),雙方求得的S是一樣的,因?yàn)?S = dAHB = dA(dBG) = dB(dAG) = dBHA

4. SM2

??SM2是國(guó)家密碼管理局于2010年12月17日發(fā)布的橢圓曲線公鑰密碼算法。
??SM2是基于橢圓曲線的非對(duì)稱算法,相對(duì)于RSA算法,SM2具有密鑰更小,運(yùn)算速度更快,相同密鑰長(zhǎng)度下具有更高安全性等優(yōu)勢(shì)。
??國(guó)密SM2算法標(biāo)準(zhǔn)包括5個(gè)部分:

  • GMT 0003.1-2012 SM2橢圓曲線公鑰密碼算法第1部分:總則
    主要介紹了ECC基本的算法描述,包括素?cái)?shù)域和二元擴(kuò)域兩種算法描述
  • GMT 0003.2-2012 SM2橢圓曲線公鑰密碼算法第2部分:數(shù)字簽名算法
    這個(gè)算法不同于ECDSA算法,其計(jì)算量大,也比ECDSA復(fù)雜些,也許這樣會(huì)更安全吧
  • GMT 0003.3-2012 SM2橢圓曲線公鑰密碼算法第3部分:密鑰交換協(xié)議
    與ECDH功能相同,但復(fù)雜性高,計(jì)算量加大
  • GMT 0003.4-2012 SM2橢圓曲線公鑰密碼算法第4部分:公鑰加密算法
    使用ECC公鑰進(jìn)行加密和ECC私鑰進(jìn)行加密算法,其實(shí)現(xiàn)上是在ECDH上分散出流密鑰,之后與明文或者是密文進(jìn)行異或運(yùn)算,并沒有采用第3部分的密鑰交換協(xié)議產(chǎn)生的密鑰。
  • GMT 0003.5-2012 SM2橢圓曲線公鑰密碼算法第5部分:參數(shù)定義
    給出了SM2使用素?cái)?shù)域256位橢圓曲線參數(shù)

??SM2與RSA的比較如下:

算法 SM2 RSA
算法結(jié)構(gòu) 基于橢圓曲線(ECC) 基于橢圓曲線(ECC)
計(jì)算復(fù)雜度 完全指數(shù)級(jí) 亞指數(shù)級(jí)
存儲(chǔ)空間 192~256bit 1024~8192bit
秘鑰生成速度 較RSA算法快百倍以上
解密加密速度 較快 一般

4.1 數(shù)字簽名

待添加文章來源地址http://www.zghlxwxcb.cn/news/detail-539564.html

4.2 秘鑰交換

待添加

4.3 加密

待添加

4.4 解密

待添加

5. SM9

待添加

6. 總結(jié)

待添加

到了這里,關(guān)于【密碼算法 之十四】非對(duì)稱算法,ECC橢圓曲線算法 之 ECDSA、ECDH、SM2、SM9等的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SM2橢圓曲線公鑰密碼算法(Python實(shí)現(xiàn))

    SM2橢圓曲線公鑰密碼算法(Python實(shí)現(xiàn))

    Windows11 PyCharm2019.3.3 x64 通過編寫代碼實(shí)現(xiàn)SM2橢圓曲線公鑰密碼算法,加深對(duì)SM2橢圓曲線公鑰密碼算法的理解,體會(huì)該算法在解決實(shí)際問題的價(jià)值; 將密碼學(xué)和數(shù)學(xué)知識(shí)相聯(lián)系,并靈活運(yùn)用到密碼學(xué)的設(shè)計(jì)方案中; 提高實(shí)踐能力和邏輯思維能力。 random math gmssl SM2算法和RSA算法

    2024年02月02日
    瀏覽(20)
  • SM2橢圓曲線公鑰密碼算法--密鑰對(duì)與數(shù)字簽名

    SM2橢圓曲線公鑰密碼算法--密鑰對(duì)與數(shù)字簽名

    SM2算法全稱是SM2橢圓曲線公鑰密碼算法(SM是商用密碼的拼音縮寫),是一種基于“橢圓曲線”的密碼ECC(Elliptic Curve Cryptography)。2016年,SM2成為中國(guó)國(guó)家密碼標(biāo)準(zhǔn)。 在商用密碼體系中,SM2主要用于替換RSA加密算法。 SM2為非對(duì)稱加密,基于ECC。該算法已公開。由于該算法基于

    2024年02月11日
    瀏覽(31)
  • Solidity--如何實(shí)現(xiàn)橢圓算法簽名(ECDSA)

    橢圓算法簽名 橢圓曲線算法簽名(ECDSA)是一種數(shù)字簽名算法,其基于橢圓曲線密碼學(xué)(ECC)。它是一種非對(duì)稱密碼算法,即發(fā)送方和接收方都有不同的密鑰。在數(shù)字簽名中,發(fā)送方使用它的私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,以證明數(shù)據(jù)的完整性和發(fā)送方身份。接收方可以使用發(fā)送方的

    2023年04月09日
    瀏覽(14)
  • 橢圓曲線密碼(SM2)

    橢圓曲線密碼(SM2)

    1. 公鑰生成 ① Alice首先構(gòu)造一條橢圓曲線E,在曲線上選擇一點(diǎn)G作為生成元,并求G的階為n,要求n必須為質(zhì)數(shù)。此時(shí)構(gòu)成了一個(gè)循環(huán)群G. ② Alice選擇一個(gè)私鑰k (k n),生成公鑰 Q = kG ③ Alice將公鑰組E、Q、G發(fā)送給Bob 2. 加密過程 ① Bob收到信息后,將明文編碼為M,M為曲線上一點(diǎn),

    2024年02月17日
    瀏覽(25)
  • sCrypt 合約中的橢圓曲線算法:第二部分

    sCrypt 合約中的橢圓曲線算法:第二部分

    我們?cè)谀_本中實(shí)現(xiàn)了橢圓曲線 (EC) 算法。在之前的實(shí)現(xiàn)中,我們進(jìn)行鏈下計(jì)算并在腳本中驗(yàn)證結(jié)果。我們這里直接用腳本計(jì)算。 基于EC的應(yīng)用非常多,特別是在密碼學(xué)領(lǐng)域,如數(shù)字簽名、加密、承諾方案等。作為具體示例,我們重新實(shí)現(xiàn)了 ECDSA 簽名驗(yàn)證,允許使用任意消息驗(yàn)

    2024年01月16日
    瀏覽(17)
  • 區(qū)塊鏈數(shù)字簽名、驗(yàn)簽,以及橢圓曲線算法JS庫(kù)—elliptic的使用

    目錄 一、簡(jiǎn)介 二、橢圓曲線密碼elliptic 1、安裝elliptic和js-sha3 2、Keccak256 3、簽名過程

    2024年02月02日
    瀏覽(26)
  • 深入解析Ed25519橢圓曲線數(shù)字簽名算法的C#移植及應(yīng)用示例

    第一部分:Ed25519算法的簡(jiǎn)介與重要性 隨著數(shù)字加密技術(shù)的飛速發(fā)展,我們不斷地探索更安全、更高效的加密算法來保護(hù)數(shù)據(jù)和身份驗(yàn)證。其中,Ed25519已經(jīng)成為了橢圓曲線數(shù)字簽名算法(ECDSA)的一個(gè)重要分支,其在性能和安全性方面都表現(xiàn)出了卓越的特點(diǎn)。 Ed25519的特點(diǎn) :

    2024年02月12日
    瀏覽(76)
  • 公鑰密碼系統(tǒng)主要依賴的三種數(shù)學(xué)難題:1.大整數(shù)因子分解問題 2.離散對(duì)數(shù)問題 (DLP問題) 3. 橢圓曲線上的離散對(duì)數(shù)問題(ECDLP)

    1.大整數(shù)因子分解問題,如 RSA 系統(tǒng) 1.數(shù)理 將兩個(gè)大素?cái)?shù)相乘容易,但對(duì)其乘積進(jìn)行因式分解極其困難,因此可以將乘積公開作為加密密鑰,即公鑰,而兩個(gè)大素?cái)?shù)組合成私鑰 先找到兩個(gè)非常大的質(zhì)數(shù)P和Q,使 N=P Q,T=(P-1) (Q-1) 在區(qū)間(0~N)之間取一個(gè)與T互質(zhì)的數(shù) E,即 GCD(E,T)

    2023年04月08日
    瀏覽(29)
  • 【密碼算法 之一】對(duì)稱加密算法 DES \ 3DES 淺析

    【密碼算法 之一】對(duì)稱加密算法 DES \ 3DES 淺析

    ??DES(Data Encryption Standard)是1977年美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)中所采用的一種對(duì)稱密碼(FIPS 46-3)。DES一直以來被美國(guó)以及其它國(guó)家的政府和銀行等廣泛使用。 ??然而,隨著計(jì)算機(jī)的進(jìn)步,現(xiàn)在DES已經(jīng)能夠被暴力破解,強(qiáng)度大不如從前了。20世紀(jì)末,RSA公司舉辦過破

    2024年02月09日
    瀏覽(22)
  • 【密碼算法 之二】對(duì)稱加密算法 AES(Advanced Encryption Standard)淺析

    【密碼算法 之二】對(duì)稱加密算法 AES(Advanced Encryption Standard)淺析

    ??AES的全稱是 Advanced Encryption Standard,意思就是“高級(jí)加密標(biāo)準(zhǔn)”。它的出現(xiàn)主要是用于取代其前任DES算法的,因?yàn)槲覀兌贾繣DS算法的秘鑰長(zhǎng)度實(shí)際為56bit,因此算法的理論安全強(qiáng)度為2的56次方,但是隨著計(jì)算能力的大幅提高,雖然出現(xiàn)了3DES的加密方法,但由于它的加密

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包