Tiểu luận GIẤU TIN TRONG ẢNH MÀU HƯỚNG CẢI TIẾN THUẬT TOÁN CPT (Có Source Code)) - Pdf 23

GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1

THUYẾT MINH CHỦ ĐỀ :
GIẤU TIN TRONG ẢNH MÀU HƯỚNG CẢI TIẾN THUẬT TOÁN CPT
1. Giới thiệu
Với sự phát triển ngày càng cao của Công nghệ thông tin, phát sinh nhiều mối
đe dọa. Do đó, yêu cầu của vấn đề bảo mật được đặt lên hàng đầu. Có rất nhiều
phương pháp mã hóa ra đời và đã chứng minh được hiệu quả của nó. Và một trong
phương pháp bảo mật mới nhất là giấu tin.
Giấu tin là kĩ thuật giấu một lượng thông tin số vào trong một đối tượng số khác
( đối tượng vỏ ) đảm bảo tính vô hình của thông tin được giấu và khi nhìn vào đối
tượng vỏ sẽ khó xác định được thông tin có giấu trong đó hay không.
Có nhiều cách thức tiến hành giấu thông tin trong ảnh bảo mật thông tin và có
tính hiệu quả cao, tuy nhiên không phải phương pháp nào cũng áp dụng tốt, đảm
bảo tính toàn vẹn của thông tin được giấu cũng như không làm thay đổi ảnh gốc
khi có một sô tác động trong việc thay đổi định dạng ảnh, nén ảnh …
Áp dụng thuật toán CPT ( Chen- Pan- Tseng) giấu tin trong khối bít áp dụng
cho ảnh đen trắng. Bài viết trình bày hướng phát triển đề xuất thuật toán cho ảnh
màu và ảnh đa cấp xám bằng cách sử dụng các bít ít quan trọng LSB (Least
Significant Bit) của ảnh.
2. Quy trình thực hiện
- Với mỗi byte của điểm ảnh ( có thể là ảnh xám hoặc các loại ảnh màu) trích
ra bít ít có giá trị nhất, hay còn gọi là bit LSB là các bít khi bị thay đổi giá trị
hầu như không làm ảnh hưởng tới chất lượng của ảnh gốc. Trong bài này sử
dụng bít thứ 7.
- Chuyển đổi tất cả thông tin cần giấu vào ảnh thành chuỗi dạng bít.
- Tạo thành các khối ma trận nhị phân ( Fi ) từ tập hợp bit LSB với kích
thước 4x4 (mặc định sẵn ) .
- Sinh ngẫu nhiên các ma trận khóa W, K (các ma trận K là khác nhau trong
mỗi lần giấu ) , có kích thước bằng kích thước của Fi .
- Thực hiện giấu tin vào từng khối Fi theo thuật toán CPT.

Thuật toán sẽ thực hiện giấu r bít thông tin vào khối ma trận ảnh Fi bằng cách thay
đổi nhiều nhất 2 bít của Fi và Fi được biến đổi thành Fi

sao cho luôn thõa mãn
điều kiện :
SUM ((Fi K) W) mod 2
r
= b
1
b
2
b
3
- Algorithm :
 Bước 1 : Tính array3 = (Fi K)
 Bước 2 : Tính array4 = SUM ((Fi K) W)
 Bước 3 : Xác định các tập vị trí
S
w
= {(x,y)| (W(x,y) = w ^ (Fi K)=0) V (W(x,y) = 2
r
- w ^ (Fi K)=1)}
Trong đó : w lấy các giá trị 1,2…,2
r
– 1.
 Bước 4 : d= b
1
b
2
b


tạo ra sau khi đổi các bít trên Fi. Dừng thuật
toán.
• Nếu (Fi K)[i,j] = 1, W[i,j] = t & (Fi K)[n,m] = 1 ,
W[n,m] = h sao cho h + t = 2
r
– d . Tiến hành đổi Fi [i,j] = 0,
Fi [n,m] = 0 . Fi

tạo ra sau khi đổi các bít trên Fi. Dừng thuật
toán.
• Nếu (Fi K)[i,j] = 0, W[i,j] = t & (Fi K)[n,m] = 0 ,
W[n,m] = h sao cho h + t = d . Tiến hành đổi Fi [i,j]=1,
Fi[n,m]=1 . Fi

tạo ra sau khi đổi các bít trên Fi. Dừng thuật
toán
- Tương tự : Nếu d<0 :
 Th1 : Nếu chọn được (Fi K)[i,j] = 1 mà W[i,j] = |d| , cần thay đổi bít
tại [i,j] trong Fi , Fi[i,j] = 0 để “ SUM ((Fi K) W) mod 2
r
“ giảm
đi một lượng h= - d (h>0) . Dừng thuật toán .
 Ngoài ra, nếu không xảy ra Th1 mà chọn được (Fi K)[i,j] = 0 và
W[i,j] = h sao cho h = 2
r
– |d|. Tiến hành cần thay đổi bít tại [i,j] trong
Fi Fi[i,j] = 1 để “ SUM ((Fi K) W) mod 2
r
“ tăng lên một lượng

- Lấy các ma trận khóa K,W đã sử dụng giấu tin để giải mã.
- Thực hiện tính bi = SUM ((Fi

K) W) mod 2
r
- Lưu bi dạng mảng 3 bít.
- Copy tất cả bi vào mảng lớn, biến đổi thành dạng byte chứa giá trị ASCCI
của kí tự.
- Hiển thị thông tin đã giấu.
5. Các phương thức và thuộc tính trong chương trình.
Lớp Class_Image : // thao tác với ảnh
 public int getktString // đưa ra kích thước dạng byte
của thông tin.
 public void Gray(Bitmap ImageInput)://tạo ảnh xám
 public void LSB(Bitmap ImageInput, string xau): //giấu
ảnh vào bít LSB
 public bool[] ChangeString(string xau): //đưa ra mảng
chứa bít thông tin
 BitArray Divide(int temp) ://trả về mảng nhị phân 8bit
 byte UnchangeString(BitArray a)://trả về giá trị của
từng byte.
 byte [] Alter(string beginString, byte[] value): //trả
về mảng byte đã giấu tin vào bít LSB.
 int NumberByte(Bitmap ImageInput)://kiểm tra số byte
của ảnh.
 int[] ArrayLSB( byte[] value)://tạo mảng chứa các bít
LSB của ảnh
 int[,] CPT(int[,] matrix, int gtInformation)// thuật
toán CPT.
 int[,] matrixW(): //tạo ma trận W

5


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status