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

Chuẩn mật mã hóa dữ liệu des và ứng dụng

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.23 MB, 26 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

TIỂU LUẬN
MƠN HỌC

AN NINH MẠNG VIỄN THƠNG
Đề tài: CHUẨN MẬT MÃ HĨA DỮ LIỆU DES
VÀ ỨNG DỤNG


Bài thi cuối kỳ mơn An Ninh Mạng

PHÂN CƠNG CƠNG VIỆC

Tên thành viên

Cơng việc chung

Cơng việc riêng

- Vẽ hình
- Phụ trách rà soát
nội dung lần cuối
Format và tổng kết
Word

- Tất cả thành viên trong nhóm đều gặp
trực tiếp làm tiểu luận kết thúc môn
chung
- Làm lần lượt nội dung theo đề cương
đã nộp cho giảng viên


(không chia tách riêng lẻ)

- Phụ trách nội
dung tìm và phân
tích ví dụ lần 1

- Vẽ hình
- Phụ trách rà sốt
nội dung lần 2


Bài thi cuối kỳ môn An Ninh Mạng

LỜI CAM ĐOAN
Ngày nay, công nghệ thông tin và truyền thông là một lĩnh vực tất
yếu đối với sự phát triển của thế giới. Mạng máy tính thì ngày càng trở
nên phổ biến. và phát triển kéo theo đó là nhiều dịch vụ như thư điện
tử, giao dịch ngân hàng, thương mại điện tử,...
Cùng với sự phát triển đó, các vấn đề về an toàn mạng, an ninh dữ
liệu ngày càng trở nên quan trọng. Có nhiều nghiên cứu về các thuật
tốn với mục đích bảo tồn thơng tin, bảo mật dữ liệu. Một trong số đó
là thuật tốn Tiêu chuẩn mật mã hóa dữ liệu (DES). Tiêu chuẩn này
được đưa ra năm 1977 bởi Viện tiêu chuẩn và kỹ thuật quốc gia Hoa
Kỳ (NIST). Để tìm hiểu về vấn đề này, nhóm em đã làm rõ một số vấn
đề như sau:
I. Tổng quan về Chuẩn mật mã hóa dữ liệu DES
II. Đặc điểm, cấu trúc, thuật tốn mã hóa, giải mã DES
III. Ứng dụng của DES
IV. Độ an toàn của DES
Tuy nhiên với sự phát triển của công nghệ ngày nay, DES khơng

cịn đảm bảo độ an tồn tuyệt đối, nhưng nó vẫn là cơ sở cho những tiêu
chuẩn mật mã hóa tiên tiến sau này.
Bài tiểu luận này có thể khơng tránh khỏi một số sai sót do có sự kết
hợp của nhiều nguồn tài liệu khác nhau, kính mong cơ xem và góp ý để
bài tiểu luận của chúng em được hồn thiện hơn.
Nhóm em xin chân thành cảm ơn!


Bài thi cuối kỳ môn An Ninh Mạng

MỤC LỤC
I.

Tổng Quan ...............................................................................................................1

II.

Chuẩn mật mã hoá dữ liệu DES ..............................................................................1
1.

Đặc điểm. .............................................................................................................1

2.

Cấu trúc DES .......................................................................................................1

3.

Thuật toán mã hoá dữ liệu ...................................................................................2
3.1. Sơ đồ thuật toán ................................................................................................2

3.2. Hoán vị khởi tạo ...............................................................................................3
3.3. Hàm mã hóa f (R,k) ..........................................................................................3
3.3.1. Hàm Expand ..............................................................................................4
3.3.2. Hàm S-boxes .............................................................................................4
3.3.3. Hàm P-box .................................................................................................7
3.4. Tạo khóa ...........................................................................................................7
3.5. Hốn vị kết thúc (IP-1) .....................................................................................9
3.6. Ví dụ về mã hóa DES .......................................................................................9

4.

Thuật toán giải mã dữ liệu .................................................................................14

5.

Hiệu ứng lan truyền ...........................................................................................14

III.

Ứng dụng của DES ............................................................................................15

1.

Ứng dụng giao dịch ngân hàng ..........................................................................15

2.

Ứng dụng vào thi tuyển đại học ........................................................................16

IV.


Độ an toàn của DES ..........................................................................................18

1.

Tấn cơng vét cạn khóa (Brute-Force Attack) ....................................................18

2.

Phá mã DES theo phương pháp vi sai (Differential Cryptanalysis) ..................18

3.

Phá mã DES theo phương pháp tuyến tính........................................................18

V.
VI.

Kết luận..................................................................................................................19
Tài liệu tham khảo .............................................................................................19


Bài thi cuối kỳ mơn An Ninh Mạng
DANH MỤC HÌNH
Hình 1: Cấu trúc của DES ...............................................................................................2
Hình 2: Sơ đồ giải thuật mã hóa DES .............................................................................2
Hình 3: Minh họa một vịng Feistel của DES .................................................................3
Hình 4: Hốn vị mở rộng .................................................................................................4
Hình 5: Mơ tả hàm S-box ................................................................................................5
Hình 6: Quy tắc hàm S- box ............................................................................................5

