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

Nghiên cứu phương pháp tấn công chuẩn mật mã khối des nhờ hệ thống tính toán hiệu năng cao

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 (920.45 KB, 28 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------------

NGUYỄN QUỐC THẮNG

NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG
CHUẨN MẬT MÃ KHỐI (DES)
NHỜ HỆ THỐNG TÍNH TỐN HIỆU NĂNG CAO

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội - 2012

a


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
----------------------

NGUYỄN QUỐC THẮNG

NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG
CHUẨN MẬT MÃ KHỐI (DES)
NHỜ HỆ THỐNG TÍNH TỐN HIỆU NĂNG CAO

Ngành:

Cơng nghệ thơng tin


Chuyên ngành: Hệ thống thông tin
Mã số:

604805

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: Tiến sĩ Hồ Văn Canh

Hà Nội - 2012

b


MỤC LỤC
Trang phụ bìa .....................................................................................................................
Lời cam đoan .................................................................................................................... i
Lời cảm ơn .......................................................................................................................ii
Mục lục .......................................................................................................................... iii
Danh mục các từ viết tắt tiếng Anh ................................................................................ vi
Danh mục các bảng .......................................................................................................vii
Danh mục các hình vẽ, đồ thị ...................................................................................... viii
MỞ ĐẦU ........................................................................................................................ 1
Chƣơng I. GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU DES (DATA
ENCRYPTION STANDARD) ....................................................................................... 3
1.1. Giới thiệu về Thuật toán mã hoá DES .................................................................. 3
1.2. Quy trình mã hóa theo DES .................................................................................. 4
1.3. Lập mã và giải mã DES.......................................................................................... 4
1.3.1. Quy trình lập mã DES ....................................................................................... 4
1.3.2. Thực hiện mã hóa DES theo sơ đồ.................................................................... 6

1.3.3. Tính các khóa con k1, k2, ..., k16 từ khóa gốc K ................................................ 7
1.3.4. Tính hàm f(Ri-1, ki) ............................................................................................ 9
1.3.5. Quy trình giải mã DES .................................................................................... 12
1.3.6. Độ an tồn của Chuẩn mã hóa dữ liệu DES .................................................... 12
1.4. Các chế độ mã hóa của DES ................................................................................ 13
1.4.1. Chế độ bản mã cơ bản (EBC) ......................................................................... 13
1.4.2. Chế độ liên kết khối mã (CBC) ....................................................................... 14
Chƣơng II. CÁC PHƢƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA DỮ LIỆU DES,
CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ DES ............................ 15
2.1. Một số khái niệm cơ bản ...................................................................................... 15
2.2. Các phương pháp thám mã ................................................................................. 16
2.2.1. Thám mã đƣờng tắt ......................................................................................... 16
2.2.1.1. Thám mã vi sai......................................................................................... 16

iii


2.2.1.2. Thám mã tuyến tính ................................................................................. 19
2.2.1.3. Thám mã phi tuyến .................................................................................. 19
2.2.1.4. Thám mã vi sai tuyến tính ....................................................................... 20
2.2.1.5. Một số phƣơng pháp thám mã đƣờng tắt khác ........................................ 20
2.2.2. Thám mã hộp đen (vét cạn để tìm khóa) ......................................................... 20
2.3. Các hệ thống chuyên dụng phục vụ thám mã .................................................... 21
2.3.1. Các phần cứng chuyên dụng ........................................................................... 21
2.3.2. Các hệ thống tính tốn hiệu năng cao ............................................................. 22
Chƣơng III. NGHIÊN CỨU, ĐỀ XUẤT PHƢƠNG PHÁP THÁM MÃ DES............. 24
3.1. Mơ tả bài tốn thám mã DES .............................................................................. 24
3.1.1. Các giả thiết của bài toán ................................................................................ 24
3.1.2. Chi tiết hóa bài tốn và các yếu tố đầu vào..................................................... 24
3.2. Xây dựng thuật toán nhận dạng bản rõ tiếng Anh ........................................... 25

3.2.1. Vai trò của nhận dạng bản rõ tự động trong thám mã “vét cạn” ................... 26
3.2.2. Một số phƣơng pháp nhận dạng bản rõ tự động ............................................. 26
3.2.2.1. Nhận dạng dựa vào từ điển ...................................................................... 26
3.2.2.2. Nhận dạng dựa trên tập hợp từ, cụm từ giả định ..................................... 27
3.2.2.3. Nhận dạng dựa vào phƣơng pháp thống kê đặc trƣng ngơn ngữ ............. 27
3.2.3. Xây dựng thuật tốn nhận dạng bản rõ dựa vào phƣơng pháp thống kê đặc
trƣng ngôn ngữ .......................................................................................................... 28
3.2.3.1. Một số khái niệm cơ sở về “bản rõ” ........................................................ 28
3.2.3.2. Thuật toán nhận dạng bản rõ ................................................................... 29
3.3. Tìm hiểu thuật tốn di truyền (GAs) .................................................................. 36
3.3.1. Giới thiệu......................................................................................................... 36
3.3.2. Thuật toán di truyền nhị phân ......................................................................... 36
3.3.2.1. Thuật toán di truyền nhị phân - sự chọn lọc tự nhiên trên máy tính ....... 36
3.3.2.2. Các thành phần của thuật toán di truyền nhị phân ................................... 37
3.4. Đề xuất phương pháp thám mã DES .................................................................. 46
3.4.1. Xây dựng thuật tốn di truyền dị tìm khóa .................................................... 46
3.4.1.1. Xác định hàm phù hợp (hàm chi phí) ...................................................... 47

iv


3.4.1.2. Tạo lập họ khóa khởi tạo ......................................................................... 48
3.4.1.3. Giải mã bản mã cho trƣớc với các khóa trong họ .................................... 49
3.4.1.4. Tính mức độ phù hợp của các khóa ......................................................... 50
3.4.1.5. Chọn lọc ................................................................................................... 50
3.4.1.6. Ghép cặp .................................................................................................. 50
3.4.1.7. Kết hợp..................................................................................................... 51
3.4.1.8. Đột biến.................................................................................................... 51
3.4.1.9. Thế hệ tiếp theo ....................................................................................... 52
3.4.1.10. Kiểm tra hội tụ ....................................................................................... 53

3.4.2. Vai trò của hệ thống tính tốn song song ........................................................ 53
3.4.3. Ƣớc lƣợng thời gian, độ phức tạp của tính tốn ............................................. 56
KẾT LUẬN ................................................................................................................... 58
TÀI LIỆU THAM KHẢO ............................................................................................. 59
PHỤ LỤC 1. Bảng trọng số tần suất bộ đôi chữ cái tiếng Anh..................................... 60
PHỤ LỤC 2. Mã nguồn chƣơng trình thám mã DES áp dụng thuật toán di truyền chạy
trên máy tính đơn ........................................................................................................... 61

v


MỞ ĐẦU
DES (viết tắt của Data Encryption Standard, hay Chuẩn mã hóa dữ
liệu) là một phƣơng pháp mật mã hóa do Công ty IBM thiết kế và đƣợc
FIPS (Tiêu chuẩn xử lý thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính
thức vào năm 1976. Sau đó, Chuẩn này đƣợc sử dụng rộng rãi trên phạm vi
thế giới.
Ngay từ đầu, thuật tốn của nó đã gây ra rất nhiều tranh luận liên quan
đến các thành phần thiết kế mật, độ dài khóa tƣơng đối ngắn. Do đó, DES
đã đƣợc giới nghiên cứu xem xét rất kỹ lƣỡng, việc này đã thúc đẩy hiểu
biết hiện đại về mật mã khối (block cipher) và các phƣơng pháp thám mã
tƣơng ứng. Có thể nói, sự xuất hiện của DES đã tạo nên một làn sóng, một
nguồn cảm hứng nghiên cứu trong giới khoa học về lĩnh vực mật mã học,
đặc biệt là các phƣơng pháp thám mã mã khối. Với DES, giới khoa học đã
có một thuật tốn mật mã để nghiên cứu.
Mặc dù, trong thời gian qua đã có rất nhiều kết quả nghiên cứu về
DES đã đƣợc cơng bố, DES có thể bị phá khoá bởi các hệ thống chuyên
dụng trong vòng chƣa đầy 24 giờ, nhƣng việc nghiên cứu thám mã DES
vẫn có ý nghĩa hƣớng tới thám mã các hệ mật mã khối mới có độ dài khóa
mật lớn hơn, đã và đang dần thay thế DES. Phân tích mật mã hay thám mã

còn đƣa ra những khuyến cáo, phản hồi cho các chuyên gia trong thiết kế
lại các hệ mật mã để chống lại các dạng tấn công mới. Đồng thời, nó cũng
có ý nghĩa trong hỗ trợ cơng tác tình báo, phản gián v.v..
Với lý do trên, tác giả chọn đề tài: “Nghiên cứu phƣơng pháp thám
mã Chuẩn mật mã DES nhờ hệ thống tính tốn hiệu năng cao”. Trong
phạm vi nghiên cứu của đề tài này, bài toán đặt ra là với một bản mã đƣợc
mã hố từ một thơng điệp tiếng Anh bởi Thuật tốn mã hố DES, với giả
thiết ngƣời thám mã có thể truy cập đến chức năng mã hóa/giải mã của
DES. Từ giả thiết này, yêu cầu ứng dụng hệ thống tính toán hiệu năng cao,
thuật toán di truyền (Genetic Algorithm) để xây dựng thuật tốn dạng thám
mã “hộp đen” để tìm ra khố mật đã sử dụng để mã hố thơng điệp đó trong
thời gian ngắn (dự kiến khoảng 8 đến 15 phút).
Tác giả đã nghiên cứu, trình bày Luận văn thành ba chƣơng. Nội dung
chính, kết quả nghiên cứu của các chƣơng nhƣ sau:
3


Chƣơng I: Giới thiệu về chuẩn mã hoá dữ liệu - DES (Data
Encryption Standard).
Chƣơng II: Các phƣơng pháp thám mã Chuẩn mã hoá dữ liệu DES,
các hệ thống chuyên dụng phục vụ thám mã DES.
Chƣơng III: Nghiên cứu, đề xuất phƣơng pháp thám mã DES
Do mức độ phức tạp của cơng việc thám mã là rất lớn nên bài tốn đặt
ra với giả thiết ngƣời thám mã biết đƣợc các thơng tin về bản mã đƣợc mã
hóa bởi DES (chế độ ECB) từ bản rõ tƣơng ứng là một thông điệp tiếng
Anh. Từ giả thiết này, xây dựng thuật toán di truyền để xác định khóa mật k
đã sử dụng để mã hóa cũng nhƣ tìm ra bản rõ tƣơng ứng.
Để giải quyết yêu cầu đặt ra và các bài tốn nói trên, bài tốn đƣợc
chia thành các bài tốn con để gải quyết vấn đề:
- Xây dựng thuật toán nhận dạng bản rõ và “tiêu chuẩn bản rõ” tiếng

Anh là cơ sở xác định hàm “phù hợp”, một thành phần quan trọng của thuật
tốn di truyền.
- Tìm hiểu về thuật toán di truyền, xây dựng thuật toán di truyền để
thực hiện tìm kiếm khố mật với phƣơng pháp “vét cạn có định hƣớng”
trong khơng gian khố (K2) xác định khoảng 209 tỷ khóa.
Độ phức tạp của phƣơng pháp này chủ yếu phụ thuộc sự phán đốn,
nhận dạng ngơn ngữ của bản rõ tƣơng ứng với bản mã và phụ thuộc độ dài
của khóa (số lƣợng bit khóa), mà khơng phụ thuộc vào thuật tốn mã hóa
khối mã của DES. Vì vậy, để đạt đƣợc kết quả, mục tiêu nghiên cứu, đòi
hỏi sự kết hợp nhiều lĩnh vực liên quan. Đề tài đã kết hợp, vận dụng giữa
thuật toán nhận dạng bản rõ và thuật toán di truyền. Khi ứng dụng thuật
tốn di truyền thì “Tiêu chuẩn bản rõ” có thể đƣợc xem nhƣ là hàm “phù
hợp” - đặc thù của thuật toán di truyền thám mã.
Mục tiêu nghiên cứu của đề tài là xây dựng thuật tốn tấn cơng thám
mã. Tuy nhiên để để tăng tốc độ tính tốn, rút ngắn thời gian thám mã, tác
giả đã xuất ứng dụng mơ hình hệ thống tính tốn song song - mơ hình GA
master - slave.

4


Chƣơng I. GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU - DES
(DATA ENCRYPTION STANDARD) [4]
DES đƣợc phân biệt giữa hai khái niệm là Chuẩn mã hoá dữ liệu (DES
- Data Encryption Standard) và Thuật toán mã hoá dữ liệu (DEA - Data
Encryption Algorithm). Thuật toán mã hoá là thành phần cơ bản của Chuẩn
mã hố. Việc nghiên cứu, phân tích về DES chính là nghiên cứu, phân tích
về thuật tốn của nó.
Trong lĩnh vực mật mã học, có hai loại hệ mật mã thƣờng đƣợc đề cập
đến, đó là mật mã khố cơng khai (khố bất đối xứng) và mật mã khố bí

mật (khố đối xứng). Riêng đối với hệ mật mã đối xứng lại chia ra làm hai
loại là mã hoá, giải mã theo khối và mã hoá, giải mã theo dịng. DES (Data
Encryption Standard) hay Chuẩn mã hóa dữ liệu thuộc hệ mật mã khoá đối
xứng và thực hiện mã hoá, giải mã theo khối. Độ dài của khối thơng tin mã
hố, giải mã là 64 bit.
1.1. Quy trình mã hố theo DES
Quy trình mã hố của mật mã khối nói chung và mã hố theo DES nói
riêng đƣợc thực hiện qua năm giai đoạn sau:
Giai đoạn 1:

Bản rõ chữ

Bản Rõ số

Giai đoạn 2:

Bản rõ số

Các đoạn 64 bit
Rõ số

Giai đoạn 3:

64 bit Rõ số

64 bit Mã số

Giai đoạn 4:

Các đoạn 64 bit Mã số


Bản Mã số

Giai đoạn 5:

Bản Mã số

Bản Mã chữ

(Dạng nhị phân)

(Dạng nhị phân)

1.2. Lập mã và gải mã DES
Thuật toán DES tập trung thực hiện Giai đoạn 3 của quy trình mã hóa.
Đó là chuyển đổi bản Rõ số với 64 bit thành bản Mã số với 64 bit. Cịn đối
với quy trình giải mã thì ngƣợc lại, đổi bản Mã số với 64 bit thành bản Rõ
số với 64 bit

5


Quy trình mã hố, giải mã khối gồm hai thuật toán là mã hoá (ký hiệu
là E) và giải mã (ký hiệu là D). Cả hai thuật toán đều tác động lên một khối
đầu vào 64 bit sử dụng khoá 56 bit để cho ra khối 64 bit. Đối với bất kỳ
khoá k nào, giải mã là hàm ngƣợc của mã hoá, nghĩa là:
- Mã hoá khối: Ek(M),
- Giải mã khối: M = Dk(Ek(M)),
trong đó, M là khối thơng tin 64 bit và k là khoá 56 bit.


Khoá K
56 bit

Bản rõ 64 bit

Bản mã 64 bit

Thuật tốn mã hóa
DES

Thuật tốn giải mã
DES-1

Bản mã 64 bit

Bản rõ 64 bit

a. Quy trình mã hố

Khố K
56 bit

b. Quy trình giải mã

Hình 1.1. Mơ phỏng mã hoá (a) và giải mã (b) theo DES
Quy trình giải mã của DES là quy trình ngƣợc lại với quy trình mã hóa
DES, xuất phát từ bản mã Y (đầu vào), kết quả là bản rõ X (đầu ra).
Do xác định mục tiêu, phƣơng pháp thám mã khối DES là thám mã
“hộp đen”, thám mã “vét cạn có định hƣớng” dựa trên các yếu tố độ dài
khóa (số lƣợng bit của khoá), bản mã, và độ dài khối mã nên khi xây dựng

thuật tốn thám mã khơng cần phân tích chi tiết thuật tốn DES.
1.3. Các chế độ mã hố theo DES [15]
Các hệ mật mã khối nói chung và Chuẩn mã hóa khối DES có 6 (sáu)
chế độ mã hóa, gồm chế độ mã hố cơ bản (ECB - electronic codebook
mode), chế độ liên kết khối mã (CBC - cipher block chaining mode), chế
độ phản hồi mã (CFB - cipher feedback mode), ... Trong đó chế độ mã hóa
cơ bản là đơn giản nhất. Dƣới đây là sơ đồ mơ tả chế độ mã hố cơ bản
(ECB - electronic codebook).

6


Bản rõ

Khoá

Mã hoá
mã khối

Bản rõ

Khoá

Bản mã

Mã hoá
mã khối

Bản rõ


Khoá

Bản mã

Mã hoá
mã khối

Bản mã

a. Mã hoá
Bản mã

Khoá

Giải mã
mã khối

Bản mã

Khoá

Giải mã
mã khối

Bản rõ

Bản rõ

Bản mã


Khố

Giải mã
mã khối

Bản rõ

b. Giải mã
Hình 1.5. Mã hóa (a) và giải mã (b) theo chế độ mã cơ bản (ECB) [15]
DES có thể áp dụng một trong các chế độ mã hố nhƣ đã nói trên.
Nhƣng để giới hạn phạm vi nghiên cứu của đề tài, khi thực hiện hiện công
việc thám mã đƣơng nhiên chúng ta giả định bản mã cho trƣớc đƣợc mã
hóa bởi Chuẩn mã hóa DES, đồng thời cũng giả định rằng bản mã đƣợc mã
hóa theo chế độ mã cơ bản (ECB). Tức là bản rõ đƣợc chia nhỏ thành các
khối độc lập, mỗi khối 64 bit. Mỗi khối này đƣợc mã hóa bởi cùng một
khóa k nào đó để tạo ra các khối mã 64 bit độc lập.
1.4. Độ an tồn của DES
Ngoại trừ các bảng S, mọi tính tốn trong DES đều tuyến tính, tức là
việc tính phép hoặc loại trừ của hai đầu ra cũng giống nhƣ phép hoặc loại
trừ của hai đầu vào, rồi tính tốn đầu ra. Các bảng S chứa đựng nhiều thành
phần phi tuyến của hệ mật, là yếu tố quan trọng nhất đối với độ an tồn của
hệ thống.
Số khóa có thể là 256, không gian này là nhỏ để đảm bảo an toàn thực
sự. Nhiều thiết bị chuyên dụng đã đƣợc đề xuất nhằm phục vụ tấn công với
một cặp bản rõ - bản mã đã biết. Phép tấn công này chủ yếu thực hiện theo
phƣơng pháp “vét cạn”. Tức là với bản rõ X và bản mã Y tƣơng ứng (64
bit), mỗi khóa có thể đƣợc kiểm tra cho tới khi tìm đƣợc một khóa K thỏa
mãn ek(X) = Y.
7



Chƣơng II. CÁC PHƢƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA
DỮ LIỆU DES, CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ
THÁM MÃ DES
2.1. Một số khái niệm cơ bản
Có thể phân loại các phƣơng pháp thám mã nói chung, thám mã DES
dựa trên nhiều góc độ, nhƣng về cơ bản, có các phƣơng pháp thám mã nhƣ
sau:
- Thám mã đường tắt là phƣơng pháp thám mã dựa trên các phân tích
tốn học, thống kê và cấu trúc chi tiết bên trong thuật tốn mã hóa hóa/giải
mã, để từ đó có các thống kê về xác suất, các hệ phƣơng trình tuyến tính,...
của hệ mã hóa giúp rút ngắn thời gian phá mã so với “thám mã vét cạn”.
Các phƣơng pháp thám mã đƣờng tắt đã đƣợc cơng bố gồm có thám mã vi
sai, thám mã tuyến tính, thám mã phi tuyến, thám mã vi sai tuyến tính v.v..
- Thám mã hộp đen hoàn toàn khác với thám mã đƣờng tắt, phƣơng
pháp thám mã này khơng phân tích chi tiết thuật tốn mã hóa mà xem nó
nhƣ là một “hộp đen” để dị tìm khóa khi biết bản rõ, bản mã hoặc chỉ biết
bản mã. Phƣơng pháp này có thể áp dụng cho hệ mật mã khối bất kỳ. Độ
phức tạp tính tốn của phƣơng pháp này chỉ phụ thuộc vào các tham số nhƣ
độ dài khóa và độ dài khối mã. Thơng thƣờng, khi ngƣời ta nói đến các
phƣơng pháp “thám mã vét cạn”, “tấn công vét cạn”, “tấn công bạo lực”
(brute-force attack), hay “tấn công dùng bạo lực” (attacks using force) thì
đều đƣợc hiểu là phƣơng pháp thám mã hộp đen.
Ngồi ra, với giả định khi ngƣời thám mã đã biết thuật toán mã hoá
(đối với một hệ mã hoá xác định), chúng ta có thể phân loại thám mã dựa
trên các số lƣợng thông tin đƣợc biết về bản rõ, bản mã, gồm Thám mã chỉ
biết bản mã, Thám mã chỉ biết bản tin rõ, Thám mã với bản rõ được chọn,
Thám mã với bản mã được chọn. Trong mọi trƣờng hợp thám mã này, mục
đích là tìm ra khóa mật đƣợc sử dụng cho hệ mã hoá.
2.2. Các phƣơng pháp thám mã DES

2.2.1. Thám mã đƣờng tắt
8


Các phƣơng pháp thám mã đƣờng tắt đã đƣợc công bố gồm có thám
mã vi sai, thám mã tuyến tính, thám mã phi tuyến, thám mã vi sai tuyến
tính, thám mã tích phân, phƣơng pháp thám mã vi sai bậc cao, thám mã nội
suy v.v..
2.2.2. Thám mã hộp đen (vét cạn để tìm khố) [1][2][8]
Thám mã hộp đen nói chung và tấn cơng vét cạn nói riêng là phƣơng
pháp thám mã khơng phân tích sâu cấu trúc bên trong của hệ mật mã. Cơ sở
của phƣơng pháp này chủ yếu dựa vào sức mạnh của các hệ thống tính tốn
hiệu năng cao để thực hiện vét cạn và tìm ra khoá mật. Đây là phƣơng pháp
thám mã đơn giản nhất đối với hệ mật mã khối. Việc thám mã đơn thuần
chỉ là thử tất cả các khóa, khóa này nối tiếp khóa kia, cho đến khi tìm ra
khóa đúng. Nhƣ vậy, trong trƣờng hợp xấu nhất ta cần phải thử 2l khóa, nếu
độ dài khóa là l. Và riêng đối với hệ DES thì trƣờng hợp xấu nhất ta cần
phải thử 256 khóa (khoảng hơn 72 triệu tỷ khóa).
Trong mọi trƣờng hợp thám mã nói trên, mục đích là tìm ra khóa mật
đƣợc sử dụng cho hệ mã hố. Dựa vào cách thức phân loại thám mã này để
xác định bài toán thám mã đƣợc nghiên cứu, đề xuất trong đề tài này thuộc
phƣơng pháp thám mã hộp đen, đồng thời là thám mã chỉ biết bản mã, và
ngƣời thám mã biết thuật tốn mã hóa/giải mã (có thể truy cập vào chức
năng mã hóa/giải mã của DES).
2.3. Các hệ thống chun dụng thám mã DES
Cơng việc thám mã nói chung và thám mã hộp đen, vét cạn để tìm
khóa nói riêng do có khơng gian khóa thử là rất lớn, độ phức tạp tính tốn
cao. Do vậy, thám mã khơng thể sử dụng những máy tính thơng thƣờng mà
cần phải sử dụng các hệ thống tính tốn hiệu năng cao, hay các hệ thống
vận dụng đƣợc đồng thời rất nhiều nguồn lực tính tốn. Cụ thể, các hệ

thống này gồm có các phần cứng chuyên dụng thám mã, điện tốn lƣới,
điện tốn đám mây, siêu máy tính, máy tính song song, hệ thống máy tính
cụm cluster v.v.. Đặc biệt, đối với thuật tốn di truyền thám mã rất thích
hợp với ứng dụng các máy tính song song hoặc hệ thống tính tốn song
song (hệ thống máy tính cụm - cluster).

9


Chƣơng III. NGHIÊN CỨU, ĐỀ XUẤT PHƢƠNG PHÁP THÁM MÃ
DES
3.1. Mơ tả bài tốn
Vơi bản mã cho trƣớc đƣợc mã bởi Chuẩn mã hóa dữ liệu DES và bởi
chế độ mã hóa cơ bản ECB của DES từ bản rõ là một thông điệp tiếng Anh,
đồng thời ngƣời thám mã có thể truy cập đƣợc vào các chức năng mã hóa,
giải mã DES. Từ các giả thiết này, yêu cầu ứng dụng thuật tốn di truyền để
dị tìm khóa mật k đã sử dụng để mã hóa bản mã và tìm ra bản rõ.
Do q trình chạy thuật tốn, máy tính phải thử giải mã bản mã với số
lƣợng rất lớn các khóa k (tồn bộ khơng gian khóa của DES là 256 khóa). Vì
vậy, để giảm thời gian tính toán, bản mã cho trƣớc cần đƣợc chia nhỏ thành
các khối 8 byte (64 bit). Từ đây, việc thám mã, dị tìm khóa đƣợc thực hiện
dựa trên một phần 64 bit bất kỳ của bản mã.
Bản rõ ?
(64 bit)

Khoá mật K
(56 bit) ?

Bản mã Y
(64 bit)


DES-1
(Chế độ ECB)

DES
(Chế độ ECB)

Thuật tốn
dị tìm khố mật ?
Bản mã Y
(64 bit)

Khố K (56 bit) ?
Bản rõ (64 bit) ?

(a) Giả thiết

(b) Bài toán đặt ra

Hình 3.1. Mơ tả giả thiết (a) và bài toán thám mã DES (b)
Với giả thiết bài toán nhƣ trên, tác giả đề xuất phƣơng pháp thám mã
hộp đen áp dụng thuật toán di truyền với sự hỗ trợ của hệ thống tính tốn
song song.
Theo nhƣ phần tìm hiểu về phƣơng pháp thám mã hộp đen, công việc
thám mã khơng cần phân tích chi tiết thuật tốn bên trong DES, mà xem
10


nhƣ các biến đổi bên trong khối mã là một “hộp đen”. Do vậy, thám mã ở
đây thực chất là thực hiện vét cạn khóa trên khơng gian đã đƣợc giới hạn.

Tuy nhiên, sự “vét cạn” là “có định hƣớng” nhờ thuật tốn di truyền, và sự
“tiến hóa” qua các thế hệ (vịng lặp) của thuật tốn di truyền.
3.2. Xây dựng thuật toán nhận dạng bản rõ tiếng Anh
3.2.1. Vai trò của nhận dạng bản rõ tự động trong thám mã “vét cạn”
Sinh khóa

Sinh khóa

Giải mã tồn bộ bản mã

Giải mã một phần bản mã

Đọc bằng mắt thƣờng

Module nhận dạng
bản rõ tự động

Đọc đƣợc
Sai

(là bản rõ tiếng Anh)?

Đọc đƣợc
Sai

Đúng

(là bản rõ tiếng Anh)?
Đúng


Ghi nhận khóa đúng

Ghi nhận khóa đúng,
giải mã cho đến hết

Kết thúc

Kết thúc

(a) Nhận dạng bản rõ thủ cơng

(b) Nhận dạng bản rõ tự động

Hình 3.2. So sánh thám mã dựa trên nhận dạng bản rõ thủ công (a)
và nhận dạng bản rõ tự động (b) [1], [3]
Hình 3.2 cho thấy rõ vai trò quan trọng của module hay thuật toán
nhận dạng bản rõ đối với thám mã vét cạn khi số lƣợng khóa thử là rất lớn.
Cụ thể, ví dụ tồn bộ khơng gian khóa của DES là 256 khóa (khoảng 209) tỷ
khóa, của AES có thể là là 2128, 2192, hoặc 2256 khóa...

11


3.2.2. Một số phương pháp nhận dạng “bản rõ” tự động
Hiện nay đã có một số phƣơng pháp nhận dạng “bản rõ” nhƣ nhận
dạng dựa vào từ điển, nhận dạng dựa trên tập hợp từ, cụm từ giả định, nhận
dạng dựa vào thống kê đặc trƣng của ngôn ngữ. Trong đó, phƣơng pháp
dựa vào thống kê đặc trƣng của ngơn ngữ có ƣu điểm nhanh hơn, chính xác
hơn so với các phƣơng pháp khác.
3.2.3. Xây dựng thuật toán nhận dạng bản rõ dựa vào phương pháp

thống kê đặc trưng ngôn ngữ
a) Đặt bài toán
Trong phạm vi đề tài luận văn này, bài toán cụ thể đƣợc đặt ra nhƣ
sau: giả sử trên cơ sở nào đó, máy tính nhận đƣợc một dãy các ký tự X =
x1x2...xm. Trong đó, xi ∈ A = {a, b, c,..., z}, i =1, 𝑚. Hãy xây dựng một
thuật tốn để máy tính trả lời cho câu hỏi: dãy X là “bản rõ” tiếng Anh hay
là dãy giả ngẫu nhiên (một dãy vô nghĩa)?
b) Cách tiếp cận
Đặc trƣng của một chữ viết thuộc ngôn ngữ nào đó có thể đƣợc xác
định dựa trên thống kê tần suất đơn hoặc tần suất bộ đôi của sự xuất hiện
các chữ cái. Phần này sẽ tập trung nghiên cứu xây dựng thuật toán nhận
dạng “bản rõ” tự động dựa trên thống kê tần suất bộ đôi.
Tần suất bộ đôi là xác suất để một chữ cái liền kề sau chữ cái khác hay
xác suất để hai chữ cái bất kỳ trong bảng chữ cái đứng cạnh nhau. Đặc
trƣng này của ngơn ngữ đƣợc thể hiện ở mơ hình nổi tiếng đƣợc ứng dụng
rộng rãi trong lĩnh vực xử lý ngơn ngữ tự nhiên - Mơ hình xích Markov.
Dựa vào mơ hình này để xây thuật tốn giúp máy tính phân biệt đƣợc chữ
viết một ngơn ngữ xác định với một xâu ký tự ngẫu nhiên, hoặc phân biệt
chữ viết của hai hay nhiều ngôn ngữ khác nhau. Tuy nhiên, trong phạm vi
nghiên cứu của đề tài, việc xây dựng thuật toán nhận dạng “bản rõ”
(“valid” plain-text) là để phân biệt đƣợc một thông điệp tiếng Anh với một
xâu ký tự ngẫu nhiên. Trong trƣờng hợp này, xâu ký tự ngẫu nhiên đƣợc
sinh ra do thực hiện giải mã bản mã cho trƣớc (“valid” cipher-text) bởi một
khóa thử bất kỳ, mà khơng phải là khóa đúng.
12


