大多數密碼演算法都是塊密碼演算法,需要將明文訊息切成固定大小的塊,一塊一塊地進行加密。例如des就需要將訊息切割成乙個個64位的塊。如果訊息長度不是64的整數倍,最後乙個訊息塊就不夠64位,這時就要對最後乙個訊息塊進行填充。填充本身是很簡單的事情,問題在於有很多種可行的填充方式,如果加密時以某種方式填充,解密時就得理解這種填充方式並去除填充內容,否則很可能解密出來得到的資料就是髒資料。
某些加密標準指定了特定的填充方案。下面簡單描述一下這些模式的工作原理。
假定塊長度為8位元組,要加密的明文資料長度為9位元組。那麼訊息被切成兩個塊,第二塊只有1個位元組,需要填充7個位元組。假定9位元組的明文資料如下:
f1 f2 f3 f4 f5 f6 f7 f8 f9
以下是常見的四種填充方式:
1) zeros
填充:全部填充為0的位元組,結果如下:
f1 f2 f3 f4 f5 f6 f7 f8
//第一塊
f900 00 00 00 00 00 00
//第二塊
2) x923
填充: 填充為0的位元組序列,最後乙個位元組記錄填充的總位元組數,結果如下:
f1 f2 f3 f4 f5 f6 f7 f8
//第一塊
f900 00 00 00 00 00 07
//第二塊
2) pkcs7
填充: 每個填充的位元組都記錄了填充的總位元組數,結果如下:
f1 f2 f3 f4 f5 f6 f7 f8
//第一塊
f907 07 07 07 07 07 07
//第二塊
3) iso10126
填充: 填充隨機位元組序列,最後乙個位元組記錄填充的總位元組數,結果如下:
f1 f2 f3 f4 f5 f6 f7 f8
//第一塊
f97d 2a 75 ef f8 ef 07
//第二塊
密碼學 密碼學中幾種攻擊模式
本科畢業設計做完之後,一直覺得自己需要系統來學習一下密碼學,密碼學是乙個古老的學科,前人已經研究了太多太多,而伴隨著量子計算的逐漸發展,之前制定出來的密碼演算法都面臨著被淘汰的危險。今天記錄一下根據密碼分析者知道資訊的多少,密碼學中分為常見的幾種攻擊模式,以及它們主要用於什麼場合。在介紹攻擊模式之前...
密碼學系列 加密模式和填充模式
介紹加密模式和填充模式。介紹兩種加密的模式 ecbecb electronic codebook,電子密碼本.需要加密的訊息按照塊密碼的塊大小被分為數個塊,並對每個塊進行獨立加密 優點 可以並行處理資料 缺點 同樣的原文生成同樣的密文,不能很好的保護資料 同時加密,原文是一樣的,加密出來的密文也是一...
密碼學04 分組密碼模式
分組後逐個加密 加密 ci ek mi 解密 mi dk 1 ci 特點 缺點 要求資料的長度是密碼分組長度的整數倍容易暴露明文的資料模式重複的明文產生相同的密碼分組 以des為例,明文的長度必須是64位的整數倍,不足部分要特殊處理。特點 1.解決了ecb的安全缺陷可以讓重複的明文產生不同的密碼分組...