Thuật toán

Một phần của tài liệu giấu tin trong ảnh và bài toán trao đổi - xác thực đề thi (Trang 36 - 71)

Nội dung thuật toán nhúng tin được trình bày tóm tắt như sau:

- Ma trận nhị phân F cấp m×ndùng để giấu tin

- Ma trận nguyên tuần tự O cấp m×n, O thỏa mãn điều kiện: - Ma trận nhị phân K cấp m×n

- Dãy bit cần nhúng s = srsr-1...s1

Output:

Gọi G là ma trận sau khi nhúng dãy bít s vào F, giữa G và F chỉ khác nhau tối đa 1 phần tử.

Nội dung thuật toán như sau:

Đặt Bước 1: Tính B = F⊕K Bước 2: Tính với t =1,…,r Bước 3: Tính Bước 4: Tính Bước 5: Tính ∑− = × = 1 0 2 r t t t R MP

Bước 6: Thay đổi giá trị của một điểm ảnh ứng với MP - i = (MP-1) div n +1

- j = MP - (i-1) div n - Fi,j= 1- Fi,j

2.2.3. Phân tích thuật toán

Lược đồ CTL sử dụng ma trận nguyên tuần tự O để thay thế vai trò ma trận trọng số W của CPT. Với mỗi khốim×n điểm ảnh F, phương pháp CTL

có thể nhúng được bít và biến đổi nhiều nhất một điểm ảnh trên F.Như vậy, về hiệu quả thuật toán này tương đương với thuật toán giấu tin CPT. Độ an toàn của thuật toán cũng rất cao tương đương với thuật toán CPT vì thông qua hai ma trận dùng làm khoá để giải tin đó là ma trận trọng số và ma trận khoá. Như vậy độ bảo mật của thuật toán là:

2m*n mn r r mn (2 1) 1 2 r r (2 1)! (2 1) C − × − × − − −

Nếu áp dụng tốt thuật toán này cho ảnh màu thì có thể nói thuật toán đã đạt được yêu cầu cơ bản của một ứng dụng giấu tin mật đó là đảm bảo tính ẩn của thông tin giấu, số lượng thông tin giấu caọ

2.2.4. Ví dụ minh họa

Quá trình giấu tin: Giả sử cần giấu dãy bit 0010 vào ma trận điểm ảnh

có kích thước 4x4 với các tham số đầu vào như hình:

0 1 1 1 1 0 0 1 1 2 3 4 0 1 1 0 0 1 0 1 5 6 7 8 F = 0 0 1 1 K = 1 0 1 0 W = 9 10 11 12 1 0 0 1 0 1 0 0 13 14 15 1 1 1 1 0 F 1011 0 1 1 1 0 0 1 1 0 1 1 0 F⊕K= 1 0 0 1 G = 0 1 1 1 1 1 0 1 1 0 0 1 T

Hình 2.4. Minh hoạ thuật toán CTL

- Tính C= F ⊕ K - Tính Hj = ( ) i Nj C i ∈ ∑ H1 = C(1) + C(3) + C(5) + C(7) + C(9) + C(11) + C(13) + C(15) + C(16) = 1+ 1+ 0 + 1+ 1+ 0+ 1+ 0+ 1 = 6 H2 = C(2) + C(3) + C(6) + C(7) + C(10) + C(11) + C(14) + C(15)

= 1+ 1+ 0 + 1+ 0+ 0+ 1+ 0 = 4 H3 = C(4) + C(5) + C(6) + C(7) + C(12) + C(13) + C(14) + C(1) = 0+ 0+ 0 + 1+ 1+ 1+ 1+ 0 = 4 H4 = C(8) + C(9) + C(10) + C(11) + C(12) + C(13) + C(14) + C(15) = 1+ 1+ 0 + 0+ 1+ 1+ 1+ 0 = 5 - Tính hj: hj = Hj mod 2 h1 = 6 mod 2 = 0 h2 = 4 mod 2 = 0 h3 = 4 mod 2 = 0 h4 = 5 mod 2 = 1 - Tính Rj: Rj =0 nếu hj = sj Rj =1 nếu hj<> sj R1 = 0; R2 = 0; R3 = 1; R4= 1; - Tính MP: MP = Rr * 2r-1 + Rr-1 * 2r-2 +…+ R1 * 20 MP = 10 (MP <> 0) + Với k 10 thì O(10) = MP + Đảo bit F(10): F(10) = 1- F (10) = 1 + Đặt G = F (nhúng và thay đổi 1 vị trí)