c) Phương pháp giải
Đối với xâu đầu vào X chỉ cần tính tần số bộ đơi, tức số lần xuất hiện
các bộ đơi chữ cái trong xâu (khơng cần tính tần suất), các bộ đôi chữ cái

(thuộc không gian 262 bộ đôi) không xuất hiện trong xâu X coi nhƣ có tần
số bằng 0. Từ đây, kết hợp với đặc trƣng tần suất bộ đôi đã đƣợc lƣu vào cơ
sở dữ liệu để kết luận xâu X là “bản rõ”, hay dãy ngẫu nhiên, vô nghĩa.
d) Hàm kiểm tra “bản rõ”
Hàm để kiểm tra xâu đầu vào X có phải là “bản rõ” hay không đƣợc
xây dựng nhƣ sau:
𝑧

𝑧

𝐹=

𝑠

𝑥,𝑦

𝑡 𝑥,𝑦

𝑥=𝑎 𝑦=𝑎

trong đó, các giá trị s(x, y) là đặc trƣng tần suất bộ đơi đƣợc tính tốn trƣớc,
lƣu vào cơ sở dữ liệu (phần off-line) và trình bày ở Phụ lục 2, các giá trị t(x,
y) là tần số bộ đơi đƣợc tính từ xâu đầu vào X (phần on-line).
Nếu F ≥ 0 thì X là mẫu ngẫu nhiên, khơng đọc đƣợc, tức X không phải
là bản rõ; ngƣợc lại, nếu F < 0 thì X là bản rõ tiếng Anh, có nghĩa và đọc
đƣợc.
Thuật tốn nhận dạng bản rõ cùng với “tiêu chuẩn bản rõ” của nó là cơ
sở để xây dựng “hàm phù hợp” (finness function) - một thành phần rất quan
trọng của thuật tốn di truyền.
3.3. Tìm hiểu thuật toán di truyền

