IV .2 Mô hình của quá trình giấu tin và giải mã trong ảnh
e) an toàn của thuật toán
Đánh giá độ an toàn của kỹ thuật giấu thông tin trong ảnh trình bày ở trên ta giả sử rằng thuật toán là công khai, cũng giả sử thêm rung ảnh chứa F, giá trị r, và kích thước khối m*n không còn là bí mật. Hơn nữa kẻ địch của ta còn có trong tay cả bản copy của anh kết quá F, nhưng chưa biết khoá và ma trận trọng số. Khi dỏ việc tìm ra thông tin mà ta đã giấu trong F băng thuật toán đã trình bày với các tham số này vẫn gần như là không the đưực.
Thật vậy, ta có tới 11 =2mn khả năng lựa chọn K vù gán
ị _ q V -\ *ọ >- _ Ị ) ! * ( 2 '
khả nàng lựa chọn w và do đó có tới t l * t : cách kết hợp K với w (ta dùnu từ eán hơi \i con số này chưa chính xác hoàn toàn). Khi m*n dứ lỏti thì sô’ lựa
M ọ t sá k ỹ r l u n i l c ù i ' i n t r o i i i Ị t i n l i I Ì Í I M A P K I
chọn này du làm nán lòng bất kv một kẻ tò mò nào. Cháng hạn vứi in=n=4, 1-4 ta cỏ 11=65.536,12= 16*15!*15=313.841.848.320.000.
Trong trường hợp một phần thông tin B dã bị lộ và kẻ địch đã biết được hai khối ảnh F, Fj và hai khối ảnh tươns, ứng sau khi đã lần lượt giấu B, và Bj vào ỉà F, và Fj thì khả năng giải mã được thổng tin là có thể xảy ra nẽu có thêm một số điều kiện.
Nếu F, =Fj thì sự khác nhau giữa B, và Bj sẽ cho biết mối quan hệ của trọng số tại vị trí mà F, khác F ’j và vị trí mà Fj khác F ’j. Hơn nữa nếu có thêm rằng Fj = F ’j =Fj và chỉ có một bit tại vị trí (a,b) trong Fj bị dào, thì khi đó giá trị của W[a,b] là Bj -B, (mod 2r) hoặc Bj -B, (mod 2r ). Điều này có thể dễ dàng thấy được nếu ta đặt:
di=Bj SUM((F; © K) ® W) (mod 2r) =0 dj =B1 - SUMiiFj © K) <8> W) (mod 2r)
Nếu mỗi phần tử của w đổu có thổ được xác định chỉ nhận một trong hai giá trị như trên thì số khả năng có thổ cho w chỉ còn là 2mn' giảm đi đáng kể so với ban đầu.
Khi ma trận trọng số w đã bị xác định thì việc tìm khoá K trở nên dỗ hơn. Chảng hạn như với giả thiết F, = ’Fj =Fj và Fj khác tại duy nhất một vị trí (a,b) khi đỏ Kla,b] có thể tính được bằng cách:
• Nếu Bj-Bj =W[a,b] * 2M thì (Fj © K)fa,hj =0 suy ra K[a,b]=Fj[a,b]. • Nếu không, Bj -B, = -W[a,b] * 2r-1 thì (Fj © K)[a,b] =1 suy ra K[a,b] = 1- Fj[a,bj.
Tóm lại, việc giải mã thông tin càng khỏ khán khi kích thước khối m*n dù lớn và klioá K, ma trận trọng số vv dược cất giữ an toàn. Nếu coi đâv là
M ó t Ml kV iliiilit ( ill till iroiìíỊ (ình B í l M A I ’ N2
một hệ mã mật thì hộ mã mật nàv có klioá bí mật íỉiống như những hệ mã mật có liien.
ị) Phún tích đánh íỊÌá thuật toán
• Thuật toán có thê giấu được r bít vào trong một khôi m*n với diều kiện là 2r < 111*11 mà cần thay đổi nhiều nhất là 2 bít trôn một khôi. Như vậy, thuật toán này đã có cải tiến rất lớn so với những thuật toán khác chi giấu được một bít vào mỏi khối, số lượng thông tin giấu đã nhiều hơn. • Độ an toàn cua thuật toán cũng rất cao 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á.
• Thuật toán này dưưng nhiên cỏ thê áp dụng cho ảnh màu và ảnh da cấp xám. Ta cũng sẽ sử dụng kỹ thuật chọn ra bít ít quan trọng nhất LSB cùa mỗi điểm ảnh để xây dựng ma trận hai chiều các bít 0,1 như trong thuật toán với ảnh đen trắng.
ự) Cải tiến thuật toán
Ta nhận thấy irong tình huống phải thay đổi 2 bit trôn một khối ảnh cũng dẫn đến chất lượng ảnh sẽ bị ánh hưởng. Vì vậy la có the cải tiến thuật toán bàng cách thay đổi giá trị của ma trận trọng số \v sao cho trong mọi tình huống ta chỉ cần thay đổi 1 bít trên một khỏi ảnh, như vậy chất lượng ảnh sau khi giấu tin sẽ tốt hơn. Mỗi lần thuật toán cán thay dổi giá trị của ma trận trọng số, ta cần lưu lại giá trị thay dổi dó và giá trị này cũng được coi là khoá của thuật toán, như vậy độ an toàn của thuật toán càng tăng thêm.
IV.4. (ỉiảm Iihiẻu trên ảnh kết quả.
Trên đây dã trình bày một số kỹ thuật dấu thông tin trong ảnh. Các kv thuật này đểu áp dụng kỹ thuật tách các bit ít quan trọng nhất (LSB) từ các tliểrn anh để giấu thòng tin. Tuy nhiên việc thay đổi các bit này cũim sẽ gây ra nhiễu trên ảnh môi trường, nhát là dổi với ánh đen trắníĩ. Vì vậy làm cách nào đó iiiàni dược nhiều một cách tót nhát cũim là một vấn đc cần quan tàm.
M ộ t s ô k ỹ t h u ậ t c à i t m I r o n y lìn h B Ĩ I M A P S3
Thông thường các bit LSB được lấy lần lượt từ các điểm ảnh cùa các ảnh làm phưưng tiện chứa. Điều này khiến cho việc phân bố thông tin càn giấu trôn ánh có thể không đều, những điểm, ảnh bị thay đổi sẽ tập trung gần nhau do đỏ nhiễu dỗ nhìn thấy hơn so với khi mà các điểm ảnh bị thay đổi nằm rủi rác trên toàn bộ bức ảnh.
Để các điểm ảnh bị biến đổi phân bố đểu trẽn ảnh thay vì lấy các bit LSB liên tiếp ta chỉ lấy các bit LSB cách nhau X vị t r í . X được chọn sao cho số bit LSB lấy ra đủ đ ể giấu t h ô n g tin ban đầu và c ả g i á trị X ( Giá trị X cũng cán được giấu vào một vị trí nào đó trong ảnh).
Ta có thể xác định giá trị của X như sau (x là một số nguyên)
P: Tổng số bit LSB có thể lấy từ ảnh môi trường, được xác định dựa vào kích thước ảnh và sô' bít dành cho mỗi điểm ảnh
r: Số bit dấu trong mỗi khôi ảnh.
B: Tổng số bit thông tin cần dấu, là bội của r. NN: =n*m.
x: khai báo kiểu số nguyên (4 byte).
IV.5. Kết quả thực nghiệm và đánh giá.
Ta nhân thấy ở kỹ thuật thứ nhất vào thứ hai thì thuật toán chỉ cho phép tại mỏi khối giấu được 1 bit thông tin. Vì vậy kích thước khối càng lớn thì số bit giấu càng ít.
Còn đối với thuật toán dấu thông tin trong ảnh trình bày ở kỹ thuật thứ 3 cho phép dấu nhiều nhất [log2(mn+l)] bit dữ liệu vào một khối ảnh kích thước m*n, tức là với m*n bit môi trường có thê dấu được [log2(mn+l)] bit dữ liệu. Do đó với kích thước khối cố định thì tỉ lệ dấu dữ liệu lớn nhất có thể là :
X < (P*r) / (B * NN ) Trong đó
n in
M ộ t St) k x t h u ậ t c à i ù n t r o i n Ị à ỉ i h B Í Í M A I ’ X - *
Nhận thây đáy là một hàm đơn điệu giảm theo m,n, vì vậy muốn có tí lệ dấu tin càng lớn thì m*n càng phải nhỏ.
Tuy nhicn, ta cán lưu ý rằng độ an toàn cua thông tin lại phụ thuộc ti lệ thuận vào kích thước khôi mù ta dùng: kích thước khôi càng lớn độ an toàn càng cao. Do đó ti lệ dâu tin sẽ ti lộ nghịch với độ an toàn và việc chọn kích thước khối lớn sẽ làm tăng độ an toàn nhưng lại giảm tỉ lệ dâu tin và ngược lại, kích thước khối nhỏ sẽ làm tăng tỉ lộ dấu tin nhưng lại làm giảm độ an toàn. Thòng tlurờng ta nên chọn kích thước khối sao cho [log2(mn+l)] = 8 hoặc bàng 4, tức là dâu được 8 bit hay 4 bit dữ liệu vào mỗi khối ảnh kích thước inn.
Dưới đây là một số kết quả thu được khi liến hành giấu tin vào các bức anh đen trắng, ảnh màu và ảnh đa cấp xám với các tham số khác nhau bằng các kỹ thuật khác nhau.
Tên file ả n h Kích thước S ố bit/ 1 pixel File thông tin Kích thước
Mikey.bmp 21 K 1 Test.txt 742 byte
Tcxt.bmp 277 K 8 Tcalc.doc 3 K
Lcna.bmp 258 K 8 Tcalc. doc 3 K
Hoado.bmp 4,084 K 24 BC_NCKH.doc 40 K
Hoado.bmp 4,084 K 24 Mikey.bmp 21 K
Với kết quả thu dược như trên, ta có một số nhận xét như sau:
- Đôi với ảnh đen trắng, kích thước của ảnh thường nhỏ. Vì vậy sô' lượng tin giàu cũng rất ít và chất lượng ảnh sau khi giấu tin thường không tốt.
- Đối với ảnh màu, nhất là các ảnh màu có kích thước lớn thì số lượng tin giấu được nhiều hơn (kích thước file thông tin có thể tính bằng KB) và ảnh sau khi giấu tin thường không thây sự thay đổi bằng hệ thống mắt người.
M ộ t s ô k ỹ t l i u ậ t c à i till troiiíỊ ả n li f í f l M A I ’ K5
T ong ket chương
Trong chương này, chúng ta đã tìm hiêu chi tiết 3 thuật toán giấu tin từ dơn giản đến phức tạp. Với mỏi thuật toán, sau phần trình bày chi tiết đều có phán bình luận, đánh giá phân tích và phán cải tiến thuật toán. Các thuật toán dồu đơn gián hoá cho môi trường ảnh đen tráng, nhưng thực tế hoàn toàn có thể áp dụng cho ảnh màu hoặc ảnh xám. Các kỹ thuật giấu tin này hoàn toàn có thế kết hợp với mã hoá để tăng thêm tính bảo mật. Chẳng hạn như ưước khi giấu tin chúng ta mã hoá tin cần giấu, sau khi giải tin từ ảnh, ta lại giải mã để thu dược tin ban đầu. Cuối cùng là đưa ra được kết quả thực nghiệm của các kỹ thuật giấu tin nói trên áp dụng cho một số loại ảnh BITMAP khác nhau.
M ặ t s o k ỹ t h u ậ t c à i l u i t r o i i í ’ à n h l i ỉ l M A P S ( '
PHAN KE 1 LUẠN
Luận vãn dã trình bày về một còng imliệ cho vấn de báo vệ bản quyền, xác nhận thông tin và điều khiển truy cộp ứng dụng trong an toàn và bảo mật thông tin. Đó chính là còng nghệ giấu thông tin trong các nguồn đa pliưưng tiện nói chung, và trong ánh số nói riêng. Cụ thê hơn luận văn đã trình bày một số một số khái niệm liôn quan lới việc che giấu thông tin trong ánh số (anh BITMAP) và cũng trình bày một số thuật toán giàu tin trong ảnh đen trắng, tròn cơ sở đó phát triển và cải tiến thuật toán cho việc giấu tin trong ảnh màu và ảnh đa cấp xám theo hai hướng: tăng lượng thông tin giấu và nâng cao chất lượng ảnh dã mang thông tin.
Kỹ thuật giấu thông tin trong ảnh là hướng nghiên cứu chính của luận văn. Mặc dù so với hai kỹ thuật giấu tin trong Audio và giấu tin trong Video thì kỹ thuật giấu thông tin trong ảnh bị hạn chế về mặt kích thước nhưng ảnh số vẫn dược lựa chọn cho việc giấu thông tin vì ảnh số cho phép thực hiện các thao tác tới từng điểm ảnh đơn lẻ và việc xử lý tới từng điểm ảnh như vậy là trong phạm vi cho phép. Ngoùi ra hộ thống thị giác của con người có khả năng nhạy cảm thấp đối với những thay đổi nhỏ, vì vậy việc giấu tin trong ảnh có làm thay đổi giá trị của các điểm ảnh thì cũng không gây ra sự chú ý. Tuy nhiên, việc giải mã để thu được thông tin gốc chi được đảm bảo thành cồng nếu ánh mang thông tin không bị sửa đổi dù chi một bit.
Vãn đồ đật ra ỉà làm sao có the giấu được nhiều thõng tin trong ảnh mà chất lượng ảnh vẫn đảm bảo và liệu có thể thu lại được thông tin gốc dựa trên một bản in màu của ảnh mang thông tin hay không? Đày chính là hướng phát triòn của luận văn.
Do kiến thức còn nhiều hạn chế và hạn chế về thời gian nghiên cứu nên luận văn không tránh khỏi thiếu sót. vì vậy rất mong nhận dược sự góp ý cua các thầy, cò giáo và các bạn.
M ọ t s ô k ỹ t h u ậ t c à i l i u i r o i i i Ị à i i h B ĩ ỉ M A P
TÀI LIỆU THAM KHẢO
11 ] Lương Mạnh Bá, Nguyễn Thanh Thuý, Nhập món xử lý ảnh so, tr.42-73, NXB Khoa học và kỹ thuật.
[2J Nguyễn Xuân Huy, Trần Quốc Dũng, Giấu till và íliuỷ ấn trong môi trường da phương tiệiùTrung tâm thông tin tư liệu, TTKHTN - CN Quốc gia.
[3] Chu ích (2003-2004), Steganography — Kỹ thuật giấu thông tin - Một lĩnli vực mới dầy hấp dần, Tin học và chỉ dẫn, số 128-135.
[ 4 ] 1.J Cox, M.L.Miller, and A.L.McKellips, Watermarking as communications with side information, Proceedings o f the IEEE 87, pp 1127 - 1141, July 1999.
[5] M.Wu, E. Tang, B.Liu: “Data Hiding in Digital Binary Image”, IEEE Inter. Conf. on Multimedia & Expo (ICME’00), NewYork City, 2000.
[6] M.Wu, Digital Watermarking Using Shufling”, IEEE Inter. Conf. on Image Processing (ICIP’99), Kobe, Japan, 1999.
[7] Stefan Katzenbeisscr, Fabien A.p. Pctitcolas, information hiding, techniques fo r steganography and digital watermarking, June, 1999.
18] Forum của những người nghiên cứu về Watermarking: www.watermarkingwoiid.oru
[9] Luận án TS và các bài nghiên cứu của MinWu
- http:// www.c e. pnnce ton. ed u/ ~mi nvvi i/
- http://\v\vw.ee.printccton .cd u/ ~mi nwu/ rcs ear ch .l it ml
M ộ t s n k \ t h u ậ t c ủ i fill I r o n y (in h ỈU ỉ'M A P KX
PHỤ LỤC
MỘT SỐ MODI L CHÍNH CỦA CIIƯƠNG TRÌNH
Cài dạt chương trình
Clurưrm trình được cài đặt với mục đích thể hiện các thuật toán đã đượco . néu ra irong chương ỈV bao gồm:
1. Phép chuyên dữ liệu các file thông tin cần giấu sang dạng nhị phân. 2. Phép tách ảnh thứ cấp từ ảnh môi trường.
Phép tách ảnh thứ cấp từ ảnh môi trường thực hiện việc tách các bit ít đặc trưng nhất của ảnh được chọn lưu vào một file. Với các ảnh 1,4,8 bit màu mỗi điểm ánh chỉ tách ra 1 bit, với ảnh 16 bit màu, mỗi điểm ảnh cũng chỉ tách ra một bit là bit cao nhất của byte thứ hai trong hai byte biểu diễn một điểm ảnh. Với ảnh 24 bit màu số bit tách ra từ mỗi byte biểu diễn điểm ảnh được xác d ị i . i i bởi một số nguyên xác định.
3. Các phép giấu thông tin vào ảnh được chọn theo các thuật toán đã nêu. 4. Phép trả ảnh thứ cấp vào ánh môi trường.
Trả lại ảnh môi trường các bit đã lấy ra theo đúng trật tự. 5. Phép lấy thông tin từ ảnh kết quả.
6. Phép chuyển dữ liệu ngược lại từ file nhị phân sang dạng file thông tin gốc ban đầu.
Khai báo cấu trúc cho phấn tiêu đé của file ảnh B IT M A P
typedef unsigned char BYTE; typedef struct Ị
unsigned int ID; long File_Size; long Reserved; long Offset Bit;
M ộ t s ô k ỹ t h u ậ t c à i till t r o n g ả n h B í í M A P 89
long ISize,Width,Height; unsigned ini Planes, BitCount; long Compression, ImagcSize;
long XPelsPerMeter, YPelsPerMeler; long ColorsUsed, Colorlmportant;
} BitmapHeader;
Khai báo cấu trúc cho phẩn bang mầu của ảnh BITM AP.
typedef struct {
signed char Red, Green, Blue, Reserved; } TRGB;
Định nghĩa kích thước của các khới ảnh giấu tin.
#define m 8 #define n 8 #dcíine NN m*n #del'ine r 5
int w[m][n], k[m][n],buf[m][n], sokhoi;
Thù tục đấm nliận nhiệm việc chuyên đổi một file dữ liệu gốc sang file nhị phàn đế thực hiện giấu tin theo từng B IT .
void Convert2Bin(char *text, char *bintext) { FILE *t, *bin;
int d,i,c,b;
if((t=fopen(text,"rb"))==NƯLL) { printf("Khong the mo file %s",text); getchO;
exit(l);
if((bin=fopen(bintext,"wb"))==NULL) Ị
Một s ô k x t h u ậ t c à i lin troiìiỊ lìn h BÍ IMAI ’
printf("Khong the mo ĩile %s".hintcxt); gctchO; c x i t ( l ) ; ) d=(); while ((c=getc(t))!=EOF) { d+— i ; for(i=7;i>=0;i—) { b = ( c » i ) & 1; putc(b,bin); fflush(stdin); fclose(t); fclose(bin);
Thủ tục làm nhiệm vụ sinh ra ma trận khoá cỡ m X n. Ma trận khoá là ma trận nhị phán được sinh ngẫu nhiên
void laokhoaO I int i,j; randomizc(); for (i=0;i<m;i++) for(j=0;j<n;j++) k[i][j]=random(2); return; N g u y ề n T l i ị T h a n h B ì nil - L u ậ n v ú II t ó t n g h i ệ p C a o liọ i
M ộ t s ô k ỹ t h u ậ t c à i till t r o n g ả n h l ì í í M A I ’ (J1
Thủ tục này làm nhiệm vụ sinh ra ma trận trọng số cữ m X n theo cách của thuật toán qui định.
void MatranWO int i,j,p; p=l; for (i=0;i<8;i++) for(j=0;j<8;j++) { w[i][j]=p; P + + ; if (p==32) p=l; } return;
Thủ tục đảm nhiệm việc tách các bit ít quan trọng nhất trong các byte chứa dữ liệu ảnh và ghi các bit này vào một file nhị phán.
void TachBit(char *picl, char *pic2) í BitmapHeadcr bmh: TRGB ClrTab[255J; int ClrTabSize; FILE *pl, *p2; N g u y ễ n T hị T h a n h Bình - l.nận ván tốt Mịhiệp C a o liọc