1. 程式人生 > >密碼學複習筆記1【基本概念與傳統密碼技術】

密碼學複習筆記1【基本概念與傳統密碼技術】

0x01、密碼學基本概念

通常一個密碼體制可以有如下幾個部分:

  • 訊息空間M(又稱明文空間):所有可能明文m的集合;
  • 密文空間C:所有可能密文c的集合;
  • 金鑰空間K:所有可能金鑰k的集合,其中每一金鑰k由加密金鑰ke和解密金鑰kd組成,即k=(ke,kd);
  • 加密演算法E:一簇由加密金鑰控制的、從M到C的加密變換;
  • 解密演算法D: 一簇由解密金鑰控制的、從C到M的解密變換。

五元組{ M,C,K,E,D }就稱為一個密碼系統。

數學的角度來講,一個密碼系統就是一組對映,它在金鑰的控制下將明文空間中的某一個元素對映到密文空間上的某個元素。這組對映由密碼方案確定,具體使用哪一個對映由金鑰決定。

柯克霍夫斯(Kerckhoffs)原則

1、即使密碼系統中的演算法為密碼分析者所知,也難以從截獲的密文推匯出明文或金鑰。

2、也就是說,密碼體制的安全性僅應依賴於對金鑰的保密,而不應依賴於對演算法的保密。

3、只有在假設攻擊者對密碼演算法有充分的研究,並且擁有足夠的計算資源的情況下仍然安全的密碼才是安全的密碼系統。

一句話: “一切祕密寓於金鑰之中

密碼體制的分類

對密碼體制的分類方法有多種,常用的分類方法有以下三種。

1、根據密碼演算法所用的金鑰數量

對稱密碼體制(Symmetric cipher,也稱為單鑰密碼體制、對稱金鑰密碼體制或常規密碼體制)。如果一個密碼系統,它的加密金鑰和解密金鑰相同,或者雖然不相同,但由其中的任意—個可以很容易地匯出另外一個,那麼該系統所採用的就是對稱密碼體制。
非對稱密碼體制

(Asymmetric cipher,也稱為公開金鑰密碼體制、非對稱金鑰密碼體制)。如果一個密碼系統,其加密演算法和解密演算法分別用兩個不同的金鑰實現,並且由加密金鑰不能推匯出解密金鑰,則該系統所採用的就是非對稱密碼體制。
採用非對稱金鑰密碼體制的每個使用者都有一對選定的金鑰。其中一個是可以公開的,稱為公開金鑰(Public key),簡稱公鑰;另一個由使用者自己祕密儲存,稱為私有金鑰(Private key),簡稱私鑰。

對稱密碼體制的主要優勢是:
加密、解密運算的處理速度塊,效率高,演算法安全性高。
對稱密碼體制存在的侷限性或不足
(1)對稱密碼演算法的金鑰分發過程複雜,所花代價高;
(2)金鑰管理困難;
(3)保密通訊系統的開放性差;
(4)存在數字簽名的困難性。

非對稱密碼體制的主要優勢是:
(1)金鑰分配簡單。
(2)系統金鑰量少,便於管理。
(3)系統開放性好。
(4)可以實現數字簽名。
非對稱密碼體制存在的侷限性是加密、解密運算效率較低,處理速度較慢,同等安全強度下,非對稱密碼體制的金鑰位數較多。

2、根據對明文資訊的處理方式

根據密碼演算法對明文資訊的處理方式,可將對稱密碼體制分為:
分組密碼(Block cipher)
序列密碼(Stream cipher,也稱為流密碼)。

分組密碼是將訊息進行分組,一次處理一個數據塊(分組)元素的輸入,對每個輸入塊產生一個輸出塊。在用分組密碼加密時,一個明文分組被當做一個整體來產生一個等長的密文分組輸出。分組密碼通常使用的分組大小是64位元或128位元。
序列密碼則是連續地處理輸入元素,並隨著處理過程的進行,一次產生一個元素的輸出,在用序列密碼加密時,一次加密一個位元或一個位元組。

3、根據是否能進行可逆的加密變換

根據密碼演算法是否能進行可逆的加密變換,可以將密碼體制分為:
單向函式密碼體制
雙向變換密碼體制

