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

Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)

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.64 MB, 85 trang )

NGUYỄN THỊ THÙY DƢƠNG

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN THỊ THÙY DƢƠNG
KỸ THUẬT VIỄN THÔNG

XÂY DỰNG MỘT HỆ MẬT LAI GHÉP
DỰA TRÊN BÀI TOÁN LOGARIT RỜI RẠC

LUẬN VĂN THẠC SĨ KỸ THUẬT
2014 - 2016

NỘI
2016

HÀ NỘI – 2016


i

LỜI CAM ĐOAN

Tôi xin cam đoan nội dung luận văn của tôi là do sự tìm hiểu và nghiên cứu
của bản thân. Các kết quả nghiên cứu cũng nhƣ ý tƣởng của các tác giả khác đều
đƣợc trích dẫn cụ thể.

Tác giả

Nguyễn Thị Thùy Dƣơng




ii

LỜI CẢM ƠN
Đầu tiên em đặc biệt gửi lời cảm ơn đến TS. Ngô Đức Thiện đã có những định
hƣớng quan trọng giúp em lựa chọn hƣớng thực hiện luận văn và trực tiếp hƣớng
dẫn, kiểm chứng kết quả của luận văn và đã giúp đỡ em rất nhiều trong suốt quá
trình thực hiện luận văn. Em cũng xin gửi lời cảm ơn đến PGS.TS. Bùi Trung Hiếu
đã cho những ý kiến góp ý quý báu giúp em hoàn thành luận văn này.
Trong quá trình học tập và thực hiện luận văn, em đã nhận đƣợc sự chỉ bảo
nhiệt tình của các thầy các cô và sự giúp đỡ của ban lãnh đạo Học viện Công nghệ
Bƣu chính Viễn thông, các cán bộ khoa đào tạo sau đại học đã tạo điều kiện thuận
lợi cho em trong suốt quá trình học tập cũng nhƣ thực hiện luận văn này. Với lòng
biết ơn sâu xắc của mình, em xin gửi đến ban lãnh đạo Học viện Công nghệ Bƣu
chính Viễn thông cùng toàn thể các thầy các cô, các cán bộ khoa sau đại học lời
cảm ơn chân thành nhất.
Cuối cùng em xin gửi lời cảm ơn đến toàn thể gia đình, bạn bè đã ủng hộ và
giúp đỡ nhiệt tình trong quá trình thực hiện luận văn này.
Hà Nội, ngày tháng năm 2016
Học viên

Nguyễn Thị Thùy Dƣơng


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii

MỤC LỤC ................................................................................................................. iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT .............................................. vi
DANH MỤC BẢNG BIỂU ..................................................................................... vii
DANH MỤC HÌNH VẼ .......................................................................................... viii
MỞ ĐẦU

.............................................................................................................2

CHƢƠNG 1. TỔNG QUAN VỀ MẬT MÃ HỌC......................................................4
1.1. GIỚI THIỆU CHƢƠNG ..................................................................................4
1.2. LỊCH SỬ RA ĐỜI ...........................................................................................4
1.3. CÁC KHÁI NIỆM CƠ BẢN VỀ MẬT MÃ HỌC ..........................................5
1.4. CÁC YÊU CẦU CHÍNH CỦA MẬT MÃ HIỆN ĐẠI ....................................8
1.5. CÁC HỆ MẬT KHÓA BÍ MẬT ......................................................................8
1.5.1. Nguyên tắc xây dựng hệ mật khóa bí mật .................................................8
1.5.2. Các hệ mật thay thế .................................................................................10
1.5.3. Các hệ mật hoán vị ..................................................................................16
1.5.4. Hệ mật mã tích ........................................................................................17
1.5.5. Hệ mã dòng .............................................................................................18
1.5.6. Chuẩn mã dữ liệu DES ............................................................................21
1.5.7. Ƣu nhƣợc điểm của mật mã khóa bí mật ................................................22
1.6. HỆ MẬT KHÓA CÔNG KHAI .....................................................................23
1.6.1. Sơ đồ chức năng ......................................................................................23


iv

1.6.2. Các bài toán một chiều và các hệ mật khóa công khai liên quan............24
1.6.3. Đƣờng cong Elliptic ................................................................................28
1.6.4. Ƣu và nhƣợc điểm của hệ mật mã khoá công khai .................................30

1.7. HÀM BĂM ....................................................................................................30
1.7.1. Định nghĩa và các tính chất của hàm băm ..............................................30
1.7.2. Tính chất và phân loại hàm băm .............................................................31
1.8. CHỮ KÝ SỐ ..................................................................................................33
1.9. KẾT LUẬN CHƢƠNG..................................................................................35
CHƢƠNG 2. BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ HỆ MẬT LIÊN
QUAN .............................................................................................................. 36
2.1. GIỚI THIỆU CHƢƠNG ................................................................................36
2.2. CƠ SỞ TOÁN HỌC.......................................................................................36
2.2.1. Số nguyên ................................................................................................36
2.2.2. Các số nguyên MODULO N ...................................................................37
2.2.3. Nhóm nhân ..............................................................................................38
2.2.4. Vành ........................................................................................................39
2.2.5. Trƣờng .....................................................................................................40
2.3. BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ PHƢƠNG PHÁP GIẢI....40
2.3.1. Bài toán logarit trên trƣờng số thực R.....................................................40
2.3.2. Bài toán logarit rời rạc ............................................................................41
2.3.3. Một số thuật toán giải bài toán logarit rời rạc .........................................43
2.4. MỘT SỐ HỆ MẬT XÂY DỰNG TRÊN BÀI TOÁN LOGARIT RỜI RẠC...48
2.4.1. Hệ mật Pohlig-Hellman ..........................................................................48


