關於Crypto密碼學

專業名詞解釋

  1. 加密算法通常分爲兩大類:對稱加密算法 與 非對稱加密算法。(分爲四類的話還包括 哈希 與 無線)
  2. 密鑰是一種參數,它是在明文轉換爲密文或將密文轉換爲明文的算法中輸入的參數。密鑰分爲對稱密鑰與非對稱密鑰。
  3. 密鑰是一種參數,它是在明文轉換爲密文或將密文轉換爲明文的算法中輸入的參數。密鑰分爲對稱密鑰與非對稱密鑰。
  4. 異或:即 明文與密文 對照時 ,對位置相同則返回0,不同則返回1
    即1010 與 0101 則返回 1111。
  5. 一次性密碼本
    • 一次性密碼本:本身就是密鑰
    • 密碼本與明文長度一樣
  6. 運動密鑰密碼
    • 密文例子:299L3C7
    表示第二本書第99頁第三行第七列
    • 密鑰:雙方共同擁有的書
    需要提前協商好使用什麼書
  7. 隱藏密碼
    例如 雙方約定取消息中每第三個單詞作爲 祕密信息 即這段話的每 第三個單詞取出 從而拼接出正確的明文
  8. 隱寫術
    可通過修改字體或其他的顏色RGB來存儲隱藏信息,也可隱藏在音頻,視頻,波形或圖片中。

對稱密碼學

  1. 對稱加密也叫私鑰加密,指加解密使用相同祕鑰的加密算法。
  2. 對稱加密算法:發送者(加密)與接收者(解密)需要有相同的密鑰
    • 分爲替換和置換:可抵禦頻率分析
    • 替換爲用新字符代替原字符: 使用相同位數後的字符進行替換
    • 置換爲對原字符串進行重新排列:例如 abcde —>21534—>baecd
  3. 對稱加密算法的兩種分類:分組密碼與流密碼
    • 分組密碼:使用混淆和擴散技術,替換達到混淆目的,置換達到擴散目的,使密文極度隨機。
    • 分組方式使用固定大小,32位,64位,128位等
    • 每次對每個分組塊進行加解密。
    • 流密碼:需要一個密鑰流生成器,差生隨機密鑰位與明文進行異或,發送者與接收者必須有相同的密鑰流生成器。
  4. 初始化向量:初始化向量是一個隨機值,與分組長度一致,保證同樣的明文和密鑰被加密成不同的密文,從而隱藏明文模式。
  5. 會話密鑰:單次會話後密鑰會廢除掉,即僅本次會話中有效。—>增強了安全性

非對稱密碼學

非對稱密碼指的是非對稱密碼體制中使用的密碼。非對稱密碼中出現了一對不同的密鑰對 ,雖然密鑰量增大了 ,但由於私鑰由個人進行保管 ,而公鑰可以向任何人公開 ,這樣就很好的解決了密鑰的分發和管理的問題 ,並且它還能夠實現數字簽名。
典型的公鑰算法:RSA,ECC,Diffie-Hellman,EL Gamal,DSA.
RSA簡介:RSA加密算法是一種非對稱加密算法。在公開密鑰加密和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的

公鑰與私鑰

• 公鑰的概念:公鑰是可以在網絡上傳輸的,也就是說接收發送雙方都可以知道彼此的公鑰,當然,如果你用網絡嗅探等技術,也可以在網絡上嗅探的公鑰的內容,但你僅有公鑰是無法解密文件的。
• 私鑰的概念:私鑰是用戶各自私有的,不會在網絡中傳輸(也就是說不需要接收發送雙方彼此交換此密鑰),這就保證了此密碼的安全性,黑客無法在網絡中嗅探到該密鑰,而是被嚴格的儲存在用戶自己的主機中。
• 公鑰和私鑰的關係:公鑰加密的數據只有私鑰可以解鎖,私鑰加密的數據只有公鑰能解鎖,而兩者都無法自己解鎖自己!這一點是保證數據無法被竊取的關鍵!而公鑰和私鑰的唯一區別也接就是公鑰會互相交換在網絡上傳輸,而私鑰自己保留不在網絡上傳輸。

混合加密

目標:利用對稱算法與非對稱算法的各自有點。
• 對稱算法加密較大的信息時速度快,強度高。
• 非對稱算法加密上面的對稱密鑰時密鑰的分發與管理相對方便與簡單。
例子:Alice要發送大量的信息給Bob

  1. Alice使用key(1) + 對稱加密算法,對真正的銘文(P)進行加密,獲得了密文(C)
  2. Alice發送密文(C)給Bob。
  3. Alice如何安全的發送key(1)給Bob? -> Alice使用Bob的公鑰對key(1)進行加密 -> key(c(1)), 發送給Bob。
  4. Bob使用自己的私鑰,對key(c(1))進行解密,獲取key(1).
  5. Bob使用key(1)對密文(C)進行解密,獲取內容。

單向函數

單向限門函數:
1.屬於單向函數,如果有輔助消息,則逆向計算容易
2.解密是典型的單向限門函數。
3.RSA算法中,“兩個大素數相乘”和“已知的素數”是單向函數
任何公鑰算法本質上都是單向(限門)函數

散列函數

散列函數也是一種單向函數
密碼學中,不通消息有相同散列的現象成爲“衝突”
散列值也稱爲消息摘要或消息指紋。
散列函數應能抵禦“生日攻擊”

Diffie-Hellman 迪菲-赫爾曼(需單獨擴充)

哈希算法(hash)
消息完整性差,例如兩段完全相同的A.txt和B.txt的MD5是完全一樣的,但若在A.txt但某一段後面加上空格(空格是很不容易經肉眼發覺的),則兩個txt文件的MD5則就不同了。

完整性

沒有不可發現的非授權篡改
現代密碼學利用“消息鑑別碼(mac)”保護消息的完整性
MAC的另兩種稱謂:
MIC:消息完整性碼 MDC:篡改檢測碼
MAC實現方式:
hash-MAC(HMAC)
CBC-MAC (CMAC)

數字簽名

數字簽名(又稱公鑰數字簽名)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字信息的方法。
過程:先對txt進行hash,在對hash值使用自己的私鑰進行簽名
數字簽名是非對稱密鑰加密技術與數字摘要技術的應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章