Thuật toán di truyền bắt đầu giống nhƣ bất kỳ thuật toán tối ƣu nào
khác, bằng cách định nghĩa các biến tối ƣu, chi phí và hàm chi phí, và cũng
kết thúc tƣơng tự các thuật tốn khác. Tuy nhiên, các thành phần khác ở
giữa tồn bộ tiến trình của mỗi thế hệ thì hồn tồn khác. Chúng hoạt động
tƣơng tự các diễn biến tự nhiên trong sinh học. Đặc điểm, chất lƣợng dân số
qua các thế hệ thể hiện sự tiến hóa tự nhiên theo một quy luật, hay một xu
13


hƣớng nào đó (của mơi trƣờng sống). Sự “tiến hóa” này giúp thuật tốn tìm
dần đƣa ra đƣợc các giải pháp tốt, và cuối cùng tìm đƣợc một giải pháp
chấp nhận đƣợc (hội tụ).

Định nghĩa chi phí,
hàm chi phí, các biến,
chọn lọc các tham biến GA
Tạo dân số ban đầu
Mã hóa các nhiễm sắc thể
Tính chi phí
mỗi nhiễm sắc thể
Chọn lọc
Ghép cặp, sinh sản
Đột biến

Khơng

Kiểm tra hội tụ


Kết thúc

