1. 程式人生 > >淺談密碼學(一)基礎知識

淺談密碼學(一)基礎知識

   說到密碼想必大家都不陌生,其實世界上有兩種密碼,通俗的說:一種是防止小孩偷看你的檔案;另一種是防止當局閱讀你的檔案。

那麼現在我們來說說專業術語
- 傳送者和接收者
傳送者接收者就不必多說了,一方傳送訊息,另一方接收訊息,以至於第三方(竊聽者)不能閱讀(攔截)訊息。
- 訊息和加密
訊息即明文,通過某種方法或技術去偽裝明文的過程稱為加密,被加密的訊息稱為密文,把密文轉變明文的過程稱為解密(如圖1-1)
這是明文到密文再到明文的過程
密碼學是數學的一個分支,包括密碼編碼學密碼分析學兩部分,那種去偽裝明文的技術或科學就是密碼編碼學(也就是加密),破譯密文的技術和科學就是密碼分析學(也就是解密)。
- 祕鑰


加解密運算中都依賴於祕鑰。由此可以組成密碼系統(如圖)
密碼系統
- 演算法
基於祕鑰的演算法通常有兩類:對稱演算法公開祕鑰演算法。對稱演算法就是加密祕鑰能從解密祕鑰中推算出來,解密祕鑰能從加密祕鑰中推算出來(兩種祕鑰能夠互推出來)。對稱演算法分兩種:一種是一次只對明文中的單個位運算的演算法稱為序列演算法(序列密碼);另一種是對明文的一組位進行運算的演算法稱為分組演算法(分組密碼),其中的位組稱為分組公開祕鑰演算法(非對稱演算法):用作加密的祕鑰不同於用作解密的祕鑰(兩種祕鑰不一樣,而且不能互推),加密祕鑰能夠公開,但只有用相應的解密祕鑰才能解密資訊,加密祕鑰叫做公開金鑰(公鑰),解密金鑰叫做私人祕鑰
(私鑰)。
- 密碼分析學
對密碼硬性分析的嘗試稱為攻擊,常用的密碼分析攻擊有四類(簡單理解就是常用的破解情況有四種):1.唯密文攻擊:密碼分析者有一些訊息的密文,這些訊息都用相同的加密演算法加密。(分析者要儘可能多的恢復明文,最好能推算出加密的祕鑰)2.已知明文攻擊:密碼分析者不僅可得到一些訊息的密文,也知道這些訊息的明文。(分析者任務就是用這些加密資訊推出加密的祕鑰或者是演算法,可以對相同祕鑰加密的訊息進行解密)3.選擇明文攻擊:密碼分析者不僅得到一些訊息的密文和相應的明文,而且他們也可選擇加密的明文。(比已知明文攻擊更有效,因為分析者能選擇特定的明文塊進行加密,從而可以產生更多關於祕鑰的資訊)4.自適應選擇明文攻擊
(選擇明文攻擊的特殊情況):密碼分析者不僅能選擇被加密的明文,而且也基於以前加密的結果修正這個選擇。(分析者可以基於第一塊的結果選擇另一明文塊)。