1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và Ứng dụng thuật toán giấu tin vào Ảnh số dựa trên mã hamming 5 3 Để lưu trữ các dữ liệu có giá trị

90 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và Ứng dụng thuật toán giấu tin vào Ảnh số dựa trên mã Hamming (5,3) để lưu trữ các dữ liệu có giá trị
Tác giả Đào Thị Thu Huyền
Người hướng dẫn TS. Nguyễn Đức Tuấn
Trường học Trường Đại học Mở Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 90
Dung lượng 4,19 MB

Nội dung

Chính vì những lí do trên tôi đã chọn nghiên cứu kết hợp các kỹ thuật giấu tin với kỹ thuật mã hóa để từ đó nâng cao hơn mức độ an toàn của truyền thông tin, dữ liệu bằng đề tài luận văn

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN GIẤU TIN VÀO ẢNH SỐ DỰA TRÊN MÃ HAMMING (5,3) ĐỂ LƯU

TRỮ CÁC DỮ LIỆU CÓ GIÁ TRỊ ĐÀO THỊ THU HUYỀN

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

LƯU TRỮ CÁC DỮ LIỆU CÓ GIÁ TRỊ

HƯỚNG DẪN KHOA HỌC: TS Nguyễn Đức Tuấn

HỌC VIÊN THỰC HIỆN: Đào Thị Thu Huyền

Hà Nội, 2024

Trang 3

1

LỜI CẢM ƠN

Đề tài “NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN GIẤU TIN VÀO ẢNH SỐ DỰA TRÊN MÃ HAMMING (5,3) ĐỂ LƯU TRỮ CÁC DỮ LIỆU CÓ GIÁ TRỊ” là nội dung mà tôi đã nghiên cứu và làm luận văn tốt nghiệp sau thời gian theo học tại Khoa Công nghệ thông tin, Trường Đại Học Mở Hà Nội Trong quá trình nghiên cứu và hoàn thiện luận văn, tôi đã nhận được nhiều sự quan tâm, giúp

đỡ từ Quý thầy cô, anh chị đồng nghiệp, gia đình và bạn bè Để luận văn thành công tôi xin gửi lời cảm ơn chân thành đến với:

Khoa Công nghệ thông tin, Trường Đại học Mở Hà Nội đã tạo môi trường học tập và rèn luyện rất tốt, cung cấp những kiến thức và kỹ năng bổ ích giúp tôi có thể áp dụng và thuận lợi thực hiện luận văn

Tôi đặc biệt gửi lời cảm ơn đến Tiến sĩ Nguyễn Đức Tuấn đã định hướng chuyên môn, tận tâm hướng dẫn, giúp đỡ tôi trong suốt quá trình nghiên cứu và thực hiện đề tài

Mặc dù đã có nhiều cố gắng nhưng công trình nghiên cứu này của tôi không tránh khỏi còn những chỗ thiếu sót rất mong nhận được sự góp ý, chỉ dẫn của các thầy cô, các nhà chuyên môn để tôi tiếp tục nghiên cứu và hoàn thiện

Cuối cùng, tôi xin cảm ơn gia đình, bạn bè, đồng nghiệp đã luôn động viên và tạo điều kiện tốt nhất để tôi có thể nỗ lực hoàn thành tốt bài nghiên cứu

Xin chân thành cảm ơn!

Hà Nội, tháng 05 năm 2024

Đào Thị Thu Huyền

Trang 4

2

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, đây là kết quả nghiên cứu của tôi với sự hướng dẫn của thầy giáo Tiến sĩ Nguyễn Đức Tuấn Các nội dung nghiên cứu và kết quả trong đề tài này hoàn toàn là kiến thức tôi tích luỹ, nghiên cứu, tìm tòi và

Trang 5

3

MỤC LỤC

LỜI CAM ĐOAN 2

DANH MỤC HÌNH VẼ 5

DANH MỤC CHỮ VIẾT TẮT 6

MỞ ĐẦU 7

1 Đặt vấn đề 7

2 Mục đích của luận văn 7

3 Bố cục của luận văn 8

CHƯƠNG I: TỔNG QUAN CÁC KHÁI NIỆM GIẤU TIN 10

1.1 Giới thiệu về giấu tin và lịch sử của giấu tin 10

1.1.1 Khái niệm giấu tin 10

1.1.2 Lịch sử phát triển của giấu tin 10

1.1.3 Các khái niệm và một số đặc điểm của giấu tin trong ảnh số 12

1.1.4 Một số khái niệm: 12

1.1.5 Đặc điểm của ẩn giấu thông tin trên ảnh số 13

1.2 Ứng dụng phổ biến của kỹ thuật giấu tin 14

1.2.1 Bảo vệ bản quyền tác giả (copyright protection) 15

1.2.2 Xác thực thông tin hay phát hiện xuyên tạc thông tin 15

1.2.3 Nhận dạng vân tay hay dán nhãn 15

1.2.4 Giấu tin mật 16

1.3 Tiêu chuẩn đánh giá của kỹ thuật giấu tin trong ảnh 16

1.3.1 Tin cậy 16

1.3.2 Khả dụng 17

1.3.3 An toàn và bảo mật 17

1.3.4 Hoàn chỉnh 18

1.3.5.Đúng đắn 18

1.4 Các phương pháp phân tích ảnh có giấu tin 18

Trang 6

4

1.5 Kết luận chương 1 19

CHƯƠNG II: MỘT SỐ KỸ THUẬT GIẤU TIN TRONG ẢNH SỐ VÀ KỸ THUẬT GIẤU TIN DỰA VÀO MÃ HAMMING CODE (5,3) 21

2.1 Một số kỹ thuật giấu tin trong ảnh số 21

2.1.1 Phân loại các kỹ thuật giấu tin 21

2.1.2.Mô hình của kỹ thuật giấu tin 23

2.2 Mã Hamming 25

2.2.1 Khái niện mã Hamming 25

2.2.2 Các mã trước thời kỳ Hamming 26

2.2.3 Mã Hamming (7,3) 30

2.3 So sánh mã Hamming (5,3) và mã Hamming (7,3) 38

2.4 Kỹ thuật giấu tin dựa vào mã Hamming (5,3) 44

CHƯƠNG III: CÀI ĐẶT ỨNG DỤNG THỬ NGHIỆM ĐỂ NHÚNG TIN TRONG ẢNH BẰNG KỸ THUẬT GIẤU TIN MẬT SỬ DỤNG MÃ HAMMING CODE (5,3) 46

3.1 Yêu cầu chung 46

3.2 Phân tích bài toán và xây dựng ứng dụng 49

3.2.1 Phân tích bài toán 49

3.2.2 Xây dựng chương trình ứng dụng 53

3.3 Chạy thử ứng dụng và kết quả 55

3.4 Đánh giá kết quả 59

KẾT LUẬN 61

TÀI LIỆU THAM KHẢO VÀ TRÍCH DẪN 62

PHỤ LỤC LUẬN VĂN 1

Trang 7

5

DANH MỤC HÌNH VẼ

Hình 2.1 - phân loại các kỹ thuật giấu tin 21

Hình 2.2 - Lược đồ mô tả quá trình giấu tin 23

Hình 2.3 - Lược đồ mô tả quá trình giải mã tin 24

Hình 2.4 - Mô hình của một mã Hamming 7 bit gồm 4 dữ liệu 29

Hình 2.5 - Các bit dữ liệu và bit chẵn lẻ trong mối quan hệ chồng gối với nhau 29

Hình 2.6 - Mô tả mã hamming 7,3 32

Hình 2.7 - ảnh gốc ban đầu 40

Hình 2.8 - Với ảnh nén với giá trị PSNR = 24.72 41

Hình 2.9 - Với ảnh nén với giá trị PSNR = 37.68 41

Hình 2.10 - Với ảnh nén với giá trị PSNR = 40 41

Hình 2.11 - Với ảnh nén với giá trị PSNR = 44.66 42

Hình 2.12 - Với ảnh nén với giá trị PSNR = 45.53 42

Hình 2.13 - Ảnh gốc trước khi ẩn giấu thông tin 42

Hình 2.14 - Ảnh ẩn giấu thông tin với mã Hamming 5,3 43

Hình 2.15 - Ảnh ẩn giấu thông tin với mã Hamming 7,3 43

