導航:首頁 > 文檔加密 > 加密信息摘要的密鑰是

加密信息摘要的密鑰是

發布時間:2025-03-31 20:36:17

① 鏁版嵁鍔犲瘑鏂瑰紡鏈夊摢浜

鏁版嵁鍔犲瘑鏂瑰紡鏈夛細鍗曞悜鍔犲瘑銆佸圭О鍔犲瘑銆侀潪瀵圭О鍔犲瘑銆佸搱甯屽姞瀵嗐丼SL/TLS鍔犲瘑銆佹暟瀛楃懼悕銆佹暟瀛楁椂闂存埑絳夈

1銆佸崟鍚戝姞瀵

閫氳繃瀵規暟鎹榪涜屾憳瑕佽$畻鐢熸垚瀵嗘枃錛屽瘑鏂囦笉鍙閫嗘帹榪樺師銆傚彧鑳藉姞瀵嗭紝涓嶈兘瑙e瘑錛屽父鐢ㄤ簬鎻愬彇鏁版嵁鐨勬寚綰逛俊鎮浠ユゆ潵楠岃瘉鏁版嵁鐨勫畬鏁存с

加密技術有哪幾種

採用密碼技術對信息加密,是最常用的安全交易手段。在電子商務中獲得廣泛應用的加密技術有以下兩種:

(1)公共密鑰和私用密鑰(public key and private key)

這一加密方法亦稱為RSA編碼法,是由Rivest、Shamir和Adlernan三人所研究發明的。它利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪一個先與原文件編碼相乘,對文件加密,均可由另一個質數再相乘來解密。但要用一個質數來求出另一個質數,則是十分困難的。因此將這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將一個密鑰公開,讓需發信的人員將信息用其公共密鑰加密後發給該用戶,而一旦信息加密後,只有用該用戶一個人知道的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發信息時主動將公共密鑰傳給對方,這樣保證在Internet上傳輸信息的保密和安全。

(2)數字摘要(digital digest)

這一加密方法亦稱安全Hash編碼法(SHA:Secure Hash Algorithm)或MD5(MD Standards for Message Digest),由Ron Rivest所設計。該編碼法採用單向Hash函數將需加密的明文「摘要」成一串128bit的密文,這一串密文亦稱為數字指紋(Finger Print),它有固定的長度,且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。這樣這摘要便可成為驗證明文是否是「真身」的「指紋」了。

上述兩種方法可結合起來使用,數字簽名就是上述兩法結合使用的實例。

3.2數字簽名(digital signature)

在書面文件上簽名是確認文件的一種手段,簽名的作用有兩點,一是因為自己的簽名難以否認,從而確認了文件已簽署這一事實;二是因為簽名不易仿冒,從而確定了文件是真的這一事實。數字簽名與書面文件簽名有相同之處,採用數字簽名,也能確認以下兩點:

a. 信息是由簽名者發送的。

b. 信息在傳輸過程中未曾作過任何修改。

這樣數字簽名就可用來防止電子信息因易被修改而有人作偽;或冒用別人名義發送信息;或發出(收到)信件後又加以否認等情況發生。

數字簽名採用了雙重加密的方法來實現防偽、防賴。其原理為:

(1) 被發送文件用SHA編碼加密產生128bit的數字摘要(見上節)。

(2) 發送方用自己的私用密鑰對摘要再加密,這就形成了數字簽名。

(3) 將原文和加密的摘要同時傳給對方。

(4) 對方用發送方的公共密鑰對摘要解密,同時對收到的文件用SHA編碼加密產生又一摘要。

(5) 將解密後的摘要和收到的文件在接收方重新加密產生的摘要相互對比。如兩者一致,則說明傳送過程中信息沒有被破壞或篡改過。否則不然。

3.3數字時間戳(digital time-stamp)

交易文件中,時間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的防止文件被偽造和篡改的關鍵性內容。

在電子交易中,同樣需對交易文件的日期和時間信息採取安全措施,而數字時間戳服務(DTS:digital time-stamp service)就能提供電子文件發表時間的安全保護。

數字時間戳服務(DTS)是網上安全服務項目,由專門的機構提供。時間戳(time-stamp)是一個經加密後形成的憑證文檔,它包括三個部分:1)需加時間戳的文件的摘要(digest),2)DTS收到文件的日期和時間,3)DTS的數字簽名。

