密碼學是研究編制密碼和破譯密碼的技術科學。研究密碼變化的客觀規律,應用于編制密碼以保守通信秘密的,稱為編碼學;應用于破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。
密碼學常用術語
明文: 待加密數據。
密文: 明文經過加密后數據。
加密: 將明文轉換為密文的過程。
加密算法: 將明文轉換為密文的轉換算法。
加密密鑰: 通過加密算法進行加密操作的密鑰。
解密: 將密文轉換為銘文的過程。
解密算法: 將密文轉換為明文的轉換算法。
解密密鑰: 通過解密短發進行解密操作的密鑰。
密碼學分類
1.按時間分
a.古典密碼:以字符為基本加密單元。
b.現代密碼:以信息塊為基本加密單元。
2按保密內容的算法劃分
a.受限制算法:算法的保密性基于保持算法的秘密。
b.基于密鑰算法:算法的保密性基于對密鑰的保密。
3.按密鑰體制劃分
a.對稱密碼體制:也叫單鑰或私鑰密碼體制,加密過程與解密過程使用同一套密鑰。對應的算法就是對稱加密算法,例如DES,AES。
b.非對稱密碼體制:也叫雙鑰或公鑰密碼體制,加密過程與解密過程使用不同的密鑰。對應的算法就是非對稱加密算法,例如RSA。
4.按明文處理方式劃分
a.流密碼:也稱為序列密碼,加密時每次加密一位或者一個字節的明文。例如RC4算法。
b.分組密碼:加密時將明文分成固定長度的組,用同一個密鑰和算法對每一組進行加密輸出也是固定長度的明文。當最后一組大小不滿足指定的分組大小時,
有兩種處理模式:
無填充模式,直接對剩余數據進行加密,此組加密后大小與剩余數據有關;
有填充模式,對于不滿足指定長度分組的進行數據填充;如果恰巧最后一組數據與指定分組大小相同,那么直接添加一個指定
大小的分組;填充的最后一個字節記錄了填充的字節數。
分組密碼工作模式簡介
1.電子密碼本模--ECB
將明文的各個分組獨立的使用相同的密鑰進行加密,這種方式加密時各分組的加密獨立進行互不干涉,因而可并行進行。同樣因為各分組獨立加密的緣故,相同的明文分組加密之后具有相同的密文。該模式容易暴露明文分組的統計規律和結構特征。不能防范替換攻擊。
其實照實現來看,ECB的過程只是把明文進行分組,然后分別加密,最后串在一起的過程。當消息長度超過一個分組時,不建議使用該模式。在每個分組中增加隨機位(如128位分組中96位為有效明文,32位的隨機數)則可稍微提高其安全性,但這樣無疑造成了加密過程中數據的擴張。
優點:
1.簡單;
2.有利于并行計算;
3.誤差不會被傳送;
缺點:
1.不能隱藏明文的模式;
2.可能對明文進行主動攻擊;
2.密碼分組鏈接模--CBC
需要一個初始化向量IV,第一組明文與初始化向量進行異或運算后再加密,以后的每組明文都與前一組的密文進行異或運算后再加密。IV 不需要保密,它可以明文形式與密文一起傳送。
優點:
1.不容易主動攻擊,安全性好于ECB,適合傳輸長度長的報文,是SSL、IPSec的標準。
缺點:
1.不利于并行計算;
2.誤差傳遞;
3.需要初始化向量IV
3.密文反饋模式--CFB
需要一個初始化向量IV ,加密后與第一個分組明文進行異或運算產生第一組密文,然后對第一組密文加密后再與第二組明文進行異或運算纏身第二組密文,一次類推,直到加密完畢。
優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小于分組的數據;
缺點:
1.不利于并行計算;
2.誤差傳送:一個明文單元損壞影響多個單元;
3.唯一的IV;
4. 輸出反饋模式--OFB
需要一個初始化向量IV ,加密后得到第一次加密數據,此加密數據與第一個分組明文進行異或運算產生第一組密文,然后對第一次加密數據進行第二次加密,得到第二次加密數據,第二次加密數據再與第二組明文進行異或運算產生第二組密文,一次類推,直到加密完畢。
優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小于分組的數據;
缺點:
1.不利于并行計算;
2.對明文的主動攻擊是可能的;
3.誤差傳送:一個明文單元損壞影響多個單元;
5.計數器模式--CTR
使用計數器,計數器初始值加密后與第一組明文進行異或運算產生第一組密文,
計數器增加,然后,加密后與下一組明文進行異或運算產生下一組密文,以此類推,直到加密完畢
優點:
1.可并行計算;
2.安全性至少與CBC 模式一樣好;
3.加密與解僅涉及密碼算法的加密;
缺點:
1.沒有錯誤傳播,不易確保數據完整性;
分組密碼填充方式簡介
PKCS5 :填充字符串由一個值為5的字節序列組成,每個字節填充該字節序列的長度。明確定義Block的大小是8位
PKCS7 :填充字符串由一個值為7的字節序列組成,每個字節填充該字節序列的長度。對于塊的大小是不確定的,可以在1-255之間
ISO10126:填充字符串由一個字節序列組成,此字節序列的最后一個字節填充字節序列的長度,其余字節填充隨機數據。
希望本篇文章對您有所幫助
原文鏈接:http://aubdiy.blog.51cto.com/2978849/815434