Hình 3.5. Biểu đồ luồng của thuật toán di truyền nhị phân [12, pp.29]
3.4. Đề xuất phƣơng pháp thám mã DES
3.4.1. Xây dựng thuật tốn di truyền dị tìm khóa
Vận dụng kết quả nghiên cứu thuật toán di truyền nhị phân và đặc
trƣng của bài toán thám mã hộp đen để xây dựng quy trình dị tìm khóa
đúng nhƣ hình dƣới đây:
14


Định nghĩa hàm phù hợp,
các biến
Tạo lập họ khóa khởi tạo
100 khóa

Giải mã bản mã cho trƣớc
với các khóa trong họ
Tính các giá trị mức phù hợp
của các bản giải mã

100 khóa

Kiểm tra hội tụ ?

Khơng

Loại bỏ 50% khóa
có mức phù hợp thấp
50 khóa

Chọn từng cặp khóa để kết hợp

Kết hợp,
sinh khóa mới
Đột biến

Kết thúc

Hình 3.7. Quy trình thám mã dựa trên thuật toán di truyền
3.4.1.1. Xác định hàm phù hợp (hàm chi phí)
Đối với bài tốn thám mã, dị tìm khóa, độ phù hợp các khóa (của các
nhiễm sắc thể) khơng đƣợc tính một cách trực tiếp từ các khóa k mà đƣợc
tính từ bản giải mã X = Dk(Y)
Mức phù hợp khóa k = Mức phù hợp của X = f(X)
15


