1. Trang chủ
  2. » Thể loại khác

Luận văn kỹ thuật bảo mật thông tin sử dụng kết hợp mã hóa AES và giấu tin

49 17 0

Đ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 đề Luận văn kỹ thuật bảo mật thông tin sử dụng kết hợp mã hóa AES và giấu tin
Tác giả Đào Đình Hùng
Người hướng dẫn Cô Hồ Thị Hương Thơm
Trường học Đại học dân lập Hải Phòng
Chuyên ngành Công nghệ thông tin
Thể loại thesis
Năm xuất bản 2012
Thành phố Hải Phòng
Định dạng
Số trang 49
Dung lượng 2,69 MB

Cấu trúc

  • Chương 1. TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH VÀ MÃ HÓA THÔNG (5)
    • 1.1. Định nghĩa giấu thông tin (5)
      • 1.1.1. Định nghĩa (5)
        • 1.1.1.1. Giấu tin thuần tuý (Pure Steganography) (5)
        • 1.1.1.2. Giấu tin dùng khoá bí mật (Secret key Steganography) (5)
        • 1.1.1.3. Giấu tin dùng khoá công khai (Public Key Steganography) (5)
      • 1.1.2. Mục đích của giấu tin (5)
    • 1.2. Mô hình giấu thông tin cơ bản (6)
      • 1.2.1. Sơ đồ giấu tin (6)
      • 1.2.2. Sơ đồ tách tin (7)
    • 1.3. Môi trường giấu tin (8)
      • 1.3.1. Giấu tin trong ảnh (8)
      • 1.3.2. Giấu tin trong audio (8)
      • 1.3.3. Giấu thông tin trong video (9)
      • 1.3.4. Giấu thông tin trong văn bản dạng text (10)
    • 1.4. Một số ứng dụng của kỹ thuật giấu tin (10)
    • 1.5. Cấu trúc ảnh bitmap (11)
      • 1.5.1. Bitmap header (11)
      • 1.5.2. Palette màu (12)
      • 1.5.1. Bitmap data (13)
    • 1.6. Tổng quan về mã hóa thông tin (13)
      • 1.6.1. Các khái niệm (13)
        • 1.6.1.1. Mật mã học (13)
        • 1.6.1.2. Hệ mật mã (Crypto System) (13)
        • 1.6.1.3. Nguyên tắc Kerckhoffs (13)
      • 1.6.2. Tính chất của mã hóa thông tin (14)
      • 1.6.3. Độ an toàn của hệ mật mã (14)
      • 1.6.4. Các phương pháp mã hóa (14)
        • 1.6.4.1. Mã hoá cổ điển (Classical cryptography) (14)
        • 1.6.4.2. Mã hoá đối xứng (Symetric cryptography) (14)
        • 1.6.4.3. Mã hoá bất đối xứng (Asymetric cryptography) (14)
        • 1.6.4.4. Hệ thống mã hoá khoá lai (Hybrid Cryptosystems) (14)
      • 1.6.5. Ứng dụng của mã hóa thông tin (14)
      • 1.6.6. Giới thiệu một số giải thuật mã hóa tiên tiến (15)
        • 1.6.6.1. Các hệ mã khối (15)
        • 1.6.6.2. Các hệ mã hóa công khai (15)
        • 1.6.6.3. Hàm băm (15)
    • 1.7. Phương pháp mã hóa AES (16)
      • 1.7.1. Giới thiệu (16)
      • 1.7.2. Qui trình mã hóa (16)
      • 1.7.2. Qui trình giải mã (17)
  • Chương 2. KỸ THUẬT GIẤU TIN TRONG ẢNH SỬ DỤNG KẾT HỢP MÃ HÓA AES VÀ GIẤU TIN (18)
    • 2.1. Giới thiệu kỹ thuật giấu tin trên sai phân (18)
    • 2.2. Quá trình giấu tin trong ảnh sử dụng kết hợp mã hóa AES và kỹ thuật giấu (18)
      • 2.2.1. Thuật toán giấu tin (18)
      • 2.2.2. Ví dụ minh họa quá trình giấu tin (21)
    • 2.3. Quá trình tách tin (22)
      • 2.3.1. Thuật toán tách tin (22)
      • 2.3.2. Ví dụ minh họa quá trình tách tin (24)
  • Chương 3. CÀI ĐẶT THỬ NGHIỆM (25)
    • 3.1. Môi trường cài đặt (25)
    • 3.2. Giao diện chương trình (25)
    • 3.3. Kết quả thử nghiệm chương trình và nhận xét (41)
      • 3.3.1. Kết quả thử nghiệm chương trình (41)
      • 3.3.2. Nhận xét (46)
  • KẾT LUẬN (47)
  • Tài liệu tham khảo (48)

Nội dung

TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH VÀ MÃ HÓA THÔNG

Định nghĩa giấu thông tin

Giấu thông tin là kỹ thuật nhúng thông tin số vào một đối tượng dữ liệu khác, không chỉ đơn thuần là hành động giấu mà còn mang ý nghĩa quy ước Trong lĩnh vực giấu tin mật (Steganography), có nhiều định nghĩa cụ thể hơn, được phân loại theo các hệ giấu tin mật khác nhau Các hệ thống giấu tin mật này có thể được chia thành ba loại chính.

1.1.1.1 Giấu tin thuần tuý (Pure Steganography)

