




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
密碼編碼學與網絡安全電子工業出版社2006
-
2007第一頁,共六十一頁。第3章對稱算法DES3.1
分組密碼算法原理3.2
DES算法3.3
DES強度↓↓↓3.4差分分析和線性分析↓3.5
分組密碼設計原理*
3.A
DES
in
/etc/passwd↓↓*
3.B
DES
in
OpenSSL↓第二頁,共六十一頁。密碼技術發展
1918,William
F.
Friedman,The
Index
of
Coincidenceand
Its
Applications
in
Cryptography
1949,Claude
Shannon,The
Communication
Theoryof
Secrecy
Systems1967,David
Kahn,The
Codebreakers1970s,NBS/NIST,DES
(90s,
AES)1976,Diffie,
Hellman,New
Directory
in
Cryptography
1984,C.H.
Bennett,Quantum
Cryptography:
PublicKey
Distribution
and
Coin
Tossing1985,N.
Koblitz,Elliptic
Curve
Cryptosystem2000,AES第三頁,共六十一頁。3.1分組密碼算法原理分組密碼算法Block
Cipher明文被分為固定長度的塊(即分組),對每個分組用相同的算法和密鑰加解密分組一般為n=64比特,或更長(Padding)密文分組和明文分組同樣長對某個密鑰可以構造一個明密文對照表Codebook
(Substitution
Table)所以分組的長得至少64比特才好密鑰空間2^k<<可逆映射個數(2^n)!第四頁,共六十一頁。序列密碼算法(流密碼算法)流密碼算法Stream
Cipher每次可以加密一個比特適合比如遠程終端輸入等應用流密碼可用偽隨機數發生器實現密鑰做為隨機數種子,產生密鑰流keystream(不重復,或極大周期)XOR
(plaintext,key-stream
)One-time
Pad第五頁,共六十一頁。比較基本區別粒度
8字節分組vs.
1比特或1字節各自適應不同的應用數據格式Padding對相同的明文分組,總是輸出相同的密文分組;而流密碼卻輸出不同的密文比特流密碼一般快很多分組密碼多些,是主流分組密碼也可以用作流模式安全性對比第六頁,共六十一頁。Block
Cipher
Principles0000
11100001
01000010
11010011
00010100
00100101
11110110
10110111
10001000
00111001
10101010
01101011
11001100
01011101
10011110
00001111
01110000
11100001
00110010
01000011
10000100
00010101
11000110
10100111
11111000
01111001
11011010
10011011
01101100
10111101
00101110
0000乘積密碼:重復使用代替和置換,實現混亂和擴散。第七頁,共六十一頁。Feistel(DES)加密框架明文分組的長n=2w –分左右兩半L0
R0密鑰K產生子鑰:K→k1,k2,…,kr–r是輪數,比如16輪⊕是異或函數XOR–
p⊕x⊕x
=
p函數F是散列混亂函數–可以是手工精心構造的查表函數第八頁,共六十一頁。Feistel網絡?第九頁,共六十一頁。Feistel解密?第十頁,共六十一頁。Feistel
–
‘for’
Loop加密計算序列L0=左半L1=R0R0=右半R1=L0⊕F(k1,R0)L2=R1
R2=L1⊕F(k2,R1)L3=R3
R3=L2⊕F(k3,R2)…Ri=Li-1⊕F(ki,Ri-1)Li=Ri-1…Ln=Rn-1Rn=Ln-1⊕F(kn,Rn-1)密文即(Ln,Rn)解密計算第十一頁,共六十一頁。2輪解密舉例
假設n=2輪,C
=(L2,R2)加密明文=半+半=L0+R0L1=R0
R1=L0⊕F(k1,R0)L2=R1
R2=L1⊕F(k2,R1)解密密文=半+半=L2+R2R1=L2
L1=R2⊕F(k2,R1)R0=L1
L0=R1⊕F(k1,R0)明文=L0+R0L1=R2⊕F(k2,R1)=L1⊕F(k2,R1)⊕F(k2,R1)=L1L0=R1⊕F(k1,R0)=L0⊕F(k1,R0)⊕F(k1,R0)=L0第十二頁,共六十一頁。Feistel偽代碼m:0,
1i,
i+1
<-
kir,
r+1
<-
kr明文m長度n=2t,記為m0m1,每個長度為t密鑰k產生r個子密鑰k1,k2
,...,kr加密Efor
i=2
to
r+1
domi=mi-2
XOR
f(mi-1,
ki-1)得密文(mr,mr+1)解密Dfor
i=r
to
1
domi-1=mi+1
XOR
f(mi,
ki)或for
i=r-1
to
0
domi=mi+2
XOR
f(mi+1,
ki+1)=mi
XOR
f(mi+1,
ki+1)
XOR
f(mi+1,
ki+1)=mi唯一的非線性結構就是F可以重復使用兩個變量即可第十三頁,共六十一頁。Feistel參數特性分組大小密鑰大小循環次數一般僅幾輪是不夠的,得十幾輪才好,如16輪子鑰產生算法越復雜越好輪函數Round關鍵其他考慮速度(尤其是軟件實現的速度)便于分析(使用簡潔的結構)第十四頁,共六十一頁。Feistel類算法舉例DES、CAST、Blowfish/(Twofish?)、RC6(/5)不是Feistel結構的AES、IDEA*絕大數分組密碼屬于或類似Feistel結構多輪每輪有XOR(或能恢復的操作)輪函數第十五頁,共六十一頁。3.2
DESData
Encryption
Standard1971
IBM
Horst
Feistel—Lucifer→DES,key由128bit→56bit1973
NBS,77
NIST
FIPS-46-NBS/NIST、IBM、NSA1994最后一次延長到1999年-AES取代之參數Feistel體制分組密碼分組大小64bit,密鑰大小56bit,輪數16輪S-Boxes
*第十六頁,共六十一頁。DES?第十七頁,共六十一頁。密鑰置換選擇-1Key
Permuted
Choice
One
(PC-1)57
49
41
33
25
17
9
81
58
50
42
34
26
18
1610
2
59
51
43
35
27
2419
11 3
60
52
44
36
327×8K的56比特重新排列,成為C0D01 2
3
4
5
6
7
89
10
11
12
13
14
15
1617
18
19
20
21
22
23
2425
26
27
28
29
30
31
3233
34
35
36
37
38
39
4063
55
47
39
31
23
15
4041
42
43
44
45
46
47
487
62
54
46
38
30
22
4849
50
51
52
53
54
55
5614
6
61
53
45
37
29
5657
58
59
60
61
62
63
6421
135
28
20
124
64第十八頁,共六十一頁。Keyi
(48bit)C0D0…C15D15第十九頁,共六十一頁。PC-2141711241
5
3
28156211023
19
12
426816727
20
13
24152313747
55
30
408×6未入選的:9、18、22等51
45
33
48
44
49
39
5634
53
46
42
50
36
29
32Round
number
1
2
3
4
5
67
8910111213141516Bits
rotated
1
1
2
2
22
22
1
2
2
2
2
2
21每輪從56比特中選取48比特即為Ki,并同時左移第二十頁,共六十一頁。初始置換及逆置換Initial
Permutation
(IP/IP-1)63
55
47
39
31
23
15
758
50
42
34
26
18
10240848
16
56
24
64
3260
52
44
36
28
20
12439747
15
55
23
63
3162
54
46
38
30
22
14
638646
14
54
22
62
3064
564840322416837545135321612957
49413325179136444125220602859
514335271911335343115119592761
534537292113534242105018582633
1
41
9
49
17
57
25初始明文按照IP重排;16輪后的密文按照IP-1重排即為最后密文oddeven第二十一頁,共六十一頁。輪One
Round?第二十二頁,共六十一頁。擴展置換Expansion
Permutation?32
1
2
3
4
545678
989101112
131213141516
171617181920
212021222324
252425262728
292829303132
1Ri的32bit
→48bit兩邊的是重復選中的6×8第二十三頁,共六十一頁。輪函數Round
Function?第二十四頁,共六十一頁。S盒S-Boxes:1/4兩邊2比特選擇行號中間4比特選擇列號第二十五頁,共六十一頁。S-Boxes:5-8第二十六頁,共六十一頁。從S盒出來后重排:Permutation
FunctionP
8×416 7
20
21
29
12
28
171 15
23
26 5
18
31
102 8
24
14
32
27
3
919
13
30 6
22
11 4
25第二十七頁,共六十一頁。DESReview第二十八頁,共六十一頁。一個DES計算實例p=0123456789ABCDEFk=133457799BBCDFF1?……??c=85E813540F0AB405第二十九頁,共六十一頁。3.3
DES安全強度對DES的爭議集中在密鑰空間太小
Key
space從Lucifer的2^128降到DES的2^56DES
Challenge
III,
22
hours
15
minutesS盒S-BoxesS盒的設計準則?陷門?trapdoors
by
NSA(?)
“Form
surprise
to
suspicion”從驚喜(甚至能夠抵御很后來才發現的各種攻擊)
到懷疑(n年前就如此厲害的NSA現在究竟有多厲害)第三十一頁,共六十一頁。密鑰大小Key
Size第三十二頁,共六十一頁。窮舉(蠻力)攻擊Cost/Time表第三十三頁,共六十一頁。“Deep
Crack”
Hardware
CrackerDeveloped
by
theElectronic
Frontier
FoundationCost
US$210,000–
$80,000
design–
$210,000
materials
(chips,
boards,
chassis
etc)第三十四頁,共六十一頁。VLSI
Chip
Developed
by
AdvancedWireless
Technologies24
search
units
per
chip40
MHz16
cycles
per
encryption2.5
million
keys/sBoard
contains
64
chips6
cabinets
holding
29
boards第三十五頁,共六十一頁。Deep
Crack
System90
billion
keys/s37,000
search
unitsc.f.
Distributed
Net’s
34
billion
keys/sControlled
by
PCchecks
possible
all
ASCII
candidate
solutionsfrom
the
search
unitsSolved
RSA’s
DES-III
in
22
hoursJan
18,
1999第三十六頁,共六十一頁。蠻力攻擊對明文內容的要求*問題:如何辨別出來?對給定的某個密文,任何一個密鑰都可以解密出一個可能的明文,但是其中應該只有一個是正確的明文。必須事先知道明文的結構,比如已經知道這是文字文本、源程序(圖像、聲音、壓縮的?)如果有兩個密鑰,解密出來的兩個明文都有意義?可能性極小因為密鑰空間2^k<<可逆映射個數(2^n)!One
time
pad就是讓對手分辨不出哪個更像正確明文第三十七頁,共六十一頁。S盒特性SizeInput
N
×
output
M8×32,but
DES
6×42^N
→
M
bitsin
contrast
to
DES’s
2^2×2^4→4NonlinearBent
functionS-boxes’
evolutionBlowfish,
but
DES’s
is
man-madeavoid
analyze
in
advance第三十八頁,共六十一頁。AvalancheEffect
in
DES(A)P1:00000…0
(64bit)P2:10000…0(相差1bit)K
:0000001
10010110100100
11000100011100
00110000011100
0110010(B)K1:…(56bit)K2:…(相差1bit)P
:…(64bit)第三十九頁,共六十一頁。DES弱密鑰DES弱密鑰:4(子密鑰相同)0101
0101
0101
01011F1F
1F1F
E0E0
E0E0E0E0
E0E0
1F1F
1F1FFEFE
FEFE
FEFE
FEFE0000000
0000000eq 0000000
FFFFFFFFFFFFFF
0000000FFFFFFF
FFFFFFFDES 半弱密鑰:12(兩個子密鑰,互為加解密)01FE
01FE
01FE
01FE1FE0
1FE0
0EF1
0EF101E0
01E0
01F1
01F1FE01
FE01
FE01
FE01E01F
E01F
F10E
F10Evs E001
E001
F101
F1011FFE1FFE0EFE0EFEFE1FFE1F
FE0E
FE0E011F011F010E010E1F011F01
0E01
0E01E0FE
E0FE
F1FE
F1FEFEE0
FEE0
FEF1
FEF1DES可能的弱密鑰:24(四個子密鑰)–…第四十頁,共六十一頁。3.4差分分析和線性分析蠻力攻擊計時攻擊差分分析線性分析–正面分析密碼算法的新技術,在很多算法上取得很好的效果第四十一頁,共六十一頁。差分分析Differential
CryptanalysisBiham,
Shamir
(‘S’)–
1991?
NSA,1974攻擊實例–對8輪DES,只需微機幾分鐘–對16輪DES,復雜度為2^47需這么多的選擇明文,使本方法只有理論意義Differential
Cryptanalysis
of
the
Full
16-round
DES第四十二頁,共六十一頁。線性分析Linear
Cryptanalysis第四十三頁,共六十一頁。DES其他DES肯定能破譯不單是RSA
challengeDES算法仍值得信賴但是關鍵場合不要用DES對一般個人用戶仍是安全的RSA
challenge反而給了信心DES還是AES,或者其他DES模塊仍廣泛存在,AES還沒有普及如果軟件實現,任何一個經過考驗的算法都好DES/3DES、AES、RC4、RC5、IDEA、BlowfishFree/Open第四十四頁,共六十一頁。3.5分組密碼的設計原理DES
Design
Criteria設計準則as
reported
by
Coppersmith
in
[COPP94]7
criteria
for
S-boxes
provide
fornon-linearityresistance
to
differential
cryptanalysisgood
confusion3
criteria
for
permutation
P
provide
forincreased
diffusion第四十五頁,共六十一頁。分組密碼設計原理輪數輪函數FS盒雪崩效應密鑰使用方法子鑰衍生方法雪崩效應第四十六頁,共六十一頁。輪函數F及S盒的設計strict
avalanche
criterionbit
independence
criterion輪函數F雪崩效應準則獨立準則S盒構造方法隨機方法隨機加測試方法人工構造方法數學構造方法?第四十七頁,共六十一頁。查閱和學習第四十八頁,共六十一頁。3.A
DES
in
/etc/passwdfile
‘passwd’
formatusername:passwd:UID:GID:full_name:directory:shell{From
Shadow-Password-HOWTO}account:password:UID:GID:GECOS:directory:shell{From
RH8}shadow/etc/passwd
passwd
--->
*/etc/shadow
passwdusername:passwd:last:may:must:warn:expire:disable:reservedsampleusername:Npge08pfz4wuk:503:100:FN:/home/username:/bin/shusername:x:503:100:FN:/home/username:/bin/shusername:Npge08pfz4wuk:9479:0:10000::::1/22/2第四十九頁,共六十一頁。crypt()函數crypt#define
_XOPEN_SOURCE#include
<unistd.h>char
*crypt(const
char
*key,
const
char
*salt);passwd
space–128-32-’7f’=95個可用字符–
95^nsalt兩個字符,每個可從[a-zA-Z0-9./]中選出來,即有
4096種不同取值抵制字典攻擊中的預算值第五十頁,共六十一頁。crypt()描述從passwd到keypadding形成8字符的組每組產生56bits=8×7的密鑰如果多于1組,則XOR累計重復加密64比特0到25回–中間置換,受salt控制,計有4096種不同的置換輸出2+1字符2字符是明碼salt11字符是編碼后的DES的64bits輸出密文第五十一頁,共六十一頁。crypt()
Fig?第五十二頁,共六十一頁。Passwd
Cracker第五十三頁,共六十一頁。Zip
cracker
sampleAdvanced
ZIP
Password
Recovery
statistics:Encrypted
ZIP-file:
sdjfks.zipTotal
passwords:
2,091,362,752Total
time:
6m
58s
725msAverage
speed
(passwords/s):
4,994,597Password
for
this
file:
7uee23Password
in
HEX:
37
75
65
65
32
33第五十四頁,共六十一頁。3.B
DES
in
OpenSSL
DES算法很復雜,實現起來非常瑣碎,在性能和移植性上也難于友好,因此如果軟件實現提倡使用開放源碼的實現,如OpenSSL等。
OpenSSL是SSL/TLS協議的開放實現,其中也實現了幾十種密碼算法。
OpenSS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北師大版(2024)八年級上冊第五章 二元一次方程組6 二元一次方程與一次函數教案
- 城農產品批發綜合市場項目發展前景分析報告
- 室內裝修標準國家規范
- 工程應聘簡歷模版
- 人事部在危機管理中的角色計劃
- 公共政策與經濟關系2025年國際金融理財師考試試題及答案
- 健全風險控制的年度工作框架計劃
- 急診文書書寫規范的培訓方式計劃
- 制定前臺工作月度總結報告計劃
- 會展現場管理案例分析與策略
- T-CECS120-2021套接緊定式鋼導管施工及驗收規程
- 2024年湖北省武漢市高考數學一調試卷
- 施工單位人員退場制度
- 漢譯巴利三藏相應部3-蘊篇
- 建筑外窗抗風壓性能計算書
- 年產萬噸酒精發酵車間設計
- 生物化學與分子生物學人衛版教材全集
- 照片里的故事
- 土木工程畢業設計框架結構教學樓計算書
- 整理【越南】環境保護法
- 河北工業大學碩士生指導教師(含新申請者)簡況表.
評論
0/150
提交評論