Ứng dụng kết quả nghiên cứu xây dựng “tiêu chuẩn bản rõ” dựa trên
tần suất móc xích bộ đơi chữ cái tiếng Anh, ta xác định hàm phù hợp
Fitness(X) nhƣ sau:
𝑧

𝑧

𝑓=

𝑠

𝑥,𝑦

𝑡 𝑥,𝑦


𝑥=𝑎 𝑦=𝑎

trong đó, s(x, y) là đặc trƣng về tần suất bộ đơi móc xích của chữ cái tiếng
Anh đƣợc tính tốn trƣớc (Phụ lục 2); t(x, y) là tần số bộ đơi tính đƣợc từ
mẫu đầu vào X.
3.4.1.2. Tạo lập họ khóa khởi tạo
Trƣớc khi các vịng lặp của thuật tốn di truyền tự sinh khóa mới theo
một quy luật đƣợc xác định, cần phải tạo lập tập khóa khởi tạo. Tập khóa
này chỉ gồm một phần nhỏ trong khơng gian khóa mà thuật tốn di truyền
sẽ hội tụ. Số lƣợng tập khóa khởi tạo (dân số khởi tạo) là tùy ý nhƣng trong
trƣờng hợp này số lƣợng đƣợc chọn là 100 khóa (ký hiệu là tập P).
Sinh khóa mới

