5. Bố cục luận văn
3.3.2 Giải thuật giấu tin
Trong luận văn sử dụng thuật toán giấu tin F5 [4]:
1. Lấy phần thể hiện RGB của ảnh đầu vào (lấy giữ liệu của ảnh).
2. Biến đổi miền dữ liệu của ảnh sang miền tần số DCT sau đó lượng tử hóa các hệ số DCT theo Q ta được các hệ số DCT đã lượng tử.
3. Tính khả năng có thể nhúng khi không sử dụng matrix encoding
h h h h h C DCT DCT 0 1 0,49 64 , trong đó: DCT h là tổng số hệ số DCT; h 0 là số hệ số AC DCT bằng 0 1 h là hệ số AC DCT có trị tuyệt đối bằng 1 64 DCT h
là số hệ số DC; h 1 0,49h0,5h là ước lượng mức độ hao hụt. 4. Mật khẩu người dùng được sử dụng để tạo ra bộ khởi tạo giải ngẫu nhiên PRNG để quyết định nhúng các bit thông điệp vào các vị trí ngẫu nhiên. PRNG cũng thường được sử dụng để phát sinh một dòng bit giả ngẫu nhiên bằng phép XOR với thông điệp tạo ra nó một dòng bit ngẫu nhiên. Trong quá trình nhúng, hệ số DC và các hệ số bằng 0 thường được bỏ qua.
5. Thông điệp được chia thành các đoạn gồm k bit, mỗi đoạn nhúng vào một nhóm hệ số DCT 2k 1 theo bước đi giả ngẫu nhiên. Nếu giá trị băm của nhóm không phù hợp với các bit thông điệp thì giá trị tuyệt đối của một trong những hệ số trong nhóm bị giảm đi 1 cho phù hợp. Nếu hệ số trở thành 0 (hệ số này được gọi là điểm hội tụ- shrinkage), bà khi đó k bit thông điệp này sẽ được nhúng trong nhóm hệ số DCT tiếp theo.
6. Nếu độ dài thông điệp phù hợp với khả năng có thể giấu trong ảnh thì quá trình giấu thành công, ngược lại sẽ thông báo lỗi và cho biết độ dài lớn nhất của ảnh có thể giấu để điều chỉnh thông điệp giấu hoặc thay đổi ảnh dùng để giấu thông điệp.
Thuật toán
Input: message, shared secret, cover image
Output: stego image
Initialize PRNG with shared secrt
Permutate DCT coefficients with PRNG Determine k from image capaciti
Calculat code word length n 2k - 1
While data left to embeb do
Get next k – bit message block
Repeat
G { n non – zero AC coefficients} S k – bit hash of LSB in G S s k – bit message blok
If s 0 then
Decremennt absolute value ofDCT coefficient Gs Insert Gs into stego image