Hình 7: Sơ đồ thuật tốn tạo khóa ...................................................................................8
Hình 8: Minh họa các Bước mã hóa và giải mã PIN Block ..........................................16
Hình 9: Sơ đồ thực hiện giải bài toán ............................................................................17


Bài thi cuối kỳ môn An Ninh Mạng
DANH MỤC BẢNG
Bảng 1: Ví dụ hiệu ứng lan truyền ................................................................................14


Bài thi cuối kỳ môn An Ninh Mạng

I. Tổng Quan
Data Encryption Standard (DES), hay còn gọi là “Tiêu chuẩn Mã hóa Dữ liệu”.
Được cơng nhận vào năm 1977 bởi viện nghiên cứu quốc gia về chuẩn của nước Mỹ là
NIST. Sau này chuẩn này đã được sử dụng rất rộng rãi trên phạm vi toàn thế giới.
Với việc ứng dụng mã hóa vào việc truyền thơng tin trên mạng, mã hóa thơng tin là rất
cần thiết, góp phần đảm bảo sự tồn vẹn và bảo mật, xác thực cho thơng điệp cần gửi đi
qua mạng Internet.
Bài viết này tôi sẽ giới thiệu cho các bạn về thuật tốn mã hóa DES.
Hiện nay thì DES đã được xem là khơng cịn đủ an toàn cho nhiều ứng dụng.
Nguyên nhân gây ra chủ yếu là độ dài 56bit của khóa là quá nhỏ. Khóa mã hóa DES đã
và từng bị phá trong vịng chưa đầy một ngày. Đã có nhiều kết quả đã phân tích chỉ
những điểm yếu về mặt lý thuyết của mã hóa dẫn đến phá khóa, tuy chúng khơng khả
thi trong thực tiễn. Thuật toán được tin tưởng là an tồn trong thực tiễn có dạng Triple
DES (thực hiện DES ba lần), mặc dù trên lý thuyết phương pháp này vẫn có thể bị phá.
Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu
chuẩn Mã hóa Tiên tiến).

II. Chuẩn mật mã hố dữ liệu DES

1. Đặc điểm.
Là mã thuộc mã khối Feistel có 16 vịng, ngồi ra DES sẽ có thêm một hốn vị khởi
tạo trước khi bắt đầu vịng 1 và một hốn vị kết thúc sau vịng 16.
+
+
+
+

Kích thước khối là 64 bit.
Trong đó 56 bit được sử dụng, 8 bit dùng để kiểm tra chẵn lẻ
Xuất ra bản mã 64 bit
Mỗi một vịng của chuẩn mật mã hóa dữ liệu DES dùng khóa con độ dài 48 bit
được trích ra từ khóa chính.

2. Cấu trúc DES
Ở phần bên trái sơ đồ, quá trình xử lý bản rõ diễn ra trong 3 giai đoạn. Ban đầu,
một bản rõ 64 bit được đưa vào khối hoán vị khởi tạo để sắp xếp lại chuỗi bit, sau đó
đưa ra chuỗi bit mới đã được hốn vị. Tiếp đó là 16 vịng Feistel. Đầu ra của vịng 16
gồm 64 bit. Sau đó nửa đầu và nửa cuối của chuỗi bit này sẽ được tráo đối với nhau.
Cuối cùng chuỗi bit đã được tráo đổi này sẽ được đưa vào bộ hoán vị kết thúc và cho ra
bản mã 64 bit ở đầu ra.
Phần bên phải sơ đồ mơ tả cách thức khóa 56 bit được sử dụng. Đầu tiên khóa 64
bit được đưa vào bộ hốn vị khóa. Tiếp đó, ở với mỗi 16 vịng, bằng cách kết hợp dịch
vịng trái và lựa chọn hốn vị để tạo ra các khóa con Ki (i = 1- 16). Ở mỗi vịng, hàm
hốn vị là giống nhau, nhưng khóa con khác nhau được tạo ra bởi các dịch vịng trái
được lặp lại ở các bit khóa.

1



Bài thi cuối kỳ mơn An Ninh Mạng