Một hệ pure Steganography được định nghĩa bởi bộ 4 thành phần σ(C, M, D, E), trong đó C đại diện cho tập hợp các phương tiện chứa thông tin cần giấu, M là tập hợp các thông điệp cần giấu với điều kiện |C|≥|M| Hàm E: C×M → C có chức năng nhúng thông điệp M vào phương tiện C, trong khi hàm D: C → M đảm bảo rằng D(E(c, m)) = m với mọi m ∈ M và c ∈ C.

1.1.1.2 Giấu tin dùng khoá bí mật (Secret key Steganography)

Một bộ năm σ(C, M, K, Dk, Ek) bao gồm các thành phần chính: C là tập hợp các phương tiện chứa thông tin cần được giấu, M là tập hợp các thông điệp cần giấu với điều kiện |C|≥|M|, K là tập hợp các khóa bí mật, và Ek là hàm nhúng thông điệp M vào phương tiện chứa C bằng cách sử dụng khóa K.

K và Dk: C × K→ M là hàm giải tin sao cho Dk(Ek(c, m, k), k) = m với mọi m ∈ M, c

∈ C và k ∈ K được gọi là một hệ Secret key Stegangraphy

1.1.1.3 Giấu tin dùng khoá công khai (Public Key Steganography)

Hệ giấu tin mật khoá công khai sử dụng hai loại khoá: khoá công khai và khoá bí mật Khoá công khai được lưu trữ trong cơ sở dữ liệu công cộng và được sử dụng trong quá trình giấu tin, trong khi khoá bí mật được dùng để giải mã thông tin.

1.1.2 Mục đích của giấu tin

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 đó

Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và 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 1.1 Hai lĩnh vực chính của kỹ thuật giấu thông tin

Kỹ thuật giấu thông tin bí mật (Steganography) là phương pháp đảm bảo an toàn và bảo mật thông tin bằng cách ẩn giấu dữ liệu trong các đối tượng khác Mục tiêu của kỹ thuật này là che giấu thông tin mật một cách tinh vi, nhằm ngăn chặn người khác phát hiện ra nội dung bên trong.

Kỹ thuật đánh dấu thông tin (watermarking) là phương pháp hiệu quả để bảo vệ bản quyền của các đối tượng chứa thông tin Kỹ thuật này không chỉ giúp đảm bảo tính bền vững mà còn là ứng dụng cơ bản nhất của thủy vân số.

Mô hình giấu thông tin cơ bản

Giấu thông tin và tách lấy thông tin là hai quá trình đối lập, có thể được minh họa qua sơ đồ khối của hệ thống.

Phương tiện chứa C (file âm thanh, hình ảnh…)

Phương tiện chứa tin đã được giấu tin (s)

Hình 1.2 Sơ đồ giấu tin

Giấu tin bí mật (Steganography)

Thông tin cần được giấu tùy thuộc vào mục đích sử dụng của người dùng, có thể là các thông điệp bí mật hoặc những logo, hình ảnh có bản quyền.

 Phương tiện chứa: các file ảnh, text, audio… là môi trường để nhúng tin

 Khóa là thành phần để góp phần làm tăng độ bảo mật

 Bộ nhúng thông tin: là những chương trình thực hiện việc giấu thông tin

 Là các phương tiện chứa thông tin đã giấu trong đó

Quá trình tách thông tin từ các phương tiện chứa diễn ra theo cách ngược lại, với đầu ra là thông tin đã được ẩn giấu cùng với phương tiện chứa Sau khi tách, các phương tiện này có thể được sử dụng và quản lý theo nhiều yêu cầu khác nhau.

Bộ nhúng thông tin Khóa giấu tin

C (file âm thanh, hình ảnh…)

Phương tiện chứa tin đã được giấu tin

Hình 1.3 Sơ đồ tách tin

Môi trường giấu tin

Giấu thông tin trong ảnh hiện nay là một phần quan trọng trong các ứng dụng và phần mềm, chiếm tỉ lệ lớn trong hệ thống giấu tin đa phương tiện Lượng thông tin trao đổi qua ảnh rất lớn, và việc này đóng vai trò thiết yếu trong các ứng dụng bảo vệ an toàn thông tin như xác thực thông tin, phát hiện xuyên tạc, bảo vệ bản quyền tác giả, điều khiển truy cập và giấu thông tin mật Do đó, vấn đề này đã thu hút sự quan tâm mạnh mẽ từ cá nhân, tổ chức, trường đại học và viện nghiên cứu trên toàn thế giới.

Việc giấu thông tin trong ảnh ngày càng trở nên quan trọng trong xã hội hiện đại, khi ảnh số phổ biến và chất lượng ảnh không bị ảnh hưởng Các ứng dụng như lưu trữ chữ ký số trong dịch vụ ngân hàng và tài chính, hay việc sử dụng phần mềm WinWord để bảo mật thông tin, cho thấy tính cần thiết của việc xác thực thông tin Trong bối cảnh thông tin dễ bị đánh cắp và thay đổi bởi tin tặc, việc phát hiện và xác thực thông tin trở thành vấn đề cấp thiết Đặc biệt, thông tin được giấu trong ảnh một cách vô hình, giúp bảo mật thông tin mà không làm giảm chất lượng ảnh, là một phương pháp truyền tải thông tin mật hiệu quả.

Giấu thông tin trong audio có những đặc điểm riêng biệt so với việc giấu tin trong các loại hình đa phương tiện khác Một trong những yêu cầu cơ bản của việc giấu tin là đảm bảo tính bảo mật và khả năng truy xuất thông tin một cách hiệu quả.

