Tải bản đầy đủ (.pdf) (100 trang)

Sử dụng công nghệ cứng hóa FPGA trong mã hóa dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.85 MB, 100 trang )

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


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õ




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


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.


×