Trang 8

6

DANH MỤC CHỮ VIẾT TẮT

STT TÊN VIẾT

cong người

Trang 9

đó của bên nhận và truyền tin thì mức độ an toàn chưa cao, dễ gây chú ý và có nguy cơ bị truy cập, giải mã được Chính vì vậy hiện nay ứng dụng giấu các thông điệp, các tài liệu vào các nguồn đa phương tiện đã đang được nghiên cứu sâu bởi

sự an toàn bảo mật cao ví dụ như file âm thanh, file ảnh, file text, Nguồn đa phương tiện này được gọi là môi trường chứa Mục đích của việc giấu thông tin

là làm cho đối phương không thể nhận biết được sự tồn tại của thông tin đã được giấu, bằng cách sử dụng một khóa bí mật được dùng chung bởi người gửi và người nhận Việc giải mã thông tin chỉ có thể thực hiện được khi có khoá Sau khi giải

mã, ta được thông tin mật

Hiện nay, giấu tin trong ảnh chiếm tỉ lệ lớn trong các ứng dụng giấu tin trong

dữ liệu đa phương tiện bởi vì lượng thông tin được trao đổi bằng hình ảnh là rất lớn Giấu tin trong ảnh là việc thực hiện giấu thông tin với môi trường chứa là các file ảnh Giấu tin trong ảnh có nhiều ứng dụng trong thực tế, ví dụ như trong việc xác định bản quyền sở hữu, chống xuyên tạc thông tin hay truyền dữ liệu một cách

an toàn,…

2 Mục đích của luận văn

Giấu tin là một lĩnh vực rộng lớn, giấu tin trọng ảnh cũng chiếm tỉ lệ lớn trong các ứng dụng giấu tin trong dữ liệu đa phương tiện Hiện nay có thể chia kỹ thuật giấu tin ra làm 2 loại lớn đó là thủy vân (Watermarking) và giấu tin mật (Steganography) Kỹ thuật giấu tin được kết hợp với các kỹ thuật mã hoá Hamming như là một cải tiến nhằm giúp cho người nhận tin hạn chế khả năng nhận tin sai Mặt khác Phương pháp Hamming Code được sử dụng trong kỹ thuật viễn thông để tính số lượng các bit trong một từ nhị phân (binary word) bị đổi

Trang 10

8

ngược, như một hình thức để ước tính số lỗi xảy ra trong quá trình truyền thông,

và vì thế, đôi khi, nó còn được gọi là khoảng cách tín hiệu (signal distance) Việc phân tích trọng lượng Hamming của các bit còn được sử dụng trong một số ngành, bao gồm lý thuyết tin học, lý thuyết mã hóa, và mật mã học Tuy vậy, khi so sánh các dãy ký tự có chiều dài khác nhau, hay các dãy ký tự có xu hướng không chỉ

bị thay thế không thôi, mà còn bị ảnh hưởng bởi dữ liệu bị lồng thêm vào, hoặc bị xóa đi, phương pháp đo lường phức tạp hơn, như khoảng cách Levenshtein (Levenshtein distance) là một phương pháp có tác dụng và thích hợp hơn Chính

vì những lí do trên tôi đã chọn nghiên cứu kết hợp các kỹ thuật giấu tin với kỹ thuật mã hóa để từ đó nâng cao hơn mức độ an toàn của truyền thông tin, dữ liệu bằng đề tài luận văn: “Nghiên cứu và ứng dụng thuật toán giấu tin vào ảnh số dựa trên mã Hamming (5,3) để lưu trữ các dữ liệu có giá trị”

3 Bố cục của luận văn

Bố cục của luận văn được chia làm 3 phần:

Chương 1 : Tổng quan các khái niệm về giấu tin

Trình bày tổng quan các khái niệm về giấu tin và tìm các tính chất đặc điểm của hệ thống ẩn giấu thông tin trong ảnh số Bên cạn đó nghiên cứu các ứng dụng phổ biến của kỹ thuật giấu tin

Chương 2: Nghiên cứu về một số kỹ thuật giấu tin và thuật toán giấu tin dựa

trên kỹ thuật Hamming Đi sâu vào nghiên cứu về thuật toán giấu tin vào ảnh số

sử dụng mã Hamming code (5,3) So sánh được ưu điểm của HammingCode (5,3) với HammingCode (7,3)

Trang 11

9

Chương 3: Cài đặt ứng dụng thử nghiệm để nhúng tin (dữ liệu có giá trị) trong

ảnh bằng kỹ thuật giấu tin mật dựa trên Hamming Code (5,3)

Trang 12

10

CHƯƠNG I: TỔNG QUAN CÁC KHÁI NIỆM GIẤU TIN

1.1 Giới thiệu về giấu tin và lịch sử của giấu tin

1.1.1 Khái niệm giấu tin

Giấu tin là một kỹ thuật nhúng một lượng thông tin nào đó vào trong một đối tượng dữ liệu số khác Kỹ thuật giấu tin nhằm mục đích bảo toàn và bảo mật thông tin nhằm bảo mật cho dữ liệu được ẩn giấu một cách kỹ càng trong một đối tượng khác sao cho người ngoài không thể phát hiện được (steganography) thường được áp dụng nhằm mục đích bảo vệ bản quyền, phát hiện xuyên tạc thông tin (watermarking)

Một trong những yêu cầu cơ bản của giấu tin đó là đảm bảo được tích chất

ẩn của thông tin được giấu trong đối tượng dữ liệu khác, đồng thời phải đảm bảo được chất lượng dữ liệu của đối tượng gốc không bị ảnh hưởng

Mục đích chính của kỹ thuật ẩn giấu là :

+ Bảo mật cho dữ liệu được đem giấu

+ Bảo mật cho chính đối tượng được dùng để giấu thông tin

Dữ liệu dùng để ẩn giấu thông tin ngày nay khá đa dạng có thể ẩn giấu trong môi trường âm thanh, văn bản, hình ảnh … Trong đó giấu tin trong ảnh số là kỹ thuật phổ biến hiện nay bởi vì nó sử dụng các dữ liệu thông tin dư thừa trong ảnh

để nhúng vào đó, kỹ thuật này luôn đảm bảo được thông tin đã giấu chỉ có người biết có thể tách được dữ liệu đã giấu, còn những người khác không thể cảm nhận được thông tin đã ẩn giấu bên trong

1.1.2 Lịch sử phát triển của giấu tin

Từ giấu thông tin (steganography) bắt nguồn từ Hi Lạp và được sử dụng cho tới ngày nay, có nghĩa là tài liệu được phủ (covered writing) [1] Các câu chuyện kể về kỹ thuật giấu thông tin được ghi lại và truyền qua nhiều thế hệ Theo những ghi chép sớm nhất về kỹ thuật giấu thông tin (thông tin được hiểu theo nghĩa nguyên thủy) thuộc về sử gia Hy-Lạp Herodotus Khi bạo chúa Hy-Lạp Histiaeus bị vua Darius bắt giữ ở Susa vào thế kỷ thứ năm trước Công nguyên,

Trang 13

11

ông ta đã gửi một thông báo bí mật cho con rể của mình là Aristagoras ở Miletus Histiaeus đã cạo trọc đầu của một nô lệ tin cậy và xăm một thông báo trên da đầu của người nô lệ ấy Khi tóc của người nô lệ này mọc đủ dài người nô lệ được gửi tới Miletus [2]

Hay một câu chuyện khác về thời Hy-Lạp cổ đại cũng do Herodotus ghi lại Môi trường để ghi văn bản chính là các viên thuốc được bọc trong sáp ong Demeratus, một người Hy-Lạp, cần thông báo cho Sparta rằng Xerxes định xâm chiếm Hy-Lạp Để tránh bị phát hiện, anh ta đã bóc lớp sáp ra khỏi các viên thuốc

và khắc thông báo lên bề mặt các viên thuốc này, sau đó bọc lại các viên thuốc bằng một lớp sáp mới Những viên thuốc này đã lọt qua mọi sự kiểm tra một cách

dễ dàng