Giải mã 8 byte
bản mã Y cho trƣớc

Sai

Gồm các ký tự
thuộc bảng chữ cái
(tiếng Anh)
Đúng
Tập khóa khởi tạo P
thuộc khơng gian {K2}

Tập P đạt
100 khóa

Sai


Đúng
Kết thúc

Hình 3.8. Quy trình tạo lập tập khóa khởi tạo P gồm 100 khóa
16


Khơng gian khóa {K2} là khơng gian khóa gồm các khóa k nếu sử
dụng để giải mã Y thì cho kết quả là xâu X gồm các chữ cái tiếng Anh.
Theo nhƣ đã tìm hiểu về thuật tốn di truyền thì ký hiệu Npop là dân
số khởi tạo, Nbits là số bit của nhiễm sắc thế, nên ở đây, Npop = 100 do họ
khóa khởi tạo P là 100, và Nbits = 64, vì mỗi khóa của DES có 64 bit (gồm
cả 8 bit kiểm tra chẵn lẻ - parity). Nhƣ vậy, họ khóa k khởi tạo là một ma
trận gồm các bit khơng (0) và một (1), có 100 dòng, 64 cột.
3.4.1.3. Giải mã bản mã cho trước với các khóa trong họ
Khơng giống nhƣ áp dụng thuật tốn di truyền trong các trƣờng hợp
khác, để tính tốn mức độ phù hợp (chí phí) cho các khóa, thuật tốn khơng
tính trực tiếp trên các bit khóa, mà dựa trên bản giải mã. Tại đầu mỗi vòng
lặp hay mỗi thế hệ, thuật toán thực hiện giải mã lần lƣợt các khoá trong họ
k1, k2, ..., k100 đã đƣợc chọn:
Dki(Y) = X(i) = x(i)1 x(i)2 ... x(i)8, i = 1,100
3.4.1.4. Tính mức độ phù hợp của các khóa
Mức phù hợp của các khóa k đƣợc tính dựa trên hàm phù hợp f(X).
Q trình tính tốn trong một thế hệ đƣợc lập thành bảng sau đây:
Bảng 3.3: Tính tốn mức độ phù hợp của các khoá
trong một thế hệ
STT

ki


Fitness

1

k1,1k1,2 ... k1,64

f1

2

k2,1k2,2 ... k2,64

f2

3

k3,1k3,2 ... k3,64

f3

...

...

...

100

