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.13 MB, 79 trang )

i

S húa bi Trung tõm Hc liu
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 MT M I XNG V NG DNG TRONG
PHT TRIN H MT M




LUN VN THC S KHOA HC MY TNH


thái nguyên - năm 2014
ii

Số hóa bởi Trung tâm Học liệu
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
iii


Số hóa bởi Trung tâm Học liệu
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à đã 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ọ


iv

Số hóa bởi Trung tâm Học liệu
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
v

Số hóa bởi Trung tâm Học liệu
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


vi

Số hóa bởi Trung tâm Học liệu
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. 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


1

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

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

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

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.











3

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


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:
E
K
(P) = C
D
K
(C) = P
K
1
K
2


Bản rõ Bản mã Bản rõ gốc

K
1
có thể trùng K

2

hoặc K
1
có thể tính toán từ K
2

hoặc K
2
có thể tính toán từ K
1

Ƣu điểm:
- Xử lý nhanh
Nhƣợc điểm:
Mã hóa
Mã hóa
4

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

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

5
Số hóa bởi Trung tâm Học liệ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).



K
1
K
2


Bản rõ Bản mã Bản rõ gốc

K
1
không trùng K
2

hoặc K
2
không thể tính toán từ K
1
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 K
B
và bí mật k
B
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 = EK
B

(P) = EBP
Trong đó:
E: Thuật toán mã hóa
K
B
: 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 = Dk
B
(C) = DB[EB(M)]
Trong đó:
D: Thuật toán giải mã
Mã hóa
Mã hóa
6

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

k
B
: Khóa bí mật
C: Bản tin mã hóa
3. Nếu kẻ địch biết khóa công khai K

B
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 (K
B
, 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.
7

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

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

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

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 B
i
là kết quả của vòng thứ i, L
i
và R
i
là hai nửa trái và phải của B
i
, K
i

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:
L
i
=R
i-1


R
i
=L
i-1
XOR f(R
i-1,
K
i
)
9

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


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ố
(Dạng nhị phân)
Giai đoạn 2:
Bản rõ số

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


Giai đoạn 3:
64 bit Rõ số

64 bit Mã số

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

64 bit Mã số
(Dạng nhị phân)
Giai đoạn 5:
Bản Mã số

Bản Mã chữ


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

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

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: E
k
(M)
- Giải mã khối: M = D
k
(E
k
(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 x
1
, x
2…
(mỗi khối có 64 bit), mỗi x
i
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ã y

1
y
2
… theo
quy tắc y
i
= e
k
(y
i-1
x
i)
i≥1.
11

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


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 z
0
= IV và rồi tính dòng khóa
z
1
z
2…
theo quy tắc z

1
=e
k
(z
i-1
), i≥1. Dãy bản rõ x
1
x
2…
sau đó sẽ đƣợc mã hóa bằng
cách tính y
i
= x
i
z
i
, i≥1.
Trong chế độ CFB, ta bắt đầu với y
0
= IV( là một véc tơ khởi tạo 64 bit) và
tạo phần tử z
i
của dòng khóa bằng cách mã hóa khối bản mã trƣớc đó. Tức z
i
= e
k
(y
i-
1
), i≥1. Cũng nhƣ trong chế độ OFB: y

i
= x
i
z
i
, i≥1. Việc sử dụng CFB đƣợc mô tả
trên hình 4( chú ý rằng hàm mã DES e
k
đƣợc dùng cho cả phép mã và phép giải mã
ở các chế độ CFB và OFB).
12

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


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 (1<K<64). Ở đây ta cũng mô tả chế độ phản hồi 64 bit. Các chế độ phản hồi 1
bit 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õ x
i
64 bit sẽ làm thay đổi khối bản mã y
i
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õ x
i
bị thay đổi thì
y
i
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
13

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

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ã
y
1
, ,y
n
theo khóa K. Cuối cùng ta xác định MAC là y
n
, Alice sẽ phát đi dãy các
khối bản rõ x
1
,x
2

,…,x
n
cùng với MAC. Khi Bob thu đƣợc x
1
…x
n
a ta sẽ khôi phục
lại y
1
…y
n
bằng khóa K bí mật và xác minh xem liệu y
n
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
…x
n

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 K
1
để tạo MAC cho x
1
…x
n

. Sau
đó Alice xác định X
n+1
là MAC rồi mã hóa dãy x
1
…x
n+1
bằng khóa thứ hai K
2
để
tạo ra bản mã y
1
…y
n+1
. Khi đó Bob thu đƣợc y
1
…y
n+1
, trƣớc tiên Bob sẽ giải mã
(bằng K
2
) và kiểm tra xem x
n+1
có phải là MAC đối với dãy x
1
…x
n
dùng K
1
hay

không.
Ngƣợc lại, Alice có thể dùng K
1
để mã hóa x
1
…x
n
và tạo ra đƣợc y
1
…y
n
, sau
đó dùng K
2
để tạo MAC y
n+1
đối với dãy y
1
…y
n
. Bob sẽ dùng K
2
để xác minh MAC
và dùng K
1
để giải mã y
1
…y
n.


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

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

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ó độ
dài 8 bít, suy ra sẽ có 2
8
=256 khoá. Vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra
khoá đúng. Nếu khoá có độ dài 56 bít, thì sẽ có 2
56
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
600,000 năm để tìm ra khoá đúng trong số 2
64
khoá. Nếu khoá có độ dài 128 bít, thì
sẽ mất 10
25
năm để tìm ra khoá đúng. Vũ trụ chỉ mới tồn tại 10

10
năm, vì vậy 10
25

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
bít, tức kích thƣớc không gian khoá là 2
56
. 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 E
k
(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,
15


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

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.

16

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

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

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

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à E
e
: 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ạ E
e
đƣợc gọi là quy tắc
dịch (Translation) tức là quy tắc biến đổi bản mã c C thành bản rõ tƣơng ứng m
M đƣợc ký hiệu là D
d
, ở đây d 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 D

d
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
E
e
ứng với mỗi e K và tất cả các hàm gải mã D
d
ứng với d K. Hàm D
d
và E
e

phải thỏa mãn hệ thức:
D
d
= E
e
-1
với (e,d) K x K
Tức là m = D
d
(c) = E
e
-1
(E
e
(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 D

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

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

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
19

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

số không hoàn toà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õ). 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.
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.

×