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

Một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã

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

i
.

đại học thái nguyên
Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG

Lấ HU TH

MT S PHNG PHP THM M
H MẬT MÃ ĐỐI XỨNG VÀ ỨNG DỤNG TRONG
PHÁT TRIỂN HỆ MT M

LUN VN THC S KHOA HC MY TNH

thái nguyên - năm 2014

S húa bi Trung tõm Hc liu

/>i


ii

đại học thái nguyên
Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG

Lấ HU TH

MT S PHNG PHP THM M
H MẬT MÃ ĐỐI XỨNG VÀ ỨNG DỤNG TRONG
PHÁT TRIỂN HỆ MẬT MÃ



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

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01

Ngƣời hƣớng dẫn khoa học: TS. NGUYỄN DUY MINH

Thái Nguyên, 2014

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

/>ii


iii

LỜI CẢM ƠN
Em xin chân thành cảm ơn trƣờng Đại học Công nghệ thông tin và truyền
thông Thái Nguyên đã tạo điều kiện thuận lợi cho em trong quá trình học tập, công
tác và thực hiện đề tài luận văn.
Em xin nói lên lịng biết ơn sâu sắc và lời cảm ơn chân thành đến thầy giáo
TS. Nguyễn Duy Minh, ngƣời Thầy mà đã ln tận tình hƣớng dẫn, truyền thụ cho
em những kiến thức, kinh nghiệm quý báu và giúp em trong suốt quá trình học tập,
nghiên cứu cũng nhƣ quá trình thực hiện luận văn.
Cuối cùng em xin đƣợc gửi lời cảm ơn sâu sắc tới gia đình, bạn bè, đồng nghiệp
đã luôn ủng hộ, động viên em trong quá trình học tập và thực hiện luận văn này.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhƣng chắc chắn sẽ khơng tránh khỏi những thiếu sót, kính mong nhận đƣợc sự tận
tình chỉ bảo của q thầy cơ và các bạn.

Thái nguyên, Tháng 9 năm 2014

Lê Hữu Thọ

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

/>iii


iv

MỤC LỤC
LỜI CẢM ƠN........................................................................................................................ i
MỤC LỤC ...........................................................................................................................iv
DANH MỤC HÌNH ............................................................................................................vi
LỜI MỞ ĐẦU ...................................................................................................................... 1
CHƢƠNG 1: TỔNG QUAN VỀ CHUẨN MÃ HĨA DỮ LIỆU DES ........................... 3
1.1. Các hệ mã khóa ................................................................................................3
1.1.1. Hệ mật mã đối xứng .................................................................................3
1.1.2. Hệ mật mã bất đối xứng ...........................................................................4
1.2. Chuẩn mã hóa dữ liệu DES..............................................................................6
1.3. Quy trình mã hóa DES .....................................................................................8
1.4. Lập mã và giải mã DES ...................................................................................9
1.5. Các chế độ mã hóa theo DES.........................................................................10
1.6. Độ an toàn của DES .......................................................................................13
1.7. Kết luận ..........................................................................................................14
CHƢƠNG 2: CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ ĐỐI XỨNG ..........16
2.1. Các thuật ngữ cơ bản .....................................................................................16
2.1.1. Mật mã (Cryptography) ..........................................................................16
2.1.2. Bản rõ (Plain text) ..................................................................................16

2.1.3. Bản mã (Cipher text) ..............................................................................16
2.1.4. Phép biến đổi mã/dịch (Encrytion/decryption transformations) ............16
2.2. Thám mã ........................................................................................................17
2.2.1. Khái niệm ...............................................................................................17
2.2.2. Các bƣớc cơ bản để thám mã .................................................................22
2.2.3. Các kiểu tấn công thám mã cơ bản .........................................................28
2.3. Các phƣơng pháp thám mã hệ mã đối xứng ..................................................31
2.3.1. Phƣơng pháp tấn công vét cạn ................................................................31
2.3.2. Phƣơng pháp thám mã tuyến tính ...........................................................32
2.3.3. Phƣơng pháp thám mã vi sai ..................................................................42

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

/>iv


v
2.4. Đánh giá độ an toàn của DES trƣớc một vài phƣơng pháp tấn công phá mã 47
2.5. Kết luận ..........................................................................................................48
CHƢƠNG 3: CÀI ĐẶT MỘT SỐ PHƢƠNG PHÁP THÁM MÃ HỆ MÃ DES ........49
TRONG PHÁT TRIỂN HỆ MẬT MÃ ............................................................................49
3.1. Đặt vấn đề ......................................................................................................49
3.2. Mô tả về DES .................................................................................................50
3.3. Lập mã DES ...................................................................................................62
3.4. Xây dựng chƣơng trình thám mã DES ..........................................................66
3.5. Kết luận ..........................................................................................................71
KẾT LUẬN ........................................................................................................................72
TÀI LIỆU THAM KHẢO .................................................................................................73

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


/>v


vi

