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

Ẩn mã an toàn đối với ảnh 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 (2.98 MB, 22 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÀI TẬP LỚN
ĐỀ TÀI: ẨN MÃ AN TOÀN ĐỐI VỚI ẢNH SỐ

Sinh viên thực hiện:

Hà Nội, 2018


MỤC LỤC
DANH MỤC HÌNH VẼ......................................................................................3
LỜI MỞ ĐẦU......................................................................................................4
CHƯƠNG 1: TỔNG QUAN KỸ THUẬT GIẤU TIN TRONG ẢNH............5
1.1.

Định nghĩa giấu tin trong ảnh...................................................5

1.2.

Mục đích của giấu tin.................................................................5

1.3.

Các yêu cầu của giấu tin trong ảnh..........................................6

1.4.

Các đặc trưng của giấu tin trong ảnh.......................................6



1.5.

Các phương pháp giấu tin trong ảnh........................................7

1.6.

Mô hình kỹ thuật giấu tin trong ảnh........................................7

CHƯƠNG 2: KỸ THUẬT GIẤU TIN TRÊN BIT LSB CỦA ẢNH.............10
2.1.

Ý tưởng......................................................................................10

2.2.

Phương pháp giấu tin cổ điển..................................................10

a.

Mô tả..........................................................................................10

b. Ví dụ...........................................................................................11
2.3.

Phương pháp giấu tin nâng cao..............................................12

a.

Mô tả..........................................................................................12


b. Ví dụ..........................................................................................13
CHƯƠNG 3: DEMO ẨN MÃ AN TOÀN ĐỐI VỚI ẢNH SỐ......................15
3.1.

Chuẩn bị....................................................................................15

3.2.

Các bước thực hiện..................................................................15

TÀI LIỆU THAM KHẢO................................................................................21



DANH MỤC HÌNH VẼ
Hình 1.2: Hai lĩnh vực chính của giấu thông tin
Hình 1.6.1: Giấu tin vào ảnh
Hình 1.6.2: Tách tin từ ảnh giấu tin
Hình 3.1: Giấu chữ A vào vị trí các bit LSB
Hình 3.2.1: Đọc file Cover, sử dụng định dạng phù hợp
Hình 3.2.2: Tạo file sao chép từ Cover để chèn thông điệp
Hình 3.2.3: Chuyển đổi thông điệp ra binary
Hình 3.2.4: Sử dụng thuật toán LSB
Hình 3.2.5: Ghi kết quả vào đối tượng mới
Hình 3.2.6: Lưu kết quả
Hình 3.2.7: Lấy thông tin ảnh
Hình 3.2.8: Xét các byte để tìm thông điệp ẩn chứa
Hình 3.2.9: Chuyển đổi thông điệp thu được từ binary sang string và lưu thông
điệp thu được

Hình 3.2.10: Chọn vật ẩn mã
Hình 3.2.11: Chèn thông tin ẩn vào ảnh
Hình 3.2.12: Ảnh trước và sau khi chèn thông điệp ẩn hoàn toàn không khác
nhau
Hình 3.2.13: Trích xuất thông điệp từ ảnh ẩn mã
Hình 3.2.14: Trích xuất thành công thông điệp ẩn

4


LỜI MỞ ĐẦU
Ngày nay, khi công nghệ thông tin ngày càng phát triển, giúp thế giới thay
đổi theo hướng số hóa và hiện đại hóa hơn. Hầu hết tất cả các ngành nghề hiện
nay đều có sự góp mặt của công nghệ thông tin. Tuy nhiên, kéo theo sự phát
triển đó là sự tồn tại song song của hai mặt tốt và xấu. Mặt xấu chính là sự an
toàn bảo mật thông tin.
Có thể coi giấu tin mật hiện nay là một nghệ thuật và khoa học về truyền
thông vô hình. Nó ẩn thông tin mật trong các thông tin khác, do đó ẩn đi sự tồn
tại của các thông tin truyền thông. Đây là kỹ thuật khó và rất phức tạp, nó được
coi là chìa khóa đi đến thắng lợi trong an toàn và bảo mật thông tin.
Bài báo cáo sẽ nói chi tiết về “Ẩn mã an toàn đối với ảnh số”. Cụ thể, nội
dung sẽ đi sâu về các phương pháp, kĩ thuật giấu tin trong ảnh. Bài báo cáo gồm
03 chương:
CHƯƠNG 1: TỔNG QUAN KỸ THUẬT GIẤU TIN TRONG ẢNH
CHƯƠNG 2: KỸ THUẬT GIẤU TIN TRÊN BIT LSB CỦA ẢNH
CHƯƠNG 3: DEMO ẨN MÃ AN TOÀN ĐỐI VỚI ẢNH SỐ

5



CHƯƠNG 1: TỔNG QUAN KỸ THUẬT GIẤU TIN TRONG ẢNH
1.1.

Định nghĩa giấu tin trong ảnh
Giấu tin trong ảnh là một kỹ thuật giấu (nhúng) một lượng thông tin số

nào đó vào trong một ảnh số.
1.2.

Mục đích của giấu tin
Có 2 mục đích chính của giấu thông tin:

 Bảo mật cho những thông tin được giấu.
 Bảo mật cho chính các đối tượng giấu tin.
Có thể nhận thấy rằng sự khác biệt giữa hai mục đích. Trong thực tế hai
mục đích này đã phát triển thành hai lĩnh vực với những yêu cầu và tính chất
khác nhau.

Hình 1.2: Hai lĩnh vực chính của giấu thông tin
 Kỹ thuật giấu tin mật (Steganography): Mục đích là để đảm bảo an toàn
và bảo mật thông tin được giấu. Các kỹ thuật giấu tin mật tập trung sao
cho thông tin giấu được nhiều và người khác khó phát hiện ra thông tin có
được giấu trong ảnh.
 Kỹ thuật thủy vân số (Watermarking): Mục đích để bảo mật cho chính các
đối tượng giấu tin đánh dấu, đảm bảo một số các yêu cầu như đảm bảo
tính bền vững, khẳng định bản quyền sở hữu hay phát hiện xuyên tạc
thông tin.
6



1.3.

Các yêu cầu của giấu tin trong ảnh
Những yêu cầu cơ bản đối với giấu tin trong ảnh:

 Tính ẩn của giấu tin được chèn vào ảnh: Sự hiện diện của giấu tin trong
ảnh không làm ảnh hưởng tới chất lượng của ảnh đã chèn tin.
 Tính bền của giấu tin: Cho phép các tin có thể tồn tại được qua các phép
biến đổi ảnh, biến dạng hình học hay các hình thức tấn công cố ý khác.
 Tính an toàn: không thể xoá được tin ra khỏi ảnh trừ khi ảnh được biến
đổi tới mức không còn mang thông tin.
1.4.

Các đặc trưng của giấu tin trong ảnh
Giấu tin trong ảnh chiếm vị trí chủ yếu trong các kỹ thuật giấu tin. Các

phương tiện chứa khác nhau thì cũng sẽ có các kỹ thuật giấu khác nhau. Dữ liệu
ảnh có nhiều định dạng, mỗi định dạng có những tính chất khác nhau nên các kỹ
thuật giấu tin trong ảnh thường chú ý những đặc trưng như:
 Kỹ thuật giấu phụ thuộc ảnh: Kỹ thuật giấu tin phụ thuộc vào các loại ảnh
khác nhau. Chẳng hạn đối với ảnh đen trắng, ảnh xám hay ảnh màu ta
cũng có những kỹ thuật riêng cho từng loại ảnh.
 Giấu thông tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi
kích thước của hình ảnh: Các thuật toán thực hiện công việc giấu tin sẽ
được thực hiện trên dữ liệu của ảnh. Dữ liệu ảnh bao gồm phần header,
bảng màu (có thể có) và dữ liệu ảnh. Do vậy mà kích thước ảnh trước hay
sau khi giấu tin là như nhau.
 Đảm bảo chất lượng sau khi giấu tin: Sau khi giấu tin bên trong, ảnh phải
đảm bảo được yêu cầu không bị biến đổi để có thể bị phát hiện dễ dàng so
với ảnh gốc.

 Thông tin trong ảnh sẽ bị biến đổi nếu có bất cứ biến đổi nào trên ảnh: Vì
phương pháp giấu thông tin trong ảnh dựa trên việc điều chỉnh các giá trị
của các bit theo một quy tắc nào đó và khi giải mã sẽ theo các giá trị đó để
tìm được thông tin giấu. Theo đó, nếu một phép biến đổi nào đó trên ảnh
7


làm thay đổi giá trị của các bit thì sẽ làm cho thông tin giấu bị sai lệch.
Nhờ đặc điểm này mà giấu thông tin trong ảnh có tác dụng nhận thực và
phát hiện xuyên tạc thông tin.
1.5.

Các phương pháp giấu tin trong ảnh
Có 3 phương pháp giấu tin trong ảnh cơ bản:

 Giấu tin trong miền không gian: Phương pháp này thường nhúng thông tin
vào các bit có trọng số thấp của ảnh hay được áp dụng trên các ảnh
bitmap không nén, các ảnh dùng bảng màu. Ý tưởng chính của phương
pháp này là lấy từng bit của tin mật rải nó lên ảnh gốc và thay đổi bit có
trọng số thấp của ảnh bằng các bit của tin mật. Vì khi thay đổi các bit có
trọng số thấp không ảnh hưởng đến chất lượng ảnh, và mắt người không
cảm nhận được sự thay đổi của ảnh đã giấu tin.
 Các phương pháp dựa vào kỹ thuật biến đổi ảnh: Biến đổi từ miền không
gian sang miền tần số
 Các phương pháp sử dụng mặt nạ giác quan: Dựa trên nguyên lý đánh lừa
hệ thống giác quan của con người. "Mặt nạ" ở đây ám chỉ hiện tượng mắt
người không cảm nhận được một tín hiệu nếu nó ở bên cạnh một tín hiệu
nhất định nào đó.

1.6.


Mô hình kỹ thuật giấu tin trong ảnh
Kỹ thuật giấu tin trong ảnh bao gồm hai quá trình:

 Quá trình 1: Giấu (nhúng) tin vào ảnh.

8


Hình 1.6.1: Giấu tin vào ảnh
Đầu vào:
 Thông tin giấu (Tùy theo mục đích của người sử dụng mà thông tin giấu ở
đây có thể là thông điệp, hình ảnh, video, âm thanh...)
 Ảnh gốc: Là ảnh được chọn làm môi trường để giấu tin.
Đầu ra: Ảnh giấu đã được giấu tin
 Quá trình 2: Tách tin từ ảnh giấu tin

Hình 1.6.2: Tách tin từ ảnh giấu tin

9


Đầu vào:
 Ảnh giấu tin.
 Khóa che giấu.
Đầu ra:
 Thông tin được giấu.
 Ảnh gốc.
Quá trình giải mã được thực hiện thông qua thuật toán/kỹ thuật tách tin
tương ứng với thuật toán/kỹ thuật nhúng tin cùng với khoá che giấu của quá

trình nhúng. Kết quả thu được gồm ảnh gốc và thông tin đã giấu. Thông tin đã
giấu được kiểm tra so sánh với thông tin ban đầu.

10


CHƯƠNG 2: KỸ THUẬT GIẤU TIN TRÊN BIT LSB CỦA ẢNH
2.1.

Ý tưởng
Bit LSB (Least Signification Bit) là bit có trọng số thấp nhất và ít quan

trọng nhất, nằm ở sau cùng của mỗi byte. Ý tưởng cơ bản của kỹ thuật này là
tiến hành giấu tin vào vị trí các bit LSB đối với mỗi phần tử trong bảng màu.
Đây là phương pháp giấu tin đơn giản nhất, thông điệp dưới dạng nhị phân sẽ
được giấu (nhúng) vào các bit LSB nên sẽ ít ảnh hưởng tới việc quyết định tới
màu sắc của mỗi điểm ảnh. Vì vậy màu sắc của mỗi điểm ảnh mới sẽ tương đối
gần với điểm ảnh cũ, bằng mắt thường sẽ khó có thể nhận ra được sự thay đổi
này.
Ví dụ, đem giấu chữ A có mã ASCII là 65 hay 01000001 vào trong 8 byte
của file gốc:

Hình 3.1: Giấu chữ A vào vị trí các bit LSB
2.2.

Phương pháp giấu tin cổ điển

a. Mô tả
 Giấu tin
o Đầu vào: Ảnh gốc, thông điệp bí mật, số bit LSB cần mã hóa.

o Đầu ra: Ảnh mang tin.
11


Các bước thực hiện:
1. Biểu diễn ma trận điểm ảnh về dạng số thập phân với m x n phần tử,
chuyển ma trận ảnh về mảng 1 chiều, chuyển các điểm ảnh về dạng nhị
phân.
2. Biểu diễn thông điệp dưới dạng số nhị phân.
3. Cứ 8 bit ảnh tách bỏ số bit LSB và ghép phần còn lại với 2 bit nhị phân
đầu của thông điệp.
4. Thực hiện lại bước 3 cho đến khi lấy hết các bit của chuỗi nhị phân thông
điệp ghép với các bit ảnh. Chuyển đổi ảnh từ mảng một chiều về mảng 2
chiều m x n phần tử, lúc này sẽ thu được ảnh mới đã giấu tin.
 Tách tin
o Đầu vào: Ảnh mang tin.
o Đầu ra: Ảnh đã tách tin, thông điệp mật.
Các bước thực hiện:
1. Biểu diễn ma trận điểm ảnh về dạng số thập phân với m x n phần tử,
chuyển ma trận ảnh về mảng 1 chiều.
2. Chuyển các bit ảnh về dạng nhị phân, cứ 8 bit ảnh tách lấy 2 bit ngoài
cùng bên phải. Đem ghép các kết quả này lại với nhau.
3. Kết quả thu được sử dụng hàm chuyển đổi từ chuỗi số nhị phân về chuỗi
kí tự. Sau khi lặp lại quá trình trên số lần bằng số lần duyệt, thu được nội
dung thông điệp.
b. Ví dụ
 Giấu tin
Giả sử ta có 4 điểm ảnh đầu tiên như sau:
123


197

213

255

Chuyển các điểm ảnh về dạng nhị phân:
01111011

11000101

11010101

11111111
12


Thông điệp bí mật: chữ “a” có mã ASCII là 97, biểu diễn dưới dạng nhị
phân như sau: 01100001.
Cứ 8 bit ảnh, ta lấy 6 bit đầu của điểm ảnh ghép với 2 bit thông điệp sẽ
được:
01111001

11000110

11010100

11111101

 Tách tin

Lấy 2 bit ngoài cùng bên phải trong mỗi điểm ảnh mới:
011110-01

110001-10

110101-00

111111-01

Ghép lại với nhau được chuỗi nhị phân thông điệp, chính là chữ “a”:
01100001.
2.3.

Phương pháp giấu tin nâng cao

a. Mô tả
 Giấu tin
o Đầu vào: Ảnh gốc, thông điệp bí mật, khóa (8 bit), số bit LSB cần mã
hóa.
o Đầu ra: Ảnh mang tin, khóa.
Các bước thực hiện:
1. Biểu diễn ma trận điểm ảnh về dạng số thập phân với m x n phần tử, rồi
chuyển ma trận ảnh về mảng 1 chiều, chuyển các điểm ảnh về dạng nhị
phân.
2. Biểu diễn thông điệp dưới dạng số nhị phân.
3. Sử dụng một khóa 8 bit bất kỳ (nếu khóa là kí tự, chuyển khóa về dạng
mảng như với thông điệp) đem mã hóa với chuỗi thông điệp bí mật bằng
phép XOR: cứ 8 bit khóa đem XOR với 8 bit đầu vào của thông điệp.
Thực hiện lại bước này cho đến khi nội dung thông điệp được mã hóa hết.


13


4. Thông điệp đã mã hóa đem giấu vào ảnh, tách lấy 6 bit đầu của bit ảnh
đem ghép với 2 bit đầu trong thông điệp rồi chuyển về dạng thập phân và
gán ngược lại vào ảnh.
5. Thực hiện bước 4 cho đến khi lấy hết các bit của chuỗi nhị phân thông
điệp để ghép với các bit ảnh. Chuyển đổi ảnh từ mảng một chiều về mảng
2 chiều m x n phần tử, được ảnh mới đã giấu tin.
 Tách tin
o Đầu vào: Ảnh đã giấu tin, khóa (8 bit), số bit thông điệp cần mã hóa, số
lần duyệt.
o Đầu ra: Ảnh đã tách tin, thông điệp mật.
Các bước thực hiện:
1. Biểu diễn ma trận điểm ảnh về dạng số thập phân với m x n phần tử,
chuyển ma trận ảnh về mảng 1 chiều.
2. Chuyển các bit ảnh về dạng nhị phân, cứ 8 bit ảnh tách lấy 2 bit ngoài
cùng bên phải. Đem ghép các kết quả này lại với nhau.
3. Kết quả thu được sử dụng hàm chuyển đổi từ chuỗi số nhị phân về chuỗi
kí tự. Sau khi lặp lại quá trình trên số lần bằng số lần duyệt, thu được nội
dung thông điệp đã mã hóa.
4. Sử dụng hàm giải mã thực hiện giải mã thông điệp bằng khóa 8 bit, thu
được kết quả là nội dung gốc của thông điệp.
b. Ví dụ
 Giấu tin
Giả sử ta có 4 điểm ảnh đầu tiên như sau:
123

197


213

255

Chuyển các điểm ảnh về dạng nhị phân:
01111011

11000101

11010101

11111111

Thông điệp bí mật: chữ “a” có mã ASCII là 97, biểu diễn dưới dạng nhị
phân: 01100001
14


Nhập khóa, cũng là 1 kí tự 8 bit, giả sử là chữ “b”, có dạng nhị phân như
sau: 01100010
Mã hóa thông điệp chính là dùng phép XOR(a, b) sẽ được: 00000011
Cứ 8 bit ảnh, ta lấy 6 bit đầu của điểm ảnh ghép với 2 bit thông điệp đã
mã hóa sẽ được:
01111000

11000100

11010100

11111111


 Tách tin
Lấy 2 bit ngoài cùng bên phải trong mỗi điểm ảnh mới:
011110-00

110001-00

110101-00

111111-11

Ghép lại với nhau được chuỗi nhị phân thông điệp nhưng đã bị mã hóa:
00000011
Lúc này xử dụng phép XOR giữa thông điệp mã hóa vừa tìm được và
khóa sẽ được nội dung thông điệp giấu là chữ “a”: 01100001

15


CHƯƠNG 3: DEMO ẨN MÃ AN TOÀN ĐỐI VỚI ẢNH SỐ
3.1.

Chuẩn bị
Yêu cầu: python 2.7, python-pil (cài đặt trên linux).
Các file:

 main.py: Xử lý thông tin các tùy chọn của người dùng.
 libStegoEncode.py: Các hàm ẩn thông điệp vào trong vật chứa.
 libStegoDecode.py: Các hàm trích xuất thông tin từ vật chứa
3.2.


Các bước thực hiện

 File libStegoEncode.py
Đọc file Cover, sử dụng định dạng RGBA hoặc RGB

Hình 3.2.1: Đọc file Cover, sử dụng định dạng phù hợp
Lấy thông tin kích thước ảnh, tạo 1 đối tượng file mới sao chép từ file
Cover để chèn thông điệp.

Hình 3.2.2: Tạo file sao chép từ Cover để chèn thông điệp

16


Chuyển đổi thông điệp ra binary kèm theo độ dài thông điệp. Chèn 1 ký tự
NULL vào cuối thông điệp.

Hình 3.2.3: Chuyển đổi thông điệp ra binary
Đọc từng pixel trong ảnh và thay đổi giá trị theo thuật toán LSB.

Hình 3.2.4: Sử dụng thuật toán LSB
Ghi kết qủa vào đối tượng mới theo định dạng ảnh.

Hình 3.2.5: Ghi kết quả vào đối tượng mới
Lưu kết quả ra ảnh mới và thoát.
Hình 3.2.6: Lưu kết quả

17



 File libStegoDecode.py
Đầu tiên, mở file Stego, lấy thông tin kích thước ảnh

Hình 3.2.7: Lấy thông tin ảnh

Duyệt từng pixel trong ảnh, theo byte. Nếu như byte thỏa mãn bất biến thì
chứa thông điệp. Lấy đội dài chuỗi.

Hình 3.2.8: Xét các byte để tìm thông điệp ẩn chứa

18


Duyệt tiếp các byte theo độ dài chuỗi, sau đó đổi thông điệp từ binary ra
string. Ghi lưu thông điệp vào 1 file người dùng cho sẵn tên.

Hình 3.2.9: Chuyển đổi thông điệp thu được từ binary sang string và lưu thông
điệp thu được
 Quá trình thực hiện
Chọn một ảnh làm vật giấu tin.

Hình 3.2.10: Chọn vật ẩn mã
Chèn text “Hello Everyone” vào file gốc Carrier.png, hành động ẩn
message, xuất file mới Stego.png.
19


Hình 3.2.11: Chèn thông tin ẩn vào ảnh
Sau khi chèn dữ liệu, lúc này sẽ có ảnh ẩn mã (Stego.png). Nếu nhìn bằng

mắt thường, hai ảnh không có bất cứ sự khác biệt nào.

Hình 3.2.12: Ảnh trước và sau khi chèn thông điệp ẩn hoàn toàn không khác
nhau
Sau khi chèn dữ liệu ẩn vào ảnh thành công, thực hiện trích xuất thông
điệp.
20


Hình 3.2.13: Trích xuất thông điệp từ ảnh ẩn mã
Sau một thời gian, thông điệp sẽ được trích xuất thành công và hiển thị ra
màn hình.

Hình 3.2.14: Trích xuất thành công thông điệp ẩn

21


TÀI LIỆU THAM KHẢO
[1] Nguyễn Diễm Hương, Kỹ thuật giấu tin trên k bit LSB của ảnh, Khoa CNTT
– Đại học Hải Phòng, 2012.
[2] Ngô Thái Hà, Nghiên cứu kỹ thuật bảo vệ bản quyền các sản phầm đồ họa
vectơ, Khoa Công nghệ thông tin trường Đại Học Thái Nguyên, 2008.
[3] Ingemar Cox, Jeffrey Bloom, Matthew Miller, Ton Kalker, Lessica Fridrich,
DigitalWatermarking anh Steganography, 2008.
[4]

URL:

/>

Secure_Steganography_for_Digital_Images.pdf

22



×