版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章對(duì)稱密碼學(xué)
密碼學(xué)是研究數(shù)據(jù)加密、解密以及認(rèn)證的學(xué)科,它包括
密碼編碼學(xué)和密碼分析學(xué)兩部分。本章首先介紹密碼學(xué)的一
些基礎(chǔ)知識(shí)和幾種古典密碼術(shù),然后對(duì)現(xiàn)代對(duì)稱密碼算法進(jìn)
行討論。
2.1密碼系統(tǒng)模型
在1976年Diffie及Hellman發(fā)表其論文“New
DirectionsinCryptography"⑴之前,所謂的密碼
學(xué)就是指對(duì)稱密鑰密碼系統(tǒng)。因?yàn)榧用?解密用的是同一把
密鑰,所以也稱為單一密鑰密碼系統(tǒng)。這類算法可謂歷史悠
久,從最早的凱撒密碼到目前使用最多的DES密碼算法,
以及2000年美國(guó)推出的下一代密碼算法AES
[/archive/aes/index.htm
1]都屬于此類密碼系統(tǒng)。
通常一個(gè)密鑰加密系統(tǒng)包括以下幾個(gè)部分:
1、消息空間M(Message);
2、密文空間C(Ciphertext);
3、密鑰空間K(Key);
4、加密算法E(Encryptionalgorithm)和
5、解密算法D(Decryptionalgorithm)o
加密密鑰Kl解密密鑰K2
明文原始明文
解密
第二章:對(duì)稱密碼學(xué)
圖2-1密鑰加/解密系統(tǒng)模型
消息空間中的消息M(稱之為明文)通過(guò)由加密密鑰
K1控制的加密算法加密后得到密文Co密文C通過(guò)解密密
鑰K2控制的解密算法又可恢復(fù)出原始明文M。即:
EKI(⑷=C
DK2(C)=M
DK2(EKI(M))=M
在圖2-1的加/解密系統(tǒng)模型中,當(dāng)算法的加密密鑰能
夠從解密密鑰中推算出來(lái),或反之解密密鑰可以從加密密鑰
中推算出來(lái)時(shí),稱此算法為對(duì)稱算法,也稱秘密密鑰算法或
單密鑰算法。稱加密密鑰和解密密鑰不同并且其中一個(gè)密鑰
不能通過(guò)另一個(gè)密鑰推算出來(lái)的算法為公開(kāi)密鑰算法。
在現(xiàn)代密碼學(xué)中,所有算法的安全性都要求是基于密鑰
的安全性,而不是基于算法細(xì)節(jié)的安全性。也就是說(shuō),只要
密鑰不公開(kāi),即使算法公開(kāi)并被分析,不知道密鑰的人也無(wú)
法理解你所加密過(guò)的消息。
2.2古典密碼
在計(jì)算機(jī)出現(xiàn)之前,密碼學(xué)由基于字符的密碼算法構(gòu)
成。不同的密碼算法之間互相替代(Substitution)或相
互置換(Transposition),好的密碼算法是結(jié)合這兩種
方法,每次進(jìn)行多次運(yùn)算?,F(xiàn)在的計(jì)算機(jī)密碼算法要復(fù)雜的
多,但基本原理沒(méi)有變化。其重要的變化是算法只對(duì)位而不
是字母進(jìn)行變換,也就是字母表長(zhǎng)度從26個(gè)字母變?yōu)?個(gè)
字母。大多數(shù)好的密碼算法仍然是以替代和置換作為加密技
術(shù)的基本構(gòu)造塊。
20
2.2.1替代密碼
替代密碼就是明文中的每一個(gè)字符被替換為密文中的另
外一個(gè)字符。接收者對(duì)密文進(jìn)行逆替換即可恢復(fù)出明文。在
古典密碼學(xué)中有三種類型的替代密碼:?jiǎn)伪硖娲艽a、多表
替代密碼和多字母替代密碼。
“單表替代密碼
所謂的單表替代密碼(Monoalphabetic)就是明文的
每一個(gè)字符用相應(yīng)的另外一個(gè)唯一的密文字符代替。最早的
密碼系統(tǒng)“凱撒密碼”就是一種單表替代密碼,也是一種移
位替代密碼。凱撒密碼是對(duì)英文的26個(gè)字母分別向前移3
位,于是可以得到其替代表為:
明文:abcdefghijklmnopcr
stnv~不x-y~z
密文:DEFGH工JKLMNOPQRSTU
VWXYZABC
例2.1:對(duì)明文:
networksecurity
則密文為:
QHWZRUNVHFXULWB
如將26個(gè)字母分別對(duì)應(yīng)于整數(shù)。?25,可得凱撒密碼變
換為:
力口密:E(m)=(m+3)mod26
解密:D(c)=(c-3)mod26
凱撒密碼的密鑰k=3。更一般化的移位替代密碼變換
為:
加密:E(m)=(m+k)mod26
解密:D(c)=(c-k)mod26
第二章:對(duì)稱密碼學(xué)
顯然,這種密碼系統(tǒng)是不安全的,它非常容易攻破。首
先,簡(jiǎn)單的單表替代沒(méi)有掩蓋明文不同字母出現(xiàn)的頻率;其
次,移位替代的密鑰空間有限,只有25個(gè)密鑰,利用暴力
攻擊法很容易破解。因此,替代密碼應(yīng)該有更大的密鑰空
間,關(guān)鍵詞(Keyword)密碼就是這樣一種加密方法。
、關(guān)鍵詞(Keyword)密碼
關(guān)鍵詞加密方法包含兩個(gè)步驟:
1.選擇一個(gè)關(guān)鍵詞,如果關(guān)鍵詞中包含有重復(fù)的字
母,則后續(xù)出現(xiàn)的該字母一律刪除。例如,對(duì)于關(guān)
鍵詞"xidian”,則最終使用的詞是
x1da.no
2.將關(guān)鍵詞寫(xiě)在字母表的下方,剩下的空間用其余的
字母按照字母順序進(jìn)行填寫(xiě)。
例2.2:對(duì)于關(guān)鍵詞“KRYPTOS”,其明文和密文對(duì)照
表如下:
明文:ABCDEFGHIJKLMNOPQR
sLpp—v-w—x-Y—z---------------------------------------------
密文:KRYPTOSABCDEFGHIJL
MNQUVWXZ
對(duì)消息“cryptographyiscooln的加密結(jié)果如
下:
明文:CRYPTOGRAPHY工SCOOL
密文:YLX工NHSLK工AXBMYHHE
關(guān)鍵詞加密方法的最大安全缺陷在于其很容易受到頻率
分析攻擊。
22
在密碼學(xué)中,所謂的頻率分析是指字母或者字母組合在
密文中出現(xiàn)的頻率。許多的古典密碼都可以用這種方法進(jìn)行
破解。
頻率分析是基于這樣一個(gè)事實(shí):在任何一種書(shū)面語(yǔ)言
中,不同的字母或字母組合出現(xiàn)的頻率各不相同。而且,對(duì)
于以這種語(yǔ)言書(shū)寫(xiě)的任意一段文本,都具有大致相同的字母
分布特征。比如,在英語(yǔ)中,字母E出現(xiàn)的頻率很高,而X
則出現(xiàn)得較少,如圖2-2所示。類似地,ST、NG、TH,以
及QU等雙字母組合出現(xiàn)的頻率非常高,NZ、QJ組合則極
少。英語(yǔ)中出現(xiàn)頻率最高的12個(gè)字母可以簡(jiǎn)記為
"ETAOINSHRDLU”。
A
u
u
a
n
b
a
±
3
lA
ro
a-
Q:
圖2-2英文字母出現(xiàn)頻率統(tǒng)計(jì)
第二章:對(duì)稱密碼學(xué)
有了這些信息,我們?cè)倩仡^看看關(guān)鍵詞加密方法的破
解:
1.首先關(guān)鍵詞加密法仍屬于單表替代密碼,這也就意味
著,盡管明文中的某個(gè)字母被替換成密文中的某個(gè)字
母,但是其統(tǒng)計(jì)頻率并未改變。因此,通過(guò)對(duì)密文中
的每個(gè)字母的出現(xiàn)次數(shù)進(jìn)行統(tǒng)計(jì)分析,就可以大致判
斷明文和密文的對(duì)應(yīng)關(guān)系。例如,密文中出現(xiàn)頻率最
高的某個(gè)字母很有可能對(duì)應(yīng)的就是明文字母‘E'。
2.其次可以利用密文的關(guān)鍵詞之后都是按照字母順序排
列這一規(guī)律來(lái)進(jìn)一步降低破解難度。
Z仿射加密方法(AffineCipher)
在仿射加密方法中,每個(gè)字母被賦予一個(gè)數(shù)字,例如字
母a=0,字母b=L......,字母z=25。加密密鑰為0?25之
間的數(shù)字對(duì)(a,b)o
加解密函數(shù)形式分別為:
c=e(p)=(ap+b)(mod26)
p=d(c)=a-1(c-b)(mod26)
其中a-1是a的模乘法逆元,也就是滿足
1=aoT1modm.
模乘法逆元有唯一解的充要條件是a和26(m)的最大
公約數(shù):gcd(az26)=lo
例2.3:下面我們對(duì)明文“AFFINECIPHER"進(jìn)行加
密,其中a=5,b=8o整個(gè)加密過(guò)程如下表所示:
明文AFFINECIPHER
對(duì)應(yīng)整數(shù)11
05584287417
值_______35
24
3347214842
5x+8893
3383888338
(5x+8)(mo22121
87725215
d26)21827
密文THHWVCSWFRCP
解密時(shí)首先計(jì)算a-1是21,然后利用解密函數(shù)解密,過(guò)
程如下:
密文:IHHWVCSwFRCP
對(duì)應(yīng)整數(shù)值:877222121822517215
21(y-8):0-21-21294273210294-63189147
126126
:21(y-8)]
055813428157417
mod26:
明文:AFFINECIPIIER
由于仿射密碼仍然是一種單表替換密碼,因此它也存在
此類密碼所固有的缺陷。前述的頻率分析方法同樣適用。
在考慮加密英文消息時(shí),m=26,此時(shí)總共有286種仿
射密碼,其中沒(méi)有包含26種簡(jiǎn)單的凱撒密碼。這主要是因
為同26互為素?cái)?shù)的數(shù)有12個(gè),也就是a的取值有12
種。每個(gè)a對(duì)應(yīng)的移位取值是26個(gè),也就是b的值。因此
總共有12*26=312可能的秘鑰。
該密碼系統(tǒng)的主要弱點(diǎn)在于對(duì)手一旦通過(guò)頻率分析或者
蠻力搜索或者猜測(cè)等手段發(fā)現(xiàn)兩個(gè)密文字符所對(duì)應(yīng)的明文字
符,他就可以通過(guò)線性解方程得方法來(lái)恢復(fù)秘鑰。而且我們
第二章:對(duì)稱密碼學(xué)
知道a和m必須互為素?cái)?shù),這也有助于判斷解方程得到的
結(jié)果是否正確。
“多表替代密碼
多表替代密碼是以一系列的(兩個(gè)以上)替代表依次對(duì)
明文消息的字母進(jìn)行替代的加密方法。
多表替換加密形式是:其中的每個(gè)明文字母可以被密文
中的不同字母來(lái)代替,而每個(gè)密文字母也可以表示多個(gè)明文
字母。這種加密法可以干擾字母出現(xiàn)頻率分析法。著名的
Vigenere加密法就是其中的一種,它在長(zhǎng)達(dá)三百多年的時(shí)
間里都被認(rèn)為是不可破解的。
Vigenere力口密過(guò)程如下:
選擇一個(gè)關(guān)鍵詞(例如,“MEC”)o
1,將關(guān)鍵詞重復(fù)地寫(xiě)在明文的上方,直至兩者長(zhǎng)度
相等。
2.密文通過(guò)查詢Vigenere表得到。其中關(guān)鍵詞字
母確定表的行,明文字母確定表的列,如下圖所示。
26
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AABODEFGHIJKLMN0PQRSTUVWXYZ
BBCDEFGN0PQRSTUVWXYZA
CCDEFHIJKLMN0PQRSTUVWXYZAB
DDEFGHIJKLMN0PQRSTUVWXYZABC
EEFGHIJ0PQRSTUVWXYZABCD
FFGHIJ0PQRSTUVWXYZABCDE
GGHIJKLM0PQRSTUVWXYZABcDEF
HIJLMN0PQRSTUVWXYZABCDEFG
IIN0PQRSTUVWXYZABCDEFG
JJ0PQRSTUVWXYZABCDEFGI
NPQRSTUVWXYZABCDEFGHIJ
0PQRSTUWXYZABCDEFGHIJ
M0PQRSTUVXYZABCDEFGH[T]JKL
N0PQRSTUVWYZABCDEFGHIJKLM
00PQRSTUVWXZABCDEFGH
PPQRSTUVWXYZABCDEFGN0
QQRSTUVWXYZABCDEFGIJ0P
RRSTUVWXYZABCDEFG0PQ
SSTUVWXYZABCDEFGHIM0PQR
TTUVWXYZABCDEFGINPQRS
UVWXYZABCDEFGHILM0PQRST
VVWXYZABCDEFGIMN0PQRSTU
wWXYZABCDEFGIKLMN0PQRSTUV
XYZABCDEFGHILMN0PQRSTUVW
圖2-3Vigenere替換表
3.行與列的交叉處得到對(duì)應(yīng)密文。
例2.4:用關(guān)鍵詞MEC進(jìn)行消息加密。
關(guān)鍵MECMECMECMECME
詞CMECMECM
明文;eneedmoresupp
iesfast
密文《IPQIFYSTQWWBT
uIUREUF
從中,我們可以看到,字母'e'有時(shí)候被加密成
'I’,有時(shí)候被加密成'Q'。而且,密文中的I表示了
兩個(gè)不同的明文字母‘w'和'e'。這種變換特性使得頻
第二章:對(duì)稱密碼學(xué)
率分析方法在此變得無(wú)能為力。顯然,出現(xiàn)頻率很高的字母
'e'被替換成了出現(xiàn)頻率不怎么高的‘I'和'Q',而
且密文中的連續(xù)出現(xiàn)的兩個(gè)相同字母,如‘II'或'W
W'所對(duì)應(yīng)的明文字母并不相同。
當(dāng)然,這并不意味著沒(méi)有辦法來(lái)破解Vigenere加密法。
幸運(yùn)的是,F(xiàn)rederickKasiski通過(guò)觀察發(fā)現(xiàn):明文中重復(fù)出
現(xiàn)的字符串與關(guān)鍵詞密鑰的重復(fù)部分加密會(huì)得到重復(fù)密文字
符串,如圖2-4所示:
密
鑰:runrunrunrunrunrunrun
runrunrun
明
文:tobeornottobethatisth
equestion
密
文:kiovieeigkiovnurnvjnu
vkhvmgzia
9-------II----6
圖2-4Vigenere密碼分析
在上例中,兩次“kiov”之間的距離為9,“nu”之間的
距離為6,由此我們可以猜測(cè)這些距離應(yīng)該是密鑰長(zhǎng)度的倍
數(shù),密鑰長(zhǎng)度可能為3。因此密文中重復(fù)字符串之間的距離
反映了密鑰重復(fù)的次數(shù)和密鑰的長(zhǎng)度,于是
FrederickKasiski提出的破解過(guò)程如下:
1.找出密文中重復(fù)的字符串
2.計(jì)算重復(fù)字符串之間的字符數(shù)
3.找出從步驟2中得到的數(shù)的因子(就是最大公約
數(shù))
28
4.該最大公約數(shù)很可能就是關(guān)鍵詞的長(zhǎng)度
有了關(guān)鍵詞長(zhǎng)度,我們就可以將與關(guān)鍵詞中用同一個(gè)字
符替換得到的密文字符集合到一起,這些密文字符的集合就
相當(dāng)于一個(gè)單表加密所得到密文。這樣就可以采用前面提到
的頻率分析方法進(jìn)行密碼破解了。對(duì)于上面的例子,把密鑰
run中的r字符所對(duì)應(yīng)的密文整合在一起,即kvekvijvvz...,
它們都是由同一個(gè)密鑰加密得到的移位加密密文。所以,一
旦得到關(guān)鍵字長(zhǎng)度,破解Vigenere加密法就變成了破解n
(關(guān)鍵字長(zhǎng)度為n)個(gè)不同的單表加密問(wèn)題。
對(duì)于關(guān)鍵詞長(zhǎng)度的計(jì)算,美國(guó)密碼學(xué)家WilliamFriedman
提出了基于凹凸度量(MR)的方法。我們知道,英語(yǔ)中每
個(gè)字符出現(xiàn)的概率都是不一樣的,繪成頻率分析圖,圖中就
有高峰與低谷,單表加密法是沒(méi)有辦法改變字母出現(xiàn)的概率
的,但是對(duì)于多表加密法,得到的字母頻率圖就變得很平
滑。完全平滑的分布就是每個(gè)字母等概率(1/26)出現(xiàn)的情
況。凹凸度量是指從文本中選取的字母的實(shí)際概率與從完全
平滑的分布中選取該字母的概率之差。
設(shè)才是從密文中選取“字母的概率,那么上述的概率偏差
即為優(yōu)-1/26)2。加平方是為了保證得到的值為正值。設(shè)才為
完全偏差,因此。至人所有字母的偏差和為
MR=6(2-1/26)2
a=a
通過(guò)拆分和取舍,可以將這個(gè)式子簡(jiǎn)化成
MR=£p:-1/26
a=a
對(duì)于某個(gè)密文,如果估算出‘2,那么用R就能確定。由于
《,為從密文中選取字母a的概率,那么中就是從全部密文中
選取字母a的概率和從剩余密文中(即去掉第一個(gè)a字母的密
文)中選取字母〃的概率的乘積。如果密文中有〃個(gè)字母,
凡是密文中a字母的個(gè)數(shù),那么
第二章:對(duì)稱密碼學(xué)
匕=工/〃,乙2=優(yōu)/〃).[優(yōu)—
計(jì)算密文的MR值只依賴于巴2。
由此,WilliamFriedman定義了重合指數(shù)的概念
(IndexofCoincidence,IC)來(lái)分析多表加密法。IC定義
為:
通過(guò)分析和資料,我們得知單表加密法的IC大概為
0.066o完全平滑的文字,其值為0.38,如果IC的值在0.38
到0.066之間,就說(shuō)明該密文很可能就是多表加密法。事實(shí)
上,通過(guò)下圖,我們能得知IC值暗示的多表加密法的密鑰
長(zhǎng)度:
密鑰長(zhǎng)度IC值
10.0660
20.0520
30.0473
40.0450
50.0436
60.0427
70.0420
80.0415
90.0411
100.0408
110.0405
120.0403
圖2-5IC值和秘鑰長(zhǎng)度關(guān)系
—多字母(Polygraphic)替代密碼
30
多字母替代密碼是每次對(duì)多于1個(gè)字母進(jìn)行替代的加密
方法,它的優(yōu)點(diǎn)在于將字母的自然頻度隱蔽或均勻化,從而
利于抗統(tǒng)計(jì)分析。
^iPlayfair密碼算法
Playfair密碼采用一個(gè)包含密鑰的5x5矩陣進(jìn)行加密
解密。矩陣首先用去掉重復(fù)字母的密鑰進(jìn)行填充,然后用剩
余的字母按照順序進(jìn)行填充。圖2-6給出了密鑰為
"playfairexample"的加解密矩陣(注意,工和J被認(rèn)
為是同一個(gè)字母)。
PLAYFA
IREXM?LEA
BCD^GH=J
KLMNOPQRS
TUVWxZ
圖2-6Playfair加解密矩陣
加密消息前,把消息明文按兩個(gè)字母一組進(jìn)行分割,如
果這個(gè)兩個(gè)字母相同,則插入一個(gè)空字符,比如'X'。若
明文消息的字母?jìng)€(gè)數(shù)為奇數(shù)時(shí),將空字母X加在明文的末
端。
對(duì)于每一對(duì)明文ml、m2,其加密規(guī)則如下:
1.ml和m2在同一行時(shí),則密文cl和c2分別是緊靠
ml、m2右端的字母。其中第一列看作是最后一列的右方。
舉例如下:
第二章:對(duì)稱密碼學(xué)
PLAY
EX
IRE>X
形狀:行
BCDGH規(guī)則:以右邊字符替換
KNOQS
XM
TUVWZ
2.若ml和m2在同一列時(shí),貝ll密文cl和c2分別是緊
靠ml、m2下方的字母。其中第一行看作是最后一行的上
方。
PLFDE
IRXM
形狀:列
BCGH規(guī)則:以下邊字符替換
KNQS
TUWZ0D
3.若ml和m2不在同一行,也不在同一列時(shí),則密文
cl和c2是由ml和m2確定的矩形的其他兩角的字母,并
且cl和ml、c2和m2同行。
PLAYF
HI
IREX>M形狀:矩形
B<G-D-G-H規(guī)則:以同一行對(duì)角
字符替換
KN0QS
BM
TUVWZ
例2.5:首先對(duì)加密消息“Hidethegoldinthe
treestump"進(jìn)行預(yù)處理后,得到兩個(gè)字母一組的明文:
HIDETHEGOLDINTHETREXESTUMP
A
通過(guò)利用圖所示的加密矩陣加密后得到的密文如下:
BMODZBXDNABEKUDMUIXMMOUVIF
32
“Playfair密碼分析
破解和分析Playfair密碼的第一步就是要確定你所
分析的密碼確實(shí)是采用的Playfair加密的。這通??梢?/p>
通過(guò)以下特征來(lái)識(shí)別:
1.密文的字母?jìng)€(gè)數(shù)是偶數(shù);
2.原來(lái)在明文中很少出現(xiàn)的一些字母,其在密文中出
現(xiàn)的頻率明顯增加
3.把密文按照兩個(gè)字母一組進(jìn)行分割,則每組的字母
不會(huì)有重復(fù)
4.雙圖的頻率分布與明文的頻率分布大致相同
在具體的密文分析過(guò)程中,可以使用以下特征或者規(guī)則
進(jìn)行:
1.明文中的字母不會(huì)被加密成自己;
2.明文中逆序的兩個(gè)雙圖加密后的兩個(gè)雙圖同樣也
是逆序的。
3.明文中的每個(gè)字母只能用某5個(gè)字母中的一個(gè)來(lái)
加密。
圖2-7給出了Playfair密碼分析的一般過(guò)程:
---J搜尋匹
配模式
構(gòu)造可
能矩形
圖2-7playfair密碼分析步驟
第二章:對(duì)稱密碼學(xué)
2.2.2置換密碼
在置換密碼中,明文和密文的字母保持相同,但順序被
打亂了。置換密碼使用的密鑰通常是一些幾何圖形,它決定
了明文字母被重新排列得順序和方式。
ZSkytale加密法(天書(shū))
Skytale就是一種加密用的、具有一定粗細(xì)的棍棒或權(quán)
杖,如圖2-8所示。
圖2-8Skytale天書(shū)
斯巴達(dá)人把皮革或羊皮紙纏繞在特定直徑的木棍上,寫(xiě)好
文字以后再把皮革或羊皮紙解下來(lái),紙上的字母順序就頓時(shí)
歪七扭八,就誰(shuí)也不認(rèn)識(shí)了;只有把皮(紙)帶再一點(diǎn)點(diǎn)卷
回與原來(lái)加密的Skytale同樣粗細(xì)的棍棒上后,文字信息
逐圈并列在棍棒的表面,才能還原出本來(lái)的意思。
實(shí)際上天書(shū)就是一種簡(jiǎn)單的縱行置換密碼。明文以固定
的寬度水平地寫(xiě)在一張圖表紙上,密文按垂直方向讀出;解
密就是將密文按相同的寬度垂直的寫(xiě)在圖表紙上,然后水平
的讀出明文。
例2.6:對(duì)下列明文計(jì)算天書(shū)加密結(jié)果:
34
encryptionisthetransformationofdata
intosomeunreadableform
一ncryPtion
isthetrans
formationo
fdataintos
omeunreada
b1一form
密文:eiffobnsodmlctraeerhmtufyeaano
pttirrtrinemiaotaonnodnsosa
在填寫(xiě)某個(gè)圖表時(shí),可以采用各種形狀的幾何圖形,如
rail-fence(柵欄)加密時(shí)采用對(duì)角線方式寫(xiě)入,然后按
行讀出即可得到密文,如圖2-9所示:
T...E
.E.R.D.S.O.E.E.F.E.A.
O.C.
N..
圖2-9柵欄密碼
對(duì)應(yīng)的密文如下:
WECRLTEERDSOEEFEAOCAIVDEN
圖2-10給出了按照三角形方式填充的加密方法,按列
讀取就是對(duì)應(yīng)的密文。
EAR
EDISC
OVEREDF
LEEATONCE
第二章:對(duì)稱密碼學(xué)
圖2-10三角形置換密碼
對(duì)應(yīng)的密文如下:
LOEEVEEDEAWAIRTRSEOEDNFCE
'列置換密碼
在列置換密碼中,消息按照固定長(zhǎng)度的行寫(xiě)入,然后按
照某種順序逐列讀出,即可得到密文。行的寬度和列的置換
順序由一個(gè)關(guān)鍵詞或者密鑰來(lái)控制。例如,對(duì)于秘鑰
“crypt。”,總共包含6個(gè)字母,因此加密矩陣有6歹U。
然后秘鑰中各個(gè)字母在字母表中的順序?yàn)椋?、4、6、3、
5、2,因此相應(yīng)的列置換順序?yàn)椤?46352”。也就
是說(shuō),密文的第一列仍然是明文矩陣的第一列,而密文的第
二列則是明文矩陣的第六列,以此類推。
對(duì)于消息明文“WEAREDISCOVERED.FLEEAT
ONCE.”和密鑰“crypto”,其對(duì)應(yīng)的明文矩陣和置換規(guī)
則如下圖所示:
146352
WEARED
ISCOVE
REDFLE
EAT0NC
EQKJEU
圖2-n列置換密碼
圖中最后5個(gè)字母稱為空字符,用于填滿矩陣最后一
行,這種列置換密碼稱為規(guī)則列置換矩陣。對(duì)于非規(guī)則列置
換密碼,矩陣最后一行不進(jìn)行任何填充。
最終的加密結(jié)果為:
WIREEDEECUROFOJESEAQEVLNEACDTK
36
?置換密碼分析
由于置換密碼并不影響單個(gè)符號(hào)出現(xiàn)的頻率,簡(jiǎn)單的置
換可以通過(guò)頻率計(jì)數(shù)進(jìn)行檢測(cè)識(shí)別。如果密文和明文的頻率
分布非常接近,那么很有可能該密文是采用置換密碼加密
的。置換密碼最容易用文字拼圖游戲進(jìn)行攻擊,也就是不斷
交換字母順序,看能不能發(fā)現(xiàn)單詞或者某些短語(yǔ)。這種短語(yǔ)
可能泄露某些列置換模式。隨著發(fā)現(xiàn)更多的短語(yǔ),從而最終
找到整個(gè)列置換規(guī)則。
簡(jiǎn)單的置換密碼還容易受到最優(yōu)搜索算法的攻擊,如遺
傳算法。因?yàn)殡S著破解出來(lái)的密鑰越來(lái)越接近真實(shí)的密鑰,
每一行中合理的,更加接近語(yǔ)法的明文短語(yǔ)越來(lái)越多,越來(lái)
越長(zhǎng),這就為密鑰的搜索提供有用的信息。
2.3數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)
從這一節(jié)開(kāi)始將介紹兒種對(duì)稱密碼系統(tǒng)。首先介紹一種
最通用的計(jì)算機(jī)加密算法一數(shù)據(jù)加密標(biāo)準(zhǔn)DES(Data
EncryptionStandard)。
2.3.1分組密碼簡(jiǎn)介
對(duì)稱密碼算法有兩種類型:分組密碼(Block
Cipher)和流密碼(StreamCipher)。分組密碼一■次
處理一塊輸入,每個(gè)輸入塊生成一個(gè)輸出塊,而流密碼對(duì)輸
入元素進(jìn)行連續(xù)處理,同時(shí)產(chǎn)生連續(xù)單個(gè)輸出元素。數(shù)據(jù)加
密標(biāo)準(zhǔn)DES屬于分組密碼。分組密碼將明文消息劃分成固
定長(zhǎng)度的分組,各分組分別在密鑰的控制下變換成等長(zhǎng)度的
密文分組。分組密碼的工作原理如下圖:
第二章:對(duì)稱密碼學(xué)
X比特密鑰X比特密鑰
Tt
圖2-12分組密碼工作原理
2.3.2DES的歷史
數(shù)據(jù)加密標(biāo)準(zhǔn)成為世界范圍內(nèi)的標(biāo)準(zhǔn)已經(jīng)20多年了。
1973年,美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS)在認(rèn)識(shí)到建立數(shù)據(jù)保護(hù)
標(biāo)準(zhǔn)既明顯又急迫需要的情況下,開(kāi)始征集聯(lián)邦數(shù)據(jù)加密標(biāo)
準(zhǔn)的方案。1975年3月17日,NBS公布了工BM公司提供
的密碼算法,以標(biāo)準(zhǔn)建議的形式在全國(guó)范圍內(nèi)征求意見(jiàn)。經(jīng)
過(guò)兩年多的公開(kāi)討論之后,1977年7月15日,NBS宣布
逑受這個(gè)建議,作為聯(lián)邦信息處理標(biāo)準(zhǔn)46號(hào)⑵,數(shù)據(jù)加密
標(biāo)準(zhǔn)(DataEncryptionStandard),即DES正式頒
布,供商業(yè)界和非國(guó)防性政府部門使用。
DES是一種典型的分組密碼,一種將固定長(zhǎng)度的明文通
過(guò)一系列復(fù)雜的操作變成同樣長(zhǎng)度的密文的算法。對(duì)DES
而言,分組長(zhǎng)度為64位。同時(shí),DES使用密鑰來(lái)自定義變
38
換過(guò)程,因此算法認(rèn)為只有持有加密所用的密鑰的用戶才能
解密密文。密鑰表面上是64位的,然而只有其中的56位
被實(shí)際用于算法,其余8位被用于奇偶校驗(yàn),并在算法中被
丟棄。因此,DES的有效密鑰長(zhǎng)度為56位,通常稱DES的
密鑰長(zhǎng)度為56位。
與其它分組密碼相似,DES自身并不是加密的實(shí)用手
段,而必須以某種工作模式進(jìn)行實(shí)際操作。FIPS-81確定
了DES使用的幾種模式⑶。
2.3.3DES算法的描述
DES加密算法如圖2-13所示。
64比特明文輸入
第二章:對(duì)稱密碼學(xué)
32-bitLo32-bitRo
40
64比特密文輸出
圖2-13DES加密算法
?初始置換函數(shù)IP
DES對(duì)64位明文分組進(jìn)行操作。首先64位明文分組x
經(jīng)過(guò)一個(gè)初始置換函數(shù)HP,產(chǎn)生64位的輸出xo,再將分
組X。分成左半部分L。和右半部分R。。即:
x()=IP(x)=LQRQO
置換表如表2.1。此表順序?yàn)閺纳系较拢瑥淖笾劣?。?/p>
初始置換把明文的第58位換至第1位的位置,把第50位
換至第二位。以此類推。
表2.1初始置換IP
55432112
8024680
65432214
0246802
65433216
2468024
65443218
4680246
54432191
791357
55432113
9135791
65432215
1357913
65433217
3579135
第二章:對(duì)稱密碼學(xué)
"獲取子密鑰Ki
DES加密算法的密鑰長(zhǎng)度為56位,但一般表示為64
位,其中每個(gè)第8位用于奇偶校驗(yàn)。在DES加密算法中,
要利用用戶提供的64位初始密鑰經(jīng)過(guò)一系列的處理得到
Ki,K2,.…,K16,分別作為1916輪運(yùn)算的16個(gè)子密
鑰。現(xiàn)在來(lái)看如何獲得這16個(gè)子密鑰。
首先,將64位密鑰去掉8個(gè)校驗(yàn)位,用密鑰置換PC-1
置換剩下的56位密鑰;再將56位分成前28位Co和后28
位Do。即:PC-1(K56)=CODOO密鑰置換PC-1如表2.2所
示:
表2.2密鑰置換PCT
5443219
791367
1554321
802468
1255432
091357
1136543
910246
6543321
3579135
7654332
246802
1665432
413579
2152214
13802
接下來(lái),根據(jù)輪數(shù)這兩部分分別循環(huán)左移1位或2位。
具體每輪移位的位數(shù)見(jiàn)表2.3:
42
表2.3每輪移動(dòng)的位數(shù)
輪
1234567891111111
次
0123456
位1122222212222221
數(shù)
移動(dòng)后,將兩部分合并成56位后通過(guò)壓縮置換PC-2后
得到48位子密鑰。即:
Ki=PC-2(CiDi)o壓縮置換如表2.4:
表2.4壓縮置換PC-2
11121532
47148
16212114
510392
28172212
66703
45334534
12177500
54344435
15384996
35445323
43620692
綜上所述,整個(gè)子密鑰獲得過(guò)程如圖2-14:
第二章:對(duì)稱密碼學(xué)
64位密鑰
1f0
圖2-14子密鑰產(chǎn)生
?密碼函數(shù)f
密碼函數(shù)f的輸入是32比特?cái)?shù)據(jù)和48比特的子密鑰,
其操作步驟如圖2-15:
44
32比特48比特子密鑰
圖2-157(Ri,R)計(jì)算
1、擴(kuò)展置換(E)
將數(shù)據(jù)的右半部分J從32位擴(kuò)展為48位。位選擇函
數(shù)(也稱E-盒)如表2.5:
表2.5擴(kuò)展置換E
312345
2
456789
891111
0123
111111
234567
222222
012345
223331
89012
2、異或
擴(kuò)展后的48位輸出E(^)與壓縮后的48位子密鑰匕
作異或運(yùn)算。
第二章:對(duì)稱密碼學(xué)
3、S盒替代
將第二步異或得到的48位結(jié)果分成8個(gè)6位的塊,每
一塊通過(guò)對(duì)應(yīng)一個(gè)S盒產(chǎn)生一個(gè)4位的輸出。8個(gè)S盒如
表2.6,注意表中各項(xiàng)采用的十六進(jìn)制表示:
表2.6DESS盒
S0123456789ABCDEF
1
0E4D12FB83A6C5907
10F74E2D1A6CB9538
241E8D62BFC973A50
3FC8249175B3EA06D
S0123456789ABCDEF
2
0F18E6B34972DC05A
13D47F28EC01A69B5
20E7BA4D158C6932F
3D8A13F42B67C05E9
S0123456789ABCDEF
3
0A09E63F51DC7B428
1D709346A285ECBF1
2D6498F30B12C5AE7
31AD069874FE3B52C
S0123456789ABCDEF
4
46
07DE3069A1285Bc4F
1D8B56F03472C1AE9
2A690CB7DF13E5284
33F06A1D8945BC72E
S0123456789ABCDEF
5
02C417AB6853FD0E9
1EB2C47D150FA3986
2421BAD78F9C5630E
3B8C71E2E6F09A453
S0123456789ABCDEF
6
0C1AF92680D34E75B
1AF427C9561DE0B38
29EF528C3704A1DB6
3432C95FABE17608D
S0123456789ABCDEF
7
04B2EF08D3C975A61
1D0B7491AE35C2F86
214BDC37EAF680592
36BD814A7950FE23C
S0123456789ABCDEF
8
第二章:對(duì)稱密碼學(xué)
0D28E6FB1A93E50C7
11FD8A374C56B0E92
27B419CE206ADF358
321E74A8DFC90356B
S盒的具體置換過(guò)程為:某個(gè)Si盒的6位輸入的第一位
和第六位形成一個(gè)2-位的二進(jìn)制數(shù)(從0到3)決定對(duì)應(yīng)
表中的一行;同時(shí),輸入的中間4位構(gòu)成4-位二進(jìn)制數(shù)
(從0到15)對(duì)應(yīng)表中的一列。(注意:行和列均從0開(kāi)
始計(jì)數(shù)。)例如第8個(gè)S盒的輸入為001011。前后2位
形成的二進(jìn)制數(shù)為01,對(duì)應(yīng)第8個(gè)S盒的第1行;中間4
位為0101對(duì)應(yīng)同一S盒的第5歹I]。從表中可得S盒8的
第1行第5列的數(shù)為30于是就用0011代替原輸入
OOlOllo
4、P盒置換
將8個(gè)S盒的輸出連在一起生成一個(gè)32位的輸出,輸
出結(jié)果再通過(guò)置換PoP產(chǎn)生一個(gè)32位的輸出即:
f(RizKi)o至此,密碼函數(shù)f的操作就完成了。表2.7為
P盒置換。
48
最后,將P盒置換的結(jié)果與最初的64位分組的左半部分
異或,然后左、右半部分交換,接著開(kāi)始下一輪計(jì)算。
5、函數(shù)F設(shè)計(jì)
函數(shù)F是DES加密的核心。而該函數(shù)又依賴于S盒的
設(shè)計(jì)。這也適用于其他的對(duì)稱分組加密算法。下面我們簡(jiǎn)單
討論一下有關(guān)F函數(shù)的一些通用設(shè)計(jì)準(zhǔn)則,以及S盒設(shè)計(jì)
問(wèn)題。
F的設(shè)計(jì)準(zhǔn)則
函數(shù)F的基本功能就是“擾亂(Confusion)”輸入。
因此對(duì)于F來(lái)說(shuō)其非線性越高越好,也就是說(shuō)要恢復(fù)F所
做的“擾亂”操作越難越好。
其它的設(shè)計(jì)準(zhǔn)則還包括嚴(yán)格雪崩準(zhǔn)則(SAC)⑷和比特獨(dú)
立準(zhǔn)則(BIC)⑷。所謂SAC就是要求算法具有良好的雪
崩效應(yīng),輸入當(dāng)中的一個(gè)比特發(fā)生變化都應(yīng)當(dāng)使輸出產(chǎn)生盡
可能多的比特變化。嚴(yán)格地說(shuō),當(dāng)任何單個(gè)輸入比特位i發(fā)
生變換時(shí),一個(gè)S盒的第j比特輸出位發(fā)生變換的概率應(yīng)
為1/2,這對(duì)任意的i,j都成立。
而比特獨(dú)立準(zhǔn)則的意思是當(dāng)單個(gè)輸入比特位i發(fā)生變化
時(shí),輸出比特位j,k的變化應(yīng)當(dāng)互相獨(dú)立,對(duì)任意的
i,j,k成立。SAC和BIC可以有效的增強(qiáng)F函數(shù)的“擾
亂”功能。
S盒設(shè)計(jì)
S盒的設(shè)計(jì)在對(duì)稱分組密碼研究領(lǐng)域中起著舉足輕重的作
用。本質(zhì)上,S盒的作用就是對(duì)輸入向量進(jìn)行處理,使得輸
出看起來(lái)更具隨機(jī)性。輸入和輸出之間應(yīng)當(dāng)是非線性的,很
難用線性函數(shù)來(lái)逼近。
顯然s盒的尺寸是一個(gè)很重要的特性。一個(gè)〃X機(jī)的S盒
其輸入為n比特,輸出為m比特。DES的S盒大小為6x4。
第二章:對(duì)稱密碼學(xué)
S盒越大,就越容易抵制差分和線性密碼分析⑷。一般在實(shí)
踐當(dāng)中,通常選擇n在8到10之間。
Mister和Adams⑸提出了很多的S盒設(shè)計(jì)原則,其中
包括要求S盒滿足SAC和BIC,以及S盒的所有列的全部
線性組合應(yīng)當(dāng)滿足一類稱為bent函數(shù)的高度非線性布爾函
數(shù)。Bent函數(shù)具有很多有趣的特性,其中高度非線性和最
高階的嚴(yán)格雪崩準(zhǔn)則對(duì)于S盒的設(shè)計(jì)尤為重要。
Nyberg^]提出了以下幾種s盒的設(shè)計(jì)和實(shí)踐原則:
□隨機(jī)性:采用某些偽隨機(jī)數(shù)發(fā)生器或隨機(jī)數(shù)表格來(lái)產(chǎn)
生S盒的各個(gè)項(xiàng)。
□隨機(jī)測(cè)試:隨機(jī)選擇S盒各個(gè)項(xiàng),然后按照不同準(zhǔn)則
測(cè)試其結(jié)果。
□數(shù)學(xué)構(gòu)造:根據(jù)某些數(shù)學(xué)原理來(lái)產(chǎn)生S盒。其好處就
是可以根據(jù)數(shù)學(xué)上的嚴(yán)格證明來(lái)抵御差分和線性密碼
分析,并且可以獲得很好的擴(kuò)散(Diffusion)特
性。
?末置換
末置換是初始置換的逆變換。對(duì)L0和Ro進(jìn)行16輪完全
相同的運(yùn)算后,將得到的兩部分?jǐn)?shù)據(jù)合在一起經(jīng)過(guò)一個(gè)末置
換函數(shù)就可得到64位的密文
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)五年汽車性能檢驗(yàn)服務(wù)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年精密金屬制造服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年集成光電子器件企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年旅游服務(wù)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 2025年人教版小學(xué)英語(yǔ)一年級(jí)下冊(cè)期末測(cè)試(附答案)
- 智能制造生產(chǎn)線設(shè)計(jì)與優(yōu)化手冊(cè)(標(biāo)準(zhǔn)版)
- 無(wú)人巡檢機(jī)器人采購(gòu)合同2025年
- 啟程北京:情感表達(dá)與旅行計(jì)劃-小學(xué)五年級(jí)英語(yǔ)教學(xué)設(shè)計(jì)方案
- 2026年委托搬運(yùn)合同
- 市場(chǎng)營(yíng)銷策劃方案案例解析
- 2025年大學(xué)旅游管理(旅游服務(wù)質(zhì)量管理)試題及答案
- 打捆機(jī)培訓(xùn)課件
- 2026年淺二度燒傷處理
- 北京通州產(chǎn)業(yè)服務(wù)有限公司招聘考試備考題庫(kù)及答案解析
- 河北省NT名校聯(lián)合體2025-2026學(xué)年高三上學(xué)期1月月考英語(yǔ)(含答案)
- 2025-2026學(xué)年滬科版八年級(jí)數(shù)學(xué)上冊(cè)期末測(cè)試卷(含答案)
- 途虎養(yǎng)車安全培訓(xùn)課件
- 衛(wèi)生管理研究論文
- 委托市場(chǎng)調(diào)研合同范本
- 畜牧安全培訓(xùn)資料課件
- 2025年度黨支部書(shū)記述職報(bào)告
評(píng)論
0/150
提交評(píng)論