非對稱加密與數字證書、數字籤名的關係?

2020-12-14 菜菜菜知道

非對稱加密(一句話概括)

給你一把打開的鎖,用它鎖住重要的東西寄回給我,鑰匙我自己留著誰也不給。

鎖=公鑰;鑰匙=私鑰

公鑰就是下面這東西

-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8sBFht3URDLrQrJ/CCUe3zrIJ

QPYJuBUMfnXV11aV38NEFvzr2I89MAsv7PBl0yEusAhsoOssZuaqRpUatMoScqy8

Ap0c0yAD3OY2SjFeqWdn7p2qjRjBLjVwGwA5gRDaX34Yo/r8fGq9WwDPQTkya5pa

VkyiyROU9q/q8XppGQIDAQAB

-----END PUBLIC KEY-----

私鑰就是這東西

-----BEGIN PRIVATE KEY-----

MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALywEWG3dREMutCs

n8IJR7fOsglA9gm4FQx+ddXXVpXfw0QW/OvYjz0wCy/s8GXTIS6wCGyg6yxm5qpG

lRq0yhJyrLwCnRzTIAPc5jZKMV6pZ2funaqNGMEuNXAbADmBENpffhij+vx8ar1b

AM9BOTJrmlpWTKLJE5T2r+rxemkZAgMBAAECgYAfAUuJ5Ax/hbj46zTBPKclQ/ir

XppPVIlY6TrRrbXToNZETQa4dnhrFIbyFBwYj03njxODThn2zN3gYwLDRavifal7

t07LvE7fwv84QCB4V0/v3WDDex+jCd3HjikiDG48ugC5uZk2Zmz+6DVHTfisr/Ia

TFaZwnar1Fx2IIY50QJBAO9SdP68hUuk8OROjQixbK3AT0ANVCf4lig6eC/yyWzY

IpMda+lwFrcA2Zm4P5lTl4czpH6axKZGlqiUJPkS5K0CQQDJ1klfn/R5m3Mnx7jd

o/jt+izVP+WHTpEoz4DYkLmp2+6umrt1pymTyszJVnSfB8wV2hHablROAgWH8E5+

LzedAkEAoadk95yHvSzQuqaEhVazPjokTfOy4Lz9UHcOL/UjMa5czFqXRbs83Khq

U3ctHnhkZiLv/cS1CEuuAHjw8H1ekQJAeo+49mw3FDEk+B77TvtnCXtFBilKw6Md

2l5GqzsWwuJeSYCEHKlpQel/+TKalocxkoNdG/qrDsODgEyYHV+msQJAPJdy7pwM

C8IYR8yOGr79R4lK85u1q6bGbZGuqBfnUb7GfuEDIwTgn7wFzFybp/sCzwlSXwpj

vp+SsYi+oAgQmQ==

-----END PRIVATE KEY-----

具體指的是加、解密使用不同的密鑰,一把作為公開的公鑰,另一把作為私人保留的私鑰。公鑰加密的信息,只有私鑰才能解密。反之,私鑰加密的信息,只有公鑰才能解密。

再舉個例子,你向某公司伺服器請求公鑰,伺服器將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人才能對你的消息解密。

與對稱加密不同的是(指的是加解密使用同一串密鑰,常見的對稱加密算法有:DES、AES等。),公司伺服器不需要將私鑰通過網絡發送出去,因此安全性大大提高。

最常用的非對稱加密算法:RSA(RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。)

那麼有了一些概念後,我們來代入,加密過程是怎麼樣?解密過程是怎麼樣?

先介紹個軟體,GPG(一款免費軟體,由自由軟體基金會開發,全稱:GnuPG)。

重要功能命令有:

gpg --gen-key

#生成自己的密鑰,需設定長度(長度越長越安全)、有效期、用戶標識(姓名、郵件、注釋)、私鑰密碼(防止系統入侵,或非法使用私鑰,相當於給私鑰在加層保護)

生成後,系統會提示:

gpg: 密鑰 EDDD6D76 被標記為絕對信任  公鑰和私鑰已經生成並經籤名。

請注意上面的字符串"EDDD6D76",這是"用戶ID"的Hash字符串,可以用來替代"用戶ID"。

這時,最好再生成一張"撤銷證書",以備以後密鑰作廢時,可以請求外部的公鑰伺服器撤銷你的公鑰。

gpg --gen-revoke[用戶ID]