Kỹ thuật giấu thông tin trong audio phụ thuộc vào hệ thống thính giác của con người (HAS) và gặp nhiều thách thức do khả năng nghe rộng và công suất lớn của con người Mặc dù HAS có thể phát hiện âm thanh ở dải tần cao, nhưng nó lại kém trong việc nhận diện sự khác biệt giữa các tần số và công suất, cho phép âm thanh lớn che giấu âm thanh nhỏ Các mô hình phân tích tâm lý đã chỉ ra điểm yếu này, giúp lựa chọn audio phù hợp cho việc giấu tin Thêm vào đó, kênh truyền tin chậm có thể ảnh hưởng đến chất lượng thông tin sau khi giấu, với ví dụ là việc nhúng một đoạn java applet vào audio 16 bit, 44.100 Hz cần ít nhất 20 bit/s Do đó, việc giấu thông tin trong audio yêu cầu cao về đồng bộ và an toàn, tận dụng các điểm yếu của hệ thống thính giác.

1.3.3 Giấu thông tin trong video

Giấu tin trong video là một lĩnh vực đang phát triển mạnh mẽ, với nhiều ứng dụng như kiểm soát truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền Ví dụ điển hình là các hệ thống trả tiền theo lượt xem video (pay per view) Các kỹ thuật giấu tin trong video chủ yếu được chia thành hai hướng: thủy vân số và data hiding Một phương pháp tiêu biểu là phương pháp phân bố đều của Cox, trong đó thông tin giấu được phân phối theo tần số của dữ liệu gốc Nhiều nghiên cứu đã áp dụng hàm cosin riêng và các hệ số truyền sóng riêng để thực hiện việc này Trước đây, các thuật toán thường chỉ cho phép giấu ảnh vào video, nhưng gần đây, các kỹ thuật mới đã cho phép giấu cả âm thanh và hình ảnh Chẳng hạn, phương pháp của Swanson sử dụng kỹ thuật giấu theo khối, cho phép giấu hai bit vào khối 8x8, trong khi phương pháp của Mukherjee áp dụng cấu trúc lưới đa chiều để giấu âm thanh vào video.

1.3.4 Giấu thông tin trong văn bản dạng text

Việc giấu thông tin trong các văn bản text gặp nhiều khó khăn do thiếu thông tin dư thừa, vì vậy cần khéo léo khai thác các yếu tố tự nhiên của ngôn ngữ Một phương pháp hiệu quả là sử dụng định dạng văn bản, bao gồm mã hóa thông tin và điều chỉnh khoảng cách giữa các từ khóa hoặc dòng văn bản Bên cạnh đó, người ta có thể áp dụng ngữ pháp phi ngữ cảnh để tạo ra các văn bản “phương tiện chứa” nhằm truyền tải thông điệp một cách hiệu quả.

Một số ứng dụng của kỹ thuật giấu tin

The practice of hiding information within digital images is becoming increasingly prevalent across various fields Key applications of this technique include copyright protection, fingerprinting, labeling, and steganography for concealing sensitive information.

Bảo vệ bản quyền là ứng dụng cơ bản của kỹ thuật thủy vân số (watermarking), một phương pháp giấu tin quan trọng Thủy vân, mang ý nghĩa sở hữu quyền tác giả, được nhúng vào sản phẩm để chứng minh bản quyền Đối với các sản phẩm đa phương tiện như ảnh, âm thanh và video, việc "dán tem bản quyền" là cần thiết để ngăn chặn hành vi sao chép trái phép Kỹ thuật nhúng thủy vân phải đảm bảo không ảnh hưởng đến chất lượng sản phẩm, đồng thời tồn tại bền vững cùng với nó Nếu muốn xóa thủy vân mà không có sự cho phép, sản phẩm sẽ phải bị phá hủy Điểm chỉ số được sử dụng để xác định bản sao duy nhất của sản phẩm, tương tự như số xê ri của phần mềm.

Gán nhãn cho ảnh bao gồm tiêu đề, chú giải và nhãn thời gian, cho phép nhúng thông tin như tên người hoặc vùng địa lý vào hình ảnh Khi sao chép ảnh, các dữ liệu này cũng sẽ được sao chép, nhưng chỉ chủ sở hữu tác phẩm và người có khóa mật (Stego-Key) mới có thể tách và xem các chú giải Trong cơ sở dữ liệu ảnh, việc nhúng từ khóa giúp các động cơ tìm kiếm dễ dàng tìm thấy bức ảnh Nếu ảnh là một khung trong đoạn phim, thời điểm cũng có thể được gán cho nó.

Vào ngày 18, sự kiện đã diễn ra nhằm đồng bộ hóa hình ảnh với âm thanh Ngoài ra, có thể gán số lần ảnh được xem để tính toán chi phí thanh toán dựa trên số lượt xem.

Việc giấu thông tin mật thông qua mã hóa có thể thu hút sự chú ý không mong muốn, và một số kỹ thuật có thể bị hạn chế hoặc cấm sử dụng Tuy nhiên, việc giấu tin trong môi trường cụ thể và gửi qua mạng lại ít gây chú ý hơn Phương pháp này có thể được áp dụng để truyền tải bí mật thương mại, bản vẽ, hoặc thông tin nhạy cảm khác một cách an toàn.

Cấu trúc ảnh bitmap

Bảng 1.1 Cấu trúc ảnh bitmap

Bitmap Header (54 byte) Color Palette Bitmap Data

Mỗi file ảnh Bitmap gồm 3 phần theo bảng sau:

Thành phần bitcount (Bảng 1.2) của cấu trúc Bitmap header cho biết số bit dành cho mỗi điểm ảnh và số lượng màu lớn nhất của ảnh

