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

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書

這篇具有很好參考價(jià)值的文章主要介紹了安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書

主要介紹了消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書三種加密方式。

消息認(rèn)證碼

消息認(rèn)證碼可以實(shí)現(xiàn)“認(rèn)證”和“檢測篡改”這兩個(gè)功能。密文的內(nèi)容在傳輸過程中可能會(huì)被篡改,這會(huì)導(dǎo)致解密后的內(nèi)容發(fā)生變化,從而產(chǎn)生誤會(huì)。消息認(rèn)證碼就是可以預(yù)防這種情況發(fā)生的機(jī)制。

假設(shè) A 在 B 處購買商品,需要將商品編號 abc 告訴 B。此處,假設(shè) A 使用共享密鑰加密對消息進(jìn)行加密。A通過安全的方法將密鑰發(fā)送給了 B。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

A 使用雙方共有的密鑰對消息進(jìn)行加密。A把密文發(fā)送給B,B 收到后對密文進(jìn)行解密,最終得到了原本的商品編號 abc。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

**可能出現(xiàn)的問題:**假設(shè) A 發(fā)送給 B 的密文在通信過程中被 X 惡意篡改了,而 B 收到密文后沒有意識(shí)到這個(gè)問題。

B 對被篡改的密文進(jìn)行解密,得到消息 xyz。B 以為 A 訂購的是編號為 xyz 的商品,于是將錯(cuò)誤的商品發(fā)送給了 A。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

如果使用消息認(rèn)證碼,就能檢測出消息已被篡改。

A 生成了一個(gè)用于制作消息認(rèn)證碼的密鑰,然后使用安全的方法將密鑰發(fā)送給了 B。

接下來,A 使用密文和密鑰生成一個(gè)值。此處生成的是 7f05。這個(gè)由密鑰和密文生成的值就是消息認(rèn)證碼,以下簡稱為 MAC(Message Authentication Code)。

A 將 MAC(7f05)和密文發(fā)送給 B。和 A 一樣,B 也需要使用密文和密鑰來生成 MAC。經(jīng)過對比,B 可以確認(rèn)自己計(jì)算出來的 7f05 和 A 發(fā)來的 7f05 一致。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

*我們可以把 MAC 想象成是由密鑰和密文組成的字符串的“哈希值”。

計(jì)算 MAC 的算法有 HMAC、OMAC、CMAC等。目前,HMAC 的應(yīng)用最為廣泛。

①Hash-based MAC 的縮寫。 ②One-key MAC 的縮寫。 ③Cipher-based MAC 的縮寫。

X 在通信過程中對密文進(jìn)行了篡改是怎樣一種情況呢?假設(shè)在 A 向 B 發(fā)送密文和 MAC 時(shí),X 對密文進(jìn)行了篡改。B 使用該密文計(jì)算 MAC,得到的值是 b85c,發(fā)現(xiàn)和收到的 MAC 不一致。由此,B 意識(shí)到密文或者 MAC,甚至兩者都可能遭到了篡改。于是 B 廢棄了收到的密文和 MAC,向 A 提出再次發(fā)送的請求。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)


缺點(diǎn):在使用消息認(rèn)證碼的過程中,AB 雙方都可以對消息進(jìn)行加密并且算出 MAC。也就是說,我們無法證明原本的消息是 A 生成的還是 B 生成的。

因此,假如 A 是壞人,他就可以在自己發(fā)出消息后聲稱“這條消息是 B 捏造的”, 而否認(rèn)自己的行為。如果 B 是壞人,他也可以自己準(zhǔn)備一條消息,然后聲稱“這是 A 發(fā)給我的消息”。

使用 MAC 時(shí),生成的一方和檢測的一方持有同樣的密鑰,所以不能確定 MAC 由哪方生成。這個(gè)問題可以用以下將會(huì)講到的“數(shù)字簽名”來解決。

數(shù)字簽名

數(shù)字簽名不僅可以實(shí)現(xiàn)消息認(rèn)證碼的認(rèn)證和檢測篡改功能,還可以預(yù)防事后否認(rèn)問題的發(fā)生。

由于在消息認(rèn)證碼中使用的是共享密鑰加密,所以持有密鑰的收信人也有可能是消息的發(fā) 送者,這樣是無法預(yù)防事后否認(rèn)行為的。而數(shù)字簽名是只有發(fā)信人才能生成的,因此使用它就 可以確定誰是消息的發(fā)送者了。

假設(shè)A要向B發(fā)送消息。在發(fā)送前 A 給消息加上數(shù)字簽名。數(shù)字簽名只能由 A 生成。只要發(fā)送的消息上有 A 的數(shù)字簽名,就能確定消息的發(fā)送者就是 A。B 可以驗(yàn)證數(shù)字簽名的正確性,但無法生成數(shù)字簽名。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