DANH MỤC HÌNH
Hình 1.1. Sơ đồ mã hóa DES ............................................................................................... 7
Hình 1.2. Một vịng lặp DES ............................................................................................... 9
Hình 1.3. Mơ phỏng mã hóa (a) và giải mã (b) theo DES ...............................................10
Hình 1.4. Chế độ CBC .......................................................................................................11
Hình 1.5. Chế độ CFB ........................................................................................................12
Hình 2.1. Mơ hình DES với quy ƣớc mới.........................................................................33
Hình 2.2. Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vịng .....................................................37
Hình 2.3. Sơ đồ xấp xỉ tuyến tính hệ mã DES 5 vịng .....................................................40
Hình 2.4. Các xâu vào có thể với XOR vào là 110100 ....................................................45
Hình 3.1. Một vịng của DES ...........................................................................................50
Hình 3.2. Hàm f của DES .................................................................................................52
Hình 3.3. Tính bảng khóa DES..........................................................................................58
Hình 3.4. Giao diện chính của chƣơng trình thám mã DES ............................................67
Hình 3.5. Q trình tạo khóa..............................................................................................68
Hình 3.6. Q trình mã hóa bản rõ ....................................................................................69
Hình 3.7. Q trình giải mã nội dung bản mã ..................................................................70
Hình 3.8. Quá trình thám mã thành cơng ..........................................................................71

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

/>vi



1

LỜI MỞ ĐẦU
Mật mã học là một ngành khoa học về mã hóa dữ liệu nhằm bảo mật thơng
tin. Mã hóa dữ liệu là một q trình mà các dữ liệu dạng văn bản gốc đƣợc chuyển
thành văn bản mật mã để làm nó khơng thể đọc đƣợc. Ngày nay, để đảm bảo sự an
tồn và bí mật của các thơng tin quan trọng, nhạy cảm, vấn đề mã hóa dữ liệu ngày
càng trở nên cấp thiết và đƣợc nhiều ngƣời quan tâm.
Có nhiều phƣơng pháp mã hóa dữ liệu đƣợc đƣa ra. Vậy làm thế nào để đánh
giá đƣợc một phƣơng pháp mã hóa nào là tốt? Hiện nay, có nhiều phƣơng pháp
đánh giá nhƣng phƣơng pháp tốt nhất và trực quan nhất là phƣơng pháp phân tích
trực tiếp bản mã khi khơng có khóa mã trong tay mà ngƣời ta gọi là thám mã.
Ngày nay, nhu cầu trao đổi thông tin mật giữa các thành viên trong một nhóm,
một tổ chức ngày càng lớn thì việc đảm bảo an tồn thơng tin là rất cần thiết. Cùng
với sự phát triển của mật mã nói chung và của các hệ mã đối xứng nói riêng thì thám
mã là một lĩnh vực cũng thƣờng đƣợc quan tâm nghiên cứu, nhƣng ít khi đƣợc công
khai, hoặc công khai không đầy đủ. Mặc dù, trong thời gian qua đã có nhiều kết quả
nghiên cứu về DES đƣợc cơng bố, DES có thể bị phá khóa bởi các hệ thống chun
dụng trong vịng chƣa đầy 24 giờ, nhƣng việc nghiên cứu thám mã DES vẫn rất cần
thiết để hƣớng tới thám mã các hệ mật mã hiện đại có độ dài khóa 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 tấn
công mới. Đồng thời nó có ý nghĩa hỗ trợ cơng tác tình báo, phản gián.
Chính vì những lý do trình bày ở trên, em đã chọn đề tài: “Một số phương
pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã”,
nhằm tìm hiểu các phƣơng pháp thám mã và xây dựng qui trình thám mã cho hệ mật
mã đối xứng DES.
Trong khuôn khổ đề tài đƣợc giao, luận văn đƣợc trình bày trong 3 chƣơng có phần
mở đầu, phần kết luận, phần mục lục, tài liệu tham khảo. Các nội dung cơ bản của
luận văn đƣợc trình bày nhƣ sau:


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

/>

2
Chƣơng 1: “Tổng quan về chuẩn mã hóa dữ liệu DES”, trong chƣơng này tập
chung trình bày về các khái niệm mã hóa, các hệ mật mã, các chế độ mã hóa và q
trình mã hóa, giải mã DES.
Chƣơng 2: “Các phƣơng pháp thám mã hệ mật mã đối xứng”, trong chƣơng này
trình bày các thuật ngữ cơ bản về mật mã và thám mã, khái niệm về thám mã, các
bƣớc để tiến hành thám mã, đặc biệt trong chƣơng này tập trung trình bày về 3
phƣơng pháp thám mã là phƣơng pháp tấn công vét cạn, phƣơng pháp thám mã
tuyến tính, phƣơng pháp thám mã vi sai.
Chƣơng 3: “Đề xuất phƣơng pháp thám mã DES và ứng dụng trong phát triển hệ
mật mã”, trên cơ sở lý thuyết đã đƣợc trình bày ở chƣơng 1 và chƣơng 2, đặc biệt ở
chƣơng 2 đã đƣa ra một số phƣơng pháp thám mã đối với hệ mã DES. Từ đó đã đề
xuất phƣơng pháp thám mã DES bằng phƣơng pháp mã vi sai trên hệ mã DES-6
vòng. Kết quả của phƣơng pháp sẽ đƣợc trình bày rõ ở chƣơng 3.
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 toá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ế độ CBC) từ bản rõ tƣơng ứng là một thông điệp dạng Text. Từ giả thiết này
xây dựng thuật tố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.

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