2.3. Kỹ thuật giấu tin THA

2.3.1. Một số định nghĩa

Định nghĩa 1: Ký hiệu là phép nhân theo phần tử của hai ma trận cùng cấp m×n:

Định nghĩa 2: Phép hai số nguyên không âm là phép toán xor trên từng cặp bít tương ứng của chúng.

Ví dụ: 5 12 = 0101 1100 = 1001=9

Định nghĩa 3: Với D là ma trận nguyên không âm cấp m×n, ký hiệu s = XSUM(D) hay được hiểu là phép trên tất cả các phần tử của D.

2.3.2. Thuật toán giấu tin trên một khối

Nội dung phần này trình bày các thuật toán giấu tin trên một ma trận nhị phân(khối điểm ảnh) F cấp m×n, các thuật toán trong mục này chỉ biến đổi nhiều nhất một phần tử trên F.

2.3.2.1. Thuật toán nhúng một bít (adsbygoogle = window.adsbygoogle || []).push({});

Đối với ảnh nhị phân, lược đồ của Wu-Lee được biết đến như là một lược đồ đơn giản thuộc nhóm kỹ thuật giấu tin theo khối bít. Lược đồ này sử dụng ma trận nhị phân ngẫu nhiên K cấp m×n làm khóa bí mật. Theo đó, thuật toán có thể nhúng một bít b vào F bằng việc biến đổi nhiều nhất một phần tử trên F để nhận được G thỏa mãn điều kiện:

Lược đồ này không thể mở rộng để giấu một dãy bít.

Ta xét một thuật toán khác bằng cách thay cho điều kiện trong thuật toán Wu-Leẹ Thuật toán này có thể mở rộng để giấu một dãy r bít.

Thuật toán 1:

Thuật toán này sẽ biến đổi nhiều nhất một phần tử trên F để nhận được G thỏa mãn điều kiện:

(1) Thuật toán được thực hiện như sau:

Bước 1:

- Tính

- Nếu b ≠s, chuyển đến Bước 2

Bước 2:

- Tính

- Tìm một phần tử

- Đảo phần tử Fu,v: Fu,v = 1- Fu,v - Đặt G = F và kết thúc thuật toán

Nhận xét 1: Trong thuật toán d = 1.Vì vậy, để bước 2 luôn thực hiện được thì ma trận K cần thỏa mãn điều kiện:

2.3.2.2. Thuật toán nhúng dãy bít

Trong mục này ta sẽ mở rộng Thuật toán 1 để nhúng dãy bít

vào khối điểm ảnh F bằng cách sử dụng ma trận khóa K gồm các phần tử là các dãy nhị phân r bít. Nói cách khác, các phần tử Ki,j có giá trị từ 0 đến 2r-1.

Tương tự như Thuật toán 1, thuật toán dưới đây sẽ biến đổi nhiều nhất một phần tử của F để được ma trận G thỏa mãn điều kiện:

(2)

Thuật toán 2: Bước 1:

-

- Nếu , đặt G = F và kết thúc thuật toán Nếu , chuyển sang Bước 2

Bước 2:

- Chọn một phần tử - Đảo phần tử

- Đặt G = F và kết thúc thuật toán

Nhận xét 2: Trong thuật toán trên, d là một số nguyên từ 1 đến 2r-1. Do đó, để bước 2 luôn thực hiện được thì ma trận khóa K phải thỏa mãn điều kiện:

(3) Từ điều kiện (3) suy ra:

Ví dụ minh họa

Để làm rõ hơn nội dung của thuật toán nhúng dãy bít, ta xét ví dụ nhúng hai bít b1b2 vào ma trận F với các tham số cụ thể như sau:

b=b1b2=10 F K 1 0 0 10 01 10 0 1 1 11 01 10 0 1 1 11 11 01 Bước 1: - (adsbygoogle = window.adsbygoogle || []).push({});

- Do s ≠ b, chuyển sang Bước 2

Bước 2:

-

- Theo thuật toán chọn , suy ra (u,v) = (1,2) - Đảo F1,2: F1,2=1-0 = 1 và Đặt G = F.

Vậy sau khi nhúng dãy bít 10 vào F ta được G như sau:

1 1 0

0 1 1

0 1 1

Chứng minh thuật toán nhúng dãy bít

Để khẳng định Thuật toán 2 đúng ta cần chứng minh trong mọi trường hợp kết thúc G luôn thỏa mãn điều kiện (4.2):

Xét hai trường hợp kết thúc của thuật toán:

Trường hợp 1: Thuật toán kết thúc tại Bước 1, hiển nhiên G thỏa mãn điều kiện (2). Bởi, G chính là F, mà F thỏa mãn điều kiện .

Trường hợp 2:Thuật toán kết thúc tại Bước 2, nội dung của Bước 2 như sau:

- ,

- Chọn một phần tử , - Đảo Fu,v: Fu,v=1-Fu,v và đặt G=F

Khi đó, dễ dàng suy ra các phần tử của G được xác định theo công thức sau: (4) Gọi = ⊗ =∑⊕ × j i i j i j K G K G XSUM s , , , ) ( ' Từ (4) suy ra: ] ) 1 [( ' , , ) , ( ) , ( , , uv uv v u j i j i j i K F K F s = ∑⊕ × ⊕ − × ≠ (5)

Do F là ma trận nhị phân nên Fu,v=0 hoặc 1. Xét hai trường hợp của Fu,v:

Trường hợpFu,v=0, từ (5) suy ra:

] ) 1 [( ' , , , , , uv uv j i j i j i K F F F s =∑⊕ × ⊕ − × s'=sKu,v (*)

Trường hợp Fu,v=1, từ (5) suy ra:

v u v u v u v u v u j i j i j i K F K K K F s , , , , ) , ( ) , ( , , [(1 ) ] '= ∑⊕ × ⊕ − × ⊕ ⊕ ≠  uv uv uv j i i j ij K F F K F s , , , , , , ] ) 1 [( '=∑⊕ × ⊕ − × ⊕ s'=sKu,v (**)

Từ (*) và (**) suy ra khi đảo giá trị Fu,v thì

Mặt khác, theo thuật toán nên

Vậy .

Thuật toán 3

Để nâng cao mức độ an toàn của Thuật toán 2, ta có thể sử dụng thêm một số làm khóa thứ 2. Khi đó ta nhận được thuật toán 3 có nội dung tương tự như Thuật toán 2 ngoại trừ s được tính theo công thức:

Ngoài ra, để khôi phục dãy bít b, thay cho công thức (2) ta sẽ sử dụng công thức sau:

Ta nhận thấy ma trận G trong Thuật toán 3 được xác định từ F, K, w và b. Vì vậy, ta có thể xem Thuật toán 3 như một phép biến đổi T từ (F,K,w,b) đến G:

G = T(F,K,w,b)

2.3.3. Lược đồ giấu tin trên ảnh nhị phân (adsbygoogle = window.adsbygoogle || []).push({});

Giả sử I là ảnh nhị phân dùng để giấu tin và b là dãy bít tin mật cần giấụ Trong thuật toán sử dụng hai khóa K và W, trong đó K là ma trận cấp m×n thỏa mãn hai điều kiện:

1) 2)

với và

Thuật toán giấu tin: Bước 1: Chia khối

Chia ảnh I thành N khối Fi cấp m×n, chia b thành N dãy bít bi có độ dài

Bước 2: Giấu tin trên từng khối For i=1 to N do

Gi=T(Fi, K, wα, bi) End for

Thuật toán cho ta ảnh G gồm các khối Gi cấp m×n với i =1,…,N

Gọi G là ảnh có chứa dãy bít tin mật, thuật toán khôi phục tin giấu cần biết hai khóa bí mật K và W đã được sử dụng trong thuật toán giấu tin. Nội dung thuật toán khôi phục như sau:

Bước 1: Chia ảnh G thành N khối Gi cấp m×n

Bước 2: Khôi phục dãy bít For i = 1 to N do

End for

Kết quả ta nhận được dãy bít tin mật b gồm N dãy con r bít bi, i=1,2, …,N

2.3.4. So sánh lược đồ THA với CPT và CTL

Theo một lược đồ giấu tin cần có 3 tính chất cơ bản: khả năng nhúng tin, tính che giấu và mức độ bảo mật. Nội dung phần này sẽ tập trung phân tích, so sánh các tính chất trên giữa lược đồ THA với hai lược đồ CPT và CTL.

- Khả năng nhúng tin và tính che giấu của lược đồ THA hiển nhiên là tốt hơn lược đồ CPT và bằng lược đồ CTL. Bởi, để nhúng

bít, CPT cần thay đổi nhiều nhất hai phần tử trên mỗi khối m×n điểm ảnh, trong khi lược đồ THA và CTL chỉ thay đổi nhiều nhất một phần tử.

- Tính bảo mật của một lược đồ giấu tin THA là sự an toàn của dãy bít được nhúng. Đối với hai lược đồ CPT và CTL, sự an toàn của dãy bít phụ thuộc vào số phương án của hai khóa K và W (khóa O của CTL tương đương

với W của CPT). Trong đó:

• K là ma trận nhị phân cấp m×n,suy ra số phương án của K là:

• W là ma trận nguyên cấp m×n và thỏa mãn điều kiện:

Vậy, số phương án của W là:

(**) Từ (*) và (**) suy ra mức độ bảo mật của CPT và CTL là:

Trong thực tế, kích thước khối(m×n)của hầu hết các lược đồ thường nhỏ. Bởi vì, nếu chọn m×n lớn thì lượng thông tin giấu được trên toàn bộ ảnh sẽ giảm, thông thường kích thước khối được chọn là 5×5, hoặc 8×8, hoặc16×16. Tuy nhiên, số khối(N) của ảnh lại lớn. Ví dụ, với ảnh có kích thước 200×200,

nếu chọn kích thước khối thì .

Trong lược đồ THA, tính bảo mật dựa trên hai khóa K và W. Trong đó - K là ma trận nguyên cấp m×n và K thỏa mãn điều kiện:

Suy ra số phương án của K là:

- . Để tiện cho

Vậy, tính bảo mật của lược đồ THA là:

Với những phân tích ở trên, nếu chọn , các tính chất cơ bản của ba lược đồ giấu tin được trình bày trong bảng sau: (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 2.1: So sánh các tính chất của ba lược đô Tính chất

Lược đô

Một khối m×n điểm ảnh

Tính bảo mật của lược đô Khả năng

nhúng (bits)

Số điểm ảnh tối đa cần

thay đổi

THA 1

CTL 1

CPT 2

Mặt khác, theo khẳng định trong thuật toán nhúng tin của lược đồ CTL có tốc độ thực hiện nhanh hơn đáng kể so với CPT. Tuy nhiên, so với lược đồ THA thì khối lượng phép tính của CTL vẫn còn nhiều hơn, cụ thể như sau:

Nếu xét trên một khối điểm ảnh, số lượng phép tính của Thuật toán 2 xấp xỉ bằng số lượng phép tính của Bước 1 và Bước 3 trong thuật toán CTL. Ngoài ra, Bước 2 của CTL cần tối thiểu phép toán kiểm tra bít để xây dựng các tập Nj. Do vậy, tốc độ thực hiện của lược đồ THA sẽ nhanh hơn CTL và CPT.

Kết quả thực nghiệm

Trong thực nghiệm này sử dụng ba ảnh khác nhau, các ảnh này đều có kích thức , những ảnh này được dùng để giấu tin, bao gồm English text image, Vietnamese text image và “Lena” image, để giấu cùng một lượng tin mật.

(a) English text (b)Vietnamese text (c) Lena

Bảng 2 trình bày giá trị PSNR của các ảnh sau khi giấu tin của sơ đồ THA, sơ đồ CPT và sơ đồ CTL. Kết quả chỉ ra rằng, giá trị PSNR của lược đồ THA luôn cao hơn CPT và xấp xỉ với CTL.

Bảng 2.2: Giá trị PSNR của các ảnh sau khi giấu tin

Ảnh 8×8 16×16 THA CTL CPT THA CTL CPT Vietnamese text image 24,39 dB 24,37 dB 23,43 dB 30,26 dB 30,22 dB 29,3 dB

English text image 24,33 dB 24,37 dB 23,34 dB 30,25 dB 30,26 dB29,18 dB Lena image 24,45 dB 24,43 dB 23,38 dB 30,26 dB 30,22 dB 29,97 dB Thuật toán trình bày một lược đồ mới THA giấu tin trên ảnh nhị phân. Với mỗi khối điểm ảnh, lược đồ THA có thể nhúng được tối đa bít và biến đổi nhiều nhất một điểm ảnh của khốị Như vậy, khả năng nhúng tin và tính che giấu của lược đồ THA tốt hơn lược đồ CPT và bằng CTL. Ngoài ra, so với hai lược đồ trên thì lược đồ này có khối lượng tính toán ít hơn,thời gian thực hiện nhanh hơn, có lược đồ tính toán đơn giản, dễ cài đặt, triển khai ứng dụng và độ an toàn bảo mật cao hơn.

Chương 3

ỨNG DỤNG KỸ THUẬT GIẤU TIN TRONG VIỆC TRAO ĐỔI, XÁC THỰC ĐỀ THI GIỮA ĐẠI HỌC THÁI NGUYÊN VỚI CÁC

CƠ SỞ ĐÀO TẠO

3.1. Bài toán

Đại học Thái Nguyên là đơn vị đào tạo có uy tín trong và ngoài nước. Nhà trường có nhiều cơ sở đào tạo thành viên đóng trên các địa bàn khác nhaụ Trong quá trình hoạt động, việc trao đổi đề thi giữa các cơ sở đào tạo thành viên và trụ sở chính cần được đảm bảo an toàn và tin cậỵ

Dựa trên kỹ thuật giấu tin và mật mã học, luận văn trình bày giải pháp tổng thể cho bài toán trao đổi đề thi thông qua hệ thống mạng nội bộ hoặc mạng Internet giữa các cơ sở đào tạo của Trường Đại học Thái Nguyên.

3.2. Giải pháp cho hệ thống trao đổi và xác thực đề thi Ạ Lập CSDL đề thi và ảnh

A1. Xây dựng ngân hàng đề thi theo môn học, hệ đào tạo và hình thức thi

Số lượng đề thi trong ngân hàng là hơn một trăm đề thi, luận văn trình bày một số đề thi mẫu trong ngân hàng đề thi:

Đề thi mẫu 1:

ĐẠI HỌC THÁI NGUYÊN Cộng hoà xã hội chủ nghĩa Việt Nam (adsbygoogle = window.adsbygoogle || []).push({});

ĐẠI HỌC CNTT&TT THÁI NGUYÊN Độc lập - Tự do - Hạnh phúc ====o0o====

ĐỀ THI CAO HỌC Môn: Cơ sở dữ liệu Thời gian làm bài: 120 phút

Câu 1 (2 điểm). Thủ tục Split(Elem *a, Elem *&b, Elem *&c,

int k) dưới đây tách danh sách a thành 2 danh sách: danh sách b chứa các phần tử có giá trị trong trường Val chia hết cho số nguyên dương k, danh sách c chứa các phần tử còn lạị Thí dụ, với a→(15)→(2)→(13)→(6)• thì lời gọi

Split(a,b,c,2) sẽ cho ra b→(2)→(6)• và c→(15) →(13)•.

1a. Viết thêm vào vị trí ... để thu được phương án hoàn chỉnh.

void Split(Elem * a, Elem *&b, Elem *&c, int k){ Elem *lastb, *lastc, *e;

// lastb là con trỏ đến cuối danh sách b

Một phần của tài liệu giấu tin trong ảnh và bài toán trao đổi - xác thực đề thi (Trang 36 - 71)