時間戳產生的過程為:用戶首先將需要加時間戳的文件用HASH編碼加密形成摘要,然後將該摘要發送到DTS,DTS在加入了收到文件摘要的日期和時間信息後再對該文件加密(數字簽名),然後送回用戶。由Bellcore創造的DTS採用如下的過程:加密時將摘要信息歸並到二叉樹的數據結構;再將二叉樹的根值發表在報紙上,這樣更有效地為文件發表時間提供了佐證。注意,書面簽署文件的時間是由簽署人自己寫上的,而數字時間戳則不然,它是由認證單位DTS來加的,以DTS收到文件的時間為依據。因此,時間戳也可作為科學家的科學發明文獻的時間認證。

3.4數字憑證(digital certificate, digital ID)

數字憑證又稱為數字證書,是用電子手段來證實一個用戶的身份和對網路資源的訪問的許可權。在網上的電子交易中,如雙方出示了各自的數字憑證,並用它來進行交易操作,那麼雙方都可不必為對方身份的真偽擔心。數字憑證可用於電子郵件、電子商務、群件、電子基金轉移等各種用途。

數字憑證的內部格式是由CCITT X.509國際標准所規定的,它包含了以下幾點:

(1) 憑證擁有者的姓名,

(2) 憑證擁有者的公共密鑰,

(3) 公共密鑰的有效期,

(4) 頒發數字憑證的單位,

(5) 數字憑證的序列號(Serial number),

(6) 頒發數字憑證單位的數字簽名。

數字憑證有三種類型:

(1) 個人憑證(Personal Digital ID):它僅僅為某一個用戶提供憑證,以幫助其個人在網上進行安全交易操作。個人身份的數字憑證通常是安裝在客戶端的瀏覽器內的。並通過安全的電子郵件(S/MIME)來進行交易操作。

(2) 企業(伺服器)憑證(Server ID):它通常為網上的某個Web伺服器提供憑證,擁有Web伺服器的企業就可以用具有憑證的萬維網站點(Web Site)來進行安全電子交易。有憑證的Web伺服器會自動地將其與客戶端Web瀏覽器通信的信息加密。

(3) 軟體(開發者)憑證(Developer ID):它通常為Internet中被下載的軟體提供憑證,該憑證用於和微軟公司Authenticode技術(合法化軟體)結合的軟體,以使用戶在下載軟體時能獲得所需的信息。

上述三類憑證中前二類是常用的憑證,第三類則用於較特殊的場合,大部分認證中心提供前兩類憑證,能提供各類憑證的認證中心並不普遍

③ 非對稱加密演算法 (RSA、DSA、ECC、DH)

非對稱加密需要兩個密鑰:公鑰(publickey) 和私鑰 (privatekey)。公鑰和私鑰是一對,如果用公鑰對數據加密,那麼只能用對應的私鑰解密。如果用私鑰對數據加密,只能用對應的公鑰進行解密。因為加密和解密用的是不同的密鑰,所以稱為非對稱加密。

非對稱加密演算法的保密性好,它消除了最終用戶交換密鑰的需要。但是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比對稱加密慢上1000倍。

演算法強度復雜、安全性依賴於演算法與密鑰但是由於其演算法復雜,而使得加密解密速度沒有對稱加密解密的速度快。對稱密碼體制中只有一種密鑰,並且是非公開的,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。

RSA、Elgamal、背包演算法、Rabin、D-H、ECC (橢圓曲線加密演算法)。使用最廣泛的是 RSA 演算法,Elgamal 是另一種常用的非對稱加密演算法。

收信者是唯一能夠解開加密信息的人,因此收信者手裡的必須是私鑰。發信者手裡的是公鑰,其它人知道公鑰沒有關系,因為其它人發來的信息對收信者沒有意義。

客戶端需要將認證標識傳送給伺服器,此認證標識 (可能是一個隨機數) 其它客戶端可以知道,因此需要用私鑰加密,客戶端保存的是私鑰。伺服器端保存的是公鑰,其它伺服器知道公鑰沒有關系,因為客戶端不需要登錄其它伺服器。

數字簽名是為了表明信息沒有受到偽造,確實是信息擁有者發出來的,附在信息原文的後面。就像手寫的簽名一樣,具有不可抵賴性和簡潔性。

簡潔性:對信息原文做哈希運算,得到消息摘要,信息越短加密的耗時越少。