Bảng 1.2 Thông tin về Bitmap header

Byte thứ Ý nghĩa Giá trị

1-2 Nhận dạng file „BM‟ hay 19778

3-6 Kích thước file Kiểu long trong Turbo C

7-10 Dự trữ Thường mang giá trị 0

11-14 Byte bắt đầu vùng dữ liệu Offset của byte bắt đầu vùng dữ liệu 15-18 Số byte cho vùng thông tin 4 byte

19-22 Chiều rộng ảnh BMP Tính bằng pixel

23-26 Chiều cao ảnh BMP Tính bằng pixel

27-28 Số Planes màu Cố định là 1

29-30 Số bit cho 1 pixel (bitcount) Có thể là 1, 4, 8, 16, 24 tùy theo loại ảnh

31-34 Kiểu nén dữ liệu 0: Không nén

1: Nén runlength 8bits/pixel 2: Nén runlength 4bits/pixel

35-38 Kích thước ảnh Tính bằng byte

39-42 Độ phân giải ngang Tính bằng pixel/metter

43-46 Độ phân giải dọc Tính bằng pixel/metter

47-50 Số màu sử dụng trong ảnh

51-54 Số màu được sử dụng khi hiện thị ảnh

Bảng màu của ảnh, chỉ những ảnh nhỏ hơn hoặc bằng 8 bit mới có bảng màu

Bảng 1.3 Bảng màu của ảnh Bitmap Địa chỉ (Offset) Tên Ý nghĩa

0 RgbBlue Giá trị cho màu xanh Blue

1 RgbGreen Giá trị cho màu xanh Green

2 RgbRed Giá trị cho màu đỏ

Phần này nằm ngay sau phần bảng màu của ảnh BMP, chứa giá trị màu của từng điểm ảnh Các dòng ảnh được lưu trữ từ dưới lên trên, trong khi các điểm ảnh được ghi từ trái sang phải Mỗi giá trị điểm ảnh là một chỉ số trỏ tới phần tử màu tương ứng trong bảng màu.

Tổng quan về mã hóa thông tin

Mật mã học là ngành khoa học chuyên nghiên cứu việc giấu thông tin, bao gồm các phương pháp chuyển đổi dữ liệu từ dạng "có thể hiểu được" sang "không thể hiểu được" và ngược lại.

Một số khái niệm trong mật mã học gồm: Mã hóa (encrypt hay encipher), Giải mã (Decrypt hay decipher), Bản rõ (Plaintext), Cipher (hay cypher), Khóa (Key)

1.6.1.2 Hệ mật mã (Crypto System)

Một hệ mật mã là bộ 5 (P,C,K,E,D) thõa mãn các tính chất sau:

1 P là không gian bản rõ: là tập hữu hạn các bản rõ có thể có

2 C là không gian bản mã: là tập hữu hạn các bản mã có thể có

3 K là không gian khóa: là tập hữu hạn các khóa có thể có

4 Đối với mỗi k∈K, có một quy tắc mã hóa e k ∈E và một quy tắc giải mã tương ứng d k ∈D Với mỗi e k : P → C và d k : C → P là những hàm mà d k (e k (x))=x cho mọi bản rõ x∈P Hàm giải mã d k chính là ánh xạ ngược của hàm mã hóa e k

Một hệ mật mã sẽ được an toàn ngay cả khi tất cả mọi thứ trên hệ thống đó là công khai ngoại trừ khóa (key)

Thuật toán mã hóa không cần giữ bí mật và có thể được công khai, cho phép quân địch tiếp cận mà không gặp khó khăn nào.

1.6.2 Tính chất của mã hóa thông tin

Mã hóa thông tin phải đảm bảo các tính chất sau: Tính bí mật (Confidentiality), tính xác thực (Authentication), tính toàn vẹn (Integrity)

1.6.3 Độ an toàn của hệ mật mã Độ an toàn của thuật toán phụ thuộc vào độ phức tạp của nó Các yếu tố xem xét thuật toán an toàn là chi phí hay phí tổn, thời gian cần thiết để phá vỡ, lượng dữ liệu để phá vỡ

1.6.4 Các phương pháp mã hóa

1.6.4.1 Mã hoá cổ điển (Classical cryptography)

Phương pháp này là tiền thân của các phương pháp mã hóa đối xứng ngày nay

Có hai phương pháp nổi bật đó là: Mã hoá thay thế (Substitution Cipher), Mã hoá hoán vị (Transposition Cipher)

1.6.4.2 Mã hoá đối xứng (Symetric cryptography)

Mã hóa đối xứng sử dụng một khóa duy nhất cho cả quá trình mã hóa và giải mã Phương pháp này có thể thực hiện mã hóa trên bản rõ theo từng nhóm bit hoặc từng bit một.

1.6.4.3 Mã hoá bất đối xứng (Asymetric cryptography)

Mã hóa bất đối xứng sử dụng hai loại khóa khác nhau: khóa công khai (Public Key) cho quá trình mã hóa và khóa bí mật (Private Key) cho quá trình giải mã Điều quan trọng là không thể suy luận khóa giải mã từ khóa mã hóa và ngược lại, đảm bảo tính bảo mật cao cho thông tin.

1.6.4.4 Hệ thống mã hoá khoá lai (Hybrid Cryptosystems)

Hệ thống mã hoá khoá lai ra đời là sự kết hợp giữa tốc độ và tính an toàn của hai hệ thống mã hoá ở trên

1.6.5 Ứng dụng của mã hóa thông tin

Mã hóa thông tin được ứng dụng trong rất nhiều lĩnh vực cả về phần cứng và phần mềm

