Tải bản đầy đủ (.doc) (76 trang)

Tìm hiểu chuẩn mật mã dữ liệu DES (data encryption standard) và đánh giá độ an toàn

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 (887.49 KB, 76 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG

NGUYỄN THỊ THỦY

TÌM HIỂU CHUẨN MẬT MÃ DỮ LIỆU DES (DATA
ENCRYPTION STANDARD) VÀ ĐÁNH GIÁ ĐỘ AN TOÀN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2014


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG

NGUYỄN THỊ THỦY

TÌM HIỂU CHUẨN MẬT MÃ DỮ LIỆU DES (DATA
ENCRYPTION STANDARD) VÀ ĐÁNH GIÁ ĐỘ AN TOÀN
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

HƯỚNG DẪN KHOA HỌC: TS. HỒ VĂN CANH

THÁI NGUYÊN - 2014
Số hóa bởi Trung tâm Học liệu



/>

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi,
không sao chép của ai do tôi tự nghiên cứu, đọc, dịch tài liệu, tổng hợp và thực
hiện. Nội dung lý thuyết trong trong luận văn tôi có sử dụng một số tài liệu tham
khảo như đã trình bày trong phần tài liệu tham khảo. Các số liệu, chương trình phần
mềm và những kết quả trong luận văn là trung thực và chưa được công bố trong bất
kỳ một công trình nào khác.
Thái Nguyên, … tháng …. năm 2014
Học viên thực hiện

Nguyễn Thị Thủy

Số hóa bởi Trung tâm Học liệu

/>

LỜI CẢM ƠN
Để hoàn thành chương trình cao học và viết luận văn này, tôi đã nhận
được sự hướng dẫn, giúp đỡ và góp ý nhiệt tình của quý thầy cô trường Đại học
Công nghệ thông tin và Truyền Thông Thái Nguyên.
Trước hết, tôi xin chân thành cảm ơn đến quý thầy cô trường Đại học
Công nghệ thông tin và Truyền thông Thái Nguyên, đặc biệt là những thầy cô đã
tận tình dạy bảo cho tôi suốt thời gian học tại trường.
Tôi xin gửi lòng biết ơn sâu sắc đến Thầy giáo: TS. Hồ Văn Canh đã
dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp tôi hoàn
thành luận văn tốt nghiệp.
Nhân đây, tôi xin chân thành cảm ơn Ban giám hiệu trường Đại học Công

nghệ thông tin và Truyền thông Thái Nguyên cùng quý thầy cô trong khoa Khoa
học máy tính và khoa sau đại học đã tạo điều kiện để tôi học tập và hoàn thành
tốt khoá học.
Mặc dù tôi đã có nhiều cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt
tình và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót, rất
mong nhận được những đóng góp quý báu của quý thầy cô và các bạn.
Tôi xin thành cảm ơn !
Thái Nguyên, Ngày ……tháng…… năm 2014
Học viên

Nguyễn Thị Thủy

Số hóa bởi Trung tâm Học liệu

/>

i

MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC................................................................................................................... i
DANH MỤC BẢNG BIỂU ....................................................................................... ii
DANH MỤC HÌNH VẼ ............................................................................................ iii
MỞ

ĐẦU

.....................................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ BẢO MẬT THÔNG TIN ......................................2

1.1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN DỮ LIỆU ......................................2
1.2 KHÁI NIỆM MẬT MÃ VÀ MẬT THÁM...........................................................3
1.3 MỤC TIÊU VÀ NGUYÊN TẮC CHUNG CỦA AN TOÀN BẢO MẬT
THÔNG TIN ...............................................................................................................3
1.4 PHÂN LOẠI CÁC THUẬT TOÁN MẬT MÃ HỌC...........................................4
1.5 CÁC ĐẶC TRƯNG CƠ BẢN CỦA BẢN TIN RÕ .............................................5
1.5.1
Tần
................................................................................................................5

số:

1.5.2. Sự trùng lặp .......................................................................................................6
1.6 TIÊU CHUẨN BẢN RÕ ......................................................................................7
1.7 CÁC BƯỚC CƠ BẢN ĐỂ TIẾN HÀNH THÁM MÃ .........................................8
CHƯƠNG 2: TÌM HIỂU VỀ CHUẨN MẬT MÃ DỮ LIỆU DES VÀ ĐÁNH GIÁ
ĐỘ AN TOÀN ..........................................................................................................13
2.1 HỆ MÃ DES .......................................................................................................13
2.1.1 Mô tả hệ mật.....................................................................................................13
2.1.2 Mã hoá và giải mã DES ...................................................................................20
2.1.3 Một số ví dụ. ....................................................................................................21
2.2 MỘT SỐ PHƯƠNG PHÁP THÁM MÃ DES ....................................................25
2.2.1 Thám mã vi sai. ................................................................................................25
2.2.1.1. Thám mã hệ DES – 3 vòng ..........................................................................29
2.2.1.2
Thám

hệ
..............................................................................34
Số hóa bởi Trung tâm Học liệu


DES

6-vòng

/>

2.2.1.3 Các thám mã vi sai khác...............................................................................40

Số hóa bởi Trung tâm Học liệu

/>

2.2.2 Thám mã tuyến tính đối với DES. ...................................................................40
2.2.2.1 Nguyên lý chung của phương pháp thám mã tuyến tính đối với hệ DES .....40
2.2.2.2 Xấp xỉ tuyến tính các hộp nén.......................................................................44
2.2.2.3 Xấp xỉ tuyến tính hệ mã DES........................................................................45
2.2.2.4 Tấn công bản rõ đã biết đối với hệ mã DES .................................................49
2.2.3. Thám mã phi tuyến đối với DES.....................................................................50
2.2.3.1 Thiết lập các quan hệ bậc hai của hộp S .......................................................51
2.2.3.2 Áp dụng vào thám mã phi tuyến ...................................................................51
2.3 ĐÁNH GIÁ ĐỘ AN TOÀN CỦA DES .............................................................53
2.3.1 Các đặc trưng an toàn cơ bản cả một hệ mã khối ............................................53
2.3.2 Đánh giá chung về độ mật của DES ................................................................53
2.3.3 Ưu điểm của hệ mật mã DES ...........................................................................54
2.3.4 Các điểm yếu của DES.....................................................................................54
2.3.4.1 Tính bù: .........................................................................................................54
2.3.4.2 Khóa yếu .......................................................................................................54
2.3.4.3 DES có cấu trúc đại số ..................................................................................55
2.3.4.4 Không gian khóa K ......................................................................................56

2.4 ĐỀ XUẤT MỘT CÁCH KHẮC PHỤC NHƯỢC ĐIỂM ..................................56
CHƯƠNG 3: MÔ PHỎNG THUẬT TOÁN DES .....................................................58
3.1 PHÂN TÍCH BÀI TOÁN....................................................................................58
3.2 PHẠM VI ỨNG DỤNG......................................................................................58
3.3 KẾT QUẢ MÔ PHỎNG .....................................................................................58
3.3.1 Thiết kế kiến trúc .............................................................................................58
3.3.2 Thiết kế giao diện .............................................................................................59
KẾT LUẬN. ..............................................................................................................61
TÀI LIỆU THAM KHẢO.........................................................................................62


ii

DANH MỤC BẢNG BIỂU
Bảng 1.1 : Bảng tần số đơn tiếng Việt không dấu ......................................................6
Bảng 2.1 Bảng chọn bit .............................................................................................16
Bảng 2.2: Các khóa yếu của DES .............................................................................54
Bảng 2.3 : Các khóa nửa yếu của DES .....................................................................55


iii

DANH MỤC HÌNH VẼ
Hình 2.1. Biểu diễn dãy 64 bit x thành 2 thành phần L và R....................................13
Hình.2.2: Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1và khóa Ki ........13
Hình 2.3 Hàm f..........................................................................................................14
Hình 2.4 : Mô tả quá trình tạo khoá ..........................................................................19
Hình 2.5. Mô hình DES với quy ước mới .................................................................42
Hình 2.6. Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vòng. .............................................46
Hình 2.7. Sơ đồ xấp xỉ tuyến tính hệ mã DES 5 vòng. .............................................48

Hình 3.1 Sơ đồ chức năng của chương trình mô phòng............................................58
Hình 3.2 Giao diện chính của chương trình mô phỏng .............................................59
Hình 3.3 Giao diện mã hóa và giải mã ......................................................................60


1

MỞ ĐẦU
Ngày nay, khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng,
các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng phát triển
ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý
tưởng và biện pháp bảo vệ thông tin dữ liệu cũng ngày càng được đổi mới. Bảo
vệ an toàn thông tin dữ liệu và một chủ đề rộng, có liên quan đến nhiều lĩnh vực
và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an
toàn thông tin dữ liệu.
Trong số các phương pháp đảm bảo an toàn thông tin thì phương pháp mật
mã hoá (cryptography) được sử dụng rộng rãi và đảm bảo an toàn nhất. Tuy nhiên
phương pháp mật mã hoá cũng có những nhược điểm quan trọng, nếu là phương
pháp mật mã hoá không tốt (mặc dù việc quản lý khoá mã được giả thiết là an toàn)
thì rất nguy hiểm. Vậy làm thế nào để đánh giá được chất lượng một hệ mật mã là
tốt? Hiểu được tính cấp thiết và quan trọng nên tôi chọn đề tài “Tìm hiểu chuẩn mật
mã dữ liệu DES (Data Encryption Standard) và đánh giá độ an toàn”. Luận văn
đóng góp một phần nhỏ vào việc nhìn nhận và đánh giá một hệ mật an toàn từ đó
xây dựng các phương pháp bảo mật tốt hơn.
Luận văn gồm các chương sau:
-

Chương 1: Tổng quan về bảo mật thông tin

-


Chương 2: Tìm hiểu về chuẩn mật mã DES và đánh giá độ an toàn

-

Chương 3: Chương trình mô phỏng thuật toán DES


2

CHƯƠNG 1
TỔNG QUAN VỀ BẢO MẬT THÔNG TIN
1.1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN DỮ LIỆU
Trải qua nhiều thế kỷ hàng loạt các giao thức (Protocol) và cơ chế
(Mechanism) đã được tạo ra để đáp ứng nhu cầu an toàn bảo mật thông tin khi nó
được truyền tải trên các hệ thống truyền tin số. Thường thì các mục tiêu của an toàn
bảo mật thông tin không thể đạt được nếu chỉ đơn thuần dựa vào các thuật toán toán
học và các giao thức, mà để đạt được điều này đòi hỏi cần có các kỹ thuật mang tính
thủ tục và sự tôn trọng mang tính điều luật. Chẳng hạn sự bí mật của các bức thư tay
là do sự phân tán các lá thư đã có đóng dấu bởi dịch vụ thư tín đã được chấp nhận.
Tính an toàn về mặt vật lý của các lá thư là hạn chế (nó có thể bị xem trộm) nên để
đảm bảo sự bí mật của bức thư pháp luật đưa ra quy định: việc xem thư mà không
được sự đồng ý của chủ nhân hoặc những người có thẩm quyền là phạm pháp và sẽ
bị trừng phạt. Đôi khi mục đích của an toàn bảo mật thông tin lại đạt được nhờ chính
phương tiện vật lý mang chúng, chẳng hạn như tiền giấy đòi hỏi phải được in bằng
loại mực và giấy tốt để không bị làm giả.
Về mặt lý tưởng việc lưu giữ thông tin là không có nhiều thay đổi đáng kể qua
thời gian. Ngày xưa thông tin thường được lưu và vận chuyển trên giấy tờ, trong khi
giờ đây chúng được lưu dưới dạng số hoá và được vận chuyển bằng các hệ thống
viễn thông (các hệ thống có dây hoặc không dây). Tuy nhiên sự thay đổi đáng kể

đến ở đây chính là khả năng sao chép và thay đổi thông tin. Người ta có thể tạo ra
hàng ngàn mẫu tin giống nhau và không thể phân biệt được nó với bản gốc. Với các
tài liệu lưu trữ và vận chuyển trên giấy điều này khó khăn hơn nhiều. Và điều cần
thiết đối với một xã hội mà thông tin hầu hết được lưu và vận chuyển trên các
phương tiện điện tử chính là các phương tiện đảm bảo an toàn bảo mật thông tin độc
lập với các phương tiện lưu trữ và vận chuyển vật lý của nó. Phương tiện đó chính là
mật mã học, một ngành khoa học có lịch sử lâu đời dựa trên nền tảng các thuật toán
toán học, số học, xác suất và các môn khoa học khác.


3

1.2 KHÁI NIỆM MẬT MÃ VÀ MẬT THÁM
Mật mã đã được con người sử dụng từ lâu đời. Khoảng 4000 năm trước, để tỏ
lòng tôn kính những người đã chết, người Ai Cập đã khắc những mã hiệu tượng hình
lên các ngôi mộ. Qua nhiều thế kỷ, phương pháp mật mã cũng đã có nhiều biến đổi.
Chúng ta tạm phân mã làm hai phần, mật mã cổ điển và mật mã “hiện đại”.Mật mã
hiện đại gồm mật mã đối xứng và mật mã không đối xứng. Mật mã hiện nay đang
phát triển mạnh như mật mã khoá với thuật toán: DES, 3 DES, IDEA, Feal, AES,
RSA….Còn mật mã cổ điển là mật mã được mã hoá và giải mã bằng thủ công, mật
mã loại này ra đời sớm nhất, nó được sử dụng phát triển lâu đời và cơ sở, nền tảng
để phát triển mật mã hiện nay.
Một số khái niệm mật mã và mã thám.
- Mật mã (Cryptography): mật mã là tập hợp mọi phương pháp (hoặc quy tắc)
biến đổi nào đó nhằm chuyển các đoạn tin (messages) dưới dạng nhận thức được nội
dung (như chữ viết, tiếng nói, hình ảnh…) thành dạng bí mật mà những người ngoài
không hiểu được nội dung nếu họ không biết được phương pháp biến đổi nó.
- Bản tin rõ (Plain text): Bản rõ tức là một bản tin có mang nội dung thông tin
mà người đọc có thể hiểu được nó nói cái gì hoặc là nó có ý nghĩa rõ ràng. Bản tin rõ
có thể tồn tại dưới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng… tương ứng ta sẽ có

khái niệm mã ký tự, mã thoại, mã fax, mã dữ liệu..
- Bản mã mật (Cipher text): Bản mã mật thường được biểu diễn dưới dạng
một dãy các ký hiệu hoặc có thể cũng thuộc bảng chữ cái những không theo một quy
tắc cú pháp nào cả. Có thể xem đó là dãy ngẫu nhiên.
- Mã thám: Quá trình khôi phục lại bản rõ hoặc khoá mã khi chỉ có bản mã
mật tương ứng cho trước được gọi thám mã.
1.3 MỤC TIÊU VÀ NGUYÊN TẮC CHUNG CỦA AN TOÀN BẢO MẬT
THÔNG TIN
Ba mục tiêu của an toàn bảo mật thông tin:
- Tính bí mật: Tài sản của hệ thống chỉ được truy cập bởi những người có
thẩm quyền. Các loại tuy cập gồm có: đọc (reading), xem (viewing), in ấn (printing),
sử dụng chương trình, hoặc hiểu biết về sự tồn tại của một đối tượng trong tổ chức.


4

Tính bí mật có thể được bảo vệ nhờ việc kiểm soát truy cập ( theo nhiều kiểu khác
nhau) hoặc nhờ các thuật toán mã hóa dữ liệu. Kiểm soát truy cập chỉ có thể được
thực hiện với các hệ thống phần cứng vật lý. Còn đối với các dữ liệu công cộng thì
thường phương pháp hiệu quả là các phương pháp của mật mã học.
- Tính toàn vẹn dữ liệu: Tài sản của hệ thống chỉ được thay đổi bởi những
người có thẩm quyền.
- Tính sẵn dùng: Tài sản luôn được sử dụng bởi những người có thẩm quyền.
Hai nguyên tắc của an toàn bảo mật thông tin:
- Việc thẩm định về bảo mật phải là khó và cần tính tới tất cả các tình huống,
khả năng tấn công có thể được thực hiện.
- Tài sản được bảo vệ cho tới khi hết giá trị sử dụng hoặc hết ý nghĩa bí mật.
1.4 PHÂN LOẠI CÁC THUẬT TOÁN MẬT MÃ HỌC
Có nhiều các khác nhau để chúng ta có thể phân loại thuật toán mật mã học, ở
đây chúng ta sẽ phân loại các thuật toán mật mã học dựa vào hai tiêu chí.

Tiêu chí thứ nhất là dựa vào các dịch vụ an toàn bảo mật mà các thuật
toán cung cấp, dựa vào số lượng khóa sử dụng (0, 1, 2) chúng ta có các thuật
toán mã hóa sau:
1. Các thuật toán mã hóa khóa bí mật tương ứng với các hệ mã khóa bí mật
hay đối xứng SKC ( Symmetric Key cryptosytems), do vai trò của người nhận và
người gửi là như nhau, cả hai đều có thể mã hóa và giải mã thông điệp, như
Caesar, DES, AES…Khóa sử dụng cho các thuật toán này là 1 khóa cho cả việc
mã hóa và giải mã.
2. Các thuật toán mã hóa khóa công khai tương ứng với các hệ mã khóa công
khai PKC (Public Key Cryptosystems). Đôi khi các hệ mã này còn được gọi là các
hệ mã khóa bất đối xứng (Asymmetric Key Crytosytems). Khóa sử dụng cho các
thuật toán này là 2 khóa, một cho việc mã hóa và một cho việc giải mã, khóa mã hóa
được công khai hóa.
3. Các thuật toán tạo chữ ký điện tử (Digital Signature Algorthms). Các thuật
toán tạo chữ ký điện tử tạo thành các hệ chữ ký điện tử. Thông thường mỗi hệ chữ
ký điện tử có cùng cơ sở lý thuyết với một hệ mật mã khóa công khai nhưng với
cách áp dụng khác nhau: RSA, EIGamma,…


5

Tiêu chí thứ hai phân loại các thuật toán mã hóa dựa trên cách thức xử lý input
của thuật toán ( tức là bản rõ), dựa trên tiêu chí này chúng ta có hai loại thuật toán
mã hóa sau:
1. Các thuật toán mã hóa khối ( chẳng hạn như: DES, AES,…) xử lý bản rõ
dưới các đơn vị cơ bản là các khối có kích thước giống nhau.
2. Các thuật toán mã hóa dòng (RC4…) coi bản rõ là một luồng bít, byte liên
tục.
1.5 CÁC ĐẶC TRƯNG CƠ BẢN CỦA BẢN TIN RÕ
Để nghiên cứu thám mã được các bản mã mật thường người mã thám phải

nghiên cứu các đặc trưng cơ bản của bãn tin rõ. Đó là quy luật tần số, quy luật trùng
lặp, quy luật văn phong…Nói một cách khác trong mọi ngôn ngữ tự nhiên đều có
những đặc trưng bất biến mà mã thám viên cần nắm vững để phục vụ việc phân tích
các bản mã. Để tiện nghiên cứu luận văn dùng tiếng Anh làm đối tượng nghiên cứu
trong toàn bộ luận văn.
1.5.1 Tần số:
Tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay một vần…trong một
văn bản là số lần xuất hiện của nhóm ký tự, từ, vần trong văn bản đã cho. Người ta
có thể tính tần số từ một hoặc nhiều bản tin của một loại ngôn ngữ nào đó để rút ra
những quy luật riêng của ngôn ngữ đó. Có nhiều loại tần số như: tần số từng ký tự
(tần số đơn), tần số từng cặp 2 ký tự (tần số từng bộ đôi). Ngay tần số bộ đôi cũng có
nhiều cách tính khác nhau như:
-

Tần số bộ đôi thông thường.

-

Tần số bộ đôi móc xích.

-

Tần số bộ k ký tự.

-

Ngoài ra còn có: tần số từ, tần số vần chứ cái, tần số các nhóm nguyên âm,

tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ.
Sau đây là kết quả tính toán các tần số đơn tiếng Việt theo kiểu thứ tự, không

dấu, có dấu viết theo kiểu điện báo và có dấu thông thường. Do tiếng việt khá phức
tạp nên việc tính tần số bộ đôi móc xích của chúng trong luận văn chưa được nghiên
cứu tới. Việc thống kê các tần số của tiếng Việt không dấu và có dấu đã được ghi lại
ở bảng sau:


6

Bảng 1.1 : Bảng tần số đơn tiếng Việt không dấu
(tính trên khoảng 1.300.000 ký tự)
Ký tự

Tần số
Xuất hiện

Tần suất

A

123887

0.0953

B

13295

0.0107

C


67432

0.0519

D

38427

0.0296

E

47162

0.0363

F

1324

0.0010

G

52189

0.0401

H


87047

0.0670

I

77204

0.0594

J

246

0.0002

K

11426

0.0088

L

15987

0.0123

M


22670

0.0174

N

124204

0.0955

O

86968

0.069

P

19537

0.0150

Q

7681

0.0059

R


18585

0.0143

S

14065

0.0108

T

74674

0.0574

U

74220

0.0571

V

23011

0.0177

W


476

0.0004

X

3336

0.0026

Y

16766

0.0129

Z

152

0.0001

SPACE
1.5.2. Sự trùng lặp

294214
0.2263
(Nguồn: [3, tr12])


Ghi chú


Sự trùng lặp là một quy luật của bất cứ ngôn ngữ tự nhiên nào. Đó là đặc trưng
thứ hai của ngôn ngữ được thể hiện trên các bản tin (sau đây gọi là bản tin rõ).
Ngoài quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không
thể thiếu đối với công tác thám mã truyền thống.
1.6 TIÊU CHUẨN BẢN RÕ
Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám mã,
đặc biệt là thám mã hiện đại. Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng các ngôn ngữ
tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng lặp. Hai
quy luật này đã bị biến mất đối với bản mã mật. Đối với mã hoá càng phức tạp thì
hai quy luật này hoàn toàn bị biến mất. Như vậy bản rõ và bản mã mật về cơ bản
khác nhau về hai quy luật này. Giả sử nhà mã mật nhận được một (hoặc một số) bản
mã mật và bằng cách nào đó, họ đã biết được thuật toán mã hoá (và giải mã).
Tuy không biết được mã hoá và giải mã (dịch) cụ thể nhưng nhà mã thám có
thể biết tất cả khả năng có thể của khoá. Từ đó, người ta thử cho đầu vào là bản mã
và khoá (dự đoán) lấy trong không gian khoá rồi thử dịch. Kết quả đầu ra sẽ là một
dãy nào đó (có thể đọc được có nghĩa cũng có thể không có nghĩa gì cả) mà ta vẫn
gọi là bản rõ. Nhưng bản rõ này nói chung chưa thể hiện được quy luật tần số và
trùng lặp. Nó chỉ thể hiện được quy luật tần số và trùng lặp nếu khoá mà ta đưa vào
là đúng hoặc có sai cũng chỉ sai một vài ký tự. Nhưng làm cách nào để biết được
quy luật tần số và trùng lặp được thể hiện trên bản rõ mà ta vừa tạo ra (từ khoá và
bản mã ban đầu được gọi là bản mã gốc).
Tiêu chuẩn bản rõ giúp ta tự động xác định” bản rõ” nào thể hiện quy luật tần
số và trùng lặp. Nhờ tiêu chuẩn bản rõ nhà mã thám có thể phân chia không gian
khoá thành hai nhóm, một nhóm cho phép tạo ra được bản rõ có quy luật tần số và
trùng lặp, một nhóm gồm các khoá còn lại. Trong thực tế, nhóm gồm các khoá cho
phép tạo ra “bản rõ” có quy luật là rất ít so với nhóm còn lại. Từ đó chúng ta tiến
hành kiểm tra tiếp và kết hợp với mắt thường, chúng ta giải ra được bản rõ ban đầu

cần tìm và khoá mà ta mong muốn.


Có nhiều phương pháp khác nhau để tạo ra các “ tiêu chuẩn bản rõ” khác nhau.
Do không gian khoá thường rất lớn, nên cần có một tiêu chuẩn bản rõ, với tốc độ
tính toán càng nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán được ưu
tiên số một.
1.7 CÁC BƯỚC CƠ BẢN ĐỂ TIẾN HÀNH THÁM MÃ
Sau khi nhận được các bức điện mã hoá, các nhà phân tích mật mã (mã thám)
cần thực hiện một loạt các bước nghiên cứu nhằm khôi phục được bản rõ (hoặc
khoá) từ các bản mã nhận được. Sau đây là một số bước cơ bản nhất:
Bước 1: Phân loại bản mã.
Sau khi nhận được một số bức điện mã, các nhà phân tích mật mã cần phân loại
xem những bức điện mã có cùng một loại mã pháp hay không, có cùng một loại
khoá mã hay không, mặc dù chúng ta chưa biết được mã pháp (phương pháp mã
hoá) của các bức điện đó, nhưng chúng vẫn cần được phân loại (phân lớp). Đây là
một bước quan trọng quyết định sự thành công hay thất bại nên mất rất nhiều thời
gian. Nếu việc phân loại chính xác thì sẽ thuận lợi cho các bước tiến hành tiếp theo,
ngược lại thì sẽ gây khó khăn cho các bước tiếp theo.
Người ta có nhiều phương pháp thực thi giai đoạn này, một trong số đó là áp
dụng kỹ thuật phân lớp các đối tượng. Ý tưởng của bài toán phân lớp như sau:
Giả sử ta nhận được m bản mã: M1,M2,…..,Mm với m ≥ 2. Mỗi bản mã ta gọi là
một đối tượng. Tập hợp m bản mã (các đối tượng) ta ký hiệu là G.
Vậy G = {M1,M2,…..,Mm }, ứng với mỗi đối tượng ta cần tìm ra các đặc trưng tham
số. Giả sử đối tượng Mi có pi đặc trưng. Ở đây ta giả thiết
p1 = p2=…=pm = p. Vấn đề đặt ra là hãy phân tập hợp G thành k lớp không giao
nhau mà ta ký hiệu là G1, G2 ,…,Gk sao cho:
i. Gi ≠ 0 i= 1,k
ii. Gi


k
i 1

iii. G1

∩ Gj i≠j
G2

…..

Gk =

k
i

1

Gi =G


và sao cho sai sót trong phân lớp là bé nhất có thể được. Để thực hiện việc phân lớp
các đối tượng ta cần đưa ra một độ đo” khoảng cách” giữa các đối tượng. Các đối
tượng càng “ gần gũi” nhau sẽ được gán cho cùng một lớp.
Bước 2: Xác định mã pháp.
Sau khi hoàn thành việc phân lớp (phân loại mã pháp) ở bước một, chúng ta tiến
hành xác định phương pháp mã dịch ứng với từng lớp cụ thể (cần chú ý rằng, thường
thì chúng ta tiến hành xác định mã pháp đối với các bản mã có nhiều đặc điểm nhất
theo quan điểm của các nhà thám mã). Đây là một khâu rất quan trọng của công tác
thám mã truyền thống. Tuy nhiên đối với một số hệ mật đối xứng hiện đại như mã
DES, 3 DES, AES, IDEA, PGP….thì bước này coi như bỏ qua bởi ngay từ đầu bản

mã, người ta đã chỉ ra rằng bản mã đó thuộc loại mã pháp nào. Ở đây chỉ trình bày
cách thức xác định mã pháp đối với các luật mã truyền thống (bước này được bỏ qua
đối với những hệ mật mà thuật toán mã hoá - phương pháp mã - được công khai
hoàn toàn). Bước này bao gồm các công việc sau đây:
a. Tính tần số:
Mục đích tính tần số là để phát hiện tính quy luật không ngẫu nhiên tồn tại
trong bản mã. Có rất nhiều loại tần số khác nhau cần tính, mà mỗi mã pháp có thể
tồn tại tính không ngẫu nhiên (có quy luật) đối với loại mã khác nhau. Tuỳ thuộc
vào kinh nghiệm của từng nhà phân tích, người ta tiến hành tính tần số loại phù hợp
nhất, thông qua đó có thể bộc lộ rõ nhất tính quy luật trong bản mã. Việc tính tần số
thường gồm:
- Tính tần số đơn: tần số đơn là tần số từng ký tự trong bản mã.
- Tính tần số móc xích: tần số móc xích là tần số bộ đôi nhưng các cặp kề đè
lên nhau một ký tự. Mục đích của việc tính tần số bộ đôi móc xích là để xem quan
hệ phụ thuộc giữa ký tự sau với ký tự kề ngay trước đó như thế nào (ta thường gọi là
quan hệ xích Markov cấp 1). Từ đó có thể ước lượng được xác suất hiện một ký tự
nào đó khi biết trước ký tự đứng ngay trước nó.
- Tính tần số bộ đôi thường: tần số bộ đôi thường là tần số bộ đôi rời nhau


- Tính tần số bộ 3, 4, 5.. : tuỳ theo từng trường hợp cụ thể đôi khi chúng ta phải
tính tần số bộ 3, 4, 5..
b. Tính trùng mã :
Tính trùng mã tức là tính tần số trùng lặp của các dãy ký tự liền nhau trong bản
mã. Thường tính trùng lặp 3 ký tự (bộ 3), 4 ký tự (bộ 4), 5 ký tự (bộ 5),.. có thể xuất
hiện trong bản mã và vị trí của chúng trong bản mã đó.
Khi tính trùng mã ta phải quan tâm các tham số sau đây:
1. Tần số trùng mã (trùng lặp).
2. Độ dài trùng lặp
3. Vị trí các trùng lặp

4. Khoảng cách giữa các trùng lặp
5. Trùng mã trong một bản mã và trong các bản mã khác nhau.
Những tham số trên đây rất có ích trong việc xác định mã pháp.
c. Phân tích kết quả tính các tần số và trùng mã.
Bước này dựa vào các kết quả tính các loại tần số, trùng mã để kết luận bản
mã( các bản mã), đó thuộc loại mã pháp nào. Để đánh giá độ chênh lệch tần số hoặc
tính độc lập của các ký tự trong văn bản. Nói chung việc xác định mã pháp là công
việc rất phức tạp, nó phụ thuộc một phần vào trình độ và kinh nghiệm của các mã
thám viên. Có nhiều trường hợp thoáng nhin bản mã người ta đã dự đoán được
phương pháp mã nhưng cũng có rất nhiều trường hợp phải nghiên cứu rất công phu
mà độ rủi ro không phải là không có.
Bước 3: Thám mã.
Giả sử đã xác định được mã pháp tại bước thứ 2, nay chuyển sang nghiên cứu,
phân tích bản mã (thám mã). Bước này cũng có 2 công đoạn:
a. Thám mã trực tiếp:
Nếu mã pháp thuộc loại truyền thống đã biết như các mã pháp thủ công hoặc
được mã bằng một máy cụ thể nào đó mà ta đã có thuật toán thám mã thì có thể tiến


hành thám mã trực tiếp (thực hiện thủ công và sau đó có thể tự động hoá bằng lập
trình trên máy tính).
b. Xây dựng phương pháp thám mã:
Nếu phương pháp thuộc loại mới, công việc yêu cầu phức tạp hơn. Đó là phải
xây dựng phương pháp thám mã. Nhìn chung có hai phương pháp thám mã:
-

Phương pháp phân tích.
Phương pháp phân tích được sử dụng trong trường hợp nhà mã thám đã biết

được cấu trúc khoá mã đã được sử dụng làm “ mầm khoá” để mã hoá bản mã này.

Khi đó có nhiều kiểu để xác định khoá có thể, Ví dụ: Phương pháp „thử sai‟, phương
pháp „lượng sai‟, phương pháp „ những phần tử tách biệt‟
-

Phương pháp dự đoán.
Phương pháp này chủ yếu dựa vào thông tin tiên nghiệm về khoá và thông tin

về bản mã (quy luật ngôn ngữ) để dự đoán khoá được sử dụng.
Nội dung phương pháp này là dự đoán cụm từ có thể xuất hiện trong bản rõ gốc ứng
với bản mã, sau đó tìm cách xác định khoá đúng. Nếu khoá là đúng thì có thể dịch
bản mã để cho ra bản rõ…
Ngoài một số phương pháp truyền thống trên, ngày nay nhờ tốc độ máy tính
đã được đã được cải thiện đáng kể, trong những bài toán mà không gian khoá
không quá lớn người ta còn có thể áp dụng một phương pháp nữa đó là „vét cạn‟.
Đối với không gian khoá lơn, đây thật sự là phương pháp tồi nếu chúng ra chỉ
thực hiện „vét cạn‟ một cách thông thường. Tuy nhiên nếu áp dụng đồng thời các
kỹ thuật bổ trợ thì nó vẫn phát huy được hiệu quả tốt. Các kỹ thuật hỗ trợ được
nói tới ở đây là xây dựng một thư viện phục vụ việc „vét cạn‟ bao gồm cơ sở dữ
liệu về khoá và các tiêu chuẩn bản rõ tốt. Trên cơ sở dò tìm cách phân hoạch
không gian khoá S thành hai tập con rời nhau là S1 và S2 sao cho khoá đúng sẽ
„chắc chắn‟ thuộc một trong hai tập con đó. Từ đó tiến hành sử dụng thuật toán
vét cạn trên tập con có chứa khoá đúng, khi đó việc vét cạn trong tập con nhanh
chóng thể hiện tính hiệu lực của nó. Việc này cũng có thể ngay đối với một số


phương pháp truyền thống đã có được kết quả đáng ngạc nhiên. Khi thám mã ra
bản rõ ta chỉ cần đọc được lỗ chỗ đã là thành công vì lúc đó bằng quy luật ngôn
ngữ ta sẽ khôi phục được bản rõ gốc như mong muốn.
Ngày nay, người ta đã có những công cụ tính toán cực nhanh nhờ công nghệ
Cluster. Từ đó người ta có thể xây dựng mạng tính toán song song với tốc độ tính

toán đạt với gần 100GF (một trăm tỷ phép tính dấu phảy động trên một giây). Như
vậy người ta có phân rã bài toán để thực hiện việc tính toán song song cực kỳ hiệu
quả, đặc biệt đối với những bài toán có độ phức tạp tính toán.


CHƯƠNG 2
TÌM HIỂU VỀ CHUẨN MẬT MÃ DỮ LIỆU DES
VÀ ĐÁNH GIÁ ĐỘ AN TOÀN
2.1 HỆ MÃ DES
2.1.1 Mô tả hệ mật
Phương pháp DES mã hóa đoạn tin x có độ dài 64 bit với khóa k có độ dài 56
bit thành một đoạn tin y có độ dài 64 bit. Thuật toán mã hóa bao gồm 3 giai đoạn:
1. Với đoạn tin cần mã hóa x có độ dài 64 bit, tạo ra đoạn tin x0 (cũng có độ dài
64 bit) bằng cách hoán vị các bit trong đoạn tin x theo một hoán vị cho trước IP
(Initial Permutation). Biểu diễn x0 = IP(x) = L0R0, L0 gồm 32 bit bên trái của x0, R0
gồm 32 bit bên phải của x0
L0

R0

32

32
X0

Hình 2.1. Biểu diễn dãy 64 bit x thành 2 thành phần L và R
2. Xác định các cặp đoạn tin 32 bit Li, Ri với 1 i

16 theo quy tắc sau:


Li = Ri-1
Ri = Li-1
với

f (Ri-1, Ki)

biểu diễn phép toán XOR trên hai dãy bit, K1, K2, ..., K16 là các dãy 48

bit phát sinh từ khóa K cho trước (Trên thực tế, mỗi khóa Ki được phát sinh bằng
cách hoán vị các bit trong khóa K cho trước).
Li-1

Ri-1

f

Li

Ki

Ri

Hình.2.2: Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1và khóa Ki


-1

3. Áp dụng hoán vị ngược IP đối với dãy bit R16L16, thu được đoạn tin y gồm 64
-1


bit. Như vậy, y = IP (R16L16)
A

J

E

E(A)

+

Hàm f được sử dụng ở bước 2 là

B1

B2

B3

B4

S1

S2

S3

S4

C1


B5
S5

B6
S6

B7

B8

S7

C2 C3 C4 C5 C6 C7 C8

P

f(A,J)

Hình 2.3 Hàm f

S8


Hàm f có gồm 2 tham số: Tham số thứ nhất A là một dãy 32 bit, tham số thứ hai
J là một dãy 48 bit. Kết quả của hàm f là một dãy 32 bit. Các bước xử lý của hàm
f(A, J)như sau:
Tham số thứ nhất A (32 bit) được mở rộng thành dãy 48 bit bằng hàm mở
rộng E. Kết quả của hàm E(A) là một dãy 48 bit được phát sinh từ A bằng cách
hoán vị theo một thứ tự nhất định 32 bit của A, trong đó có 16 bit của A được lập lại

2 lần trong E(A).
Thực hiện phép toán XOR cho 2 dãy 48 bit E(A) và J, ta thu được một dãy 48
bit B. Biểu diễn B thành từng nhóm 6 bit như sau:B = B1B2B3B4B5B6B7B8
Sử dụng 8 ma trận S1, S2,..., S8, mỗi ma trận Si có kích thước 4 16 và mỗi
dòng của ma trận nhận đủ 16 giá trị từ 0 đến 15. Xét dãy gồm 6 bit Bj = b1b2b3b4b5b6,
Sj(Bj) được xác định bằng giá trị của phần tử tại dòng r cột c của Sj, trong đó, chỉ số
dòng r có biểu diễn nhị phân là b1b6, chỉ số cột c có biểu diễn nhị phân là b2b3b4b5.
Bằng cách này, ta xác định được các dãy 4 bit Cj = Sj(Bj), 1

j

8.

Tập hợp các dãy 4 bit Cj lại. ta có được dãy 32 bit C = C1C2C3C4C5C6C7C8.
Dãy 32 bit thu được bằng cách hoán vị C theo một quy luật P nhất định chính là kết
quả của hàm F(A, J)
Hoán vị khởi tạo IP như sau:
IP
58

50

42

34

26

18


10

2

60

52

44

36

28

20

12

4

62

54

46

38

30


22

14

6

64

56

48

40

32

24

16

8

57

49

41

33


25

17

9

1

59

51

43

35

27

19

11

3

61

53

45


37

29

21

13

5

63

55

47

39

31

23

15

7


Điều này có nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của
x là bit thứ hai của IP(x) v.v.
-1


Hoán vị ngược IP sẽ là:
IP

-1

40

8

48

16

56

24

64

32

39

7

47

15


55

23

63

31

38

6

46

14

54

22

62

30

37

5

45


13

53

21

61

29

36

4

44

12

52

20

60

28

35

3


43

11

51

19

59

27

34

2

42

10

50

18

58

26

33


1

41

9

49

17

57

25

Hàm mở rộng E được đặc tả theo bảng sau:
Bảng 2.1 Bảng chọn bit
E – bảng chọn bit
32

1

2

3

4

5

4


5

6

7

8

9

8

9

10

11

12

13

12

13

14

15


16

17

16

17

18

19

20

21

20

21

22

23

24

25

24


25

26

27

28

29

28

29

30

31

32

1


×