Tải bản đầy đủ (.docx) (82 trang)

NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN

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 (549.81 KB, 82 trang )

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP
ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG
CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN

Hà Nội - 2017


TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN VIỆT THẮNG

ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP
ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG
CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN
Chuyên ngành : Công nghệ thông tin
Mã ngành

: 52480201

GIÁO VIÊN HƯỚNG DẪN: ThS. BÙI THỊ THÙY

Hà Nội - 2017


3


LỜI CAM ĐOAN
Em xin cam đoan đây là đề tài nghiên cứu của riêng em và được sự hướng
dẫn khoa học của ThS. Bùi Thị Thùy. Các nội dung nghiên cứu, kết quả trong đề
tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây. Những số
liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính
tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo.
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu
của các tác giả khác, cơ quan tổ chức khác và đều có trích dẫn cụ thể. Nếu phát hiện
có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm về nội dung đồ án của
mình. Trường đại học Tài nguyên và Môi trường Hà Nội cùng Khoa Công nghệ
thông tin không liên quan đến vi phạm tác quyền, bản quyền do em gây ra trong quá
trình thực hiện (nếu có).
Sinh viên

Nguyễn Việt Thắng


4

LỜI CẢM ƠN
Tôi xin cảm ơn sâu sắc đến cô giáo, ThS. Bùi Thị Thùy – Khoa công nghệ
thông tin – Đại học tài nguyên và môi trường Hà Nội, cô đã chỉ bảo tận tình, đầy
trách nhiệm, cho tôi các ý kiến chỉ đạo trong suốt quá trình làm đồ án, đã động viên,
tạo điều kiện thuận lợi để tôi hoàn thành đồ án này.
Tôi xin chân thành cảm ơn toàn thể các thầy cô nói chung và các thầy cô
Khoa công nghệ thông tin nói riêng – Đại học tài nguyên và môi trường Hà Nộiđã
truyền đạt những kiến thức bổ ích và lý thú, giúp ích cho tôi trên con đường sự
nghiệp của mình.
Cuối cùng, tôi xin cảm ơn sự ủng hộ của gia đình và bạn bè đã đóng góp ý
kiến, động viên, giúp đỡ cho tôi hoàn thành đồ án này.

Nguyễn Việt Thắng


5

MỤC LỤC


6

DANH MỤC CÁC HÌNH VẼ


7

DANH SÁCH BẢNG


8

DANH SÁCH ĐOẠN MÃ


9

KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
Từ viết tắt
BM
BMH


DES

Nghĩa tiếng Anh
Boyer-Moore algorithm
Boyer-Moore-Horspool
algorithm
Knuth – Morris – Pratt
algorithm
Data Encryption Standard

AES

Advanced Encryption Standard

RSA

Ron Rivest, Adi Shamir và Len
Adleman
Static Parsing Steganography
Longest Common Substring

KMP

SPS
LCS

Nghĩa tiếng Việt
Thuật toán Boyer-Moore
Thuật toán BoyerMooreHorspool
Thuật toán Knuth - Morris Pratt

Chuẩn mã hóa dữ liệu, là một
giải thuật mã hóa bí mật
Chuẩn mã hóa nâng cao, là
một giải thuật mã hóa khóa
bí mật
Là một thuật toán mã hóa
công khai
Phân tích cú pháp tĩnh
Chuỗi con chung dài nhất


10

MỞ ĐẦU
1. Lý do lựa chọn đề tài
Ngày nay vấn đề an toàn thông tin được xem là một trong những quan tâm
hàng đầu của xã hội, có ảnh hưởng rất nhiều đến hầu hết các ngành khoa học tự
nhiên, kỹ thuật, khoa học xã hội và kinh tế. Đặc biệt với sự phát triển của công nghệ
thông tin đặc biệt là Internet, khiến việc bảo mật an toàn thông tin của người sử
dụng càng quan trọng và thiết yếu.
Mã hóa và ẩn mã là hai phương pháp được sử dụng phổ biến trong việc bảo
vệ thông tin trên các kênh truyền không tin cậy. Tuy nhiên, những phương pháp này
thường được sử dụng độc lập trong quá trình truyền tin. Việc lựa chọn một phương
pháp kết hợp giữa ẩn mã và mã hóa sẽ phát huy tối đa hiệu quả của từng phương
pháp. Vì vậy em lựa chọn nghiên cứu phát triển đề tài này nhằm tìm hiểu phương
pháp làm tăng độ tin cậy và an toàn cho thông tin được truyền đi của người gửi, qua
đó ứng dụng vào nhiều vấn đề bảo mật khác nhau.
2. Nội dung đề tài
Mã hóa và ẩn mã đều là những phương pháp đảm bảo sự an toàn cho thông
tin được trao đổi trên các kênh truyền không tin cậy. Phương pháp mã hóa nhằm ẩn