1.6.6 Giới thiệu một số giải thuật mã hóa tiên tiến

Các hệ mã khối hoạt động với các khối dữ liệu có kích thước khác nhau, tối thiểu là 64 bit, và sử dụng khóa là các chuỗi bit có độ dài cố định.

Một số giải thuật được sử dụng khá phổ biến là DES, Triple DES (3DES), AES

The Data Encryption Standard (DES) is a cryptographic algorithm that processes 64-bit blocks of input and output data using a 64-bit key, of which 8 bits are reserved for parity checking DES operates through 16 rounds, generating 16 keys of 48 bits each during the encryption process.

Quá trình giải mã được diễn ra tương tự nhưng với các khóa con ứng dụng vào các vòng trong theo thứ tự ngược lại

Thuật toán DES bộc lộ một số điểm yếu mà những kẻ lợi dụng nó để thám mã

Triple DES thật chất là mã hóa theo DES ba lần với khóa K1, K2, K3 cho mỗi lần

 Chuẩn mã hóa nâng cao AES

AES (Advanced Encryption Standard) là một chuẩn mã hóa tiên tiến, sử dụng khóa bí mật để xử lý dữ liệu đầu vào có kích thước 128 bit, với các khóa có độ dài 128, 192 và 256 bit.

1.6.6.2 Các hệ mã hóa công khai

Mã hóa bằng khóa công khai sử dụng hai loại khóa: khóa công khai để mã hóa và khóa bí mật để giải mã Điều đặc biệt là khóa giải mã không thể được tính toán từ khóa mã hóa, đảm bảo tính bảo mật cao cho thông tin.

Hàm băm là một hàm toán học chuyển đổi thông điệp có độ dài tùy ý thành một dãy bit cố định Bất kỳ sự thay đổi nhỏ nào trong thông điệp đầu vào đều dẫn đến sự thay đổi lớn trong giá trị băm, đảm bảo tính toàn vẹn của dữ liệu.

Phương pháp mã hóa AES

Advanced Encryption Standard là thuật toán của hai nhà nghiên cứu Tiến sĩ

Joan Daemon và Tiến sĩ Vincent Rijmen từ Bỉ

Chuẩn mã hóa AES cho phép xử lý các khối dữ liệu đầu vào kích thước 128 bit với các khóa có độ dài 128, 192 hoặc 256 bit Đây là thuật toán khóa đối xứng, nghĩa là cùng một khóa được sử dụng để mã hóa và giải mã tin nhắn Các thuật toán mã hóa văn bản từ AES có kích thước tương đương với tin nhắn văn bản gốc Hầu hết các hoạt động trong AES diễn ra trên các byte hoặc từ dữ liệu dài 4 byte, trong trường GF (2^8), gọi là trường Galois AES dựa trên nguyên tắc thiết kế gọi là thay thế hoán vị mạng và hoạt động trên ma trận 4 × 4 của byte, được gọi là mảng trạng thái Thuật toán mã hóa AES bao gồm nhiều vòng lặp chuyển đổi, mỗi vòng có các bước xử lý phụ thuộc vào khóa mã hóa Để giải mã, một tập hợp các vòng đảo ngược được áp dụng với cùng một khóa mã hóa, và thuật toán AES lặp lại qua một số vòng nhất định, Nr lần.

Quá trình mã hóa bắt đầu khi bản rõ được sao chép vào mảng trạng thái Sau khi thực hiện phép cộng với khóa mã đầu tiên, mảng trạng thái trải qua Nr vòng biến đổi, trong đó vòng cuối cùng được thực hiện khác với vòng Nr-1 trước đó Kết quả của mảng trạng thái ở vòng cuối cùng chính là bản mã của quá trình mã hóa.

Trong quy trình mã hóa AES, các vòng lặp sử dụng bốn hàm theo thứ tự: Subbytes(), ShiftRows(), MixColumns() và AddRoundKey(), với vòng cuối cùng không thực hiện hàm MixColumns().

Quá trình mã hóa AES có các bước sau đây:

1) KeyExpansion -Round (khóa vòng mở rộng) được tạo ra từ khóa mã hóa bằng cách sử dụng lược đồ khóa Rijndael

2) Initial Round (vòng khởi tạo)

AddRoundKey - thực hiện bằng cách cộng một khóa vòng tại vòng đang xét với mảng trạng thái thông qua phép toán XOR đơn giản trên bit

3) Rounds (vòng lặp) a) SubBytes - làm biến mảng trạng thái hiện hành bằng cách sử dụng một bảng thay thế b) ShiftRows - làm biến đổi các byte trên ba hàng cuối cùng mảng trạng thái bằng cách dịch vòng c) MixColumns - là một phép biến đổi mã hóa được thực hiện bằng cách lấy tất cả các cột của mảng trạng thái trộn với dữ liệu của chúng một cách độc lập nhau để tạo ra các cột mới d) AddRoundKey - thực hiện bằng cách cộng một khóa vòng tại vòng đang xét với mảng trạng thái thông qua phép toán XOR đơn giản trên bit

4) Final Round – vòng kết thúc (không có MixColumns)

Gọi lại các hàm SubBytes, ShiftRows, MixColumns ở bước 3 nhưng không gọi hàm AddRoundKey

Quá trình giải mã diễn ra ngược lại với mã hóa, với các phép biến đổi được thực hiện theo chiều ngược Tuy nhiên, phép biến đổi AddRoundKey() không thay đổi vì nó là phép biến đổi thuận nghịch, chỉ sử dụng toán tử XOR.

