視頻:地址
本章主要內容:分組密碼定義、分組密碼的發展歷史、保密系統的安全性分析及分組密碼的攻擊方式、DES、AES、SM4、分組密碼的運行模式
規定:在以下算法中,信息都轉化為二進制流的數據流處理,即message=(0,1)
分組密碼定義
分組密碼算法是現代密碼學中的重要體制之一,其主要任務是提供數據保密性
分組密碼加解密速度快(相比於公鑰密碼)
分組密碼應用廣泛,可用於構造偽隨機數生成器、流密碼、認證密碼和哈希函數等
分組密碼的發展歷史
二十世紀之前的密碼算法:算法、密鑰保密
二十世紀之后的密碼算法:密碼算法公開,密鑰保密
密碼算法為什么要公開?
1、民用
2、無陷門
3、安全強度高
4、標准化通信
DES(數據加密標准),由IBM給出
AES(高級數據加密標准),分組長度128,支持可變密鑰長度為128、192、256比特
保密系統的安全性及分組密碼的攻擊方式
分組密碼設計准則
1、迭代結構
選擇較為簡單的密碼變換,在密鑰控制下以迭代方式多次利用它進行加密變換,就可以實現預期的擴散和混亂的結果
2、混淆
在加密變換過程中是明文、密鑰以及密文之間的關系盡可能的復雜化,以防止密碼破譯者采用統計分析法進行破譯。
3、擴散
明文和密鑰中任意比特值改變,都會在某種程度上影響到密文值的變化,以防止將密鑰分解成若干個孤立的小部分,然后各個擊破。
分析方式
1、唯密文攻擊
密碼分析者有一個或更多的用同一個密鑰加密的密文,通過對這些截獲的密文進行分析得出明文或密鑰。
難度最大,幾乎是不可能的!
2、已知明文攻擊
分析者除知道一些帶解密的密文外,還有一些明文和用同一個密鑰加密這些明文所對應的密文(之前在加密機房待過,知道一些明文和密文的對應信息,現在出來了,給出一些密文,去分析得出明文或密鑰)。
屬於被動攻擊!
3、選擇明文攻擊
密碼分析者可得到所需要的任何明文所對應的密文,這些密文與待解密的密文是用同一個密鑰加密得來的(之前在加密機房待過,現在還在加密機房,給出一些密文,去分析得出明文或密鑰)。
4、選擇密文攻擊
密碼分析者可得到所需要的任何密文所對應的明文,解密這些密文所使用的密鑰與解密待解密的密文的密鑰一樣(之前在解密機房待過,現在出來了,給出一些密文,去分析得出明文或密鑰)。
最簡單的
5、自適應選擇明文攻擊
密碼分析者可得到所需的任何明文所對應的密文,這些密文與待解密的密文是用同一個密鑰加密得來的,明文可以在看到加密機的返回結果后隨時選取。
6、自適應選擇密文攻擊
密碼分析者可得到所需的任何密文所對應的明文,這些密文與待解密的密文是用同一個密鑰加密得來的,密文可以在看到解密機的返回結果后隨時選取。
屬於主動攻擊!
攻擊方式
1、窮舉法
2、差分分析
3、線性分析
4、相關性分析
5、側信道分析
等
DES
概述
1、明文和密文分組長度為64bit
2、算法包含:迭代加解密和秘鑰編排
3、Feistel結構:加密和解密除密鑰編排不同外,完全相同
4、密鑰長度:56bit(DES的密鑰空間:2^56),每7bit后為一個奇偶校驗位(第8位),共64bit
5、輪函數采用混亂和擴散的組合,共16輪
整體結構
IP置換
16輪迭代
Feistel結構,按照如下規則進行16次迭代
f是輪函數,k是子密鑰
IP逆置換
輪函數
E擴展
AES
概述
1、明文長度:128/256bit,密文長度:128/192/256bit
2、SPN結構:輪函數包括代換層-置換層-密鑰混合層
3、密鑰長度:128bit,10輪
更多:
1、AES數學基礎
2、AES 邏輯
SM4
無線局域網密碼算法,明文和密文分組長度為128bit,廣義Feistel結構,基本操作單元為32bit
更多:
1、SM4原理介紹
2、SM4代碼實現
加密模式
參考:https://blog.csdn.net/huangjinjin520/article/details/122725745
電碼本模式 (Electronic Code Book,ECB)
這種模式是最早采用和最簡單的模式,它將加密的數據分成若干組,每組的大小跟加密密鑰長度相同,然后每組都用相同的密鑰進行加密。
優點:
1.簡單;
2.有利於並行計算;
3.誤差不會被傳送;
缺點:
1.不能隱藏明文的模式;
2.可能對明文進行主動攻擊;
電碼本模式用一個密鑰加密消息的所有塊,如果原消息中重復明文塊,則加密消息中的相應密文塊也會重復【重放攻擊】,因此,電碼本薄模式適於加密小消息。
密碼反饋模式(Cipher Feedback Mode,CFB)
面向字符的應用程序的加密要使用流加密法,可以使用密碼反饋模式。在此模式下,數據用更小的單元加密,如可以是8位,這個長度小於定義的塊長(通常是64位)。其加密步驟是:
a)使用64位的初始化向量,初始化向量放在移位寄存器中,在第一步加密,產生相應的64位初始化密文;
b)始化向量最左邊的8位與明文前8位進行異或運算,產生密文第一部分(假設為c),然后將c傳輸到接收方;
c)向量的位(即初始化向量所在的移位寄存器內容)左移8位,使移位寄存器最右邊的8位為不可預測的數據,在其中填入c的內容;
d)第1-3步,直到加密所有的明文單元。
解密過程相反
優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小於分組的數據;
缺點:
1.不利於並行計算;
2.誤差傳送:一個明文單元損壞影響多個單元;
3.唯一的IV;
密碼分組鏈接模式(Cipher Block Chaining,CBC)
CBC模式的加密首先也是將明文分成固定長度的塊,然后將前面一個加密塊輸出的密文與下一個要加密的明文塊進行異或操作,將計算結果再用密鑰進行加密得到密文。第一明文塊加密的時候,因為前面沒有加密的密文,所以需要一個初始化向量。跟ECB方式不一樣,通過連接關系,使得密文跟明文不再是一一對應的關系,破解起來更困難,而且克服了只要簡單調換密文塊可能達到目的的攻擊。
優點:
1.不容易主動攻擊,安全性好於ECB,適合傳輸長度長的報文,是SSL、IPSec的標准。
缺點:
1.不利於並行計算;
2.誤差傳遞;
3.需要初始化向量IV
輸出反饋模式(Output Feedback Mode,OFB)
輸出反饋模式與CFB相似,惟一差別是,CFB中密文填入加密過程下一階段,而在OFB中,初始化向量加密過程的輸入填入加密過程下一階段。
優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小於分組的數據;
缺點:
1.不利於並行計算;
2.對明文的主動攻擊是可能的;
3.誤差傳送:一個明文單元損壞影響多個單元;