Ngoài lĩnh vực an toàn dùng để che giấu sự tồn tại của thông tin, nó còn được dùng trong công nghiệp giải trí và phần mềm như một kỹ thuật đánh dấu watermarking trên các hình ảnh, âm nhạ
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ CÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
BÁO CÁO AN TOÀN MẠNG
ĐỀ TÀI: TÌM HIỂU VÀ VIẾT CHƯƠNG TRÌNH ẨN DỮ LIỆU
Trang 2Mục Lục
Trang 3I.GIỚI THIỆU
Trong thời đại mà công nghệ thông tin và internet phát triển như hiện nay,việc trao đổi thông tin,dữ liệu qua mạng là chiếm 1 phần lớn trong sự phát triển ấy vấn đề bảo mật thông tin đóng 1 vai trò cực kỳ quan trọng có nhiều các giải pháp bảo mật thông tin khi trao đổi trong đó phổ biến nhất là mã hóa dữ liệu trước khi gửi
Có nhiều các phương pháp, giải thuật mã hóa hiệu quả và độ an toàn cao tuy nhiên phương pháp mã hóa sẽ gây tò mò,tăng sự hiếu kỳ đối với những kẻ muốn đánh cắp thông tin,vì vậy có 1 giải pháp khác được đưa ra là ẩn giấu dữ liệu cần trao đổi dưới dạng 1 loại dữ liệu khác qua đó đánh lừa được những người xem không mong muốn
II STEGANOGRAPHY
Ngày nay, trên mạng Internet, những bức tranh hay bản nhạc có vẻ ngoài bình thường (như bức ảnh trên) có rất nhiều, nhưng bên trong nó có thể ẩn chứa những thông tin hoàn toàn bí mật Ưu thế này khiến Steganography ngày càng trở nên phổ biến và được ứng dụng rộng rãi Ngoài lĩnh vực an toàn dùng để che giấu sự tồn tại của thông tin, nó còn được dùng trong công nghiệp giải trí và phần mềm như một kỹ thuật đánh dấu (watermarking) trên các hình ảnh, âm nhạc hay phần mềm số để bảo vệ bản quyền tác giả, ngăn chặn mạo nhận, chống sao chép, xác thực nội dung, cho phép giám sát hay lần ngược dấu vết các bản sao bất hợp pháp
Trong nhiều trường hợp, kỹ thuật này còn được dùng để giám sát sự quảng
bá Ví dụ, bằng cách nhúng các dấu hiệu đánh dấu vào tệp hình ảnh cần quảng cáo và dùng một màn hình giám sát tự động, khi đó sẽ kiểm tra được liệu thông tin cần quảng cáo có được các cơ quan phát thanh truyền hình quảng bá đủ thời lượng như đã thỏa thuận hay không
Trang 4Ngoài những ứng dụng tích cực, Steganography cũng bị những kẻ có ý đồ xấu lợi dụng Hãy hình dung trong một đĩa nhạc “The wall” của Pink Floyd được nhúng các kế hoạch tuyệt mật bằng phương pháp Steganography, đĩa sẽ được chuyển qua biên giới an toàn mà không bị phát hiện Rồi các kế hoạch này
sẽ được truyền công khai trên Internet dưới những tệp hình ảnh hay âm thanh bình thường, lẫn trong hàng triệu thông tin đang lưu chuyển trên nó
Steganography là một phương tiện che khuất dữ liệu mà các thông điệp bí mật được ẩn bên trong các tập tin máy tính như hình ảnh, tập tin âm thanh, video và thậm chí cả các file thực thi Không có ai ngoại trừ người gửi và người nhận sẽ nghi ngờ sự tồn tại của thông tin ẩn trong đó Steganography cũng có thể liên quan đến việc sử dụng mật mã, nơi các tin nhắn được mã hóa đầu tiên trước khi nó được giấu trong một tập tin khác Nói chung, các thông điệp xuất hiện như một cái gì đó khác như hình ảnh, âm thanh hoặc video để truyển dữ liệu bí mật vẫn không bị nghi ngờ
III.ẢNH BITMAP
1. Ảnh BITMAP là gì ? đặc điểm
-Trong đồ họa máy tính,ảnh bitmap hay window bitmap do microsoft đề xuất ,là 1 tập tin hình ảnh khá phổ biến, các tập tin bitmap thường được lưu với phần mở rộng là BMP hay DIB
-đặc điểm nổi bật nhất của ảnh BMP là ảnh không được nén với bất kì thuật toán nào.khi lưu ảnh,các điểm ảnh được lưu trực tiếp vào tập tin- một điểm ảnh sẽ được lưu bằng 1 hay nhiều byte tùy thuộc vào giá trị của ảnh.do đó ,1 hình ảnh được lưu dưới dạng bmp có kích thước rất lớn,gấ nhiều lần so với các ảnh được nén
2 Cấu trúc của tập tin ảnh BITMAP
Cấu trúc tập tin ảnh bmp gồm 4 phần:
Bitmap header( 14 byte):giúp nhận dạng tập tin bitmap
Bitmap information(40 byte):lưu các thông tin chi tiết giúp hiển thị hình
ảnh
Color palette(4 *X byte) với x là số màu của ảnh,định nghĩa các màu sẽ
được sử dụng trong ảnh
Bitmap data:lưu dữ liệu hình ảnh.
Trang 5Bitmap header: có độ dài cố định là 14 byte.
Bitmap information:
Trang 6Color palette (bảng màu):là bảng lưu trữ màu của bmp.bảng này sẽ có giá
trị bằng 0 nếu ảnh có số màu lớn hơn 256 hay ảnh đen trắng Với những ảnh
có số màu nhỏ hơn hoặc bằng 256 thì sẽ gồm 1 bộ có kích thước 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và 1 byte dự trữ.kích thước của
vùng palette = 4* x với x là số màu Vì palette màu của màn hình là R-G-B
nên khi đọc palette màu của bmp thì ta phải chuyển đổi cho phù hợp
Với ảnh 24 bit thì color table =0
ảnh 8 bit thì color table=256*4 byte.4 bit là 16*4 bytes
Bitmap data: vùng dữ liệu ảnh là giá trị của điểm ảnh,kích thước của vùng
dữ liệu ảnh phụ thuộc và độ rộng,chiều cao và kiểu ảnh
Với ảnh 8 bit: Size=width*height
ảnh có số màu lớn hơn 256: size=width*height*số bit trên 1 điểm ảnh
ảnh 24 bit:
mỗi điểm ảnh chiếm 3 byte mô tả 3 thành phần red,green,blue
Như vậy số lượng màu tối đa: 256^3=16.777.216
Trang 7Ví dụ:
ảnh 256 màu(8 bit):
-mỗi điểm ảnh chiếm 1 byte,chỉ số hiệu màu của điểm ảnh này
Số hiệu màu của các điểm ảnh:0,1,2,…255
Màu của điểm ảnh được mô tả trong bảng màu.giả sử byte mô tả điểm ảnh
có giá trị là b và bảng màu được chứa trong mảng P thì thành phần các màu của điểm ảnh này là P[b].R,P[b].G,p[b].B
Ví dụ: 1 điểm ảnh có số hiệu màu là 20, thì trong bảng màu sẽ được lưu là P[20].R, P[20].G, P[20].B
IV.TÌM HIỂU FILE WAV
1. Định dạng wav
Dữ liệu âm thanh trong tập tin WAV là dạng dữ liệu âm thanh không
nén(RAW data) dựa trên định dạng mã hóa PCM (Pulse Code Modulation)
Trang 8Cấu trúc của Wave File thuộc vào lớp file được sử dụng bởi các hàm Multimedia của Windows: đó là RIFF FILE RIFF là chũ viết tắt của Resource Interchange File Format (dạng file trao đổi tài
nguyên) Một RIFF file gồm một hoặc nhiều loại chunks, trong mỗi chunk lại chứa con trỏ chỉ đến chunk kế tiếp
Định dạng WAV cĩ ưu điểm là ấu trúc đơn giản , chất lượng âm thanh được bảo tồn , nhưng
nhược điểm là dùng lượng file khá lớn Nếu được lấy mẫu với tần số 44.1 kHz
(44100 lần/giây), độ phân giải 16 bit (tương đương với chất lượng CD) thì 1 phút âm
thanh sẽ tiêu tốn tới 10 MB , nghĩa là một bài hát khoảng 5 phút sẽ mất dung lượng
50MB ổ cứng
2. Cấu trúc tập tin wav.
Tập tin wav cĩ độ dài phần header là 44 byte, Phần dưới đây liệt kê các chunk
và nội dung của chúng theo thứ tự: vị trí (từ byte ?? tới byte ??), kích thước (?? bytes) và mơ tả
• RIFF chunk
file
Trang 94-7 Kích thước file
“WAVE”
• FORMAT chunk
dấu khoảng trắng, mã ASCII 32
chunk, mặc nhiên là 16
stereo
trị phổ biến là 44.100 (CD), 48000 (DAT) Sample Rate = Số mẫu trên mỗi giây, hoặc Hertz
giây(Sample Rate * BitsPerSample * Channels) / 8
trích (BitsPerSample * Channels)
sâu bit)
• DATA chunk
phần tiếp theo sẽ là dữ liệu âm thanh
thanh
Dữ liệu trên tập tin WAVE tuân theo quy tắc Little-endian
Thí dụ, ta có tần số trích mẫu bằng 44100 Hz Giá trị 4 bytes, hệ thập lục
phân của nó là 0x0000AC44 (mỗi cặp số là một byte) Trên tập tin, con
Trang 10số này sẽ được lưu theo thứ tự: 44 AC 00 00 Như vậy gọi là
Little-endian.(Kiểu sắp xếp bình thường gọi là Big-endian.)
Về cơ bản các file wave thường có cấu trúc các chunk như trên,nghĩa là đều có các chunk RIFF,FORMAT,DATA tuy nhiên thực tế thì có nhiều file wav mà các chunk fmt không phải luôn cùng kích thước,chúng có thể
là 1 trường hợp của WAVEFORMATEX có thêm các byte ở cuối.vì vậy tốt nhất là nên kiểm tra trường subchunk1 size để biết chính xác kích thước của trường này.cũng cần phải lưu ý rằng data chunk không nhất thiết là ở ngay sau format chunk, 1 wav file thướng có nhiều hơn 1 frm chunk và 1 data chunk vì vậy trong demo nhóm sẽ tìm trong file wav chuỗi “data” từ đó xác định trường dữ liệu âm thanh ở đâu để có thể giấu thông tin vào đó
Trang 11V.KỶ THUẬT GIẤU TIN TRONG ẢNH
1. kỹ thuật substitution-sự thay thế.
-phương pháp này sử dụng việc thay thế các thông tin ít quan trọng trong việc quyết định nội dung của file gốc,và dữ liệu được thay thế những phần
đó ít gây ảnh hưởng đến chát lượng file chứa gốc
Mô hình thuật toán:
Mô hình thuật toán Substitution
Ưu điểm của kỹ thuật này là file chứa gốc sau khi giấu tin thì kích thước không thay đổi=> tránh việc bị nghi ngờ dẫn đến lấy cắp thông tin
Nhược điểm là làm giảm chất lượng của file chứa gốc ban đầu ,số lượng tin giấu được cũng bị hạn chế do phụ thuộc vào kích thước file chứa,số bít ít quan trọng của file chứa
2. kỹ thuật giấu tin trong ảnh sử dụng các bít LSB.
Trang 12-nằm trong số các kỹ thuật substitution thì kỹ thuật sử dụng các bít có trọng
số thấp nhất (Least significant bit) là phổ biến nhất.với kỹ thuật này thì nó thay thế các bit được coi là ít quan trong nhất ở các file ảnh chứa gốc.và việc thay thế được tiến hành thei trình tự số lượng byte nhất định
-kỹ thuật này ít ảnh hưởng đến file chứa gốc,với file ảnh thì nó ít ảnh hưởng đến các pixel
Ví dụ:
Màu :
Một ví dụ với ảnh bmp 24 bit như đã nói ở trên thì việc giấu 1 chữ cái “a”
có thể tiến hành như sau: chữ a trong mã ascii là 97 và giá trị nhị phân là
01100001-có 8 bit vì vậy cần 8 byte ảnh để chứa được chữ cái a này theo như thuật toán LSB.8 byte ảnh sau khi giấu chữ a sẽ như sau:
10010010
01010011
10011011
11010010
10001010
00000010
01110010
00101011
Và để lấy lại thông tin giấu thì ta tiến hành đọc 8 bit LSB của các byte tương ứng để tái tạo lại thành 01100001 và đổi lại thành ký tự “a”
Ta có thể thấy được luôn luôn có ít nhiều nhất là 50% số bit trùng nhau giữa thông tin cần giấu và file chứa gốc do đó file chứa gốc ít bị ảnh hưởng về chất lượng
Trang 13VI.DEMO VÀ SOURCE CODE
1. Giao diện chính của chương trình.
- Chương trình được viết bằng ngôn ngữ C# và công nghệ WPF.
Chương trình gồm 4 khung chính:
1 Khung 1: chứa File wav hoặc bmp , các file này sẽ được ẩn bên trong các dữ liệu chúng ta muốn giấu.
- Một textbox để hiển thị đường dẫn file.
- Một button để dẫn đến file cần mở.
- Một Picture box để hiện hình ảnh.
2 Khung 2: chứa file đã được phục hồi-là dữ liệu mà chúng ta muốn giấu
- Một Picture box để hiện hình ảnh.
3 Khung 3: chứa dữ liệu chúng ta muốn giấu.
- 2 radio button để cho phép lựa chọn loại dữ liệu muốn giấu: text hay hình ảnh.
- textbox để nhập pass word.
- textbox để nhập text cần giấu.
- Các button Your Picture để chọn hình ảnh cần giấu,kế bên là textbox hiển thị hình ảnh cần giấu hình ảnh này sẽ được hiển thị ở khung 2.
Trang 14- Các button giấu thông tin, khôi phục thông tin có chúc năng như tên gọi của chúng.
4 Khung 4: gồm 1 picture box để hiển thị hình ảnh sau khi đã giấu dữ liệu vào file ở khung 1.
2 M ỘT SỐ CODE TIÊU BIỂU
-Hàm mã hóa: hàm này có liên quan trực tiếp đến giải thuật LSB Hàm này nằm trong class HideData.
private void Mahoa( FileStream ins, FileStream outs, byte [] message)
{
ThaotacBit thaotacBit = new ThaotacBit ();
int i = 0, j = 0;
int read;
byte write;
while ((read = ins.ReadByte()) != -1)
{
write = ( byte )read;
if (i < message.Length)
{
//Tách từng bít của thông điệp cần giấu.
byte bit = thaotacBit.TachBit(message[i], j++);
//Thay thế các bít tách được vào bít cuối cùng của từng byte của file chứa.
thaotacBit.ThaytheBit( ref write, 0, bit);
if (j == 8)
{
j = 0;
i++;
}
}
outs.WriteByte(write);
}
}
- Hàm Giải mã: Hàm này sẽ lấy lại dữ liệu đã giấu trong file trước đó bằng cách tách ra từng bít cuối cùng trong file và ghi lại từng thành mảng byte và trả về mảng byte đó Hàm này trong class GetDataBack:
- public static int Offset = 0;
- public byte [] Giaima( string inputPath, int offset, int inputLength, int
passLength)
- {
- ThaotacBit thaotacBit = new ThaotacBit ();
- //Tạo luồng mới để ghi thành file mới.
- FileStream outs = new FileStream (inputPath, FileMode Open,
FileAccess Read);
- int header = Offset + passLength * 8;
- //bỏ qua phần header của file.
- outs.Seek(header + offset, 0);
- byte [] docMang = new byte [inputLength * 8];
- outs.Read(docMang, 0, docMang.Length);
- byte [] dulieu = new byte [inputLength];
- int byteIndex = 0, bitIndex = 0, i = 0;
Trang 15- //Tách từng bit cuối cùng của từng byte trong file chứa và lưu vào mảng dulieu.
- while (i < docMang.Length)
- {
- byte bit = thaotacBit.TachBit(docMang[i], 0);
- thaotacBit.ThaytheBit( ref dulieu[byteIndex], bitIndex++, bit);
- if (bitIndex == 8)
- {
- bitIndex = 0;
- byteIndex++;
- }
- if (byteIndex == inputLength) break ;
- i++;
- }
- outs.Close();
- return dulieu;
}
Xin Cảm ơn !!!