密碼學學習整理三

2022-08-14 05:06:09 字數 1802 閱讀 8141

一. hash函式與訊息認證碼

hash函式

定義是乙個將任意長度的訊息對映成固定長度輸出的函式

hash函式是乙個具有壓縮功能的函式

安全性對hash函式的攻擊實際就是 尋找一對碰撞 的過程

如果hash函式 h 設計得「好」,對給定x,要想求得相應的雜湊值,必須通過計算h(x)才行。如果想繞過 h,而採用其他方法計算出雜湊值是非常困難的。即使在已知若干雜湊值h(x1),h(x2),…的情況下,仍是困難的,因此有h(x1)+h(x2)≠h(x1+x2) ,h(x1)h(x2)≠h(x1x2)

生日攻擊告訴我們:為了能達到n-bit的安全性,你所選擇的hash函式的雜湊值長度應該是2n。如果你想讓攻擊者成功破譯的可能性低於1/280,那麼應該使用雜湊值長度是160-bit的hash函式

著名的hash函式md5,sha-0,sha-1,sha-2,sha-3

md5輸入:將資訊分為512bit一組處理

輸出:雜湊值長度為128bit

速度快,不依賴任何密碼模組和假設條件,特別適合32位計算機軟體實現

sha系列

輸入:sha-1將訊息分為512bit一組,整個訊息長度小於2^64

輸出:sha-1雜湊值長度為160bit

速度比md5慢

訊息認證碼

訊息在傳輸過程中是否發生改變或被惡意篡改,我們怎麼能知道?

hash函式能否保證資料的完整性 ?

可以看得出,如果設計乙個帶有金鑰的演算法,便可以解決這一問題,也就可以防範攻擊者進行偽造 。訊息認證碼(mac)演算法便是這種帶金鑰的演算法,它是實現資料完整性的重要工具 ,其產生的輸出也相應地被稱作mac 。

安全性要求-抗偽造

在不知道金鑰的情況下,給定任何訊息,產生相應的mac是計算上不可行的

即使已知很多訊息及對應的mac,對新訊息產生mac仍是計算上不可行的

mac構造-基於cbc模式構造

該方法對於定長訊息是安全的

如果訊息長度可變,即使金鑰k沒洩露,同樣不安全

cbc-mac只有用於定長訊息才能抗偽造

iso標準的cbc-mac

訊息認證

訊息認證,又稱資料來源認證,它的重要目標

保證傳輸訊息的完整性(檢查訊息是否被改動過)

保證訊息是由指定傳送者發來的

主要技術

基於 hash函式和加密 的認證

基於 mac 的認證

基於mac的認證 (續)

如果bob計算得到的mac與接收到的mac一致,則說明:

alice傳送的訊息未被篡改

* 因為攻擊者不知道金鑰,無法在篡改訊息後產生相應的mac
alice不是冒充的

* 因為除收發雙方外,沒人知道金鑰,攻擊者無法冒充alice傳送合法的mac
提供機密性的訊息認證(方案一)明文m先被加密,再與mac一起傳送

提供機密性的訊息認證(方案二)明文m與mac被一起加密

通常,我們希望直接對明文進行認證,因此 方案2 的使用方式更為常用

CTF密碼學學習

例如 置換密碼 abcd bcda 替換密碼 abcd 1234 分組加密 abc def hij 123 456 789 流密碼 凱撒密碼 加密方式 將26個英文本母進行移位 解密方式 爆破 y x a mod 26 例如 明文本母 abcdefghijklmnopqrstuvwxyz 密文字母 ...

密碼學學習一 古典密碼學

使用固定資訊,將原文替換成密文 單錶替換的原文和密文是同一張表 如原文密文關係如下 a b b c c d d e e f 則bee的密文就是cff 多表替換的原文和密文存在多張表中 表1 a b b c c d d e e f 表2 a c b d c e d f e g 原文 bee 金鑰 12...

密碼學學習筆記(2)

是不是分組密碼?des的分組長度?des的金鑰長度 3des triple des 演算法描述 是不是分組密碼?3des分組長度?3des金鑰長度?3des加密過程?3des解密過程?aes advanced encryption standard 是不是分組密碼?aes分組長度?aes金鑰長度?位...