Tải bản đầy đủ (.doc) (87 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.05 MB, 87 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Ê HỮU THỌ

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Ã

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

th¸i nguyªn - n¨m 2014

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

tnu.edu.vn/


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Ê HỮU THỌ

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Ã



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

tnu.edu.vn/


3

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à đã luôn 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 quý 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

tnu.edu.vn/


4

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

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

/>

5

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

tnu.edu.vn/


6

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

tnu.edu.vn/


7

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. Quá trình tạo khóa..............................................................................................68
Hình 3.6. Quá trình mã hóa bản rõ
....................................................................................69
Hình 3.7. Quá 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

tnu.edu.vn/


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 quá 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
toà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 toà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 chuyên dụng trong vòng chưa đầy 24 giờ, nhưng việc nghiên cứu thám mã
DES vẫn 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:
Số hóa bởi Trung tâm Học
liệu

tnu.edu.vn/


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à quá
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 toá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.

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

tnu.edu.vn/


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 toán đối xứng hay còn gọi là thuật toán mã hóa cổ điển. Thuật toán
này còn có nhiều tên gọi khác như thuật toán khóa bí mật, thuật toán đơn giản, thuật
toán một khóa.
Là thuật toán mà tại đó khóa mã hóa có thể tính toá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 toàn của
thuật toá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

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

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

tnu.edu.vn/

Bản rõ gốc



- 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 toà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 toà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 toà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 toán mã hóa bất đối xứng khác hoàn toàn so với thuật toá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 toà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 toá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



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õ

Mã hóa

K2
Bản mã

Mã hóa

Bản rõ gốc

K1 không trùng K2
hoặc K2 không thể tính toá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 toá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 toá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 toán giải mã


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 toá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 toán ra bản rõ P thì giải quyết
bài toá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 toàn cao.
- Có thể gửi khóa trên các kênh không an toà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ã hoá đối xứng xử lý nhanh
nhưng độ an toàn không cao. Mã hóa bất đối xứng xử lý chậm hơn, nhưng độ an toà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 toá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 toá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 soá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.


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à hoá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.


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 toá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 toá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à hoá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)


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.


Quy trình mã hóa, giải mã khối gồm 2 thuật toá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.

a.Quy trình mã hóa

b.Quy trình giải mã


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 toán thám mã không
cần phân tích chi tiết thuật toá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.


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


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


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 toà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 toà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 khoá, 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 toá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 toá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ố


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ã hoá
đối xứng là một hàm hai tham số: độ phức tạp của thuật toán và độ dài của khoá.
Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật toá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 khoá có thể, phương pháp đó được gọi là brute-forceattack. Nếu khoá có độ
8


dài 8 bít, suy ra sẽ có 2 =256 khoá. Vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra
56

khoá đúng. Nếu khoá có độ dài 56 bít, thì sẽ có 2 khoá có thể sử dụng. Giả sử một
Suppercomputer có thể thử một triệu khoá trong một giây, thì nó sẽ cần 2000 năm
để tìm ra khoá đúng. Nếu khoá có độ dài 64 bít, thì với chiếc máy trên sẽ cần
64

600,000 năm để tìm ra khoá đúng trong số 2 khoá. Nếu khoá có độ dài 128 bít, thì
25

10

25

sẽ mất 10 năm để tìm ra khoá đúng. Vũ trụ chỉ mới tồn tại 10 năm, vì vậy 10

thì một thời gian quá dài. Với một khoá 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à 10

597

năm để

tìm ra khoá. 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ã hoá LUCIFER, nó có khoá dài
128 bít. Ngày nay, DES đã trở thành một chuẩn về mã hoá dữ liệu sử dụng khoá 56
56

bít, tức kích thước không gian khoá là 2 . Rất nhiều nhà mã hoá 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 khoá 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 khoá có thể đều được kiểm tra cho tới khi tìm được một khoá 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 chuyên
dụng
bản mã hoá DES có thể được phá bằng cách thử mọi trường hợp của khoá 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ề quá trình lập mã và giải mã trên DES,


các chế độ mã hóa theo DES, độ an toà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.


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


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:
-1

Dd = Ee 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 toà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à quá 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.


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 toà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...).
Ngoà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


×