Tiểu luận GIẤU TIN TRONG ẢNH MÀU HƯỚNG CẢI TIẾN THUẬT TOÁN CPT (Có Source Code))

5 1.2K 27
Tiểu luận GIẤU TIN TRONG ẢNH MÀU HƯỚNG CẢI TIẾN THUẬT TOÁN CPT (Có Source Code))

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

Thông tin tài liệu

Giấu tin là kĩ thuật giấu một lượng thông tin số vào trong một đối tượng số khác ( đối tượng vỏ ) đảm bảo tính vô hình của thông tin được giấu và khi nhìn vào đối tượng vỏ sẽ khó xác định được thông tin có giấu trong đó hay không.Có nhiều cách thức tiến hành giấu thông tin trong ảnh bảo mật thông tin và có tính hiệu quả cao, tuy nhiên không phải phương pháp nào cũng áp dụng tốt, đảm bảo tính toàn vẹn của thông tin được giấu cũng như không làm thay đổi ảnh gốc khi có một sô tác động trong việc thay đổi định dạng ảnh, nén ảnh …Áp dụng thuật toán CPT ( Chen Pan Tseng) giấu tin trong khối bít áp dụng cho ảnh đen trắng. Bài viết trình bày hướng phát triển đề xuất thuật toán cho ảnh màu và ảnh đa cấp xám bằng cách sử dụng các bít ít quan trọng LSB (Least Significant Bit) của ảnh.

GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1 THUYẾT MINH CHỦ ĐỀ : GIẤU TIN TRONG ẢNH MÀU HƯỚNG CẢI TIẾN THUẬT TOÁN CPT 1. Giới thiệu Với sự phát triển ngày càng cao của Công nghệ thông tin, phát sinh nhiều mối đe dọa. Do đó, yêu cầu của vấn đề bảo mật được đặt lên hàng đầu. Có rất nhiều phương pháp mã hóa ra đời và đã chứng minh được hiệu quả của nó. Và một trong phương pháp bảo mật mới nhất là giấu tin. Giấu tin là kĩ thuật giấu một lượng thông tin số vào trong một đối tượng số khác ( đối tượng vỏ ) đảm bảo tính vô hình của thông tin được giấu và khi nhìn vào đối tượng vỏ sẽ khó xác định được thông tin có giấu trong đó hay không. Có nhiều cách thức tiến hành giấu thông tin trong ảnh bảo mật thông tin và có tính hiệu quả cao, tuy nhiên không phải phương pháp nào cũng áp dụng tốt, đảm bảo tính toàn vẹn của thông tin được giấu cũng như không làm thay đổi ảnh gốc khi có một sô tác động trong việc thay đổi định dạng ảnh, nén ảnh … Áp dụng thuật toán CPT ( Chen- Pan- Tseng) giấu tin trong khối bít áp dụng cho ảnh đen trắng. Bài viết trình bày hướng phát triển đề xuất thuật toán cho ảnh màu và ảnh đa cấp xám bằng cách sử dụng các bít ít quan trọng LSB (Least Significant Bit) của ảnh. 2. Quy trình thực hiện - Với mỗi byte của điểm ảnh ( có thể là ảnh xám hoặc các loại ảnh màu) trích ra bít ít có giá trị nhất, hay còn gọi là bit LSB là các bít khi bị thay đổi giá trị hầu như không làm ảnh hưởng tới chất lượng của ảnh gốc. Trong bài này sử dụng bít thứ 7. - Chuyển đổi tất cả thông tin cần giấu vào ảnh thành chuỗi dạng bít. - Tạo thành các khối ma trận nhị phân ( Fi ) từ tập hợp bit LSB với kích thước 4x4 (mặc định sẵn ) . - Sinh ngẫu nhiên các ma trận khóa W, K (các ma trận K là khác nhau trong mỗi lần giấu ) , có kích thước bằng kích thước của Fi . - Thực hiện giấu tin vào từng khối Fi theo thuật toán CPT. - Trả các bit LSB về ảnh gốc để tạo thành ảnh mới đã giấu tin. 1 GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1 3. Thuật toán CPT - Input :  Ma trận điểm ảnh Fi có kích thước 4x4,  r là số bít có thể giấu vào Fi ( r thỏa mãn điều kiện 2 r < 4x4 -1, hay r=3).  Ma trận nhị phân K (ma trận khóa) có cùng kích thước với Fi (4x4) được sinh ngẫu nhiên trong mỗi lần giấu tin.  Ma trận trọng số W chứa các phần tử là số nguyên, có giá trị từ 1…2 r – 1 xuất hiện ít nhất một lần trong W. W mặc định trong chương trình :  Lượng thông tin cần dấu bi = b 1 b 2 b 3  Độ chênh lệch trọng số d. - Out put :  Ma trận ảnh Fi ’ đã chứa thông tin giấu vào Thuật toán sẽ thực hiện giấu r bít thông tin vào khối ma trận ảnh Fi bằng cách thay đổi nhiều nhất 2 bít của Fi và Fi được biến đổi thành Fi ’ sao cho luôn thõa mãn điều kiện : SUM ((Fi K) W) mod 2 r = b 1 b 2 b 3 - Algorithm :  Bước 1 : Tính array3 = (Fi K)  Bước 2 : Tính array4 = SUM ((Fi K) W)  Bước 3 : Xác định các tập vị trí S w = {(x,y)| (W(x,y) = w ^ (Fi K)=0) V (W(x,y) = 2 r - w ^ (Fi K)=1)} Trong đó : w lấy các giá trị 1,2…,2 r – 1.  Bước 4 : d= b 1 b 2 b 3 - SUM ((Fi K) W) mod 2 r - Nếu d = 0 ta coi như đã giấu được lượng thông tin bi và khối Fi. Do đó, không cần thay đổi gì trong ma trận Fi. Muốn lấy lại bi từ Fi đã chứa bi ta chỉ cần : bi= SUM ((Fi K) W) mod 2 r 2 GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1 - Nếu d>0 :  Th1 : Nếu chọn được (Fi K)[i,j]=0 mà W[i,j]=d , cần thay đổi bít tại [i,j] trong Fi , Fi[i,j] = 1 để “ SUM ((Fi K) W) mod 2 r “ tăng lên một lượng d. Dừng thuật toán.  Ngoài ra, nếu không xảy ra Th1 mà chọn được (Fi K)[i,j]=1 và W[i,j] = h sao cho h = 2 r – d. Tiến hành cần thay đổi bít tại [i,j] trong Fi Fi[i,j] = 0 để “ SUM ((Fi K) W) mod 2 r “ giảm đi một lượng h. Dừng thuật toán.  Khi 2 trường hợp trên không xảy ra ta xét tới việc cần thay đổi 2 bít trong ma trận ảnh Fi : • Nếu (Fi K)[i,j] = 0, W[i,j] = t & (Fi K)[n,m] = 1 , W[n,m] = h sao cho h = t - d. Tiến hành đổi Fi [i,j] = 1, Fi [n,m] = 0 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán. • Nếu (Fi K)[i,j] = 1, W[i,j] = t & (Fi K)[n,m] = 1 , W[n,m] = h sao cho h + t = 2 r – d . Tiến hành đổi Fi [i,j] = 0, Fi [n,m] = 0 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán. • Nếu (Fi K)[i,j] = 0, W[i,j] = t & (Fi K)[n,m] = 0 , W[n,m] = h sao cho h + t = d . Tiến hành đổi Fi [i,j]=1, Fi[n,m]=1 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán - Tương tự : Nếu d<0 :  Th1 : Nếu chọn được (Fi K)[i,j] = 1 mà W[i,j] = |d| , cần thay đổi bít tại [i,j] trong Fi , Fi[i,j] = 0 để “ SUM ((Fi K) W) mod 2 r “ giảm đi một lượng h= - d (h>0) . Dừng thuật toán .  Ngoài ra, nếu không xảy ra Th1 mà chọn được (Fi K)[i,j] = 0 và W[i,j] = h sao cho h = 2 r – |d|. Tiến hành cần thay đổi bít tại [i,j] trong Fi Fi[i,j] = 1 để “ SUM ((Fi K) W) mod 2 r “ tăng lên một lượng h. Dừng thuật toán.  Khi các điều kiện trên không thõa mãn ta xét tới việc cần thay đổi 2 bít trong ma trận ảnh Fi : • Nếu (Fi K)[i,j] = 0, W[i,j] = t & (Fi K)[n,m] = 1 , W[n,m] = h sao cho h = |d| + t . Tiến hành đổi Fi [i,j] = 1, Fi[n,m] = 0 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán. 3 GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1 • Nếu (Fi K)[i,j] = 1, W[i,j] = t & (Fi K)[n,m] = 1 , W[n,m] = h sao cho h = |d| - t. Tiến hành đổi Fi [i,j] = 0, Fi [n,m] = 0 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán. • Nếu (Fi K)[i,j] = 0, W[i,j] = t & (Fi K)[n,m] = 0 , W[n,m] = h sao cho h + t = 2 r –|d| . Tiến hành đổi Fi [i,j] =1, Fi [n,m] = 1 . Fi ’ tạo ra sau khi đổi các bít trên Fi. Dừng thuật toán. 4. Lấy thông tin ra khỏi ảnh. - Lấy lại các bít LSB từ ImageResult, tạo thành từng ma trận Fi ’ . - Lấy các ma trận khóa K,W đã sử dụng giấu tin để giải mã. - Thực hiện tính bi = SUM ((Fi ’ K) W) mod 2 r - Lưu bi dạng mảng 3 bít. - Copy tất cả bi vào mảng lớn, biến đổi thành dạng byte chứa giá trị ASCCI của kí tự. - Hiển thị thông tin đã giấu. 5. Các phương thức và thuộc tính trong chương trình. Lớp Class_Image : // thao tác với ảnh  public int getktString // đưa ra kích thước dạng byte của thông tin.  public void Gray(Bitmap ImageInput)://tạo ảnh xám  public void LSB(Bitmap ImageInput, string xau): //giấu ảnh vào bít LSB  public bool[] ChangeString(string xau): //đưa ra mảng chứa bít thông tin  BitArray Divide(int temp) ://trả về mảng nhị phân 8bit  byte UnchangeString(BitArray a)://trả về giá trị của từng byte.  byte [] Alter(string beginString, byte[] value): //trả về mảng byte đã giấu tin vào bít LSB.  int NumberByte(Bitmap ImageInput)://kiểm tra số byte của ảnh.  int[] ArrayLSB( byte[] value)://tạo mảng chứa các bít LSB của ảnh  int[,] CPT(int[,] matrix, int gtInformation)// thuật toán CPT.  int[,] matrixW(): //tạo ma trận W  int[,] matrixK(): //tạo ma trận K  public void hideCPT(Bitmap Input, string xau)://giấu ảnh theo CPT  public byte [] AppearCPT(Bitmap Input)://lấy thông tin 4 GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. Lớp TH1  public int[] mang3bit(int b)://tạo mảng 3bit với đầu vào là số nguyên. 6. Một số chú ý - Ưu điểm :  Do sử dụng bít thông tin ít giá trị để giấu nên ảnh sau khi có thông tin không bị biến đổi nhiều.  Tính bảo mật của thông tin giấu trong ảnh cao phụ thuộc vào hình thức lấy bít LSB và các ma trận khóa K, W.  Với bất kì ảnh nào cũng thực hiện được mà không cần quan tâm tới cấu trúc của ảnh như thế nào. - Nhược điểm :  Số lượng thông tin giấu vào ảnh còn ít, trung bình 16 byte ảnh cho giấu 3 bít thông tin.  Thông tin dễ bị mất hoặc không còn chính xác khi có bất kì tác động gì vào ảnh như nén ảnh … 7. Hướng cải tiến trong đồ án - Hoàn thiện hơn chương trình. - Bít thông tin sử dụng nằm trong mặt phẳng cao. - Giấu thông tin dạng file văn bản, dạng Image. - Không sử dụng tới mặt phẳng bít, áp dụng thuật toán trên ngay từng điểm ảnh. - Kiểm tra tính toàn vẹn của thông tin được giấu trong ảnh khi biến đổi ảnh đó thành ảnh xám và biến đổi ngược trở lại . 5 . trình. L p Class_Image : // thao tác với ảnh  public int getktString // đưa ra kích thước dạng byte của thông tin.  public void Gray(Bitmap ImageInput)://tạo ảnh xám  public void LSB(Bitmap. theo CPT  public byte [] AppearCPT(Bitmap Input):/ /l y thông tin 4 GV hướng dẫn : ĐÀO THANH TĨNH Ngô Thị Tiến. L p TH1  public int[] mang3bit(int b)://tạo mảng 3bit với đầu vào l số nguyên. 6 thể l ảnh xám hoặc các loại ảnh màu) trích ra bít ít có giá trị nhất, hay còn gọi l bit LSB l các bít khi bị thay đổi giá trị hầu như không l m ảnh hưởng tới chất l ợng của ảnh gốc. Trong

Ngày đăng: 17/10/2014, 15:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan