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

sm2簽名與sm4加密(三)

這篇具有很好參考價值的文章主要介紹了sm2簽名與sm4加密(三)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

二簡單介紹了一下理論,三來簡單說下sm2簽名的實現(xiàn),

首先因為openssl太復雜沒搞懂,就去看gmssl的代碼,gmssl的密鑰結構體很簡單,長這個樣子:

typedef struct {
	SM2_POINT public_key;
	uint8_t private_key[32];
} SM2_KEY;
typedef struct {
	uint8_t x[32];
	uint8_t y[32];
} SM2_POINT;

很明顯公鑰是一個點由xy兩個坐標組成,私鑰是一個長串。

sm2簽名過程可以大體上分成三步,生成公私鑰——(交換密鑰)——使用私鑰進行簽名——使用公鑰驗簽。

在gmssl中直接使用sm2_key_generate(&sm2_key)函數(shù),生成密鑰并將密鑰置入結構體中,或者直接使用命令生成密鑰也可以。

獲取到密鑰之后就對原報文進行簽名,具體流程是:

原報文通過sm3算法(沒錯,sm2簽名用了sm3算法)生成雜湊數(shù)據(jù)(也就是e值,e值好像是個通用的叫法?)(也叫做摘要),再將雜湊數(shù)據(jù)傳遞到簽名函數(shù)中,通過私鑰進行簽名得到簽名串。

為什么突然出現(xiàn)sm3呢?這里還需要解釋sm3是什么東西,sm3是一種密碼散列函數(shù)標準,他的特點是,將原數(shù)據(jù)不可逆的生成一串256位長度數(shù)據(jù)。這樣簽名起來就變得很簡單。

具體實現(xiàn)如下:

int sm2_sign_pre(SM2_KEY *sm2_key,
    unsigned char *msg,
    unsigned char *dgst,
    unsigned char *sig,
    size_t *siglen ) {
    int ret = 0;
    sm3_digest(msg, strlen((char*)msg), dgst);
          /* sm2_key_generate(&sm2_key);      生成私鑰key和公鑰*/

    
    if ((ret = sm2_sign(sm2_key, dgst, sig, siglen)) != 1) {
        fprintf(stderr, "signature failed\n");
    }
    else {
        printf("signature success\n");
    }
    return ret;
}

而驗簽是當報文收到之后,對報文再次進行摘要(sm3生成雜湊數(shù)據(jù)),而簽名串則拿去用公鑰去解密,解密結果如果報文沒有被篡改,那么將是相同的,驗簽通過,如果原報文經(jīng)過篡改,那么sm3生成雜湊數(shù)據(jù)會變化,以至于對比結果不相同,驗簽無法通過

代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-800871.html

int sm2_verify_pre( SM2_KEY *pub_key,
                     unsigned char* msg,
                     unsigned char *dgst,
                     unsigned char *sig, 
    size_t siglen
                    ) {
    int ret;

    sm3_digest(msg, strlen((char*)msg), dgst);

    if ((ret = sm2_verify(pub_key, dgst, sig, siglen)) != 1) {
        return ret;
    }
    else {
        return 0;
    }
}

