chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談非對稱算法與數(shù)字簽名

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-09-03 14:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

筆者在前面幾篇文章中,一口氣分別介紹了【對稱加密算法、非對稱加密算法、信息摘要算法】,從中讀者能大致了解到各種算法的應(yīng)用場景是怎么樣的。這一次,我們將進一步介紹【非對稱加密算法】和【消息摘要算法】的綜合應(yīng)用:**數(shù)字簽名和消息驗簽**。通過本文的閱讀,你可以了解到以下知識:

數(shù)字簽名是什么?

為什么數(shù)字簽名采用非對稱算法和信息摘要算法?

數(shù)字簽名的操作步驟是什么?

消息驗簽的操作步驟是什么?

數(shù)字簽名算法的分類

數(shù)字簽名的核心應(yīng)用場景:https網(wǎng)絡(luò)通訊


預(yù)備知識


在閱讀本文之前,筆者假設(shè)讀者已熟知非對稱加密算法和信息摘要算法的基本知識,如對此塊知識有缺漏,可自行前往 【算法大雜燴】常見算法的歸類和總結(jié)——非對稱加密算法 以及 【算法大雜燴】常見算法的歸類和總結(jié)——消息摘要算法 學(xué)習(xí)相關(guān)算法的基礎(chǔ)知識。

這里再次補充下,【非對稱加密算法】的核心內(nèi)容:密鑰有公鑰和私鑰之分;公鑰對外公開,私鑰私有保密;公鑰加密對應(yīng)私鑰解密,私鑰加密對應(yīng)公鑰解密;加密解密的輸入數(shù)據(jù)長度一般有限制,像RSA算法,輸入數(shù)據(jù)長度應(yīng)等于模長?!拘畔⒄惴ā康暮诵膬?nèi)容:不同的數(shù)據(jù)輸入,產(chǎn)生不同的摘要輸出,但是摘要的長度是一定的;摘要相同意味著輸入數(shù)據(jù)的原文相同。


數(shù)字簽名是什么?


簽名,一個在日常生活中,很經(jīng)常聽到并使用的名字。在平時,我們經(jīng)常會簽署各式各樣的文件,在我國的法律中,親筆簽名在一定程度上是具有法律效力的,表示當(dāng)事人對簽署的文件知悉并且認可,一旦“簽名”生成后,它具備了法律意義。又比如,我們在POS機消費后打印的消費單據(jù)上簽署自己的姓名,則表示持卡人認同這筆消費交易,銀行或收單機構(gòu)拿到這張經(jīng)消費者簽名的單據(jù),就可以完全最終消費款項的清算。在我國,POS機消費時,大部分時候,我們都要輸入銀行卡密碼,打印消費單據(jù)后還需要簽署自己的姓名;而在國外,由于他們的征信系統(tǒng)較為發(fā)達,往往在POS機消費時,是不需要輸入銀行卡密碼的,而消費的唯一憑證確認,就是消費單據(jù)上簽署的簽名。在此種情況下POS機的操作員,有義務(wù)確認消費者簽署的姓名與卡片背部的參照簽名筆跡是否一致;同時,操作員也有權(quán)利,當(dāng)發(fā)現(xiàn)消費者簽署的姓名筆跡與卡片后背簽名筆跡差異較大時,拒絕此卡片消費。通過以上的一些生活例子,我們可以了解到【簽名】是一個很重要的玩意,一定程度就代表了本人的認可和無異議。