Hình 1: Cấu trúc của DES
3. Thuật toán mã hoá dữ liệu
3.1. Sơ đồ thuật toán
Thuật toán DES được sử dụng để mã hóa và giải mã các khối (block) dữ liệu 64 bit dựa
trên một key (khóa mã) 64 bit. Chú ý, các khối được đánh số thứ tự bit từ trái sang phải
và bắt đầu từ 1, bit đầu tiên bên trái là bit số 1 và bit cuối cùng bên phải là bit số 64. Quá
trình giải mã và mã hóa sử dụng cùng một key nhưng thứ tự phân phối các giá trị các bit
key của quá trình giải mã ngược với q trình mã hóa.
Một block dữ liệu sẽ được hoán vị khởi tạo (Initial Permutation) IP trước khi thực
hiện tính tốn mã hóa với key. Cuối cùng, kết quả tính tốn với key sẽ được hốn vị lần
nữa để tạo ra , đây là hoán vị đảo của hoán vị khởi tạo gọi là (Inverse Initial Permutation)
IP-1. Việc tính tốn dựa trên key được định nghĩa đơn giản trong một hàm f, gọi là hàm
mã hóa, và một hàm KS, gọi là hàm phân phối key (key schedule). Hàm KS là hàm tạo
ra các khóa vịng (round key) cho các lần lặp mã hóa. Có tất cả 16 khóa vịng từ K1 đến
K16.

Hình 2: Sơ đồ giải thuật mã hóa DES
2


Bài thi cuối kỳ mơn An Ninh Mạng
3.2. Hốn vị khởi tạo
Hốn vị là thay đổi vị trí các bit trong một chuỗi giá trị nhưng không làm thay đổi
giá trị của các bit này. Đây là bước đầu tiên trong quy trình mã hóa dữ liệu. 64 bit dữ
liệu đầu vào, gọi là plaintext, sẽ được hoán vị theo bảng mô tả sau đây.

Giả sử bản rõ 64 bit được đánh số từ trái qua phải là 0,1,2,...63 hay b0b1b2...b63.
Khi đó các bit sẽ được hốn vị như bảng trên. Bit số 57 được đặt vào vị trí đầu tiên, bit

số 49 được đặt vào vị trí thứ hai. Cứ như vậy cho đến bit số 6 được đặt vào vị trí cuối
cùng: b0b1b2...b61b62b63 -> b57b49b41...b22b14b6.
3.3. Hàm mã hóa f (R,k)
Tiêu chuẩn DES gồm có 16 vịng. Một vịng mã hóa của DES sẽ thực hiện chia
khối 64 bit làm 2 phần L và R, mỗi phần 32 bit. Phần R của vòng trước sẽ là trở thành
phần L của vòng sau, đồng thời phần R này sẽ được biến đổi trở thành phần R của vòng
sau. Cuối cùng ghép lại sẽ thu được khối 64 bit.
- Hình dưới đây minh họa một vịng Feistel của DES.