/>


3

CHƢƠNG 1
TỔNG QUAN VỀ CHUẨN MÃ HÓA DỮ LIỆU DES
1.1. Các hệ mã khóa
1.1.1. Hệ mật mã đối xứng
Thuật tốn đối xứng hay cịn gọi là thuật tốn mã hóa cổ điển. Thuật tốn
này cịn có nhiều tên gọi khác nhƣ thuật tốn khóa bí mật, thuật tốn đơn giản, thuật
tốn một khóa.
Là thuật tốn mà tại đó khóa mã hóa có thể tính tốn ra đƣợc từ khóa giải mã.
Trong rất nhiều trƣờng hợp, khóa mã hóa và khóa giải mã là giống nhau.
Thuật toán này yêu cầu ngƣời gửi và ngƣời nhận phải thỏa thuận một khóa
trƣớc khi thơng báo đƣợc gửi, và khóa này phải đƣợc cất giữ bí mật. Độ an tồn của
thuật tốn này vẫn phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất kì ngƣời
nào cũng có thể mã hóa và giải mã hệ thống mật mã.
Sự mã hóa và giải mã của thuật toán đối xứng đƣợc biểu thị bởi:
EK(P) = C
DK(C) = P
K1
Bản rõ

Mã hóa

K2
Bản mã

Mã hóa

Bản rõ gốc


K1 có thể trùng K2
hoặc K1 có thể tính tốn từ K2
hoặc K2 có thể tính tốn từ K1
Ƣu điểm:
- Xử lý nhanh
Nhƣợc điểm:

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

/>

4
- Các phƣơng pháp mã hóa cổ điển địi hỏi ngƣời mã hóa và ngƣời giải mã
phải cùng chung một khóa. Khi đó khóa phải giữ bí mật tuyệt đối, do vậy ta dễ dàng
xác định đƣợc một khóa nếu biết khóa kia.
- Hệ mã hóa đối xứng khơng bảo vệ đƣợc sự an tồn nếu có xác suất cao
khóa ngƣời gửi bị lộ. Trong hệ khóa phải đƣợc gửi đi trên kênh an tồn nếu kẻ địch
tấn cơng trên kênh này có thể phát hiện ra khóa.
- Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ
mã hóa cổ điển. Ngƣời gửi và ngƣời nhận luôn luôn thống nhất với nhau về vấn đề
khóa. Việc thay đổi khóa là rất khó và rất dễ bị lộ.
- Khuynh hƣớng cung cấp khóa dài mà nó phải đƣợc thay đổi thƣờng xuyên
cho mọi ngƣời trong khi vẫn duy trì cả tính an tồn lẫn hiệu quả chi phí sẽ cản trở
rất nhiều tới sự phát triển của hệ mật mã cổ điển.
Thuật toán đối xứng có thể đƣợc chia làm hai loại, mật mã luồng (stream
ciphers) và mật mã khối (block ciphers). Mật mã luồng mã hóa từng bit của thơng
điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng nhƣ một đơn vị.
Cỡ khối đƣợc dùng thƣờng là các khối 64 bit. Thuật toán tiêu chuẩn mã hóa tân tiến

(Advanced Encryption Standard), đƣợc NIST cơng nhận tháng 12 năm 2001, sử
dụng các khối gồm 128 bit.
1.1.2. Hệ mật mã bất đối xứng
Vào những năm 1970 Diffie và Hellman đã phát minh ra một hệ mã hóa mới
đƣợc gọi là hệ mã hóa bất đối xứng hay hệ mã hóa cơng khai.
Thuật tốn mã hóa bất đối xứng khác hồn tồn so với thuật tốn mã hóa đối
xứng. Khóa của hệ mã bất đối xứng phải đƣợc gửi trên những kênh thơng tin khơng
an tồn.
Chúng đƣợc thiết kế sao cho khóa sử dụng vào việc mã hóa là khác so với
khóa giải mã. Hơn nữa khóa giải mã khơng thể tính tốn đƣợc từ khóa mã hóa.
Chúng đƣợc gọi với tên hệ thống mã hóa cơng khai bởi vì khóa để mã hóa có thể
cơng khai, một ngƣời bất kì có thể sử dụng khóa cơng khai để mã hóa thơng báo,
nhƣng chỉ một vài ngƣời có đúng khóa giải mã thì mới có thể giải mã. Trong nhiều

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

/>

5
hệ thống, khóa mã hóa đƣợc gọi là khóa cơng khai (public key), khóa giải mã
thƣờng đƣợc gọi là khóa riêng (private key).

K1
Bản rõ

K2
Bản mã

Mã hóa


Bản rõ gốc

Mã hóa