v

2.4.2. Hệ mật Omura-Massey ...........................................................................49
2.4.3. Hệ mật ElGamal ......................................................................................50
2.5. KẾT LUẬN CHƢƠNG..................................................................................52
CHƢƠNG 3. XÂY DỰNG MỘT HỆ MẬT LAI GHÉP ..........................................53
3.1. GIỚI THIỆU CHƢƠNG ................................................................................53
3.2. LƢỢC ĐỒ FEISTEL .....................................................................................53

3.2.1. Mô hình mã Feistel..................................................................................53
3.2.2. Ƣu và nhƣợc điểm của mật mã Feistel ....................................................57
3.3. XÂY DỰNG MỘT HỆ MẬT MÃ KHỐI LAI GHÉP ..................................58
3.4. ĐÁNH GIÁ TÍNH KHUẾCH TÁN CỦA HỆ MẬT LAI GHÉP ..................62
3.5. KẾT LUẬN CHƢƠNG..................................................................................64
TÀI LIỆU THAM KHẢO .........................................................................................66
PHỤ LỤC

...........................................................................................................67


vi

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

BCNN

Bội chung nhỏ nhất.

C

Bản mã (Ciphertext).

DES

Chuẩn mã dữ liệu (Data Encryption Standard).

E

Mã hóa mật mã khối.

Trƣờng (Field).

G

Nhóm (Group).

GF(p)

Trƣờng đặc số .

h

Hàm băm (Hash).

K

Khóa (Key).

M

Bản tin (Message).

MAC

Hàm băm có khóa (Message Authentication Code).

MDC

Hàm băm không khóa (Modification Detection Code).


NP

Tập hợp các bài toán quyết định giải đƣợc trong thời gian đa
thức bởi máy Turing bất định (Nondeterministic Polynomial
time).

NP - Đầy đủ

NP- độ khó và nằm trong NP. Đây là những bài toán khó
nhất trong NP.

Ord

Cấp của đa thức (Order).

Sig

Chữ ký (Signature).

UCLN

Ƣớc chung lớn nhất.


vii

DANH MỤC BẢNG BIỂU
Bảng 1.1: Bảng mã dịch vòng ...................................................................................10
Bảng 3.1. Hoán vị ban đầu (IP) ................................................................................59
Bảng 3.2. Hoán vị đảo (IP-1) ....................................................................................59

Bảng A-1: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M ..67
Bảng A-2: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M ..69
Bảng A-3: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K....71
Bảng A-4: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K....74


viii

DANH MỤC HÌNH VẼ
Hình 1.1. Các lĩnh vực của khoa học mật mã .............................................................6
Hình 1.2. Sơ đồ khối chức năng hệ mật khoá bí mật ..................................................9
Hình 1.3. Sơ đồ khối chức năng hệ mật khóa công khai ..........................................23
Hình 1.4. Cách đi đúng của thông tin. ......................................................................31
Hình 1.5. Hình Thông tin bị lấy trộm và bị thay đổi trên đƣờng truyền. ..................32
Hình 1.6. Phân loại hàm băm ....................................................................................33
Hình 2.1. Hàm logarit trên trƣờng số thực ................................................................41
Hình 3.1. Một vòng mã hóa theo sơ đồ Feistel .........................................................54
Hình 3.2. Mã hóa (a) và giải mã (b) Feistel 16 vòng ................................................55
Hình 3.3. Sơ đồ khối của hệ mật ...............................................................................58
Hình 3.4. Thuật toán mã hóa trong một vòng ...........................................................59
Hình 3.5. Sơ đồ mã hóa của hệ mật ..........................................................................60
Hình 3.6. Tách các khóa con ei cho các vòng mã hóa .............................................61


2

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Cùng với sự phát triển của xã hội loài ngƣời, mật mã là một trong những
nghệ thuật cổ xƣa có lịch sử hàng nghìn năm phát triển, kể từ khi có sự trao đổi