mã thông tin mật bằng cách biến đổi thông tin ban đầu (bản rõ) thành một dạng
khác (bản mã) bí mật. Phương pháp ẩn mã lại tập trung vào việc Ẩn đi sự tồn tại của
thông tin trong các vật phủ (hình ảnh, âm thanh, văn bản,…).
Mã hóa là một ngành khoa học có lịch sử phát triển lâu đời và được ứng
dụng rất nhiều trong thực tế, đặc biệt trong các cuộc chiến tranh. Đây là lĩnh vực
nghiên cứu về các phương pháp truyền tin theo cách mã hóa dữ liệu hoặc thông báo
thành bản mã để không ai đọc được nếu không có khóa giải mã phù hợp. Thông
thường, mã hóa được chia thành: Mã hóa khóa bí mật (hay còn gọi là mã hóa đối
xứng), mã hóa khóa công khai (mã hóa bất đối xứng), chữ kí số và hàm băm.
Mã hóa ngày càng được ứng dụng rộng rãi và trở thành những tiêu chuẩn
đảm bảo truyền thông tin an toàn, tin cậy, kiểm soát truy nhập tài nguyên cũng như


11

những giao dịch điện tử. Nó được sử dụng để giới hạn truy cập tới những dữ liệu
nhạy cảm. Trong thực tế, mã hóa là thành phần rất quan trọng trong những chính
sách an toàn của tổ chức.
Cùng với sự phát triển của mã hóa là ẩn mã. Ngày nay các kỹ thuật ẩn mã
được sử dụng như một chuẩn mã hóa để che dấu thông tin trên đường truyền không
bí mật. Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh,
video, văn bản..
Mã hóa và ẩn mã là hai phương pháp được sử dụng phổ biến trong việc bảo
vệ thông tin trên các kênh truyền không tin cậy. Tuy nhiên, những phương pháp này
thường được sử dụng độc lập trong quá trình truyền tin. Sự kết hợp mã hóa với ẩn
mã nhằm làm tăng độ tin cậy và an toàn cho thông tin được truyền đi.
3. Phương pháp nghiên cứu
- Phương pháp lý thuyết: Nghiên cứu tìm hiểu lý thuyết, chức năng, nhiệm vụ của
phương pháp mã hóa và ẩn mã có trước, nâng cấp để đạt kết quả cao hơn
- Phương pháp phân tích: Đưa ra các nhận định riêng về các tính năng của phương

pháp, độ khả thi và những nhu cầu thực tiễn của phương pháp.
- Phương pháp thực nghiệm: Thực hiện xây dựng ứng dụng bằng những kiến thức
đã có, kết hợp quá trình xử lý lỗi để đạt được sản phẩm hoàn thiện.
4. Cấu trúc đồ án
Nội dung đồ án gồm phần mở đầu và 3 chương như sau:


Chương 1: Tổng quan về mã hóa và ẩn mã.

Trình bày định nghĩa, khái niệm, lịch sử ra đời cũng như phát triển của mã hóa
và ẩn mã. Phân loại các phương pháp mã hóa và ẩn mã, nêu ra các ưu điểm và
nhược điểm của từng phương pháp. Bên cạnh đó cũng nêu lên tầm quan trọng và
những ứng dụng của mã hóa và ẩn mã.


12



Chương 2: Phương pháp kết hợp mã hóa và ẩn mã.

Chương này sẽ đi sâu vào phân tích, nghiên cứu phương pháp ẩn mã mới,
phương pháp ẩn mã không thay đổi “Vật phủ”. Trình bày cơ sở toán học, nghiên
cứu các giải thuật đối sánh chuỗi và ứng dụng của giải thuật vào xây dựng ứng
dụng mã hóa kết hợp với ẩn mã.