那么,在數(shù)字信息領(lǐng)域,究竟什么是【數(shù)字簽名】呢?數(shù)字簽名(又稱公鑰數(shù)字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領(lǐng)域的技術(shù)實現(xiàn),用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補的運算,一個用于簽名,另一個用于驗證。數(shù)字簽名,就是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時也是對信息的發(fā)送者發(fā)送信息真實性的一個有效證明。(摘自: 百度百科 *數(shù)字簽名*

從密碼學(xué)的角度來說,【數(shù)字簽名】主要解決了兩個核心問題:發(fā)送的消息是完整的,未被篡改的;接收的消息一定就是對應(yīng)發(fā)送者發(fā)送的,別人無法仿制。前者體現(xiàn)的是數(shù)據(jù)的完整性,后者體現(xiàn)的是數(shù)據(jù)的不可抵賴性。


為什么數(shù)字簽名采用非對稱算法和信息摘要算法?


從上一小結(jié),我們可以知道【數(shù)字簽名】的兩個核心特點:不可抵賴性和完整性。通過對之前學(xué)習(xí)的非對稱加密算法和信息摘要算法的基礎(chǔ)知識一對比,我們可以發(fā)現(xiàn):

非對稱加密算法正好解決了不可抵賴性的問題,因為在非對稱算法體系中,經(jīng)私鑰加密的數(shù)據(jù)只有私鑰對應(yīng)的公鑰才能解開,別人的公鑰是無法解密出原文的,這就是不可抵賴的體現(xiàn),即任何人都無法冒充發(fā)送者。

信息摘要算法恰好解決了數(shù)據(jù)完整性的問題,因為在信息摘要算法中,不同的數(shù)據(jù)輸入,產(chǎn)生的摘要是不一樣的;當(dāng)摘要數(shù)據(jù)一樣時,我們就可以認為數(shù)據(jù)原文是一致的,也就認可了數(shù)據(jù)是完整的,沒有被篡改的。

兩者一結(jié)合,恰好就誕生了【數(shù)字簽名】這個最佳實踐,達到了數(shù)據(jù)傳輸中不可修改性的安全要求。


數(shù)字簽名的操作過程


前面的講解,我們知道了【數(shù)字簽名】的特性。在實際的應(yīng)用過程中,數(shù)字簽名的應(yīng)用公式如下所示,其中M表示消息原文,S表示數(shù)字簽名,P表示非對稱算法的私鑰運算,D表示信息摘要算法的運算。

P(D(M [with any length])) = S [with fixed length]

具體來說,發(fā)送方產(chǎn)生一個數(shù)據(jù)簽名,需要經(jīng)過以下幾個步驟:

使用【信息摘要算法】,對任意長度的信息原文做摘要運算,得到一段固定長度的摘要數(shù)據(jù);

如果該摘要數(shù)據(jù)的長度,沒有達到非對稱加密算法做加解密運算的輸入長度,通常還需要使用填充標準對摘要數(shù)據(jù)進行必要的填充,以達到非對稱算法的運算條件;常用的填充標準有PKCS1-padding;

使用【非對稱加密算法】的私鑰對填充后的摘要數(shù)據(jù)做加密運算,得到一段固定長度的數(shù)字簽名;

發(fā)送方將數(shù)字簽名拼接在信息原文的尾部,一同發(fā)送給接收方,完成數(shù)據(jù)的單方向傳輸。

經(jīng)過以上的步驟后,發(fā)送方就成功將信息原文和對應(yīng)的數(shù)字簽名,傳遞給了接收方;剩余的事,就是接收方對數(shù)據(jù)的驗簽操作。


消息驗簽的操作過程


接收方收到發(fā)送方發(fā)送的數(shù)據(jù)報文(信息原文+數(shù)字簽名)后,需要經(jīng)歷以下步驟來完成對報文消息的驗簽操作:

首先,對數(shù)據(jù)報文進行分解,提取出信息原文部分和數(shù)字簽名部分;

與產(chǎn)生數(shù)字簽名流程一樣,使用相同的信息摘要算法對信息原文做摘要運算,得出消息原文的摘要D1;

與產(chǎn)生數(shù)字簽名流程相反,使用【非對稱加密算法】中簽名私鑰對應(yīng)的公鑰對數(shù)字簽名部分做解密運算,解密后得到原始發(fā)送方發(fā)送的經(jīng)填充后的摘要D2;

與產(chǎn)生數(shù)字簽名流程相反,使用相同的數(shù)據(jù)填充標準對摘要D2做去填充操作,得到原始消息的附帶的摘要D3;

比較D3和D1;如果兩者相等,則表示對數(shù)字簽名的驗簽是OK的,消息原文的數(shù)據(jù)是可信任的;反之,若D3不等于D1,則可以認為消息原文是不可信任的,數(shù)字簽名中的【完整性】和【不可抵賴性】可能遭到了破壞;我們應(yīng)該摒棄信息原文。


數(shù)字簽名算法的分類


數(shù)字簽名算法,就是使用RSA、MD5、SM2、SHA、SM3等非對稱算法和信息摘要算法進行混搭組合。數(shù)字簽名算法的基本表示格式為:xxxWithYYYEncryption,其中xxx表示信息摘要算法,yyy表示非對稱加密算法。常見有的以下幾種:

md5WithRSAEncryption:摘要運算采用MD5,非對稱算法使用RSA;

sha1WithRSAEncryption:摘要運算采用SHA1,非對稱算法使用RSA;

sha256WithRSAEncryption:摘要運算采用SHA256,非對稱算法使用RSA;【常用】

sm3WithSM2Encryption:摘要運算采用SM3,非對稱算法使用SM2。


數(shù)字簽名的核心應(yīng)用場景:https網(wǎng)絡(luò)通訊


經(jīng)以上的各小結(jié),我們基本掌握了數(shù)字簽名的主要內(nèi)容,這一小節(jié),我們介紹下數(shù)字簽名的核心應(yīng)用:https網(wǎng)絡(luò)通訊。

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本傳輸安全協(xié)議),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細內(nèi)容就需要SSL。

由它的定義可知,要想實現(xiàn)https,除了應(yīng)用層需要有http的支持,還需要在傳輸層支持SSL。SSL正是為了解決網(wǎng)絡(luò)通訊的安全性問題而誕生的,簡單的說,通過SSL的加入,在瀏覽器和網(wǎng)頁服務(wù)器之間的數(shù)據(jù)都是加密的,而不像之前http那樣,數(shù)據(jù)完全在網(wǎng)絡(luò)上裸奔。目前網(wǎng)絡(luò)安全問題越來越突出,越來越多的網(wǎng)絡(luò)信息泄露的案例爆發(fā)出來,正是由于這些安全性問題的暴露,SSL的應(yīng)用得到了越來越多的支持。

限于篇幅原因,本小結(jié)不對SSL的具體細節(jié)做闡述,僅僅是簡要描述數(shù)字簽名在SSL中的應(yīng)用方法;后續(xù)筆者會寫一篇專門的文章來進一步解釋SSL通訊的前前后后,敬請關(guān)注。

說到數(shù)字簽名在SSL的應(yīng)用,它主要是幫助發(fā)送方和接收方協(xié)商必要的數(shù)據(jù),比如網(wǎng)絡(luò)通訊的加密密鑰。我們知道,網(wǎng)絡(luò)數(shù)據(jù)是龐大的,而非對稱算法的加密速度是遠遠比對稱加密算法慢的,所以在網(wǎng)絡(luò)通訊的報文不太適合直接使用非對稱算法做加密,比較合適的做法的通訊報文還是采用對稱加密算法加密,但是對稱加密算法使用的對稱密鑰是發(fā)送方和接收方在正式通訊前進行在線協(xié)商的;密鑰協(xié)商的過程使用數(shù)字簽名的技術(shù),保證協(xié)商的密鑰是完整的(保證是沒被篡改的),并且是不可抵賴的(保證是發(fā)送方的)。在密鑰協(xié)商時,通訊雙方分別利用自己的私鑰和公鑰,結(jié)合數(shù)字簽名技術(shù),完成協(xié)商動作。

上面講消息驗簽的時候,我們提到消息驗簽必須要使用簽名方的公鑰做解密運算,這個公鑰一定程度上代表了簽名方的身份;但是,我們?nèi)绾沃牢覀兡玫降墓€,就是我們認為的那個簽名方的公鑰,而不是網(wǎng)絡(luò)攻擊“中間人”的公鑰呢?這就需要CA (Certificate Authority)幫助我們確認這個公鑰的合法性。具體的做法是,我們拿到簽名方的公鑰時,它并不僅僅是一個公鑰,而公鑰+經(jīng)CA簽名的數(shù)字簽名,這叫做公鑰證書。我們對公鑰證書,先用CA的公鑰對公鑰證書的數(shù)字簽名進行驗簽,如果驗簽成功,則表示我們拿到的公鑰是可信任的。那么,CA的公鑰,我們又通過誰來保證它是可信任的呢?

