1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo LỖ HỔNG TRONG CÁC THUẬT TOÁN GIẤU TIN Nghiên cứu với một số thuật toán dấu tin trong ảnh số

29 535 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 4,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo LỖ HỔNG TRONG CÁC THUẬT TOÁN GIẤU TIN Nghiên cứu với một số thuật toán dấu tin trong ảnh số Giới thiệu Các yếu tố ảnh hưởng việc giấu tin Thuật toán giấu tin Phân tích lỗ hổng của thuật toán Giải pháp khắc phục Nhận xét và các hướng nghiên cứu khác

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

KHOA CÔNG NGHỆ THÔNG TIN

LỖ HỔNG TRONG CÁC THUẬT TOÁN GIẤU TIN

( Nghiên cứu với một số thuật toán dấu tin trong ảnh số )

GV hướng dẫn : PGS.TS Trịnh Nhật Tiến

Trang 2

Nội dung chính

Giới thiệu

Các yếu tố ảnh hưởng việc giấu tin

Thuật toán giấu tin

Phân tích lỗ hổng của thuật toán

Giải pháp khắc phục

Nhận xét và các hướng nghiên cứu khác

Trang 3

 Môi trường giấu tin: Văn bản, hình ảnh, âm thanh, phân vùng đĩa cứng …

 Lỗ hổng bảo mật là những nguy cơ tiềm ẩn hay những điểm yếu trong hệ thống hoặc dịch vụ nào đó mà dựa vào đó kẻ tấn công có thể khai thác, xâm nhập trái phép để thực hiện chiếm đoạt thông tin hoặc phá hoại

chúng.

Trang 4

Các yếu tố ảnh hưởng tới giấu tin trong ảnh

 Khó phát hiện bởi yếu tố con người - tính “vô hình”

 Tránh các thao tác biến đổi trên đối tượng chứa – tính bền vững

 Dung lượng dữ liệu giấu

 Tính an toàn

 Độ phức tạp tính toán

Trang 5

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

Yêu cầu bài toán:

File ảnh Bitmap đen trắng: FF (sẽ mang tin giấu)

Khoá: K (để giấu và trích tin), là khóa bí mật và là kích

thước của khối nhỏ được tách từ F

File thông tin cần giấu: Fb

File ảnh đã giấu tin file tin mật Fp: FF’

Trang 6

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

1) Tiền xử lí:

Chuyển file thông tin cần giấu Fb sang dạng nhị phân b.

Đọc header của ảnh (phần chứa thông tin ảnh) để lấy thông tin ảnh Sau đó đọc toàn bộ dữ liệu ảnh vào một mảng hai chiều A

để sử dụng cho việc giấu tin.

2) Thuật toán:

Bước 1: Chia ảnh mang F thành các khối nhỏ kích thước K

(mn)

Bước 2: Sau khi chia F thành các khối nhỏ, ta chọn các khối để

giấu tin, ta có thể chọn ngẫu nhiên các khối, nhưng để cho đơn giản ta coi như các khối được chọn tuần tự từ khối đầu tiên cho đến khi hết thông tin cần giấu

Trang 7

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

Mỗi khối nhỏ này sẽ được dùng để giấu một bit thông tin theo quy tắc sau:

Nếu muốn giấu bit 1 vào 1 khối thì phải thỏa mãn điều kiện:

(L) Tổng các bit 1 trong khối đó là số “lẻ” ( tức là cùng tính lẻ bit 1).

Nếu muốn giấu bit 1 vào 1 khối nhưng không thỏa mãn điều kiện (L) thì trong khối đó chọn ngẫu nhiên một bit và thay đổi giá trị của

nó (từ 0 thành 1 hay từ 1 sang 0) để thỏa mãn điều kiện (L).

Nếu muốn giấu bit 0 vào một khối thì phải thỏa mãn điều kiện:

