Tải bản đầy đủ (.pdf) (70 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 (882.28 KB, 70 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
Số hóa bởi Trung tâm Học liệu

ĐẠ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 số: 5
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 mã hệ DES 6-vòng 34
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



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


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

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

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 L
i
R
i
từ dãy 64 bit L
i-1
R
i-1
và khóa K
i
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

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

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



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

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.

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

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.

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

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,…

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

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:

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

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
Ghi chú
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
294214
0.2263

(Nguồn: [3, tr12])
1.5.2. Sự trùng lặp

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

7
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.

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

8
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ã: M
1
,M
2
,… ,M
m
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 = {M
1
,M
2
,… ,M
m
}, ứ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 M
i
có p
i

đặc trƣng. Ở đây ta giả thiết
p
1
= p
2
=…=p
m
= 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à G
1
, G
2
,…,G
k
sao cho:
i. G
i
≠ 0 i= 1,k
ii. G
i

1
k
i
∩ G
j
i≠j
iii. G
1
G

2 …
G
k
=
1
k
i
G
i
=G

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

9
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

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

10
- 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

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

11
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ố

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

12
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.

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


13
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 x
0
(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 x
0
= IP(x) = L
0
R
0
, L
0
gồm 32 bit bên trái của x
0
, R
0

gồm 32 bit bên phải của x
0

L
0

R
0
32 32
X
0

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 L
i
, R
i
với 1 i 16 theo quy tắc sau:
L
i
= R
i-1
R
i
= L
i-1
f (R
i-1
, K
i
)
với biểu diễn phép toán XOR trên hai dãy bit, K
1
, K
2
, , K

16
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 K
i
đƣợc phát sinh bằng
cách hoán vị các bit trong khóa K cho trƣớc).
L
i
-1
R
i
-1
f
K
i
L
i
R
i

Hình.2.2: Quy trình phát sinh dãy 64 bit L
i
R
i
từ dãy 64 bit L
i-1
R
i-1
và khóa K
i



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

14
3. Áp dụng hoán vị ngƣợc IP
-1
đối với dãy bit R
16
L
16
, thu đƣợc đoạn tin y gồm 64
bit. Nhƣ vậy, y = IP
-1
(R
16
L
16
)















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











Hình 2.3 Hàm f
A
B
1
B
2
B
3
B
4
B
5
B
6
B

7

B
8








S
1

J
E(A)
S
2

S
3

S
4

S
5

S

6

S
7

S
8

C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8









f(A,J)
E
+
P

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

15
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 = B
1
B
2
B
3
B
4
B
5
B
6

B
7
B
8

Sử dụng 8 ma trận S
1
, S
2
, , S
8
, mỗi ma trận S
i
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 B
j
= b
1
b
2
b
3
b
4
b
5
b
6
,
S

j
(B
j
) đƣợc xác định bằng giá trị của phần tử tại dòng r cột c của S
j
, trong đó, chỉ số
dòng r có biểu diễn nhị phân là b
1
b
6
, chỉ số cột c có biểu diễn nhị phân là b
2
b
3
b
4
b
5
.
Bằng cách này, ta xác định đƣợc các dãy 4 bit C
j
= S
j
(B
j
), 1 j 8.
Tập hợp các dãy 4 bit C
j
lại. ta có đƣợc dãy 32 bit C = C
1

C
2
C
3
C
4
C
5
C
6
C
7
C
8
.
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

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

16
Đ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.
Hoán vị ngƣợc IP
-1
sẽ là:

IP
-1

40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43

42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61

60
59
58
57
32
31
30
29
28
27
26
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
4

8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31

4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1

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

17
Tám hộp S và hoán vị P đƣợc biểu diễn nhƣ sau:
S
1

14
0
4
15
4
15

1
12
13
7
14
8
1
4
8
2
2
14
13
4
15
2
6
9
11
13
2
1
8
1
11
7
3
10
15
5

10
6
12
11
6
12
9
3
12
11
7
14
5
9
3
10
9
5
10
0
0
3
5
6
7
8
0
13

S

2

15
3
0
13
1
13
14
8
8
4
7
10
14
7
11
1
6
15
10
3
11
2
4
15
3
8
13
4

4
14
1
2
9
12
5
11
7
0
8
6
2
1
12
7
13
10
6
12
12
6
9
0
0
9
3
5
5
11

2
14
10
5
15
9

S
3

10
13
13
1
0
7
6
10
9
0
4
13
14
9
9
0
6
3
8
6

3
4
15
9
15
6
3
8
5
10
0
7
1
2
11
4
13
8
1
15
12
5
2
14
7
14
12
3
11
12

5
11
4
11
10
5
2
15
14
2
8
1
7
12

S
4

7
13
10
3
13
8
6
15
14
11
9
0

3
5
0
6
0
6
12
10
6
15
11
1
9
0
7
13
10
3
13
8
1
4
15
9
2
7
1
4
8
2

3
5
5
12
14
11
11
1
5
12
12
10
2
7
4
14
8
2
15
9
4
14

S
5

2
14
4
11

12
11
2
8
4
2
1
12
1
12
11
7
7
4
10
0
10
7
13
14
11
13
7
2
6
1
8
13
8
5

15
6
5
0
9
15
3
15
12
0
15
10
5
9
13
3
6
10
0
9
3
4
14
8
0
5
9
6
14
3

×