k100,1k100,2 ... k100,64


f100

trong đó, fi đƣợc xác định ở biểu thức (3.14) ứng với khoá ki, i = 1,100
3.4.1.5. Chọn lọc
Sau khi xác định đƣợc các giá trị của hàm phù hợp, các khóa ki đƣợc
sắp xếp theo thứ tự từ giá trị thấp nhất đến giá trị cao nhất của fi, i = 1,100.
Trên cơ sở đó, 50 khóa có mức phù hợp thấp nhất sẽ bị loại, 50 khóa có
17


mức phù hợp cao nhất đƣợc giữ lại để ghép cặp, kết hợp và tạo ra thế hệ
mới.
3.4.1.6. Ghép cặp
Ghép cặp từ trên xuống tuy không gần với sự chọn lọc tự nhiên so với
các phƣơng pháp ghép cặp khác nhƣng đƣợc áp dụng trong trƣờng hợp này
để ghép cặp khóa k làm bố mẹ với lý do thời gian, độ phức tạp tính tốn
nhỏ. Tức là, các khố ở các vị trí lẻ i = 1, 3, ..., 49 đƣợc xác định là bố, các
khố ở các vị trí chẵn i = 2, 4, ..., 50 đƣợc xác định là mẹ. Q trình ghép
cặp để sinh sản đƣợc mơ tả nhƣ sau:
Bố(1) + Mẹ(2) → Con(51), Con(52)
Bố(3) + Mẹ(4) → Con(53), Con(54)
....
Bố(49) + Mẹ(50) → Con(99), Con(100)
hay:
k1 + k2 → k51, k52
k3 + k4 → k53, k54
....
k49 + k50 → k99, k100
3.4.1.7. Kết hợp
Để mơ tả q trình kết hợp, các khoá ki = ki1 ki2 ... ki8 ... ki64 đƣợc biểu

diễn thành các byte (mỗi byte gồm 8 bit) đƣợc đánh số từ 1 đến 7:
ki = ki(1) ki(2) ki(3) ki(4) ki(5) ki(6)ki(7) ki(8).
là:

Chẳng hạn khi khoá k1 kết hợp với khoá k2 sẽ tạo ra hai con k51 và k52
k51 = k1(1) k2(2) k1(3) k2(4) k1(5) k2(6)k1(7) k2(8)
k52 = k2(1) k1(2) k2(3) k1(4) k2(5) k1(6)k2(7) k1(8)

Tiến hành nhƣ vậy đối với 24 cặp bố mẹ còn lại để tạo ra 24 cặp con
cái. Kết thúc giai đoạn sinh sản này, họ khoá trở về số lƣợng 100 nhƣ ban
đầu.

18


3.4.1.8. Đột biến
Để mơ tả q trình đột biến, ta vẫn sử dụng ký hiệu khoá ki = ki1 ki2 ...
ki8 ... ki64 để biểu thị 64 bit của một khoá (gồm cả 8 bit kiểm tra chẵn lẻ parity).
Chọn tỷ lệ đột biến là 10% (µ = 0,1). Nếu ký hiệu Npop là số lƣợng các
khoá tham gia đột biến, Nbit là số lƣợng các bit của một khoá. Chú ý là
không thực hiện đột biến đối với nhiễm sắc thể có mức phù hợp cao nhất
(cần giữ lại làm kết quả cuối cùng hoặc để phục vụ sinh sản). Khi đó số
lƣợng các bit đột biến sẽ là:
#mutations=µ(Npop–1).Nbit = 0,1(100-1).64 = 633,6
≈ 634
Các giá trị mrow (hàng), mcol (cột) đƣợc tạo ngẫu nhiên nhƣ sau:
mrow = ceil(rand(1,µ)*(Npop-1))+1
mcol = ceil(rand(1,µ)*Nbits)
và Npop = 100, Nbits = 64 cho nên 634 giá trị mrow đƣợc tạo ra một cách
ngẫu nhiên trong giới hạn 99 số tự nhiên từ 1 đến 99, do nhiễm sắc thể đầu

tiên (đƣợc đánh chỉ số là 0) không tham gia đột biến; 634 giá trị mcol đƣợc
tạo ra một cách ngẫu nhiên trong giới hạn 64 số tự nhiên đầu tiên (từ 0 đến
63). Chẳng hạn,
mrow = [5 92 6 21 11 2 6 8 7 ... 68 15 7 3 5 34]
554 thành phần
mcol = [2 12 5 18 56 1 44 3 11 ... 26 9 18 4 19 31]
554 thành phần
Với các giá trị mrow và mcol đƣợc tạo ra nhƣ trên, 634 bit đột biến sẽ
là các bit ở các toạ độ dòng và cột tƣơng ứng (5, 2), (92, 12), (6, 5), ..., (5,
19), (34, 31). Những bit tại các toạ độ này nếu có giá trị là 0 thì sẽ đƣợc
chuyển thành 1, và ngƣợc lại.
Mã lệnh đột biến cho một phần tử của ma trận các bit nhƣ sau:
pop(mrow,mcol)=1-pop(mrow,mcol)
19


Sau khi thực hiện xong sự đột biến cho 634 bit của họ, thuật toán tiếp
tục thế hệ mới với công việc đầu tiên là giải bản mã gốc với 100 khố (đã
qua kết hợp và đột biến) rồi tính các giá trị mức phù hợp (fitness) để xác
định f1, f2, ..., f100 tƣơng ứng. Sau đó sắp xếp lại các khoá (nhiễm sắc thể)
của họ khoá theo thứ tự các giá trị fi thấp nhất đến cao nhất. Dựa trên bảng
phân hạng mức phù hợp này, thực hiện kiểm tra sự hội tụ. Nếu chƣa có hội
tụ, tiếp tục loại 50 khố có giá trị fi cao nhất, giữ lại 50 khố có giá trị fi
thấp nhất. 50 khố đƣợc giữ lại này lại tiếp tục các tiến trình ghép cặp, kết
hợp, đột biến. Ở mỗi thế hệ, kể từ thế hệ thứ hai đều lặp lại bắt đầu từ bƣớc
giải bản mã cho trước với các khoá trong họ.
3.4.1.9. Kiểm tra hội tụ
Quá trình lặp trên đây cứ tiếp tục diễn ra từ thế hệ này đến thế hệ khác
cho đến khi có sự hội tụ. Sự hội tụ sẽ đạt đƣợc khi tìm đƣợc một khố ki
nào đó để có thể giải mã và cho kết quả là “bản rõ”. Nói cách khác, điều