Chương 3: Xây dựng ứng dụng mã hóa kết hợp với ẩn mã.

Chương này trình bày phương pháp cài đặt giải thuật mã hóa, đưa ra mô hình kết

hợp mã hóa và ẩn mã. Từ đó xây dụng ứng dụng mã hóa và ẩn mã. Đánh giá
mức độ phức tạp trong việc cài đặt, khả năng bảo mật và khả năng bị phá mã.


13

CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA VÀ ẨN MÃ
Giới thiệu chung

1.1.

Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắc
trong xã hội và trong cuộc sống của chúng ta. Những thuận lợi mà thông tin kỹ
thuật số mang lại cũng sinh ra những thách thức và cơ hội cho quá trình đổi mới. Sự
ra đời những phần mềm có tính năng rất mạnh, các thiết bị mới như máy ảnh kỹ
thuật số, máy quét chất lượng cao, máy in, máy ghi âm kỹ thuật số, v.v... , đã được
sáng tạo trên cơ sở thoả mãn thế giới tiêu dùng rộng lớn, để xử lý và thưởng thức
các dữ liệu đa phương tiện (multimedia data). Mạng Internet toàn cầu đã hình thành
một xã hội ảo nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị,
quân sự, quốc phòng, kinh tế, thương mại…Chính trong môi trường mở và tiện nghi
như thế xuất hiện những vấn nạn, tiêu cực đang rất cần đến các giải pháp hữu hiệu
cho vấn đề an toàn thông tin như nạn ăn cắp bản quyền, nạn xuyên tạc thông tin,
truy nhập thông tin trái phép v.v... Tìm giải pháp cho những vấn đề nêu trên không
chỉ tạo điều kiện đi sâu vào lĩnh vực công nghệ phức tạp đang phát triển rất nhanh
này mà còn dẫn đến những cơ hội phát triển kinh tế.


Giải pháp cho những vấn đề trên:
Trong một quá trình phát triển lâu dài, nhiều phương pháp bảo vệ thông tin


đã được đưa ra, trong đó giải pháp dùng mật mã học là giải pháp được ứng dụng
rộng rãi nhất. Các hệ mật mã đã được phát triển nhanh chóng và được ứng dụng rất
phổ biến cho đến tận ngày nay. Thông tin ban đầu được mã hoá thành các ký hiệu
vô nghĩa, sau đó sẽ được lấy lại thông qua việc giải mã nhờ khoá của hệ mã. Đã có
rất nhiều những hệ mã phức tạp được sử dụng như DES, RSA ... Các phương pháp
này trong thực tế tỏ ra rất hiệu quả và được ứng dụng phổ biến. Tuy nhiên trong báo
cáo không đi sâu nghiên cứu về các hệ mật mã mà chỉ tiếp cận với một phương
pháp đã và đang được nghiên cứu, phát triển ở nhiều nước trên thế giới, đó là
phương pháp ẩn mã thông tin. Phương pháp này còn mới và phức tạp, ứng dụng


14

trong an toàn và bảo mật thông tin, đang được xem như một công nghệ chìa khoá
cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập …
Để bảo đảm an toàn cho nội dung của thông tin, người ta thường sử dụng
phương pháp mã hoá thông tin, nhằm ẩn đi ý nghĩa của nó. Để giữ bí mật cho thông
tin, người ta tìm ra cách ẩn mã đi sự hiện diện của nó. Xu hướng hiện nay là kết hợp
hai kỹ thuật: mã hóa thông tin sau đó ẩn mã thông tin. Mã hoá và ẩn mã thông tin có
quan hệ chặt chẽ với nhau. Nhiều ý tưởng của kỹ thuật mật mã (Cryptography) rất
hữu ích trong những công việc ẩn mã sự hiện hữu của thông tin. Nghiên cứu việc
kết hợp hai kỹ thuật mật mã và ẩn mã dữ liệu, nhằm khắc phục những nhược điểm
hoặc những hạn chế của từng loại, cho phép xây dựng những hệ thống bảo mật, an
toàn cho việc chuyển tảidữ liệu trên các phương tiện thông tin đại chúng. [2]

Hình 1.1: Phân cấp các lĩnh vực nghiên cứu của mật mã học
1.2.

Tổng quan về mã hóa
• Lịch sử mã hóa