單向函式密碼體制是一類特殊的密碼體制,其性質是可以很容易地把明文轉換成密文,但再把密文轉換成正確的明文卻是不可行的,有時甚至是不可能的。
單向函式只適用於某種特殊的、不需要解密的應用場合,如使用者口令的儲存和資訊的完整性保護與鑑別等。
雙向變換密碼體制是指能夠進行可逆的加密、解密變換,絕大多數加密演算法都屬於這一類,它要求所使用的密碼演算法能夠進行可逆的雙向加解密變換,否則接收者就無法把密文還原成明文。

傳統密碼

替代密碼 (代換密碼)(Substitution)

  • 替代是古典密碼中用到的最基本的處理技巧之一 ;
  • 代換:將明文字母替換為其他字母,數字或符號。如果把明文看成是二進位制的序列的話,那麼代換就是用密文位串來替代明文位串。

1、單表替代密碼

加密變換過程就是將明文中的每一個字母替換為密文字母表的一個字母。

明文空間M 和密文空間C 都是26個英文字母的集合,金鑰空間
K={π:Z26→Z26|π是置換},是所有可能置換的集合。
對任意π∈K,定義:
加密變換:eπ(m)=π(m)=c
解密變換:dπ(c) = π-1(c)=m, π-1是π的逆置換。
例題:
這裡寫圖片描述

一般單表替代密碼演算法特點:

  • 金鑰空間K很大,|K|=26!=4×1026 ,破譯者窮舉搜尋計算不可行,1微秒試一個金鑰,遍歷全部金鑰需要1013 年。
  • 移位密碼體制是替換密碼體制的一個特例,它僅含26個置換做為金鑰空間。
    金鑰π不便記憶。

針對一般替換密碼金鑰π不便記憶的問題,又衍生出了各種形式單表替代密碼。

1.1、移位密碼

簡單的來說,其實就是將字母表編號成1-26,然後如果移位1,則1號位改為z,2號位改為a,其他等同移動
當移位密碼的 金鑰k=3時,就是歷史上著名的凱撒密碼(Caesar)。根據其加密函式特 點,移位密碼也稱為加法密碼。

1.1、仿射密碼

加密函式的形式為:
K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
例題如下:
設明文訊息為china,金鑰k=(k1,k1)=(9,2)試用仿射密碼對其進行加密,然後再進行解密。
這裡寫圖片描述
這裡寫圖片描述

1.3、金鑰短語密碼

選用一個英文短語或單詞串作為金鑰,去掉其中重複的字母得到一個無重複字母的字串,然後再將字母表中的其它字母依次寫於此字母串後,就可構造出一個字母替代表。
下圖演示密碼為keyeyk時的情況:
這裡寫圖片描述

2、多表替代密碼

從對密碼的角度來分析,多表代替密碼的產生原因如下:

  • 單表替代密碼錶現出明文中單字母出現的頻率分佈與密文中相同
  • 多表替代密碼使用從明文字母到密文字母的多個對映來隱藏單字母出現的頻率分佈,每個對映是簡單替代密碼中的一對一對映,多表替代密碼將明文字母劃分為長度相同的訊息單元,稱為明文分組,對明文成組地進行替代,同一個字母有不同的密文,改變了單表替代密碼中密文的唯一性。
2.1、維吉尼亞密碼

維吉尼亞密碼與位移密碼體制相似,但維吉尼亞密碼的金鑰是動態週期變化的。
例題如下:
這裡寫圖片描述

2.2、置換密碼
  • 置換密碼又稱為換位密碼;
  • 置換密碼通過改變明文訊息各元素的相對位置,但明文訊息元素本身的取值或內容形式不變;
  • 在前面的替代密碼中,則可以認為是保持明文的符號順序,但是將它們用其它符號來替代;
  • 置換密碼是把明文中各字元的位置次序重新排列來得到密文的一種密碼體制。

典型舉例如下:

柵欄密碼
所謂柵欄密碼,就是把要加密的明文分成N個一組,然後把每組的第1個字連起來,形成一段無規律的話。不過柵欄密碼本身有一個潛規則,就是組成柵欄的字母一般不會太多。
這裡寫圖片描述
至於會是幾欄密碼,就得靠自己嘗試了
列置換密碼
把訊息一行一行的寫出,然後按列讀取,但把列的次序打亂,列的次序就是金鑰,例子如下:
這裡寫圖片描述

3、輪轉機密碼

複習時發現PPT和書上都沒怎麼詳細說明,簡要查了相關資料,這是一種很老的加密技術了,連結在這裡,點此。有興趣的自行了解~