不可抵賴性:信息擁有者要保證簽名的唯一性,必須是唯一能夠加密消息摘要的人,因此必須用私鑰加密 (就像字跡他人無法學會一樣),得到簽名。如果用公鑰,那每個人都可以偽造簽名了。

問題起源:對1和3,發信者怎麼知道從網上獲取的公鑰就是真的?沒有遭受中間人攻擊?

這樣就需要第三方機構來保證公鑰的合法性,這個第三方機構就是 CA (Certificate Authority),證書中心。

CA 用自己的私鑰對信息原文所有者發布的公鑰和相關信息進行加密,得出的內容就是數字證書。

信息原文的所有者以後發布信息時,除了帶上自己的簽名,還帶上數字證書,就可以保證信息不被篡改了。信息的接收者先用 CA給的公鑰解出信息所有者的公鑰,這樣可以保證信息所有者的公鑰是真正的公鑰,然後就能通過該公鑰證明數字簽名是否真實了。

RSA 是目前最有影響力的公鑰加密演算法,該演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰,而兩個大素數組合成私鑰。公鑰是可發布的供任何人使用,私鑰則為自己所有,供解密之用。

A 要把信息發給 B 為例,確定角色:A 為加密者,B 為解密者。首先由 B 隨機確定一個 KEY,稱之為私鑰,將這個 KEY 始終保存在機器 B 中而不發出來;然後,由這個 KEY 計算出另一個 KEY,稱之為公鑰。這個公鑰的特性是幾乎不可能通過它自身計算出生成它的私鑰。接下來通過網路把這個公鑰傳給 A,A 收到公鑰後,利用公鑰對信息加密,並把密文通過網路發送到 B,最後 B 利用已知的私鑰,就能對密文進行解碼了。以上就是 RSA 演算法的工作流程。

由於進行的都是大數計算,使得 RSA 最快的情況也比 DES 慢上好幾倍,無論是軟體還是硬體實現。速度一直是 RSA 的缺陷。一般來說只用於少量數據加密。RSA 的速度是對應同樣安全級別的對稱密碼演算法的1/1000左右。

比起 DES 和其它對稱演算法來說,RSA 要慢得多。實際上一般使用一種對稱演算法來加密信息,然後用 RSA 來加密比較短的公鑰,然後將用 RSA 加密的公鑰和用對稱演算法加密的消息發送給接收方。

這樣一來對隨機數的要求就更高了,尤其對產生對稱密碼的要求非常高,否則的話可以越過 RSA 來直接攻擊對稱密碼。

和其它加密過程一樣,對 RSA 來說分配公鑰的過程是非常重要的。分配公鑰的過程必須能夠抵擋中間人攻擊。假設 A 交給 B 一個公鑰,並使 B 相信這是A 的公鑰,並且 C 可以截下 A 和 B 之間的信息傳遞,那麼 C 可以將自己的公鑰傳給 B,B 以為這是 A 的公鑰。C 可以將所有 B 傳遞給 A 的消息截下來,將這個消息用自己的密鑰解密,讀這個消息,然後將這個消息再用 A 的公鑰加密後傳給 A。理論上 A 和 B 都不會發現 C 在偷聽它們的消息,今天人們一般用數字認證來防止這樣的攻擊。

(1) 針對 RSA 最流行的攻擊一般是基於大數因數分解。1999年,RSA-155 (512 bits) 被成功分解,花了五個月時間(約8000 MIPS 年)和224 CPU hours 在一台有3.2G 中央內存的 Cray C916計算機上完成。

RSA-158 表示如下:

2009年12月12日,編號為 RSA-768 (768 bits, 232 digits) 數也被成功分解。這一事件威脅了現通行的1024-bit 密鑰的安全性,普遍認為用戶應盡快升級到2048-bit 或以上。

RSA-768表示如下:

(2) 秀爾演算法
量子計算里的秀爾演算法能使窮舉的效率大大的提高。由於 RSA 演算法是基於大數分解 (無法抵抗窮舉攻擊),因此在未來量子計算能對 RSA 演算法構成較大的威脅。一個擁有 N 量子位的量子計算機,每次可進行2^N 次運算,理論上講,密鑰為1024位長的 RSA 演算法,用一台512量子比特位的量子計算機在1秒內即可破解。

DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 簽名演算法的變種,被美國 NIST 作為 DSS (DigitalSignature Standard)。 DSA 是基於整數有限域離散對數難題的。