Mực không màu là phát hiện đặc biệt cho bảo mật thông tin trong một thời gian dài Người Romans cổ đã biết sử dụng những chất sẵn có như nước quả, nước tiểu và sữa để viết các thông tin bí mật giữa những hàng vạn văn tự thông thường Khi bị hơ nóng, những thứ mực không nhìn thấy này trở nên sẫm màu và có thể đọc dễ dàng Mực không màu cũng được sử dụng trong thời gian chiến tranh Thế giới II [3]

Ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước nhưng kỹ thuật này được dùng chủ yếu trong quân đội và trong các cơ quan tình báo Mãi cho tới vài thập niên gần đây, giấu thông tin mới nhận được sự quan tâm của các nhà nghiên cứu và các viện công nghệ thông tin với hàng loạt công trình nghiên cứu giá trị Cuộc cách mạng số hoá thông tin và sự phát triển nhanh chóng của mạng truyền thông là nguyên nhân chính dẫn đến sự thay đổi này Những phiên bản sao chép hoàn hảo, các kỹ thuật thay thế, sửa đổi tinh vi, cộng với sự lưu thông phân phối trên mạng của các dữ liệu đa phương tiện đã sinh ra nhiều vấn đề nhức nhối về nạn ăn cắp bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép

Trang 14

12

1.1.3 Các khái niệm và một số đặc điểm của giấu tin trong ảnh số

Giấu tin trong ảnh số là một phần của giấu tin bằng việc sử dụng phương tiện mang dữ liệu là ảnh số Ảnh được sử dụng để nhúng thông tin sẽ được gọi là ảnh gốc (host imgae), ảnh sau khi đã được nhúng thông tin vào gọi là ảnh kết quả (result image) Ảnh thu được sẽ có nhưng điểm khác so với ảnh gốc gọi là nhiễu ảnh, ảnh kết quả càng ít nhiễu thì càng khó nghi ngờ và phát hiện ra tồn tại của thông tin được nhúng bên trong

1.1.4 Một số khái niệm:

+ Môi trường: là dữ liệu gốc dùng để nhúng thông tin, nếu ta sử dụng môi

trường là ảnh thì ta gọi là ảnh môi trưởng, nếu sử dụng môi trường là audio thì ta gọi là audio môi trường …

+ Dữ liệu nhúng: là dữ liệu được nhúng vào môi trường hay nói cách khác

là thông tin được giấu bên trong ảnh môi trường

+ Đối tượng nhúng: là một đối tượng đa phương tiện nào đó như đối tượng

âm thanh, hình ảnh hay video…

+ Tính vô hình: Đây là yêu cầu quan trọng của bất kỳ một hệ thống giấu

tin Nó đảm bảo cho tính chất bảo mật thông tin trong phương tiện nhúng

+ Tính mạnh mẽ : là yêu cầu thứ hai của một hệ giấu tin Tính mạnh mẽ

là nói đến khả năng chịu được các thao tác biến đổi nào đó trên phương tiện nhúng và các cuộc tấn công có chủ đích

+ Khả năng nhúng: Là yêu cầu thứ ba của một hệ giấu tin Khả năng

nhúng chính là số lượng thông tin nhúng được nhúng trong đối tượng nhúng

+ Nhiễu: Là phương tiện nhúng xuất hiện những đặc điểm lạ so với đối

tượng ban đầu

+ Thuỷ vân số: Là một kỹ thuật giấu các thuỷ vân vào trong phương tiện

chứa, kỹ thuật không yêu cầu về tính không nhìn thấy của thông tin nhúng

+ Watermarking : là kỹ thuật nhúng một biểu tượng, còn gọi là thuỷ vân

(watermark) vào trong ảnh môi trường để xác định quyền sở hữu ảnh môi

Trang 15

13

trường Kích thước của biểu tượng thường nhỏ ( từ vài bit đến vài nghìn bit )

Kỹ thuật này cho phép đảm bảo nguyên vẹn biểu tượng khi ảnh môi trường bị biến đổi bởi các phép thao tác như lọc (filtering), nén mất dữ liệu (lossy

compression), hay các biến đổi hình học, Tuy nhiên, việc đảm bảo nguyên vẹn biểu tượng không kể đến khi có sự tấn công dựa trên việc hiểu rõ thuật toán

và có bộ giải mã trong tay

+ Image hiding : là kỹ thuật dùng một ảnh môi trường để lưu trữ và chuyển

giao các dữ liệu quan trọng với kích thước tương đối lớn một cách an toàn Mục đích của ảnh image hiding là làm cho dữ liệu trở nên không quan sát được đối với thị giác của con người

1.1.5 Đặc điểm của ẩn giấu thông tin trên ảnh số

Các kỹ thuật ẩn giấu thông tin hiện nay đang có xu hướng phát triển nhanh nhất là với thời đại công nghệ 4.0 hiện nay, tuy nhiên dù phát triển nhanh đến đâu vẫn sẽ được đánh giá dựa trên một số đặc điểm như sau :

+ Tính vô hình của thông tin ẩn giấu bên trong : Đặc điểm này được

phát triển dựa trên hệ thống thị giác của con người Có thể nói thông tin được nhúng bên trong thì thị giác của con người không thể phân biệt được ảnh có thông tin nhúng gọi là ảnh kết quả và ảnh ban đầu Trong khi image hiding yêu cầu tính

vô hình của thông tin giấu ở mức độ cao thì watermarking lại chỉ yêu cầu ở một cấp độ nhất định Chẳng hạn như người ta áp dụng watermarking cho việc gắn một biểu tượng mờ vào một chương trình truyền hình để bảo vệ bản quyền

+ Bảo mật thông tin ẩn giấu: Thuật toán nhúng tin được coi là có tính bảo

mật nếu thông tin được nhúng không bị tìm ra khi bị tấn công một cách có chủ đích trên cơ sở những hiểu biết đầy đủ về thuật toán nhúng tin và có bộ giải mã (trừ khoá bí mật), hơn nữa còn có được ảnh có mang thông tin (ảnh kết quả) Đối với ảnh image hiding đây là một yêu cầu rất quan trọng Chẳng hạn đối với thuật toán dò tin trong ảnh đen trắng kích thước m*n, độ phức tạp vẫn còn lên tới 2m*n

phép tính (O(2m*n)) khi đã biết ma trận trọng số dùng trong quá trình giấu tin

Trang 16

14

+ Tỷ lệ giấu tin: Lượng thông tin giấu so với kích thước ảnh môi trường

cũng là một vấn đề cần quan tâm trong một thuật toán giấu tin Có thể chỉ giấu một bit thông tin vào mỗi ảnh mà không cần lo lắng về độ nhiễu của ảnh nhưng như vậy sẽ rất kém hiệu quả khi mà thông tin cần giấu có kích thước được tính bằng KB Các thuật toán đều cố gắng đạt được mục đích làm thế nào giấu được

nhiều thông tin nhất mà không gây ra nhiễu đáng kể

+ Ảnh môi trường đối với quá trình giải mã: Các kỹ thuật giấu tin phải

phân biệt rõ ràng quá trình giải mã để lấy thông tin giấu có cần ảnh gốc hay không

Đa số với kỹ thuật giấu tin mật thì không cần ảnh gốc khi giải mã, thông tin được giấu trong ảnh sẽ được mang cùng với dự liệu ảnh, khi giải mã chỉ cần ảnh mang thông tin giấu mà không dùng đến ảnh gốc để so sánh đối chiếu Tuy nhiên, nhiều

kỹ thuật giấu tin cũng sử dụng ảnh gốc khi giải mã ảnh, phương pháp này có tác dụng giúp cho việc đồng bộ hóa ảnh giấu và ảnh gốc Điều này rất cần thiết khi phải xử lý với các tấn công hình học trên ảnh ( phép xoay ảnh) Nhưng phương pháp này cũng gặp khó khăn khi dữ liệu gốc lớn (giấu tin trong video) Đối với

kỹ thuật giấu tin mật (Steganography) thì các tính chất ẩn, lượng thông tin giấu

và độ an toàn là ba tính chất quan trọng nhất

+ Đảm bảo yêu cầu chất lượng ảnh sau khi giấu tin: Sau khi giấu thông

