DANH MỤC CÁC KÝ HIỆU VIẾT TẮT3-DES Triple Data Encrytion Standard Áp dụng giải thuật DES 3 lần cho mỗi khối dữ liệu ADC Analog to Digital Converter Chuyển đổi từ tín hiệu tương tự sang t
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ MẠNH THẮNG
NGHIÊN CỨU PHỐI HỢP CÁC PHƯƠNG PHÁP NÉN THÔNG TIN, MÃ HOÁ THÔNG TIN, GIẤU THÔNG TIN ĐỂ XÂY DỰNG ỨNG DỤNG GIẤU TIN TRONG
MÔI TRƯỜNG ĐA PHƯƠNG TIỆN
Ngành: Công nghệ Thông tin Chuyên ngành: Công nghệ phần mềm
Trang 2MỤC LỤC
LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined
MỤC LỤC 2
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT 5
DANH MỤC CÁC HÌNH VẼ 7
MỞ ĐẦU 8
CHƯƠNG 1 10
TỔNG QUAN VỀ NÉN, MÃ HOÁ VÀ GIẤU TIN MẬT 10
1.1 Tổng quan về nén thông tin 10
1.1.1 Nhận thức chung 10
1.1.1.1 Một số khái niệm cơ bản 10
1.1.1.2 Các thông số quan trọng của nén 11
1.1.2 Nguyên tắc của nén dữ liệu 11
1.1.3 Phân loại phương pháp nén 14
1.1.3.1 Theo nguyên lý nén 14
1.1.3.2 Theo cách thức thực hiện nén 14
1.1.3.3 Phân loại dựa vào triết lý của sự mã hoá 14
1.1.3.4 Cách phân loại của Anil.K.Jain 14
1.1.4 Các kỹ thuật nén thông tin 15
1.1.4.1 Nén không mất mát thông tin 15
1.1.4.2 Nén có mất mát thông tin 15
1.1.5 Ứng dụng của nén thông tin 16
1.2 Mã hoá thông tin 17
1.2.1 Sơ lược về lịch sử mật mã học 17
1.2.2 Các khái niệm cơ bản 18
1.2.2.1 Khái niệm mật mã 18
1.2.2.2 Khái niệm mã hoá thông tin 19
1.2.3 Phân loại hệ mật mã 20
1.2.3.1 Hệ mã hoá khoá bí mật 20
1.2.3.2 Hệ mã hoá khoá công khai 21
1.2.3.3 Kết hợp hệ mã hoá khoá bí mật và hệ mã hoá khoá công khai 23
1.3 Sơ lược về giấu tin mật 24
1.3.1 Các khái niệm cơ bản 24
1.3.1.1 Khái niệm giấu tin mật 24
1.3.1.2 Các thành phần của hệ giấu tin mật 26
1.3.2 Tính chất của giấu tin mật 26
1.3.3 Ứng dụng của giấu tin mật 28
1.3.3.1 Liên lạc bí mật 28
1.3.3.2 Bảo vệ bản quyền 28
1.3.4 Kỹ thuật tấn công hệ giấu tin mật 29
1.4 Kết chương 31
CHƯƠNG 2 32
MÔI TRƯỜNG ĐA PHƯƠNG TIỆN VÀ KHẢ NĂNG GIẤU TIN 32
2.1 Âm thanh số 32
Trang 32.1.1 Tính chất cơ bản của tín hiệu âm thanh 32 2.1.2 Biểu diễn âm thanh số 33
2.1.3 Nén âm thanh Error! Bookmark not defined
2.1.3.1 Lượng tử hóa phi tuyến Error! Bookmark not defined
2.1.3.2 Mã hóa dự báo (Predictive Coding) Error! Bookmark not defined
2.1.3.3 Kỹ thuật nén sử dụng tính chất lọc (masking): Âm thanh MPEGError! Bookmark not defined 2.1.4 Giấu tin mật trong âm thanh số Error! Bookmark not defined
2.2 Ảnh số Error! Bookmark not defined
2.2.1 Biểu diễn ảnh số Error! Bookmark not defined
2.2.2 Các tham số chính của ảnh số Error! Bookmark not defined
2.2.3 Nén ảnh Error! Bookmark not defined
2.2.4 Giấu tin mật trong ảnh số Error! Bookmark not defined
2.2.4.1 Giấu tin mật trong ảnh đen trắng Error! Bookmark not defined
2.2.4.2 Giấu tin trong ảnh màu Error! Bookmark not defined
2.3 Video số Error! Bookmark not defined
2.3.1 Biểu diễn video số Error! Bookmark not defined
2.3.2 Nén video Error! Bookmark not defined
2.3.2.1 Lấy mẫu màu Error! Bookmark not defined
2.3.2.2 Ước lượng và bù chuyển động Error! Bookmark not defined
2.3.2.3 MPEG Error! Bookmark not defined
2.3.2.4 Các chuẩn khác Error! Bookmark not defined
2.3.3 Giấu tin trong video số Error! Bookmark not defined
2.4 Kết chương Error! Bookmark not defined
CHƯƠNG 3 Error! Bookmark not defined
PHỐI HỢP CÁC PHƯƠNG PHÁP NÉN, MÃ HOÁ VÀ GIẤU TIN ĐỂ XÂY DỰNG
ỨNG DỤNG LIÊN LẠC BÍ MẬT Error! Bookmark not defined
3.1 Vì sao phải kết hợp nén thông tin, mã hoá thông tin và giấu tin mậtError! Bookmark not defined 3.2 Tình hình nghiên cứu, ứng dụng giấu tin mật hiện nay Error! Bookmark not defined
3.2.1 Một số kỹ thuật và phần mềm giấu tin mật trên thị trườngError! Bookmark not defined
3.2.2 Giấu tin mật và nhu cầu liên lạc bí mật trong công tác An ninh Quốc phòng ở
Việt Nam Error! Bookmark not defined
3.3 Giải pháp đề xuất Error! Bookmark not defined
3.3.1 Mục tiêu, yêu cầu Error! Bookmark not defined
3.3.2 Giải pháp Error! Bookmark not defined
3.4 Xây dựng và cài đặt ứng dụng Error! Bookmark not defined
3.4.1 Yêu cầu xây dựng Error! Bookmark not defined
3.4.2 Lựa chọn giải pháp kỹ thuật cho ứng dụng Error! Bookmark not defined
3.4.2.1 Lựa chọn môi trường và phương tiện truyền Error! Bookmark not defined
3.4.2.2 Xây dựng cơ sở dữ liệu vật mang Error! Bookmark not defined
3.4.2.3 Lựa chọn kỹ thuật nén Error! Bookmark not defined
3.4.2.4 Lựa chọn phương pháp mã hoá Error! Bookmark not defined
3.4.2.5 Lựa chọn giải thuật giấu tin Error! Bookmark not defined
3.4.2.6 Lựa chọn môi trường xây dựng Error! Bookmark not defined
3.4.3 Thiết kế và cài đặt phần mềm Error! Bookmark not defined
3.4.4 Kết quả xây dựng Error! Bookmark not defined
3.4.5 Giới hạn và cải thiện tương lai: Error! Bookmark not defined
Trang 43.5 Kết chương Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined TÀI LIỆU THAM KHẢO Error! Bookmark not defined PHỤ LỤC Error! Bookmark not defined
Trang 5DANH MỤC CÁC KÝ HIỆU VIẾT TẮT
3-DES Triple Data Encrytion Standard Áp dụng giải thuật DES 3
lần cho mỗi khối dữ liệu
ADC Analog to Digital Converter Chuyển đổi từ tín hiệu
tương tự sang tín hiệu số AES Advanced Encryption Standard Hệ mật mã tiên tiến
DAC Digital to Analog Converter Bộ chuyển đổi từ tín hiệu
số sang tín hiệu tương tự DCT Discrete Cosine Transform Biến đổi Côsi rời rạc
DES Data Encryption Standard Hệ mật mã chuẩn
DPCM Differential pulse code
ECC Elliptic curve cryptography Hệ mã hóa đường con
LZ77,
LZ78 Abraham Lempel, Jacob Ziv
Các thuật toán nén không mất mát thông tin do
Abraham Lempel, Jacob Ziv
đề xuất năm 1977 và 1978
LZW Lempel – Zip, Welch
Một phương pháp nén được phát minh bởi Lempel - Zip
và Welch MNP5 Microcom Network Protocol 5 Kỹ thuật nén sử dụng cho
modem
Trang 6PCM Pulse-code modulation Điều biên mã xung
QAM Quadrature Amplitude
Modulation Điều chế biên độ trực giao
RLE Run Length Encoding Mã hóa loạt dài
Adleman
Thuật toán mã hóa khóa công khai do 3 tác giả Ron Rivest, Adi Shamir, Len Adleman đề xuất
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình vẽ Chú thích
Hình 1 Quá trình nén và giải nén thông tin Hình 2 Quá trình mã hóa và giải mã Hình 3 Mô hình hế thống mã hoá khoá bí mật Hình 4 Mô hình hệ thống mã hoá với khoá công khai Hình 5 Quy trình trao đổi khoá bí mật sử dụng hệ mã hoá khoá công khai Hình 6 Phân cấp các lĩnh vực nghiên cứu của ngành mật mã học
Hình 7 Các nhánh của giấu tin Hình 8 Sơ đồ chung của hệ giấu tin mật Hình 9 Cân nhắc giữa chất lượng, dung lượng và tính bền vững Hình 10 Sóng âm thanh
Hình 11 Biểu diễn âm thanh số Hình 12 Các bước lượng tử hoá Hình 13 Lượng tử hoá phi tuyến Hình 14 Mã hoá dự báo
Hình 15 Lược đồ giấu tin phía người gửi Hình 16 Lược đồ tách tin phía người nhận Hình 17 Sơ đồ phân cấp các lớp giải thuật mã hoá khoá bí mật trong NET Framework Hình 18 Sơ đồ phân cấp các lớp giải thuật mã hoá khoá công khai trong NET Framework Hình 19 Sơ đồ tính toán hiệu quả nhúng trên từng vật mang
Hình 20 Sơ đồ giấu tin mật theo giải thuật F5 Hình 21 Giao diện chính của phần mềm Hình 22 Tạo ngẫu nhiên cặp khóa công khai/bí mật Hình 23 Sơ đồ khối quá trình giấu tin theo giải thuật F5 Hình 24 Vật mang tốt nhất được lựa chọn
Hình 25 Tách tin mật từ vật mang tin Hình 26 Bảng kết quả thực nghiệm
Trang 8Nhiều phương pháp bảo vệ thông tin đã được đưa ra trong đó phương pháp dùng mật mã học là giải pháp được ứng dụng rộng rãi nhất Các hệ mật mã đã được phát triển nhanh chóng và được ứng dụng rất phổ biến cho đến tận ngày nay
Sử dụng các hệ này, thông tin ban đầu sẽ được mã hoá thành các ký hiệu vô nghĩa, sau đó sẽ được lấy lại thông qua việc giải mã nhờ khoá của hệ mã Đã có rất nhiều những hệ mã phức tạp được sử dụng, bao gồm các hệ mã hóa khóa đối xứng như DES, 3-DES, AES, hệ mã hóa khóa công khai như RSA Phương pháp mật mã hoá đã được chứng minh là rất hiệu quả và có nhiều ứng dụng trong thực tiễn
Một phương pháp khác đang được nghiên cứu và ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới đó là phương pháp giấu tin mật Trong khi phương pháp
mã hoá nhằm bảo vệ nội dung của thông tin thì phương pháp giấu tin mật lại che giấu sự có mặt của thông tin bằng cách giấu thông tin này vào thông tin khác Đây
là phương pháp mới và phức tạp, được xem như một công nghệ chìa khoá cho vấn
đề bảo vệ bản quyền, nhận thực thông tin và kiểm soát truy cập…ứng dụng trong
an toàn và bảo mật thông tin Nhiều kỹ thuật giấu tin mật đã được nghiên cứu và ứng dụng trên nhiều định dạng đa phương tiện khác nhau như âm thanh số, ảnh số
và video số
Có thể nói, phương pháp mã hóa và phương pháp giấu tin mật đều có những ưu, nhược điểm nhất định Trên thực tế, người ta đã áp dụng cả hai phương pháp này để giúp cho việc đảm bảo an toàn thông tin khi trao đổi Để tăng dung lượng thông tin được trao đổi, người ta cũng thường kết hợp thêm các kỹ thuật nén thông tin
Trang 9Trong phạm vi luận văn này, chúng tôi tập trung nghiên cứu một số nội dung cơ bản của các kỹ thuật nén thông tin, mã hoá thông tin, giấu tin mật trong
dữ liệu đa phương tiện, trên cơ sở đó nghiên cứu phối hợp các phương pháp này
để xây dựng ứng dụng giúp cho việc đảm bảo an toàn khi trao đổi thông tin trên mạng máy tính, đáp ứng nhu cầu liên lạc bí mật ngày càng tăng hiện nay, đặc biệt
là cho lĩnh vực quân sự, an ninh quốc phòng Ngoài ra, nhằm tăng tính thực tế cho ứng dụng, chúng tôi cũng đưa ra ý tưởng sử dụng cơ sở dữ liệu vật mang nhằm chọn vật mang “phù hợp nhất” cho việc chứa thông tin mật cần giấu
Luận văn gồm 3 chương, cụ thể như sau:
Chương 1: Tổng quan về nén, mã hoá và giấu tin mật Chương này tìm
hiểu tổng quan về các kỹ thuật nén thông tin, mã hoá thông tin và giấu tin mật Nội dung đề cập là các khái niệm cơ bản, tính chất, đặc điểm, ứng dụng và một số vấn
đề có liên quan của các kỹ thuật này
Chương 2: Môi trường đa phương tiện và khả năng giấu tin Để có thể
thực hiện các kỹ thuật nén, mã hoá và giấu tin mật trong môi trường đa phương tiện thì vấn đề đặt ra là cần tìm hiểu cấu trúc, đặc điểm và tính chất của các định dạng trong môi trường đa phương tiện Chương này tập trung trình bày các khái niệm cơ bản, đặc điểm, tính chất và các kỹ thuật nén được áp dụng đối với các định dạng phổ biến như ảnh số, âm thanh số và video số cũng như phương pháp giấu tin mật trong các định dạng này
Chương 3: Phối hợp các phương pháp nén, mã hoá và giấu tin mật để xây dựng ứng dụng cho liên lạc bí mật Trên cơ sở phân tích những ưu điểm,
hạn chế của từng kỹ thuật để phối hợp các phương pháp trên xây dựng mô hình giúp cho việc liên lạc, trao đổi thông tin có bảo mật trên mạng công khai Mô hình
đề xuất còn sử dụng cơ sở dữ liệu vật mang để có thể chọn những vật mang “phù hợp nhất” với một thông điệp mật nhất định, góp phần làm giảm thiểu nguy cơ mất
an ninh an toàn thông tin Đây là một điểm cải tiến so với các phần mềm hiện có trên thị trường hiện nay Ứng dụng được xây dựng dựa trên kỹ thuật nén không mất mát thông tin ZIP, hệ mã hoá công khai RSA và giải thuật F5 để giấu thông tin trong ảnh JPEG Cơ sở dữ liệu vật mang bao gồm các ảnh được download ngẫu nhiên trên mạng Internet
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ NÉN, MÃ HOÁ VÀ GIẤU TIN MẬT
1.1 Tổng quan về nén thông tin
1.1.1 Nhận thức chung
1.1.1.1 Một số khái niệm cơ bản
Nén dữ liệu là quá trình làm giảm lượng thông tin “dư thừa” trong dữ liệu
gốc và do vậy lượng thông tin thu được sau nén thường nhỏ hơn dữ liệu gốc rất nhiều
Nén dữ liệu phổ biến vì hai lý do:
- Do nhu cầu lưu trữ dữ liệu: lượng thông tin cần lưu trữ ngày càng lớn nên
nếu không có cách thức tổ chức thì sẽ vượt quá dung lượng của các thiết bị nhớ Nén dữ liệu có tác dụng làm giảm dung lượng thông tin cần lưu trữ
- Do yêu cầu truyền dữ liệu: dữ liệu lớn sẽ làm chậm tốc độ truyền dữ liệu
Do vậy, nảy sinh nhu cầu nén thông tin để tăng tốc độ truyền Ví dụ, khi lướt web
hoặc khi download file
Quá trình nén và quá trình giải nén như sau:
Hình 1: Quá trình nén và giải nén thông tin
Ngoài thuật ngữ “nén dữ liệu hay data compression”, người ta còn có tên gọi khác “mã hoá nguồn – source coding” hay “giảm độ dư thừa” Đó là bởi vì
các ký hiệu đầu vào (có thể là các bit, các mã ASCII, các byte, các mẫu audio
hoặc các giá trị điểm ảnh) được phát ra bởi một nguồn thông tin nào đó và phải được mã hoá trước khi gửi tới đích
Từ hơn hai thập kỷ nay, có rất nhiều kỹ thuật nén đã được công bố trên các tài liệu, các phần mềm nén dữ liệu đã xuất hiện ngày càng nhiều trên thị trường
Trang 11Tuy nhiên, chưa có phương pháp nén nào được coi là phương pháp vạn năng vì nó
phụ thuộc vào nhiều yếu tố và bản chất của dữ liệu gốc
1.1.1.2 Các thông số quan trọng của nén
- Tỷ lệ nén (compression ratio) : Tỷ lệ nén là một trong các đặc trưng
quan trọng nhất của mọi phương pháp nén Nhìn chung, có thể định nghĩa tỷ lệ nén
như sau:
Tỷ lệ nén có thể được tính theo bpb (bit per bit) Trong nén ảnh thì bpb cũng
có nghĩa là “bits per pixel”; trong các phương pháp nén văn bản, người ta thường
đề cập đến bpc (bits per character)
- Nhân tố nén (compression factor) : là nghịch đảo của tỷ lệ nén Nhân
tố nén được tính theo công thức sau:
- Hiệu suất nén: được tính theo công thức:
Hiệu suất nén = 100 x (1- Tỷ lệ nén) %
Tuy nhiên, cũng phải thấy rằng những chỉ số của một phương pháp nén chỉ
có giá trị với chính sự nén đó, vì hiệu quả của nén còn phụ thuộc vào kiểu dữ liệu định nén Tỷ lệ nén cũng chỉ là một trong các đặc trưng cơ bản của phương pháp nén Nhiều khi tỷ lệ nén cao cũng chưa thể nói rằng phương pháp nén đó là hiệu quả hơn các phương pháp khác, vì còn các chi phí khác như thời gian, không gian
và thậm chí cả độ phức tạp tính toán nữa Thí dụ như nén phục vụ trong truyền dữ liệu: vấn đề đặt ra là hiệu quả nén có tương hợp với đường truyền không
Cũng cần phân biệt nén dữ liệu với nén băng truyền Mục đích chính của nén
là làm giảm lượng thông tin dư thừa và dẫn tới giảm kích thước dữ liệu Tuy vậy, đôi khi quá trình nén cũng làm giảm băng truyền tín hiệu số hoá thấp hơn so với truyền tín hiệu tương tự
1.1.2 Nguyên tắc của nén dữ liệu
Các nguyên tắc, kỹ thuật và giải thuật để nén các loại dữ liệu khác nhau được
Trang 12phát triển bởi nhiều người, và đều dựa trên các khái niệm về thống kê, biến đổi Fourier và các dạng biến đổi khác…
Có nhiều phương pháp nén dữ liệu Chúng dựa trên các ý tưởng khác nhau để phù hợp với các loại dữ liệu khác nhau và tạo ra các kết quả khác nhau, nhưng tất
cả đều dựa trên cùng một nguyên tắc là nén dữ liệu bằng cách loại bỏ dư thừa từ
dữ liệu gốc trong file nguồn Các dữ liệu không ngẫu nhiên đều có một cấu trúc
nhất định và cấu trúc này có thể được khai thác để thu được biểu diễn nhỏ hơn của
dữ liệu, một biểu diễn trong đó không có cấu trúc có thể nhận thức được
Ví dụ, trong văn bản tiếng Anh, ký tự E xuất hiện thường xuyên trong khi ký
tự Z lại rất ít khi xuất hiện Đây gọi là loại dư thừa bảng chữ cái Để thực hiện nén, người ta thực hiện gán các mã kích thước thay đổi cho các chữ cái, với E nhận mã ngắn nhất và Z nhận mã dài nhất Một loại dư thừa khác là dư thừa theo ngữ cảnh,
ví dụ như chữ cái Q hầu như luôn được theo sau bởi chữ cái U
Ý tưởng của nén bằng cách giảm bớt dư thừa gợi ý đưa ra luật chung của nén
dữ liệu: “gán các mã ngắn hơn cho các sự kiện chung (các symbol hoặc các phrase) và các mã dài đối với các sự kiện hiếm” Có nhiều cách để thi hành luật
này và việc phân tích các phương pháp nén đã cho thấy nén hoạt động tuân theo luật chung này
Người ta phân loại thành 4 kiểu dư thừa chính:
- Sự lặp lại của các ký tự
Trong một số tình huống (ví dụ như trong ảnh số), một ký hiệu (bit “0” hay bit “1”) có thể được lặp đi lặp lại một số lần Kỹ thuật nén dùng trong trường hợp này là thay dãy lặp đó bởi dãy mới gồm 2 thành phần: số lần lặp và ký hiệu dùng
để mã Phương pháp mã hoá kiểu này có tên là mã hoá loạt dài RLC
- Những mẫu sử dụng tần suất
Có thể có dãy ký hiệu nào đó xuất hiện với tần suất tương đối cao Do vậy, có
Trang 13thể mã hoá bởi ít bit hơn Đây là cơ sở của phương pháp mã hoá kiểu từ điển do Lempel –Ziv đưa ra và có cải tiến vào năm 1977, 1978 và do đó có tên gọi LZ77, LZ78 Năm 1984, Terry Welch đã cải tiến hiệu quả hơn và đặt tên là LZW (Lempel-Ziv-Welch)
- Độ dư thừa vị trí
Do sự phụ thuộc lẫn nhau của dữ liệu, đôi khi biết được ký hiệu (giá trị) xuất hiện tại một vị trí, đồng thời có thể đoán trước được sự xuất hiện của các giá trị ở các vị trí khác nhau một cách phù hợp Chẳng hạn, ảnh biểu diễn trong một lưới hai chiều, một số điểm ở hàng dọc trong một khối dữ liệu lại xuất hiện trong cùng một vị trí của các hàng khác nhau Do vậy, thay vì lưu trữ dữ liệu, ta chỉ cần lưu trữ vị trí hàng và cột Phương pháp nén dựa trên sự dư thừa này gọi là phương pháp mã hoá dự đoán
Ngoài ra còn có cách phân loại độ dư thừa khác
- Dư thừa về không gian hay tương quan về không gian
Bên trong một ảnh đơn hoặc một frame đơn lẻ của video sẽ có những tương quan đáng kể giữa các mẫu liền kề (các pixel) và kết quả là sẽ có những dư thừa
về không gian trong dữ liệu
- Dư thừa về trải phổ hay tương quan về trải phổ
Đối với dữ liệu thu được từ nhiều nguồn (multiple cameras), sẽ có những tương quan đáng kể trong các mẫu từ các nguồn Tương quan này được coi như là những tương quan về trải phổ và dẫn tới những dư thừa trong dữ liệu
- Dư thừa về mặt thời gian hay tương quan theo thời gian
Đối với dữ liệu về thời gian (chẳng hạn như audio và video), có những tương quan đáng kể trong các phân đoạn (segment) thời gian khác nhau Đây được coi như tương quan theo thời gian và dẫn đến các dư thừa về thời gian trong dữ liệu
Ý tưởng cốt lõi trong bất kỳ kỹ thuật nén nào cũng là giảm số mẫu có tương
quan cao thành các mẫu biểu diễn thấp hơn, trong nhóm khác nhau của các mẫu
tương quan để có thế giảm bớt các dư thừa về dữ liệu và vì vậy giảm kích thước của dữ liệu
Nguyên tắc của việc nén bằng cách loại bỏ dư thừa cũng trả lời cho câu hỏi:
“Vì sao một file đã nén không thể được nén thêm nữa?”
Trang 14Khi một file được nén lần đầu thì các dữ liệu dư thừa của nó được loại bỏ Do vậy, khi tiếp tục nén thêm thì không có dữ liệu dư thừa nào được loại bỏ Cũng có thể trả lời cho câu hỏi trên bằng cách giả định nếu có thể nén các file đã nén thì file này sẽ được giảm kích thước và việc nén này có thể được lặp đi lặp lại cho đến kích thước 1 byte hoặc thậm chí 1 bit Tất nhiên, điều này là vô lý vì một byte đơn
lẻ không thể chứa thông tin hiện có trong một file lớn tuỳ ý
1.1.3 Phân loại phương pháp nén
Có nhiều cách phân loại các phương pháp nén khác nhau
1.1.3.1 Theo nguyên lý nén
- Nén chính xác hay nén không mất mát thông tin: Bao gồm các phương pháp nén mà sau khi giải nén ta thu được chính xác dữ liệu gốc Nén loại này được yêu cầu đối với lưu trữ và truyền vật lý Các giải thuật loại này thường dựa vào thay thế các mẫu lặp lại với các ký hiệu đặc biệt mà không quan tâm đến ý nghĩa luồng bit (mã hoá entropy – entropy encoding)
- Nén có mất mát thông tin: bao gồm các phương pháp mà sau khi giải nén ta không thu được dữ liệu như bản gốc Trong nén ảnh, người ta gọi là các phương pháp “tâm lý thị giác” Các phương pháp này lợi dụng tính chất của mắt người, chấp nhận một số vặn xoắn trong ảnh khi khôi phục lại Tất nhiên, các phương pháp này chỉ có hiệu quả khi mà độ vặn xoắn là chấp nhận được bằng mắt thường hay với một dung sai nào đó Các phương pháp nén loại này rất hữu ích đối với việc lưu trữ và truyền tải audio, video và ảnh tĩnh trên các mạng có băng thông hạn chế
- Các phương pháp nén thế hệ thứ hai: dựa vào mức độ bão hoà của tỷ lệ nén
1.1.3.4 Cách phân loại của Anil.K.Jain
Trang 15- Phương pháp điểm
- Phương pháp dự đoán
- Phương pháp dựa vào biến đổi
- Các phương pháp tổ hợp (Hybrid)
1.1.4 Các kỹ thuật nén thông tin
1.1.4.1 Nén không mất mát thông tin
Trong nén dữ liệu không mất mát, tính nhất quán của dữ liệu được bảo toàn
Dữ liệu gốc và dữ liệu sau khi nén và giải nén hoàn toàn giống nhau bởi vì trong các phương pháp này, các giải thuật nén và giải nén là đảo ngược của nhau: không
có phần dữ liệu nào bị mất mát trong tiến trình nén và giải nén Dữ liệu dư thừa được loại bỏ trong nén và được bổ sung trong quá trình giải nén Các phương pháp nén không mất mát thường được sử dụng khi không muốn mất mát một chút dữ liệu nào
Tất cả các phương pháp nén không mất mát thông tin hoạt động bằng cách xác định một số khía cạnh của không ngẫu nhiên (dư thừa) trong dữ liệu đầu vào,
và bằng cách biểu diễn các dữ liệu ngẫu nhiên đó theo một cách hiệu quả
Có ít nhất 2 cách mà dữ liệu có thể không ngẫu nhiên:
- Một số ký hiệu được sử dụng nhiều hơn những ký hiệu khác Ví dụ, trong văn bản tiếng Anh thì các khoảng trắng và chữ cái E phổ biến hơn nhiều so với các dấu chấm và chữ cái Z
- Có nhiều mẫu bên trong dữ liệu, các kết hợp của các ký hiệu nhất định xuất hiện nhiều hơn các kết hợp khác Nếu một phương pháp nén có thể xác định các mẫu lặp đó, nó có thể biểu diễn chúng theo một cách thức hiệu quả hơn
Các phương pháp nén không mất mát thông tin tiêu biểu là;
- Mã hoá loạt dài (Run Length Encoding)
- Mã hoá Huffman (Huffman Coding)
- Mã hoá Shannon-Fano (Shannon-Fano Coding)
- Các phương pháp LZ78, LZH, LZW…
1.1.4.2 Nén có mất mát thông tin
Trong nhiều trường hợp, mắt và tai của con người không thể phân biệt các
Trang 16thay đổi nhỏ Trong các trường hợp này, có thể sử dụng phương pháp nén có mất mát Các phương pháp này có chi phí rẻ hơn vì chúng sử dụng ít không gian và thời gian hơn khi thực hiện gửi hàng triệu bit/giây đối với dữ liệu ảnh và video Một số phương pháp đã được phát triển sử dụng các kỹ thuật nén không mất mát
Mã hoá JPEG được sử dụng để nén các ảnh và đồ hoạ, mã hoá MPEG được sử dụng để nén video và mã hoá MP3 được sử dụng để nén âm thanh số
Phương pháp nén có mất mát thông tin tận dụng các thuộc tính bổ sung của
dữ liệu để tạo ra nén nhiều hơn so với chỉ sử dụng các thông tin dư thừa đơn lẻ Thông thường, phương pháp nén này liên quan đến hàng loạt các phép biến đổi dữ liệu của các giải thuật nén, từ một miền này sang một miền khác (ví dụ như miền tần số trong biến đổi Fourier) mà không chứa tất cả các thuật ngữ biến đổi kết quả
và vì vậy mất một số thông tin
Các giải thuật tiêu biểu của nén có mất mát thông tin là:
- Mã hoá khác biệt: lưu trữ các khác biệt giữa các mẫu dữ liệu liền mạch sử dụng một số giới hạn các bit
- Biến đổi Cosine rời rạc (DCT): được áp dụng cho dữ liệu ảnh
- Lượng hoá vectơ
- Nén JPEG
- Nén MPEG
1.1.5 Ứng dụng của nén thông tin
Trong các lĩnh vực của công nghệ thông tin – viễn thông hiện nay, việc truyền tải thông tin đã là một công việc xảy ra thường xuyên Tuy nhiên lượng thông tin được truyền tải đi thường rất lớn, điều này gây khó khăn cho công việc truyền tải vì nó làm tốn tài nguyên mạng, tiêu phí khả năng của hệ thống…Để giải quyết được những vấn đề đó, các phương pháp nén đã ra đời và ngày càng được ứng dụng rộng rãi
Thông thường, hầu hết các tập tin trong máy tính có rất nhiều thông tin dư thừa, việc thực hiện nén tập tin thực chất là mã hoá lại các tập tin để loại bỏ các thông tin dư thừa Nhìn chung không thể có phương phát nén tổng quát nào cho kết quả tốt đối với tất cả các loại tập tin Kỹ thuật nén tập tin thường được áp dụng cho các tập tin văn bản (trong đó có một số kí tự nào đó có xác suất xuất hiện nhiều hơn các kí tự khác), các tập tin ảnh bitmap (mà có thể có những mảng lớn