數(shù)字簽名的生成使用的是公開密鑰加密:安全算法(二):共享密鑰加密、公開密鑰加密、混合加密和迪菲-赫爾曼密鑰交換-CSDN博客

公開密鑰加密中,加密使用的是公開密鑰 P ,解密使用的是私有密鑰 S 。任何人都可以 使用公開密鑰對數(shù)據(jù)進(jìn)行 加密,但只有持有私有密鑰的人才能解密數(shù)據(jù)。然而,數(shù)字簽名卻是恰恰相反的。

首先由A準(zhǔn)備好需要發(fā)送的消息、私有密鑰和公開密鑰。由消息的發(fā)送者來準(zhǔn)備這兩個(gè)密鑰,這一點(diǎn)與公開密鑰加密有所不同。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

A 使用私有密鑰加密消息。加密后的消息就是數(shù)字簽名。

A 將消息和簽名都發(fā)送給了 B。B 使用公開密鑰對密文(簽名)進(jìn)行解密。B 對解密后的消息進(jìn)行確認(rèn),看它是否和收到的消息一致。流程到此結(jié)束。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

公開密鑰加密的加密和解密都比較耗時(shí)。為了節(jié)約運(yùn)算時(shí)間,實(shí)際上不會(huì)對消息直接進(jìn)行加密,而是先求得消息的哈希值,再對哈希值進(jìn)行加密,然后將其作為簽名來使用(請參考下圖)

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)


缺點(diǎn):

雖然數(shù)字簽名可以實(shí)現(xiàn)“認(rèn)證”“ 檢測篡改”“ 預(yù)防事后否認(rèn)”三個(gè)功能,但它也有一個(gè)缺陷。

那就是,雖然使用數(shù)字簽名后 B 會(huì)相信消息的發(fā)送者就是 A,但實(shí)際上也有可能是 X 冒充了 A。

其根本原因在于使用公開密鑰加密無法確定公開密鑰的制作者是誰。收到的公開密鑰上也沒有任何制作者的信息。因此,公開密鑰有可能是由某個(gè)冒充 A 的人生成的。

使用以下將要講到的“數(shù)字證書”就能解決這個(gè)問題。

數(shù)字證書

“公開密鑰加密”和“數(shù)字簽名”無法保證公開密鑰確實(shí)來自信息的發(fā)送者。因此,就算公開密鑰被第三者惡意替換,接收方也不會(huì)注意到。不過,如果使用本節(jié)講解的數(shù)字證書,就能保證公開密鑰的正確性。

A持有公開密鑰PA和私有密鑰SA,現(xiàn)在想要將公開密鑰 PA 發(fā)送給 B。A首先需要向認(rèn)證中心 (Certification Authority, CA)申請發(fā)行證書,證明公開密鑰PA 確實(shí)由自己生成。認(rèn)證中心里保管著他們自己準(zhǔn)備的公開密鑰 PC和私有密鑰 SC 。A將公開密鑰PA 和包含郵箱信息的個(gè)人資料發(fā)送給認(rèn)證中心。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

A將公開密鑰PA 和包含郵箱信息的個(gè)人資料發(fā)送給認(rèn)證中心。

認(rèn)證中心對收到的資料進(jìn)行確認(rèn),判斷其是否為 A 本人的資料。確認(rèn)完畢后,認(rèn)證中心使用自己的私有密鑰 SC,根據(jù) A 的資料生成數(shù)字簽名。

認(rèn)證中心將生成的數(shù)字簽名和資料放進(jìn)同一個(gè)文件中。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

然后,把這個(gè)文件發(fā)送給 A。這個(gè)文件就是 A 的數(shù)字證書。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

A 將作為公開密鑰的數(shù)字證書發(fā)送給了 B。B 收到數(shù)字證書后,確認(rèn)證書里的郵件地址確實(shí)是 A 的地址。接著,B 獲取了認(rèn)證中心的公開密鑰。

B 對證書內(nèi)的簽名進(jìn)行驗(yàn)證,判斷它是否為認(rèn)證中心給出的簽名。證書中的簽名只能用認(rèn)證中心的公開密鑰 PC 進(jìn)行驗(yàn)證。如果驗(yàn)證結(jié)果沒有異常,就能說明這份證書的確由認(rèn)證中心發(fā)行。

安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

確認(rèn)了證書是由認(rèn)證中心發(fā)行的,且郵件地址就是A的之后,B從證書中取出A的公開密鑰PA。這樣,公開密鑰便從 A 傳到了 B。

假設(shè)交付過程中存在X。

X 冒充 A,準(zhǔn)備向 B 發(fā)送公開密鑰 PX。但是,B 沒有必要信任以非證書形式收到的公開密鑰。