tin bên trong ảnh phải đảm bảo được yêu cầu không bị biến đổi để có thể bị phát hiện dễ dàng so với ảnh gốc Yêu cầu này dường như khá đơn giản đối với ảnh màu và ảnh đa cấp xám bởi mỗi pixel ảnh được biểu diễn trên nhiều bit, nhiều giá trị và khi ta thay đổi một giá trị nhỏ nào đó thì chất lượng ảnh không thay đổi, thông tin giấu khó bị phát hiện Nhưng đối với ảnh đen trắng thì việc giấu tin phức tạp hơn nhiều, vì ảnh đen trắng mỗi pixel chỉ gồm hai giá trị hoặc trắng hoặc đen

và khi biến đổi một bit từ đen sang trắng và ngược lại thì rất dễ bị phát hiện Vì thế với mỗi loại ảnh ta phải áp dụng các kỹ thuật giấu riêng để đảm bảo chất lượng

ảnh

1.2 Ứng dụng phổ biến của kỹ thuật giấu tin

Trang 17

15

1.2.1 Bảo vệ bản quyền tác giả (copyright protection)

Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số (digital watermarking) - một dạng của phương pháp giấu tin Một thông tin nào đó mang

ý nghĩa quyền sở hữu tác giả (người ta gọi nó là thuỷ vân - watermark) sẽ được nhúng vào trong các sản phẩm, thuỷ vân đó chỉ một mình người chủ sở hữu hợp pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm Giả sử có một thành phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh, video cần được lưu thông trên mạng Để bảo vệ các sản phẩm chống lại các hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này Việc dán tem hay chính là việc nhúng thuỷ vân cần phải đảm bảo không để lại một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm Yêu cầu kỹ thuật đối với ứng dụng này là thuỷ vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thuỷ vân này mà không được phép của người chủ sở hữu thì chỉ có cách là phá huỷ sản phẩm

1.2.2 Xác thực thông tin hay phát hiện xuyên tạc thông tin

Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi hay không Các thuỷ vân nên được ẩn để tránh được sự tò mò của kẻ thù, hơn nữa việc làm giả các thuỷ vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét Trong các ứng dụng thực tế, người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi (ví dụ như phân biệt xem một đối tượng

đa phương tiện chứa thông tin giấu đã bị thay đổi, xuyên tạc nội dung hay là chỉ

bị nén mất dữ liệu) Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin nhiều và thuỷ vân không cần bền vững trước các phép xử lý trên đối tượng

đã được giấu tin

1.2.3 Nhận dạng vân tay hay dán nhãn

Thuỷ vân được sử dụng để nhận diện người gửi hay người nhận của một thông tin nào đó trong ứng dụng phân phối sản phẩm Thuỷ vân trong trường

Trang 18

16

hợp này cũng tương tự như số serial của sản phẩm phần mềm Mỗi một sản phẩm

sẽ mang một thuỷ vân riêng Ví dụ như các vân khác nhau sẽ được nhúng vào các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều người Với những ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thuỷ vân tránh sự xoá giấu vết trong khi phân phối

1.2.3 Điều khiển sao chép

Điều mong muốn đối với các hệ thống phân phối dữ liệu đa phương tiện

là tồn tại một kỹ thuật chống sao chép trái phép dữ liệu Có thể sử dụng thuỷ vân để chỉ trạng thái sao chép của dữ liệu Các thuỷ vân trong những trường hợp này được sử dụng để điều khiển sao chép đối với các thông tin Các thiết bị phát hiện ra thuỷ vân thường được gắn sẵn vào trong các hệ thống đọc ghi Ví

dụ như hệ thống quản lí sao chép DVD đã được ứng dụng ở Nhật Thuỷ vân mang các giá trị chỉ trạng thái cho phép sao chép dữ liệu như “copy never” - không được phép sao chép hay “copy once”

- chỉ được copy một lần, sau khi copy xong, bộ đọc, ghi thuỷ vân sẽ ghi thuỷ vân mới chỉ trạng thái mới lên DVD Các ứng dụng loại này cũng yêu cầu thuỷ vân phải được bảo đảm an toàn và cũng sử dụng phương pháp phát hiện thuỷ vân đã giấu mà không cần thông tin gốc

1.2.4 Giấu tin mật

Các thông tin giấu được trong những trường hợp này càng nhiều càng tốt, việc giải mã để nhận được thông tin cũng không cần phương tiện chứa gốc ban đầu Các yêu cầu mạnh về chống tấn công của kẻ thù không cần thiết lắm, thay vào đó là thông tin giấu phải được bảo mật

1.3 Tiêu chuẩn đánh giá của kỹ thuật giấu tin trong ảnh

1.3.1 Tin cậy

Tính tin cậy là đặc tính của hệ thống tin tực trên mạng có thể trong một điều kiện nhất định vàn trong một thời gian xác định, hoàn thành một chức năng quy định Tính tin cậy là một trong những yếu tố cơ bản nhất về an toàn

Trang 19

+ R là biểu thị tính tin cậy

+ MTBF Thời gian trung bình giữa các sự cố

+ MTTR Thời gian trung bình sự cố được khắc phục

Đối với các kỹ thuật giấu tin trong ảnh, tính tin cậy dựa trên đặc điểm của

hệ thống thị giác của con người Thông tin nhúng là không thấy được, một người với thị giác bình thường không phân biệt được ảnh môi trường và ảnh kết quả Trong khi Image Hidding yêu cầu tính vô hình của thông tin giấu ở mức cao thì Watermarking chỉ yêu cầu ở một cấp độ nhất định

1.3.2 Khả dụng

Tính khả dụng là đặc tính mà tin tức trên mạng được các thực thể có ủy quyền tiếp cận và sử dụng theo yêu cầu, là đặc tính mà dịch vụ tin tức của mạng lưới khi cần thiết cho phép người sử dụng hay thực thể ủy quyền khác sử dụng

Lượng thông tin giấu so với kích thước ảnh môi trường cũng là một vấn

đề quan trọng trong một thuật toán giấu tin Rõ ràng là có thể chỉ giấu 1 bit thông tin vào mỗi ảnh mà không cần lo lắng về độ nhiễu của ảnh nhưng như vậy

sẽ rất kém hiệu quả khi thông tin cần giấu có kích thức tính bằng KB Các thuật toán đều đang cố gắng giấu đạt được mục đích làm thế nào để giấu được nhiều tin mà không gây ra nhiễu đáng kể

1.3.3 An toàn và bảo mật

Tính an toàn và bảo mật thông tin là đặc tính tin tức không bị tiết lộ bởi người sử dụng khác khi muốn xâm nhập vào

Trang 20

18

Thuật toán nhúng tin được coi là có tính an toàn và bảo mật nếu thông tin được nhúng không bị tìm ra khi tấn công một cách có chủ đích trên cơ sở những hiểu biết đầy đủ về thuật toán nhúng tin và có bộ giải mã (trừ khóa bí mật), hơn nữa còn có được ảnh đã mang thông tin (ảnh kết quả) Đối với Image Hidding đây

là một yêu cầu rất quan trọng Chẳng hạn đối với thuật toán dò tìm ảnh thứ cấp, kích thước mxn, độ phức tạp vẫn còn lến tới 2mn khi đã biết ma trận trọng số dùng trong quá trình giấu tin

1.3.4 Hoàn chỉnh

Tính hoàn chỉnh là đặc tính tin tức mà trong quá trình chuyển dẫn đảm bảo không bị xóa bỏ, sửa đổi, giả mạo, làm rối trật tự, v.v Tính hoàn chỉnh là một loại tính an toàn tin tức, nó yêu cầu giữ nguyên dang tin tức , tức là tái tạo, lưu trữ, truyền dẫn chính xác tin tức

Yêu cầu cuối cùng là thuật toán phải cho phép lấy lại được thông tin đã giấu trong ảnh mà không cần có ảnh môi trường

1.3.5 Đúng đắn

Thuật toán phải thể hiện được sự đúng đắn, cụ thể với dữ liệu vào cho trước, thuật toán hoạt động sau một số bước hữu hạn, bước sẽ dừng và cho kết quả mong muốn Kết quả mong muốn thường được xác định qua định nghĩa

Để chứng minh tính đúng đắn của thuật toán người ta có thể căn cứ vào một trong ba nhận xét sau đây:

+ Bằng phép thử chỉ có thể phát hiện tính sai của thuật toán chứ không thể khẳng định tính đúng đắn của thuật toán

+ Muốn khẳng định tính đúng của thuật toán phải tiến hành chứng minh + Có thể và nên chứng minh tính đúng đắn của thuật toán bằng cách dựa trên chính văn bản của thuật toán

