Chương trình “Giấu tin trong file ảnh(.BMP)”

Một phần của tài liệu KỸ THUẬT GIẤU TIN TRONG ĐA PHƯƠNG TIỆN (Trang 27 - 31)

- ẩn thông tin đã bị mã hoá vào file ảnh.

b. Chương trình “Giấu tin trong file ảnh(.BMP)”

Có 3 chức năng chính:

Chức năng “Giấu một đoạn văn bản trong file ảnh”. Chức năng “Giấu file văn bản(.doc, .txt) trong file ảnh”. Chức năng “Giấu file ảnh(.bmp) trong file ảnh”.

Sơ đồ chức năng chính:

Hình 5.1.Sơ đồ giấu tin trong ảnh bitmap(.bmp)

Mục đích: Là để giấu những thông tin trong một file ảnh.

Giấu tin trong ảnh

Giấu 1 đoạn văn bản

Giấu file ảnh Giấu file văn bản

Xây dựng phương thức CreateStegoFile với 3 tham số: tên file ảnh mới, nội dung message và password.

- Chỉ làm việc với ảnh bitmap : Phải kiểm tra file ảnh muốn giấu phải là ảnh Bitmap. dựa vào 2 byte đầu tiên để xác định file ảnh Bitmap.

Giấu cả thông tin về chiều dài của đoạn Message vào 4 byte đầu tiên trong phần Data Pixel. Tức là bắt đầu từ byte thứ 54 của file ảnh sẽ lưu trữ chiều dài của message.

Vậy ta xây dựng 1 hàm đưa chiều dài của mess vào 4 byte đầu tiên , sau đó là nội dung của mess dưới dạng byte. Kết quả trả về là một mảng byte. Lúc này ta giấu cả mảng byte này vào trong file ảnh.

Một thủ tục ẩn thông tin vào file ảnh: thay thế LSB với đầu vào là 1 luồng để dọc các byte ảnh và mảng byte của HiddenMessage. Đầu ra sẽ là luồng output mới chứa HiddenMessage trong file ảnh.Trong thủ tục này ta chỉ thao tác với các bit dữ liệu của thông điệp với các bit của phần Data Pixel trong file ảnh

Vậy có thể sử dụng kỹ thuật này cho phép giấu một byte file ẩn vào 8 byte file chứa gốc(file ảnh chứa gốc). Từ trên có thể thấy được lợi thế khi sử dụng cách này là gì? đó chính là lúc nào cũng có nhiều nhất 50% số bít trùng nhau giữa tin cần giấu và file chứa gốc(file ảnh chứa gốc) do đó file chứa gốc ít bị ảnh hưởng lớn khi có tin giấu thêm vào trong file chứa gốc(file ảnh chứa gốc) đó.

3.5.Thuật toán CPT

Đây là thuật toán giấu tin trong khối bit do Yu-Yuan Chen, Hsiang-Kuang Pan, Yu-Chee Tseng của đại học Đài loan đề xuất cho ảnh đentrắng.

Thuật toán CPT(Chen-Pan-Tseng) thực hiện như sau:

* Input (Dữ liệu vào): Một ảnh gốc F dùng để giấu thông tin, F được chia thành các

mỗi khối Fi (r thỏa mãn điều kiện 2r-1<m*n). Ma trận nhị phân K(ma trận khóa) cùng kích thước với khối Fi, ma trận trọng số W(các phần tử là số nguyên, các giá trị từ 1 đến 2r-1 xuất hiện ít nhất một lần trong W) cùng kích thước của K. Lượng thông tin cần giấu B B=b1b2…..bz mỗi bi có r bít), độ chênh lệch trọng số d.

* OutPut (Dữ liệu ra): Một ảnh F’ đã có thông tin giấu, trong đó F’ được tạo bởi các khối Fi’ do giấu tin vào khối Fi tạo thành. Thuật toán sẽ thực hiện giấu r bít thông tin vào mỗi khối Fi bằng cách thay đổi nhiều nhất 2 bit của Fi và Fi biến đổi thành Fi’ sao cho luôn thỏa mãn điều kiên:

SUM(Fi’ ⊕ K) ⊗ W mod 2r=b1b2…br. * Quá trình thực hiện gồm 4 bước:

- Bước 1. Tính T=Fi ⊕ K - Bước 2. Tính SUM(T ⊗ W)

- Bước 3. Xác định tập Sw={(x,y)|(W[x,y]=w ∧ T[x,y]=0) ∨ (W[x,y]=2r - w ∧ T[x,y]=1)} trong đó w lấy các giá trị từ 1,2,…,2 r-1.

- Bước 4. Kí hiệu d=(b1b2…bz) - SUM((Fi K) W) mod 2r. Thực hiện việc đảo bít trên Fi để được Fi’ sao cho tổng SUM tính được ở bước 2 khi thay Fi bởi Fi’ sẽ tăng lên d.

(trong đó ⊕ là phép XOR và ⊗ là phép nhân các phần tử tại các vị trí tương ứng của 2 ma trận cùng kích thước. Ma trận K và W được sử dụng bí mật giữa người gửi và người nhận tin)

* Đánh giá thuật toán:

độ an toàn của thuật toán phụ thuộc vào hai ma trận K và W. Để xác định được cả K và W cần kiểm tra (tổ hợp chập 2r-1của m*n)*(2r-1)!*(2r- 1)m*n-2^r- 1* 2m*n điều này không thể thực hiện được nếu m và n đủ lớn. Và khối bít tối đa có thể giấu trong khối Fi là Log2(m*n+1) và vì vậy lượng tin giấu phụ thuộc vào kích thước các khối Fi

Để ứng thuật toán CPT cho ảnh màu và ảnh đa cấp xám để tạo thành ma trận nhị phân F. Thực hiện việc giấu tin vào F theo thuật toán CPT với ma trận K và W được sinh ngẫu nhiên. Sau đó trả các bít LSB trở về ảnh gốc để tạo thành ảnh mới đã giấu tin quá trình đó như sau:

Bước tiền xử lý gồm các thao tác chính:

Số hóa thông tin giấu và nén để tăng dung lượng.

Trích các bít LSB từ ảnh gốc một cách ngẫu nhiên bằng một hàm băm để tạo thành ma trận F và chia thành các khối Fi.

Sinh ngẫu nhiên ma trận khóa K và ma trận trọng số W.

File khóa chứa các thông tin cơ bản để giải mã thông tin: chiến lược trích các bít LSB, số khối và kích thước các khối Fi, ma trận khóa K và ma trận trọng số W. Tính bảo mật trong thuật toán với việc sử dụng LSB đã tăng thêm độ bảo mật đó là ngoài phụ thuộc vào ma trận K, W còn phụ thuộc vào chiến lược trích các bít LSB và kỹ thuật nén thông tin.

Vì sử dụng các bit LSB để tạo thành ma trận F nên chất lượng của ảnh sau khi đã giấu tin rất tốt.

Để tăng dung lượng giấu tin, thay vì sử dụng thuật toán CPT giấu thông tin trong khối bít. Có thể thay đổi trực tiếp các bit của ma trận F để giấu thông tin. Nhược điểm của giải pháp này là tính bảo mật của thuật toán chỉ phụ thuộc vào chiến lược trích các bit LSB. Tuy nhiên có thể khắc phục nhược điểm này bằng cách mã hóa thông tin cần giấu bằng một hệ mật mã nào đó trước khi tiến hành giấu tin trong ảnh. Đây cũng là phương pháp em tìm hiểu quá trình giấu tin trong ảnh.

3.6.Lấy thông tin từ ảnh:

a. Trình tự thực hiện :

Lấy thông tin ẩn từ file ảnh. Muốn đọc được thông tin này phải giải mã với khoá chính là mật khẩu đã được dùng để mã hoá hay giấu thông tin.

Một phần của tài liệu KỸ THUẬT GIẤU TIN TRONG ĐA PHƯƠNG TIỆN (Trang 27 - 31)

Tải bản đầy đủ (DOC)

(41 trang)
w