TR
NG
I H C THÁI NGUYÊN
I H C CÔNG NGH THÔNG TIN VÀ TRUY N THÔNG
NGUY N H NG NHANH
S
D NG CÔNG NGH C NG HÓA FPGA
TRONG MÃ HÓA D LI U
LU N V N TH C S KHOA H C MÁY TÍNH
THÁI NGUYÊN, N M 2015
TR
NG
I H C THÁI NGUYÊN
I H C CÔNG NGH THÔNG TIN VÀ TRUY N THÔNG
NGUY N H NG NHANH
S
D NG CÔNG NGH C NG HÓA FPGA
TRONG MÃ HÓA D LI U
Chuyên ngành : Khoa h c máy tính
Mã s
: 60 48 01 01
LU N V N TH C S KHOA H C MÁY TÍNH
H
NG D N KHOA H C: TI N S H
THÁI NGUYÊN, N M 2015
V N CANH
L I CAM OAN
Tôi xin cam oan, nh ng n i dung liên quan t i
trong lu n v n là do b n thân t tìm hi u, nghiên c u d
tài
c trình bày
is h
ng d n khoa
h c c a Th y giáo Ti n s H V n Canh.
Các nh n xét, k t lu n
c trích d n
Tôi xin ch u trách nhi m tr
y
theo b n g c.
c pháp lu t l i cam oan c a mình.
H c viên th c hi n
Nguy n H ng Nhanh
L IC M
N
Em xin g i l i c m n chân thành t i các Th y thu c Vi n Công ngh
Thông tin/Vi n Hàn lâm Khoa h c và Công ngh Vi t Nam và Th y Cô giáo
c a Tr
ng
i h c Công ngh Thông tin và Truy n thông/
Nguyên ã t n tình truy n
trình h c t p t i Tr
t cho em nh ng ki n th c quý báu trong su t quá
ng.
Em c ng xin g i l i c m n t i gia ình, b n bè,
ng
i ã th
i h c Thái
ng xuyên
ng viên, khích l giúp
ng nghi p và các
em trong su t quá trình
h c t p c ng nh hoàn thành lu n v n c a mình.
c bi t, em xin g i t i Th y giáo Ti n s H V n Canh - ng
giúp
, t n tình ch b o, h
i ã
ng d n t m cho em trong quá trình làm
tài
v i lòng bi t n và l i c m n sâu s!c. Trong th i gian làm vi c v i Th y, em
không nh ng h c h"i
c nhi u ki n th c b# ích v các ph
hoá và t m quan tr ng c a mã hoá d li u trong th i
c tinh th n làm vi c, thái
ng pháp mã
i ngày nay mà còn h c
nghiên c u khoa h c nghiêm túc c a th y.
M c dù em ã c g!ng hoàn thành
tài v i t$t c n% l c c a b n thân
nh ng ch!c ch!n s& không tránh kh"i nh ng thi u sót. Em kính mong nh n
c s c m thông và t n tình ch b o c a Quý Th y Cô và các b n.
M t l n n a, em xin chân thành c m n !
Thái Nguyên, tháng 10 n m 2015
Nguy n H ng Nhanh
M CL C
Trang
L I CAM OAN
i
L IC M
ii
N
iii
M CL C
DANH M C CH
vi
VI T T!T
DANH M C B NG
vii
DANH M C HÌNH
viii
1
M" #U
Ch$%ng 1
T&NG QUAN V M'T S( H H M T MÃ HI N
1.1. C% s) khoa h c c*a h m+t mã
1.1.1. Yêu c u c b n i v i h mã hóa
1.1.2. Các thành ph n c b n c a h mã hóa
1.1.3. Vai trò c a mã hóa
1.2. H mã hoá khoá , i x-ng
1.2.1. Chu'n mã hoá d li u DES
1.2.1.1. L ch s ra i
1.2.1.2. T#ng quát
1.2.1.3. T o khóa
1.2.1.4. Hoán v kh(i u
1.2.1.5. Mã hóa chi ti t m t vòng
1.2.1.6. Hoán v cu i cùng
1.2.1.7. Gi i mã DES
1.2.1.8.
an toàn c a thu t toán
1.2.2. Chu'n mã hoá nâng cao AES
1.2.2.1. T#ng quan mã hóa AES
2.1.2.2. Phép bi n #i SubBytes và InvSubBytes
2.1.2.3. Phép bi n #i ShiftRows và InvShiftRows
2.1.2.4. Phép bi n #i MixColumns và InvMixColumns
2.1.2.5. Key scheduling
2.1.2.6. Quy trình gi i mã
I
4
4
5
5
6
7
7
7
8
10
12
12
17
17
17
19
19
22
24
25
27
28
1.3. H mã hoá khoá công khai
1.3.1. H mã hóa RSA
1.3.1.1. Khái quát
1.3.1.2. Mô t h mã hoá RSA
1.3.1.3. T o khóa
1.3.1.4. Mã hóa
1.3.1.5. Gi i mã
1.3.1.6. M t s ph ng pháp t$n công
1.3.1.6.1. Ph ng pháp s d)ng *(n)
1.3.1.6.2. Áp d)ng thu t toán phân tích ra th+a s
1.3.1.6.3. B, khóa d a trên t$n công l p l i
1.3.1.7. ánh giá chung
1.3.2. H mã hóa Elgamal
1.3.2.1. Quá trình t o khoá, l p mã và gi i mã
1.3.2.2. ánh giá
an toàn
1.4. K t lu+n ch$%ng
29
30
30
30
31
32
32
33
33
33
34
34
35
35
36
37
Ch$%ng 2
T&NG QUAN V CÔNG NGH FPGA
2.1. C% s) khoa h c c*a các thi t b. kh/ trình
2.2. Khái quát v0 m1t s công ngh c-ng hóa hi n nay
2.2.1. Công ngh ASIC
2.2.2. Công ngh ASSP
2.2.3. Công ngh Configurable Processor
2.2.4. Công ngh DSP
2.2.5. Công ngh MCU
2.2.6. Công ngh RISC/GP
2.3. Công ngh FPGA
2.3.1. Gi i thi u chung v FPGA
2.3.2. T#ng quan v FPGA
2.3.2.1. C$u trúc các FPGA
2.3.2.2. Các kh i lôgic c$u hình (Configurable logic Block)
2.3.2.3. Các ngu n k t n i (Routes)
2.3.2.4. Phân lo i FPGA
2.3.3. Các công ngh l p trình FPGA
2.3.3.1. Công ngh l p trình dùng RAM t-nh
2.3.3.2. Các thi t b l p trình c u chì ngh ch (Anti-fuse)
2.3.3.3. Công ngh l p trình dùng EPROM và EEROM
2.3.3. Các ng d)ng c a FPGA
2.3.3.1. FPGA s d)ng cho các m ch tích h p có ng d)ng c bi t
2.3.3.2. FPGA dùng cho thi t k m ch ng u nhiên
2.3.3.3. FPGA thay th các chíp SSI trong m ch ng u nhiên
39
39
40
40
41
42
42
43
44
46
46
47
47
48
48
48
49
50
51
53
54
55
55
55
2.3.3.4. FPGA ng d)ng cho ch t o m u
2.3.3.5. FPGA ng d)ng cho ch t o máy tính
2.3.3.6. FPGA ng d)ng trong các thi t b tái c$u hình
55
55
56
2.3.4. Thi t k và l p trình cho FPGA
56
2.3.5. T$n công
57
i v i FPGA
2.3.5.1. T$n công ki u h p en
57
2.3.5.2. T$n công ki u
58
cl i
2.3.5.3. T$n công ki u nhái l i
2.3.5.4. T$n công ki u thám ng
2.3.5.5. T$n công v t lý
2.3.5.6. T$n công side channel
2.3.6. Nh n xét chung v FPGA
2.4. K t lu+n ch$%ng
c thi t k chu%i bít
Ch$%ng 3
GI I PHÁP TRI2N KHAI THU T TOÁN AES TRÊN N N FPGA
3.1. Gi/i pháp t3ng quát v0 tri4n khai thu+t toán AES trên n0n FPGA
3.1.1. Mô t l u t#ng quát c a b mã hóa và gi i mã AES
3.1.2. Kh i Data c a b mã hóa
3.1.3. Kh i KeyExpansion
3.1.4. Kh i CPU và kh i Data c a b gi i mã
3.1.5. Thi t k chi ti t các kh i ch c n ng c a b mã hóa
3.1.6. Thi t k các kh i ch c n ng c a b gi i mã
3.1.7. Thi t k chi ti t cho kh i KeyExpansion
3.1.8. Kh i CPU - i u khi n b gi i mã
3.1.9. Kh i giao ti p v i máy tính
3.1.10. S d)ng ch
cài t ECB cho gi i pháp
3.2. Các yêu c u c*a gi/i pháp và ,ánh giá
3.2.1. T c và tài nguyên
3.2.2. C$u trúc ph n c ng FPGA th c hi n AES
3.4. Ch$%ng trình DEMO thu+t toán mã hoá AES
567689 :8;<+=8ch$%ng
58
58
59
59
59
61
62
62
62
63
64
65
67
70
72
73
75
75
78
78
79
82
83
K T LU N
84
TÀI LI U THAM KH O
86
PH L C
DANH M.C CH/ VI0T T1T
AES
Advanced Encryption Standard
ARK
AddRoundKey
ASIC
Application-Specific Integrated Circuit
ASSP
Application-Specific Standard Product
CLB
Configurable Logic Block
DES
Data Encryption Standard
DSP
Digital Signal Processor
EEPROM
Electrically Eraseable Programmable Read Only Memory
EPROM
Eraseable Programmable Read Only Memory
FPGA
Field-Programmable Gate Array
GF(28)
Tr
GPP
General Purpose Processor
HDL
Hardware Description Language
IMC
InvMixColumns
ISB
InvSubBytes
ISR
InvShiftRows
MC
MixColumns
MCU
Microcontroller
MPGA
Mask-Programmable Gate Array
NIST
Institute of Standards and Technology
PAL
Programmable Array Logic
PLA
Programmable Logic Array
PLD
Programmable Logic Device
PROM
Programmable read-only Memory
RISC
Reduced Instruction Set Computer
SB
SubBytes
SR
ShiftRows
VHDL
Verilog Hardware Description Language
ng Galois
DANH M C B NG
B/ng 1.1. Các giai o n mã hoá c a DES
8
B/ng 1.2. S bit
11
c lo i b" khi i qua PC1
B/ng 1.3. S bit d ch chuy n
11
B/ng 1.4. PC2 (hoán v nén)
11
B/ng 1.5. B ng hoán v kh(i
u IP
12
B/ng 1.6. H p E
14
B/ng 1.7. Các h p S
15
B/ng 1.8. Hoán v cu i cùng IP-1
17
B/ng 1.9. B ng th s-box c a AES
24
B/ng 1.10. Tóm t!t các b
36
c t o khoá, mã hoá và gi mã h Enganmal
B/ng 2.1. So sánh x lý tín hi u th i gian th c
45
B/ng 2.2. Các
54
c tính c a công ngh l p trình
DANH M C HÌNH
Hình 1.1. Mô hình mã hóa
6
Hình 1.2. Minh ho h mã hóa khoá
i x ng
7
Hình 1.3. S
t#ng quát mã hóa DES
9
Hình 1.4. S
t o khóa
10
Hình 1.5. Bi u di2n dãy 64 bit x chia thành 2 thành ph n L0,R0
12
Hình 1.6. S
chi ti t m t vòng
13
Hình 1.7. S
ho t
13
ng c a hàm f
Hình 1.8. Hoán v m( r ng
14
Hình 1.9. L u
20
c$u trúc l p c a thu t toán mã hóa AES
Hình 1.10. Mô t State trong thu t toán mã hóa AES
tr n 4x4
c bi u di2n d ng ma
20
>?=@81.11.34 53 367389:3;<3=> >36736 ?3;@A=3B :3?85 ?3?CDA367389:3EFG
21
Hình 1.12. L u
22
th c hi n SB và ISB
Hình 1.13. Bi n #i SubBytes
Hình 1.14. L u
i v i m ng tr ng thái
th c hi n SR
23
25
Hình 1.15. Quá trình x lý MixColumns
25
Hình 1.16. Mô t b
27
c trong Key scheduling
Hình 1.17. Mã hoá v i khóa mã và gi i mã khác nhau
29
Hình 1.18. S
31
thu t toán RSA
Hình 2.1. Mô hình FPGA
47
Hình 2.2. B n lo i FPGA trên th c t
49
Hình 2.3. Công ngh l p trình RAM t-nh
50
Hình 2.4. Công ngh l p trình c u chì ngh ch PLICE
51
Hình 2.5. Công ngh l p trình c u chì ngh ch ViaLink
52
Hình 2.6. Công ngh l p trình EPROM transistor
53
Hình 2.7. Minh h a kh n ng c$u hình l i c a FPGA
60
Hình 3.1. S
kh i t#ng quát h th ng AES
62
Hình 3.2. S
thu t toán kh i data c a b mã hóa
63
Hình 3.3. S
thu t toán kh i KeyExpansion
64
Hình 3.4. S
thu t toán kh i CPU
65
Hình 3.5. S
thu t toán kh i gi i mã - D ng 1
66
Hình 3.6. S
thu t toán kh i gi i mã - D ng 2
67
Hình 3.7. Kh i AddRoundKey
67
Hình 3.8. Kh i SubByte
68
Hình 3.9. Kh i ShiftRow
68
Hình 3.10. Kh i MixColumn
69
Hình 3.11. Kh i Xtime
69
Hình 3.12. Phép bi n #i theo dòng
69
Hình 3.13. Kh i SubMixColumn
70
Hình 3.14. Kh i nhân 09h
70
Hình 3.15. Kh i nhân 0Bh
71
Hình 3.16. Kh i nhân 0Dh
71
Hình 3.17. Phép nhân 0Eh
71
Hình 3.18. Kh i InverseMixColumn
72
Hình 3.19. S
72
kh i KeyExPansion
Hình 3.20. Kh i RotWord
72
Hình 3.21. Kh i SubWord
72
Hình 3.22. Kh i Rcon
73
Hình 3.23. Kh i KeyStorage
73
Hình 3.24. Kh i DemuxKey
73
Hình 3.25. Kh i CPU
74
Hình 3.26. Gi n
th i gian i u khi n vòng key
74
Hình 3.27. Gi n
th i gian i u khi n vòng data
74
Hình 3.28. S
kh i giao ti p v i máy tính
75
>?=@83.29. C8 3 3FHI
76
>?=@83.30.3G 3 3J8 >3B :3?85 ?3?CDA367389:3EFG3?KLA3MNOE
77
M" #U
Nh chúng ta ã bi t, vi c b o m t thông tin ã
c hình thành t+ xa
x a và chúng phát tri n theo s pháp tri n c a xã h i loài ng
i [4]. T+ tr
c
chi n tranh th gi i l n th nh$t, vi c b o m t thông tin “nh y c m” ch y u
là bPng các h m t mã th công.
T+ sau chi n tranh th gi i l n th nh$t và nh$t là t+ sau chi n tranh
th gi i l n th hai
n nay, ã xu$t hi n hàng lo t máy mã
c dùng
b o
m t thông tin t+ các hãng s n xu$t máy mã trên th gi i nh : Cryto - AG,
Greytax (Th)y SQ), BBG (Nh t B n), E10 (Nga), Racal (Anh), Mills (Áo),
Siemens (
c)... ã ph n nào áp ng
c yêu c u b o m t thông tin. Các
máy mã v c b n g m hai y u t t o thành là thu t toán/gi i mã (ph n m m)
và ph n c ng
cài
t thu t toán ó [3].
Hi n nay, các lo i máy mã v n
c dùng r ng rãi ch y u là
b o
m t thông tin trong an ninh, qu c phòng, ngo i giao.... Ru i m c b n c a
các lo i máy mã này, nh$t là các máy mã i n t và vi i n t là t c
có
an toàn thông tin r$t cao [7] [8], nh ng nh
các lo i máy mã là giá thành m%i s n ph'm th
mã ít
mà ng
c s d)ng trong th
c i m c b n c a t$t c
ng !t [3], do ó các lo i máy
ng m i. Trong lúc ó, s hòa nh p c ng
i ta hay g i là “Toàn c u hóa” ã d n
nh ng công ngh mã hóa v+a b o
th
ng
n s bùng n# thông tin và các
m ng truy n thông mang tính toàn c u. Nh v y, vi c nghiên c u
ti n và l i r$t “m m d,o”
nhanh,
a ra
m cho an toàn b o m t thông tin v+a r,
ng d)ng cho an toàn, b o m t thông tin trong
ng m i là c n thi t [7].
Cùng v i s phát tri n c a máy mã, các h m t mã ra
ph n l n các yêu c u
i ã áp ng
t ra trong b o m t thông tin nh DES (Data Encryption
Standard), 3 DES (Triple Data Encryption Standard), AES (Advanced
Encryption Standard), IDEA (International Data Encryption Algorithin)...
thu n l i, các thu t toán mã/gi i mã ó hoàn toàn công khai,
an toàn (v m t
mã) nPm ( vi c gi bí m t khóa mã. Nh v y, các thu t toán mã/gi i mã nêu
trên hoàn toàn áp ng yêu c u
Tuy v y, xét v m c
ng
t ra v b o m t thông tin.
b o m t thông tin thì
i (an toàn thông tin cho th
an toàn m t mã ó ch
(m c
t
ng m i) vì n u khóa mã hóa b
l thì
b o m t hoàn toàn m$t hi u l c, do thu t toán mã hóa
c công
khai hóa. M t khác, do vi c mã hóa và gi i mã b(i các thu t toán trên
c
th c hi n hoàn toàn trên máy tính PC nên b n thông báo c n mã s&
cl u
trong máy PC tr
cl u
c khi nó
c mã hóa và b n thông báo ó c ng
trong máy PC
u cu i sau khi nó
s& l i d)ng nh
c i m này
c khôi ph)c l i (gi i mã), k, t$n công
l$y c!p thông tin m t cách d2 dàng (ta g i ó
là t$n công ti n mã hóa và h u mã d ch) [3].
kh!c ph)c các nh
c i m
nêu trên, nhi u nhà khoa h c ã nghiên c u các công ngh nhPm c ng hóa
các thu t toán nêu trên vì các thu t toán chung và các thu t toán m t mã nói
riêng có th th c hi n
c trên hardware, software hay firmware. Trong ó
hardware bao g m c các linh ki n có ch c n ng c
các linh ki n có ch c n ng l p trình c ng
nh (các ICs logic) l n
c (PLD, ASIC, FPGA....). Tuy
nhiên, trong th gi i hardware có nhi u công ngh khác nhau, trong ó có
chíp FPGA là m t trong nh ng chíp có t c
t i u riêng có th
x lý nhanh và có các
ng d)ng không nh ng trong th
ninh - qu c phòng [6] [7] [8]. Vì nh ng lý do ó, d
giáo Ti n sQ H V n Canh em ã ch n h
c tính
ng m i mà còn trong an
is h
ng d n c a Th y
ng tìm hi u, nghiên c u cho
lu n v n t t nghi p cao h c c a mình là: “S
tài
d ng công ngh c ng hóa
FPGA trong mã hóa d li u”.
- M)c ích c a
tài
+ Tìm hi u phân tích, ánh giá t#ng quan v h m t mã hi n
i và các
công ngh c ng hóa hi n nay, t p trung tìm hi u công ngh FPGA;
+ Trên c s( tìm hi u, phân tích
trên n n công ngh FPGA.
xu$t thu t toán mã hóa tri n khai
Ph m vi c a
tài:
+ Tìm hi u t#ng quan v h m t mã hi n
i;
+ Tìm hi u t#ng quan v công ngh c ng hóa FPGA;
+ Mô t t#ng quát thu t toán mã hoá
c
xu$t tri n khai trên n n
công ngh FPGA.
N i dung c a lu n v n g m: ph n m(
u, ba ch
ng chính, k t lu n
và tài li u tham kh o, c) th :
Ph n m) , u: Nêu lý do ch n
Ch$%ng 1: T&NG QUAN V
tài và b c)c lu n v n
M'T S( H
H
M T MÃ HI N
I
Trong ch
ng này gi i thi u k t qu tìm hi u v lý thuy t h m t mã,
t p trung vào s phát tri n c a H mã hóa khoá
m t) và H mã hóa khoá phi
i x ng (mã hóa khóa bí
i x ng (mã hóa khóa công khai), m t s công
c) toán h c s d)ng trong lý thuy t m t mã liên quan
n lu n v n.
Ch$%ng 2: T&NG QUAN V CÔNG NGH FPGA
N i dung ph n này mô t công ngh c ng hóa FPGA;
ng th i c ng
khái quát hóa m t s công ngh c ng hóa hi n có.
Ch$%ng 3: GI I PHÁP TRI2N KHAI THU T TOÁN AES TRÊN
N N FPGA
H8 A=3A<S3? T3?K5A=3UVS3W A=3=> >3T8DT3?K> A3J8:>3B85'A36738CD3AVA=3
B:C3EFG3?KLA3BXA=3A=8 3MNOE3W :3?KLA3BDB3SL53B 53; 3=> >3T8DT3; >3B8 3
cài
t cho thu t toán mã hóa trên công ngh FPGA.
Ph n k t lu+n: Tóm t!t các k t qu
b$t c p c a
tài và h
ng phát tri n ti p c a
t
c,
c p nh ng h n ch
tài lu n v n.
3
Ch$%ng 1
T&NG QUAN V M'T S( H M T MÃ HI N
Trong ch
hi n
I
ng này gi i thi u k t qu tìm hi u v lý thuy t h m t mã
i, t p trung vào s phát tri n c a H mã hóa khoá
khóa bí m t) và H mã hóa khoá phi
i x ng (mã hóa
i x ng (mã hóa khóa công khai), m t
s công c) toán h c s d)ng trong lý thuy t m t mã liên quan
Mô t tóm l
n lu n v n.
c k t qu tìm hi u m t s thu t toán mã hóa hi n
i th
ng
c s d)ng c ng hóa.
1.1. C% s) khoa h c c*a h m+t mã
Mã hóa là công c) c b n c a vi c
s khai, con ng
m t. Ban
i ã s d)ng nhi u ph
u, m t mã h c
m b o an toàn d li u. Th i kY
ng pháp
b o v các thông tin bí
c s d)ng ph# bi n trong quân
i, qua nhi u
cu c chi n tranh, vai trò c a m t mã ngày càng quan tr ng và mang l i nhi u
thành qu không nh", chúng là n n t ng cho m t mã h c ngày nay.
Ngày nay, các ng d)ng mã hóa và b o m t thông tin ang
cs
d)ng ngày càng ph# bi n trong các l-nh v c khác nhau trên th gi i, t+ các l-nh
v c an ninh, quân s , qu c phòng cho
n các l-nh v c dân s nh th
ng m i
i n t , ngân hàng… V i s phát tri n ngày càng nhanh chóng c a Internet và
các ng d)ng giao d ch i n t trên m ng, nhu c u b o v thông tin trong các
h th ng và ng d)ng i n t ngày càng
c quan tâm và có ý ngh-a h t s c
quan tr ng. Cùng v i s phát tri n c a khoa h c máy tính, các nghiên c u và
ng d)ng c a các chu'n mã hóa ngày càng tr( nên a d ng h n [8].
Hi n nay, có nhi u ph
nh
ng pháp mã hóa, m%i ph
c i m riêng. Tùy theo yêu c u c a môi tr
th dùng ph
ng pháp này hay ph
ph i an toàn tuy t
ng pháp có u,
ng ng d)ng mà ng
i ta có
ng pháp kia. Có nh ng môi tr
ng c n
i b$t k th i gian và chi phí, nh ng có nh ng môi tr
ng
l i c n gi i pháp “dung hòa” gi a b o m t và chi phí. Trong ph m vi lu n v n
c a mình, em t p trung vào 2 dòng mã hoá: H mã hóa khoá
i x ng (mã
hóa khóa bí m t), trong ó ch t p trung vào chu'n mã hóa d li u DES và
Chu'n mã hoá nâng cao AES. Riêng H mã hóa khoá phi
i x ng (mã hóa
khóa công khai), lu n v n c ng ch t p trung vào h mã hoá RSA và Elgamal.
Là nh ng thu t toán ang
c s d)ng r ng rãi hi n nay.
1.1.1. Yêu c u c% b/n , i vAi h mã hóa
- B o m t: Cung c$p s bí m t cho các thông báo
c l u gi bPng
vi c s d)ng các kQ thu t mã hóa.
- B o toàn: Cung c$p s b o
khi g i cho
n khi nh n
m rPng thông báo không b thay #i, t+
c nó.
- Xác th c: Cung c$p hai d ch v):
+ Nh n d ng ngu n g c c a thông tin và cung c$p s b o
m rPng nó
là úng s th c.
+ Ki m tra
c tính c a ng
tính c a h trong tr
ng
i ang
ng nh p h th ng. Ki m tra
ng h p ai ó c g!ng
c
t nhiên k t n i và gi m o là
i s d)ng.
- Tính không ch i b": Cung c$p m t cách xác th c rPng tài li u ã
n
t+ ai ó ngay c khi h c g!ng ch i b" nó.
1.1.2. Các thành ph n c% b/n c*a h mã hóa
M t mã (Cryptography) là khoa h c nghiên c u tìm ra các ph
pháp nhPm b o
Text). Ng
m tính bí m t c a b n tin, còn
c g i là b n rõ (Plain
i mã hóa c n áp d)ng các phép bi n #i c a mình
thành b n mã (Cryptogram). Quá trình bi n
(Encipherment). Quá trình bi n #i ng
là gi i mã (Decipherment).
ó
bi n b n rõ
c g i là mã hóa
c l i t+ b n mã thành b n rõ
cg i
bi n #i quá trình mã hóa và gi i mã ng
làm m t mã luôn dùng khóa. Thông th
pháp tin c y nào ó, mà sau ó ng
mã t c là các b n tin c n
#i
ng
ng khóa
c g i i nh m t ph
i và máy s& s d)ng nó
i
ng
t o ra các b n
cb ov .
M t h mã hóa là m t b 5 (P, C, D, K, E) tho mãn các i u ki n sau.
- P là m t t p h p h u h n các b n rõ (PlainText), nó còn
không gian b n rõ.
c g i là
- C là t p h p h u h n các b n mã (CipherText), nó còn
không gian b n mã. M%i ph n t c a C có th nh n
c g i là
c bPng cách áp d)ng
phép mã hóa Ek lên m t ph n t c a P.
- K là t p h p h u h n các khóa hay còn g i là không gian khóa.
v i m%i ph n t k c a K
gian khóa ph i
(ph
l n
c g i là m t khóa (Key). S l
“k,
ch” không
th i gian
i
ng c a không
th m i khóa
ng pháp vét c n).
- E và D l n l
t là t p lu t mã hóa và gi i mã. V i m%i k c a K có m t
quy t!c mã hóa ek: P C và m t quy t!c gi i mã t
ng ng dk Z D. M%i ek:
P C và dk: C P là nh ng hàm mà: dk(ek(x))=x v i m i b n rõ x Z P.
ab
cd
Plaintext
Encryption
Key
##
##
Ciphertext
Decryption
ab
cd
Key
Plaintext
Hình 1.1. Mô hình mã hóa
1.1.3. Vai trò c*a mã hóa
- Các h mã hóa ph i che d$u
m b o sao cho ch ng
c n i dung c a v n b n rõ (PlainText)
i ch h p pháp c a thông tin m i có quy n truy
c p thông tin, hay nói cách khác là ch ng truy c p không úng quy n h n.
- T o các y u t xác th c thông tin,
th ng
n ng
i nh n h p pháp xác th c.
- T# ch c các s
m o, m o danh
m b o thông tin l u hành trên h
ch ký i n t ,
m b o không có hi n t
g i thông tin trên m ng.
Ru i m l n nh$t c a các h mã hóa là có th
t p c a tính toán mà “k,
i m khác nhau, nh ng nh
ánh giá
ch” ph i gi i quy t bài toán
thông tin c a d li u. Tuy nhiên, m%i h mã hóa
ánh giá
toàn c a m%i h mã hóa mà ta có th
an toàn.
ng gi
c
có th
u có m t s
c
ph c
l$y
c
u và nh
c
ph c t p tính toán, m c
ng d)ng c) th tùy theo yêu c u v
an
1.2. H mã hoá khoá , i x-ng
H mã hóa khoá
i x ng hay mã hóa chia s, khóa là mô hình mã hóa
hai chi u, có ngh-a là ti n trình mã hóa và gi i mã
Khóa này
c chuy n giao bí m t gi a hai
Khóa này có th
hardware. Mã hóa
b
u dùng chung m t khóa.
i t
ng tham gia giao ti p.
c c$u hình trong software ho c
c mã hóa trong
i x ng th c hi n nhanh nh ng có th g p r i ro n u khóa
ánh c!p. Do v y, h mã hoá này yêu c u ng
tho thu n m t khoá tr
c khi thông báo
i g i và ng
i nh n ph i
c g i i, và khoá này ph i
c
gi bí m t.
Ð an toàn c a h mã hoá khoá
EK( P ) = C
B n rõ
và
i x ng ch y u ph) thu c vào khoá.
DK( C ) = P
B n mã
##
##
Mã hoá
Gi i mã
B n rõ
Khoá
Hình 1.2. Minh ho h mã hóa khoá
i x ng
1.2.1. ChuBn mã hoá dC li u DES
1.2.1.1. L.ch sD ra ,Ei
Chu'n mã hoá d li u DES (Data Encryption Standard), ra
nh ng n m 1970, ti n s- Horst Feistel ã
hóa DES v i ph
t n n móng
i kho ng
u tiên cho chu'n mã
ng pháp mã hóa Feistel Cipher. Vào n m 1976, C quan
B o m t Qu c gia Hoa KY (NSA) ã công nh n DES d a trên ph
Feistel là chu'n mã hóa d li u. Kích th
nh ng t i b n công b FIPS kích th
x lý và
c
c khóa ban
ng pháp
u c a DES là 128 bit
c rút xu ng 56 bit
t ng t c
a ra các tiêu chu'n thi t k m t chu'n mã hóa d li u.
DES th c hi n mã hóa d li u qua 16 vòng l p mã hóa, m%i vòng s
d)ng m t khóa chu kY 48 bit
c t o ra t+ khóa ban
DES s d)ng 8 b ng hPng s s-box
thao tác.
u có
dài 56 bit [1].
1.2.1.2. T3ng quát
B/ng 1.1. Các giai o n mã hoá c a DES
TT
N1i dung
Th c hi n
Giai o n 1
B n rõ ch
Giai o n 2
B n rõ s
Giai o n 3
64 bit rõ s
====
Giai o n 4
Các o n 64
bit mã s
====
(K t n i)
Giai o n 5
B n mã s
====
====
====
(Chia thành)
K t qu/
B n rõ s (r ng nh phân)
Các o n 64 bit rõ s
64 bit mã s
B n mã s
(d ng nh phân)
B n mã ch
Qua b ng trên cho th$y, thu t toán DES t p trung th c hi n Giai o n
3 c a qui trình mã hóa.
ó là chuy n #i b n rõ s v i 64 bit thành b n mã
v i 64 bit.
Ph
có
ng pháp DES mã hóa kh i thông tin x có
dài 56 bit thành kh i y có
N n t ng
dài 64 bit v i khóa k
dài 64 bit.
xây d ng kh i c a DES là s k t h p
n gi n c a các kQ
thu t thay th và hoán v b n rõ d a trên khóa, ó là vòng l p. DES s d)ng
16 vòng l p áp d)ng cùng m t ki u k t h p các kQ thu t trên kh i b n rõ.
Thu t toán ch s d)ng các phép toán s h c và logic thông th
ng trên
các s 16 bit, vì v y nó d2 dàng th c hi n vào nh ng n m 1970 trong i u
ki n v công ngh ph n c ng lúc b$y gi .
Plaintext
IP
L0
R0
ƒ
K
L1=R0
R1=L0⊕ƒ(R0,K1)
ƒ
K
L2=R1
R2=L1⊕ƒ(R1,K2)
L15=R14
R15=L14⊕ƒ(R14,K15
)
ƒ
R16=L15⊕ƒ(R15,K16
)
K16
L16=R15
IP -1
Ciphertext
Hình 1.3. S
t#ng quát mã hóa DES
Quá trình có 16 vòng th c hi n gi ng nhau trong quá trình x lý. Ngoài
u IP và cu i IP-1, hai hoán v này
ra có hai l n hoán v
m)c ích
c s d)ng v i
a thông tin vào và l$y thông tin ra.
Mu n vào vòng mã hóa thì kh i thông tin x ban
u 64 bit
c chia
làm hai kh i, m%i kh i 32 bit. Hàm f làm bi n #i m t n a c a kh i ang x
lý v i m t khóa con t
Trong
ng ng v i vòng mã hóa.
u ra c a hàm có hàm f
phép toán XOR và hai ph n
c trao #i
c k t h p v i n a kh i còn l i bPng
x lý trong chu trình k ti p.
C th c hi n các vòng nh v y cho t i vòng cu i cùng thì hai ph n
không b trao #i n a, chính vì i u này mà quá trình mã hóa và gi i mã là
gi ng nhau.
1.2.1.3. TFo khóa
Quá trình mã hóa
Ki. Nh v y, t+ khóa ban
c th c hi n 16 vòng, m%i vòng sinh ra 1 khoá con
u t o ra 16 khóa con cho 16 vòng l p t
Hình 1.4. S
t o khóa
ng ng.
Theo s
ta th$y
u tiên khóa K có
dài 64 bit, sau ó
c gi m
xu ng 56 bit bPng cách lo i b" 8 bit (( các v trí 8, 16, 24, 32, 40, 48, 56, 64).
S lo i b"
c th c hiên khi i qua PC1 và 8 bit này dùng cho vi c ki m tra
ch[n l, mà không dùng vào vi c sinh các khoá con.
B/ng 1.2. S bit
C1t
[0]
[1]
[2]
[3]
[0]
57
10
63
14
[1]
49
2
55
6
[2]
41
59
47
61
[3]
33
51
39
53
[4]
25
43
31
45
[5]
17
35
23
37
c lo i b" khi i qua PC1
Hàng
[6] [7]
9
1
27 19
15
7
29 21
[8]
58
11
62
13
[9] [10] [11]
50 42 34
3
60 52
54 46 38
5
28 20
[12]
26
44
30
12
[13]
18
36
22
4
Nh v y các bit ( v trí 8, 16, 24, 32, 40, 48, 56, 64 b lo i b" và 56 bit
thu
c chia làm hai ph n, m%i ph n 28 bit, các ph n
nhau. Các ph n này
c x lý
cl p
c d ch 1 hay 2 bit ph) thu c vào vòng ó. S bit d ch
c cho trong b ng sau.
B/ng 1.3. S bit d ch chuy n
1
Vòng
S bit d.ch 11
2
2
3
2
4
2
5
2
6
2
7
2
Sau khi d ch bit, 56 bit này
8
2
9
1
10 11 12 13 14 15 16
2 2 2 2 2 2 1
c ch n ra 48 bit. B(i vì s th c hi n #i
ch% th t các bit nh là s l a ch n m t t p con các bit, nó còn
c g i là
hoán v nén ho c hoán v l a ch n. S th c hi n này cung c$p m t t p h p
các bit cùng c v i
u ra c a hoán v m( r ng. B ng PC2
nh ngh-a hoán v
nén (c ng g i là hoán v l a ch n). Ví d), bit ( v trí 33 c a khóa
chuy n t i v trí 35 c a
c d ch
u ra và bit ( v trí 8 c a khóa b b" qua.
B/ng 1.4. PC2 (hoán v nén).
C1t
Hàng
[5]
[6]
[0]
[1]
[2]
[3]
[4]
[7]
[8]
[9]
[10]
[11]
[0]
14
17
11
24
1
5
3
28
15
6
21
10
[1]
23
19
12
4
26
8
16
7
27
20
13
2
[2]
41
52
31
37
47
55
30
40
51
45
33
48
[3]
44
49
39
56
34
53
46
42
50
36
29
32
Nh v y sau khi i qua PC2 còn l i 48 bit, 48 bit này s&
làm khóa K1
c s d)ng
s d)ng trong vòng mã hóa.
Hai ph n, m%i ph n 28 bit sau khi
d ch bit ( l n th 2 và qua b ng PC2
c d ch bit ( l n th nh$t, ti p t)c
hoán v nén 48 bit và làm K2.
Quá trình c ti p t)c nh v y ta thu
c 16 khóa Ki (i=1…16).
1.2.1.4. Hoán v. kh)i , u
M)c ích c a hoán v kh(i
u là #i ch% các bit c a kh i d li u vào
thông qua b ng IP. Nó không nh h (ng
n s an toàn c a DES.
B/ng 1.5. B ng hoán v kh(i
C1t
u IP.
Hàng
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
[0] 58 50 42 34 26 18 10
2
60
52
44
36
28
20
12
4
[1] 62 54 46 38 30 22 14
6
64
56
48
40
32
24
16
8
[2] 57 49 41 33 25 17
9
1
59
51
43
35
27
19
11
3
[3] 61 53 45 37 29 21 13
5
63
55
47
39
31
23
15
7
V i kh i d liêu vào x 64 bit cho tr
c, m t xâu bit x0 s&
d ng bPng cách hoán v các bit c a x theo phép hoán v c
Ta vi t x0=IP(x)=L0R0 trong ó L0 g m 32 bit
nh ban
c xây
u IP.
u và R0 g m 32 bit cu i.
Hình 1.5. Bi u di2n dãy 64 bit x chia thành 2 thành ph n L0,R0
1.2.1.5. Mã hóa chi ti t m1t vòng
Quá trình x lý các vòng là gi ng nhau, ta xét quá trình x lý c a m t
vòng i v i 1≤ i ≤ 16.
⊕
Hình 1.6. S
chi ti t m t vòng
Ta th$y: Li = Ri-1
Ri =Li-1 ⊕ f(Ri-1,Ki)
Hàm f có hai tham s là Ri-1 và Ki và
Ri-1
sau:
Hình 1.7. S
ho t ng c a hàm f
c m( r ng t+ 32 bit thành 48 bit nh s thay #i th t c a các
bit bPng cách l p l i m t s bit nào ó và
r ng.
c th c hi n theo s
c hi u nh là m t s hoán v m(
xác
trí nào c a
nh (
u vào có 32 bit, bit nào
u ra 48 bit ng
i ta xác
c l p l i và xu$t hi n t i v
nh nh sau:
u vào có 32 bit chia làm 8 b , m%i b có 4 bit. Bit
cu i cùng c a m%i b t
u tiên và bit
ng ng v i 2 bit c a kh i d li u ra, trong khi bit th
2 và bit th 3 c a m%i b t
ng ng v i m t bit ( kh i d li u ra. Ví d), bit (
v trí th 3 c a kh i d li u vào
c chuy n t i v trí th 4 trong kh i d li u
ra, bit th 8 trong kh i d li u vào thì
c chuy n t i v trí 11 và 13 trong
kh i d li u ra.
B/ng 1.6. H p E.
C1t
[0]
[1]
[2]
[3]
[0]
32
8
16
24
[1]
1
9
17
25
[2]
2
10
18
26
[3]
3
11
19
27
[4]
4
12
20
28
Hàng
[5]
[6]
5
4
12
12
21
20
29
28
[7]
5
13
21
29
[8]
6
14
22
30
[9]
7
15
23
31
[10]
8
16
25
32
[11]
9
17
25
1
Hình 1.8. Hoán v m( r ng
Nh v y 16 bit c a Ri
c hoán v hai l n. M c dù kh i d li u ra
r ng h n kh i d li u vào, nh ng m t kh i d li u vào ch có duy nh$t m t
kh i d li u ra.