thông tin, thì truyền thông tin an toàn trở thành một nhu cầu không thể thiếu. Từ xa
xƣa, lịch sử mật mã học chính là lịch sử của những phƣơng pháp mật mã học cổ
điển, các phƣơng pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng
cụ cơ khí đơn giản, mang tính nghệ thuật hơn là khoa học. Với sự phát triển mạnh
mẽ của khoa học kỹ thuật công nghệ và internet, cùng với các nhu cầu đặc biệt có
liên quan tới an toàn thông tin, ngày nay cần có các yêu cầu kỹ thuật đặc biệt trong
việc đảm bảo an toàn thông tin.
Hệ thống khoá bí mật hay mật mã cổ điển là phƣơng pháp mã hoá đơn giản
nhất xuất hiện đầu tiên trong lịch sử ngành mã hoá. Phƣơng pháp này sử dụng các
thuật toán đơn giản, dễ hiểu nhƣng khó khăn trong việc quản lý lƣu trữ và thiết lập
phân phối khoá, với các hệ mật nhƣ: DES, AES,... Từ năm 1976 mật mã hiện đại
hay hệ thống mật mã công khai ra đời đã khắc phục đƣợc những nhƣợc điểm này.
Các nhà khoa học đã phát minh ra những hệ mật mã nhằm che dấu thông tin cũng
nhƣ làm rõ chúng để tránh những kẻ cố tình phá hoại với các hệ mật nhƣ: RSA,
ElGamal, Pohlig-Hellman…[6], [7]. Nhận thấy tính thiết thực của bài toán này và
đƣợc sự gợi ý của giảng viên hƣớng dẫn, tôi đã chọn đề tài: “Xây dựng một hệ mật
mã lai ghép dựa trên bài toán Logarit rời rạc” để làm đề tài cho luận văn tốt
nghiệp của mình.
2. Tổng quan về vấn đề nghiên cứu:
Mật mã khóa công khai (hay khóa không đối xứng) là phƣơng pháp mã hóa
bảo mật thông tin số với khóa mã hóa đƣợc công khai trên mạng. Hệ mật này ra đời
đã đáp ứng đƣợc nhiều dịch vụ bảo mật hiện đại nhƣ thƣơng mại điện tử, chữ ký số.
Hiện nay trên thế giới có khá nhiều hệ mật mã khối khóa công khai, tuy nhiên các
thuật toán mã hóa công khai cho đến nay thƣờng đƣợc xây dựng theo một trong các


3

bài toán một chiều cơ bản [1], [6], [8] đó là: Bài toán logarit rời rạc; Bài toán phân
tích thừa số; Bài toán xếp ba lô; Bài toán mã sửa sai; Bài toán trên đƣờng cong

elliptic; Bài toán hàm cửa sập…
Bài toán logarit rời rạc và bài toán phân tích thừa số, là hai bài toán đƣợc sử
dụng nhiều trong thực tế. Trong đó, một số thủ tục trao đổi khóa nhƣ thủ tục Diffie
– Hellman, các hệ mật nhƣ Omura – Massey, ElGamal, Pohlig-Hellman đều sử
dụng bài toán logarit rời rạc. Và hệ mật nổi tiếng RSA xây dựng trên bài toán phân
tích thừa số.
Cho đến nay, mặc dù đã có một số thuật toán giải bài toán logarit rời rạc [6],
[7], [8], tuy nhiên các thuật giải này chỉ hiệu quả với một số trƣờng hợp nhất định,
chƣa có thuật giải tổng quát hiệu quả nào. Do đó, có thể nói cho đến nay độ khó của
bài toán logarit rời rạc vẫn có thể đƣợc sử dụng cho các hệ mật khóa công khai.
Ở Việt Nam cũng có các nghiên cứu xây dựng các hệ mật và cũng có những
kết quả đáng quan tâm [3] [4], [5]... Các nghiên cứu này đề cập đến lý thuyết và
từng khía cạnh riêng lẻ của chủ đề này. Việc nghiên cứu áp dụng các thuật toán sẵn
có để phát triển các hệ mật lai ghép cũng là một hƣớng nghiên cứu góp phần vào
quá trình phát triển của ngành mật mã Việt Nam nói chung.
3. Mục đích nghiên cứu:
Mục đích nghiên cứu của luận văn đó là nghiên cứu các hệ mật, nghiên cứu
bài toán Logarit rời rạc và các hệ mật trên bài toán này. Trên cơ sở đó xây dựng một
hệ mật khóa bí mật lai ghép sử dụng hai phƣơng pháp xử lý là mũ hóa rời rạc (phép
toán logarith rời rạc là phép toán ngƣợc) và phép hoán vị.
4. Đối tƣợng và phạm vi nghiên cứu:


Đối tƣợng nghiên cứu: Mật mã khóa bí mật và khóa công khai.



Phạm vi nghiên cứu: Áp dụng hệ mật Pohlig – Hellman làm hàm mã hóa

và sơ đồ Feisteltrong một hệ mật lai ghép.

5. Phƣơng pháp nghiên cứu:
Phƣơng pháp nghiên cứu của đề tài là tổng hợp các kiến thức về mật mã học, lý
thuyết số, số học modulo; kết hợp với việc tính toán và mô phỏng trên máy tính.


4

CHƢƠNG 1. TỔNG QUAN VỀ MẬT MÃ HỌC
1.1. GIỚI THIỆU CHƢƠNG
Chƣơng 1 sẽ giới thiệu tổng quan về lịch sử ra đời và quá trình phát triển của
của mật mã gắn liền với quá trình phát triển của khoa học kỹ thuật, công nghệ. Từ
các kỹ thuật che dấu thông tin đơn giản đến việc xây dựng nên các hệ mật khóa bí
mật, các hệ mật khóa công khai.