kiện hội tụ của thuật tốn là khi đạt ngưỡng hay tìm đƣợc một giá trị hàm
phù hợp fi có giá trị âm (f(Xi) < 0). Khoá ki tƣơng ứng với giá trị fi âm đó là
khố phải tìm. Đến đây, thuật tốn kết thúc.
3.4.2. Ƣớc lƣợng thời gian, độ phức tạp tính tốn
Thời gian chạy của thuật toán cho đến khi đạt sự hội tụ phải trải qua
nhiều giai đoạn, nhƣng tiêu tốn nhất là các tiến trình tạo lập tập khóa khởi
tạo P, duyệt, giải mã với các khóa và tính các hàm “phù hợp” của các khóa
trong các vịng lặp (các thế hệ). Vì vậy, việc ƣớc lƣợng thời gian, độ phức
tạp tính tốn để thuật tốn hội tụ tập trung vào ba loại tiến trình này. Thời
gian tính tốn đƣợc ƣớc lƣợng (thực hiện trên một máy tính có một bộ vi xử
lý CPU Pentium IV với tốc độ trung bình) căn cứ vào:
- Thời gian giải mã của DES là 35 Kb/s [15]
- Thời gian tính tốn hàm phù hợp giả định là 100 Kb/s
a) Thời gian tạo lập tập khóa khởi tạo P
Số lƣợng các xâu ký tự có độ dài 8 ký tự (8 byte) gồm các chữ cái
tiếng Anh là 268 do bảng chữ cái tiếng Anh có 26 chữ cái. Đồng thời, do sự
tƣơng ứng 1 - 1 giữa bản giải mã X với khoá k nên có 268 khố k thuộc
khơng gian khóa K2, tƣơng đƣơng khoảng 209 tỷ khóa k. Đồng thời, tồn
bộ khơng gian khóa K của DES là 256 khóa (khoảng 72 triệu tỷ khóa), nên
20


theo tỷ lệ và xác suất, để tìm đƣợc 100 khóa thuộc khơng gian khóa K2
trong tồn bộ khơng gian khóa K thì cần phải thử khoảng:
100 x (72 triệu tỷ khóa / 209 tỷ khóa) ≈ 34.500.000 khóa.
Với tốc độ 35 Kb/s thì mỗi giây DES duyệt 4.375 khóa để giải mã 8
byte bản mã. Có nghĩa, để thử với giải mã 1 khóa, cần tiêu tốn 1/4.375
giây, hay Td = 0,000229. Do vậy, thời gian tạo lập tập P gồm 100 khóa là
Tp = 34.500.000 x 0,000229 = 7900 giây (khoảng 132 phút).
b) Thời gian tính tốn qua các thế hệ

Giả định rằng, thuật toán di truyền thám mã đạt đƣợc sự hội tụ qua
2.000.000 thế hệ. Khi đó, số lƣợng khóa k phải duyệt là 2.000.000 x 100 =
200.000.000 khóa (trong số 256 hay khoảng 72 triệu tỷ khóa của tồn bộ
khơng gian khóa của DES), và chỉ bằng khoảng một phần ba trăm sáu mƣơi
triệu (1 / 360.000.000) so với vét cạn tồn bộ khơng gian khóa.
Thời gian duyệt một khóa trong mỗi vịng lặp gồm:
- Thời gian giải mã bản mã cho trƣớc với khóa đƣợc duyệt
- Thời gian tính giá trị hàm phù hợp của bản giải mã tƣơng ứng với
khóa đƣợc duyệt.
Với tốc độ 35 Kb/s để giải mã bản mã cho trƣớc, thì để giải mã với
một khóa bất kỳ thì cần một khoảng thời gian là 0,000229 giây (hay Td =
0,000229 giây).
Với tốc độ 100 Kb/s (100.000 byte /s), thì để tính mức phù hợp cho
một khóa (bản giải mã 8 byte tƣơng ứng với khóa đó) cần một khoảng thời
gian khoảng 0,00008 giây (hay Tf = 0,00008 giây).
Ở mỗi vòng lặp, việc giải mã và tính giá trị phù hợp thực hiện đối với
100 khóa, nên giá trị Npop đƣợc xác định là 100, vậy
Tp = 100 x (0,000229 + 0,00008) = 0,0309 (giây).
Tổng thời gian tính tốn qua 2.000.000 vòng lặp là 2.000.000 x 0,0309
= 61.800 giây (khoảng 1.030 phút).
c) Tổng thời gian tính tốn

21


Tổng thời gian thám mã = thời gian tạo lập tập khóa P gồm 100 khóa =
tổng thời gian của các vòng lặp = 132 phút + 1.030 phút = 1.162 phút
(khoảng 19,4 giờ).
3.4.3. Vai trị của hệ thống tính toán hiệu năng cao
Theo tài liệu Thuật toán di truyền thực hành của Randy L. Haupt và

Sue Ellen Haupt (2004) [12] thì tổng thời gian chạy của một thế hệ (một
vịng lặp) thuật tốn di truyền trên hệ thống tính tốn song song đƣợc tính
nhƣ sau:
𝑇𝑝 =

𝑁𝑝𝑜𝑝 𝑇𝑓
+ 𝜌 𝑃 − 1 𝑇𝑐
𝑃

(3.14) [12, pp.141]

Trong đó, Tf: thời gian định giá hàm “phù hợp”, Tc: thời gian trung
bình truyền dữ liệu từ một bộ vi xử lý tới một bộ vi xử lý khác, P: số lƣợng
bộ vi xử lý, 𝜌: tham biến phụ thuộc vào phƣơng pháp lập trình, đặc điểm
hệ thống tính tốn song song, Npop: là dân số của một thế hệ.
Với đặc trƣng bài toán thám mã, đẳng thức 3.14 có thể đƣợc bổ sung
nhƣ sau:
𝑇𝑝 =

𝑁𝑝𝑜𝑝 (𝑇𝑓 + 𝑇𝑑 )
𝑃

+ 𝜌 𝑃 − 1 𝑇𝑐 ,

(3.15)

trong đó Td là thời gian giải bản mã (8 byte) với một khóa thử k bất
kỳ.
Nếu áp dụng mơ hình tính tốn song song đối thuật tốn di truyền đó
là “GA master - slaver” một cách hiệu quả, thì thời gian truyền thông hay

giá trị 𝜌 𝑃 − 1 𝑇𝑐 là khơng đáng kể và có thể bỏ qua khi ƣớc lƣợng tổng
thời gian tính tốn. Trong trƣờng hợp này mơ hình sẽ đạt hiệu quả cao, tăng
tốc khoảng 100 lần khi sử dụng một máy chủ (master) và 100 thành viên
(slave).
Thời gian thám mã khi ứng dụng mô hình GA master - slave có 100
máy slave nói trên là:
1.162 phút / 100 = 11,62 phút.

22


×