(C) Tổng các bit 1 trong khối đó là số “chẵn” ( tức là cùng tính lẻ bit 1).

Nếu muốn giấu bit 0 vào 1 khối nhưng không thỏa mãn điều kiện (C) thì trong khói đó chọn ngẫu nhiên một bit và thay đổi giá trị của

nó (từ 0 thành 1 hay từ 1 sang 0) để thỏa mãn điều kiện (C).

Trang 8

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

số dư khi chia cho z (x và y đồng dư theo modulo z) Như vậy biểu thức x  y

(mod 2) cho biết x và y có cùng tính chẵn lẻ vì theo tính chất đối xứng của

“đồng dư” thì x  y (mod 2) tương đương với y  x (mod 2)  Ta quy bài toán

về hai trường hợp:

Trường hợp thứ nhất: SUM(B) = b (mod 2), khối B đã thoả mãn tính chất để

giấu bit dữ liệu b, ta không cần thay đổi và xem như bit b đã được giấu

Trường hợp thứ hai: SUM(B)  b (mod 2) Trường hợp này phải sửa B để đảo

tính chẵn lẻ của SUM(B) Dễ thấy ta chỉ cần đảo một bit bất kỳ trong B thì

SUM(B) sẽ tăng hoặc giảm 1 đơn vị Gọi B’ là khối kết quả thu được từ khối B sau khi đảo một bit trong B Ta có SUM(B’) = b (mod 2)

Trang 9

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

VD1: Giả sử ta phải giấu bit dữ liệu b = 1 vào

khối B như sau:

- Ta đếm số bit 1 trong khối: Trong trường hợp ở

trên khối B có 6 bit 1, SUM(B)=6 Do đó, SUM(B)

 1 (mod 2) Như vậy khối B không thoả mãn yêu

cầu để giấu bit 1 Muốn giấu bit 1 vào khối này ta

cần phải thay đổi khối bằng cách chọn một bit bất

kì và đổi từ 0 sang 1 hoặc từ 1 sang 0 Giả sử thay

đổi như hình sau:

- Ví dụ 2: Giả sử vẫn với khối B đã cho như

trên nhưng ta phải giấu bit dữ liêu b = 0 vào

khối đó Ta có, do SUM(B) = 6, nên SUM(B) = 0

(mod 2 ) Khối B được bảo toàn và bit dữ liệu

b=0 xem như đã được giấu

Trang 10

Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

Quá trình giải tin:

Input:

F’ là ảnh đã được giấu dãy bí mật b

K là khóa bí mật, đó là kích thước của khối nhỏ (Được xác định trước)

Output:

F là ảnh mang (ảnh trước khi giấu tin mật), b là dãy bit bí mật cần giấu

Bước 1:

Đọc header của ảnh để biết các thông tin ảnh

Đọc phần dữ liệu ảnh vào mảng hai chiều (ma trận) F

Bước 2:

Chia ảnh F mang thành các khối nhỏ với kích thước KTheo một thứ tự xác định trước, xét từng khối nhỏNếu tổng số bit 1 là “lẻ” thì ta thu được bit giấu là 1Nếu tổng số bit 1 là “chẵn” thì ta thu được bit giấu là 0

* Như vậy, sau khi xử lý hết các khối đã giấu, ta thu được một chuỗi bit đã đem giấu

b Bước tiếp theo ta chuyển từ file nhị phân sang file văn bản

Trang 11

Kỹ thuật giấu tin M.Y.WU – J.H.LEE

Các phép toán với các bit

Gọi a và b là hai bit tuỳ ý, ta định nghĩa phép toán

and bit kí hiệu là ^ trên hai bit a và b, ab cho ta giá trị 1

khi và chỉ khi a=b=1, trong các trường hợp còn lại, a ^

b=0

Ta định nghĩa phép toán cộng loại trừ (hay gọi là phép

toán so khác – XOR), kí hiệu là  trên hai bit a và b,