Mã hóa đã được con người sử dụng từ lâu đời. Các hình thức mã hóa sơ khai

đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại.
Trải qua hàng nghìn năm lịch sử, mã hóa đã được sử dụng rộng rãi ở khắp nơi trên
thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh
vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự,
chính trị, ngoại giao. Mã hóa trước hết là một loại hoạt động thực tiễn, nội dung
chính của nó là để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một người
gửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng
và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật


15

và khôi phục lại văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do
văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài
có thể “lấy trộm” được, nhưng vì đó là bản mã hóa nên không đọc hiểu được; Còn A
có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được là
do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung này
thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từ bản mã
mật. Khoá chung đó được gọi là khoá mã hóa. Để thực hiện được một phép mã hóa,
ta còn cần có một thuật toán biến bản rõ cùng với khoá mã hóa thành bản mã mật và
một thuật toán ngược lại biến bản mật cùng với khoá mã hóa thành bản rõ. Các
thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã. Các
thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí
mật là khoá mã hóa. Trong thực tiễn, có những hoạt động ngược lại với hoạt động
bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường
được gọi là mã thám hay phá khoá.[6]



Các chức năng cơ bản của mã hóa
Đảm bảo tính bí mật (confidentiality) – giải quyết vấn đề bảo vệ thông tin

chống lại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truy nhập
chúng. Thuật ngữ sự bí mật (secrecy) hoặc sự riêng tư (privacy) cũng đồng nghĩa
với confidentiality.[6]
Đảm bảo tính toàn vẹn dữ liệu (data integrity) – đảm bảo khả năng phát hiện
sửa đổi trái phép thông tin. Để đảm bảo toàn vẹn dữ liệu, cần có các phương pháp
đơn giản và tin cậy phát hiện bất kỳ sự can thiệp không mong muốn vào dữ liệu
(các can thiệp như chèn, xóa và thay thế trong bản tin).[6]
Đảm bảo sự xác thực (authentication) – chức năng này có liên hệ với sự định
danh (identification). Vì thế 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, …). Vì thế vấn đề xác thực trong mật mã được chia thành hai lớp chính – xác


16

thực thực thể (identity authentication) và xác thực nguồn gốc dữ liệu (data origin
authentication).[6]
Đảm bảo chống sự từ chối (non-repudiation) – chức năng ngăn ngừa một
thực thể từ chối (phủ nhận) một cam kết hoặc hành động trước đó. Khi xuất hiện
tranh chấp vì một thực thể từ chối một hành động chắc chắn đã xảy ra, một biện
pháp giải quyết là cần thiết.[6]


Khái niệm về hệ mật

Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:

1. P là tập hữu hạn các các bản rõ có thể
2. C tập hữu hạn các bản mã có thể
3. K là tập hữu hạn các khoá có thể
4. E là tập các hàm lập mã
5. D là tập các hàm giải mã. Với mỗi k ∈ K, có một hàm lập mã
ek∈ E, ek: P → C và một hàm giải mã dk∈ D, dk: C → P sao cho
dk(ek(x)) = x , ∀ x ∈ P.[6]

Hình 1.2: Quá trình mã hóa và giải mã.


Mã hóa khóa đối xứng
Là những hệ mật dùng chung một khoá cả trong quá trình mã hoá dữ liệu và

giải mã dữ liệu. Do đó khoá phải được giữ bí mật tuyệt đối. Một số thuật toán nổi
tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES…
Những đặc điểm của mã hóa đối xứng:
-

Quá trình mã hóa và giải mã thông tin sử dụng cùng một khóa bí mật.


17

-

Mã hóa đối xứng chuyển đổi bản rõ – plaintext thành bản mã – ciphertext
thông qua sử dụng khóa và thuật toán mã hóa. Ciphertext được chuyển về
dạng gốc thông qua sử dụng khóa và thuật toán giải mã.
Mô hình mã hóa đối xứng (Symmetric Cipher Model)


-

Plaintext: Dữ liệu gốc (Original Data) – P
Secret key: Khóa bí mật – K. Sự xáo trộn, thay thế được thực hiện phụ thuộc

-

vào khóa này.
Encryption Algorithms: Thuật toán mã hóa dữ liệu – E. Thực hiện thay thế và

-