K1 khơng trùng K2
hoặc K2 khơng thể tính tốn từ K1
Diffie và Hellman đã xác định rõ các điều kiện của một hệ mã hóa cơng khai
nhƣ sau:
Việc tính tốn ra một cặp khóa cơng khai KB và bí mật kB dựa trên cơ sở các
điều kiện ban đầu phải đƣợc thực hiện một cách dễ dàng nghĩa là thực hiện trong
thời gian đa thức.
1. Ngƣời gửi A có đƣợc khóa cơng khai của ngƣời nhận B và có bản tin P cần gửi đi
thì có thể dễ dàng tạo ra bản mã C.
C = EKB(P) = EBP
Trong đó:
E: Thuật tốn mã hóa
KB: khóa cơng khai
P: Bản tin cần gửi đi
C: Bản tin mã hóa
Cơng việc này cũng trong thời gian đa thức.
2. Ngƣời nhận B khi nhận đƣợc bản tin mã hóa C với khóa bí mật k B thì có thể giải
mã bản tin trong thời gian đa thức
P = DkB(C) = DB[EB(M)]
Trong đó:
D: Thuật tốn giải mã

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


/>

6
kB: Khóa bí mật
C: Bản tin mã hóa
3. Nếu kẻ địch biết khóa cơng khai KB cố gắng tính tốn khóa bí mật thì khi đó
chúng ta phải đƣơng đầu với trƣờng hợp nan giải, trƣờng hợp này đòi hỏi nhiều yêu
cầu không khả thi về thời gian.
4. Nếu kẻ địch biết đƣợc cặp (KB, C) và cố gắng tính tốn ra bản rõ P thì giải quyết
bài tốn khó với số phép thử là vơ cùng lớn, do đó khơng khả thi.
Ƣu điểm:
- Tính an tồn cao.
- Có thể gửi khóa trên các kênh khơng an tồn mà khơng sợ bị lộ khóa giải mã.
Nhƣợc điểm:
- Tốc độ chậm.
- Dung lƣợng dùng cho việc lƣu trữ khóa lớn.
Mỗi hệ thống mã hóa có ƣu nhƣợc điểm riêng. Mã hố đối xứng xử lý nhanh
nhƣng độ an tồn khơng cao. Mã hóa bất đối xứng xử lý chậm hơn, nhƣng độ an tồn
và tính thuận tiện trong quản lý khóa cao. Trong các ứng dụng mã hóa hiện tại, ngƣời
ta thƣờng kết hợp các ƣu điểm của cả hai loại mã này.
1.2. Chuẩn mã hóa dữ liệu DES
Chuẩn mã hóa dữ liệu DES đƣợc văn phòng tiêu chuẩn của Mỹ(U.S National
Bureau for Standards) công bố năm 1971 để sử dụng trong các cơ quan chính phủ
liên bang. Giải thuật đƣợc phát triển tại Công ty IBM dựa trên hệ mã hóa LUCIFER
của Feistel.
DES là thuật tốn mã hóa khối (block algrithm), với cỡ của một khối là 64
bit. Một khối 64 bit bản rõ đƣợc đƣa vào, sau khi mã hóa dữ liệu đƣa ra là một khối
bản mã 64 bit. Cả mã hóa và giải mã đều sử dụng chung cùng một thuật tốn và
khóa.
Khóa mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ đƣợc sử dụng để kiểm

soát lỗi. Các bit chẵn lẻ nằm ở các vị trí 8, 16, 24,..,64. Tức là cứ 8 bit khóa thì
trong đó có 1 bit kiểm sốt lỗi, bit này quy định số bit có giá trị “1” của khối 8 bit
đó theo tính bù sẵn.

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

/>

7
Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹ thuật
thay thế và hốn vị bản rõ dựa trên khóa. Đó là các vịng lặp. DES sử dụng 16 vịng
lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản vẽ 16 lần.
Thuật toán chỉ sử dụng các phép toán số học và logic trên các số 64 bit, vì
vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện công nghệ về phần
cứng lúc bấy giờ. Ban đầu, sự thực hiện các phần mềm kiểu này rất thơ sơ, nhƣng
hiện tại thì việc đó đã tốt hơn, và với đặc tính lặp đi lặp lại của thuật toán đã tạo nên
ý tƣởng sử dụng chip với mục đích đặc biệt này.

Hình 1.1. Sơ đồ mã hóa DES
Tóm lại DES có một số đặc điểm sau:
Sử dụng khóa 56 bit
Xử lý khối vào 64 bit, biến đổi khối vào thành khối ra 64 bit.
Mã hóa và giải mã đƣợc sử dụng cùng một khóa.

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

/>