Hình 3: Minh họa một vòng Feistel của DES
- Hàm F trong tiêu chuẩn DES được biểu diễn như sau:
F (Ri-1, Ki) = P-box (S-box (Expand (Ri-1) ⨁ Ki)
3


Bài thi cuối kỳ mơn An Ninh Mạng
Trong đó:
• Hàm Expand mở rộng Ri-1 từ 32 bít lên 48 bit để cộng với khóa và thực hiện
hốn vị.
• Hàm S-Boxes là hàm có nhiệm vụ nén 48 bit thu được sau hàm Expand cịn 32
bit.
• Hàm P-box là một hốn vị có nhiệm vụ hốn vị 32bit thu được từ S-Boxes.
3.3.1. Hàm Expand
Hàm Expand là một hoán vị mở rộng. Nó sẽ thực hiện làm tăng độ dài của Ri-1 từ
32 bit lên 48 bit bằng cách lặp lại các bit ở một số vị trí và thay đổi vị trí các bit với thuật
tốn hốn vị mở rộng.
- Việc tăng độ dài của của Ri-1 có hai mục đích là:
• Làm Ri-1 và khóa K có cũng cỡ để thực hiện cộng Module.
• Tạo ra một kết quả dài hơn để có thể được nén trong suốt q trình thay thế.
- Cả hai mục đích trên đều nhắm đến việc bảo mật dữ liệu.

- Hàm Expand thực hiện đánh số các bit của Ri-1 từ trái sang phải là 0, 1, 2, …, 31. Quy
tắc thực hiện mở rộng và hốn vị của hàm Expand như hình dưới đây:

Sau khi qua hàm Expand, 48 bit thu được ở đầu ra sẽ được trộn cùng 48 bit của
khóa con. Các khóa con 48 bit này được trích ra từ khóa chính 56 bit. Mỗi vịng sẽ sử
dụng một khóa khác nhau. Q trình tạo khóa sẽ được nói cụ thể hơn ở phần sau.

Hình 4: Hốn vị mở rộng
3.3.2. Hàm S-boxes

4


Bài thi cuối kỳ môn An Ninh Mạng
Sau khi đi qua bộ trộn, 48 bit thu được sẽ được chia làm 8 khối con mỗi khối có 6
bit. Các khối 6 bit này được đưa vào xử lý qua S-box (gọi là hộp thay thế). Các khối 6
bit đầu vào sau khi đi qua S-Box sẽ thu được các khối 4 bit. Kết quả cuối cùng sẽ thu
được một chuỗi 32 bit để tiếp tục đi vào hộp P-Box. Sự biến đổi của các bit đầu vào sẽ
dẫn đến sự biến đổi ở đầu ra. Độ an toàn của DES được đảm bảo bởi khối S-Box. Nếu
khơng có S-Box thì q trình mã hóa sẽ là tuyến tính và nó khiến cho việc thám mã sẽ
trở nên vô cùng đơn giản.

Hình 5: Mơ tả hàm S-box
Hàm S-Box của DES biến đổi nén một số 48 bit thành một số 32 bit. Tuy nhiên,
nếu chỉ lập một bảng tra cứu như ở TinyDES thì bảng này này sẽ cần phải có kích thước
216x232 (216 dịng và 232 cột). Điều này thì sẽ dẫn đến số lượng phần tử trong bảng
rất lớn và rất khó để tra cứu. Để giải quyết điều này người ta giảm kích thước của bảng
tra cứu các hàm S-boxes thành 8 hàm S-box con, mỗi hàm biến đổi số 6 bit thành số 4
bit. Mỗi S-Box cần có bảng riêng của nó nên sẽ có 8 bảng được thể hiện ở phần dưới.
Việc thay thế trong mỗi hộp tuân theo quy tắc được xác định trước dựa trên bảng

4 hàng x 16 cột. Sự kết hợp của bit 1 và 6 của đầu vào xác định một trong bốn hàng; sự
kết hợp của các bit từ 2 đến 5 xác định một trong mười sáu cột như thể hiện trong hình.

Hình 6: Quy tắc hàm S- box
Ví dụ về hoạt động của hàm S-box đầu tiên như sau:
5


Bài thi cuối kỳ môn An Ninh Mạng

Chi tiết các hàm S-box được thể hiện cụ thể như sau:

6


Bài thi cuối kỳ môn An Ninh Mạng

3.3.3. Hàm P-box
Các khối 4 bit đầu ra của các hộp S-box sẽ được ghép lại thu được 32 bit và đưa
vào hộp P-box. Hộp P-Box chỉ đơn giản là khối thực hiện việc hoán vị các bit với nhau.
Quy tắc thực hiện hốn vị của hàm P-Box:

3.4. Tạo khóa
- Sơ đồ thuật tốn G tạo các từ khóa K1,K2,...,K16.
- Thuật tốn G tạo ra các từ khóa K1...K16 từ khóa mật mã K được thực hiện theo sơ đồ
thuật tốn bên.
- Khóa mật mã K là một từ 56 bit, ta thực hiện:
• Khóa K được chia cắt thành 8 đoạn, mỗi đoạn có độ dài 7 bit
• Ta sẽ thêm cho mỗi đoạn ở bước 1 đó một bit thử tính chẵn lẻ vào vị trí phía cuối
để thu được một từ 64 bit.


7


Bài thi cuối kỳ mơn An Ninh Mạng
• Ta vẫn ký hiệu là K, từ mới K này là từ xuất phát cho q trình tính tốn của
thuật tốn G.

Hình 7: Sơ đồ thuật tốn tạo khóa
- Khóa K có độ dài 64 bit ban đầu được rút trích và sau đó hốn vị thành một khóa có
độ dài 56 bít (nghĩa là chỉ 56 bít được sử dụng) theo quy tắc PC-1 đã trình bày ở trên:
• Biến K thành hai nửa C0D0, mỗi nửa có 28 bit.
Chúng ta có phép hốn vị PC-1 được xác định bởi bảng sau đây:

LSi là phép dịch vòng sang trái với các giá trị i = 1,2,3,...,16:
• Với i = 1,2,9,16 thì ta sẽ chuyển dịch một vị.
• Với giá trị i cịn lại ta chuyển dịch hai vị trí.
Cuối cùng, phép hoán vị PC-2 biến mỗi từ 56 bit Ci Di (i = 1,2,...,16) thành từ 48 bit Ki
theo bảng dưới:

Nhóm 03

8


Bài thi cuối kỳ mơn An Ninh Mạng

3.5. Hốn vị kết thúc (IP-1)
Hoán vị kết thúc ở đây là phép nghịch đảo của hoán vị khởi tạo. Đây sẽ là bước
cuối cùng để tạo ra bản mã. Giá trị của lần lặp mã hóa cuối cùng sẽ được hốn vị các bit

để tạo ra bản mã theo quy tắc sau:

b0b1b2...b61b62b63 -> b16b56b24
Đối với các kiểu tấn công đã biết bản rõ (known-plaintext) hay bản rõ được lựa
chọn (chosen-plaintext) thì hốn vị khởi tạo và hốn vị kết thúc khơng có ý nghĩa bảo
mật, sự tồn tại của hai hoán vị này được cho là do yếu tố lịch sử để lại.
3.6. Ví dụ về mã hóa DES
Giả sử ta có bản tin cần mã hóa M và khóa K là:
M = 0123456789ABCDEF
K = 133457799BBCDFF1
Tìm bản mã C ?

Nhóm 03

9


Bài thi cuối kỳ môn An Ninh Mạng

Bài làm:
Chuyển M và K sang kiểu nhị phân:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110
1111
K = 0001 0011 0011 0100 0101 0111 0111 1001 1001 1011 1011 1100 1100 1111 1111
0001
Bước 1: Tính các khóa con Ki từ khóa K
Thuật tốn PC-1 biến K thành một từ 56 bit
Phép hoán vị PC-1 được xác định bởi bảng sau:

=> PC1K = 1111 0000 1100 1100 1010 1010 1111 0101 0101 0110 0110 0111 1000

1111 = F0CCAAF556678F
Nửa trái C0 = F0CCAAF
Nửa phải D0 = 556678F
Tính các giá trị dịch vịng trái Ci, Di:
Ta có: Ci = LS(Ci-1) => C1 = E19955F
Di = LS(Di-1) => D1 = AACCF1E
Tính hốn vị PC-2 và gán khóa con Ki
Ki = PC2(CiDi)
Phép hoán vị PC-2 biến mỗi từ 56 bit CiDi thành 48 bit Ki, được xác định bởi bảng sau:

Nhóm 03

10


Bài thi cuối kỳ môn An Ninh Mạng

K1 = PC2(C1D1) = 1B02EFFC7072
Tương tự các bước trên ta tính được các khóa con:
K2 = 79AED9DBC9E5
K3 = 55FC8A42CF99
K4 = 72ADD6DB351D
K5 = 7CEC07EB53A8
K6 = 63A53E507B2F
K7 = EC84B7F618BC
K8 = F78A3AC13BFB
K9 = E0DBEBEDE781
K10 = B1F347BA464F
K11 = 215FD3DED386
K12 = 7571F59467E9

K13 = 97C5D1FABA41
K14 = 5F43B7F2E73A
K15 = BF918D3D3F0A
K16 = CB3D8B0E17F5
Bước 2: Hoán vị khởi tạo
Các bit ở bản rõ M sẽ được hoán đổi theo quy tắc:

→ IP(M) = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111
0000 1010 1010 = CC00CCFFF0AAF0AA
Bước 3: Hàm mã hóa f(R,K)
i

Nhóm 03

IP (M)
Li

Ri

0

CC00CCFF

F0AAF0AA

1

L1 = R0

R1 = L0 ⨁ f(R0,K1)


11


Bài thi cuối kỳ môn An Ninh Mạng
L2 = R1

R2 = L1 ⨁ f(R0,K1)

L3 = R2
L4 = R3

L16 = R15

R3 = L2 ⨁ f(R0,K1)
R4 = L3 ⨁ f(R0,K1)

R16 = L15 ⨁ f(R0,K1)

2
3
4

16
a. Mở rộng nửa phải

Ta có: R0 = 1111 0000 1010 1010 1111 0000 1010 1010 (32 bit)
E(R0) = 0111 1010 0001 0101 0101 0101 0111 1010 0001 0101 0101 0101 (48 bit)
= 7A15557A1555
b. XOR khóa

K1 = 0001 1011 0000 0010 1110 1111 1111 1100 0111 0000 0111 0010
E(R0) = 0111 1010 0001 0101 0101 0101 0111 1010 0001 0101 0101 0101
E(R0) ⨁ K1 = 0110 0001 0001 0111 1011 1010 1000 0110 0110 0101 0010 0111
→ A = E(R0) + K1 = 6117BA866527
c. S-box
Giá trị A 48 bit ở trên qua hàm S-box được biến đổi thành 32 bit.
Hoạt động hàm S1 như sau:
Hàm Expand vừa hoán vị, vừa mở rộng 32 bit nửa phải thành 48 bit theo quy tắc:

Ta có A1 = 011000 = > S1(A1) = 5
Tương tự cho các hàm S-box còn lại, ta được kết quả như sau:
Nhóm 03

12


Bài thi cuối kỳ môn An Ninh Mạng
Ai

011000

010001

011110

111010

100001

100110


010100

100111

Si(Ai)

0101

1100

1000

0010

1011

0101

1001

0111

→ S(A) = 5C82B597
d. P-box
P-box thực hiện hoán vị giá trị S 32 bit ở trên theo quy tắc:

Ta có: S = 0101 1100 1000 0010 1011 0101 1001 0111
=> P(S) = 0110 0011 0100 1010 1010 1001 1011 1011
Bước 4. Hoán vị kết thúc

Sau khi thực hiện 16 vòng lặp, kết quả như sau:
L16 = 0100 0011 0100 0010 0011 0010 0011 0100
R16 = 0000 1010 0100 1100 1101 1001 1001 0101
- Thực hiện đổi 2 nửa đầu nửa cuối ta được:
R16L16 = 0000 1010 0100 1100 1101 1001 1001 0101 0100 0011 0100 0010 0011 0010
0011 0100
- Thực hiện hoán vị kết thúc R16L16 theo quy tắc:

→ Kết quả cuối cùng ta thu được là:
C = 1000 0101 1110 1000 0001 0011 0101 0100 0000 1111 0000 1010 1011 0100 0000
0101
hay C = 85E813540F0AB405
Vậy từ bản rõ M và khóa K đã cho ở đề bài, ta tìm được bản mã C = 85E813540F0AB405
Nhóm 03

13


Bài thi cuối kỳ mơn An Ninh Mạng
4. Thuật tốn giải mã dữ liệu
Đối với mã hóa DES thì thuật toán giải mã sẽ làm ngược lại các bước của thuật
tốn mã hóa ta sẽ có bản rõ ban đầu cần mã hóa.
Thuật tốn giải mã dữ liệu được xây dựng giống với thuật tốn mã hóa dữ liệu.
Tuy nhiên thứ tự các khóa con được sử dụng thì ngược lại so với thuật tốn mã hóa, tức
là khóa con K16 được dùng cho vòng 1, K15 cho vòng 2,... cứ thế cho đến K1 sẽ được
dùng cho vòng 16. Thuật tốn giải mã có thể được thể hiện qua biểu thức sau:
DES-1 = (IP)-1 F1 ⨁ T ⨁ F2 ⨁ … ⨁ F15 ⨁ T ⨁ F16 ⨁ (IP)
Bây giờ chú ý rằng mỗi hàm T (phép biến đổi L và R) hoặc F đều là các hàm có
tính chất đối hợp (f = f - 1, hay f (f(x) = x). Do đó nếu ta thực hiện phép tích DES - 1 x
DES hay DES x DES-1 thì sẽ thu được phép đồng nhất. Điều đó có thể giải thích tại sao

thuật tốn giải mã lại giống với như sinh mã, chỉ khác về thứ tự các khóa con được sử
dụng trong các vòng.
5. Hiệu ứng lan truyền
Hiệu ứng lan truyền tức là trong khóa hay bản rõ chỉ cần có một thay đổi nhỏ sẽ
dẫn đến sự thay đổi lớn trong bản mã.
Nhờ có tính chất này mà kẻ phá mã phải thực hiện kiểu tấn công Brute Force (vét
cạn khóa) mới có thể phá khóa.
Bảng 1: Ví dụ hiệu ứng lan truyền

Ví dụ về hiệu ứng lan truyền:
a. Hai bản mã khác nhau 1 bit.

Nhóm 03

14


Bài thi cuối kỳ mơn An Ninh Mạng
b. Hai khóa khác nhau 1 bit.

III. Ứng dụng của DES
Tiêu chuẩn DES thường được sử dụng để mã hóa bảo mật các thơng tin quan trọng
cần được giữ kín trong q trình truyền cũng như lưu trữ thơng tin để tránh rị rỉ gây ra
nhiều hậu quả nghiêm trọng. Ta có thể áp dụng DES rất nhiều ứng dụng ví dụ như trong
đấu thầu từ xa, xác thực mật khẩu truy nhập hệ thống như hệ thống bán hàng, kiểm tra
tính hợp lệ trong mã thẻ ATM hay, trong thi tuyển sinh…
1. Ứng dụng giao dịch ngân hàng
a. Sơ lược về hệ thống ATM
ATM là một phần trong hệ thống mạng không tập trung, nằm rải rác ở các điểm khác
nhau nên việc an toàn bảo mật rất được quan tâm. Các ATM được kết nối đến Switch,

các Switch sẽ được kết nối trực tiếp với CoreBank và thiết bị như POS. Switch là một
thành phần quan trọng, là trung gian giữa ngân hàng và các ATM. Mọi giao dịch trên
ATM đều sẽ thơng qua Switch.
Nhằm đảm bảo an tồn trong giao dịch, hệ thống sử dụng thiết bị mã hóa cứng để mã
hóa và giải mã thơng tin. Trên các máy ATM có trang bị EPP (Encrypting PIN Pad), hệ
thống Switch có bộ HSM (Hardware Security Module).
b. Thuật tốn mã hóa
Trong hệ thống các ATM của các ngân hàng hiện nay thường sử dụng thuật tốn
DES để mã hóa và giải mã dữ liệu.
Kích thước khóa sử dụng có thể là 64, 128, 192 bit tùy vào việc sử dụng mã hóa
DES hay 3DES.
Thuật tốn mã hóa 3DES chính là DES, nó được gọi là 3DES là do người ta sử
dụng mã hóa DES liên tiếp 3 lần với 3 khóa K1, K2 và K. Khóa K được xây dựng từ bộ
ba khóa 64 bit (K1, K2, K3) có độ dài 3*64 = 192 bit.
• Sử dụng K1 để mã hóa, sau đó dùng K2 để giải mã, cuối cùng sẽ sử dụng K3 để
mã hóa trước khi gửi đi.
• Sử dụng K3 để giải mã, dùng khóa K2 để mã hóa, và cuối cùng là khóa K1 để
tiến hành giải mã thu được bản rõ.
c. Mã hóa và giải mã số PIN
-

Mã hóa PIN tại ATM

Để đảm bảo độ an tồn của số PIN trong q trình truyền trên mạng, số PIN được
chuyển thành khối PIN (PIN Block) và được mã hóa trước khi chuyển từ ATM tới hệ
thống Switch. Khối PIN được mã hóa bằng khóa được thỏa thuận trước giữa ATM và
hệ thống Switch.

Nhóm 03


15


Bài thi cuối kỳ mơn An Ninh Mạng
Thuật tốn DES (3DES) chỉ làm việc với khối dữ liệu đầu vào có độ dài là 64 bit, nên
PIN Block được xây dựng bằng cách module-2 (XOR) hai trường 64 bit theo chuẩn ISO
9564-1 gồm:
• Trường số PIN theo khn dạng 64 bit
• Trường số PAN theo khn dạng 64 bit
Điều kiện đầu vào và kết quả đầu ra của quá trình mã hóa số PIN Đầu vào:
• Số thẻ - PAN
• Số PIN Đầu ra: Khối PIN Block được mã hóa bằng thuật tốn DES (3DES) có
độ dài 64 bit.
Q trình xác thực PIN sẽ được làm ở HSM, giá trị trả về của HSM sẽ cho biết số
PIN nhập là đúng hay là sai.
Khối PIN này được mã hóa bởi 3DES trước khi truyền đi, ví dụ với một khố bộ
hai 128 bit sẽ được dùng để mã hóa như sau :
A12EAA75BDF2B57F 66A3EEAA67AAE8AA
với 64 bit bên trái (key 1) và 64 bit bên phải (key 2) ta có 2 key như sau: Sơ đồ dưới đây
mơ tả việc dùng khóa 3DES bộ hai để mã hóa và giải mã PIN block:

Hình 8: Minh họa các Bước mã hóa và giải mã PIN Block
-

Xác thực PIN tại HSM








Tại HSM để xác thực PIN gồm các quá trình sau:
Giải mã PIN được nhập vào từ máy ATM đã được mã hóa
Giải mã PIN lưu trong CSDL của CoreBank đã được mã hóa
So sánh số PIN được nhập vào và số PIN được lưu trong CSDL
Quá trình xác thực đều được thực hiện trong thiết bị HSM
Kết quả đầu ra sẽ là số PIN nhập vào đúng hay sai.

2. Ứng dụng vào thi tuyển đại học
Trong một kì thi, trường hợp nơi ra đề thi và nơi tổ chức thi ở cách xa nhau, yêu
cầu phải tiến hành chuyển đề thi từ nơi ra đề đến địa điểm tổ chức thi thông qua mạng

Nhóm 03

16


Bài thi cuối kỳ môn An Ninh Mạng
Internet song song với đó cũng phải phải đảm bảo được sự an tồn về bảo mật của đề
thi tránh bị lộ đề.
Khóa DES có độ dài 56 bit tương đương một số nguyên gồm 20 chữ số thập phân.
Con số bí mật này khơng q lớn đối với bài tốn chia sẻ bí mật. Cho nên việc tính tốn
là rất hiệu quả.

Hình 9: Sơ đồ thực hiện giải bài toán
Các bước thực hiện:
- Nơi ra đề thi sẽ cần thực hiện:







Bản rõ (đề thi)
Mã hóa bản rõ
Tạo khóa k
Mã hóa khóa k
Gửi bản mã

- Nơi tổ chức thi:
• Nhận bản mã và cặp (vj, f(vj))
• Giải bản mã (sau khi nhận đủ các cặp khác từ người ra đề thi để xác định được
khóa K).
Mã hóa bản rõ ở đây là đề thi: sẽ sử dụng bảng mã ASCII mở rộng để mã hóa đề
thi từ dạng ký tự và chữ số sang dạng số Hexa sau đó sử dụng DES để mã hóa.
Tạo khóa k: Dùng dãy ký tự dạng chữ hoặc dạng số, nhóm 8 ký tự thành 1 nhóm sau đó
dùng 56 bit để mã hóa.
Gửi bản tin: khóa k sẽ được chia làm hai phần k1, k2 (k1 + k2 = k). Sau đó gửi k1
cho n thực thể là các nơi tổ chức thi. Đến giờ quy định sẽ gửi k2 cho n địa điểm tổ chức

Nhóm 03

17


Bài thi cuối kỳ môn An Ninh Mạng
thi. Khi nhận được cả hai phần là k1 và k2 thì tất cả các địa điểm tổ chức thi đều có thể
mở mở được đề và và đưa đến thí sinh dự thi.


IV. Độ an toàn của DES
Độ an toàn bảo mật của các hệ thống mã hóa khơng phải là hồn tồn mà cũng chỉ
là tương đối, vẫn có những kẽ hở và DES cũng thế. Dưới đây là một số kiểu tấn cơng có
thể bẻ được khóa của DES.
1. Tấn cơng vét cạn khóa (Brute-Force Attack)
Do khóa của DES có kích thước 56 bit nên cần kiểm tra 256 khóa khác nhau để có
thể tiến hành Brute-force Attack. Với số lượng khóa lên tới 256 khóa nên thời gian để
thử khóa là rất lớn do đó việc phá mã là không khả thi với các thiết bị phổ dụng. Năm
1998, tổ chức EFF đã xây dựng được một hệ thống phá mã DES bao gồm nhiều máy
tính chạy song song và với thời gian thử khóa là 3 ngày. Hiện nay tiêu chuẩn mật mã
hóa DES vẫn đang cịn được sử dụng trong thương mại, những với tuổi đời và những
hạn chế của DES con người đã bắt đầu tiến hành triển khai và áp dụng những tiêu chuẩn
mã hóa khác với những cải tiến và độ an toàn cao hơn có thể kể tới nhứ TripleDES (là
một biến thể của DES) hay là AES.
2. Phá mã DES theo phương pháp vi sai (Differential Cryptanalysis)
Phá mã DES theo phương pháp vi sai đã được hai nhà nghiên cứu mật mã người
Israel là Eli Biham và Adi Shamir đã giới thiệu vào khoảng cuối những năm 80 của thế
kỷ trước mặc dù phương pháp này đã được cả IBM và NSA biết đến trước đó. Phương
pháp vi sai này có thể tiết kiệm thời gian bẻ khóa hơn so với phương pháp Brute-force.
Tuy nhiên để phá mã DES với phương pháp này, nó lại địi hỏi cần phải có tới 247 văn
bản rõ. Do đó phương pháp vi sai này là rất khó để thực hiện dù cho với số lần thử khóa
có thể ít hơn so với Brute-force.
3. Phá mã DES theo phương pháp tuyến tính
Sau phương pháp phá mã vi sai, năm 1997 nhà nghiên cứu mật mã học Mitsuru
Matsui đã tìm ra phá mã DES theo phương pháp tuyến tính (linear cryptanalysis).
Phương pháp này cần tới 243 văn bản rõ. Phương pháp này đã được Matsui thực hiện
và là thực nghiệm phá mã đầu tiên được công bố. Khơng có bằng chứng cho thấy DES
có khả năng chống lại kiểu tấn công này. Tuy nhiên, với yêu cầu 243 văn bản rõ thì đây
cũng là một con số lớn cho nên phá mã tuyến tính cũng khơng khả thi giống với phá mã
vi sai. Một phương pháp tổng quát hơn là phá mã tuyến tính đa chiều được đưa ra năm

1994 bởi Robshaw và Kaliski và tiếp đó được cải tiến phát triển vào năm 2004 bởi
Biryukov. Các nghiên cứu đã chỉ ra rằng nó có thể làm giảm độ phức tạp của việc phá
mã khi chỉ cần 241 văn bản rõ tức là giảm đi 4 lần.

Nhóm 03

18


Bài thi cuối kỳ môn An Ninh Mạng

V. Kết luận
Các ứng dụng trên mạng máy tính ngày càng phát triển và trở nên phổ biến, thuận
lợi và quan trọng thì yêu cầu về an toàn mạng, về an ninh dữ liệu càng trở lên cấp bách
và cần thiết.
Thuật toán mã hóa được ứng dụng trong rất nhiều lĩnh vực như: xác thực người
dùng, chữ ký số, mã hóa và xác thực dữ liệu…
Bài tiểu luận đã tìm hiểu và đưa ra được những lý thuyết cơ về mật mã hóa nói
chung và chuẩn mã hóa dữ liệu DES nói riêng cũng như đưa ra được một số ứng dụng
của thuật toán DES trong giao dịch ngân hàng và trong vấn đề tuyển sinh. Bài tiểu luận
vẫn cịn có hạn chế như việc đề cập đến phần lý thuyết nhiều hơn những ứng dụng. Bên
cạnh đó, do trình độ kiến thức cịn hạn chế và thời gian có hạn, nên trong tiểu luận vẫn
cịn nhiều thiếu sót, em mong sự chỉ bảo của các thầy, cô.

VI. Tài liệu tham khảo
[1] Bài giảng “An ninh mạng viễn thông”, Bộ môn mạng viễn thơng - Học viện Cơng
nghệ Bưu chính viễn thơng
[2] TS. Nguyễn Khanh Văn, Giáo trình “An tồn và bảo mật thông tin”, Chương 2 Mật mã khối và mật mã khóa đối xứng,16 trang, ĐH Bách Khoa Hà Nội, năm 2012
[3] Trần Minh Văn, An tồn và bảo mật thơng tin, 184 trang, ĐH Nha Trang, tháng 6
năm 2008

[4]

Data Encryption Standard (DES), 32 trang

[5]

[Online] Tấn Thiện, Hệ mật DES, />
[6]

[Online] Wikiqube.net/wiki/Data_Encryption_Standard

Nhóm 03

19


×