ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG
PHẠM VĂN THANH
GIẤU TIN TRONG ẢNH DỰA TRÊN
MA TRẬN TẦN SỐ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG
PHẠM VĂN THANH
GIẤU TIN TRONG ẢNH DỰA TRÊN
MA TRẬN TẦN SỐ
Chuyên ngành: Khoa học máy tính
Mã số
: 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
HƢỚNG DẪN KHOA HỌC: PGS.TSKH NGUYỄN XUÂN HUY
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt đƣợc trong luận văn là sản phẩm của riêng cá nhân,
không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận văn, những điều đƣợc
trình bày hoặc là của cá nhân hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài
liệu tham khảo đều có xuất xứ rõ ràng và đƣợc trích dẫn hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho
lời cam đoan của mình.
Thái Nguyên, ngày 15 tháng 11 năm 2011
Phạm Văn Thanh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
LỜI CẢM ƠN
Lời đầu tiên, tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS-TSKH Nguyễn
Xuân Huy - Viện Công nghệ Thông tin - Viện Khoa học Việt Nam, ngƣời đã tận tình
hƣớng dẫn, chỉ bảo và giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận
văn này.
Tôi xin chân thành cảm ơn các thầy cô giáo trƣờng Đại học Công nghệ Thông tin và
Truyền thông - Đại học Thái Nguyên đã giảng dạy và cung cấp cho chúng tôi những kiến
thức rất bổ ích trong thời gian học cao học, giúp tôi có nền tảng tri thức để phục vụ nghiên
cứu khoa học sau này.
Tôi cũng xin cảm ơn Lãnh đạo và đồng nghiệp tại đơn vị đã tạo điều kiện và giúp đỡ
tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn. Tôi cũng xin bày tỏ lòng cảm
ơn đến gia đình và bạn bè, những ngƣời luôn quan tâm, động viên và khuyến khích tôi
trong quá trình học tập.
Thái Nguyên, ngày 15tháng 11 năm 2011
Học viên
Phạm Văn Thanh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
i
MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
Mục lục ........................................................................................................................ i
Danh mục các ký hiệu, các chữ viết tắt ..................................................................... iii
Danh mục các hình .................................................................................................... iv
MỞ ĐẦU ............................................................................................................................... 1
CHƢƠNG 1. KHÁI QUÁT VỀ MÃ HÓA VÀ GIẤU TIN MẬT ........................................ 3
1.1 Mã hóa thông tin .......................................................................................................... 3
1.1.1 Các khái niệm cơ bản ........................................................................................... 3
1.1.2 Phân loại các hệ mật mã....................................................................................... 4
1.2 Giấu tin mật ............................................................................................................... 14
1.2.1 Các khái niệm cơ bản ......................................................................................... 14
1.2.2 Mô hình giấu tin .................................................................................................. 17
1.2.3 Tính chất của giấu tin mật .................................................................................. 18
1.2.4 Ứng dụng của giấu tin mật ................................................................................. 20
1.2.5 Kỹ thuật tấn công hệ giấu tin mật ....................................................................... 21
1.3 Kết chƣơng................................................................................................................. 22
CHƢƠNG 2. GIẤU TIN MẬT TRONG ẢNH SỐ ............................................................. 23
2.1 Ảnh số ........................................................................................................................ 23
2.1.1 Biểu diễn ảnh số .................................................................................................. 23
2.1.2 Các tham số chính của ảnh số ............................................................................ 26
2.1.3 Nén ảnh ............................................................................................................... 27
2.2 Giấu tin mật trong ảnh số ........................................................................................... 35
2.2.1 Giấu tin mật trong ảnh đen trắng ....................................................................... 36
2.2.2 Giấu tin trong ảnh màu ....................................................................................... 40
2.3 Giấu tin trong ảnh dựa trên miền tần số .................................................................... 44
2.3.1 Biến đổi DCT thuận và nghịch ........................................................................... 44
2.3.2 Đặc điểm của phép biến đổi DCT trên ảnh hai chiều ........................................ 44
2.3.3 Một số giải thuật giấu tin trong ảnh JPEG ........................................................ 45
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
ii
2.4 Kết chƣơng................................................................................................................. 59
CHƢƠNG 3. CHƢƠNG TRÌNH GIẤU TIN TRONG ẢNH JPEG ................................... 61
3.1 Mục đích, yêu cầu ...................................................................................................... 61
3.2 Giải pháp .................................................................................................................... 61
3.3 Xây dựng và cài đặt chƣơng trình .............................................................................. 63
3.3.1 Xây dựng cơ sở dữ liệu ảnh mang ...................................................................... 63
3.3.2 Lựa chọn kỹ thuật nén ......................................................................................... 63
3.3.3 Lựa chọn phương pháp mã hoá .......................................................................... 63
3.3.4 Lựa chọn giải thuật giấu tin ............................................................................... 64
3.3.5 Lựa chọn môi trường xây dựng........................................................................... 64
3.3.6 Thiết kế và cài đặt chương trình ......................................................................... 65
3.3.7 Hạn chế và đề xuất.............................................................................................. 71
3.4 Kết chƣơng................................................................................................................. 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 – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
iii
DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN
AES
Hệ mật mã tiên tiến (Advanced Encryption Standard)
DCT
Biến đổi Cosine rời rạc (Discrete Cosine Transform)
DES
Hệ mật mã chuẩn (Data Encryption Standard)
DFT
Biến đổi Fourier rời rạc (Discrete Fourier Transform)
DPCM
Điều xung mã vi phân (Differized Pulse Code Modulation)
ECC
Hệ mã hóa đƣờng cong Ellip (Elliptic Curve Cryptography)
HVS
Hệ thống thị giác của con ngƣời (Human Visual System)
JPEG
Chuẩn nén ảnh của ủy ban JPEG quốc tế
(Joint Photographic Experts Group)
LZW
Một phƣơng pháp nén (Lempel - Zip và Welch)
PCM
Điều biên mã xung (Pulse Code Modulation)
RLE
Mã hóa loạt dài (Run Length Encoding)
RSA
Mã hóa công khai RSA (Ron Rivest, Adi Shamir và Len Adleman)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
iv
DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Quá trình mã hoá và giải mã ................................................................................... 4
Hình 1.2 Mô hình hệ thống mật mã đối xứng ........................................................................ 6
Hình 1.3 Mô hình hệ thống mật mã bất đối xứng .................................................................. 9
Hình 1.4.a Mô hình kết hợp mật mã đối xứng và bất đối xứng (bên gửi) ........................... 12
Hình 1.4.b Mô hình kết hợp mật mã đối xứng và bất đối xứng (bên nhận) ........................ 13
Hình 1.5 Mô hình phân loại các kỹ thuật giấu tin................................................................ 16
Hình 1.6 Mô hình của quá trình giấu tin .............................................................................. 18
Hình 1.7 Mô hình của quá trình giải mã tin giấu ................................................................. 18
Hình 2.1 Mô hình màu RGB ................................................................................................ 24
Hình 2.2 Mô hình màu YUV ............................................................................................... 25
Hình 2.3 Mô hình dòng ảnh biểu diễn dƣới dạng sóng ...................................................... 29
Hình 2.4 Mô hình tạo ra sóng vuông ................................................................................... 29
Hình 2.5 Mô hình chuyển đổi giữa miền thời gian và miền tần số ...................................... 30
Hình 2.6 Mô hình nén ảnh JPEG ......................................................................................... 33
Hình 2.7 Thí dụ minh họa thuật toán Wu-Lee ..................................................................... 39
Hình 2.8 Mô hình phân bố của các hệ số tần số của ảnh JPEG sau khi lƣợng tử hóa ......... 46
Hình 2.9 Mô hình giấu thông tin Jsteg với 50% dung lƣợng............................................... 48
Hình 2.10 Mô hình phân bố của các hệ số tần số sử dụng giải thuật F3 ............................. 50
Hình 2.11 Mô hình phân bố của các hệ số tần số sử dụng giải thuật F4 ............................. 51
Hình 2.12 Đoạn mã nguồn bằng Java sử dụng giải thuật F4 ............................................... 52
Hình 3.1 Mô hình giấu tin của chƣơng trình ....................................................................... 62
Hình 3.2 Giao diện chính của chƣơng trình ......................................................................... 68
Hình 3.3 Giao diện giấu tin mật ........................................................................................... 69
Hình 3.4 Giao diện tách tin mật ........................................................................................... 70
Hình 3.5 Giao diện trợ giúp ................................................................................................. 70
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
1
MỞ ĐẦU
Chúng ta đang sống trong xã hội thông tin. Đã có truyền tin thì thƣờng có yêu
cầu bí mật quốc gia, có bí mật quân sự, có bí mật công nghệ, có bí mật kinh tế, và
rất nhiều bí mật cá nhân nữa. Chính vì vậy, vấn đề an toàn và bảo mật thông tin
luôn nhận đƣợc sự quan tâm của nhiều lĩnh vực. Các công nghệ và giải pháp để bảo
vệ thông tin đã và đang đƣợc nghiên cứu, phát triển phù hợp với nhiều dạng lƣu trữ
các thông tin và phƣơng thức truyền tải thông tin.
Giải pháp bảo mật thông tin đƣợc sử dụng phổ biến nhất là dùng các hệ mật
mã nhƣ: Hệ mã hoá công khai, hệ mã hoá bí mật. Với giải pháp này, thông tin ban
đầu sẽ đƣợc mã hoá thành bản mật mã. Một phƣơng pháp khác đã và đang đƣợc
nghiên cứu, ứng dụng rất mạnh mẽ ở nhiều lĩnh vực đó là phƣơng pháp giấu tin mật
(Steganography). Nhiều cách thức giấu tin mật đã đƣợc nghiên cứu và ứng dụng,
trên nhiều định dạng khác nhau nhƣ âm thanh, hình ảnh và video…Cả hai phƣơng
pháp trên đều có những ƣu, nhƣợc điểm nhất định. Mã hoá giúp che giấu nội dung
thông tin, giấu tin mật giúp che giấu hoạt động trao đổi thông tin. Trên thực tế, để
đảm bảo an toàn cho các kênh trao đổi thông tin bí mật ta cần phải kết hợp cả hai
phƣơng pháp này.
Trong phạm vi luận văn này sẽ tập trung tìm hiểu một số nội dung cơ bản của
mã hoá thông tin và các kỹ thuật giấu tin trong ảnh đã đƣợc công bố, sau đó xây
dựng chƣơng trình giấu tin trong ảnh có kết hợp mã hóa thông tin phục vụ cho quá
trình trao đổi thông tin bí mật.
Luận văn gồm 3 chƣơng, cụ thể nhƣ sau:
Chƣơng 1: Khái quát về mã hóa và giấu tin mật. Chƣơng này tìm hiểu tổng
quan về các kỹ thuật mã hoá thông tin và giấu tin mật. Nội dung đề cập là các khái
niệm cơ bản, tính chất, đặc điểm, ứng dụng và một số vấn đề có liên quan của các
kỹ thuật này.
Chƣơng 2. Giấu tin mật trong ảnh số. Để có thể thực hiện các kỹ thuật mã
hoá và giấu tin mật trong môi trƣờng đa phƣơng tiện thì vấn đề đặt ra là cần tìm
hiểu cấu trúc, đặc điểm và tính chất của các định dạng trong môi trƣờng đa phƣơng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
2
tiện. Chƣơng này tập trung trình bày các khái niệm cơ bản, đặc điểm, tính chất và
các kỹ thuật nén đƣợc áp dụng đối với ảnh số, đặc biệt là ảnh JPEG và một số
phƣơng pháp giấu tin mật trong ảnh dựa trên miền tần số.
Chƣơng 3: Chƣơng trình giấu tin trong ảnh JPEG. Chƣơng này sẽ trình
bày cách sử dụng giải thuật giấu tin F5 dùng mã ma trận để xây dựng và cài đặt
chƣơng trình giấu tin trong ảnh JPEG có kết hợp nén và mã hoá thông tin. Đồng
thời này cũng đề xuất giải pháp giúp cho việc xây dựng ứng dụng giấu tin mật, đảm
bảo bí mật và an toàn cho liên lạc bí mật cho nhiều lĩnh vực.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
3
CHƢƠNG 1
KHÁI QUÁT VỀ MÃ HÓA VÀ GIẤU TIN MẬT
1.1 Mã hóa thông tin
1.1.1 Các khái niệm cơ bản
- Khái niệm mật mã
Theo nghĩa hẹp, ―mật mã‖ chủ yếu dùng để bảo mật dữ liệu, ngƣời ta quan
niệm: Mật mã học là khoa học nghiên cứu mật mã, bao gồm: Tạo mã và phân tích
mã.
Phân tích mã là kỹ thuật, nghệ thuật phân tích mật mã, kiểm tra tính bảo mật
của nó hoặc phá vỡ sự bí mật của nó. Phân tích mã còn gọi là thám mã.
Theo nghĩa rộng, ―mật mã‖ là một trong những công cụ hiệu quả bảo đảm an
toàn thông tin nói chung: bảo mật, bảo toàn, xác thực, chống chối cãi,…
Luận văn này trình bày các khái niệm thƣờng dùng trong ngành mật mã học.
- Khái niệm mã hoá thông tin [8]
+ Mã hóa là quá trình chuyển thông tin có thể đọc đƣợc (gọi là Bản rõ) thành
thông tin ―khó‖ thể đọc đƣợc theo cách thông thƣờng (gọi là Bản mã). Đây là một
trong những kỹ thuật để bảo mật thông tin.
+ Giải mã là quá trình chuyển thông tin ngƣợc lại, từ Bản mã thành Bản rõ.
+ Thuật toán mã hóa hay giải mã là thủ tục tính toán để mã hóa hay giải mã
+ Khóa mật mã (cryptographic key) là thành phần quan trọng trong thuật toán
mật mã. Khóa mật mã có thể ví nhƣ chìa của một ổ khóa. Ta có thể lắp đƣợc rất
nhiều chìa (có cùng chiều dài, chiều rộng, kích thƣớc rãnh...) vào một ổ khóa nhƣng
chỉ chìa nào có các răng cƣa thích hợp mới có thể mở đƣợc ổ khóa. Tƣơng tự, mỗi
thuật toán mật mã cần một khóa mật mã có chiều dài (dung lƣợng tính bằng bit)
chính xác. Ta có thể thực thi một thuật toán mật mã với một khóa mật mã bất kỳ có
chiều dài nhƣ yêu cầu nhƣng chỉ duy nhất khóa mật mã có cách sắp xếp các bit phù
hợp mới có thể mã hóa hoặc giải mã văn bản. Phạm vi giá trị có thể có của khóa
đƣợc gọi là Không gian khóa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
4
+ Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng
nhƣ làm cho rõ nó.
Hệ mã hoá đƣợc định nghĩa là bộ năm (P, C, K, E, D), trong đó:
- P: là tập hữu hạn các bản rõ có thể.
- C: tập hữu hạn các bản mã có thể.
- K: tập hữu hạn các khoá có thể.
- E: tập các hàm lập mã.
- D: tập các hàm giải mã.
Với khoá lập mã ke K, có hàm lập mã eke E, eke: P → C.
Với khoá giải mã kd K, có hàm giải mã dkd D, dkd: C→P, sao cho
dkd(eke(T))= T, Với mọi T P. Ở đây T đƣợc gọi là Bản rõ, Cm = eke(T) đƣợc gọi
là Bản mã.
Quá trình mã hóa và giải mã:
abcd
T- Bản rõ
E -Mã hóa
#$%^
Cm- Bản mã
Ke - Khóa mã
D- Giải mã
Kd - Khóa giải mã
abcd
T- Bản rõ
Hình 1.1 Quá trình mã hoá và giải mã
Ngƣời gửi tin G muốn gửi bản tin T cho ngƣời nhận N. Để đảm báo bí mật, G
mã hoá bản tin bằng khoá lập mã ke, nhận đƣợc bản mã Cm = eke(T), sau đó gửi bản
mã Cm cho N. Tin tặc có thể trộm bản mã Cm nhƣng cũng ―khó‖ để hiểu đƣợc bản
tin gốc T nếu không có khoá giải mã kd.
Ngƣời nhận N nhận đƣợc bản mã Cm, họ dùng khoá giải mã kd để giải mã và
nhận đƣợc bản tin gốc T = dkd(Cm) = dkd(eke(T)).
1.1.2 Phân loại các hệ mật mã
Có 2 loại thuật toán mật mã chính là mật mã đối xứng (symmetric
cryptography) và mật mã bất đối xứng (asymmetric cryptography).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
5
- Mật mã đối xứng ( hay còn gọi là hệ mã hóa khóa bí mật) đã đƣợc sử dụng
từ rất lâu đời. Căn cứ các dữ liệu khảo cổ, ngƣời ta tin rằng ngƣời Ai Cập cổ đã biết
dùng loại mật mã này. Trong hệ thống mật mã đối xứng, quá trình mã hóa và giải
mã một thông điệp sử dụng cùng một khóa mật mã gọi là khóa bí mật (secret key)
hay khóa đối xứng (symmetric key). Do đó, vấn đề bảo mật thông tin đã mã hóa
hoàn toàn phụ thuộc vào việc giữ bí mật nội dung của khóa mật mã đã đƣợc sử
dụng.
Khóa mật mã dùng trong mật mã đối xứng thực chất là một chuỗi (chiều dài
xác định) các bit đƣợc sắp xếp ngẫu nhiên. Nếu thuật toán đối xứng dùng mã hóa
đối xứng 40 bit thì dung lƣợng khóa mật mã là 40 bit. Khóa mật mã dung lƣợng 128
bit đƣợc dùng cho mã hóa đối xứng 128 bit...Một chuỗi 40 bit sẽ có thể cho ta 2 lũy
thừa 40 khóa mật mã hay 1.1E12 khóa mật mã, tức là có hơn 1.000 tỷ khóa mật mã.
Một chuỗi 60 bit sẽ có thể cho ta 2 lũy thừa 60 khóa mật mã hay 1.8E19 khóa mật
mã, tức là có gần 20 tỷ tỷ khóa mật mã. Hiện nay, khóa mật mã đối xứng chuẩn có
chiều dài 128 bit. Vậy ta có thể có 3.4E38 khóa mật mã, tức là có hơn 340 tỷ tỷ tỷ tỷ
khóa mật mã.
Thuật toán mật mã đối xứng dùng một khóa mật mã cho 2 quá trình mã hóa và
giải mã. Mật mã đối xứng lại có thể đƣợc chia thành 2 hình thức: block cipher và
stream cipher.[2]
Block cipher: Block cipher chia thông tin thành những đoạn ngắn có chiều dài
cố định (thƣờng là 64 bit) và mã hóa từng đoạn này. Một số thuật toán block cipher:
DES, 3-DES, RC2, RC5, RC6 và Rijndaen (còn đƣợc gọi là AES).
Thuật toán DES (Data Encryption Standard) phổ biến nhất và là thuật toán tiêu
biểu cho mật mã đối xứng, đƣợc IBM phát triển vào cuối thập niên 1970. DES chia
thông tin thành chuỗi 64 bit và mã hóa bằng khóa mật mã 56 bit. Do sự gia tăng
mạnh mẽ năng lực của máy tính, khóa mật mã 56 bit hiện nay trở nên thiếu an toàn
nếu bị tấn công brute-force. 3-DES (viết tắt của Triple DES) đƣợc phát triển để lấp
yếu điểm này bằng cách mã hóa 3 lần hoặc phối hợp 3 phép toán.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
6
Các thuật toán họ RC đƣợc phát triển bởi Ron Rivest (chữ R trong RSA). RC
là từ viết tắt của Ron's Code hoặc Rivest Cipher. RC2 đƣợc phát triển để thay thế
cho DES và có tốc độ nhanh gấp đôi DES. RC5 mã hóa chuỗi dữ liệu 64 hoặc 128
bit và có thể sử dụng nhiều chiều dài khóa mật mã, tối đa đến 2.048 bit. RC6 đƣợc
phát triển trên cơ sở RC5, mã hóa chuỗi 128 bit với khóa mật mã 128 bit. RC6 cũng
nhằm thay thế cho DES và có thể đƣợc xem là thuật toán cuối cùng trong thế hệ đầu
của các chuẩn thuật toán mật mã đối xứng.
Thế hệ kế tiếp của các chuẩn mã đối xứng đƣợc gọi chung là AES - Advanced
Encryption Standard - dùng khóa mật mã 128 bit có ƣu thế vƣợt trội so với RC6.
Thuật toán AES mạnh nhất là Rijindael do 2 ngƣời Bỉ đề xƣớng: Daemen và
Rijmen. Một số thuật toán AES mới nhất gồm MARS (IBM), Serpent (Anderson,
Riham và Knudsen), Twofish (Scheier, Kelsey, Whiting, Wagner, Hall và
Ferguson)
Stream cipher: Stream cipher mã hóa từng bit của thông tin. Stream cipher
thông dụng nhất là RC4 có thể dùng nhiều chiều dài khóa mật mã và có tốc độ
nhanh hơn rất nhiều so với block cipher
Khi đã có thuật toán mật mã đối xứng và một số ngẫu nhiên dùng làm khóa
mật mã, quá trình mã hóa và giải mã có thể mô tả nhƣ sau:
-
Mã hóa: C = T + K
-
Giải mã: T = C – K
Trong đó T: Bản tin, K: Khóa mật mã và thuật toán mã đối xứng, C: Bản mật
mã
abcd
Mã hóa
#$%^
Giải mã
T-Bản rõ
C-Bản mã
T-Bản rõ
Khóa bí mật Ks
abcd
Khóa bí mật Ks
Hình 1.2 Mô hình hệ thống mật mã đối xứng
Hệ mật mã đối xứng có đặc điểm sau:
+ Dùng chỉ một khóa mật mã cho cả hai quá trình mã hóa và giải mã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
7
+ Độ bảo mật cao
+ Tốc độ thực hiện nhanh.
+ Bản mã có dung lƣợng tƣơng đƣơng bản gốc.
+ Việc chuyển khóa mật mã đến ngƣời nhận có thể khiến cho bản mã chẳng
còn gì là bí mật đối với mọi ngƣời.
+ Số lƣợng khóa mật mã phải quản lý gần bằng bình phƣơng số đối tƣợng
tham gia trao đổi thông tin, vì thế không phù hợp với giao dịch trên quy mô lớn.
+ Việc quản lý khóa mật mã phức tạp, tốn nhiều công sức.
Mật mã đối xứng thƣờng đƣợc sử dụng trong môi trƣờng mà khoá chung có
thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ và để mã
hoá những bản tin lớn vì tốc độ mã hoá và giải mã nhanh hơn hệ mật mã bất đối
xứng.
- Mật mã bất đối xứng (hay còn gọi là hệ mã hóa khóa công khai)
Vào giữa thập niên 1970, Whitfield Diffie và Martin Hellman là những ngƣời
đầu tiên đƣa ra khái niệm mật mã bất đối xứng. Thuật toán mật mã Diffie - Hellman
đƣợc xây dựng trên cơ sở logarit rời rạc nhằm mục đích giải quyết vấn đề bảo vệ
quá trình trao đổi khóa mật mã đối xứng.
Một trong những thuật toán mật mã bất đối xứng thành công nhất là RSA.
RSA đƣợc Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm
1977 tại Học viện Công nghệ Massachusetts (MIT - Massachusetts Institute of
Technology). Tên của thuật toán lấy từ ba chữ cái đầu của tên ba tác giả. RSA là
thuật toán đƣợc nghiên cứu nhiều nhất và cho đến nay nó vẫn đứng vững trƣớc
những thử nghiệm tấn công của các chuyên gia mật mã. RSA thƣờng dùng khóa
mật mã 1024 bit và là thuật toán mật mã bất đối xứng đƣợc dùng phổ biến nhất
trong công nghệ máy tính hiện nay.
ECC (Elliptic Curve Cryptography) đƣợc Neal Koblitz và Victor S. Miller đề
xƣớng vào năm 1985. ECC có thời gian xử lý nhanh hơn RSA và tuy ra đời sau
RSA nhƣng ECC cũng đã trải qua rất nhiều thử nghiệm tấn công của các chuyên gia
mật mã. ECC có rất nhiều biến thể nên có thể đƣợc xem nhƣ một "họ" thuật toán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
8
chứ không chỉ là một thuật toán. Để đạt đƣợc cùng một cấp độ bảo mật nhƣ RSA,
ECC có thể dùng một khóa mật mã ngắn hơn và ít hao tổn hiệu suất máy tính hơn.
Vào tháng tƣ năm 2000, RSA Laboratories (trực thuộc RSA Security) công bố
"A Cost-Based Security Analysis of Symmetric and Asymmetric Key Lengths" bao
gồm một bảng thống kê:
- Các chiều dài khóa mật mã cần thiết của mỗi thuật toán để đạt cùng một cấp
độ bảo mật.
- Số máy tính dùng để bẻ khóa.
- Dung lƣợng RAM.
- Thời gian để bẻ khóa thành công.
Chiều dài khóa mật mã
Đối xứng
ECC
Số máy tính
cần dùng
RSA
RAM
Thời gian bẻ
khóa thành công
56
112
430
10.000
Không đáng kể
Ít hơn 5 phút
80
160
760
4.300
4 GB
600 tháng
96
192
1020
114
170 GB
3 triệu năm
128
256
1620
16
120TB
10E16 năm
Bảng 1.1 Thống kê độ an toàn của các hệ mật mã
Thống kê trên đây [2] là kết quả của một số giả định và công thức tính khá
phức tạp. Thông qua kết quả cuối cùng, có thể nêu một vài nhận xét nhƣ sau:
- Để tăng cƣờng bảo mật, nên thay thế DES (khóa mật mã 56 bit) bằng AES
(khóa mật mã 128 bit) cũng nhƣ nên thay khóa mật mã RSA 768 bit bằng khóa mật
mã RSA 1024 bit.
- Để đạt cùng cấp độ bảo mật, khóa mật mã cần dùng của mật mã đối xứng
luôn luôn ngắn nhất và của mật mã bất đối xứng RSA luôn luôn dài nhất.
- Tuổi của vũ trụ là 15 x 10E9 năm còn thời gian bẻ khóa thành công ở dòng
cuối cùng là 10E16 năm!
Ngƣời ta cũng phát triển một số thuật toán mật mã bất đối xứng khác, ví dụ
NTRU, Arithmetica... Những anh chàng này vẫn còn là "lính mới", tuy có triển
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
9
vọng nhƣng chƣa hề trải qua thời gian "thử lửa" lâu dài nhƣ ECC và càng không thể
so sánh với RSA.
Quá trình phát sinh khóa mật mã đối xứng chỉ đơn thuần là chọn một số ngẫu
nhiên có dung lƣợng xác định.
Quá trình phát sinh khóa mật mã bất đối xứng cũng dựa trên yếu tố ngẫu nhiên
nhƣng phức tạp hơn rất nhiều. Tên gọi bất đối xứng là do hai quá trình mã hóa và
giải mã dùng 02 khóa mật mã khác nhau. Hai khóa mật mã là hai giá trị khác nhau
nhƣng lại có quan hệ toán học và phải đƣợc phát sinh đồng thời. Một khóa đƣợc gọi
là khóa mật mã công khai (public key), khóa còn lại đƣợc gọi là khóa mật mã cá
nhân (private key). Điểm thú vị của khóa mật mã bất đối xứng là khi thông tin đƣợc
mã bằng khóa công khai thì chỉ có thể giải mã bằng khóa cá nhân và ngƣợc lại.
abcd
Mã hóa
#$%^
abcd
Bản mã
Bản rõ
Mã hóa
Bản rõ
Khóa cá nhân
Khóa công khai
abcd
Giải mã
#$%^
Giải mã
xxx
Bản mã
Bản rõ
Khóa công khai
Khóa công khai
Hình 1.3 Mô hình hệ thống mật mã bất đối xứng
Khóa mật mã công khai là khóa mật mã mà sở hữu chủ công bố cho mọi
ngƣời. Khóa mật mã cá nhân là khóa mật mã mà sở hữu chủ sẽ giữ kín, không cho
ai biết. Ta có thể hình dung khóa mật mã công khai nhƣ là số điện thoại của anh
Thanh đƣợc đăng trong một danh bạ công cộng, còn khóa mật mã cá nhân là chiếc
sim mà anh Thanh đang lắp trong điện thoại của mình.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
10
Bất cứ ai cũng có thể tra số số điện thoại của anh Thanh trong danh bạ và gọi
cho Thanh: mã hóa dữ liệu bằng khóa mật mã công khai mà Thanh đã công bố.
Chỉ một mình Thanh có thể nhận cuộc gọi vì đang sở hữu sim tƣơng ứng, chỉ
một mình Thanh có thể giải mã đƣợc bằng khóa mật mã cá nhân của mình.
Hệ mật mã bất đối xứng có đặc điểm sau:
+ Dữ liệu mã hóa bởi một khóa mật mã (công khai hoặc cá nhân) sẽ chỉ có thể
đƣợc giải mã với khóa mật mã còn lại (cá nhân hoặc công khai).
+ Độ bảo mật cao.
+ Quá trình trao đổi khóa mật mã không ảnh hƣởng đến việc bảo mật thông
tin.
+ Số lƣợng khóa mật mã phải quản lý bằng với số đối tƣợng tham gia trao đổi
thông tin, do đó phù hợp với giao dịch trên mọi quy mô.
+ Tốc độ thực hiện khá chậm.
+ Bản mã có dung lƣợng lớn hơn nhiều so với bản gốc.
Đặc trƣng nổi bật của hệ mật mã bất đối xứng là khoá công khai và bản mã
đều có thể gửi đi trên một kênh truyền tin không an toàn. Có biết cả khoá công khai
và bản mã thì thám mã cũng không dễ khám phá bản rõ. Nhƣng vì có tốc độ mã hoá
và giải mã chậm nên hệ mã hoá khoá công khai chỉ dùng để mã hoá những bản tin
ngắn, ví dụ nhƣ mã hoá khoá bí mật gửi đi.
- Phối hợp cả hai hình thức mã hóa đối xứng và bất đối xứng
Ta hãy so sánh ƣu và nhƣợc điểm của 2 loại thuật toán mật mã
Mã hóa đối xứng
Mã hóa bất đối xứng
- Dùng chỉ 01 khóa mật mã cho cả 02 - Dữ liệu mã hóa bởi một khóa mật mã
quá trình mã hóa và giải mã
(công khai hoặc cá nhân) sẽ chỉ có thể
- Độ bảo mật cao
đƣợc giải mã với khóa mật mã còn lại
- Tốc độ thực hiện nhanh.
(cá nhân hoặc công khai).
- Bản mã có dung lƣợng tƣơng đƣơng - Độ bảo mật cao
bản gốc.
- Tốc độ thực hiện khá chậm.
- Việc chuyển khóa mật mã đến ngƣời - Bản mã có dung lƣợng lớn hơn nhiều
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
11
nhận có thể khiến cho bản mã chẳng còn so với bản gốc.
gì là bí mật đối với mọi ngƣời.
- Quá trình trao đổi khóa mật mã không
- Số lƣợng khóa mật mã phải quản lý ảnh hƣởng đến việc bảo mật thông tin.
gần bằng bình phƣơng số đối tƣợng - Số lƣợng khóa mật mã phải quản lý
tham gia trao đổi thông tin, vì thế không bằng với số đối tƣợng tham gia trao đổi
phù hợp với giao dịch trên quy mô lớn.
thông tin, do đó phù hợp với giao dịch
- Việc quản lý khóa mật mã phức tạp, trên mọi quy mô.
tốn nhiều công sức.
Bảng 1.2 So sánh đặc điểm của mã đối xứng và mã công khai
Ta có thể thấy rằng nhƣợc điểm của loại này lại là ƣu điểm của loại kia. Từ đó,
ngƣời ta nảy sinh ý tƣởng kết hợp 2 loại thuật toán nhằm tận dụng ƣu điểm và loại
trừ khuyết điểm. Cụ thể, ngƣời ta tìm cách kết hợp khóa mật mã đối xứng và khóa
mật mã bất đối xứng để đạt đƣợc các yếu tố:
1- Độ bảo mật cao.
2- Tốc độ thực hiện nhanh.
3- Bản mã có dung lƣợng tƣơng đƣơng bản gốc.
4- Quá trình trao đổi khóa mật mã không ảnh hƣởng đến việc bảo mật thông
tin.
5- Phù hợp với giao dịch trên mọi quy mô.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
12
Quy trình xử lý nhƣ sơ đồ sau:
abcd
Mã hóa
#$%^
Cm - Bản mã
M - Bản rõ
Ck
Mã hóa
Ks - Khóa bí mật
Kp - Khóa công khai
Hình 1.4.a Mô hình kết hợp mật mã đối xứng và bất đối xứng (bên gửi)
- Người gửi phát sinh ngẫu nhiên một khóa mật mã bí mật Ks ( khóa đối xứng)
- Người gửi dùng khóa mật mã đối xứng để mã hóa bản tin M, và có đƣợc một
bản mã của bản tin (M + Ks = Cm).
- Đến đây ta có thể thấy rằng ƣu điểm của mật mã đối xứng đã đƣợc ứng dụng
(các yếu tố 1, 2, 3 đã nêu trên)
- Vấn đề kế tiếp cần giải quyết là làm sao để Người nhận có thể giải mã bằng
khóa mật mã đối xứng mà Người gửi đã phát sinh ngẫu nhiên. Bây giờ là lúc cặp
khóa mật mã công khai-cá nhân bắt đầu tham gia.
- Người nhận phát sinh một cặp khóa mật mã bất đối xứng (Kp, Kr).
- Người nhận gửi cho Người gửi khóa mật mã công khai (Kp) và giữ kín khóa
mật mã cá nhân (Kr)
- Người gửi dùng khóa mật mã công khai của Người nhận để mã hóa khóa mật
mã đối xứng và có đƣợc bản mã của khóa mật mã đối xứng (Ks + Kp = Ck). Hành
động dùng một khóa mật mã để mã hóa một khóa mật mã khác còn đƣợc gọi là "key
wrapping" (có thể dịch là: "đóng gói khóa mật mã")
- Tuy mã hóa bất đối xứng có tốc độ rất chậm và dung lƣợng bản mã lớn hơn
nhiều so với bạch văn gốc nhƣng trong tình huống cụ thể này thì đó không phải là
vấn đề vì khóa mật mã đối xứng có dung lƣợng rất nhỏ (thƣờng chỉ là 128 bit).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
- Xem thêm -