【密碼學筆記】代替技術

代替技術

代替技術是將明文字母替換成其他字母、數字或符號的方法。

Caesar密碼(由Julius Caesar發明)

  • 定義:將字母表中的每個字母,有它之後的第 3 個字母來代替。

    例如:

    明文: meet me after the toga party

    密文: PHHW PH DIWHU WKH WRJD SDUWB

    我們通產用一個數字來代替每一個字母,因此,得到下表:

a b c d e f g h
0 1 2 3 4 5 6 7
i j k l m n o p
8 9 10 11 12 13 14 15
q r s t u v w x
16 17 18 19 20 21 22 23
y z
24 25

則加密算法可以如下表達。對每個明文字母p,代替成密文字母C:

C = E(3,p)= (p + 3)mod 26

移位可以是任意整數k,這樣就得到了一般的Caesar算法:

C = E(k,p)= (p + k)mod 26

k ∈ [1,25]

  • 解決手段:窮舉攻擊

    可以採用窮舉攻擊的手段,主要是因爲:

    1. 已知加密和解密的算法
    2. 需測試的密鑰只有25個
    3. 明文所用的語言已知,且其意義易於識別

單表代替密碼

  • 定義:每條信息用一個字母表(給出從明文字母到密文字母的映射)加密。

    這種方法大大增大了密鑰空間的數量級,如果密文行是26個字母的任意置換,那麼就有26!或大於4×10^26^ 種可能的密鑰。

    置換是有限元素的集合S的所有元素的有序排列,且每個元素只出現一次。

    例如:如果S = {a,b,c},則S有6個置換:abc,acb,bac,bca,cab,cba

  • 這種方法看似可以抵擋窮舉攻擊,但啓示如果把字母使用的相對評論統計出來,與英文字母的使用評論分佈進行比較,就很可能分析出明文了。

    所以其解決手段:字母頻率分析(基於明文與密文字母頻率相同)

  • 改進方法:在明文信息中採用不同的單表代替,既多表代替密碼,下面也會介紹。

    所有這些方法都有以下的共同特徵:

    1. 採用相關的單表代替規則集。
    2. 密鑰決定給定變換的具體規矩。

Playfair密碼

  • 定義:把明文中的雙字母迎接作爲一個單元並將其轉換成密文的“雙字母音節”。

    該算法基於一個由密鑰詞構成的5×5字母矩陣。

  • 加密規則:

    假設密鑰詞爲monarchy。填充矩陣的方法是:首先將密鑰詞(去掉重複字母)從左至右、從上至下填在矩陣格子裏,再將剩餘的字母按字母表的順序從左到右、從上至下填在矩陣剩下的格子李。字母I和J暫且當成一個字母。對明文按如下規則一次加密兩個字母:

    1. 如果該字母對的兩個字母是相同的,那麼在它們之間加一個填充字母,比如x。例如:balloon先把它變成ba lx lo on這樣4個字母對。
    2. 落在矩陣同一行的明文字母對中的字母由其右邊的字母代替,每行中最右邊的一個字母就用該列中最左邊的第一個字母來代替,比如ar變成RM。
    3. 落在矩陣同一列的明文字母對中的字母由其下面的字母代替,每行中最下面的一個字母就用該列中最上面的第一個字母來代替,例如mu變成CM。
    4. 其他的每組明文字母對文中的字母則:該字母所在行爲密文所在行,另一字母所在列爲密文所在列。比如hs變成BP,ea變成IM。
M O N A R
C H Y B D
E F G I/J K
L P Q S T
U V W X Z

- 解決手段:字母頻率分析

多表代替加密

  • 定義:多表代替密碼中最著名和最簡單的是Vignerere密碼。它的代替規則集由26個Caesar密碼的代替表組成,其中每一個代替表是對明文字母表移位0-25次後得到的代替單表。

  • 假設明文序列爲P = p~0~,p~1~,p~2~,…,p~n-1~,密鑰由序列K = k~0~,k~1~,k~2~,…,k~m-1~ 構成,其中典型的m

Vernam密碼

  • 定義: 1918年AT&T公司的工程師Gilbert Vernam首先引入了這種體制,其運算基於二進制數據而非字母,可以簡單表示爲:C~i~ = p~i~ ⊕ k~i~

其中:

p~i~ 是明文第i個二進制位

k~i~ 是密鑰第i個二進制位

c~i~ 是密文第i個二進制位

⊕是異或運算符

解密過程爲:p~i~ = c~i~ ⊕ k~i~

這種技術的本質在於構造密鑰的方式。Vernam提出使用連續的磁帶,其最終也將循環。所以事實上該體制是使用週期很大的循環密鑰。儘管週期很長對於密碼分析增添了相當大的難度,但是如果有足夠的密文,使用已知或可能的明文序列,或者聯合使用兩者,該方案是可以被破解的。

這裏寫圖片描述

一次一密(Vernam密碼的改進方案)

  • 定義:使用與消息一樣長度且無重複的隨機密鑰來加密信息

這裏寫圖片描述

  • 優點:如果用窮舉法搜索所有可能的密鑰,就會得到大量可讀、清楚的明文,但是沒法確定哪一個是真正所需要的,因此這種密碼不可破。

  • 缺點:

    1. 產生大規模隨機密鑰由實際困難
    2. 密鑰的分配和保護也是問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章