InvShiftRows() chính là phép biến đổi ngược của ShiftRows()

Là phép biến đổi ngược của SubBytes() được thực hiện trên bảng thay thế S-Box là nghịch đảo của S-Box

InvMixColumns() là phép biến đổi ngược của MixColumns()

KỸ THUẬT GIẤU TIN TRONG ẢNH SỬ DỤNG KẾT HỢP MÃ HÓA AES VÀ GIẤU TIN

Giới thiệu kỹ thuật giấu tin trên sai phân

Kỹ thuật giấu tin trên sai phân được đề xuất bởi Wu và Tsai [3] tháng 6 năm

Kỹ thuật giấu tin trên sai phân, được giới thiệu vào năm 2003, là một phương pháp hiệu quả để nhúng thông điệp bí mật vào ảnh màu xám Quá trình này bắt đầu bằng việc chia hình ảnh thành các khối nhỏ gồm hai điểm ảnh liên tiếp, sau đó tính toán giá trị chênh lệch giữa chúng Những giá trị này được phân loại và thay thế bằng các giá trị mới để nhúng thông điệp Kết quả là một bức ảnh đã giấu tin với chất lượng cao, khó nhận biết bằng mắt thường Thông điệp bí mật có thể được trích xuất mà không cần tham khảo hình ảnh gốc, và các thống kê về các cuộc tấn công cho thấy tính an toàn của phương pháp này.

Quá trình giấu tin trong ảnh sử dụng kết hợp mã hóa AES và kỹ thuật giấu

2.2.1 Thuật toán giấu tin Đầu vào :

 Ảnh sử dụng để giấu tin

Bước 1: Sử dụng kỹ thuật mã hóa AES cho thông điệp cần giấu Sau đó chuyển chuỗi thông điệp đã mã hóa sang nhị phân

Bước 2: Từ ảnh cấp xám được sử dụng để giấu tin, ta có ma trận ảnh tương ứng Giá trị d_i được tính bằng cách lấy hiệu giữa hai điểm ảnh liên tiếp, cụ thể là d_i = g_{i+1} - g_i, với g_i và g_{i+1} nằm trong khoảng [0, ].

255], i=1:mxn (với m và n là kích cỡ ảnh)

Bước 3: Các giá trị tuyệt đối | d i |, | d i | ∈ [0, , 255], được phân loại vào các phạm vi R i (R i gồm các miền giá trị sau [0 7], [8 15], [16 31], [32 63], [64 127] và

[128 255]), với i = 1, 2, n Cận trên cận dưới và độ rộng của mỗi R i được ký hiệu lần lượt là l i , u i và w i Giả sử | d i | thuộc R k với k ∈ [1,2 6]

Bước 4: Ta xác định được số bit sẽ nhúng theo công thức (2.1)

Sau đó chọn n bit từ chuỗi bit cần giấu giấu vào mỗi giá d i

Bước 5: Tính lại d được theo công thức (2.2)

Bước 6: Tính các giá trị màu xám mới (g i , g i +1 ) cho ảnh sau khi giấu tin theo công thức (2.3)

Cuối cùng ta được ảnh đã giấu tin

Sau đây là sơ đồ quá trình giấu tin hình 2.1

27 Hình 2.1 Sơ đồ quá trình giấu tin. d i được tính bằng công thức d i = g i +1 - g i , với g i , g i +1 ∈ [0, , 255], i=1:mxn Ảnh I có kích cỡ mxn

| d i | được phân loại vào các phạm vi Ri Cận trên cận dưới và độ rộng của mỗi R i được ký hiệu lần lượt là li, ui và wi.

Xác định số bit sẽ nhúng , lấy ra n bit nhúng vào di Chuyển sang thập phân ta được b mod(d(i,j),2)==0

= g là ảnh đã giấu tin Đã giấu hết thông tin

Thông điệp đã mã hóa ở dạng thập phân

Chuỗi nhị phân Đúng Đúng

2.2.2 Ví dụ minh họa quá trình giấu tin

Với chuỗi thông điệp cần giấu là “co”, chuyển chuỗi thông điệp cần giấu sang dạng thập phân ta được :

Do việc sử dụng mã hóa AES 16 bit, nếu thông điệp đầu vào không đủ 16 bit, các ký tự khoảng trắng sẽ tự động được thêm vào cuối chuỗi thông điệp để đạt đủ độ dài 16 bit.

Sử dụng kỹ thuật mã hóa AES cho thông điệp cần giấu ta được chuỗi thông điệp mã hóa ở dạng thập phân:

Chuỗi thụng điệp đó mó húa ở dạng văn bản là : “ỷẫx&,rà4Ttò t”

Sau đó ta chuyển chuỗi thông điệp đã mã hóa sang nhị phân ta được chuỗi bit thông điệp cần giấu: str_bin = 11111011110010010111100000100110001011000001111101110010 111000000011010001010100011101001000101011011111000100001010000001110

100 Ảnh giấu tin là một khối ảnh được biểu diễn bởi ma trận 4x4:

Ta tính được d i Sử dụng kỹ thuật giấu tin trên sai phân, áp dụng các công thức (2.1),(2.2) và (2.3) ta được ma trận ảnh sau khi giấu tin là:

Quá trình tách tin

2.3.1 Thuật toán tách tin Đầu vào :

 Ảnh đã giấu tin Đầu ra :