#生成撤銷證書,防止以後密鑰需要作廢,可以使用該撤銷證書撤銷公鑰。

gpg --import test.key

#撤銷本地證書

gpg -send-keys[ID]

#將被撤銷的公鑰ID發送到CA,即可撤銷伺服器上的公鑰。

gpg --send-keys [用戶ID] --keyserver hkp://subkeys.pgp.net

#上傳公鑰至對應密鑰管理伺服器(可以是公網託管伺服器也可以是自己布署的私有CA)

gpg --recipient [用戶ID] --output demo.en.txt --encrypt demo.txt

#recipient後跟著接收者的公鑰,即此文件接收方。

gpg --decrypt demo.en.txt --output demo.de.txt

#接收者收到後,即可解密。

gpg --sign demo.txt

#有時不需要加密,只需要證明該文件由我發出,就需要用到籤名

運行上面的命令後,當前目錄下生成demo.txt.gpg文件,這就是籤名後的文件。這個文件默認採用二進位儲存,如果想生成ASCII碼的籤名文件,可以使用clearsign參數。

gpg --local-user [發信者ID] --recipient [接收者ID] --armor --sign --encrypt demo.txt

#籤名+加密

local-user參數指定用發信者的私鑰籤名,recipient參數指定用接收者的公鑰加密,armor參數表示採用ASCII碼形式顯示,sign參數表示需要籤名,encrypt參數表示指定源文件。

gpg --verify demo.txt.asc demo.txt

#收到籤名文件後,可以使用對方公鑰來驗證,參數為verify

了解底層生成方法後,我們來看看數字證書和數字籤名的關係

可視化的數字證書長這樣

可以看到頒發者為:DigiCert Global Root CA,頒發給了自己,有效期為25年,如同上面說提到的GPG命令一樣,設置了有效期、算法、長度等信息。

PS:除了GPG,還有其他開源工具,如OpenSSL,也可以生成證書。

如何生成?

生成要區分公網和私網環境,如果需要發布到公網就需要向對應的可信任CA機構申請,這樣你申請的證書才會在公網上被認可,私網可以自己搭建CA,比如GPG或OpenSSL等開源工具部署,最後手動添加信任即可。

作用?

可以用於網頁傳輸、電子郵件傳輸、軟體安裝包等,確保數據交互時,不會被竊聽或篡改。

可視化數字籤名長這樣

軟體安裝包一般都會有證書內嵌,如果沒有籤名的話一安裝就會提示這樣:

這是因為該軟體沒有內籤,所以Microsoft會有安全提示,當然你可以直接運行,但是該安裝包因為沒有權威機構籤名,所以可能有未知風險。

另外在此路徑可以查看到系統所有受信任的根證書頒發機構,當然你也可以手動添加。(註:根證書所籤發的所有證書均默認被信任,所以自己添加根證書請謹慎。)

程序怎麼籤名?

以微軟系統舉例,使用SignCode.exe,根據步驟,將公、私鑰導入,選擇加密算法、時間戳等,即可將安裝包進行籤名。

那如果是文件籤名的話,請參照上方GPG命令,籤名過程是這樣的:

A:發送文件B用戶,確保由A發送

A:將文件Hash後,得到概要(固定長度)

A:將概要使用私鑰加密

A:將加密後的概要、原文件、公鑰三者發送 給B用戶

B:收到原文件,使用相同Hash算法後得到概要

B:使用A的公鑰解密加密後的概要

B:比對概要,無差別即為A籤名的文件。

作用?

確保文件或軟體、數據由對應籤名者發送,未被篡改。

以上。

最後:

個人的學習見解,希望有技術大佬可以多多指正。

