Trích chọn (extraction)

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng (Trang 59 - 62)

3. Bố cục của luận văn

3.3 Trích chọn (extraction)

Đầu vào: Ảnh S ma trận H và bảng mã chữ cái (Hình 3.1)

Đầu ra: Bảng thông báo m = m1m2….mn

Các bước tiến hành Bước 1:

Trích chọn 4n LSB của dữ liệu ảnh S2 với điểm khởi đầu cho trước ta được s2 = s1s2…….s15n

Bước 2:

Chia dãy bit thành n block liền nhau có độ dài bằng 15 và được ký hiệu là S[1], S[2], …, S[n]

Bước 3:

Với I = 1,2,..

Tính X[i] = H.ST[i](ST[i] là chuyển vị của S[i] với I = 1,2,…,n

Bước 4:

Chuyển X[i] chữ cái thứ I ( I = ) = mi Return [mi, I = ]. terminatesalgorithm

Ví dụ: Ta lấy lại ví dụ ở mục 3.2: M = informationstop = 0000 1010 0101 1111 1000 0000 0001 1001 1011 0010 0100 1010 0001 0101 1111 0111 ./. Ở đây n = 16. Ma trận H đã cho ở 3.3 Ta có: X[1] = 0000 X[2] = 1010 X[3] = 0101 X[4] = 1111 X[5] = 1000 X[6] = 0000 X[7] = 0001 X[8] = 1001 X[9] = 1011 X[10] = 0010 X[11] = 0100 X[12] = 1010 X[13] = 0001 X[14] = 0101 X[15] = 1111 X[16] = 0111 Bây giờ giả sử ảnh cover C tại khởi điểm, để đơn giản ta lấy khởi điểm là bit LSB đầu tiên của dữ liệu ảnh, ta trích ra được 15n = 240 các LSB của ảnh C là: 01001 00001 10110 00111 11111 10000 01000 00000 11111 10110 00010 00100 000010 00111 00001 10000 01110 00100 00011 11110 10000 11111 00100 10111 10000 01001 10001 10110 00100 00000 10001 01100 00001 10100 01011 00000 00111 10100 00010 11111 10000 01100 10010 00000 11100 00111 11100 10100. Từ đó ta có: Y[1] = 01001 00001 10110 Y[2] = 00111 11111 10000 Y[3] = 01000 00000 11111 Y[4] = 10110 00010 00100 Y[5] = 00001 00111 00001 Y[6] = 10000 01110 00100 Y[7] = 00011 11110 10000 Y[8] = 11111 00100 10111

Y[9] = 10000 01001 10001 Y[10] = 10110 00100 00000 Y[11] = 10001 01100 00001 Y[12] = 10100 01011 00000 Y[13] = 00111 10100 00010 Y[14] = 11111 10000 01100 Y[15] = 10010 00000 11100 Y[16] = 00111 11100 10100./. Mã hóa bước 4 tính: Tính ZT[1] = H.YT[1] = H.( 01001 00001 10110)T = (0000)T + (1100)T = (1100)T

Tìm trong ma trân H ta thấy cột thứ 9 của ma trân H trùng với ZT[1] = (1100)T

Do đó ta đảo bit thứ 9 của Y[1] từ 0 chuyển sang 1. Các LSB của ảnh C là Y[1] = 01001 00001 10110 trở thành Y'[1] = 01001 00011 10110 . Như vậy ta đã giấu được dãy 0000 vào ảnh C.

Tiếp tục:

ZT[2] = XT[2] + H.YT[2] = 1010 + H.YT[2] = (1010)T + (0001)T Ta thấy ZT[2] = (1011)T trùng với cột thứ 14 của H. Do đó vecto LSB Y[2] chuyển thành Y'[2] = 00111 11111 10010. Như vậy đã giấu được ký tự 1010 vào C.

ZT[3] = XT[3] + H. YT[3] = (1011)T +H. (01000 00000 1111)T = (1011)T + (0100)T = (1111)T

Ta thấy ZT[3] = (1111)T trùng với cột thứ 15 của H. Do đó bít thứ 15 của Y[3] = 1 được chuyển sang 0 và Y’[3] = 01000 00000 11110. Như vậy sẽ giấu được ký tự 1011 vào C.

ZT[4] = XT[4] + H. YT[4] = (1111)T +H. (10110 00010 00100)T = (1111)T + (0000)T = (1111)T

Do đó thay LSB thứ 15 của Y[4] ta được Y’[4] = 10110 00010 0010

ZT[5] = XT[5] + H. YT[5] = (1000)T +H. (00001 00111 00001)T = (1000)T + (0011)T = (1011)T

ZT[5] = (1011)T trùng với cột thứ 14 của H, vậy Y’[5] = 00001 00111 00011

Tương tự như vậy ta tính được Y’[6], Y’[7], Y’[8] …. Và cuối cùng ta có

ZT[16] = XT[16] + H. YT[16] = (0111)T +H. (00111 11100 10100)T = (0111)T + (1001)T = (1110)T

ZT[16] = (1110)T trùng với cột thứ 12 của H, vậy Y’[16] = 00111 11100 11100

Như vậy các LSB của ảnh stego tương ứng ảnh C là:

Y’ = 01001 00011 10110 00111 11111 10010 00001 00000 11110 10110 00010 00101 00001 00111 00011 10000 01100 00100 00001 11110 10000…..00111 11100 11100./.

Nếu tính tần số xuất hiện bit 1 và bit 0 theo thứ tự lần lượt của Y và Y’ ta thấy rằng sự khác biệt giữa chúng là khó có thể phân biệt, đến mức các kỹ thuật thống kê cấp 1 không thể phát hiện được.

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng (Trang 59 - 62)

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

(76 trang)