Để bắt đầu, từ ảnh đã giấu thông tin, ta tạo ra ma trận ảnh tương ứng Tiếp theo, giá trị di được tính bằng cách trừ hai điểm ảnh liên tiếp, cụ thể là d_i = g_(i+1) - g_i, với g_i và g_(i+1) nằm trong khoảng [0, 255] và i chạy từ 1 đến mxn, trong đó m và n là kích thước của ảnh.

Bước 2: Xác định phạm vi Ri của mỗi giá trị tuyệt đối | d i | được l i , u i và w i Từ đó tính được số bit thông tin đã giấu n =

Giá trị thập phân đã giấu vào d i được tính bằng công thức (2.4)

Chuyển b sang n bit nhị phân ta được chuỗi bit thông điệp đã giấu

Bước 3: Lặp lại bước 2 cho đến khi tách được số bit đã giấu

Bước 4: Chuyển chuỗi bit thông điệp đã giấu ở dạng nhị phân sang thập phân ta được chuỗi thông điệp mã hóa đã giấu ở dạng thập phân

Bước 5: Sử dụng kỹ thuật giải mã AES cho chuỗi thông điệp mã hóa đã giấu ta được chuỗi thông điệp cần tách

Sau đây là sơ đồ thuật toán tách tin hình 2.2

Hình 2.2 Sơ đồ quá trình tách tin

Sử dụng kỹ thuật giải mã AES Ảnh g đã giấu tin có kích cỡ mxn d i được tính bằng công thức d i = g i +1 - g i , với g i , g i +1 ∈ [0, , 255], i=1:mxn

Xác định số bit đã nhúng vào d i :

, tính giá trị thập phân đã giấu vào d i :

Chuyển b sang n bit nhị phân được chuỗi bit thông điệp đã giấu

Chuyển chuỗi bit thông điệp đã giấu sang thập phân Đã tách hết số bit thông điệp

2.3.2 Ví dụ minh họa quá trình tách tin

Từ khối ảnh đã giấu tin ta có ma trận ảnh tương ứng:

Sử dụng kỹ thuật tách trên sai phân và áp dụng bước 3 của thuật toán tách, chúng ta có thể tính được d i và thu được chuỗi bit thông điệp đã giấu dưới dạng nhị phân: str_bin = 111110111100100101111000001001100010110000011111011100101110000000110100010101000111010010001010110111110001000010100000011110.

Chuyển chuỗi bit thông điệp đã giấu ở dạng nhị phân sang thập phân ta được chuỗi thông thông điệp mã hóa đã giấu ở dạng thập phân : str_dec = 251 201 120 38 44 31 114 224 52 84 116 138 223

Sử dụng kỹ thuật giải mã AES ta được chuỗi thông điệp đã giấu ở dạng thập phân :

Chuyển chuỗi thông điệp đã được giải mã sang dạng văn bản text ta được chuỗi thông điệp đã giấu : “co”

CÀI ĐẶT THỬ NGHIỆM

Môi trường cài đặt

Ngôn ngữ cài đặt, môi trường soạn thảo và chạy chương trình được thực hiện trên ngôn ngữ lập trình Matlab 7.7

Hệ điều hành Window XP và môi trường NetFarme Work 2.0.

Giao diện chương trình

Hình 3.1 Giao diện chính của chương trình Đây là giao diện khi khởi động, từ đây ta sẽ gọi đến các giao diện khác thông qua menu

Từ menu “Giau tin” chọn “giau tin” sẽ gọi đến giao diện giấu tin hình 3.2

Giao diện giấu tin cho phép người dùng ẩn thông tin vào ảnh thông qua việc kết hợp kỹ thuật mã hóa AES và phương pháp giấu tin trên sai phân.

Để nhập ảnh vào chương trình, bạn cần nhấn nút “Mở Ảnh” trong giao diện giấu tin Một hộp thoại sẽ xuất hiện để bạn chọn ảnh cần đưa vào giấu tin, lưu ý rằng chương trình chỉ hỗ trợ ảnh cấp xám.

Hình 3.3 Chọn ảnh để giấu tin

Tiếp theo, bạn có thể nhập dữ liệu cần giấu vào ảnh bằng cách gõ trực tiếp vào ô dưới chữ “Nhập Thông Điệp” hoặc chọn nút “Duyệt” như trong hình 3.4.

Hình 3.4 Chọn dư liệu giấu từ file

Tiếp theo ta sẽ mã hóa thông điệp bằng phương pháp mã hóa AES bằng cách kích vào “Ma Hoa” như hình 3.5

Hình 3.5 Mã hóa thông điệp

Tiếp theo ta sẽ nhập tên và chọn nơi lưu ảnh kết quả bằng cách kích vào nút

Hình 3.6 Chọn lưu ảnh kết quả

Sau khi đã nhập đầy đủ đầu vào cho giao diện giấu tin, ta chọn nút “Giau Tin” để bắt đầu thực hiện quá trình giấu tin như hình 3.7

Hình 3.7 Thực hiện quá trình giấu tin trong ảnh

Sau khi giấu tin thành công ảnh đã giấu tin sẽ hiện lên tại mục “Anh giau tin” như hình 3.8

Hình 3.8 Giao diện sau khi giấu tin thành công

Từ menu “Tach tin” trên giao diện chính gọi ra giao diện tách tin hình 3.9

Hình 3.9 Giao diện tách tin Đây là giao diện sẽ lấy ảnh đã giấu thông tin để xử lý tách tin lấy ra dữ liệu đã giấu trong ảnh

41 Thực hiện mở ảnh có giấu tin để tách thông tin đã giấu như hình 3.10

Hình 3.10 Chọn ảnh để tách tin

