Tải bản đầy đủ (.doc) (90 trang)

Giấu tin trong ảnh dựa trên ma trận tần 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.13 MB, 90 trang )

ĐẠ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
h

tt p:

/ / w w

w .l r c

-

t nu

.e du

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

tt p:

/ / w w

w .l r c

-

t nu

.e du

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

tt p:

/ / w w

w .l r c

-

t nu

.e du

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

tt p:

/ / w w

w .l r c

-


t nu

.e du

.vn
i
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
MỤC LỤC
Trang
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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
h

tt p:

/ / w w

w .l r c

-


t nu

.e du

.vn
i
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
h

tt p:

/ / w w

w .l r c

-

t nu

.e du

.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
8
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)
9
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
10
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
11
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.
12
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
13
+ 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ã e
ke
? E, e
ke
: P → C.
Với khoá giải mã kd ? K, có hàm giải mã d
kd
? D, d
kd
: C→P, sao cho d
kd

(e
ke
(T))= T,
Với mọi T ? P. Ở đây T
đƣợc
gọi là Bản rõ, Cm = e
ke
(T)
đƣợc
gọi là Bản mã.
Quá trình mã hóa và giải mã:
abcd
E -Mã hóa
#$%^
D- Giải mã
abcd
T- Bản rõ
Cm- Bản mã
T- Bản rõ
Ke - Khóa mã
Kd - Khóa giải mã
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 = e
ke