biến đổi dữ liệu gốc.
Ciphertext: Bản mã – C. Bản tin đã bị biến đổi sau khi áp dụng thuật toán, nó

-

phụ thuộc vào plaintext và khóa bí mật.
Decryption Algorithm: Thuật toán giải mã dữ liệu – D. Thuật toán giải mã
(phép biến đổi ngược). Sử dụng ciphertext và khóa bí mật để đưa ra bản tin
gốc.
Mô hình mã hóa đối xứng

Hình 1.3: Mô hình mã hóa đối xứng
Các giải thuật mã hóa đối xứng.
Mã hóa đối xứng sử dụng sự kết hợp giữa các phương pháp mã hóa cổ điển,
mã hóa dòng mã hóa khối, với các đặc điểm sau:
-


Sử dụng một khóa duy nhất cho cả quá trình mã hóa và giải mã.
Kích thước khóa tương đối ngắn (64, 128, 192 bit)
Tốc độ mã hóa, giải mã nhanh.
Độ an toàn cao.
Khó khăn trong việc quản lý và phân phối khóa.


18



Mã hóa khóa công khai.
Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối

xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công
khai và một phương pháp trao đổi công khai để tạo ra một khoá bí mật chung mà
tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán
tính “logarit rời rạc”). Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã
phi đối xứng, sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (public
key) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key). Trong hệ
mật này, khoá mã hoá khác với khoá giải mã. Về mặt toán học thì từ khoá công rất
khó tính được khoá riêng. Biết được khoá này không dễ dàng tìm được khoá kia.
Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai. Một
người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người
nào có đúng khoá giải mã mới có khả năng xem được bản rõ.[7]
Người gửi A sẽ mã hoá thông điệp bằng khóa công của người nhận và người
nhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình.

Hình 1.4: Mô hình mã hóa và giải mã hệ mã hóa công khai
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng”

trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triễn khai cho thấy tốc
độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm hơn rất
nhiều so với hệ mã hoá đối xứng. Ví dụ, để đạt được độ an toàn như các hệ mã đối
xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một văn bản lâu hơn
gấp hàng ngàn lần. Do đó, thay bằng việc mã hoá văn bản có kích thước lớn bằng


19

lược đồ khoá công khai thì văn bản này sẽ được mã hoá bằng một hệ mã đối xứng
có tốc độ cao như DES, IDEA,…sau đó khoá được sử dụng trong hệ mã đối xứng sẽ
được mã hoá sử dụng mật mã khoá công khai. Phương pháp này rất khả thi trong
việc mã và giải mã những văn bản có kích thước lớn.[6]
 Ưu và nhược điểm của hệ mật mã khoá công khai

Vấn đề còn tồn đọng của hệ mật mã khoá đối xứng được giải quyết nhờ
hệmật mã khoá công khai. Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đề
xuất, đánh giá các hệ mật mã công khai. Nhưng do bản thân các hệ mật mã khoá
công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ
mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhược điểm này làm
cho các hệ mật mã khoá công khai khó được dùng một cách độc lập.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc
xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khoá mã công
khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khoá
được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể
bị lợi dụng. Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã
khoá công khai. Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như
Kerberos, X.509… Một ưu điểm nữa của các hệ mật mã khoá công khai là các ứng
dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký
để bảo đảm tính toàn vẹn của một văn bản được giải quyết.[6]



Chữ ký số
Mật mã khoá công khai có thể được sử dụng theo nhiều cách khác nhau. Chữ

ký số là một ví dụ minh chứng cho việc đảm bảo xác thực người dùng và toàn vẹn
dữ liệu. Nếu người gửi A mã hoá thông điệp hay tài liệu với khoá riêng của mình thì
bất kỳ ai cũng có thể giải mã thông điệp với khoá công của A. Do đó, người nhận có
thể chắc chắn rằng thông điệp mình nhận chỉ có thể do A mã hóa vì chỉ A mới có
khoá riêng của mình. Quá trình mã hoá thông điệp với khoá riêng của người gửi gọi
là quá trình “ký số”.


20