1.2. LỊCH SỬ RA ĐỜI
Cùng với sự phát triển không ngừng nghỉ của khoa học kỹ thuật và xã hội,
nhu cầu về đảm bảo an toàn thông tin liên lạc áp dụng ngày càng nhiều và đƣợc
nâng cao trong mọi hoạt động của xã hội: trong công tác tình báo, quân sự, ngoại
giao, kinh tế, thƣơng mại, hay đƣợc thiết kế và tạo lập sẵn trong các cơ sở hạ tầng
của công nghệ tính toán và liên lạc viễn thông.
Mật mã học có lịch sử lâu dài, những dạng sớm nhất của mật mã hóa cổ điển
là cách viết bí mật chỉ cần bút và giấy. Hai phƣơng pháp chính thực hiện mật mã cổ
điển là phƣơng pháp: hoán vị, thay thế. Với phƣơng pháp hoán vị ngƣời ta sắp xếp
lại trật tự các chữ cái của thông điệp; còn với phƣơng pháp thay thế ngƣời ta thay
thế có hệ thống các chữ cái hay các nhóm chữ cái bằng các chữ cái hay các nhóm
chữ cái khác. Văn bản đƣợc mật mã hóa bằng mật mã cổ điển có xu hƣớng lộ ra các
thông tin thống kê nhất định về văn bản thƣờng. Bằng cách sử dụng các thông tin
này, mật mã cổ điển rất dễ bị dò ra (ví dụ bằng phân tích tần suất). Mật mã cổ điển
vẫn còn đƣợc phổ biến tới ngày nay, chủ yếu thông qua việc giải các ô đố chữ.
Với sự ra đời của máy tính kỹ thuật số và điện tử học thì các mật mã cực kỳ

phức tạp đã có thể đƣợc thực hiện. Đặc trƣng của mật mã máy tính là chúng thực
hiện trên các chuỗi nhị phân, khác với các mô hình mật mã hóa cổ điển và cơ học
(chỉ sử dụng bảng chữ cái với khoảng 26 ký tự, phụ thuộc vào từng ngôn ngữ). Mật
mã sử dụng máy tính có khả năng chịu đựng việc phân tích mật mã tốt hơn.


5

Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại chỉ đƣợc
bắt đầu trong cộng đồng mở kể từ những năm thập niên 1970 với các chi tiết kỹ
thuật của DES (viết tắt trong tiếng Anh của Data Encryption Standard tức Tiêu
chuẩn Mật mã hóa Dữ liệu) và sự phát minh ra RSA. Kể từ đó, mật mã hóa đã trở
thành công cụ đƣợc sử dụng rộng rãi trong liên lạc và bảo mật máy tính.
Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật
mã hóa khóa bất đối xứng trong đó nêu ra phƣơng pháp trao đổi khóa công khai.
Công trình này chịu sự ảnh hƣởng từ xuất bản trƣớc đó của Ralph Merkle về phân
phối khóa công khai. Trao đổi khóa Diffie-Hellman là phƣơng pháp có thể áp dụng
trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không
an toàn. Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle.
Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thỏa
thuận khóa… đƣợc phát triển. Các thuật toán nhƣ ElGamal (mật mã do Netscape
phát triển) hay DSA do NSA và NIST cũng dựa trên các bài toán lôgarit rời rạc
tƣơng tự nhƣ RSA. Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dòng
thuật toán mới: mật mã đƣờng cong elliptic và cũng tạo ra nhiều thuật toán tƣơng
tự. Mặc dù cơ sở toán học của dòng thuật toán này phức tạp hơn nhƣng lại giúp làm
giảm khối lƣợng tính toán đặc biệt khi khóa có độ dài lớn.

1.3. CÁC KHÁI NIỆM CƠ BẢN VỀ MẬT MÃ HỌC
Mật mã học là một bộ phận của khoa học mật mã (Cryptology), đƣợc chia
thành 2 bộ phận chính [1]:

+ Mật mã học (Cryptography): là một lĩnh vực liên quan với các kỹ thuật
ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là trong thông tin liên
lạc, chia ra 3 nội dung:
 Mật mã khóa bí mật (Khóa đối xứng): (Private-key Cryptography)
 Mật mã khóa công khai (Khóa bất đối xứng): (Public-key
Cryptography)
 Hàm băm, xác thực và chữ ký số


6

+ Phân tích mật mã (Cryptonalys): là khoa học nghiên cứu cách phá các hệ
mật nhằm phục hồi bản rõ ban đầu từ bản mã, dành riêng cho các nhà nghiên cứu
chuyên sâu về mật mã, chuyên nghiên cứu tìm hiểu các phƣơng pháp thám mã, một
số phƣơng pháp tấn công điển hình nhƣ:
 Phƣơng pháp tấn công tổng lực (tìm khóa vét cạn)
 Phƣơng pháp thống kê
 Phƣơng pháp phân tích cấu trúc…
Khoa học mật mã

Mật mã học

Mật mã
khóa bí mật

Phân tích mã

Mật mã khóa
công khai


Hàm băm, xác thực,
chữ ký số

Hình 1.1. Các lĩnh vực của khoa học mật mã

Các phương pháp xử lý thông tin số trong các hệ thống mật mã bao gồm:
- Mật mã khóa bí mật (khóa đối xứng)
Với hệ mật này, việc mã hóa và giải mã sử dụng chung một khóa, do đó hai
bên liên lạc phải thống nhất và bảo mật khóa trƣớc khi truyền tin. Các thuật toán mã
hóa trong hệ mật khóa bí mật thƣờng sử dụng các phƣơng pháp sau:
 Hoán vị.
 Thay thế.
 Xử lý bit (chủ yếu trong các ngôn ngữ lập trình).
 Phƣơng pháp hỗn hợp (điển hình là chuẩn mã hóa dữ liệu – DES).
- Mật mã khóa công khai (khóa không đối xứng)


7

