Giới thiệu
Mật mã và ẩn mã đều là những phương pháp đảm bảo sự an toàn cho thông tin được trao đổi trên các kênh truyền không tin cậy. Phương pháp mật mã nhằm che giấu thông tin mật bằng cách biến đổi thông tin ban đầu (bản rõ) thành một dạng khác (bản mã) bí mật. Phương pháp ẩn mã lại tập trung vào việc giấu đi sự tồn tại của thông tin trong các vật phủ (hình ảnh, âm thanh, văn bản,…).
Mật mã là một ngành khoa học có lịch sử phát triển lâu đời và được ứng dụng rất nhiều trong thực tế, đặc biệt trong các cuộc chiến tranh. Đây là lĩnh vực nghiên cứu về các phương pháp truyền tin theo cách mã hóa dữ liệu hoặc thông báo thành bản mã để không ai đọc được nếu không có khóa giải mã phù hợp. Thông thường, mật mã được chia thành: Mật mã khóa bí mật (hay còn gọi là mật mã đối xứng), mật mã khóa công khai (mật mã bất đối xứng), chữ kí số và hàm băm [1].
Mật mã ngày càng được ứng dụng rộng rãi và trở thành những tiêu chuẩn đảm bảo truyền thông tin an toàn, tin cậy, kiểm soát truy nhập tài nguyên cũng như những giao dịch điện tử. Nó được sử dụng để giới hạn truy cập tới những dữ liệu nhạy cảm. Trong thực tế, mật mã là thành phần rất quan trọng trong những chính sách an toàn của tổ chức.
Ẩn mã là thuật ngữ xuất phát từ tiếng Hi Lạp có nghĩa là “cách viết được che phủ” nhưng vẫn có thể tìm ra được bản gốc và đã có từ năm 440 trước công nguyên [2]. Các tài liệu lịch sử cho thấy con người đã áp dụng phương pháp ẩn mã như viết thông báo lên bảng gỗ sau đó phủ bằng một lớp sáp ong hoặc cạo trọc đầu và xăm thông báo rồi đợi tóc mọc dài lại,... Sau này, người ta đã sử dụng các loại “mực vô hình” được làm từ các nguyên liệu hữu cơ như sữa, nước hoa quả… và các bản viết chỉ hiện lên khi được hơ nóng trên lửa. Vào thế kỉ 21, nhiều nước đã bắt đầu sử dụng ẩn mã để bảo vệ tiền tệ không bị làm giả, bằng những loại mực đặc biệt, thuốc nhuộm, sợi chỉ và những mảnh vải nhỏ nhúng bên trong để kí hiệu giá trị của đồng tiền. Khi Internet ra đời, kéo theo sự phát triển mạnh mẽ của phương pháp ẩn mã để trao đổi các thông tin một cách bí mật trên các kênh không an toàn. Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh, video, văn bản,… [4]
Kết hợp ẩn mã và mật mã
Có hai cách để thực hiện kết hợp ẩn mã và mật mã: thứ nhất là mã hóa thông báo rồi ẩn bản mã này trong vật phủ; thứ hai là xác định những bit giống nhau giữa thông báo và vật phủ sau đó lưu vào các vị trí khác nhau dưới dạng một vector [3].
- Cách kết hợp thứ nhất đã được sử dụng rất phổ biến. Trước tiên, người gửi mã hóa thông báo bí mật bằng một phương pháp mật mã nào đó để biến thành một bản mã khó hiểu. Sau đó, người gửi tiếp tục sử dụng kĩ thuật ẩn mã để che giấu sự tồn tại của nó trong một vật phủ. Hình 1 dưới đây mô tả quá trình thực hiện của cách thức này so với phương pháp ẩn mã thông thường (không dùng mật mã).
Hình 1: Mô hình ẩn mã thông thường và kết hợp với mật mã
Theo mô tả trong hình 1, ở cách kết hợp với mật mã thì mô hình có thể tạo nên sự bảo vệ hai lớp, ngoài việc giấu đi nội dung thực của thông báo, thì do có ẩn mã nên kẻ tấn công khó có thể biết được sự có mặt của bản mã đó trong vật phủ.
- Cách kết hợp thứ hai sử dụng lược đồ hoàn toàn khác, có phần mới lạ và đặc biệt hơn rất nhiều. Sau khi bên gửi và bên nhận thống nhất một vật phủ thì người gửi sẽ xác định các bit của thông báo bí mật mà trùng khớp với các bit trong vật phủ rồi lưu vào thành một vector chứa các vị trí khác nhau của vật phủ. Thông tin truyền đi chỉ đơn giản là vector này chứ không phải là thông báo ban đầu hay vật phủ. Phương pháp này chính là sự kết hợp ẩn mã và mật mã không sửa vật phủ.
Phương pháp kết hợp ẩn mã và mật mã không sửa vật phủ
Đây là phương pháp lần đầu tiên được Khalil Challita và Hikmat Farhat giới thiệu vào năm 2011 [3]. Ý tưởng của cách tiếp cận này chưa từng được đưa ra trong bất cứ một tài liệu nào trước đó [3]. Đầu tiên, bên gửi và bên nhận đồng ý sử dụng một vật phủ. Người gửi không phải chỉnh sửa vật phủ, mà chỉ xác định những bit của thông báo bí mật nào giống với các bit trong vật phủ, thì lưu vào các vị trí khác nhau (chẳng hạn trong vật phủ) dưới dạng một vector. Vector này sau đó được gửi (thậm chí có thể tăng cường sự an toàn bằng cách mã hóa vector) cho người nhận. Khi ấy, kẻ tấn công có thể chặn được vector đã gửi (có thể đã được mã hoá) nhưng không thể biết được vật phủ tương ứng. Vì vậy, để phá được lược đồ ẩn mã này, kẻ tấn công không những phải chặn được thông tin bí mật đã gửi mà còn phải biết được vật phủ. Hình 2 mô tả quá trình thực hiện của phương pháp này.
Hình 2: Mô hình ẩn mã kết hợp với mật mã không sửa vật phủ
Cách ẩn mã này có một khó khăn ở khâu thống nhất vật phủ giữa người gửi và người nhận, để kẻ tấn công không thể biết được. Thông thường, hai bên đều có trước một tập các vật phủ và kí hiệu vật phủ được sử dụng trong mỗi lần trao đổi. Thực chất ở đây không sử dụng bất kỳ một kĩ thuật ẩn mã cũng như mật mã thông thường nào. Đây chính là sự sáng tạo hết sức tinh tế của các tác giả đã đề xuất ra phương pháp này.
Quá trình mã hóa rất thông minh, thể hiện ở chỗ tìm ra các bit giống nhau giữa thông báo và vật phủ rồi lưu thành một vector chứa các vị trí bắt đầu và kết thúc của các chuỗi bit con đó. Sự ẩn mã cũng là một cách thực hiện tinh tế không kém vì thực chất là ẩn vào vật phủ thông qua vector vừa xác định mà không hề thay đổi vật phủ. Do vậy, thông tin truyền đi không phải là một vật phủ có nhúng thông báo mà chỉ đơn giản là một vector chứa các vị trí khác nhau của vật phủ. Người nhận có vật phủ và dựa vào vector này để xác định các vị trí trong vật phủ từ đó để ìm ra các bit tương ứng và đó cũng chính là các bit trong thông báo của người gửi.
Dưới đây là thuật toán thực hiện dựa trên cách phân tích cú pháp tĩnh (Static Parsing Steganography – SPS), gồm hai bước [3]:
Bước 1: Vật phủ (cả bên gửi và bên nhận chia sẻ) và thông báo bí mật được chuyển thành các bit, kí hiệu các tệp đầu ra này lần lượt là Object1 và Secret1.
Bước 2: Mã hóa thông báo bí mật Secret1 theo Object1. Ý tưởng được dựa trên bài toán tìm xâu con giống nhau dài nhất của hai xâu, sử dụng phương pháp cây hậu tố tổng quát (Genralized Suffix Tree). Lựa chọn phương pháp này vì nó có thể thực hiện trong thời gian tuyến tính.
Thuật toán sử dụng chiến lược chia để trị và thực hiện như sau: Bắt đầu với toàn bộ các bit của Secret1 và tìm một xâu có các bit giống nhau ở cả Secret1 và Object1. Nếu tìm được một xâu thỏa mãn yêu cầu thì thuật toán sẽ lưu các chỉ số bắt đầu và kết thúc của xâu Secret1 mà xuất hiện trong Object1 vào một tệp đầu ra là Output1. Nếu không tìm thấy, thì thuật toán tiếp tục đệ quy để tìm ra một xâu giống nhau trong nửa trái và nửa phải của Secret1 vớiObject1. Tiếp tục lặp quá trình này cho tới khi tìm ra được tất cả các bit của Secret1 khớp với các bit của Object1.
Thời gian thực hiện của thuật toán SPS có thể được xác định bằng quan hệ truy hồi T(n) = 2T(n = 2) + O(n). Vì hàm gọi đệ quy chia bài toán thành 2 bài toán con có độ phức tạp bằng nhau khi tìm một xâu giống nhau trong nửa trái và nửa phải của Secret1 với Object1. Ngoài ra còn một thao tác kiểm tra xem toàn bộ các bit của Secret1 có thuộc Object1 không ứng với độ phức tạp về thời gian là O(n). Do vậy, độ phức tạp về thời gian của thuật toán này là O(n logn) [3].
Kết luận
Kết hợp ẩn mã và mật mã là một phương pháp mới, giúp nâng cao độ an toàn trong việc trao đổi thông tin bí mật trên các kênh truyền không tin cậy, điều đặc biệt là không cần thay đổi vật phủ. Mã hóa thông tin kết hợp với ẩn mã giống như việc áp dụng bảo vệ nhiều lớp, thông báo sẽ được mã hóa rồi giấu vào trong vật phủ bằng một phương pháp ẩn mã bất kì mà hai bên đã thống nhất. Ở Việt Nam, ẩn mã vẫn còn là một lĩnh vực khá mới và chưa được quan tâm nhiều như mật mã. Tuy nhiên,trong tương lai điều này có thể sẽ thay đổi và có thể phát triển để xây dựng thành công những giao thức ẩn mã này.
Tài liệu tham khảo
[1]. A. Joseph Raphael, Dr. V. Sundaram, “Cryptography and Steganography – A Survey”.[2]. Joshua Silman, “Steganography and Steganalysis: An Overview”, SANS Institute Reading Room site, (tháng 8/2001) [3]. Khalil Challita, Hikmat Farhat, “Combining Steganography and Cryptography: New Directions. [4]. M. Pavani, S. Naganjaneyulu, C. Nagaraju, “A Survey on LSB Based Steganography Methods”, International Journal Of Engineering And Computer Science ISSN:2319-7242, Volume 2 Issue 8 Page No. 2464-2467, (tháng 8/2013). |