Trong thực tế, quá trình ký số thường khó hơn. Thay bằng việc mã bảnthông
điệp gốc với khoá riêng của người gửi thì chỉ có bản đại diện thông điệp (bản băm)
có độ dài cố định được mã hoá với khoá riêng của người gửi và bản băm đã được
mã hoá này được gắn vào với thông điệp gốc. Người nhận B sau khi nhận được
thông điệp đầu tiên sẽ giải mã bản băm với khoá công của người gửi, sau đó băm
thông điệp đi kèm bằng thuật toán băm tương ứng với thuật toán băm người gửi đã
sử dụng. B so sánh hai giá trị băm nếu giống nhau thì chắc chắn rằng thông điệp A
gửi cho B còn nguyên vẹn, đồng thời xác thực được người gửi thông tin là ai.
Tính toàn vẹn của thông điệp được đảm bảo vì chỉ thay đổi một bit
trongthông điệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau. Tính xác thực của
người gửi cũng được đảm bảo vì chỉ có người gửi A mới có khoá riêng để mã bản
băm.
Chữ ký số cũng chứng minh được tính chống chối bỏ bản gốc vì chỉ có A
mới có khoá riêng dùng để ký số.
-


Sơ đồ chữ ký được định nghĩa như sau:

Sơ đồ chữ ký là một bộ năm (P, A, K, S, V), trong đó:
1. P là một tập hữu hạn các văn bản có thể
2. A là một tập hữu hạn các chữ ký có thể
3. K là một tập hữu hạn các khoá có thể
4. S là tập các thuật toán ký
5. V là tập các thuật toán kiểm thử
6. Với mỗi k ∈ K, có một thuật toán ký sig k ∈ S, sig k: P → A và một thuật
toán kiểm thử ver k ∈ V, ver k: P x A → {đúng, sai}, thoả mãn điều kiện sau
đây với mọi x ∈ P, y ∈ A:

-

Quy trình ký và kiểm tra chữ ký:
- Quá trình ký văn bản:

Giả sử A muốn gửi cho B thông điệp x, A thực hiện các bước sau:


21

1. A băm thông điệp x, thu được bản đại diện z = h(x) – có kích thước cố định

128 bit hoặc 160 bit.
2. A ký số trên bản đại diện z, bằng khóa bí mật của mình, thu được bản ký số y
= sigK (z).
3. A gửi thông điệp và chữ ký (x, y) cho B.


-

Hình 1.5: Quá trình ký văn bản
Quá trình xác thực chữ ký số:

Khi B nhận được (x, y). B thực hiện các bước sau:
1. B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có

phải được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóa
công khai của A, được z.
2. B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng – để

băm thông điệp x đi kèm, nhận được h(x).
3. B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng thông

điệp x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thực
được người gửi thông tin là ai. [6]


22

Hình 1.6: Xác thực chữ ký số


Hàm băm

Hàm băm là hàm chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có
độ dài cố định. Các hàm băm nhận một chuỗi bit có chiều dài tùy ý (hữu hạn) làm
dữ liệu đầu vào và tạo ra một chuỗi bit mới có chiều dài cố định n bit (n > 0), được
gọi là giá trị băm hay mã băm.

Như vậy, hàm băm là một hàm h có ít nhất hai tính chất sau:
-

Tính chất nén: H sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tuỳ tới một

-

đầu ra H(x) có độ dài bit n hữu hạn.
Tính chất dễ dàng tính toán: Với H cho trước và một đầu vào x, có thể dễ
dàng tính được H(x).
Các hàm băm (H) tạo ra bản nhận dạng (fingerprint) cho một tập tin, thông

điệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn.[6]
Đặc trưng cơ bản của hàm băm H(x):
-

H có thể được áp dụng trên khối dữ liệu có độ dài bất kỳ.
H tạo đầu ra có độ dài cố định
H(x) tính toán mọi x tương đối dễ dàng, tạo điều kiện cho việc cài đặt trên

-

phần cứng lẫn phần mềm được thiết thực
Với bất kỳ giá trị băm h, không thể tính được x sao cho H(x)=h. Hay H được

-

gọi là hàm một chiều
Tính bền xung đột yếu (weak collision resistance): với bất kỳ giá trị x,
không thể tính được y ≠ x sao cho H(y) = H(x).



23

-

Tính bền xung đột mạnh (strong collision resistance): Không thể tính được
một cặp (x, y) sao cho H(x) = H(y).
Phân loại hàm băm:

Hình 1.7: Phân loại hàm băm
Liệt kê một số loại hàm băm:
Bảng 1.1: Các hàm băm
Thuật toán

Kích
thước đầu
ra

Kích thước
trạng thái
trong

Kích thước
khối

Độ dài

Kích
thước

world

Xung đột

HAVAL

256/224/19
2/160/128

256

1024

64

32



MD2

128

384

128

Không

8


MD4

128

128

512

64

32



MD5

128

128

512

64

32



PANAMA


256

8736

256

No

32

Có lỗi

RIPEMD

128

128

512

64

32



128/256

128/256


512

64

32

Không

160/320

160/320

512

64

32

Không

160

160

512

64

32


Không

RIPEMD128/256
RIPEMD160/320
SHA-0

khả năng lớn


24

SHA-1
SHA256/224
SHA512/384
Tiger(2)192/160/128
VEST-4/8
(hash
mode)
VEST16/32 (hash
mode)
WHIRLPO
OL

160

160

512


64

32

Có lỗi

256/224

256

512

64

32

Không

512/384

512

1024

128

64

Không


192/160/12
8

192

512

64

64

Không

160/256

256/384

8

80/128

1

Không

320/512

512/768

8


160/256

1

Không

512

512

512

256

8

Không

Một số ứng dụng của hàm băm:
-

Key Stretching (tạo khóa bí mật từ mật khẩu)
Integrity checking (kiểm tra tính toàn vẹn dữ liệu)
HMAC - Hashed Message Authentication Code (mã chứng thực thông điệp

-

sử dụng hàm băm)
Chữ ký điện tử



25

1.3.

Tổng quan về ẩn mã.
Ẩn mã, xét theo khía cạnh tổng quát cũng là một hệ mã mật, nhằm đảm bảo

tính an toàn thông tin. Phương pháp này ưu điểm là làm vô hình nội dung thông tin
được chứa trong tệp tin, đó chính là biện pháp hữu hiệu, hạn chế tối đa được sự phá
hoại của những tên tin tặc (hacker). Việc gửi đi những tệp tin thông thường sẽ
không gây ra sự tò mò, chú ý của những tên tin tặc.[7]
Khái niệm về ẩn mã:
Ẩn mã là một kỹ thuật nhúng (Ẩn) một lượng thông tin số nào đó vào trong
một đối tượng dữ liệu số (vật phủ) khác theo một phương pháp nào đó. Có thể làm
thay đổi nội dung của đối tượng khác mà không thể phân biệt được hoặc có thể sử
dụng những đối tượng định trước để truy xuất thông tin.
Ẩn mã là thuật ngữ xuất phát từ tiếng Hi Lạp có nghĩa là “cách viết được
che phủ” nhưng vẫn có thể tìm ra được bản gốc và đã có từ năm 440 trước công
nguyên. Các tài liệu lịch sử cho thấy con người đã áp dụng phương pháp ẩn mã
như viết thông báo lên bảng gỗ sau đó phủ bằng một lớp sáp ong hoặc cạo trọc đầu
và xăm thông báo rồi đợi tóc mọc dài lại,... Sau này, người ta đã sử dụng các loại
“mực vô hình” được làm từ các nguyên liệu hữu cơ như sữa, nước hoa quả… và
các bản viết chỉ hiện lên khi được hơ nóng trên lửa. Vào thế kỉ 21, nhiều nước đã
bắt đầu sử dụng ẩn mã để bảo vệ tiền tệ không bị làm giả, bằng những loại mực
đặc biệt, thuốc nhuộm, sợi chỉ và những mảnh vải nhỏ nhúng bên trong để kí hiệu
giá trị của đồng tiền. Khi Internet ra đời, kéo theo sự phát triển mạnh mẽ của
phương pháp ẩn mã để trao đổi các thông tin một cách bí mật trên các kênh không
an toàn. Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh,

video, văn bản,…
Kỹ thuật ẩn thông tin nhằm hai mục đích đảm bảo an toàn và bảo mật thông
tin: một là bảo mật cho dữ liệu được đem ẩn, hai là bảo mật cho chính đối tượng
được dùng để ẩn mã. Hai mục đích khác nhau này dẫn đến hai khuynh hướng kỹ
thuật chủ yếu của ẩn mã. Khuynh hướng thứ nhất là ẩn mã mật (steganography).


×