1.4 Các phương pháp phân tích ảnh có giấu tin

Phân tích trực quan:

Trang 21

19

Đây là phương pháp đơn giản nhất mặc dù kết quả thường không được đáng tin cậy Việc phát hiện khả năng một ảnh có giấu tin hay không bằng cách phân tích ảnh một cách trực quan và tìm kiếm những điểm bất thường

Thật vậy, việc thay đổi bảng màu (của một ảnh màu) dù nhỏ để giấu thông điệp bí mật có thể dẫn đến kết quả là sự thay đổi màu sắc lớn trên ảnh gốc

Phương pháp này thường dựa vào quan sát hoặc dùng biểu đồ histogram giữa ảnh gốc và ảnh chưa giấu tin để phát hiện ra sự khác biệt giữa hai ảnh căn cứ đưa ra vấn đề nghi vấn Với phương pháp phân tích này thường khó phát hiện với ảnh có độ nhiễu cao và kích cỡ lớn

Phân tích theo định dạng ảnh

Hiện nay có nhiều định dạng tệp tin ảnh khác nhau như GIF, BMP, PNG, JPEG Mỗi loại ảnh có đặc điểm và cấu trúc định dạng tệp tin khác nhau chính vì vậy phương pháp này rất rộng và thường dựa vào các dạng ảnh để đoán nhận kỹ thuật giấu hay sử dụng, như các ảnh bitmap thường hay sử dụng giấu trên miền LSB Do đó, khi thực hiện giấu tin, chẳng hạn giấu tin theo LSB, sẽ cho sự thay đổi trên ảnh kết quả ở các điểm ảnh khác nhau Và khi thực hiện phát hiện ảnh giấu tin cũng vậy

Phân tích theo thống kê