Thông thƣờng mỗi bên liên lạc tự tạo cho mình một cặp khóa công khai và bí
mật, khóa công khai dùng để mã hóa bản tin và khóa này đƣợc công khai trên mạng,
còn khóa bí mật dùng để giải mã (chỉ có bên nhận tin lƣu trữ). Các thuật toán mã
hóa công khai cho đến nay đƣợc xây dựng theo một trong các bài toán một chiều cơ
bản sau:
 Bài toán logarit rời rạc
 Bài toán phân tích thừa số
 Bài toán xếp ba lô
 Bài toán mã sửa sai
 Bài toán trên đƣờng cong elliptic
 …

-

Mật mã khối
Trong các hệ mật mã khối quá trình xử lý thông tin đƣợc thực hiện theo các

khối bit có độ dài xác định.
-

Mật mã dòng
Trong các hệ mật mã dòng quá trình xử lý thông tin thực hiện trên từng bit.

-

Độ phức tạp tính toán
Độ phức tạp tính toán P (theo thời gian đa thức) các bài toán này là khả thi

và khá đơn giản; Độ phức tạp NP: NP là ký hiệu lớp các bài toán giải đƣợc bằng
thuật toán không tất định (NonDeterminal) trong thời gian đa thức (Polynomial).
Bài toán thuộc lớp NP thƣờng khó giải và khá phức tạp.
- Thám mã
Trƣớc tiên mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng
cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc đƣợc (cipher
text). Chỉ có những ngƣời giữ chìa khóa (key) bí mật mới có thể giải mã (decrypt)
thông tin thành dạng thông tin có thể hiểu đƣợc (plain text). Thông tin đôi khi bị
giải mã mà không cần biết khóa bí mật.


8

1.4. CÁC YÊU CẦU CHÍNH CỦA MẬT MÃ HIỆN ĐẠI

 Tính bí mật (confidentiality): Tài sản của hệ thống chỉ đƣợc truy cập bởi
những ngƣời có thẩm quyền. Các loại truy cập gồm: đọc (reading), xem
(viewing), in ấn (printing), sử dụng chƣơng trình, hoặc hiểu biết về sự tồn tại
của một đối tƣợng trong tổ chức. Tính bí mật có thể đƣợc bảo vệ nhờ việc
kiểm soát truy nhập (theo nhiều kiểu khác nhau) hoặc nhờ các thuật toán mã
hóa dữ liệu. Kiểm soát truy nhập chỉ có thể đƣợc thực hiện với các hệ thống
phần cứng vật lý. Còn đối với các dữ liệu công cộng thì thƣờng phƣơng pháp
hiệu quả là các phƣơng pháp của mật mã học.
 Tính toàn v n dữ liệu (data integrity): đảm bảo khả năng phát hiện sự sửa
đổi trái phép thông tin, thông tin của hệ thống chỉ đƣợc thay đổi bởi những
ngƣời có thẩm quyền.
 Xác thực (authentication): có mối liên hệ với định danh (identification). Nên
nó đƣợc thực hiện xác thực trên cả thực thể (hai đối tƣợng trong một phiên
liên lạc sẽ định danh lẫn nhau) và bản thân thông tin (thông tin đƣợc truyền
trên kênh truyền sẽ đƣợc xác thực về nguồn gốc, nội dung, thời gian gửi, …).
 Đảm bảo chống sự từ chối (non-repudiation): ngăn ngừa một thực thể từ
chối (phủ nhận) một cam kết hay hành động trƣớc đó.

1.5. CÁC HỆ MẬT KHÓA BÍ MẬT
1.5.1. Nguyên tắc xây dựng hệ mật khóa bí mật
Khi thiết kế mật mã thì vấn đề đảm bảo độ vững chắc của thuật toán là một
vấn đề quan trọng nhất. Đánh giá độ bền vững của thuật toán là một trong các vấn
đề lâu nhất và khó nhất.
Các toán tử sử dụng trong mật mã khóa bí mật:
 Phép hoán vị.
 Phép thay thế.
 Các phép toán số học: dịch vòng, XOR,…


9


Các sơ đồ mật mã nguyên thủy:
 Sơ đồ Feistel
 Mạng hoán vị - thay thế (SPN)
 Sơ đồ kết hợp
Sơ đồ chức năng hệ mật khoá bí mật
Thám mã
Bản mã C

Bản rõ M
Nguồn tin

Bản mã C
Kênh mở

Bộ mã hoá

Bản rõ M

Bộ giải mã

(không an toàn)

KE

KD
Kênh an toàn
K

Nguồn khoá

Hình 1.2. Sơ đồ khối chức năng hệ mật khoá bí mật

Hệ mật mã đƣợc định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
1. P (Plaintext) là tập hữu hạn các các bản rõ có thể
2. C (Ciphertext) tập hữu hạn các bản mã có thể
3. K (Key) là tập hữu hạn các khoá có thể
4. E (Encrytion) là tập các hàm lập mã
5. D (Decrytion) là tập các hàm giải mã. Với mỗi k ∈K, có một hàm lập mã

và một hàm giải mã:



sao cho:

( ( ))

,


Nhận tin


10

Nội dung cần mã hóa thể hiện dƣới dạng bản rõ ( ). Ngƣời gửi sử dụng qui
tắc mã hóa ( ) và khóa ( ) mã hoá bản rõ ( ), kết quả thu đƣợc gọi là bản mã
(

( )


). Bản mã này đƣợc gửi đi trên một đƣờng truyền tới ngƣời nhận, sau

khi nhận đƣợc bản mã ( ) ngƣời nhận sử dụng qui tắc ( ) và khóa ( ) giải mã nó
( )

để hiểu đƣợc nội dung thông điệp gốc (

).

1.5.2. Các hệ mật thay thế
1.5.2.1. Các hệ mật thay thế đơn biểu
Khi khoá đã đƣợc chọn thì mỗi ký tự của bản rõ đƣợc ánh xạ đến một kí tự
duy nhất của bản mã. Do mỗi cách mã hoá nhƣ vậy sẽ tƣơng ứng với một hoán vị
của bảng chữ và hoán vị đó chính là khoá của mã đã cho. Nhƣ vậy độ dài khoá ở
đây là 26 và số khoá có thể có là 26!.
 Mã dịch vòng:
Giả sử

, ta định nghĩa [1] [8]:

với

Mã hóa:
Giải mã:
Ví dụ 1.1:Với văn bản tiếng Anh,



= 26 hoặc 27, nhƣ vậy


hoặc

Ta sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thông
thƣờng bằng cách thiết lập sự tƣơng ứng giữa các ký tự và các thặng dƣ theo mod
26 nhƣ sau:
Bảng 1.1: Bảng mã dịch vòng

Ký tự

A

Mã tƣơng ứng

0

B
1

C
2

D
3

E
4

F
5


G
6

Ký tự

N

O

P

Q

R

S

T

Mã tƣơng ứng

13

14

15

16


17

18

19

Nhận xét:

H
7
U
20

I

J
8

V
21

K

L

M

9 10

11


12

X

Y

Z

22 23

24

25

W


11

 Khi k = 3, hệ mật này thƣờng đƣợc gọi là mã Caesar đã từng đƣợc Hoàng đế
Caesar sử dụng.
 MDV (theo mod 26) là không an toàn vì nó có thể bị thám theo phƣơng pháp
tìm khoá vét cạn (thám mã có thể dễ dàng thử mọi khoá đến khi tìm đƣợc
bản rõ có nghĩa).
 Từ ví dụ trên ta thấy rằng, điều kiện cần để một hệ mật an toàn là phép tìm
khoá vét cạn phải không thể thực hiện đƣợc. Tuy nhiên, một không gian
khoá lớn vẫn chƣa đủ để đảm bảm độ mật.
 Hệ mã này có thể tạo 26 khóa khác nhau. Trung bình có thể tính đƣợc bản rõ
sau khi thử 26/2 = 13 quy tắc giải mã.

 Mã thay thế
Cho
khóa

chứa mọi hoán vị có thể của 26 kí hiệu 0, 1, …, 25. Mỗi

.

là một phép hoán vị , ta định nghĩa [1]:

Mã hóa:

( )

Giải mã:

( )

( )
( )

trong đó

là hoán vị ngƣợc của

Thay thế một ký tự bằng một ký tự khác trong bảng ký tự. Số khoá có thể có
là: 26! với các máy tính hiện nay thì nó chƣa đủ an toàn.
Khi độ dài bản rõ đủ lớn, có thể sử dụng phƣơng pháp thống kê để thám mã.
Nó là hệ mã đơn biểu và ghi nhớ khóa khó khăn.
 Mã Affine

Trƣờng hợp đặc biệt của mã thay thế là mã Affine đƣợc mô tả [1] [8]:
đây là một phƣơng trình tuyến tính.

Mã hóa:
Giải mã:

(

Điều kiện tồn tại: để có

)
thì (

)

Nhận xét: Do khoảng trống xuất hiện nhiều trong văn bản, nên khi mã hóa


12

nên mã hóa cả khoảng trống để giảm số lần xuất hiện.
 Mật mã cũi lợn
Sử dụng các hình tƣợng khác nhau không nằm trong bảng ký tự thay thế
cho các ký tự.
1.5.2.2. Hệ mật mã thay thế đa biểu
Yếu điểm của các mã phƣơng pháp đơn biểu là phân bố tần suất của chúng
phản ánh phân bố của bảng chữ cái cơ sở. Một mã pháp an toàn hơn về mặt mật
mã sẽ thể hiện phân bố bằng phẳng hơn, điều này sẽ không cho kẻ thám mã chút
thông tin nào.
Một hƣớng khác làm tăng độ an toàn cho mã trên bảng chữ là sử dụng nhiều

bảng chữ để mã hoá. Mỗi chữ sẽ đƣợc mã bằng bất kỳ chữ nào trong bản mã tuỳ
thuộc vào ngữ cảnh khi mã hoá. Làm nhƣ vậy để trải băng tần suất các chữ xuất
hiện trong bản mã. Do đó làm mất bớt cấu trúc của bản rõ đƣợc thể hiện trên bản
mã và làm cho mã thám đa bảng khó hơn.
Ta sử dụng khoá để chỉ rõ chọn bảng nào đƣợc dùng cho từng chữ trong bản
tin. Độ dài khoá là chu kỳ lặp của bảng chữ. Độ dài càng lớn và nhiều chữ khác
nhau đƣợc sử dụng trong từ khoá thì càng khó thám mã [1].
 Mật mã Hill
Là một hệ mật thay thế đa biểu khác đƣợc gọi là mật mã Hill. Mật mã này do
Lester S.Hill đƣa ra năm 1929 [1] [8].
Cho

{các ma trận khả nghịch cấp
của

trên

}. Ý tƣởng là lấy

ký tự trong một phần tử của bản rõ để tạo ra

mã. Với một khoá

ta xác định:
( )



(


là một số nguyên dƣơng cố định, cho

)