8
DES đƣợc thiết kế để chạy trên phần cứng.
DES thƣờng đƣợc sử dụng để mã hóa các dịng dữ liệu mạng và mã hóa
dữ liệu đƣợc lƣu trữ trên đĩa.
1.3. Quy trình mã hóa DES
DES thực hiện trên từng khối 64 bit bản rõ. Sau khi thực hiện hoán vị khởi
đầu, khối dữ liệu đƣợc chia làm hai nửa trái và phải, mỗi nữa 32 bit.Tiếp đó, có 16
vịng lặp giống hệt nhau đƣợc thực hiện đƣợc gọi là các hàm f, trong đó dữ liệu
đƣợc kết hợp với khóa. Sau 16 vòng lặp, hai nửa trái và phải đƣợc kết hợp lại và
hoán vị cuối cùng(hoán vị ngƣợc) sẽ kết thúc thuật tốn.
Trong mỗi vịng lặp các bit của khóa đƣợc dịch đi và có 48 bit đƣợc chọn ra
từ 56 bit của khóa. Nửa phải của dữ liệu đƣợc mở rộng thành 48 bit bằng một phép
hoán vị mở rộng, tiếp đó khối 48 bit này đƣợc kết hợp với khối 48 bit đã đƣợc thay
đổi và hoán vị của khóa bằng tốn tử XOR đƣợc lựa chọn ra 32 bit bằng cách sử
dụng thuật toán thay thế và hốn vị lần nữa. Đó là bốn thao tác tạo nên hàm f. Tiếp
đó đầu ra của hàm f đƣợc kết hợp với nửa trái bằng toán tử XOR. Kết quả của các
bƣớc thực hiện này trở thành nửa phải mới, nửa phải cũ trở thành nửa trái mới; Sự
thực hiện này đƣợc lặp lại 16 lần, tạo thành 16 vòng của DES.
Nếu Bi là kết quả của vòng thứ i, Li và Ri là hai nửa trái và phải của Bi, Ki là
khóa 48 bit của vịng thứ i và f là hàm thực hiện thay thế, hoán vị và XOR với khóa,
ta có biểu diễn của một vịng sẽ nhƣ nhau:
Li=Ri-1
Ri=Li-1 XOR f(Ri-1,Ki)

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

/>

9


Hình 1.2. Một vịng lặp DES
Quy trình mã hóa của mật mã khối nói chung và theo mã hóa DES nói riêng
đƣợc thực hiện qua 5 giai đoạn sau:
Giai đoạn 1:

Bản rõ chữ



Bản rõ số

Giai đoạn 2:

Bản 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ố




64 bit Mã số

Giai đoạn 5:

Bản Mã số



Bản Mã chữ

(Dạng nhị phân)

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

(Dạng nhị phân)

Bảng 1.1. Quy trình mã hóa của mật mã khối và hệ mã DES
1.4. Lập mã và giả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.

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

/>