Theo Plitzman và Westfeld, lý thuyết thống kê có thể áp dụng để phân tích thống kê các cặp giá trị (cặp giá trị điểm ảnh, cặp các hệ số, cặp các chỉ số (bảng màu) để tìm sự khác biệt ở bit LSB Phương pháp này thường đưa ra độ tin cậy cao hơn và đặc biệt là cho tập ảnh lớn

1.5 Kết luận chương 1

Ở chương 1 chúng ta đã tìm hiểu được ẩn giấu thông tin và lịch sử của ẩn giấu thông tin, ngoài ra ta cũng đã tìm hiểu được các tính chất đặc điểm của hệ thống ẩn giấu thông tin trong ảnh số Trong chương kế tiếp em sẽ tiếp tục nghiên cứu một số các thuật toán giấu tin trong ảnh số và thuật toán giấu tin dựa trên kỹ thuật Hamming Đi sâu vào nghiên cứu về thuật toán giấu tin vào ảnh số sử dụng

Trang 22

20

mã Hamming code (5,3) So sánh được ưu điểm của HammingCode (5,3) với HammingCode (7,3)

Trang 23

21

CHƯƠNG II: MỘT SỐ KỸ THUẬT GIẤU TIN TRONG ẢNH SỐ VÀ KỸ

THUẬT GIẤU TIN DỰA VÀO MÃ HAMMING CODE (5,3)

2.1 Một số kỹ thuật giấu tin trong ảnh số

2.1.1 Phân loại các kỹ thuật giấu tin

Có thể chia kỹ thuật giấu tin ra làm 2 loại lớn đó là thủy vân (watermaking)

và giấu tin mật (steganography)

Hình 2.1 - phân loại các kỹ thuật giấu tin

Giấu tin mật : Đây là ứng dụng phổ biến nhất từ trước tới 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 sau:

+ Độ an toàn của tin giấu (khả năng không bị phát hiện của tin giấu)

+ 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ảo mật của thông tin trong trường hợp giấu tin bị phát hiện

Trang 24

22

Giấu thông tin bí mật không quan tâm nhiều tới các yêu cầu về khả năng bền vững của phương tiện chứa Việc giải mã để nhận được thông tin cũng không cần phương tiện chứa gốc ban đầu Các yêu cầu về khả năng chống tấn công không được quan tâm lắm, thay vào đó là thông tin giấu phải được bảo mật Đối với các thuật toán giấu thông tin mật, người ta không chú trọng đến việc bảo vệ thông tin mật trước sự tấn công của các đối thủ mà thay vào đó quan tâm đến tính ẩn và tính

an toàn đối với dữ liệu cần giấu

Thủy vân : Khác với kỹ thuật giấu thông tin để giữ bí mật thông tin, giấu

thông tin thủy vân có mục tiêu là bảo vệ bản quyền và xác thực thông tin Vì vậy,

kỹ thuật này không chống lại việc khai thác thông tin, mà quan trọng nhất đối với

nó là đảm bảo tuyệt đối tính bền vững, nghĩa là không thể hủy bỏ được thông tin giấu nó trừ khi hủy chính sản phẩm chứa Ngoài ra các thông tin nhúng cần có ảnh hưởng tối thiểu đối với phương tiện chứa, vì vậy thông tin cần giấu càng nhỏ càng tốt

Bảng so sánh giữa giấu tin mật và thủy vân

Giấu tin mật (steganography) Thủy vân (watermaking) Mục tiêu Tàng hình các phiên liên lạc

để bảo vệ thông tin

Chủ yếu phục vụ cho mục đích bảo vệ bản quyền, xuất bản

Cách thực hiện Không làm thay đổi phương

tiện chứa thông tin

Có thể tác động nhỏ về cảm nhận tới phương tiện chứa thông tin

Yêu cầu − Tập trung vào việc giấu được

càng

− nhiều thông tin càng tốt, ứng dụng trong truyền dữ liệu thông tin mật

− Không cần giấu nhiều thông tin, chỉ cần lượng thông tin nhỏ đặc trưng cho bản quyền của người

sở hữu

Trang 25

23

− Cố gắng làm nhỏ nhất những ảnh hưởng đến chất lượng của đối tượng vỏ để không bị chú

ý đến dữ liệu đã được giấu trong đó

− Thay đổi stego-object cũng làm cho dữ liệu giấu bị sai lệch (nhất là ứng dụng trong nhận thực thông tin)

− Trong trường hợp thuỷ vân nhìn thấy thì thuỷ vân

sẽ hiện ra

− Thuỷ vân phải bền vững với mọi tấn công có chủ đích hoặc không có chủ

đích vào sản phẩm

2.1.2 Mô hình của kỹ thuật giấu tin

Thành phần cơ bản của kỹ thuật giấu thông tin gồm: Thuật toán giấu tin

và bộ giải mã thông tin (tính đến cả khóa mật)

Thuật toán giấu tin được dùng để giấu thông tin vào một phương tiện chứa bằng cách sử dụng một khoá bí mật được dùng chung bởi người mã và người giải

mã, việc giải mã thông tin chỉ có thể thực hiện được khi có khoá Bộ giải mã thực hiện quá trình giải mã trên phương tiện chứa đã chứa dữ liệu và trả lại thông điệp

ẩn trong đó

Hình 2.2 - Lược đồ mô tả quá trình giấu tin

Trang 26

24

Hình 2.2 biểu diễn quá trình giấu tin cơ bản Phương tiện chứa bao gồm các đối tượng được dùng làm môi trường để giấu tin như text, audio, video thông tin giấu là một lượng thông tin mang một ý nghĩa nào đó như ảnh, logo, đoạn văn bản tuỳ thuộc vào mục đích của người sử dụng Thông tin sẽ được giấu vào trong phương tiện chứa nhờ một bộ nhúng Bộ nhúng là những chương trình, triển khai các thuật toán để giấu tin và được thực hiện với một khoá bí mật giống như các hệ mật mã cổ điển Sau khi giấu tin, ta thu được phương tiện chứa bản tin đã giấu và có thể phân phối sử dụng trên mạng

Hình 2.3 - Lược đồ mô tả quá trình giải mã tin Hình 2.3 chỉ ra các quy trình giải mã thông tin đã giấu Sau khi nhận được phương tiện chứa đã giấu 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 giấu ban đầu

Trang 27

25

2.2 Mã Hamming

2.2.1 Khái niện mã Hamming

Trong những năm của thập niên kỷ 1940, Hamming làm việc tại Bell Labs trên máy tính Bell Model V, một máy điện cơ (electromechanical) dùng rơ-le (relay-based), với tốc độ rất chậm, mấy giây đồng hồ một chu kỳ máy Nhập liệu được cho vào máy bằng những cái thẻ đục lỗ (punch cards), và hầu như máy luôn luôn gây lỗi trong khi đọc Trong những ngày làm việc trong tuần, những mã đặc biệt được dùng để tìm ra lỗi và mỗi khi tìm được, nó nhấp nháy đèn báo hiệu, báo cho người điều khiển biết để họ sửa, điều chỉnh máy lại Trong thời gian ngoài giờ làm việc hoặc trong những ngày cuối tuần, khi người điều khiển máy không

có mặt, mỗi khi có lỗi xảy ra, máy tính tự động bỏ qua chương trình đương chạy

và chuyển sang công việc khác

Hamming thường làm việc trong những ngày cuối tuần và ông càng ngày càng trở nên bực tức mỗi khi ông phải khởi động lại các chương trình ứng dụng

từ đầu, do chất lượng kém, không đáng tin cậy (unreliability) của bộ máy đọc các thẻ đục lỗ Mấy năm tiếp theo đó, ông dồn tâm lực vào việc xây dựng hằng loạt các thuật toán có hiệu quả cao để giải quyết vấn đề sửa lỗi Năm 1950, ông đã công bố một phương pháp mà hiện nay được biết là Mã Hamming Một số chương trình ứng dụng hiện thời vẫn còn sử dụng mã này của ông

Trong viễn thông (telecommunication), mã Hamming là một mã sửa lỗi tuyến tính (linear error-correcting code), được đặt tên theo tên của người phát minh ra nó, Richard Hamming Mã Hamming có thể phát hiện một bit hoặc hai bit bị lỗi (single and double-bit errors) Mã Hamming còn có thể sửa các lỗi do một bit bị sai gây ra Ngược lại với mã của ông, mã chẵn lẻ (parity code) đơn giản vừa không có khả năng phát hiện các lỗi khi 2 bit cùng một lúc bị hoán vị (0 thành

1 và ngược lại), vừa không thể giúp để sửa được các lỗi mà nó phát hiện được

Trang 28

26

2.2.2 Các mã trước thời kỳ Hamming

Nhiều mã phát hiện lỗi đơn giản đã được sử dụng trước khi có mã Hamming, nhưng không có mã nào hiệu quả bằng mã Hamming với một tổng phí tương đương

Mã chẵn lẻ : Bit chẵn lẻ

Mã chẵn lẻ thêm một bit vào trong dữ liệu, và bit cho thêm này cho biết

số lượng bit có giá trị 1 của đoạn dữ liệu nằm trước là một số chẵn hay một số

lẻ Nếu một bit bị thay đổi trong quá trình truyền dữ liệu, giá trị chẵn lẻ trong thông điệp sẽ thay đổi và do đó có thể phát hiện được lỗi (Chú ý rằng bit bị thay đổi có thể lại chính là bit kiểm tra) Theo quy ước chung, bit kiểm tra có giá trị bằng 1 nếu số lượng bit có giá trị một trong dữ liệu là một số lẻ, và giá trị của bit kiểm tra bằng 0 nếu số lượng bit có giá trị một trong dữ liệu là một số chẵn Nói cách khác, nếu đoạn dữ liệu và bit kiểm tra được gộp lại cùng với nhau, số lượng bit có giá trị bằng 1 luôn luôn là một số chẵn

Việc kiểm tra dùng mã chẵn lẻ là một việc không được chắc chắn cho lắm,

vì nếu số bit bị thay đổi là một số chẵn (2, 4, 6 - cả hai, bốn hoặc sáu bit đều bị hoán vị) thì mã này không phát hiện được lỗi Hơn nữa, mã chẵn lẻ không biết được bit nào là bit bị lỗi, kể cả khi nó phát hiện là có lỗi xảy ra Toàn bộ dữ liệu

đã nhận được phải bỏ đi, và phải truyền lại từ đầu Trên một kênh truyền bị nhiễu, việc truyền nhận thành công có thể mất rất nhiều thời gian, nhiều khi còn không truyền được nữa Mặc dù việc kiểm tra bằng mã chẵn lẻ không được tốt cho lắm, song vì nó chỉ dùng 1 bit để kiểm tra cho nên nó có số tổng phí (overhead) thấp nhất, đồng thời, nó cho phép phục hồi bit bị thất lạc nếu người ta biết được vị trí của bit bị thất lạc nằm ở đâu

Mã hai-trong-năm:

Trong những năm của thập niên kỷ 1940, Bell có sử dụng một mã hiệu phức tạp hơn một chút, gọi là mã hai-trong-năm (two-out-of-five code) Mã này đảm bảo mỗi một khối 5 bit (còn được gọi là khối-5) có chính xác hai bit có giá trị

Trang 29

27

bằng 1 Máy tính có thể nhận ra là dữ liệu nhập vào có lỗi nếu trong một khối 5 bit không 2 bit có giá trị bằng 1 Tuy thế, mã hai-trong-năm cũng chỉ có thể phát hiện được một đơn vị bit mà thôi; nếu trong cùng một khối, một bit bị lộn ngược thành giá trị 1, và một bit khác bị lộn ngược thành giá trị 0, quy luật hai-trong-năm vẫn cho một giá trị đúng (remained true), và do đó nó không phát hiện là có lỗi xảy ra

Tái diễn dữ liệu:

Một mã nữa được dùng trong thời gian này là mã hoạt động bằng cách nhắc

đi nhắc lại bit dữ liệu vài lần (tái diễn bit được truyền) để đảm bảo bit dữ liệu được truyền, truyền đến nơi nhận trọn vẹn Chẳng hạn, nếu bit dữ liệu cần được truyền có giá trị bằng 1, một mã tái diễn n=3 sẽ cho truyền gửi giá trị “111” Nếu

ba bit nhận được không giống nhau, thì hiện trạng này báo cho ta biết rằng, lỗi trong truyền thông đã xảy ra Nếu kênh truyền không bị nhiễu, tương đối đảm bảo, thì với hầu hết các lần truyền, trong nhóm ba bit được gửi, chỉ có một bit là bị thay đổi Do đó các nhóm 001, 010, và 100 đều tương đương cho một bit có giá trị 0, và các nhóm 110, 101, và 011 đều tương đương cho một bit có giá trị 1 - lưu

ý số lượng bit có giá trị 0 trong các nhóm được coi là có giá trị 0, là đa số so với tổng số bit trong nhóm, hay 2 trong 3 bit, tương đương như vậy, các nhóm được coi là giá trị 1 có số lượng bit bằng 1 nhiều hơn là các bit có giá trị 0 trong nhóm

- chẳng khác gì việc các nhóm bit được đối xử như là “các phiếu bầu” cho bit dữ liệu gốc vậy Một mã có khả năng tái dựng lại thông điệp gốc trong một môi trường nhiễu lỗi được gọi là mã “sửa lỗi” (error-correcting code)

Tuy nhiên, những mã này không thể sửa tất cả các lỗi một cách đúng đắn hoàn toàn Chẳng hạn chúng ta có một ví dụ sau: nếu một kênh truyền đảo ngược hai bit và do đó máy nhận thu được giá trị “001”, hệ thống máy sẽ phát hiện là có lỗi xảy ra, song lại kết luận rằng bit dữ liệu gốc là bit có giá trị bằng 0 Đây là một kết luận sai lầm Nếu chúng ta tăng số lần các bit được nhắc lại lên 4 lần, chúng

ta có thể phát hiện tất cả các trường hợp khi 2 bit bị lỗi, song chúng ta không thể

Trang 30

28

sửa chữa chúng được (số phiếu bầu “hòa”); với số lần nhắc lại là 5 lần, chúng ta

có thể sửa chữa tất cả các trường hợp 2 bit bị lỗi, song không thể phát hiện ra các trường hợp 3 bit bị lỗi

Nói chung, mã tái diễn là một mã hết sức không hiệu quả, giảm công suất xuống 3 lần so với trường hợp đầu tiên trong ví dụ trên, và công suất làm việc giảm xuống một cách nhanh chóng nếu chúng ta tăng số lần các bit được nhắc lại với mục đích để sửa nhiều lỗi hơn

Hamming nghiên cứu các kế hoạch mã hóa hiện có, bao gồm cả mã trong-năm, rồi tổng quát hóa khái niệm của chúng Khởi đầu, ông xây dựng một danh mục (nomenclature) để diễn tả hệ thống máy, bao gồm cả số lượng bit dùng cho dữ liệu và các bit sửa lỗi trong một khối Chẳng hạn, bit chẵn lẻ phải thêm 1 bit vào trong mỗi từ dữ liệu (data word) Hamming diễn tả phương pháp này là

hai-mã (8,7) Nó có nghĩa là một từ dữ liệu có tổng số bit là 8 bit, trong đó chỉ có 7 bit là các bit của dữ liệu mà thôi Theo phương pháp suy nghĩ này, mã tái diễn (nhắc lại) ở trên phải được gọi là mã (3,1) Tỷ lệ thông tin là tỷ lệ được tính bằng việc lấy con số thứ hai chia cho con số thứ nhất Như vậy với mã tái diễn (3,1) ở trên, tỷ lệ thông tin của nó là 1

3

Hamming còn phát hiện ra nan đề với việc đảo giá trị của hai hoặc hơn hai bit nữa, và miêu tả nó là "khoảng cách" (distance) (hiện nay nó được gọi là khoảng cách Hamming (Hamming distance) - theo cái tên của ông) Mã chẵn lẻ có khoảng cách bằng 2, vì nếu có 2 bit bị đảo ngược thì lỗi trong truyền thông trở nên vô hình, không phát hiện được Mã tái diễn (3,1) có khoảng cách là 3, vì 3 bit, trong cùng một bộ ba, phải bị đổi ngược trước khi chúng ta được một từ mã khác Mã tái diễn (4,1) (mỗi bit được nhắc lại 4 lần) có khoảng cách bằng 4, nên nếu 2 bit trong cùng một nhóm bị đảo ngược thì lỗi đảo ngược này sẽ đi thoát mà không bị phát hiện

Trang 31

29

Cùng một lúc, Hamming quan tâm đến hai vấn đề; tăng khoảng cách và đồng thời tăng tỷ lệ thông tin lên, càng nhiều càng tốt Trong những năm thuộc niên kỷ 1940, ông đã xây dựng một số kế hoạch mã hóa Những kế hoạch này đều dựa trên những mã đang tồn tại song được nâng cấp và tiến bộ một cách sâu sắc

Bí quyết chìa khóa cho tất cả các hệ thống của ông là việc cho các bit chẵn lẻ gối lên nhau (overlap), sao cho chúng có khả năng tự kiểm tra lẫn nhau trong khi cùng kiểm tra được dữ liệu nữa

Hình 2.4 - Mô hình của một mã Hamming 7 bit gồm 4 dữ liệu

Hình 2.5 - Các bit dữ liệu và bit chẵn lẻ trong mối quan hệ chồng gối với nhau

Trang 32

30

Thuật toán cho việc sử dụng bit chẵn lẻ trong 'mã Hamming' như sau: Tất cả các bit ở vị trí là các số mũ của 2 (powers of two) được dùng làm bit chẵn lẻ (các vị trí như 1, 2, 4, 8, 16, 32, 64 v.v hay nói cách khác 20, 21, 22, 23, 24,

25, 26 ….)

Tất cả các vị trí bit khác được dùng cho dữ liệu sẽ được mã hóa (các vị trí

3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17,….)

Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong từ mã (code word)

Vị trí của bit chẵn lẻ quyết định chuỗi các bit mà nó luân phiên kiểm tra và bỏ qua (skips)

Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm 1 bit(n), bỏ qua 1 bit(n), kiểm 1 bit(n),

Vị trí 16(n=16): bỏ qua 15 bit(n-1), kiểm 16 bit(n), bỏ qua 16 bit(n), kiểm

16 bit(n), bỏ qua 16 bit(n), …

Vị trí 32(n=32): bỏ qua 31 bit(n-1), kiểm 32 bit(n), bỏ qua 32 bit(n), kiểm

32 bit(n), bỏ qua 32 bit(n), …

và tiếp tục như trên

Nói cách khác, bit chẵn lẻ tại vị trí 2k kiểm các bit ở các bit ở vị trí t có giá trị logic của phép toán AND giữa k và t là khác 0

2.2.3 Mã Hamming (7,3)

Trang 33

31

Tương tự như lý thuyết đã nêu, mã Hamming (7,3) là một loại mã Hamming cụ thể được thiết kế để mã hóa dữ liệu thành một dãy 7 bit, bao gồm 4 bit dữ liệu ban đầu và 3 bit kiểm tra Mã Hamming (7,3) được sử dụng để phát hiện và sửa lỗi trong dãy bit dữ liệu

4 bit và được tích hợp trong quá trình truyền dữ liệu hoặc lưu trữ dữ liệu để đảm bảo tính toàn vẹn

Đối với mã Hamming (7,3):

- Đội dài của mã là : n=7

- Số lượng bit dữ liệu: m=4

- Số lượng bit chẵn lẻ cần thiết : k=3

Thỏa mãn điều kiện :

Mã hóa của mã Hamming (7,3)

Trong mã Hamming này, các bít chẵn lẻ được đặt tại vị trí bit có lũy thừa bằng 2 :

2 0 ,2 1 ,2 2 … Vậy trong mã Hamming 7,3 này 3 bit chẵn lẻ sẽ ở vị trí thứ : 1,2,4 ký hiệu

là P1,P2,P3 Sau khi đã đặt các bit chẵn lẽ thì 4 bit còn lại sẽ là 4 bit dữ liệu ký hiệu là D1, D2, D3,D4

Trang 34

Các bit chẵn lẻ P1,P2,P3 sẽ được tạo ra bằng cách tính chẵn lẽ của số lượng các

số bit 1.Trong đó, ở mỗi vòng tròn, số lượng của bit 1 phải đảm bảo là một số chẵn.Từ

đó ta sẽ có một mã gồm 7 bit có dạng: P1P2D1P3D2D3D4

Trang 35

Ở vị trí số 3,5,7 và bit chẵn lẻ P1 bằng chẵn, tuy nhiên tại các vị trí 3,5,7 sẽ là 0,1

và 1 Do đó đối với tính chẵn lẻ chẵn, bit chẵn lẻ này phải bằng 0 như vậy tính chẵn lẻ của nhóm sẽ được giữ nguyên và lúc này ta sẽ có P1= 0 và được viết lại như sau :

Tương tự như vậy bit chẵn lẻ P2 phải được chọn sao cho tổng chẵn lẻ của bit P2 này và các vị trí cố 3,6,7 phải bằng chẵn Vì vậy các bit ở vị trí 3,6,7 là 0,0 và 1 Do đó đối với tính chẵn lẻ thì bit chẵn lẻ này phải bằng 1, nhưu vậy tính chẵn lẻ của nhóm sẽ được giữ nguyên và lúc này ta sẽ có P2= 1 và được viết lại như sau

Và cuối cùng bit chẵn lẻ P3 phải được chọn sao cho tổng chẵn lẻ của bit P3 này

và các vị trí số 5,6 và 7 phải bằng chẵn Các bit ở vị trí 5,6,7 là 1,0 và 1 và theo tính chẵn lẻ thì bit ở vị trí 4 P3 = 0 và lúc này mã Hamming tổng thể sẽ là:

Trang 36

34

Giải mã mã Hamming

Giả sử mã hamming code 7 bit 1010010 được truyền bởi nơi gửi nhưng vì một

lý do gì đấy có thể do nhiễu nên nơi nhận bị một bit đảo lộn

Bit gửi 1010010 Bit nhận 1110010

Đầu tiên chúng ta sẽ đặt các bit nhận vào đúng vị trị của mã hamming 7

Tại nơi nhận, với sự trợ giúp của các bit kiểm tra tính chẵn lẻ C1, C2, C3 này ta

có thể xác định vị trí bit xảy ra lỗi

Bit kiểm tra chẵn lẻ C1 đại diện cho tính chẵn lẻ tổng thể của bit số 3,5,7 và P1 Bit kiểm tra chẵn lẻ C2 đại diện cho tính chẵn lẻ tổng thể của bit số 3,6,7 và P2 Tương

tự như vậy bit kiểm tra chẵn lẻ C3 đại diện cho tính chẵn lẻ tổng thể của bit số 5,6,7 và P3

Ta sẽ tìm các bit kiểm tra C1, C2, C3 này bằng cách xác định tính tổng thể chăn

lẻ Ví dụ với C1 đại diện cho tính chẵn lẻ tổng thể của bit số 3, 5, 7 và P1 nghĩa là nếu chẵn lẻ tổng thể là chẵn thì trong trường hợp đó C1 này sẽ là 0, nhưng trong trường hợp do lỗi nếu là lẻ thì bit kiểm tra C1 này sẽ là 1 Cụ thể

- C1 tại vị trí 3,5,7 và P1 là : 0110 vì tổng thể chẵn lẻ là chẵn nên bit kiểm tra C1=0

- C2 tại vị trí 3,6,7 và P2 là : 0111 vì tổng thể chẵn lẻ là số lẻ nên bit kiểm tra C2=1

- C3 tại vị trí 5,6,7 và P3 là : 1110 vì tổng thể chẵn lẻ là số lẻ nên bít kiểm tra C3=1

Vậy C1, C2, C3 sẽ là :110 trong hệ nhị phân 110 = 6 điều này có nghĩa là bit lỗi trong quá trình gửi sẽ nằm ở vị trí thứ 6 Vậy ta chỉ cần đảo ngược bit ở vị trí số 6 này

sẽ trùng khớp với bit gửi và lỗi hoàn toàn đã được sửa

Trang 37

35

2.1.3 Mã Hamming (5,3)

Tương tự như mã Hamming (7,3), mã Hamming (5,3) là một loại mã Hamming

cụ thể được thiết kế để mã hóa dữ liệu thành một dãy 5 bit, bao gồm 2 bit dữ liệu ban đầu và 3 bit kiểm tra Mã Hamming (5,3) được sử dụng để phát hiện và sửa lỗi trong dãy bit dữ liệu 3 bit và được tích hợp trong quá trình truyền dữ liệu hoặc lưu trữ dữ liệu

để đảm bảo tính toàn vẹn

Đối với mã Hamming (5,3):

- Đội dài của mã là : n=5

- Số lượng bit dữ liệu: m=2

- Số lượng bit chẵn lẻ cần thiết : k=3

Thỏa mãn điều kiện :

Mã hóa của mã Hamming (5,3)

Trong mã Hamming 5,3 này 3 bit chẵn lẻ sẽ ở vị trí thứ : 1,2,4 ký hiệu là P1,P2,P3 Sau khi đã đặt các bit chẵn lẽ thì 2 bit còn lại sẽ là 2 bit dữ liệu ký hiệu là D1, D2

Trang 38

Ở vị trí số 3,5 và bit chẵn lẻ P1 bằng chẵn, tuy nhiên tại các vị trí 3,5 sẽ là 0,1

Do đó đối với tính chẵn lẻ chẵn, bit chẵn lẻ này phải bằng 0 như vậy tính chẵn lẻ của nhóm sẽ được giữ nguyên và lúc này ta sẽ có P1= 0 và được viết lại như sau :

Tương tự như vậy bit chẵn lẻ P2 phải được chọn sao cho tổng chẵn lẻ của bit P2 này và các vị trí số 3 phải bằng chẵn Vì vậy các bit ở vị trí 3 là 0 Do đó đối với tính chẵn lẻ thì bit chẵn lẻ này phải bằng 1, như vậy tính chẵn lẻ của nhóm sẽ được giữ nguyên và lúc này ta sẽ có P2= 1 và được viết lại như sau

Trang 39

37

Và cuối cùng bit chẵn lẻ P3 phải được chọn sao cho tổng chẵn lẻ của bit P3 này

và các vị trí số 5 phải bằng chẵn Các bit ở vị trí 5 là 1 và theo tính chẵn lẻ thì bit ở vị trí 4 P3 = 0 và lúc này mã Hamming tổng thể sẽ là:

Giải mã mã Hamming

Giả sử mã hamming code 5 bit 10100 được truyền bởi nơi gửi nhưng vì một lý

do gì đấy có thể do nhiễu nên nơi nhận bị một bit đảo lộn

Bit gửi 10100 Bit nhận 11100

Đầu tiên chúng ta sẽ đặt các bit nhận vào đúng vị trị của mã hamming 7

Tại nơi nhận, với sự trợ giúp của các bit kiểm tra tính chẵn lẻ C1, C2, C3 này ta

có thể xác định vị trí bit xảy ra lỗi

Bit kiểm tra chẵn lẻ C1 đại diện cho tính chẵn lẻ tổng thể của bit số 3,5 và P1 Bit kiểm tra chẵn lẻ C2 đại diện cho tính chẵn lẻ tổng thể của bit số 3 và P2 Tương tự như vậy bit kiểm tra chẵn lẻ C3 đại diện cho tính chẵn lẻ tổng thể của bit số 5 và P3

Ta sẽ tìm các bit kiểm tra C1, C2, C3 này bằng cách xác định tính tổng thể chăn

lẻ Ví dụ với C1 đại diện cho tính chẵn lẻ tổng thể của bit số 3, 5 và P1 nghĩa là nếu chẵn lẻ tổng thể là chẵn thì trong trường hợp đó C1 này sẽ là 0, nhưng trong trường hợp do lỗi nếu là lẻ thì bit kiểm tra C1 này sẽ là 1 Cụ thể

- C1 tại vị trí 3,5 và P1 là : 010 vì tổng thể chẵn lẻ là lẻ nên bit kiểm tra C1=1

- C2 tại vị trí 3 và P2 là : 01 vì tổng thể chẵn lẻ là số chẵn nên bit kiểm tra C2=0

- C3 tại vị trí 5 và P3 là : 10 vì tổng thể chẵn lẻ là số chẵn nên bít kiểm tra C3=0

Trang 40

38

Vậy C1, C2, C3 sẽ là :100 trong hệ nhị phân 100 = 4 điều này có nghĩa là bit lỗi trong quá trình gửi sẽ nằm ở vị trí thứ 4 Vậy ta chỉ cần đảo ngược bit ở vị trí số 4 này sẽ trùng khớp với bit gửi và lỗi hoàn toàn đã được sửa

2.3 So sánh mã Hamming (5,3) và mã Hamming (7,3)

Để so sánh hiệu quả ẩn giấu thông tin của mã Hamming (5,3) và (7,3) tôi sử dụng phương pháp tỷ số tín hiệu cực đại trên nhiễu (peak signal-to-noise ratio được viết tắt là PSNR) Nghĩa là tỉ lệ giữa giá trị năng lượng tối đa của một tín hiệu và năng lượng nhiễu ảnh hướng đến độ chính xác của thông tin Bởi vì có rất nhiều tín hiệu có phạm vi biến đổi rộng, nên PSNR thường được biểu diễn bởi đơn vị logarithm decibel

PSNR được sử dụng để đo chất lượng tín hiệu khôi phục của các thuật toán nén

có mất mát dữ liêu (lossy compression) Tín hiệu trong trường hợp này là dữ liệu gốc,

và nhiễu là các lỗi xuất hiện khi nén Khi so sánh các thuật toán nén thường dựa vào sự cảm nhận gần chính xác của con người đối với dữ liệu được khôi phục, chính vì thế trong một số trường hợp dữ liệu được khôi phục của thuật toán này dường như có chất lượng tốt hơn những cái khác, mặc dù nó có giá trị PSNR thấp hơn (thông thường PSNR càng cao thì chất lượng dữ liệu được khôi phục càng tốt) Vì vậy khi so sánh kết quả của

2 thuật toán cần phải dựa trên codecs giống nhau và nội dung của dữ liệu cũng phải giống nhau[4]

Để định nghĩa được PSNR, các đơn giản nhất là định nghĩa qua sai số toàn phương trung bình (mean squared error) được viết tắt là MSE được dùng cho ảnh 2 chiều có kích thước m×n trong đó I và K là ảnh gốc và ảnh được khôi phục tương ứng:

- I(i,j) là giá trị pixel gốc tại vị trí (i,j);

- K(i,j) của điểm ảnh bị biến dạng tại vị trí (i,j);

- m là số pixel ngang;

- n là số lượng pixel dọc;

PSNR được tính theo công thức như sau :

Ngày đăng: 06/10/2024, 17:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w