cho

tổ hợp tuyến tính

ký tự ở một phần tử của bản


13

( )
Trong đó
trong

là những ma trận cấp 1 m ;

hay

là ma trận nghịch đảo của

. Tất cả các phép toán trên đƣợc thực hiện trong

 Hệ mật Vigenère
Sử dụng phép tƣơng ứng

mô tả ở trên, ta gắn


cho mỗi khoá K một chuỗi ký tự có độ dài
hoá đồng thời

ký tự: mỗi phần tử của bản rõ tƣơng đƣơng với

Ví dụ 1.2: Giả sử bản tin
với dãy số

gọi là từ khoá. Mật mã Vigenère sẽ mã
ký tự [1] [8].

= CIPHER. Từ khoá này tƣơng ứng

= 6 và từ khoá là

= (2, 8, 15, 7, 4, 17). Giả sử bản rõ là:
meet me at sunset

Ta sẽ biến đổi các phần tử của bản rõ thành các thặng dƣ theo mod 26, viết
chúng thành các nhóm 6 rồi cộng với từ khoá theo modulo 26 nhƣ sau:
12

4

4

19

12


4

0 19

18

20

13

18

4 19

Bản rõ

2

8

15

7

4

17

2


8

15

7

4

17

2

8

Khoá

14

12

19

0

16

21

2


1

7

1

17

9

6

1

Bản mã

Nhƣ vậy, dãy ký tự tƣơng ứng với xâu bản mã sẽ là:
OMTA QV CB HBRJGB
Ta có thể mô tả mật mã Vigenère nhƣ sau:
Cho

là một số nguyên dƣơng cố định nào đó.
(

Ta định nghĩa:
Với khoá

)

), ta xác định:


