密碼技術之基本介紹

2022-09-07 08:12:10 字數 2635 閱讀 7019

想象一下 alice 和 bob 傳送郵件的場景,傳送的郵件稱作訊息,傳送訊息的 alice 稱為傳送者,接收訊息的 bob 稱為接收者,當經過網路時,訊息有可能會被第三方竊聽,竊聽訊息的稱為竊聽者

為了不被竊聽者知道內容,alice(傳送者)可以將訊息加密傳送出去,加密前的訊息稱為明文,加密後的訊息稱為密文。alice 與 bob 之間傳送流程如下:

上述流程中,加密步驟使用加密演算法,解密步驟使用解密演算法。加密、解密素演算法合在一起統稱為密碼演算法

密碼演算法需要金鑰(key),無論是加密還是解密時,都需要知道金鑰。根據金鑰的使用辦法,可以將金鑰分為對稱金鑰非對稱金鑰

非對稱密碼中的加密金鑰與解密金鑰有非常嚴謹的數學關係,上圖中使用的金鑰僅用於理解使用。

將對稱加密和非對稱加密結合起來的密碼方式成為混合密碼系統,網際網路中使用的 https 使用的就是混合密碼系統。

訊息通過加密之後,傳送給接收者,那麼如何驗證該訊息是否被第三方篡改

單向雜湊函式(雜湊函式)用來檢測訊息完整性,檢測資料是否被篡改的密碼技術。

傳送者使用單向雜湊函式計算出雜湊值;

傳送者將訊息和雜湊值一起傳送給接收者;

接收者根據相同的單向雜湊函式計算出雜湊值

接收者雜湊值與傳送者的雜湊值進行比較,如果兩個雜湊值相同,那麼訊息未被篡改。

單向雜湊函式能確認資料的完整性,檢測資料是否被篡改。但是如何驗證訊息是否是來自傳送者,換句話說,是否有人偽裝傳送者傳送了該訊息。

訊息認證碼是一種保證完整性並提供訊息認證的密碼技術。訊息認證碼的流程與單項雜湊函式很相似,可以簡單理解為:訊息認證碼是一種與金鑰相關聯的單向雜湊函式

傳送者和接收者事先共享金鑰

傳送者使用共享金鑰計算出mac 值

傳送者將訊息和mac 值一起傳送給接收者;

接收者根據共享金鑰計算出mac 值

接收者將計算出的 mac 值接受到的 mac比較;如果兩個 mac 相同,訊息就來自於傳送者。

mac 這裡指的是訊息認證碼(message authentication code)技術

mac 值指的是使用訊息和共享金鑰計算出來的值

訊息認證碼通過事先的共享金鑰能夠保證資料的完整性並提供訊息認證功能。但共享金鑰只能由兩個人持有,對於其中一方來說,如果否認,也就無奈何了。

數字簽名是一種確保完整性、提供訊息認證防止否認的密碼技術。數字簽名是通過非對稱金鑰(加密金鑰與解密金鑰不是同乙個)「反過來用」來實現的:用私鑰生成簽名,用公鑰驗證簽名。

在非對稱金鑰系統中,私鑰由接收者持有,公鑰公開,任何人使用公鑰進行加密,訊息接收者可以用私鑰進行解密;

在數字簽名系統中,私鑰由傳送者持有,公鑰公開,任何人都可以使用公開的公鑰對密文進行解密。誰持有私鑰,即可表明該訊息由誰傳送的。

數字簽名可以對訊息進行簽名,但是實際上一般不會直接使用,一般使用對訊息的雜湊值進行簽名方式

偽隨機數生成器是一種能夠模擬產生隨機數列的演算法,隨機數與密碼技術相關。對稱加密、非對稱密碼中使用隨機數來產生金鑰,如果生成隨機數的演算法不好,竊聽者就能夠推測出金鑰,從而帶來對通訊機密性下降的風險。

1.《**密碼技術》

2. 其他

Cassandra技術介紹之配置

所有的配置都在cassandra的安裝目錄下面的conf裡,conf目錄下面有cassandra.yaml這個檔案,所有的配置都可以通過修改這個檔案而達到目的 比較關鍵的幾個配置有 cluster name,partitioner,snitch,以及seed nodes的配置。如上圖,我們知道乙個c...

Cassandra技術介紹之配置

所有的配置都在cassandra的安裝目錄下面的conf裡,conf目錄下面有cassandra.yaml這個檔案,所有的配置都可以通過修改這個檔案而達到目的 比較關鍵的幾個配置有 cluster name,partitioner,snitch,以及seed nodes的配置。如上圖,我們知道乙個c...

Linux學習之基本介紹

技術不分年齡高低,只分水平高低。搞技術25k以下是不看天賦的,25k以上是要看天賦的。1u伺服器,2u伺服器,刀片伺服器。程式都是執行在伺服器上的。榜樣的力量是無窮的。mk。組合語言跟硬體息息相關,組合語言開發的程式,如果硬體變了,有可能就不能執行了。1969年,unix誕生,第一版用的是組合語言寫...