42 Tiếp theo ta nhập tên và nơi lưu file dữ liệu tách được như hình 3.11

Hình 3.11 Nhập tên file dữ liệu tách được

Sau khi nhập ảnh đã giấu tin và nơi lưu file dữ liệu kết quả, chọn nút “Tach tin” để bắt đầu quá trình tách tin như hình 3.12

Hình 3.12 Quá trình tách tin

Thực hiện xong quá trình tách tin ta nhận được dư liệu được tách ra ở mục “Du lieu tach” như hình 3.13

Hình 3.13 Tách tin thành công

45 Đây là giao diện đánh giá ảnh sau khi đã giấu tin hình 3.14

Hình 3.14 Giao diện đánh giá ảnh

Chọn nút “…” trong mục “Anh 1” để chọn ảnh trước khi giấu tin như hình 3.15

Hình 3.15 Giao diện mở ảnh trước khi giấu tin

Chọn nút “…” trong mục “Anh 2” để chọn ảnh ảnh đã giấu tin như hình 3.16

Hình 3.16 Giao diện mở ảnh đã giấu thông tin

Sau khi đã chọn 2 ảnh để đánh giá với nhau, chọn nút “Danh gia” để thực hiện quá trình đánh giá như hình 3.17

Kết quả sẽ cho ta giá trị đánh giá ảnh, nếu :

 Giá trị là 100 db thì 2 ảnh là 1 không có thay đổi

 Giá trị lớn hơn 35 db nhỏ hơn 100 db thì ảnh có thay đổi nhưng ở mức chấp nhận được

 Giá trị nhỏ hơn 35 db thì ảnh biến dạng mắt thường có thể nhận thấy

 Giá trị nhỏ hơn 20 db thì ảnh biến dạng không thể chấp nhận được

Hình 3.17 Giao diện sau khi đánh giá chất lượng ảnh

Kết quả thử nghiệm chương trình và nhận xét

3.3.1 Kết quả thử nghiệm chương trình

Thực nghiệm này đánh giá chỉ số PSNR của ảnh trước và sau khi giấu tin, áp dụng kỹ thuật giấu tin kết hợp mã hóa AES và phương pháp giấu tin trên sai phân Tập ảnh thử nghiệm bao gồm A1, với 9 ảnh cấp xám chuẩn định dạng PNG kích thước 512x512, và A2, gồm 36 ảnh chụp và tải về từ mạng với kích thước khác nhau, được đặt tên từ Image1 đến Image36, đã được chuyển đổi sang cảnh cấp xám bằng phần mềm Adobe Photoshop CS3.

Chuỗi thông điệp giấu có 4992 bit với nội dung: “Truong dai hoc dan lap hai phong to chuc "Le tuyen duong va ”

Tập ảnh xám chuẩn A1 trước khi giấu tin hình 3.18

Hình 3.18 Tập ảnh xám chuẩn A1 trước khi giấu tin

Tập ảnh xám chuẩn A1 sau khi giấu tin hình 3.19

Hình 3.19 Tập ảnh xám chuẩn A1 sau khi giấu tin

49 Tập ảnh xám chuẩn A2 trước khi giấu tin hình 3.20

Hình 3.20 Tập ảnh xám ngẫu nhiên A2 trước khi giấu tin

50 Tập ảnh xám ngẫu nhiên A2 sau khi giấu tin hình 3.21:

Hình 3.21 Tập ảnh xám ngẫu nhiên A2 sau khi giấu tin

Bảng 3.1 trình bày kết quả đánh giá PSNR sau khi giấu tin và khả năng giấu tin với hai tập ảnh A1 và A2 Ảnh "airplane.png" đạt PSNR 47.9701 dB với khả năng giấu 10,144,717 bit; "baboon.png" có PSNR 37.4217 dB và khả năng giấu 8,760,128 bit; "beer.png" đạt PSNR 48.4378 dB với khả năng giấu 12,178,639 bit; "elaine.png" có PSNR 50.0284 dB và khả năng giấu 14,585,327 bit; "house.png" đạt PSNR 44.339 dB với khả năng giấu 9,105,467 bit; "lena.png" có PSNR cao nhất 53.4044 dB và khả năng giấu 15,140,322 bit; "peppers.png" đạt PSNR 48.19 dB với khả năng giấu 11,520,128 bit; "sailboat.png" có PSNR 45.2522 dB và khả năng giấu 12,087,418 bit; cuối cùng, "tiffany.png" đạt PSNR 49.822 dB với khả năng giấu 13,132,182 bit.

Kết quả thử nghiệm cho thấy rất khó để phân biệt ảnh có chứa tin và ảnh không chứa tin bằng mắt thường Giá trị PSNR trung bình đạt 52.3356dB khi giấu 4992 bit thông điệp, cao hơn nhiều so với mức trung bình 37dB Giá trị PSNR thấp nhất trong tập ảnh là 35.4652dB, trong khi giá trị cao nhất đạt 74.453dB.

Khả năng giấu trên hai tập ảnh A1 và A2 khá lớn, đạt trung bình 12723858 bit, lớn nhất là 26934294 bit, thấp nhất là 5760128 bit

Thời gian xử lý giấu tin phụ thuộc lớn vào dữ liệu đầu vào như kích thước ảnh gốc, thông điệp giấu lớn hay nhỏ

Kỹ thuật giấu tin kết hợp mã hóa AES và phương pháp giấu tin trên sai phân cho thấy chất lượng ảnh sau khi giấu rất tốt, đồng thời khả năng giấu tin cũng rất lớn.

Ngày đăng: 05/08/2021, 21:29

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w