(

(

)
(

(
)

)
(

)

Chú ý: Để giải mã, ta có thể dùng cùng từ khoá nhƣng thay cho cộng, ta trừ nó


14

theo modulo 26.
Nhận xét: Ta thấy rằng, số các từ khoá có thể với độ dài
Vigenere là 26

. Bởi vậy, thậm chí với

cũng yêu cầu thời gian khá lớn. Ví dụ, với

trong mật mã


khá nhỏ, phƣơng pháp tìm kiếm vét cạn
= 6 thì không gian khoá cũng có kích

thƣớc lớn hơn 3.108 khoá.
1.5.2.3. Các hệ mật thay thế không tuần hoàn
Phép thế lý tƣởng sẽ dùng nhiều bảng chữ cái để không nhận diện đƣợc phân
bố và không có mẫu trong suốt đối với việc lựa chọn một bảng chữ cái tại một điểm
cụ thể. Điều gì sẽ xảy ra nếu một văn bản đƣợc mã bằng số bảng không hạn chế.
Một dãy vô hạn không lặp lại sẽ làm hỏng phƣơng pháp Kasiski
- Thứ nhất: một xâu bản rõ lặp lại sẽ không đƣợc mã theo cùng cách hai lần
vì không có sự lặp lại mẫu trong việc chọn các bảng chữ cái.
- Thứ hai: giả sử một đoạn bản mã nào đó là đoạn lặp lại của đoạn trƣớc đó,
đoạn lặp hầu nhƣ chắc chắn là tình cờ. Khoảng cách giữa hai đoạn đúp rõ sẽ không
chỉ rõ chu kỳ trong mẫu mã hoá vì không có mẫu nào và vì thế không có chu kỳ.
Nhƣ vậy việc lựa chọn không lặp các bảng chữ cái mã gây khó khăn cho
phân tích mã.
 Hệ mật khoá chạy
Lý tƣởng nhất là ta có khoá dài nhƣ bản tin.
Vigenere đề xuất khoá tự động sinh cho bằng độ dài bản tin nhƣ sau:
 Từ khoá đƣợc nối tiếp bằng chính bản rõ để tạo thành khoá. Sau đó mã
Vigenere để mã bản rõ đã cho.
 Khi đó biết từ khoá có thể khôi phục đƣợc một số chữ ban đầu của bản rõ.
Sau đó tiếp tục sử dụng chúng để giải mã cho văn bản còn lại.
 Sự cải tiến này làm mất khái niệm chu kỳ, gây khó khăn cho việc thám mã,
nhƣng vẫn còn đặc trƣng tần suất để tấn công.


15


 Hệ mật Vernam (OTP)
One-Time Pad (OTP), đƣợc phát minh năm 1917 bởi Gilbert Vernam, một
kỹ sƣ làm việc ở Bell Labs thuộc AT&T. Dẫu vậy, trong nhiều năm liền, không một
ai biết OTP thực sự an toàn đến mức nào, cho đến năm 1949, khi công
trình Communication Theory of Secrecy Systems của Claude Shannon đƣợc công
bố rộng rãi. Trong bài báo đó, Claude Shannon đã đặt nền móng cho lý thuyết mật
mã hiện đại khi lần đầu tiên đƣa ra định nghĩa toán học của khái niệm an toàn và
chứng minh đƣợc OTP an toàn theo định nghĩa đó.
Vernam tạo ra mã OTP khi tìm cách cải tiến mã Vigenère, nên ý tƣởng của
OTP khá giống với ý tƣởng của Vigenère, cụ thể nhƣ sau:


M  C  K  0,1 OTP xem bản rõ là một chuỗi bit “0101010101…” và mỗi
n

khóa là một chuỗi bit ngẫu nhiên có chiều dài bằng với bản rõ.


Lập mã: C  E  k , m   k  m ; phép XOR thực chất là phép cộng modulo 2 khi
thực hiện trên các chuỗi bit.



Giải mã: D  D  k , c   k  c .
Ví dụ 1.3:Bản rõ:10110010010, Khóa:01101010101; Bản mã: 11011000111
Chúng ta có thể dễ dàng kiểm chứng rằng OTP thỏa mãn yêu cầu nhất quán

của một mã. Một trong những lợi thế của OTP là tốc độ thực thi rất nhanh, còn bất
lợi duy nhất là chiều dài khóa phải bằng chiều dài của bản rõ. Bất lợi này làm cho
OTP gần nhƣ trở thành vô dụng, bởi vì nếu nhƣ Alice và Bob đã có một cách để

trao đổi khóa an toàn, thì họ đã có thể dùng ngay cách đó để trao đổi bản rõ luôn.
Tuy vậy OTP vẫn đƣợc sử dụng trong thực tế.
Nhƣ đã nói ở trên, trong nhiều năm liền không ai phá đƣợc mã OTP nhƣng
cũng không ai chứng minh đƣợc rằng OTP là an toàn.
Mật mã học có mật mã với kiểm chứng mạnh của độ an toàn là mật mã
Vernam. Tuy nhiên, nó yêu cầu các khóa (ít nhất) là có độ dài bằng độ dài văn bản


16

thƣờng, vì thế nói chung ngƣời ta cho rằng chúng là quá cồng kềnh để có thể áp
dụng trong thực tế.

1.5.3. Các hệ mật hoán vị
Trƣớc đó ta đã xét MTT, ở đó các chữ của bản rõ đƣợc thay thế bằng bảng
chữ các chữ khác của bản mã.
Bây giờ chúng ta xét đến loại mã khác, mã hoán vị (MHV), các chữ trong
bản rõ không đƣợc thay thế bằng các chữ khác mã chỉ thay đổi vị trí, tức là việc mã
hoá chỉ dịch chuyển vị trí tƣơng đối giữa các chữ trong bản rõ.
Nhƣ vậy, nó dấu bản rõ bằng cách thay đổi thứ tự các chữ, nó không thay đổi
các chữ thực tế đƣợc dùng. Do đó bản mã có cùng phân bố tần suất xuất hiện các
chữ nhƣ bản gốc. Nhƣ vậy có thể thám mã để phát hiện đƣợc.
Khác với MTT, ý tƣởng của MHV là giữ các ký tự của bản rõ không thay đổi
nhƣng sẽ thay đổi vị trí của chúng bằng cách sắp xếp lại các ký tự này. Ở đây không
có một phép toán đại số nào cần thực hiện khi mã hoá và giải mã.
Ví dụ 1.4: Giả sử

 6 và khoá là phép hoán vị sau:
1


2

3

4

5

6

3

5

1

6

4

2

Khi đó, phép hoán vị ngƣợc sẽ là:
1

2

3

4


5

6

3

6

1

5

2

4

Giả sử ta có bản rõ: a second class carriage on the train Trƣớc tiên, ta nhóm
bản rõ thành các nhóm 6 ký tự: asecon | dclass | carria | geonth | etrain. Sau đó, mỗi
nhóm 6 chữ cái lại đƣợc sắp xếp lại theo phép hoán vị

, ta có: EOANCS |

LSDSAC | RICARA | OTGHNE | RIENAT.Cuối cùng, ta có bản mã sau:
EOANCSLSDSACRICARAOTGHNERIENAT


17

Khi sử dụng phép hoán vị ngƣợc




trên dãy bản mã (sau khi đã nhóm lại

theo các nhóm 6 ký tự), ta sẽ nhận lại đƣợc bản rõ ban đầu.
Từ ví dụ trên, ta có thể định nghĩa MHV nhƣ sau [1]:
Cho

là một số nguyên dƣơng xác định nào đó.

Cho  

 và cho

Đối với một khoá

là tất cả các hoán vị có thể có của: 



(tức là một phép hoán vị nào đó), ta xác định:

(

)(

 








(
trong đó



)(

 

 )

là phép hoán vị ngƣợc của

1.5.4. Hệ mật mã tích
Một phát minh khác do Shannon đƣa ra trong bài báo của mình năm 1949 là
ý tƣởng kết hợp các hệ mật bằng cách tạo tích của chúng. Ý tƣởng này có tầm quan
trọng to lớn trong việc thiết kế các hệ mật hiện nay (chuẩn mã dữ liệu - DES). Để
đơn giản, chỉ hạn chế xét các hệ mật trong đó C  P các hệ mật loại này đƣợc gọi là
tự đồng cấu. Giả sử S1  ( P, P, K1 , E1 , D1 ) và S2  ( P, P, K2 , E2 , D2 ) là hai hệ mật tự
đồng cấu có cùng các không gian bản mã và rõ. Khi đó, tích của



(kí hiệu:


) đƣợc xác định là hệ mật sau: ( P, P, K1  K2 , E, D) .
(

Khoá của hệ mật tích có dạng

) trong đó



quy tắc mã và giải mã của hệ mật tích đƣợc xác định nhƣ sau: Với mỗi
ta có một quy tắc mã

xác định theo công thức:
(

)(

)

.

( )/

(

)(

)

.


( )/

và quy tắc giải mã:

. Các
(

)


×