(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 = d
kd
(Cm) = d
kd
(e
ke
(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).
14
- 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.
15
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

abcd Mã hóa #$%^
Giải mã
abcd
T-Bản rõ
C-Bản mã T-Bản rõ
Khóa bí mật Ks
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ã
16
+ Độ 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

17
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

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ã
Số máy
tính
cần
RA
M
Đối xứng ECC RSA
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
18
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 #$%^
Giải mã
abcd
Bản rõ
Bản mã Bản rõ
Khóa công khai
Khóa cá nhân
xx
abcd Mã hóa #$%^
Giải mã
x
Bản rõ
Bản mã
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.
19
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

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
quá trình mã hóa và giải mã
- Độ 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
- Dữ liệu mã hóa bởi một khóa mật


(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
- Tốc độ thực hiện
khá
chậm.
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.
so với bản gốc.
- 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ô.
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ô.
Quy trình xử lý
nhƣ
sơ đồ sau:
abcd Mã hóa
#$%^
M - Bản


Ks -
Khóa bí mật
Cm - Bản mã
Ck
Mã hóa
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).
- Người gửi gửi bản mã của khóa đối xứng và bản mã của bản tin (Ck và Cm) cho
Người nhận. Sự kết hợp 2 loại bản mã này đƣợc gọi là "digital envelope" (có thể dịch là:
"phong bì số").
- Nếu "bọn xấu" có trộm đƣợc digital envelope này thì chúng cũng chẳng thể biết
đƣợc
khóa mật mã đối xứng và do đó chẳng thể đọc
đƣợc
bản tin. Riêng Người nhận thì
chỉ cần quản lý 1 khóa mật mã cá nhân (Kr) của mình. Ta có thể thấy rằng
ƣu
điểm của
mật mã bất đối xứng đã
đƣợc
ứng dụng (các yếu tố 4, 5 đã nêu trên).
Vậy Người nhận sẽ làm gì khi nhận

đƣợc
digital envelope? Ta có thể quan sát sơ đồ
Hình 1.4.b
- Người nhận dùng khóa mật mã cá nhân để giải bản mã của khóa mật mã đối xứng
(Ck - Kr = Ks)
- Người nhận dùng khóa mật mã đối xứng vừa thu
đƣợc
để giải bản mã bí kiếp (Cm -
Ks = M). Người nhận đã có
đƣợc
bản tin. Khóa mật mã đối xứng ngẫu nhiên mà Người gửi
phát sinh bây giờ đã chấm dứt nhiệm vụ, Người nhận chẳng cần phải
lƣu
giữa khóa mật mã đối xứng này.
Kr - Khóa cá
nhân
Ck
Giải

Ks -
Khóa bí mật
#$%^
Cm
- Bản

Giải mã
abcd
M - Bản

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)

Hầu hết các giải pháp mã hóa dữ liệu hiện tại đều dựa trên 2 quy trình trên. Quy
trình này đƣợc dùng mã hóa thƣ điện tử, giao dịch web và cả giao dịch trong mạng nội
bộ.
Xin
đƣợc
tổng quát hóa quá trình thực hiện
nhƣ
sau:
Khi A muốn mã hóa thông điệp M để gửi cho B, A sẽ dùng khóa mật mã công
khai Kp của B:
A thực hiện:
1. M + Ks = Cm
2. Ks + Kp = Ck
A gửi cho B: Cm & Ck
B nhận và thực hiện:
1. Ck - Kr = Ks
2. Cm - Ks = M
Trong đó: M – thông điệp cần gửi, Ks – khóa mật mã bí mật (đối xứng) của
ngƣời
gửi A, Kp – khóa mật mã công khai của
ngƣời
nhận B, Kr – khóa mật mã cá nhân của
ngƣời
nhận B, Cm – Bản mã thông điệp bằng khóa đối xứng Ks, Ck – Bản khóa mật mã bí
mật bằng khóa công khai Kp của
ngƣời
nhận.
1.2 Giấu tin mật
1.2.1 Các khái niệm cơ
bản

- Khái niệm giấu tin
Giấu tin là một kĩ thuật nhúng (giấu) một
lƣợng
thông tin số nào đó vào trong một
đối
tƣợng
dữ liệu số khác.
Giả sử ta có đối
tƣợng
cần bảo mật R (một văn bản, một tấm bản đồ hoặc một tệp âm
thanh chẳng hạn). Nếu dùng phƣơng pháp mã hoá để bảo mật R ta sẽ thu
đƣợc
bản mật
mã của R là R’ chẳng hạn. Thông
thƣờng,
R’ mang những giá trị


nghĩa‖ và chính điều
này làm cho đối
phƣơng
nghi ngờ và tìm mọi cách thám mã.
Ngƣợc
lại, nếu dùng
phƣơng
pháp giấu R vào một đối tƣợng khác, một bức ảnh F chẳng hạn ta sẽ thu
đƣợc
bức ảnh F’
hầu
nhƣ

không sai khác với F. Sau đó chỉ cần gửi ảnh F’ cho
ngƣời
nhận. Để lấy ra bản tin
R từ ảnh F’ ta không cần ảnh gốc F. Xem nhƣ vậy, khi đối
phƣơng
bắt đƣợc tấm ảnh F’
nếu đó là ảnh lạ (ảnh cá nhân, ảnh phong cảnh của những nơi không nổi tiếng) thì khó nảy
sinh nghi ngờ về khả năng chứa tin mật trong F’.
mật.
- Phân loại các kỹ thuật giấu tin
Có thể chia lĩnh vực giấu tin thành hai
hƣớng
chính, đó là thuỷ ấn và giấu tin
Thủy ấn (Water marking) là lĩnh vực nghiên cứu việc nhúng thông tin phục vụ
xác thực, ví dụ
nhƣ
xác nhận bản quyền… Nếu thông tin giấu là một định danh duy nhất,
ví dụ nhƣ định danh
ngƣời
dùng, thì
ngƣời
ta gọi đó là Fingerprinting (nhận dạng vân
tay, điểm chỉ).
Giấu tin mật (hay còn gọi là viết phủ) là lĩnh vực nghiên cứu việc nhúng các tin mật
vào một môi trƣờng phủ. Trong quá trình giấu tin, để tăng tính bảo mật, ngƣời ta có
thể dùng một khoá viết mật, khi đó ngƣời ta nói về Intrinsic Steganography (giấu tin
có xử lý). Để giải mã ngƣời dùng cũng phải có khoá viết mật đó. Khoá này có thể không
phải là khoá dùng để lập mật mã mẩu tin, ví dụ nó có thể là khoá để sinh ra hàm băm
phục vụ rải tin vào môi trƣờng phủ.
Ngƣợc

lại nếu không dùng khoá viết mật thì ngƣời
ta chỉ giấu tin đơn thuần vào môi trƣờng phủ thì khi đó
ngƣời
ta nói về Pure
Steganography (giấu tin đơn thuần).
Xét về tính chất thuỷ ấn giống giấu tin ở chỗ tìm cách nhúng thông tin mật vào một
môi
trƣờng.
Tuy nhiên xét về bản chất thì thuỷ ấn có những nét khác ở một số điểm:
- Mục tiêu của thuỷ ấn là nhúng thông tin không lớn
thƣờng
là biểu
tƣợng,
chữ ký
hay các đánh dấu khác vào môi trƣờng phủ nhằm phục vụ việc xác nhận bản quyền
- Khác với giấu tin ở chỗ giấu tin sau đó cần tách lại tin còn thuỷ ấn tìm cách
biến tin giấu thành một thuộc tính của vật mang
- Chỉ tiêu quan trọng nhất của một thuỷ ấn là tính bền vững, của giấu tin là dung
lƣợng
giấu.
- Điểm khác nữa giữa thuỷ ấn và giấu tin là thuỷ ấn có thể vô hình hoặc hữu hình
trên vật mang.
Giấu tin
Giấu tin mật Thủy ấn
Giấu tin
có xử lý
Giấu tin
đơn thuần
Thủy ấn
bền vững

Thủy ấn
dễ vỡ
Thủy ấn vô hình
Thủy ấn hữu hình
Hình 1.5 Mô hình phân loại các kỹ thuật giấu tin
- Các thành phần của hệ giấu tin mật:
Các thành phần chính của một hệ giấu tin mật gồm có:
+ Tin mật: có thể là văn bản, hình ảnh hay tệp tin tuỳ ý (âm thanh số, video số), vì
trong quá trình giấu tin, chúng đều
đƣợc
chuyển thành các chuỗi bit
+ Môi trường sẽ chứa tin mật:
thƣờng
là ảnh, nên gọi là ảnh phủ hay ảnh gốc. Ngoài
ra còn có thể là âm thanh số, video số, văn bản…
+ Khoá K: khoá viết mật, tham gia vào quá trình giấu tin để tăng tính bảo mật
+ Môi trường đã chứa tin mật: là môi trƣờng chứa tin mật sau khi đã đƣợc
nhúng tin mật vào. Trong
trƣờng
hợp môi
trƣờng
ảnh thì gọi là ảnh mang.
Xét theo góc độ toán học, có thể định nghĩa một
lƣợc
đồ giấu tin
nhƣ
sau.
Gọi Ks là một khoá viết mật (stego key)
đƣợc
xác định từ một tập K của tất cả các

khoá viết mật; M là tập tất cả các thông điệp có thể
đƣợc
nhúng và C là tập tất cả các vật
mang có thể. Khi đó, một lƣợc đồ giấu tin đƣợc thiết lập bởi 2 ánh xạ, ánh xạ nhúng
Emb và ánh xạ trích xuất Ext:
Emb: C x K x M → C
Ext: C → M
Sao cho Ext(Emb(c,Ks,m)) = m với tất cả c ? C, Ks ? K và m ? M. Vật
mang s = Emb(c,Ks,m)
đƣợc
gọi là stego Data.

×