簡單的說,這是一種更高級的驗證方式,用作數字簽名。不單單只有公鑰、私鑰,還有數字簽名。私鑰加密生成數字簽名,公鑰驗證數據及簽名,如果數據和簽名不匹配則認為驗證失敗。數字簽名的作用就是校驗數據在傳輸過程中不被修改,數字簽名,是單向加密的升級。

橢圓加密演算法(ECC)是一種公鑰加密演算法,最初由 Koblitz 和 Miller 兩人於1985年提出,其數學基礎是利用橢圓曲線上的有理點構成 Abel 加法群上橢圓離散對數的計算困難性。公鑰密碼體制根據其所依據的難題一般分為三類:大整數分解問題類、離散對數問題類、橢圓曲線類。有時也把橢圓曲線類歸為離散對數類。

ECC 的主要優勢是在某些情況下它比其他的方法使用更小的密鑰 (比如 RSA),提供相當的或更高等級的安全。ECC 的另一個優勢是可以定義群之間的雙線性映射,基於 Weil 對或是 Tate 對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。

ECC 被廣泛認為是在給定密鑰長度的情況下,最強大的非對稱演算法,因此在對帶寬要求十分緊的連接中會十分有用。

比特幣錢包公鑰的生成使用了橢圓曲線演算法,通過橢圓曲線乘法可以從私鑰計算得到公鑰, 這是不可逆轉的過程。

https://github.com/esxgx/easy-ecc

Java 中 Chipher、Signature、KeyPairGenerator、KeyAgreement、SecretKey 均不支持 ECC 演算法。

https://www.jianshu.com/p/58c1750c6f22

DH,全稱為"Diffie-Hellman",它是一種確保共享 KEY 安全穿越不安全網路的方法,也就是常說的密鑰一致協議。由公開密鑰密碼體制的奠基人 Diffie 和 Hellman 所提出的一種思想。簡單的說就是允許兩名用戶在公開媒體上交換信息以生成"一致"的、可以共享的密鑰。也就是由甲方產出一對密鑰 (公鑰、私鑰),乙方依照甲方公鑰產生乙方密鑰對 (公鑰、私鑰)。

以此為基線,作為數據傳輸保密基礎,同時雙方使用同一種對稱加密演算法構建本地密鑰 (SecretKey) 對數據加密。這樣,在互通了本地密鑰 (SecretKey) 演算法後,甲乙雙方公開自己的公鑰,使用對方的公鑰和剛才產生的私鑰加密數據,同時可以使用對方的公鑰和自己的私鑰對數據解密。不單單是甲乙雙方兩方,可以擴展為多方共享數據通訊,這樣就完成了網路交互數據的安全通訊。

具體例子可以移步到這篇文章: 非對稱密碼之DH密鑰交換演算法

參考:
https://blog.csdn.net/u014294681/article/details/86705999

https://www.cnblogs.com/wangzxblog/p/13667634.html

https://www.cnblogs.com/taoxw/p/15837729.html

https://www.cnblogs.com/fangfan/p/4086662.html

https://www.cnblogs.com/utank/p/7877761.html

https://blog.csdn.net/m0_59133441/article/details/122686815

https://www.cnblogs.com/muliu/p/10875633.html

https://www.cnblogs.com/wf-zhang/p/14923279.html

https://www.jianshu.com/p/7a927db713e4

https://blog.csdn.net/ljx1400052550/article/details/79587133

https://blog.csdn.net/yuanjian0814/article/details/109815473

閱讀全文

與加密信息摘要的密鑰是相關的資料

熱點內容
為什麼要編譯源代碼 瀏覽:819
輸入法freetype交叉編譯 瀏覽:436
電阻單片機代號 瀏覽:469
來畫app怎麼添加對話框 瀏覽:318
python序列化分布式 瀏覽:107
域名伺服器是什麼形式 瀏覽:681
rsa加密解密速度快 瀏覽:924
mac電腦如何單片機開發 瀏覽:547
紀念日app怎麼用小插件 瀏覽:331
如何更改安卓手機所在地區 瀏覽:217
程序員負債120萬 瀏覽:80
階層pdf 瀏覽:380
linuxgit安裝配置 瀏覽:319
用源碼搭建app要改什麼 瀏覽:42
密碼學教程pdf 瀏覽:3
亞馬遜做的加密貨幣 瀏覽:81
怎麼搭建雲播伺服器 瀏覽:867
網站客服機器人源碼 瀏覽:317
2021程序員的出路 瀏覽:547
發行與承銷pdf 瀏覽:945