相關焦點

  • 深入淺出:區塊鏈技術中的非對稱加密算法——籤名和加密
    籤名是一種非對稱加密算法的用法,即使用不同的加密密鑰與解密密鑰,而由已知加密密鑰推導出解密密鑰在計算上是不可行的。籤名是用非對稱算法的私鑰籤名,然後用私鑰對應的公鑰來驗證籤名,的主要作用是確定發送方的身份。除了籤名,非對稱加密算法還有一個用處是加密和解密,加密則是用公鑰來對信息加密,然後用對應的私鑰進行解密,主要作用是向接收方傳遞加密的信息。
  • 數字籤名技術概覽(轉載)
    本文中的數字籤名技術特指採用非對稱密碼機制來實現的籤名技術。一個籤名人具有一對密鑰,包括一個公鑰和一個私鑰。籤名人公開其公鑰,籤名驗證人(簡稱驗籤人)需要在驗證籤名前獲取籤名人的真實公鑰。如果驗籤人需驗證多個籤名人的籤名,則必須預先知道每個籤名人和其公鑰的對應關係。
  • 國務院支持推動數字證書、電子籤名等的國際互認
    近日,國務院發布《關於深化北京市新一輪服務業擴大開放綜合試點建設國家服務業擴大開放綜合示範區工作方案的批覆》,同意:立足中關村軟體園,推動數字證書、電子籤名等的國際互認,試點數據跨境流動,建設國際信息產業和數字貿易港,探索建立以軟體實名認證
  • 數字證書可以做的不僅僅是SSL
    最好的方法是數字證書。數字證書非常安全您可以使用數字證書保護很多不同的端點,就普通網際網路用戶而言,最常見的用途是SSL / TLS。這是一個很好的用途,但是作為公鑰基礎結構的組成部分的數字證書也可以用於:使用數字證書保護電子郵件伺服器的安全您如何確定哪些設備可以訪問您的電子郵件伺服器?密碼已過時且具有風險,但是使用數字證書進行身份驗證絕對是一個不錯的選擇。它不僅用戶友好和方便,而且更加安全。
  • 金鏑說法|數字籤名的法律效力解析
    (數字證書公鑰,文檔上的電子封條——印鑑)有些複雜,打個比方吧。數字證書頒發機構相當於一個刻章公司,通過對用戶實名認證後頒發數字證書,就相當於刻制了一枚個人名章。因採用加密算法,「名章」和籤名後的「印鑑」都無法被偽造。
  • 在數字時代 如何成為一個「真正」有身份的人?
    如果為零知識密碼證明進行分類,它屬於非對稱加密(public-key cryptography)的一種,而且IEEE認為它也是零知識證明的一種。限於篇幅和行文目的,我們這裡只簡單介紹下非對稱加密,而不介紹零知識密碼證明的細節,二者原理是相通的。非對稱加密是現代密碼學中非常重要的一個分支。
  • Bitfoliex:將用戶放在首位的加密數字錢包平臺
    這跟很多企業家和加密貨幣行業領導者致力於提供數字貨幣交易平臺,也是有關係的。正是因為交易比特幣等數字錢包或交易所的存在,讓比特幣能在全球各個投資人之間安全、高效地交換和流通,從而被更多投資人知道和信任、認可。Bitfoliex,也是加密貨幣行業領導者們努力下創立的高安全性的數字錢包,為全球的零售用戶和一些機構參與者提供了安全,方便,直觀和專業的加密資產管理服務.
  • 密戰CBX 構建未來加密數字社會
    密戰(Crypto Battle)將打破僵局,以隱私加密+易用+可拓展生態+可信計算&零知識證明&同態加密,來鑄造區塊鏈數字商海,構建基於區塊鏈的加密數字社會。密戰Crypto Battle,源於Mr X,取勝數字代碼戰役。
  • 【深度】透過專利看「央行數字貨幣」布局
    支付通過CA證書籤名生成數字貨幣轉移請求,再將數字貨幣轉移請求發送至數字貨幣發鈔行並接收帶有發鈔行數字籤名的支付成功結果來實現;?存儲是指用戶在需要時將數字貨幣轉入數字貨幣錢包,數字貨幣錢包為存幣指令生成存幣轉移請求,該請求發送給數字貨幣發行登記端,將來源幣串列表作廢,生成存入去向幣串列表,完成存儲過程;?
  • 谷燕西:Kraken獲得加密數字銀行牌照的意義
    用戶託管的數字資產同這個銀行機構的關係是寄託關係。如果這類銀行破產,用戶存儲的資產不屬於這個機構的資產,應該直接歸還給用戶。這樣的寄託關係同主流的銀行中的存款類型不同。主流銀行中的存款是負債關係。當用戶把錢存到銀行的時候,這個存款就是銀行的資產。如果銀行破產,用戶的存款需要同銀行的其他資產共同處理。
  • 法定與非法定,數字貨幣概念及應用探析
    一部分學者、專家和機構成功研究出了加密貨幣,即第一種大眾電子貨幣。這種貨幣,一方面具有匿名性,用戶不需要告訴對方私人信息;另一方面,不需要中介機構,交易雙方可點對點直接交易。大眾電子貨幣大大提高了交易的效率,在一定的時期內獲得快速的發展。但這種貨幣價格波動太大,顯然不具備價值尺度的職能。
  • JPEX數字銀行與飛月全球學院強強聯合,打造全新加密貨幣生態
    而與此同時,飛月全球學院與JPEX數字銀行展開合作,共同打造全球加密貨幣新型生態。飛月全球學院是什麼?飛月全球學院致力於打造區塊鏈教育培訓一體化解決方案。關於JPEX數字銀行JPEX數字銀行,是全球內知名的加密貨幣環形套利平臺。JPEX數字銀行在原有的IAIA2.0環形套利系統的基礎上進行改進,使得其不會過於依賴某幾個交易策略而出現虧損情況出現,正因為解決了這個一般的量化套利交易策略問題,所以回報穩定,而且隨著時間的推移,對接的交易所API將越來越多,回報也將更穩定。
  • 一文讀懂數字貨幣:比特幣突破10000美元,A股數字貨幣領漲
    盤面上,數字貨幣概念領漲。一文讀懂數字貨幣是什麼?一直以來,密碼學家有個想法,既然郵件能夠加密、籤名發送出去,那麼手裡的現金能不能像郵件一樣,加個數字信封,進行加密和籤名後,從一端發送到另外一端。這就是最早的數字現金思想的由來。隨著現代密碼學的發展,數字現金的技術實現逐漸成為可能,引起許多密碼學家們的廣泛興趣。
  • 小白科普文丨加密貨幣錢包由什麼組成 有什麼值得推薦的數字加密...
    12月11日上午,以太坊創始人V神在拉丁美洲比特幣會議上表示:錢包的安全性仍是加密領域最大的問題之一。他認為,數字加密貨幣錢包還是很難使用,這使得它們對非技術用戶來說有些不安全,大規模採用加密貨幣時可能會帶來麻煩。
  • GIB環球投資數字銀行加密銀行卡,支付安全再無憂
    數字貨幣通常是國內的叫法,在國外,它一般稱作「加密貨幣」。數字貨幣聽起來比加密貨幣更抽象一點,「數字」旨在表現它不同於傳統貨幣的行為,即它可以通過「數字」表現更多自定義的行為。那麼,如何用一句話來解釋什麼是「數字貨幣」(加密貨幣)呢?我們可以這樣形容:數字貨幣通常是基於區塊鏈技術、在全球範圍內公開發行的虛擬貨幣,這種虛擬貨幣具有「去中心化」、「點對點」、「公開記帳」、「不可篡改」等特徵。數字貨幣一般是指公有區塊鏈平臺底下的基礎代幣,該代幣被記錄在由密碼學保證的一套公開帳本上,與傳統貨幣不同的是,由於去中心化以及可編程等特性,此種貨幣具有可自定義行為的屬性。
  • 加密數字貨幣交易未來之路
    而作為比特幣價格發現的重要環節,加密數字貨幣交易所,卻暗流湧動。尤其是中國加密數字貨幣行業,最近風雨飄搖,重大負面事件接二連三的發生。很多國內的交易者發現銀行卡被凍結,並收到各地經偵協助調查的電話。國內三大加密數字貨幣交易所(以下簡稱交易所)中的兩家OKex和火幣,相繼傳出創始人和高管被公安帶走協助調查的消息,導致其中一家無法提幣。
  • 2021,一個平平無奇的數字
    按照筆者中學時參加數學競賽的慣例,總要分析一下2021這個數字的性質,以防競賽中遇上包含這一數字的題目。像1997年國際數學奧林匹克,第四題裡就出現了1997。1997年IMO第四題,有興趣的讀者可以做做。然而,跟2020比起來,2021實在是一個平平無奇的數字。2020有許多有趣的分拆,比如它是5個404的和。(有位讀者問:「404啥意思?」
  • 蔡凱龍:加密數字貨幣交易未來之路
    而作為比特幣價格發現的重要環節,加密數字貨幣交易所,卻暗流湧動。 尤其是中國加密數字貨幣行業,最近風雨飄搖,重大負面事件接二連三的發生。很多國內的交易者發現銀行卡被凍結,並收到各地經偵協助調查的電話。 國內三大加密數字貨幣交易所(以下簡稱交易所)中的兩家OKex和火幣,相繼傳出創始人和高管被公安帶走協助調查的消息,導致其中一家無法提幣。