假設(shè) X 為了假冒 A,準(zhǔn)備在認(rèn)證中心登記自己的公開密鑰。然而 X 無法使用 A 的郵箱地址,因此無法獲得 A 的證書。

此處疑問:B 得到的公開密鑰 PC 真的來自認(rèn)證中心嗎?

實(shí)際上,認(rèn)證中心的公開密鑰 PC 是以數(shù)字證書的形式交付的,會(huì)有更高級別的認(rèn)證中心對這個(gè)認(rèn)證中心署名。

假設(shè)存在一個(gè)被社會(huì)廣泛認(rèn)可的認(rèn)證中心 A。此時(shí)出現(xiàn)了一個(gè)剛成立的公司 B,雖然 B 想要開展認(rèn)證中心的業(yè)務(wù),但它無法得到社會(huì)的認(rèn)可。

于是 B 向 A 申請發(fā)行數(shù)字證書。當(dāng)然 A 會(huì)對 B 能否開展認(rèn)證中心業(yè)務(wù)進(jìn)行適當(dāng)?shù)臋z測。只要 A 發(fā)行了證書,公司 B 就可以向社會(huì)表示自己獲得了公司 A 的信任。于是, 通過大型組織對小組織的信賴擔(dān)保,樹結(jié)構(gòu)就建立了起來。

最頂端的認(rèn)證中心被稱為“根認(rèn)證中心”(root CA),其自身的正當(dāng)性由自己證明。對根認(rèn)證中心自身進(jìn)行證明的證書為“根證書”。如果根認(rèn)證中心不被信任,整個(gè)組織就無法運(yùn)轉(zhuǎn)。因此根認(rèn)證中心多為大型企業(yè),或者與政府關(guān)聯(lián)且已經(jīng)取得了社會(huì)信賴的組織。
安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書,算法基礎(chǔ)學(xué)習(xí),安全,算法,數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)

參考資料:我的第一本算法書 (石田保輝 宮崎修一)文章來源地址http://www.zghlxwxcb.cn/news/detail-815331.html