10
Quy trình mã hóa, giải mã khối gồm 2 thuật tốn là mã hóa(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 khóa 56 bit để cho ra khối 64 bit. Đối với bất kỳ khóa k nào, giải mã là hàm
ngƣợc của mã hóa, nghĩa là:
- Mã hóa 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à khóa 56 bit.

b.Quy trình giải mã

a.Quy trình mã hóa

Hình 1.3: Mơ phỏng mã hóa (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 khóa), 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.5. Các chế độ mã hóa theo DES
Có 4 chế độ làm việc đã đƣợc phát triển cho DES: Chế độ chuyển mã điện tử
(ECB), chế độ phản hồi mã (CFB), chế độ liên kết khối mã (CBC) và chế độ phản
hồi đầu ra (OFB). Chế độ ECB tƣơng ứng với cách dùng thông thƣờng của mã khối:
với một dãy các khối bản rõ cho trƣớc x1, x2…(mỗi khối có 64 bit), mỗi xi sẽ đƣợc
mã hóa bằng cùng một khóa K để tạo thành một chuỗi các khối bản mã y1y2… theo
quy tắc yi = ek(yi-1

xi)i≥1.


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

/>

11

Hình 1.4. Chế độ CBC
Trong các chế độ OFB và CFB dịng khóa đƣợc tạo ra sẽ đƣợc cộng MOD 2
với bản rõ. OFB thực sự là một hệ mã dịng đồng bộ: dịng khóa đƣợc tạo bởi việc
mã lặp véc tơ khởi tạo 64 bit (véc tơ IV). Ta xác định z0= IV và rồi tính dịng khóa
z1z2…theo quy tắc z1=ek(zi-1), i≥1. Dãy bản rõ x1x2…sau đó sẽ đƣợc mã hóa bằng
cách tính yi = xi zi, i≥1.
Trong chế độ CFB, ta bắt đầu với y0= IV( là một véc tơ khởi tạo 64 bit) và
tạo phần tử zi của dịng khóa bằng cách mã hóa khối bản mã trƣớc đó. Tức zi = ek(yi1),

i≥1. Cũng nhƣ trong chế độ OFB: yi= xi

zi, i≥1. Việc sử dụng CFB đƣợc mơ tả

trên hình 4( chú ý rằng hàm mã DES ek đƣợc dùng cho cả phép mã và phép giải mã
ở các chế độ CFB và OFB).

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

/>

12


Hình 1.5. Chế độ CFB
Cũng cịn một số biến tấu của OFB và CFB đƣợc gọi là các chế độ phản hồi
k bit (1bit và 8 bit thƣờng đƣợc dùng trong thực tế cho phép mã hóa đồng thời 1 bit ( hoặc
byte) số liệu.
Bốn chế độ cơng tác có chế độ ƣu nhƣợc điểm khác nhau. Ở chế độ ECB và
OFB, sự thay đổi của một khối bản rõ xi 64 bit sẽ làm thay đổi khối bản mã yi tƣơng
ứng, nhƣng các khối bản mã khác không bị ảnh hƣởng.
Trong một số tình huống đây là một tính chất đáng mong muốn. Ví dụ chế
độ OFB thƣờng đƣợc dùng để mã khi truyền vệ tinh.
Mặt khác ở các chế độ CBC và CFB, nếu một khối bản rõ xi bị thay đổi thì
yi và tất cả các khối bản mã tiếp theo sẽ bị ảnh hƣởng. Nhƣ vậy các chế độ CBC và
CFB có thể đƣợc sử dụng rất hiệu quả cho mục đích xác thực. Đặc biệt hơn, các chế
độ này có thể đƣợc dùng để tạo mã xác thực bản tin (MAC- Message Authentication
Code). MAC đƣợc gắn thêm vào các khối bản rõ để thuyết phục Bob tin rằng, dãy

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

/>

13
bản rõ đó thực sự là của Alice mà khơng bị Oscar giả mạo. Nhƣ vậy MAC đảm bảo
tính tồn vẹn (hay tính xác thực) của một bản tin ( nhƣng tất nhiên là MAC không
đảm bảo độ mật).
Ta sẽ mô tả cách sử dụng chế độ BCB để tạo ra một MAC. Ta bắt đầu bằng
véc tơ khởi tạo IV chứa tồn số 0. Sau đó dùng chế độ CBC để tạo các khối bản mã
y1,...,yn theo khóa K. Cuối cùng ta xác định MAC là yn, Alice sẽ phát đi dãy các
khối bản rõ x1,x2,…,xn cùng với MAC. Khi Bob thu đƣợc x1…xn a ta sẽ khôi phục
lại y1…yn bằng khóa K bí mật và xác minh xem liệu yn có giống với MAC mà mình

đã thu đƣợc hay không.
Nhận thấy Oscar không thể tạo ra một MAC hợp lệ do khơng biết khóa K mà
Alice và Bob đang dùng. Hơn nữa Oscar thu chặn đƣợc dãy khối bản rõ x 1…xn và
thay đổi ít nhiều nội dung thì chắc chắn là Oscar khơng thể thay đổi MAC để đƣợc
Bob chấp nhận.
Thông thƣờng ta muốn kết hợp cả tính xác thực lẫn độ bảo mật. Điều đó có
thể thực hiện nhƣ sau: Trƣớc tiên Alice dùng khóa K1 để tạo MAC cho x1…xn. Sau
đó Alice xác định Xn+1 là MAC rồi mã hóa dãy x1…xn+1 bằng khóa thứ hai K2 để
tạo ra bản mã y1…yn+1. Khi đó Bob thu đƣợc y1…yn+1, trƣớc tiên Bob sẽ giải mã
(bằng K2) và kiểm tra xem xn+1 có phải là MAC đối với dãy x1…xn dùng K1 hay
khơng.
Ngƣợc lại, Alice có thể dùng K1 để mã hóa x1…xn và tạo ra đƣợc y1…yn, sau
đó dùng K2 để tạo MAC yn+1 đối với dãy y1…yn. Bob sẽ dùng K2 để xác minh MAC
và dùng K1 để giải mã y1…yn.

1.6. Độ an toàn của DES
Đã có rất nhiều sự nghiên cứu về độ dài của khố, số vịng lặp, và thiết kế
của hộp S (S-boxes). Hộp S có đặc điểm là khó hiểu, khơng có bất cứ sự rõ ràng
nào nhƣ tại sao chúng phải nhƣ vậy. Mọi tính tốn trong DES ngoại trừ các hộp S
đều tuyến tính, tức việc tính XOR của hai đầu ra cũng giống nhƣ phép XOR hai đầu
vào rồi tính tốn đầu ra. Các hộp S chứa đựng thành phần phi tuyến của hệ là yếu tố

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

/>

14
quan trọng nhất đối với sự an toàn của hệ thống. Tính bảo mật của một hệ mã hố
đối xứng là một hàm hai tham số: độ phức tạp của thuật tốn và độ dài của khố.

Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật tốn.Có
nghĩa rằng sẽ khơng có phƣơng pháp nào để phá vỡ hệ thống mật mã hơn là cố gắng
thử mọi khố có thể, phƣơng pháp đó đƣợc gọi là brute-forceattack. Nếu khố có độ
dài 8 bít, suy ra sẽ có 28=256 khố. Vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra
khố đúng. Nếu khố có độ dài 56 bít, thì sẽ có 256 khố có thể sử dụng. Giả sử một
Suppercomputer có thể thử một triệu khố trong một giây, thì nó sẽ cần 2000 năm
để tìm ra khố đúng. Nếu khố có độ dài 64 bít, thì với chiếc máy trên sẽ cần
600,000 năm để tìm ra khố đúng trong số 264 khố. Nếu khố có độ dài 128 bít, thì
sẽ mất 1025 năm để tìm ra khố đúng. Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025
thì một thời gian quá dài. Với một khố 2048 bít, một máy tính song song thực hiện
hàng tỉ tỉ phép thử trong một giây sẽ tiêu tốn một khoảng thời gian là 10597 năm để
tìm ra khố. Lúc đó vũ trụ có lẽ khơng cịn tồn tại nữa.
Khi IBM đƣa ra thiết kế đầu tiên của hệ mã hố LUCIFER, nó có khố dài
128 bít. Ngày nay, DES đã trở thành một chuẩn về mã hố dữ liệu sử dụng khố 56
bít, tức kích thƣớc khơng gian khố là 256. Rất nhiều nhà mã hố hiện đang tranh
luận về một khoá dài hơn của DES. Nhiều thiết bị chuyên dụng đã đƣợc đề xuất
nhằm phục vụ cho việc tấn công DES với bản rõ đã biết. Sự tấn cơng này chủ yếu
thực hiện tìm khố theo phƣơng pháp vét cạn.Tức với bản rõ X 64 bít và bản mã Y
tƣơng ứng, mỗi khố có thể đều đƣợc kiểm tra cho tới khi tìm đƣợc một khố k thoả
mãn Ek(X)=Y (có thể có nhiều hơn một khoá k nhƣ vậy).
Vào năm 1979, Diffie và Hellman tuyên bố rằng với một máy tính chun dụng
bản mã hố DES có thể đƣợc phá bằng cách thử mọi trƣờng hợp của khố trong vịng
một ngày – giá của máy tính đó là 20 triệu đơla. Vào năm 1981, Diffie đã tăng lên là
cần hai ngày để tìm kiếm và giá của chiếc máy tính đó là 50 triệu đơla.
1.7. Kết luận
Ở chƣơng này trình bày những khái niệm cơ bản về hai hệ mật mã đối xứng
và mật mã cơng khai, đặc biệt trình bày về q trình lập mã và giải mã trên DES,

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


/>

15
các chế độ mã hóa theo DES, độ an tồn của DES. Nội dung trình bày ở chƣơng 1 là
cơ sở lý thuyết cơ bản để vận dụng vào chƣơng 2 và chƣơng 3 trong luận văn.

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

/>

16

CHƢƠNG 2
CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ ĐỐI XỨNG
2.1. Các thuật ngữ cơ bản
2.1.1. 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 thơng báo (messges) dƣới dạng nhận thức đƣợc nội dung (nhƣ chữ viết,
tiếng nói, hình vẽ, hình ảnh,…) thành dạng bí mật mà ngƣời ngồi cuộc không hiểu
đƣợc nội dung nếu họ không biết đƣợc phƣơng pháp (hoặc quy tắc) biến đổi đó.
Cịn mật mã học (Crytology) là một bộ môn khoa học chuyên nghiên cứu về
mật mã và thám mã.
2.1.2. Bản rõ (Plain text)
Ta hiểu rõ tức là một bản thơng báo có mang nội dung thơng tin mà ngƣời
đọc có thể tìm hiểu đƣợc nó nói cái gì hoặc là nó có ý nghĩa rõ ràng. Bản rõ (bản
thơng báo) 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 rõ thƣờng đƣợc biểu diễn (viết) dƣới dạng một dãy các chữ cái theo quy

tắc cú pháp nào đó hoặc ký hiệu thuộc bảng chữ cái A hữu hạn đƣợc xác định trƣớc.
Để trình bày, ta ký hiệu M là khơng gian các bản rõ (message space).
Ví dụ: M có thể là gồm các dãy nhị phân, các văn bản tiếng Việt hoặc mã
chƣơng trình máy tính…
2.1.3. Bản mã (Cipher text)
Bản mã thƣờng cũng đƣợc biểu diễn dƣới dạng một dãy các ký hiệu có thể
cũng thuộc A nhƣng khơng theo quy tắc cú pháp nào cả. Ngƣời ta nói rằng đó là
ngẫu nhiên. Ta ký hiệu tập tất cả các bản mã ứng với các bản rõ m là C. Chú ý rằng
các ký hiệu của c

C có thể khơng thuộc A.

2.1.4. Phép biến đổi mã/dịch (Encrytion/decryption transformations)
Trong việc tạo ra bản mã từ bản rõ, ngƣời ta cần đến hai yếu tố: các tham số
và một quy tắc mã/dịch. Tham số đó ngƣời ta gọi là khóa mã/dịch(key seed). Tập tất
cả các khóa (mầm khóa) đó tạo thành một khơng gian khóa và đƣợc ký hiệu là K.

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

/>

17
Còn một quy tắc mã là một ánh xạ từ không gian M vào không gian C phụ thuộc
vào một khóa K cho trƣớc. Ta ký hiệu nó là Ee: M

C với e

K. Ánh xạ này phải


là song ánh (ánh xạ lên và 1 – 1) và ánh xạ ngƣợc của ánh xạ Ee đƣợc gọi là quy tắc
dịch (Translation) tức là quy tắc biến đổi bản mã c
M đƣợc ký hiệu là Dd, ở đây d

C thành bản rõ tƣơng ứng m

K. Các khóa mã e và khóa dịch d tạo thành một

cặp khóa mã/dịch và đƣợc viết là (e, d), e và d có thể trùng nhau.
- Quá trình áp dụng phép biến đổi bản rõ m

M thành bản mã tƣơng ứng c

C đƣợc gọi là mã hóa.
- Quá trình áp dụng phép biến đổi Dd vào bản mã C để tạo ra bản rõ m tƣơng
ứng đƣợc gọi là giải mã (decryption hoặc deciphering).
- Lƣợc đồ mã hóa (enryption scheme) là gồm tập hợp tất cả các hàm mã hóa
Ee ứng với mỗi e

K và tất cả các hàm gải mã Dd ứng với d

K. Hàm Dd và Ee

phải thỏa mãn hệ thức:
Dd = Ee-1 với

(e,d)

KxK


Tức là m = Dd (c) = Ee-1(Ee(m))

m

M

Nhƣ vậy để ngƣời nhận đích thực dịch đƣợc bản mã từ ngƣời gửi tới thì
đƣơng nhiên ngƣời nhận phải có khóa dịch d và quy tắc dịch Dd. Việc này có thể
thực hiện đƣợc bằng sự trao đổi khóa giữa hai bên, ta ký hiệu hai bên đó là A và B.
Trong mật mã cổ điển truyền thống, việc trao đổi này phải đƣợc đảm bảo bí mật
khơng để cho bất kỳ một đối tác C ( đối tác thứ 3) nào biết. Vì khóa mã quyết định
đến độ an tồn mật mã. Trong lúc thuật toán mã/dịch thƣờng đơn giản và đƣợc quy
ƣớc giữa 2 bên A và B.
2.2. Thám mã
2.2.1. Khái niệm
Thám mã là q trình khơi phục lại bản rõ hoặc khóa khi chỉ có bản mã
tƣơng ứng cho trƣớc (khơng biết khóa và quy tắc mã/dịch) gọi là thám mã. Ngƣời
làm công tác thám mã đƣợc gọi là ngƣời mã thám (Cryptanalysist) hay gọi là mã
thám viên.

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

/>

18
Tổ chức làm công tác thám mã đƣợc gọi là đơn vị mã thám. Mã thám là một
bộ phận không thể thiếu của ngành tình báo điện tử. Hầu hết các quốc gia đều có bộ
phận tình báo điện tử này, nhƣng sự phát triển và hiệu quả của nó lại phụ thuộc vào
trình độ khoa học - cơng nghệ của từng nƣớc. Nƣớc nào có trình độ khoa học - cơng

nghệ càng cao thì khả năng của cơng tác thám mã nói riêng, tình báo điện tử nói
chung càng mạnh.
Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc khơng an tồn
tổng phƣơng pháp mật mã hóa.Thám mã có thể đƣợc thực hiện bởi những kẻ tấn công
ác ý, nhằm làm hỏng hệ thống; hoặc bởi những ngƣời thiết kế ra hệ thống với ý định
đánh giá độ an toàn của hệ thống.
Để nghiên cứu thám mã đƣợc các bản mã truyền 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 rõ. 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ã. Đó là quy luật tần số, quy luật trùng lặp, quy
luật văn phong, v.v...
a. Tần số (Frequency)
Ngƣời ta định nghĩa 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 v.v... trong một văn bản là số lần xuất hiện của ký tự, 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 văn bản (thơng báo) 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ố 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 (concatenate); Tần số bộ k ký tự (k=1, 2, 3, 4...).
Ngồi ra cịn có: tần số từ, tần số vần chữ cái (ví dụ – tion, trong tiếng Anh), 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ừ. Một
điểm cần lƣu ý là mỗi loại ngơn ngữ tự nhiên khác nhau có các tần số không giống
nhau. Ngay trong một ngôn ngữ, các loại văn bản có tính chất văn học sẽ có các tần

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

/>


19
số khơng hồn tồn giống nhau. Những tính chất đó ngƣời ta gọi là các đặc trƣng
ngôn ngữ.
Ta lƣu ý rằng, các văn bản khác nhau thƣờng có độ dài (số lƣợng các ký tự
trong văn bản đó) khác nhau. Do đó khái niệm tần số nhƣ định nghĩa trên có nhiều
trƣờng hợp rất khó trong thực hành. Vì vậy ngƣời ta đƣa ra khái niệm tần số tƣơng
đối (tần suất - relative frequency). Tần suất của một ký tự x nào đó trong văn bản là
số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó. Cịn tần suất bộ đơi móc
xích xy nào đó trong một văn bản là số lần xuất hiện bộ đơi đó có trong văn bản
chia cho độ dài của văn bản trừ đi một. Ví dụ, giả sử văn bản có độ dài n, khi đó số
lƣợng bộ đơi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất
của cặp “nh” sẽ là mnh / (n-1).
b. 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ứ 2 của
ngôn ngữ đƣợc thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ). Ngồ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.
c. Văn phong (Quy luật hành văn trong văn bản).
Trong thực tế, các loại văn bản khác nhau sẽ có văn phong khơng giống nhau
do phụ thuộc vào thói quen của từng ngƣời soạn thảo ra văn bản đó. Đây cũng là
quy luật đáng lƣu ý trong việc thám mã. Văn phong đƣợc chia thành các dạng:
- Dạng đầu văn bản (gọi là quy luật đầu điện);
- Dạng thân văn bản (quy luật thân điện): Văn bản thƣờng có chia theo từng
mục hoặc khơngchia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại
nội dung nhƣ ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v...;
- Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thƣờng
cũng có những quy luật: Mỗi ngƣời soạn thảo văn bản khác nhau sẽ có quy luật
khác nhau.

19

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

/>

×