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
Luận văn đầy đủ ở file: Luận văn full