a) Tổng quan về phương pháp hoán vị giả ngẫu nhiên
Trong kỹ thuật LSB, các thông tin mật được giấu theo cách tuần tự vào các bit cố định của các khối (các điểm ảnh) liên tiếp hoặc theo trật tự nhất định. Kỹ thuật này đơn giản với người giấu tin, nhưng dễ bị tấn công vét cạn hoặc nhận dạng tự động.
Ý tưởng của giải pháp hoán vị ngẫu nhiên chính là việc giấu thông tin vào các vị trí ngẫu nhiên, bất kỳ. Bên cạnh đó, mục đích của thuật toán cũng mong muốn tất cả các bit của ảnh chứa tin đều có thể tham gia trong quá trình nhúng tin, và các bit của thông điệp cũng được phân bố ngẫu nhiên trên toàn bộ miền không gian của ảnh chứa và không tuân theo một thứ tự nào. Tuy nhiên, nếu thực hiện theo ý tưởng này thì cả người giấu tin và người tách tin đều không biết được vị trí mà các bit thông được được giấu. Chính vì vậy, phương pháp hoán vị ngẫu nhiên sẽ rất khó thực hiện.
Để giải quyết vấn đề này, các chuyên gia đề xuất giải pháp là hoán vị giả ngẫu nhiên. Theo đó, hoán vị giả ngẫu nhiên sẽ vẫn dựa trên giải pháp hoán vị ngẫu nhiên nhưng vị trí các
bit được lựa chọn để nhúng thông điệp sẽ không phải là ngẫu nhiên nữa mà là giả ngẫu nhiên. Có nghĩa là sẽ áp dụng một kỹ thuật hoặc một thuật toán nào đó để sinh ra chuỗi ngẫu nhiên và chuỗi ngẫu nhiên này sẽ khác nhau sau mỗi lần giấu tin. Hình 2.2 dưới đây mô tả mô hình giấu tin và tách tin trong ảnh sử dụng phương pháp hoán vị giả ngẫu nhiên. Trong đó những nét đứt của hình và mũi tên thể hiện những quy trình này có thể sử dụng hoặc không sử dụng trong quy trình giấu tin và tách tin tùy theo người dùng lựa chọn.
Hình 2.2. Sơ đồ nhúng và tách tin của phương pháp hoán vị giả ngẫu nhiên
Bộ sinh số giả ngẫu nhiên (pseudorandom number generator - PRNG), còn được gọi là bộ sinh bit ngẫu nhiên tất định (DRBG), là thuật toán sinh ra chuỗi các số có các thuộc tính gần như thuộc tính của chuỗi số ngẫu nhiên [11, 12]. Chuỗi sinh ra từ bộ sinh số giả ngẫu nhiên không thực sự là ngẫu nhiên, do nó hoàn toàn được xác định từ giá trị khởi đầu, được gọi là nguồn (seed) của nó (mà giá trị này có thể hoàn toàn là ngẫu nhiên). Mặc dù chuỗi gần ngẫu nhiên này gần giống với chuỗi được sinh ra bằng bộ sinh số ngẫu nhiên từ phần cứng, bộ sinh số giả ngẫu nhiên có vai trò rất quan trọng trong thực tế vì tốc độ trong quá trình tạo số và khả năng tái sử dụng của nó.
Để hiểu rõ hơn về bộ sinh số giả ngẫu nhiên, bài giảng đi vào giới thiệu một thuật toán sinh số giả ngẫu nhiên được sử dụng phổ biến – thuật toán Blum Blum Shub.
Thuật toán Blum Blum Shub (B.B.S) là một thuật toán sinh số giả ngẫu nhiên được đề xuất vào năm 1986 bởi Lenore Blum, Manuel Blum và Michael Shub [12]. Thuật toán lựa chọn hai số nguyên tố lớn p và q. Hai số nguyên tố này nên thỏa mãn điều kiện sau để đảm báo có chu kỳ dài:
Ảnh chứa tin Bộ tách Số khởi tạo (seed) Bộ sinh số giả ngẫu nhiên Giải mã Khóa k Thông điệp Bộ sinh số giả ngẫu nhiên Số khởi tạo (seed) Mã hóa Thông điệp Khóa k Ảnh gốc Bộ nhúng
{ 𝑝 ≡ 𝑞 ≡ 3 (𝑚𝑜𝑑 4) gcd (𝑝, 𝑞) 𝑙à 𝑛ℎỏ 𝑛ℎấ𝑡
Sau đó tính giá trị 𝑀 = 𝑝 ∗ 𝑞 và lựa chọn một nhân (seed - số khởi tạo) 𝑥0. Số 𝑥0 cần đảm bảo là nguyên tố cùng nhau với số M và khác 0 hoặc 1. Khi đó các số giả ngẫu nhiên được sinh ra theo công thức:
𝑥𝑛+1= 𝑥𝑛2 𝑚𝑜𝑑 𝑀
Ví dụ: Lựa chọn 𝑝 = 11, 𝑞 = 19 𝑣à 𝑥0 = 3 khi đó sinh được dãy các số là {9, 81, 82, 36, 42, 92, … }
b) Kỹ thuật giấu tin bằng phương pháp hoán vị giả nhẫu nhiên
Theo sơ đồ tổng quan về quá trình giấu và tách tin, để thực hiện giấu tin và giải mã, bên nhận và bên gửi cần thống nhất với nhau về việc sử dụng thuật toán sinh bộ số giả ngẫu nhiên và giá trị khởi tạo ban đầu hoặc gửi giá trị khởi tạo qua kênh truyền an toàn. Ngoài ra nếu thông điệp được mã hóa thì hai bên cũng cần thống nhất thuật toán mã hóa, giải mã và gửi khóa qua kênh truyền an toàn.
+ Thuật toán giấu tin
Bước 1: Thông điệp được mã hóa (nếu cần) sau đó được chuyển sang thành dãy nhị phân. Gọi 𝑙𝑚 là độ dài của thông điệp (ở dạng nhị phân) và tương ứng 𝑚𝑖 là bit thứ i của thông điệp sau khi mã hóa và chuyển về dạng nhị phân.
Bước 2: Trích xuất ma trận điểm ảnh trong ảnh, biến đổi các điểm ảnh về dạng nhị phân và chuyển ma trận thành dãy nhị phân. Gọi 𝑙𝑐 là độ dài của ảnh sau khi chuyển về dãy nhị phân và tương ứng 𝑐𝑖 là bit thứ i trong ảnh.
Bước 3: Sử dụng bộ sinh số giả ngẫu nhiên và giá trị khởi tạo chọn trước, sinh dãy số 𝑟1, 𝑟2, … , 𝑟𝑙𝑚
Bước 4: Thay thế bit 𝑐𝑟𝑖 của ảnh bằng bit 𝑚𝑖 của thông điệp + Thuật toán tách tin
Bước 1: Trích xuất ma trận điểm ảnh trong ảnh, biến đổi các điểm ảnh về dạng nhị phân và chuyển ma trận thành dãy nhị phân. Gọi 𝑙𝑐 là độ dài của ảnh sau khi chuyển về dãy nhị phân và tương ứng 𝑐𝑖 là bit thứ i trong ảnh.
Bước 2: Sử dụng bộ sinh số giả ngẫu nhiên và giá trị khởi tạo chọn trước, sinh dãy số 𝑟1, 𝑟2, … , 𝑟𝑙𝑚
Bước 3: Lần lượt lấy ra các bit bit 𝑐𝑟𝑖 của ảnh và ghép lại để được một dãy nhị phân. Đây chính là dãy nhị phân của thông điệp.
c) Đánh giá về phương pháp hoán vị giả ngẫu nhiên
- Ưu điểm
Độ an toàn cao: do kỹ thuật này sử dụng bộ sinh số giả ngẫu nhiên nên kẻ tấn công khó tìm được quy luật giấu tin như LSB vì các bit của thông điệp được giấu vào các bit ngẫu nhiên trong ảnh.
- Nhược điểm:
Dễ xảy ra việc xung đột trong quá trình nhúng khi chu kì của bộ sinh số giả ngẫu nhiên không đủ lớn (nhỏ hơn hoặc bằng 𝑙𝑚) sẽ dẫn đến tính trạng có nhiều hơn 1 bit được giấu vào cùng 1 vị trí
Ảnh sẽ bị thay đổi giá trị rất nhiều do các bit thông điểm được giấu vào các bit bất kì chứ không phải chỉ bit LSB. Điều này dẫn đến kẻ tấn công dễ dàng phát hiện ảnh đang chứa tin chỉ cần nhìn qua bằng mắt thường. Để giải quyết nhược điểm này, trong thực tế các chuyên gia thường kết hợp giữa kỹ thuật LSB với kỹ thuật hoán vị giả ngẫu nhiên. Theo đó, phương pháp hoán vị giả ngẫu nhiên sẽ sinh ra các số ngẫu nhiên và các số ngẫu nhiên này sẽ được coi là các điểm ảnh. Sau đó sẽ áp dụng kỹ thuật LSB vào để nhúng thông tin và các vị trí vừa tìm được.