ab sẽ cho ta giá trị 1 nếu ab và giá trị 0 nếu a=b.

Thuật toán Wu - Lee

F là ảnh đã được giấu bit b bí mật

Kí hiệu SUM(F) là tổng các số 1 trong ma trận F

Trang 12

Kỹ thuật giấu tin M.Y.WU – J.H.LEE

Bước 1:

Chia F thành các khối nhỏ Fi có kích thước m x n (như ma trận K)

Bước 2:

Với mỗi Fi, kiểm tra điều kiện: 0 < SUM(Fi ^ K) < SUM (K)

Nếu thỏa mãn điều kiện trên thì chuyển sang bước 3

Nếu không thỏa mãn điều kiện trên thì giữ nguyên Fi

Bước 3:

Giả sửa bit cần giấu vào khối Fi là b Thay đổi Fi như sau:

if ( SUM(Fi ^ K) mod 2 = b) then giữ nguyên Fi (coi như đã được giấu b)

else if ( SUM(Fi ^ K) mod 2 = 1  b (tức là b=0)) then

Chọn ngẫu nhiên 1 bit thoả mãn Fi[j,k]=0 & K[j,k]=1; lật Fi[j,k] thành 1;

else if (SUM(Fi ^ K) mod 2 = 0  b (tức là b=1) & SUM(FiK)= SUM(K)–1) then

Chọn ngẫu nhiên 1 bit thỏa mãn F[j,k]=1 & K[j,k] =1; lật F[j,k] thành 0;

else if (SUM(Fi ^ K) mod 2 = 0  b và SUM(Fi ^ K)  SUM(K)–1) then

Chọn ngẫu nhiên 1 bit thỏa mãn K[j,k] = 1; lật bit Fi[j,k] từ 0 thành 1 hoặc từ 1 thành 0;

return F; end Wu_Lee

Trang 13

Kỹ thuật giấu tin M.Y.WU – J.H.LEE

Ví dụ minh họa

Giả sử ta cần giấu dãy bit D = 011 vào một ảnh F có kích thước 66 và một ma trận khoá K có kích thước 33 như trong hình vẽ

Trang 14

Kỹ thuật giấu tin M.Y.WU – J.H.LEE

Bước 1: Ta chia ảnh F thành 4 khối nhỏ mỗi khối sẽ có kích thước là 33 ta thu được F1, F2,

F3, F4 Xét với lần lượt các khối ảnh trên.

Bước 2:

Xét với khối ảnh F1:

SUM(F1K) = SUM(K) = 5 ; nên không giấu dữ liệu vào trong F1

Vì không thỏa mãn điều kiện 0 < SUM(Fi ^ K) < SUM (K).

Xét tiếp với khối ảnh F2:

SUM(F2K) = 3 thỏa mãn 0 < SUM(Fi ^ K) < SUM (K).

Bước 3:

Ta có SUM(F2 ^ K) mod 2 = 3 mod 2 = 1  0.

Ta chọn phần tử (2,3) để đảo bit trong khối F2 vì với phần tử này ta có F2[2,3]=0 và K[2,3]=1 Sau khi đảo bit F2[2,3] ta thu được khối F’2 như trên hình vẽ (bit bị đổi được đánh giấu xám) Xét tiếp với khối ảnh F3:

SUM(F3 ^ K) = 3 và bit cần giấu là bit thứ hai trong D, b=1 mà ta có SUM(F3 ^ K) mod 2 = 3 mod

2 = 1 = b Khối F3 được giữ nguyên với ý nghĩa là khối đã được giấu bit b=1.

Xét tương tự tiếp với khối ảnh F4:

SUM(F4 ^ K) = 4, và bit cần giấu là bit cuối cùng của D, b=1 nên ta có SUM(F4K) mod 2 = 4 mod 2 = 0  b Ta chọn phần tử (2,1) để đảo bit trong khối F4 vì với phần tử này ta có F4[2,1]=1