到了這里,關于sm2簽名與sm4加密(三)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 商用密碼應用與安全性評估要點筆記(SM2公鑰加密算法)

    商用密碼應用與安全性評估要點筆記(SM2公鑰加密算法)

    1、SM2算法簡介 ? ? ? ? SM2密碼算法是我國2010年發(fā)布的商用密碼算法,屬于公鑰密碼算法,也成為非對稱密鑰機制密碼算法。SM2基于橢圓曲線離散對數(shù)問題,相對于RSA基于大整數(shù)因數(shù)分解更具優(yōu)越性。 ? ? ? ? SM2算法于2012年成為我國密碼行業(yè)標準,并于2017年被ISO采納,成為

    2024年02月01日
    瀏覽(26)
  • Python實現(xiàn)國家商用密碼算法sm2/sm3/sm4/sm9(國密)

    2010 年開始,我國國家密碼管理局就已經(jīng)開始陸續(xù)發(fā)布了一系列國產(chǎn)加密算法,這其中就包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖沖之加密算法)等,SM 代表商密,即商業(yè)密碼,是指用于商業(yè)的、不涉及國家秘密的密碼技術。SM1 和 SM7 的算法不公開,其余算法都已成為 ISO/IEC

    2024年02月15日
    瀏覽(32)
  • 新手入門 | 掌握國密算法:新手指南: SM2 / SM3 / SM4密碼算法詳解

    在密碼學領域,有多種加密與簽名算法,它們在信息安全領域發(fā)揮著舉足輕重的作用。如今,隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡安全已經(jīng)成為各類信息系統(tǒng)完整性、可用性、保密性的重要保障,越來越多的國產(chǎn)密碼算法得到了廣泛的應用與關注。在本文中,我們將重點介紹三個經(jīng)

    2024年02月12日
    瀏覽(36)
  • SM1、SM2、SM3、SM4、同態(tài)加密、密態(tài)計算、隱私計算和安全多方計算的概念

    SM1、SM2、SM3、SM4、同態(tài)加密、密態(tài)計算、隱私計算和安全多方計算的概念

    為了保障商用密碼的安全性,國家密碼局制定了一系列密碼標準,包括:SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC) 等。 SM1、SM4、SM7、祖沖之密碼(ZUC)是 對稱算法 。 SM2、SM9是 非對稱算法 。 SM3是 哈希算法 。 SM1、SM7算法不公開,調用該算法時,需要通過 加

    2024年02月03日
    瀏覽(25)
  • 使用 Java Bouncy Castle實現(xiàn)國密算法SM4、SM3以及SM2的加密

    使用 Java Bouncy Castle實現(xiàn)國密算法SM4、SM3以及SM2的加密

    國密算法的實現(xiàn)借助了Java庫函數(shù) Bouncy Castle,加密庫安裝使用教程請參考鏈接 SM4,又稱為商密算法,是一種分組密碼算法,于2012年由中國密碼技術研究中心(中國密碼學會成員)發(fā)布,目前已成為我國國家密碼算法,并在多個領域得到了廣泛的應用。SM4算法采用了32輪迭代結

    2024年02月16日
    瀏覽(34)
  • 國密SM2算法的加密簽名消息語法封裝解析p7格式signedData

    國密SM2算法的加密簽名消息語法封裝解析p7格式signedData

    前文可參考:SM2算法的加密簽名消息語法規(guī)范(三)如何構造signedData_天對地,雨對風的博客-CSDN博客系列。 這里直接講openssl asn1解析和封裝的部分代碼。 國密?p7格式標準,參考:GMT0010-2012 1、p7 簽名結構: ?編寫結構體GMTSignedData.h 注意:SM2_SignedData_st結構中的sign類型修改為

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

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

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

    2024年02月11日
    瀏覽(31)
  • java實現(xiàn)國密SM4的加密和解密方式(即時通訊的消息對話加密采用SM2還是SM4)

    java實現(xiàn)國密SM4的加密和解密方式(即時通訊的消息對話加密采用SM2還是SM4)

    1.對于即時通訊的消息對話加密采用SM2還是SM4更合適? 對于即時通訊的消息對話加密,建議采用SM4對稱加密算法,而不是SM2非對稱加密算法。 SM2主要用于數(shù)字簽名和密鑰交換,其加密速度比SM4慢,而且SM2不太適合對長消息進行加密,因為它只能對比較短的數(shù)據(jù)塊進行加密,這

    2024年02月07日
    瀏覽(101)
  • 國密算法 SM4 對稱加密 分組密碼 python實現(xiàn)完整代碼

    國密算法 SM4 對稱加密 分組密碼 python實現(xiàn)完整代碼

    目前,python實現(xiàn)的國密算法庫主要是 python-gmssl 庫和 snowland-smx ( pysmx )庫,二者都對SM2(僅公鑰加解密和數(shù)字簽名)、SM3、SM4進行了細致而優(yōu)雅的實現(xiàn)。 GMSSL. https://github.com/duanhongyi/gmssl snowland-smx. https://gitee.com/snowlandltd/ snowland-smx-python PyCryptodome. https://www.pycryptodome.org 最近用

    2024年02月06日
    瀏覽(27)
  • 國密算法 SM2 公鑰加密 數(shù)字簽名 密鑰交換 全網(wǎng)最高效的開源python代碼

    國密算法 SM2 公鑰加密 數(shù)字簽名 密鑰交換 全網(wǎng)最高效的開源python代碼

    此前發(fā)布過SM2、SM3、SM4、ZUC等文章,以及開源的完整python代碼。近些天看到一篇電子科大蘭同學的碩士畢業(yè)論文(蘭修文. ECC計算算法的優(yōu)化及其在SM2實現(xiàn)中的運用[D]. 成都: 電子科技大學, 2019),文中采用預計算加速SM2橢圓曲線基點點乘,將這個思路用python代碼實現(xiàn)后,實測

    2024年02月09日
    瀏覽(54)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包