這似乎是一個無窮無盡的問題?究竟是怎么回事呢?筆者在這里先賣個關(guān)子,有興趣的讀者,可以關(guān)注筆者后續(xù)有關(guān)SSL通訊的詳細介紹。


本文通過對非對稱算法和信息摘要算法的簡要回顧,進而引出【數(shù)字簽名】的兩個核心問題,闡述了數(shù)字簽名的操作流程以及消息驗簽的操作過程,讀者閱讀完本文,應(yīng)該對數(shù)字簽名的相關(guān)知識有了更多的了解。最后,筆者引出了數(shù)字簽名在https通訊的核心應(yīng)用,并拋出有關(guān)CA的疑問,希望有更多的讀者參與本文的思考和總結(jié)。文中的觀點,僅代表筆者之愚見,難免有紕漏之處,希望有心的讀者誠心指正,互相學(xué)習(xí),共同進步。感謝感謝。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CW32F030C8T6數(shù)字簽名實戰(zhàn)

    加密庫(如mbedTLS、WolfSSL)實現(xiàn)數(shù)字簽名。常見算法包括RSA、ECDSA。 2.2 基于SHA和RSA的簽名流程 生成哈希值:使用SHA-256對固件計算哈希值。 私鑰簽名
    發(fā)表于 11-19 08:03

    CW32F030C8T6數(shù)字簽名的實戰(zhàn)指南

    加密庫(如mbedTLS、WolfSSL)實現(xiàn)數(shù)字簽名。常見算法包括RSA、ECDSA。 2.2 基于SHA和RSA的簽名流程 生成哈希值:使用SHA-256對固件計算哈希值。 私鑰簽名
    發(fā)表于 11-18 06:35

    國密系列算法簡介及SM4算法原理介紹

    算法可用于無線局域網(wǎng)產(chǎn)品;SM7算法可用于身份識別、票務(wù)、支付與通卡類業(yè)務(wù)。ZUC算法可用于移動通信網(wǎng)絡(luò)。 密碼雜湊算法:SM3算法可用于
    發(fā)表于 10-24 08:25

    加密算法的應(yīng)用

    和完整性;數(shù)據(jù)在存儲過程需要加密算法的保護,例如對于數(shù)據(jù)庫、文件等敏感數(shù)據(jù)的加密可以避免數(shù)據(jù)泄露、損壞或被篡改;加密技術(shù)還可以用于身份驗證,例如數(shù)字簽名技術(shù)可以確保信息的真實性和完整性,防止偽造和篡改
    發(fā)表于 10-24 08:03

    非對稱密鑰生成和轉(zhuǎn)換規(guī)格詳解

    Signature Algorithm),是一種基于模算數(shù)和整數(shù)有限域離散對數(shù)難題的一種公鑰密碼算法,常用于數(shù)字簽名和驗簽,不能用于加解密。 當(dāng)前支持使用字符串參數(shù)和密鑰參數(shù)兩種方式生成DSA密鑰
    發(fā)表于 09-01 07:50

    如何在 MA35 系列微處理器 (MPU) 上開發(fā) AMP(非對稱多處理)應(yīng)用程序?

    如何在 MA35 系列微處理器 (MPU) 上開發(fā) AMP(非對稱多處理)應(yīng)用程序,并通過建立多個端點的過程促進與其他內(nèi)核的多通道數(shù)據(jù)傳輸。
    發(fā)表于 08-19 06:11

    凌科芯安LKT4304安全芯片在智能家居網(wǎng)關(guān)中的應(yīng)用

    采用對稱加密與非對稱加密相結(jié)合的混合加密架構(gòu)。在智能家居網(wǎng)關(guān)與服務(wù)器通信過程中,非對稱加密算法(如RSA或SM2)用于密鑰協(xié)商與身份認證。RSA
    的頭像 發(fā)表于 06-16 17:43 ?1024次閱讀
    凌科芯安LKT4304安全芯片在智能家居網(wǎng)關(guān)中的應(yīng)用

    安芯半導(dǎo)體發(fā)布全新防復(fù)制加密芯片RJGT28E30

    ECC橢圓曲線加密算法是一種非對稱加密算法,相對于對稱加密算法,更便于密鑰的管理,且相對于等密鑰長度的RSA
    的頭像 發(fā)表于 06-10 17:53 ?1084次閱讀
    安芯半導(dǎo)體發(fā)布全新防復(fù)制加密芯片RJGT28E30

    請問OpenVINO?工具套件是否支持使用非對稱卷積的支持模型?

    無法確定使用非對稱卷積的模型是否受 OpenVINO? Toolkit 的支持
    發(fā)表于 03-06 07:58

    瑞芯微RK3568正式開放RISC-V核心啦,也支持非對稱AMP雙系統(tǒng)!

    在嵌入式系統(tǒng)的發(fā)展進程中,多核異構(gòu)架構(gòu)的出現(xiàn)為滿足復(fù)雜應(yīng)用場景的需求提供了新的可能。其中,瑞芯微RK3568J國產(chǎn)平臺的非對稱AMP(Asymmetric Multi-Processing)架構(gòu)
    的頭像 發(fā)表于 02-27 10:36 ?994次閱讀
    瑞芯微RK3568正式開放RISC-V核心啦,也支持<b class='flag-5'>非對稱</b>AMP雙系統(tǒng)!

    “國產(chǎn)雙系統(tǒng)”出爐!復(fù)旦微FMQL20SM非對稱AMP:Linux + 裸機

    非對稱AMP”雙系統(tǒng)是什么 AMP(Asymmetric Multi-Processing),即非對稱多處理架構(gòu)。“非對稱AMP”雙系統(tǒng)是指多個核心相對獨立運行不同的操作系統(tǒng)或裸機應(yīng)用程序,如
    的頭像 發(fā)表于 01-24 13:46 ?1155次閱讀
    “國產(chǎn)雙系統(tǒng)”出爐!復(fù)旦微FMQL20SM<b class='flag-5'>非對稱</b>AMP:Linux + 裸機

    ARM + RISC-V核間通信方案,基于全志T113-i的OpenAMP非對稱架構(gòu)

    ),即非對稱多處理架構(gòu)。“非對稱AMP”雙系統(tǒng)是指多個核心相對獨立運行不同的操作系統(tǒng)或裸機應(yīng)用程序,如Linux + RTOS/裸機,但需
    的頭像 發(fā)表于 01-24 09:30 ?882次閱讀
    ARM + RISC-V核間通信方案,基于全志T113-i的OpenAMP<b class='flag-5'>非對稱</b>架構(gòu)

    Littelfuse推出新型TPSMB非對稱TVS二極管

    Littelfuse公司,一家專注于工業(yè)技術(shù)制造的公司,致力于為可持續(xù)發(fā)展、互聯(lián)互通和更安全的世界提供動力。近日,該公司宣布推出其首款TPSMB非對稱瞬態(tài)電壓抑制(TVS)二極管系列,專為汽車應(yīng)用中
    的頭像 發(fā)表于 01-02 14:24 ?909次閱讀

    Littelfuse推出TPSMB非對稱TVS二極管系列

    Littelfuse宣布推出TPSMB非對稱TVS二極管系列,這是首款上市的非對稱瞬態(tài)電壓抑制(TVS)二極管,專門用于保護汽車應(yīng)用中的碳化硅(SiC)MOSFET柵極驅(qū)動器。 這一創(chuàng)新產(chǎn)品滿足
    的頭像 發(fā)表于 12-30 14:39 ?1019次閱讀

    加密算法在網(wǎng)絡(luò)安全中扮演什么角色?

    : 通過哈希函數(shù)和消息認證碼(MAC),加密算法可以檢測數(shù)據(jù)在傳輸過程中是否被篡改,確保數(shù)據(jù)的完整性。 提供身份驗證 : 非對稱加密算法數(shù)字簽名技術(shù)可以驗證通信雙方的身份,防止身份
    的頭像 發(fā)表于 12-17 16:00 ?854次閱讀