và K[2,1]=1 Sau khi đảo bit F4[2,1] ta thu được khối F’4 như trên hình vẽ (bit bị đổi được đánh

Trang 15

Lỗ hổng trong các thuật toán giấu tin

Với thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1

Đây là thuật toán rất đơn giản để thực hiện giấu tin trong ảnh, với thuật toán trên ta có một

số đánh giá như sau:

Với các thuật toán giấu tin trong ảnh đen trắng qua thử nghiệm thấy rằng với kỹ thuật thay đổi bit ngẫu nhiên, tức là sử dụng mọi khối Fi để giấu tin và trong trường hợp cần thay đổi một phần tử trong Fi lại thay đổi một phần tử bất kỳ miễn sao đạt được bất biến thì chất lượng ảnh

sẽ không được tốt, xuất hiện khá nhiều điểm bất thường sau khi giấu tin

Ảnh đen trắng khó giấu hơn do mỗi điểm ảnh chỉ được biểu diễn bởi một bit hoặc 0 hoặc 1 Nếu như ta đảo bit (từ 0 sang 1 hay ngược lại từ 1 sang 0) thì đều làm xuất hiện trên ảnh những điểm đen, điểm trắng lạ Như vậy vấn đề cốt yếu ở đây là làm thế nào hạn chế được tối đa các điểm đen, điểm trắng lạ và làm thế nào để những bit bị thay đổi đó khó bị phát hiện nhất

Với thuật toán này có độ an toàn không cao vì chỉ cần biết khóa K (kích thước các khôi giấu tin là có thể dễ dàng tách ra được tin mật Tuy nhiên, ta có thể làm thuật toán khó hơn bằng cách chọn ngẫu nhiên một khối chưa giấu ở mỗi lần giấu Khi đó, ta đã làm tăng được độ an toàn của thuật toán vì khoá trong trường hợp này còn thêm cả dãy chỉ số khối đã giấu tin cho từng bit Hoặc ta có thể thay đổi kích thước khối ở mỗi lần giấu, chẳng hạn như lần thứ nhất chọn khối 44, lần thứ hai chọn khối 48

Trang 16

Lỗ hổng trong các thuật toán giấu tin

Nhận xét đánh giá thuật toán Wu - Lee:

Với thuật toán này chúng ta cùng phân tích khả năng đối phương phát hiện ảnh

có giấu tin hoặc trong trường hợp xấu hơn đối phương có thể phát hiện được khóa mật K

Nếu có ảnh gốc F và ảnh đích F’ trong tay, bằng một thủ tục đối sánh đơn giản đối phương có thể phát hiện ra ảnh có giấu tin hay không theo hệ thức

F = F’: ảnh không bị giấu tin,

F  F’: ảnh có thể bị giấu tin

Vì khóa mật K tham gia vào quá trình phân phối thông tin trên các khối Ta tạm chấp nhận giả thiết là khóa khóa K là cố định trong mỗi thuật toán giấu tin Muốn phát hiện khóa K đối phương phải biết các giá trị m, n biểu diễn kích thước khóa và bản thân nội dung khóa K Trong một số trường hợp, dù đối phương không biết

chính xác các đại lượng m và n, nhưng có thể suy đoán được phần nào sự bố trí một số bit 1 trong khóa K thì mức độ an toàn cũng bị đe dọa

Trang 17

Giải pháp khắc phục: Sử dụng ma trận láng giềng

Ma trận láng giềng của ma trận F cấp m×n là ma trận N cấp m×n trong đó N[j,k] là số phần tử láng giềng thuộc khối F của F[j,k] mà có giá trị khác với F[j,k]

Ví dụ:

Trang 19

Giải pháp khắc phục: Sử dụng ma trận láng giềng

Bước 3:

+ Xây dựng ma trận láng giềng Ni của ma trận Fi

+ Xác định phần tử Ni[j,k] có giá trị lớn nhất trong ma trận Ni mà có K[j,k] = 1

+ Thay đổi phần tử Fi[j,k]

* Với tính chất của ma trận láng giềng thì rõ ràng nếu Ni[j,k] có giá trị lớn nhất và

K[j,k] = 1 thì sau khi thay đổi Fi[j,k] ta sẽ nhận được F’i thỏa mãn bất biến và F’i[j,k]

có nhiều phần tử láng giềng giống nó nhất, do đó sẽ hạn chế các điểm bất thường

và nâng cao được chất lượng ảnh sau khi giấu tin

Trang 20

Giải pháp khắc phục: Sử dụng ma trận láng giềng

+ Vì SUM(Fi) = 5 thỏa mãn 0 < SUM(Fi) < 9 nên có thể sử dụng Fi để giấu tin Vì SUM(Fi ^ K) = 3 khác tính chẵn lẻ với 0 nên để giấu được bit 0 vào Fi cần phải thay đổi một phần tử trong Fi Do Ni[2,2] có giá trị lớn nhất và K[2,2] = 1 nên phần tử được chọn để thay đổi là Fi[2,2]

+ Kết quả sau khi giấu bit 0 vào Fi,

Ví dụ:

Trang 21

Giải pháp khắc phục: Sử dụng ma trận láng giềng

Trang 22

Giải pháp khắc phục: Sử dụng hệ số phân bố bit D

Trang 23

Giải pháp khắc phục: Sử dụng hệ số phân bố bit D

Trang 24

Giải pháp khắc phục: Sử dụng hệ số phân bố bit D

D = D + D +D +D = 9 +6 +7 + 5 = 27

Trang 25

Giải pháp khắc phục: Sử dụng hệ số phân bố bit D

Trang 26

Giải pháp khắc phục: Áp dụng thuật toán HT để giấu tin trong ảnh

Định nghĩa:

Phép cộng không nhớ các số nhị phân, ký hiệu được định nghĩa như sau:

1 1 = 0; 1 0 = 1; 0 1 = 1; 0 0 = 0

Từ định nghĩa ta có tính chất: b b = 0 với mọi số nhị phân b.

Quá trình giấu tin

Tiến hành nhúng chuỗi k bit b=(b1, b2, , bk) vào chuỗi n bit x=(x1, x2, ,

xn) để được chuỗi x’ theo các bước:

Bước 1: Tính , trong đó db(i) là biểu diễn nhị phân của i

Trang 27

Giải pháp khắc phục: Áp dụng thuật toán HT để giấu tin trong ảnh

Ví dụ:

Trang 28

Nhận xét và hướng nghiên cứu khác

 Qua phân tích đánh giá trên ta nhận thấy điểm hạn chế lớn của các

phương pháp giấu tin trong ảnh trên đều dựa vào 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.

Do vậy nếu ảnh bị biến đổi bằng một phép biến đổi nào đó làm thay đổi giá trị của các bit thì thông tin giấu bị sai lệch

 Để giải quyết vấn đề này theo tìm hiểu của mình em xin đề xuất cho

hướng nghiên cứu tiếp theo là kỹ thuật “Giấu tin trong miền tần số”

Kỹ thuật này áp dụng một phương pháp biến đổi trực giao nào đó,

chẳng hạn như Cosine rời rạc, hay Fourier… để chuyển miền không gian ảnh sang miền tần số Thuỷ vân sẽ được nhúng trong miền không gian tần

số của ảnh theo kĩ thuật trải phổ trong truyền thông Đây là kĩ thuật phổ

biến nhất với nhiều thuật toán và được hứa hẹn là một phương pháp tốt giải quyết vấn đề đảm bảo các thuộc tính quan trọng của thuỷ vân sau khi giấu

Trang 29

XIN CHÂN THÀNH CẢM ƠN !

Ngày đăng: 19/10/2014, 22:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w