Tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụngTìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS HỒ VĂN CANH
THÁI NGUYÊN - 2018
Trang 3LỜI CAM ĐOAN
Trong quá trình làm luận văn tôi hoàn toàn sử dụng những kiến thức đã tổng hợp được từ các nguồn tài liệu có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin chịu trách nhiệm về những lời nói trên và nhận mọi hình thức
kỷ luật theo quy định nếu như làm sai
Thái Nguyên, tháng 06 năm 2018
Vũ Thị Tâm
Trang 4LỜI CÁM ƠN
Để hoàn thành luận văn “Tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng” em đã nhận được sự hướng dẫn và giúp đỡ nhiệt tình của nhiều tập thể và cá nhân
Trước hết, em xin bày tỏ lòng biết ơn chân thành đến ban lãnh đạo cùng quý thầy cô trong khoa Công nghệ thông tin – Trường Đại học Công nghệ và truyền thông, Đại học Thái Nguyên đã tận tình dạy dỗ, truyền đạt kiến thức, kinh nghiệm và tạo điều kiện thuận lợi cho em trong suốt thời gian học tập và thực hiện đề tài
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng dẫn
TS Hồ Văn Canh, người đã gợi cho em những ý tưởng về đề tài, đã tận tình hướng dẫn và giúp đỡ để đề tài được thực hiện và hoàn thành
Xin trân trọng gửi đến gia đình, bạn bè và người thân những tình cảm tốt đẹp nhất đã giúp đỡ động viên trong suốt khóa học và hoàn thành luận văn
Thái Nguyên, tháng 06 năm 2018
Học viên
Vũ Thị Tâm
Trang 5DANH MỤC HÌNH
Hình 2 1: Hai lĩnh vực chính của kỹ thuật giấu thông tin 19
Hình 2 2: Lược đồ chung cho quá trình giấu tin 20
Hình 2 3: Lược đồ chung cho quá trình giải mã 21
Hình 2 4: Phân loại các kỹ thuật giấu tin 24
Hình 2 5: Chi tiết khối bytes tiêu đề tập tin BMP 28
Hình 2 6: Chi tiết khối bytes thông tin tập tin BMP 29
Hình 2 7: Sơ đồ giấu tín SES 36
Hình 2.8: Minh họa giấu bit b = 0 vào khối nhị phân B 39
Hình 2 9: Minh họa giấu dãy bit M = 110 vào 4 khối ảnh nhị phân 44
Hình 3 1: bảng mã 26 chữ cái latinh 47
Hình 3 2: Giao diện chính của chương trình 62
Hình 3 3: Giao diện giấu tin 62
Hình 3 4: Giao diện giấu file dữ liệu 63
Hình 3 5: Giao diện tách tin 63
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
1 BMP Basic Metabolic Panel - Ảnh bipmap
2 GIF Graphics Interchange Format - Ảnh có định dạng GIF
3 JPEG Joint Photographic Experts Group - Ảnh nén JPEG
4 LSB Least Significant Bit - Bit có ý nghĩa thấp nhất
5 PNG Portable Network Graphics - Ảnh nén PNG
6 PoV Pairs of Values - cặp giá trị điểm ảnh chẵn/lẻ
7 HVS Human Vision System - Hệ thống thị giác của con người
8 RGB Red – Green – Blue
Trang 7MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
DANH MỤC HÌNH iii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iv
MỤC LỤC v
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Đối tượng nghiên cứu 1
3 Bố cục của luận văn 1
CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ SỞ 3
1.1 Đổi cơ số 3
1.2 Độ phức tạp của thuật toán 5
1.3 Phép chia hết và thuật toán Euclidean 6
1.4 Phần tử nghịch đảo 8
1.4.1 Định nghĩa 8
1.4.2 Thuật toán tìm nghịch đảo của a-1 mod m 9
1.5 Đa thức nguyên thủy 9
1.5.1.Bậc của một phần tử 9
1.5.2 Hàm – Euler 10
1.5.3 Phần tử nguyên thủy 11
1.5.4 Đa thức nguyên thủy 12
1.5.5 Mã Hamming ( The Hamming Codes) 14
Trang 81.5.6 Mật mã vòng tuyến tính 15
1.5.7 Đa thức nguyên thủy trong trường hợp GF(2) có cấp từ 2 đến cấp 7 16
CHƯƠNG 2: TÌM HIỂU TỔNG QUAN VỀ GIẤU TIN VÀ MỘT SỐ THUẬT TOÁN GIẤU TIN MẬT(STEGANOGRAPHY) 18
2.1 Tổng quan về giấu tin và phân loại 18
2.1.1 Định nghĩa 18
2.1.2 Mục đích của giấu tin mật 19
2.1.3 Mô hình kỹ thuật giấu thông tin cơ bản 20
2.1.4 Các đối tượng dùng để giấu tin 21
2.2 Giấu tin trong ảnh 24
2.3 Tổng quan ảnh BITMAP (BMP) 26
2.3.1 Giới thiệu ảnh BITMAP (BMP) 26
2.3.2 Cấu trúc ảnh BITMAP (.BMP) 27
2.4 Một số thuật toán giấu tin trong ảnh và chất lượng 32
2.4 1 Kỹ thuật giấu tin LSB 32
2.4.2 Kỹ thuật giấu tin SES 34
2.4.3 Kỹ thuật giấu tin theo khối bit 38
2.4.4 Thuật toán Wu-Lee 41
CHƯƠNG 3: TÌM HIỂU XÂY DỰNG MỘT THUẬT TOÁN GIẤU TIN MẬT TRÊN ẢNH KỸ THUẬT SỐ 46
3.1 Xây dựng ma trận 4 bit 46
3.1.1 Chọn đa thức nguyên thủy trong trường GF(2) 46
Trang 93.1.2 Xây dựng không gian các nghiệm của p(x) 46
3.1.3 Lập bảng mã 26 chữ cái latinh 46
3.2 Xây dựng thuật toán nhúng 48
3.2.1 Xây dựng ma trận sinh G 48
3.2.2 Đổi thông điệp m = m1… mn sang dãy nhị phân theo bảng A 48
3 3 Trích chọn (extraction) 50
3.4 Đánh giá độ an toàn của hệ thống 53
3.5 So sánh độ an toàn của 2 hệ thống 57
3.6 Nhận xét đánh giá 59
3.7 Chương trình thử nghiệm 60
3.7.1 Môi trường cài đặt 60
3.7.2 Mô hình hệ thống 60
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 66
Trang 10MỞ ĐẦU
1 Đặt vấn đề
Hiện nay có nhiều thuật toán giấu tin mật và thủy vân đã được công bố [1] Trong đó cũng có nhiều thuật toán giấu tin mật đã bị phát hiện bằng các kỹ thuật thống kê toán học Vì vậy một vấn đề đặt ra là: Đánh giá mức độ an toàn của một thuật toán giấu tin như thế nào? Đặc biệt là hệ thống giấu tin mật phục vụ an ninh quốc phòng Ta biết rằng, lượng thông tin được giấu vào trong một ảnh là rất quan trọng nhưng phải đảm bảo được mức độ an toàn của hệ thống giấu Đề tài tập trung tìm hiểu và xây dựng một thật toán giấu tin mật vào ảnh kỹ thuật số sao cho lượng thông tin giấu được nhiều và đồng thời có mức độ an toàn cao, tức là ảnh có chứa tin mật và ảnh gốc khác nhau có thể chấp nhận được để ứng dụng được trong nhiều lĩnh vực khác
nhau Đó là mục đích và ý nghĩa của đề tài luận văn: Tìm hiểu xây dựng một thuật toán giấu tin mật và ứng dụng Trong phạm vi đề tài luận văn có giới
thiệu một hệ thống steganography mới và đồng thời đưa ra so sánh về mức độ
an toàn giữa hệ thống được đề xuất và hệ thống đã được công bố
2 Đối tượng nghiên cứu
Đề tài tập trung nghiên cứu các đối tượng sau đây:
- Tập trung tìm hiểu, đánh giá ưu nhược điểm của một số thuật toán giấu tin mật trong ảnh kỹ thuật số
- Xây dựng thuật toán giấu tin mật mới
3 Bố cục của luận văn
Nội dung của luận văn gồm có: Phần mở đầu, ba chương chính, kết luận, mục lục và tài liệu tham khảo Nội dung cơ bản của luận văn được trình bày như sau:
Trang 11Phần mở đầu: Nêu lý do chọn đề tài, đối tượng nghiên cứu và bố
cục của luận văn
Chương 1: MỘT SỐ KIẾN THỨC CƠ SỞ
Chương này sẽ trình bày một số kiến thức toán học bổ trợ
Chương 2: TỔNG QUA VỀ GIẤU TIN VÀ MỘT SỐ THUẬT TOÁN GIẤU TIN MẬT TRONG ẢNH KỸ THUẬT SỐ
Chương này sẽ phân tích, đánh giá một số thuật toán giấu tin mật đã được công bố:Kỹ thuật LSB, Kỹ thuật SES, Kỹ thuật giấu tin theo khối bit, thuật toán Wu-Lee
Chương 3: TÌM HIỂU XÂY DỰNG MỘT SỐ THUẬT TOÁN GIẤU TIN MẬT
Chương này sẽ trình bày thuật toán đề xuất và đánh giá độ an toàn của từng thuật toán Cài đặt thử nghiệm việc giấu tin dựa theo thuật toán đề xuất
Trang 12CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ SỞ 1.1 Đổi cơ số
Số mà chúng ta sử dụng hàng ngày (0, 1, 2, 3, …, 7, 8, 9 ) là các số được
biểu diễn theo cơ số 10
Ví dụ 1:
Tóm lại, một số n tổng quát viết theo cơ số 10 bao giờ cũng có thể được
biểu diễn một cách duy nhất dưới dạng:
trong đó, , nói cách khác ai є{0,1,2,…,9} với i = 0,1,2, ,k-1; với ak ≠ 0
Ứng với mỗi số n, biểu diễn ở (1) là duy nhất Do đó, thay vì viết số n, ta
viết n dưới dạng: , con số 10 biểu thị cơ số Trong
thực tế ta cần số n biểu thị dưới dạng có số b tùy ý như sau:
hay viết ngắn gọn là:
, tức là :
Nếu b = 2, ta có số n biểu diễn dưới dạng cơ số 2 Khi đó:
Trang 13Trường hợp thì thay là những con số mà người ta có
Mệnh đề: Xét không gian các đa thức V, cấp n tùy ý trên trường vô
hướng K nào đó Ta xét một tập hợp S = { 1, x, x2, x3, , xn } trong V Khi
đó, S là một cơ sở trong V
Chứng minh: Ta chỉ cần chứng minh rằng các vector trong S là độc lập
tuyến tính Muốn vậy, cho α0, α1, α2, , αn và xét tổ hợp tuyến tính :
α0 + α1x + + αn = 0 (1)
Trang 14Ta cần chứng minh rằng khi đó αi = 0, đối với mọi i = 0,1, 2, ,n
Thật vậy, giả sử, n= 1, khi đó, lấy đạo hàm 2 vế của (1), ta có α1 = 0 và
do đó, α0 = 0 Giả thiết đẳng thức (1) đúng cho n = k -1, ta sẽ chứng minh rằng đẳng thức (1) đúng cho cả n = k Bằng cách lấy đạo hàm của đẳng thức (1) n-lần , ta suy ra αn = 0 Nhưng theo quy nạp ta đã có α0, α1, , αn-1 = 0, vậy mệnh đề được chứng minh
1.2 Độ phức tạp của thuật toán
Định nghĩa 1: Cho và là hai hàm nhiều biến số xác định trong miền gồm tập hợp các bộ k số nguyên dương Giả sử
có tồn tại hai hằng số B và C thỏa mãn
thì ta nói rằng f bị chặn bởi g và viết là
c Ký hiệu f(n) là số k thành phần (digits) nhị phân trong n ( ví dụ n =
10110 thì => f (n) = 5 ) Khi đó có thể dễ dàng thấy rằng f(n) = O(log n) Chú ý nếu viết f(n) = O(1) thì có nghĩa là f(n) bị chặn bởi một hằng số nào
Trang 15Một cách tổng quát có:
Thời gian(nxm) = O((log n)(log m))
Ví dụ 7: Hãy ước lượng thời gian cần thiết để đổi một số nguyên k_bit
thành cơ số 10
Giải: Cho n là một số nguyên được viết dưới dạng cơ số nhị phân k_bit Thuật tóan đổi như sau: Chia số n cho 10 = (1010)2 Còn lại bằng một trong các số nguyên 0, 1, 10, 11, 100, 101, 110, 111, 1000 hoặc 1001
Thời gian chuyển số nhị phân n k_bit về một số nguyên cơ số 10 là: O( log2n)
Định nghĩa 2: Một thuật toán để thực hiện giải trên máy tính các số
nguyên n1, n2, …, nr có k1, k2, …, kr bít tương ứng được gọi là thuật toán thời gian đa thức nếu có tồn tại các số nguyên d1, d2, …, dr sao cho số các toán tử bít đòi hỏi để biểu diễn thuật toán là
1.3 Phép chia hết và thuật toán Euclidean
Cho trước hai số nguyên a và b và một số nguyên dương ( m ≥ 1) Ta nói rằng a chia hết cho b theo modulo m nếu a – b = k.m với k = 0, 1, 2 , và
ta viết a ≡ b mod m
Giả sử p là một số nguyên tố, α là một số nguyên không âm Khi đó, chúng ta ký hiệu pα|| b để chỉ ra rằng pα là lũy thừa cao nhất α của p mà b chia hết cho pα, tức là b chia hết cho pα và b không chia hết cho pα+1 Và trong trường hợp đó, ta nói rằng pα là ước đúng của số b
Nếu ab chia hết cho số nguyên tố p khi đó, hoặc a chia hết cho b (ta ký hiệu p|a) hoặc b chia hết cho p( p|b)
Trang 16Nếu m|a và n|a nếu m,n là số nguyên tố sao cho UCLN(m, n) = 1 Khi
đó m.n|a
Chú ý! Ta dùng kí hiệu (a, b) để chỉ ước chung lớn nhất của a và b Tức
là thay vì viết UCLN(a, b) ta viết (a, b)
Thuật toán Euclidean và thuật toán Euclidean mở rộng
Trước hết, ta trình bày bổ đề sau:
Bổ đề 1: Cho m,n là những số nguyên, ta giả sử m ≥ n Ta chia m cho n và
nhân được kết quả:
khi đó
Bổ đề 2: (m, 0) = m với mọi m nguyên
Từ bổ đề nêu trên, ta có thuật toán tìm (m, n) như sau:
Input: Cho trước m và n ( già sử m ≥ n) là hai số nguyên
Output: Tìm (m, n)
Thuật toán:
Bước 1: Nếu n = 0, m là đáp số!
Mệnh đề 1: Số các phép toán trong thuật toán Euclide không vượt quá
2log2n
Mệnh đề 2: Nếu (m, n) = d thì có tồn tại hai số nguyên x, y sao cho:
mx + ny = d
Trang 17Từ mệnh đề 2, ta có thuật toán Euclide mở rộng tìm 3 số x, y, d sao cho:
Cho m là một số nguyên dương và a là một số nguyên Nếu tồn tại một
số nguyên b sao cho ab ≡ 1 mod n thì b được gọi là phần tử nghịch đảo của a theo modulo m
Ta thấy rằng, nếu b là phần tử nghịch đảo của a theo modulo m thì mọi
số nguyên có dạng b + km cũng là nghịch đảo của a, trong đó k = 0, ±1, ±2, Tuy nhiên trong các số có dạng b + km, có tồn tại duy nhất một số nguyên dương nằm giữa 0 và m và số đó được kí hiệu là a-1 mod m
Trang 181.4.2 Thuật toán tìm nghịch đảo của a -1 mod m
Cho a, m > 0, ta kí hiệu d = ( a, m)
Khẳng định 1: Điều kiện cần và đủ để tồn tại nghịch đảo a-1 của số a là
d =1
Chứng minh: Thật vậy,
Giả sử d > 1, khi đó ta có: a = a1.d, m = m1.d với a1, m1 nguyên
(dương ) Nếu tồn tại a-1 thì:
Vì a1, a-1, k, m1 nguyên nên phải là số nguyên Nhưng do
d> 1 nên hệ thức (1) không thể xảy ra Nó chỉ xảy ra khi và chỉ khi d = 1 Đó
là điều ta cần chứng minh
Chú ý! Sử dụng thuật toán Euclide mở rộng ta có thể tìm được a-1, nếu
d = 1 và khi đó giá trị a-1 nằm trong ô a2 của thuật toán
1.5 Đa thức nguyên thủy
Trước khi trình bày khái niệm đa thức nguyên thủy, chúng ta sẽ giới thiệu
qua về phần tử nguyên thủy
1.5.1 Bậc của một phần tử
Định nghĩa 1: Cho a và m là 2 số nguyên dương tùy ý Khi đó, nếu tồn tại
một số nguyên dương bé nhất mà thỏa mãn điều kiện: thì số h được gọi là bậc của phần tử a theo modulo m và viết là:
Trang 19Chú ý! Không phải với mọi cặp số nguyên dương a, m đều tồn tại số h
thỏa mãn điều kiện (2) Cụ thể ta có mấy khẳng định sau đây:
Khẳng định 1: Cho hai số nguyên dương a và m Để tồn tại số guyên
dương h có tính chất , điều kiện cần và đủ là (a, m) = 1 { (a, m)
là kí hiệu ước số chung lớn nhất của a và m}
Chứng minh: Thật vậy, giả sử trái lại, (a, m) = d ≥ 2 và có tồn tại h
nguyên dương mà ah ≡ 1 mod m Nhưng do giả thiết phản chứng, ta có
a = d.a1 , m = d.m1 với a1, m1 nguyên
Định nghĩa 2: Ta kí hiệu với m là số
nguyên dương nào đó Khi đó hàm (m) – Euler được định nghĩa là:
(Lực lượng của tập hợp ) Như vậy hàm (m) – Euler chính là số phần tử mà nguyên tố với m ( trừ x = 0)
Trang 20Các tính chất của hàm (m)
- Tính chất 1: (1) = 0
- Tính chất 2: ) với p là ước số nguyên tố của m
- Tính chất 3: Nếu với p1, p2, , pk là các số nuyên tố khác nhau còn e1, e2, , ek ≥ 0 là các số nguyên nào đó Khi đó:
Định nghĩa 3: Cho g là một số nguyên dương và m là một số nguyên
(m≥ 2) sao cho (g, m) = 1 Nếu ϕ(m) là bậc của g theo modulo m thì g được gọi là phần tử nguyên thủy trong
Một số định lý quan trọng:
Trang 21- Định lý 1: Xét vành , m ≥ 2 Khi đó, trong có ít nhất một phần
tử nguyên thủy khi và chỉ khi m = 2, 4, pk hoặc m = 2qk Trong đó p là số nguyên tố và q là số nguyên tố lẻ và k ≥ 1 là một số nguyên
- Định lý 2: Cho g và p, trong đó p là số nguyên tố Khi đó, g là một
phần tử nguyên thủy trong nếu và chỉ nếu đối với mọi q
là ước số nguyên tố của p – 1
Một cách tổng quát, ta có một số định lý sau:
- Định lý 3: Cho với p1, p2, ., pk là những số nguyên tố phân biệt, còn ei ≥ 1 là những số nguyên, i = 1, 2, ., k Khi đó
là một phần tử nguyên thủy khi và chỉ khi với mọi i
= 1, 2, , k
- Định lý 4: Cho p là một số nguyên tố, α là một phần tử nguyên thủy
trong Khi đó mọi phần tử đều tồn tại một j ( 0 ≤ j ≤ p – 2) sao cho
, và β là phần tử nguyên thủy khi và chỉ khi (j, p – 1) = 1
- Định lý 5: Số các phần tử nguyên thủy có thể có trong ( với m thỏa mãn điều kiện của Định lý 1 của mục này) là ϕ(ϕ(m)) Trường hợp đặc biệt,
các phần tử nguyên tử nguyên thủy trong sẽ là ϕ(p – 1)
Ví dụ: Cho p = 7 Thế thì số các phần tử nguyên thủy trong là:
1.5.4 Đa thức nguyên thủy
Trong phạm vi tìm hiểu này, ta chỉ xét các đa thức trong trường GF(2)
Trang 22Định nghĩa 1: Đa thức P(x) cấp m ≥ 1 trong trường GF(2) được gọi là
đa thức bất khả quy nếu P(x) không thể phân tích thành tích các đa thức có bậc nhỏ hơn m trong trường GF(2)
Định nghĩa 2: Một đa thức bất khả quy P(x) có cấp m trong trường
GF(2) được gọi là đa thức nguyên thủy( primitive polynomid) nếu số nguyên dương nhỏ nhất n sao cho xn – 1 chia hết cho P(x) là n = 2m – 1
Ví dụ: P(x) = x3 + x + 1 là đa thức nguyên thủy trong trường GF(2), hoặc P(x) ϵ GF(2)[x], vì n = 7 = 23 – 1 là số nguyên dương nhỏ nhất mà x7 – 1 chia hết cho x3+x + 1
x7 – 1 = (x3 + x + 1)(x4 + x2 + x + 1) và thì xm – 1 không chia hết cho P(x) = x3 + x + 1
Định lý 1: Có đúng đa thức nguyên thủy cấp n trong trường GF(2)
Định lý 2: Mọi nghiệm của đa thức nguyên thủy cấp m: P(x) ϵ GF(2)[x]
đều có cấp 2m – 1
Chứng minh: Thật vậy, giả sử α là một nghiệm tùy ý của đa thức P(x) ϵ
GF(2)[x] Từ đó suy ra rằng α cũng là nghiệm của biểu thức ,
vì ( Theo định nghĩa 2 ở trên) do đó suy ra ord(α) | 2m – 1
Nếu 2m – 1 không chia hết cho ord(α), khi đó 2m – 1 = k[ord(α)] + r với 0
< r < ord(α)
nghĩa Vậy, ta suy ra rằng mọi nghiệm của =0 đều là nghiệm
Trang 23bất khả quy có cùng cấp nên suy ra chia hết cho P(x) Cuối cùng ord(α) = 2m – 1( theo định nghĩa) Đó là điều cần chứng minh.
1.5.5 Mã Hamming ( The Hamming Codes)
Bộ mã tuyến tính C trong trường hợp GF(2) được gọi là bộ mã Hamming Các tham số đặc trưng đối với bộ mã Hamming( nhị phân) là (m > 2):
- Độ dài từ mã là: n = 2m – 1
- Số các bit mang thông tin là: k = 2m – m – 1
- Số các bit sửa sai là: n – k = m
- Khả năng sửa sai là: t = 1
- Cho một số bộ mã Hamming C = (n, k), k < n Bộ mã này được đặc trưng bởi ma trận kiểm tra chẵn lẻ H và ma trận sinh G Đối với bộ mã Hamming có độ dài từ mã n = 2m – 1 việc xây dựng ma trận kiểm tra chẵn lẻ rất đơn giản
Đó là ma trận H = (hij)n – k, n hijϵ {0, 1}, i = 1, 2, , n – k; j = 1, 2, , n Trong đó các cột của H là các vector khác không nhị phân m thành phần Còn
ma trận sinh G = (gij)k.n, gijϵ {0, 1}, i = 1, 2, , k; j = 1, 2, , n Quan hệ giữa
H và G được thể hiện như sau
Ma trận kiểm tra H có dạng như sau:
1 k n 1, k P
1 k n 0, P
1,0 k P ,
10 P 00 P
k n I 000 01
0100 0 10 0 )
(I n k P T
H
Trang 24n k P
k k n P k
n P
k n P P
0000
0
0100
0
1000
,
1 , 1
0 , 1
.
1 , 0
1 , 0 0 , 0 ) (
1.5.6 Mật mã vòng tuyến tính
Định nghĩa: Một bộ mã tuyến tính C = (n, k) được gọi là mật mã vòng
cũng thuộc C
Như vậy cấu trúc của mật mã vòng dựa trên cấu trúc của đa thức:
sẽ tương ứng 1- 1 với một từ mã Nếu C = (n, k) là một bô mã trên GF(q) Khi đó tập các từ mã trên C tạo thành một không gian vector con K_chiều trong không
gian vector n_chiều Điều đó chứng tỏ rằng các đa thức ứng với các từ mã của
C cũng tạo nên một không gian vector con trong GF(q)[x]/(xn – 1) Như vậy,
nếu từ mã c’ là kết quả của sự dịch chuyển vòng sang phải một nhịp của từ
mã cϵC thì: c’(x) = x.c(x) mod(xn – 1) ϵ C
Thật vậy, ta có:
Định lý 1: Cho bộ mã dịch vòng tuyến tính C = (n, k) trên trường GF(q)
Khi đó:
Trang 251 Tập hợp các đa thức trong C có tồn tại một đa thức g(x) monic duy nhất
có cấp cực tiểu r < n Khi đó g(x) được gọi là đa thức sinh của C
2 Với mỗi đa thức từ mã c(x) trong C, có thể biểu diễn một cách duy nhất dưới dạng c(x) = m(x).g(x), trong đó g(x) là đa thức sinh của C và m(x) là một đa thức có cấp nhỏ hơn n – r trong GF(q)[x]
3 Đa thức sinh g(x) của C là một nhân tử của xn – 1 trong GF(2)[x]
- Định lý 2( về nhân tử hóa xn – 1 trên trường GF(q)[x]) Tập hợp tất cả các phần tử khác không trong trường GF(q) tạo nên một tập hợp đầy đủ các nghiệm của phương trình:
1.5.7 Đa thức nguyên thủy trong trường hợp GF(2) có cấp từ 2 đến cấp 7 Cấp Kí hiệu Cấp Kí hiệu Cấp Kí hiệu
Trang 27CHƯƠNG 2: TÌM HIỂU TỔNG QUAN VỀ GIẤU TIN VÀ MỘT SỐ
THUẬT TOÁN GIẤU TIN MẬT ( STEGANOGRAPHY)
2.1 Tổng quan về giấu tin và phân loại [1]
2.1.1 Định nghĩa
“ Giấu thông tin” gọi tắt là “giấu tin”, tiếng Hi lạp là “Steganography”, tiếng Anh là “Cover Writing” Giấu thông tin là một kỹ thuật giấu (nhúng) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số khác ( “giấu tin” nhiều khi không phải chỉ hành động giấu cụ thể mà chỉ mang ý nghĩa quy ước) [1]
Sự khác biệt chủ yếu giữa mã hoá thông tin và giấu thông tin là phương pháp mã hoá làm cho các thông tin hiện rõ là nó có được mã hoá hay không còn đối với phương pháp giấu thông tin thì người ta sẽ khó biết được là có thông tin giấu bên trong do tính chất ẩn (invisible) của thông tin được giấu
Kỹ thuật giấu thông tin nhằm mục đích đảm bảo an toàn vào bảo mật thông tin Từ hai khía cạnh : một là bảo mật cho giữ liệu được đem giấu, hai
là bảo mật cho chính đối tượng thực hiện giấu tin Điều này dẫn đến hai khuynh hướng kỹ thuật chủ yếu của giấu tin Khuynh hướng thứ nhất là giấu tin mật (steganography) Khuynh hướng này tập trung vào các kỹ thuật giấu tin sao cho thông tin giấu được nhiều và quan trọng là người khác khó phát hiện được một đối tượng có bị giấu thông tin bên trong phương tiện đó hay không Khuynh hướng thứ hai là thủy vân số (watermarking) Khuynh hướng thủy vân số đánh giấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin Thủy vân số có miền ứng dụng chủ yếu trong lĩnh vực kinh tế nên nó được quan tâm nhiều Trong lúc đó kỹ thuật giấu tin
Trang 28mật chủ yếu phục vụ trong lĩnh vực an ninh quốc phòng và do đó, nó ít được công bố công khai
2.1.2 Mục đích của giấu tin mật
Giấu tin có hai mục đích:
- Bảo mật cho những dữ liệu được giấu
- Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ liệu giấu trong đó
Hai mục đích này dần phát triển thành hai lĩnh vực với những yêu cầu
và tính chất khác nhau
Hình 2 1: Hai lĩnh vực của kỹ thuật giấu thông tin
Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo
an toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được nhiều thông tin nhất Thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện được
Kỹ thuật giấu thông tin theo kiểu “đánh giấu” (watermarking) để bảo
vệ bản quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như đảm bảo tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số Trong phạm vi nghiên cứu của mình, luận văn tập trung tìm hiểu
về kỹ thuật giấu tin mật
Giấu thông tin
Giấu tin bí mật
(Steganography)
Thuỷ vân số (Watermarking)
Trang 292.1.3 Mô hình kỹ thuật giấu thông tin cơ bản
Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin.Các thủ tục này sẽ thực hiện nhúng thông tin cần giấu vào môi trường giấu tin Các thủ tục giấu tin thường được thực hiện với một khóa giống như các hệ mật mã
để tăng tính bảo mật Sau khi giấu tin ta thu được đối tượng chứa thông tin giấu và có thể phân phối đối tượng đó trên kênh thông tin đến người nhận có chủ đích Để giải mã thông tin nhận được từ đối tượng có chứa thông tin đã giấu, người nhận đích thực sử dụng thủ tục giải mã cùng với khóa đã dung trong quá trình giấu để lấy lại thông tin Việc giấu thông tin vào phương tiện chứa và tách lấy thông tin từ đó là hai quá trình trái ngược nhau và có thể mô
tả qua sơ đồ khối của hệ thống như hình 3.2 trong đó:
- Thông tin cần giấu tuỳ theo mục đích của người sử dụng, nó có thể là thông điệp (với các tin bí mật) hay các logo, hình ảnh bản quyền
- Phương tiện chứa: các file ảnh, audio… là môi trường để nhúng tin
- Bộ nhúng thông tin: là những chương trình thực hiện việc giấu tin
- Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Hình 2 2: Lược đồ chung cho quá trình giấu tin
Phương tiện chứa đã được giấu tin
Phân phối
Trang 30Tách thông tin từ các phương tiện chứa diễn ra theo quy trình ngược lại với đầu ra là các thông tin đã được giấu vào phương tiện chứa Phương tiện chứa sau khi tách lấy thông tin có thể được sử dụng, quản lý theo những yêu
cầu khác nhau
Hình 2 3: Lược đồ chung cho quá trình giải mã
Hình vẽ 2.3 chỉ ra các công việc giải mã thông tin đã giấu Sau khi nhận được đối tượng phương tiện chứa có giấu thông tin, quá trình giải mã được thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khoá của quá trình nhúng Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu Bước tiếp theo thông tin đã giấu sẽ được xử lý kiểm
định so sánh với thông tin ban đầu
2.1.4 Các đối tượng dùng để giấu tin
a Phân loại các kỹ thuật giấu tin:
Phương tiện chứa (audio, ảnh, video)
Phương tiện chứa đã được
mã tin
định Khóa giấu tin
Trang 31Dựa trên việc thống kê sắp xếp nhiều công trình đã công bố trên một số tạp chí, cùng với thông tin về tên và tóm tắt nội dung của khoảng 200 công trình công bố trên Internet, có thể chia lĩnh vực giấu dữ liệu ra làm hai hướng lớn, đó là watermarking và steganography Nếu như watermarking quan tâm nhiều đến các ứng dụng giấu các mẩu tin ngắn nhưng đòi hỏi độ bền vững cao của thông tin cần giấu đối với các biến đổi thông thường của tệp dữ liệu môi trường thì steganography lại quan tâm tới các ứng dụng che giấu các bản tin với độ mật và dung lượng càng lớn càng tốt Đối với từng hướng lớn này, quá
trình phân loại có thể tiếp tục theo các tiêu chí khác
Ngoài ra chúng ta có thể phân loại theo môi trường giấu thông tin:
+ Giấu thông tin trong ảnh
+ Giấu thông tin trong audio
+ Giấu thông tin trong video
+ Giấu thông tin trong văn bản dạng text
b Phân loại theo cách thức tác động lên các phương tiện:
Phương pháp chèn dữ liệu: Phương pháp này tìm các vị trí trong file dễ
bị bỏ qua và chèn dữ liệu cần giấu vào đó, cách giấu này không làm ảnh hưởng gì tới sự thể hiện các file dữ liệu ví dụ như được giấu sau các ký tự EOF
Phương pháp tạo các phương tiện chứa: Từ các thông điệp cần chuyển
sẽ tạo ra các phương tiện chứa để phục vụ cho việc truyền thông tin đó, từ phía người nhận dựa trên các phương tiện chứa này sẽ tái tạo lại các thông điệp
Trang 32c Phân loại theo các mục đích sử dụng:
- Giấu thông tin bí mật: đây là ứng dụng phổ biến nhất từ trước đến nay, đối với giấu thông tin bí mật người ta quan tâm chủ yếu tới các mục tiêu:
Độ an toàn của giấu tin - khả năng không bị phát hiện của thông tin ẩn
+ Lượng thông tin tối đa có thể giấu trong một phương tiện chứa cụ thể
mà vẫn có thể đảm bảo an toàn
+ Độ bí mật của thông tin trong trường hợp giấu tin bị phát hiện
- Giấu thông tin bí mật không quan tâm tới nhiều các yêu cầu bền vững của phương tiện chứa, đơn giản là bởi người ta có thể thực hiện việc gửi và nhận nhiều lần một phương tiện chứa đã được giấu tin
- Giấu thông tin thuỷ vân: do yêu cầu bảo vệ bản quyền, xác thực… nên giấu tin thuỷ vân có yêu cầu khác với giấu tin bí mật Yêu cầu đầu tiên là các dấu hiệu thuỷ vân đủ bền vững trước các tấn công vô hình hay cố ý gỡ bỏ nó Thêm vào đó các dấu hiệu thuỷ vân phải có ảnh hưởng tối thiểu (về mặt cảm nhận) đối với các phương tiện chứa Như vậy các thông tin cần giấu càng nhỏ càng tốt
Tuỳ theo các mục đích khác nhau như bảo vệ bản quyền, chống xuyên tạc nội dung, nhận thực thông tin,… thuỷ vân cũng có các yêu cầu khác nhau
Các kỹ thuật giấu tin mới được phát triển mạnh trong khỏang hơn mười năm trở lại đây nên việc phân loại các kỹ thuật còn chưa hoàn toàn thống nhất Sơ đồ phân loại do F.Petitcolas đưa ra năm 1999 được nhiều người chấp nhận
Trang 33Hình 2 4: Phân loại các kỹ thuật giấu tin
Theo sơ đồ trên đây, giấu tin được chia thành hai hướng chính là giấu tin mật và thủy vân số Giấu tin mật quan tâm chủ yếu đến lượng tin có thể giấu, còn thủy vân số lại quan tâm chủ yếu đến tính bền vững của thông tin giấu trong từng hướng chính lại chia ra các hướng nhỏ hơn, chẳng hạn với thủy vân số thì có thủy vân bền vững và thủy vân dễ vỡ Thủy vân bền vững cần bảo toàn được các thông tin thủy vân trước các tấn công như dịch chuyển, cắt xén, xoay đối với ảnh Ngược lại, thủy vân dễ vỡ cần phải dễ bị phá hủy khi gặp các sự tấn công nói trên
2.2 Giấu tin trong ảnh
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện bởi lượng thông tin được trao đổi bằng ảnh rất lớn và hơn nữa giấu thông tin trong ảnh cũng đóng vai trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: nhận thực thông tin, xác định
Robust Watermarking Thuỷ vân bền vững
Fragile Watermarking Thuỷ vân dễ vỡ
Information hiding Giấu thông tin
Watermarking Thuỷ vân số
Trang 34xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy cập, giấu thông tin mật … Chính vì thế mà vấn đề này đã nhận được sự quan tâm rất lớn của các cá nhân, tổ chức, trường đại học và cả viện nghiên cứu thế giới
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ít thay đổi và chẳng ai biết được đằng sau ảnh đó mang những thông tin có ý nghĩa.Và ngày nay, khi ảnh số đã được sử dụng rất phổ biến, thì giấu thông tin trong ảnh đã đem lại nhiều ứng dụng quan trọng trên các lĩnh vực trong đời sống xã hội Ví dụ như đối với các nước phát triển, chữ ký tay đã được số hóa và lưu trữ sử dụng như hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính Nó được sử dụng để nhận thực trong các thẻ tín dụng của người tiêu dùng
Hay trong một số những ứng dụng về nhận diện như thẻ chứng minh thư, thẻ căn cước, hộ chiếu… người ta có thể giấu thông tin trên các ảnh thẻ
để xác nhận thông tin thực
Phần mềm Winword của Microsoft cũng cho phép người dùng lưu chữ
ký trong các ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn của thông tin Tài liệu sau đó được truyền trực tiếp qua fax hoặc lưu truyền trên mạng Theo đó, việc nhận thực chữ ký, xác nhận thông tin đã trở thành một vấn đề cực kỳ quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin bởi các tin tặc đang trở thành một vấn nạn đối với bất
kỳ quốc gia, tổ chức nào Thêm vào đó, lại có rất nhiều loại thông tin quan trọng cần được bảo mật như những thông tin về an ninh, thông tin về bảo hiểm hay các thông tin về tài chính Các thông tin này được số hóa và lưu trữ trong hệ thống máy tính hay trên mạng Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng Việc nhận thực cũng như phát hiện thông tin xuyên tạc đã trở nên vô cùng quan trọng, cấp thiết Và một đặc điểm của giấu
Trang 35thông tin trong ảnh nữa đó là được giấu một cách vô hình Nó như cách truyền thông tin mật cho nhau mà người khác không thể biết được, bởi sau khi giấu thông tin thì chất lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh xám
2.3 Tổng quan ảnh BITMAP (BMP)
2.3.1 Giới thiệu ảnh BITMAP (BMP)
Ảnh BITMAP (BMP) được phát triển bởi Microsoft Corporation, được lưu trữ dưới dạng độc lập thiết bị cho phép Windows hiển thị dữ liệu không phụ thuộc vào khung chỉ định màu trên bất kỳ phần cứng nào
Tên tệp mở rộng mặc định của một tệp ảnh Bitmap là BMP, nét vẽ được thể hiện là các điểm ảnh Qui ước màu đen, trắng tương ứng với các giá trị 0, 1
Ảnh BMP được sử dụng trên Microsoft Windows và các ứng dụng chạy trên Windows từ version 3.0 trở lên.BMP thuộc loại ảnh mảnh
Các thuộc tính tiêu biểu của một tập tin ảnh BMP là: Số bit trên mỗi điểm ảnh thường được ký hiệu bởi n Một ảnh BMP n bit có 2n màu Giá trị n càng lớn thì ảnh càng có nhiều màu và càng rõ nét hơn
Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu).Ảnh BMP 24 - bit có chất lượng hình ảnh trung thực nhất
- Chiều cao của ảnh (height), cho bởi điểm ảnh
- Chiều rộng của ảnh (width), cho bởi điểm ảnh
Đặc điểm nổi bật nhất của định dạng BMP là tập tin ảnh thường không được nén bằng bất kỳ thuật toán nào Khi lưu ảnh, các điểm ảnh được ghi trực
Trang 36tiếp vào tập tin một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá trị n
của ảnh
Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp nhiều lần so với các ảnh được nén (chẳng hạn JPEG hay PNG) Ảnh BMP thường được dùng để giấu các thông tin mật vì nó chứa được nhiều thông tin nhất so với JPEG Còn ảnh JPEG lại thường được dùng cho kỹ thuật Watermarking (tạm dịch là Thủy vân)
2.3.2 Cấu trúc ảnh BITMAP (.BMP)
Cấu trúc một tệp ảnh BMP gồm có bốn phần:
- Bitmap File Header: Lưu trữ thông tin tổng hợp về tệp ảnh BMP
- Bitmap Information: Lưu trữ thông tin chi tiết về ảnh bitmap
- Color Palette: Lưu trữ định nghĩa của màu được sử dụng cho bitmap
- Bitmap Data: Lưu trữ từng điểm ảnh của hình ảnh thực tế
a Bitmap File Header:
Đây là khối bytes ở phần đầu tập tin, sử dụng để định danh tập tin Ứng dụng đọc khối bytes này để kiểm tra xem đó có đúng là tập tin BMP không và có bị hư hỏng không
Trang 37Hình 2 5: Chi tiết khối bytes tiêu đề tập tin BMP
Magic number sử dụng để định nghĩa tập tin BMP:
0x42 0x4D (mã hexa của kí tự B và M) Các mục dưới đây
có thể được dùng:
BM - Windows 3.1x, 95, NT, etc
CI - OS/2 Color Icon
CP - OS/2 Color Pointer 0002h 4 bytes Kích thước của tập tin BMP theo byte
0006h 2 bytes Dành riêng; giá trị thực tế phụ thuộc vào ứng dụng tạo ra
Trang 38Offset Size Mục đích
Eh 4 Kích thước của tiêu đề (40 bytes)
12h 4 Chiều rộng bitmap tính bằng pixel (Signed interger)
16h 4 Chiều cao bitmap tính bằng pixel (Signed interger)
1Ah 2 Số lượng các mặt phẳng màu sắc được sử dụng Phải được thiết
lậpbằng 1
1Ch 2 Số bit trên mỗi pixel, là độ sâu màu của hình ảnh Giá trị điển hìnhlà
1, 4, 8, 16, 24 và 32
1Eh 4 Phương pháp nén được sử dụng
22h 4 Kích thước hình ảnh Đây là kích thước của dữ liệu bitmap vàkhông
nên nhầm lẫn với kích thước tập tin
26h 4 Độ phân giải theo chiều ngang của hình ảnh (Signed interger)
2Ah 4 Độ phân giải theo chiều dọc của hình ảnh (Signed interger)
2Eh 4 Số lượng màu trong bảng màu
32h 4 Số lượng các màu sắc quan trọng được sử dụng, hoặc 0 khi màu
sắcnào cũng đều là quan trọng, thường bị bỏ qua
Hình 2 6: Chi tiết khối bytes thông tin tập tin BMP