到了這里,關(guān)于安全算法(三)消息驗(yàn)證碼、數(shù)字簽名和數(shù)字證書的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 數(shù)字證書:簽名證書&加密證書

    數(shù)字證書是基于認(rèn)證機(jī)構(gòu)(可信第三方)實(shí)現(xiàn)的,若不懂請復(fù)習(xí)PKI相關(guān)知識(shí),我國為了加強(qiáng)對數(shù)據(jù)機(jī)密性的管控,采用雙證書體系(簽名證書加密證書),簽名密鑰對由用戶自己產(chǎn)生,而加密密鑰對則是由KMC(密鑰管理中心)生成。 ———————————————————

    2024年02月08日
    瀏覽(19)
  • Https、CA證書、數(shù)字簽名

    Https、CA證書、數(shù)字簽名

    Https Http協(xié)議 Http協(xié)議是目前應(yīng)用比較多應(yīng)用層協(xié)議,瀏覽器對于Http協(xié)議已經(jīng)實(shí)現(xiàn)。Http協(xié)議基本的構(gòu)成部分有 請求行 : 請求報(bào)文的第一行 請求頭 : 從第二行開始為請求頭內(nèi)容的開始部分。每一個(gè)請求頭都是由K-V鍵值對組成。 請求體: 請求頭完成后以空行結(jié)束、從空行開始

    2024年02月12日
    瀏覽(20)
  • 密碼學(xué)基礎(chǔ)(三)——數(shù)字簽名與證書

    密碼學(xué)基礎(chǔ)(三)——數(shù)字簽名與證書

    數(shù)字簽名:又叫公鑰數(shù)字簽名,或者電子印章。 數(shù)字信息社會(huì)用于取代傳統(tǒng)社會(huì)手寫簽名的一種公鑰加密領(lǐng)域的技術(shù)實(shí)現(xiàn)。 數(shù)字簽名其實(shí)就是非對稱加密的私鑰加密,公鑰解密的過程。 數(shù)字證書用來證明公鑰擁有者的身份,驗(yàn)證數(shù)據(jù)來源,驗(yàn)證數(shù)據(jù)是否被修改。 數(shù)字證書中

    2024年02月16日
    瀏覽(23)
  • 計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)之加密、數(shù)字簽名與證書

    計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)之加密、數(shù)字簽名與證書

    1.對稱加密 2.散列函數(shù) 3.非對稱加密 4.數(shù)字簽名 5.證書 2.1 對稱加密 (1)安裝 OpenSSL:登錄阿里云服務(wù)器,輸入命令:“yum install openssl openssl-devel -y”,結(jié)果如下圖所示,OpenSSL安裝成功。 圖2.1-1 安裝OpenSSL (2)創(chuàng)建lx.txt文件:輸入“vi lx.txt”命令創(chuàng)建 lx.txt 文件,并寫入“世

    2024年02月08日
    瀏覽(19)
  • [Android Studio] Android Studio生成數(shù)字證書,為應(yīng)用簽名

    [Android Studio] Android Studio生成數(shù)字證書,為應(yīng)用簽名

    ??????????? Android Debug ?????????? Topic ? 發(fā)布安卓學(xué)習(xí)過程中遇到問題解決過程,希望我的解決方案可以對小伙伴們有幫助。 ??Android Studio創(chuàng)建數(shù)字證書 ??結(jié)尾 Android 系統(tǒng)要求所有 APK 必須先使用證書進(jìn)行數(shù)字簽名,然后才能安裝到設(shè)備上或進(jìn)行更新。當(dāng)準(zhǔn)備發(fā)布

    2024年02月20日
    瀏覽(28)
  • HTTPS加密原理,搞懂什么是對稱加密、非對稱加密、證書、數(shù)字簽名

    HTTPS加密原理,搞懂什么是對稱加密、非對稱加密、證書、數(shù)字簽名

    眾所周知,http協(xié)議是一種未加密的協(xié)議,我們未加密的數(shù)據(jù),在傳輸?shù)倪^程中會(huì)經(jīng)過一個(gè)又一個(gè)的物理節(jié)點(diǎn),如果被人通過抓包的方式拿到了我們的數(shù)據(jù),將會(huì)給我們造成無法估量的損失。 為了解決解決這個(gè)問題,https應(yīng)運(yùn)而生。https通過加密的手段,保障的數(shù)據(jù)的安全性。

    2024年02月01日
    瀏覽(17)
  • 《計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》第五章 消息認(rèn)證與數(shù)字簽名

    《計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》第五章 消息認(rèn)證與數(shù)字簽名

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月06日
    瀏覽(28)
  • 【圖解DSA數(shù)字簽名算法】DSA簽名算法的Python實(shí)現(xiàn) | 物聯(lián)網(wǎng)安全 | 信息安全

    【圖解DSA數(shù)字簽名算法】DSA簽名算法的Python實(shí)現(xiàn) | 物聯(lián)網(wǎng)安全 | 信息安全

    系列索引:【圖解安全加密算法】加密算法系列索引 Python保姆級實(shí)現(xiàn)教程 | 物聯(lián)網(wǎng)安全 | 信息安全 DSA數(shù)字簽名算法基于SHA1哈希算法,關(guān)于SHA1的實(shí)現(xiàn)看另一篇文章。 數(shù)字簽名標(biāo)準(zhǔn)(DSS)由NIST公布,該標(biāo)準(zhǔn)能夠使接收者能夠驗(yàn)證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份而制定,所采用

    2024年02月06日
    瀏覽(18)
  • 【Java可執(zhí)行命令】(十)JAR文件簽名工具 jarsigner:通過數(shù)字簽名及驗(yàn)證保證代碼信任與安全,深入解析 Java的 jarsigner命令~

    【Java可執(zhí)行命令】(十)JAR文件簽名工具 jarsigner:通過數(shù)字簽名及驗(yàn)證保證代碼信任與安全,深入解析 Java的 jarsigner命令~

    jarsigner 是Java Development Kit (JDK) 提供的一個(gè)命令行工具,用于對JAR文件進(jìn)行數(shù)字簽名 。它的設(shè)計(jì)目的是提供身份驗(yàn)證和完整性保護(hù),確保在分發(fā)和發(fā)布Java應(yīng)用程序時(shí)的安全性。 數(shù)字簽名是一種用于確認(rèn)數(shù)據(jù)的來源和完整性的機(jī)制。使用私鑰對數(shù)據(jù)進(jìn)行簽名,并使用公鑰進(jìn)行驗(yàn)

    2024年02月13日
    瀏覽(25)
  • 哈工大計(jì)算機(jī)網(wǎng)絡(luò)課程網(wǎng)絡(luò)安全基本原理詳解之:消息完整性與數(shù)字簽名

    哈工大計(jì)算機(jī)網(wǎng)絡(luò)課程網(wǎng)絡(luò)安全基本原理詳解之:消息完整性與數(shù)字簽名

    這一小節(jié),我們繼續(xù)介紹網(wǎng)絡(luò)完全中的另一個(gè)重要內(nèi)容,就是消息完整性,也為后面的數(shù)字簽名打下基礎(chǔ)。 首先來看一下什么是報(bào)文完整性。 報(bào)文完整性,也稱為消息完整性(message integrity),有時(shí)也稱為報(bào)文/消息認(rèn)證(或報(bào)文鑒別),目標(biāo): 證明報(bào)文確實(shí)來自聲稱的發(fā)送

    2024年02月15日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包