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

Học phần các kỹ thuật giấu tin bài báo cáo bài tập lớn phương pháp hoán vị giả ngẫu nhiên

33 3 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

Định dạng
Số trang 33
Dung lượng 882,17 KB

Nội dung

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN Học phần: Các kỹ thuật giấu tin Bài báo cáo tập lớn: Phương pháp hoán vị giả ngẫu nhiên Giảng viên hướng dẫn: TS Đỗ Xuân Chợ Sinh viên thực hiện: Phạm Tuấn Vũ – B18DCAT269 Nguyễn Trọng Nhân –B18DCAT178 Nhóm :12 Hà Nội 2021 Mục lục DANH MỤC HÌNH ẢNH Chương 1: Phương pháp LSB 1.1 Tổng quan phương pháp thay LSB 1.2 Phương pháp giấu tin tách tin k bit LSB 1.2.1 Phương pháp giấu tin 1.2.2 Phương pháp tách tin 1.3 Phương pháp giấu tin tách tin k bit LSB nâng cao .7 1.3.1 Phương pháp giấu tin 1.3.2 Phương pháp tách tin 1.4 Đánh giá phương pháp LSB 10 Chương 2: Tạo số giả ngẫu nghiên 11 2.1 Giới thiệu .11 2.2 Thuật toán tạo số giả ngẫu nhiên .11 2.2.1 Phương pháp .11 2.2.2 Phương pháp dựa mật mã học nguyên thuỷ .18 2.2.3 Phương pháp dựa lý thuyết số học 18 2.2.4 Phương pháp đặc biệt .19 Chương 3: Phương pháp hoán vị giả ngẫu nhiên Demo 22 3.1 Ý tưởng thực 22 3.2 Quá trình giấu tin 23 3.3 Quá trình giải tin 24 3.4 Đánh giá .24 Tài liệu tham khảo 32 DANH MỤC HÌNH ẢNH Hình 1: Bit có trọng số thấp LSB .4 Hình 2: Quá trình giấu tin Hình 3: Q trình lấy thơng tin khỏi ảnh .5 Hình 4: Sơ đồ nhúng tách tin phương pháp hoán vị giả ngẫu nhiên 23 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Chương 1: Phương pháp LSB 1.1 Tổng quan phương pháp thay LSB Ý tưởng kỹ thuật tiến hành giấu tin vào vị trí bit quan trọng LSB phần tử bảng màu Đây phương pháp giấu tin đơn giản nhất, thông điệp dạng nhị phân giấu (nhúng) vào bit LSB – bit có ảnh hưởng tới việc định tới màu sắc điểm ảnh Vì ta thay đổi bit quan trọng điểm ảnh màu sắc điểm ảnh tương đối gần với điểm ảnh cũ Ví dụ ảnh 16 bit 15 bit biểu diễn màu RGB điểm ảnh cịn bit cuối khơng dùng đến ta tách bit điểm ảnh để giấu tin… Ví dụ: Tách bit cuối bit biểu diễn điểm ảnh ảnh 256 Hình 1: Bit có trọng số thấp LSB Trong phép tách ta coi bit cuối bit quan trọng nhất, thay đổi giá trị bit thay đổi giá trị điểm ảnh lên xuống đơn vị, với thay đổi nhỏ ta hi vọng cấp độ màu điểm ảnh không bị thay đổi nhỉều Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hình 2: Quá trình giấu tin Hình 3: Q trình lấy thơng tin khỏi ảnh Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien 1.2 Phương pháp giấu tin tách tin k bit LSB 1.2.1 Phương pháp giấu tin Đầu vào phương pháp bao gồm:  Ảnh gốc C làm mơi trường để giấu  Thơng tin bí mật M Đầu ra: Ảnh giấu thông tin mật Quá trình giấu tin vào ảnh sử dụng k bit LSB sau: - Với C ảnh nguyên 8-bit màu xám, kích thước 𝑀𝑐 × 𝑁𝑐 điểm ảnh Người giấu tin thực biểu diễn ma trận điểm ảnh dạng số thập phân Công thức biến đổi tổng quát sau: C = {𝑥𝑖𝑗 | ≤ i ≤ 𝑀𝑐, ≤ j ≤ 𝑁𝑐, 𝑥𝑖𝑗 = {0, 1, 2, …, 255}} - Sau ảnh C chuyển thành ma trận điểm ảnh tiếp tục chuyển ma trận điểm ảnh mảng chiều I với i phần tử, sau chuyển điểm ảnh dạng nhị phân - thông điệp M chiều dài n bit chuyển dạng nhị phân: M = {𝑚𝑖 | ≤ I < 𝑛, 𝑚𝑖{0,1}} - Cứ bit ảnh tách bỏ số bit LSB ngồi bên phải ghép phần cịn lại với k bit nhị phân đầu thông điệp (k bit), kết thu đưa dạng thập phân gán ngược lại vào I(i) Cuối chuyển đổi ảnh giá trị nhị phân mảng I từ mảng chiều mảng chiều 𝑀𝑐× 𝑁𝑐 phần tử, ta ảnh giấu tin Ví dụ minh họa quy trình giấu tin: Giả sử có điểm ảnh là: 12 98 150 200 Chuyển điểm ảnh dạng nhị phân thu kết sau: 00001100 01100010 10010110 11001000 Thơng điệp bí mật M chữ ‘b’ có mã ASCII 98, biểu diễn dạng nhị phân sau: 01100010 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Quy trình giấu thông tin: Cứ bit ảnh, lấy bit đầu điểm ảnh (từ vị trí I0 đến I5) ghép với bit thơng điệp (từ vị trí a0 đến a1) được: 00001101 01100010 10010100 11001010 Như vậy, ảnh sau giấu thơng điệp M có điểm ảnh dạng nhị phân sau: 00001101 01100010 10010100 11001010 1.2.2 Phương pháp tách tin Cũng tương tự trình giấu tin ảnh, trình tách tin ảnh thực theo giai đoạn tương tự  Đầu vào: Ảnh mang tin  Đầu ra: Ảnh tách tin thơng tin bí mật Q trình thực sau: - Biểu diễn ma trận điểm ảnh dạng số thập phân với 𝑀𝑐 × 𝑁𝑐 phần tử Chuyển đổi ma trận ảnh 𝑀𝑐 × 𝑁𝑐 phần tử mảng chiều I với i phần tử - Chuyển bit ảnh dạng nhị phân, bit ảnh tách lấy k bit (k bit) bên phải ghép kết lại với - Kết thu sử dụng hàm chuyển đổi từ chuỗi số nhị phân chuỗi kí tự Sau lặp lại trình số lần số lần duyệt, thu nội dung thơng điệp Ví dụ minh họa quy trình tách tin: Lấy bit ngồi bên phải điểm ảnh mới: 00001101 01100010 10010100 11001010 Ghép lại với chuỗi nhị phân thông điệp, chữ ‘b’: 01100010 1.3 Phương pháp giấu tin tách tin k bit LSB nâng cao 1.3.1 Phương pháp giấu tin Đầu vào: - Ảnh gốc cấp xám Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien - Thơng điệp bí mật - Khóa (8 bit) - Số bit LSB cần mã hóa điểm ảnh (2 bit) Đầu ra: - Ảnh mang tin - Khóa - Số bit thơng điệp cần mã hóa Các bước thực hiện: - Biểu diễn ma trận điểm ảnh dạng số thập phân với m x n phần tử Chuyển đổi ma trận ảnh m x n phần tử mảng chiều I với i phần tử - Biểu diễn thông tin giấu dạng chuỗi nhị phân - Sử dụng khóa bit (khóa kí tự, chuyển khóa dạng mảng với thơng điệp) đem mã hóa với chuỗi thơng điệp bí mật phép XOR: bit khóa đem XOR với bit đầu vào thông điệp Thực lại bước nội dung thơng điệp mã hóa hết - Thơng điệp mã hóa đem giấu vào ảnh tương tự phương pháp thay k bit LSB cổ điển: Là tách lấy bit đầu bit ảnh đem ghép với bit đầu thông điệp chuyển dạng thập phân gán ngược lại vào ảnh - Thực lấy hết bit chuỗi nhị phân thông điệp để ghép với bit ảnh Chuyển đổi ảnh I từ mảng chiều mảng chiều m x n phần tử, ta ảnh giấu tin Ví dụ minh họa: Giả sử có điểm ảnh là: 12 98 150 200 Chuyển điểm ảnh dạng nhị phân thu kết sau: 00001100 01100010 10010110 11001000 Thơng điệp bí mật M chữ ‘c’ có mã ASCII 97, biểu diễn dạng nhị phân sau: 01100011 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Nhập khóa, kí tự bit, giả sử chữ ‘b’, có dạng nhị phân sau: 01100010 Mã hóa thơng điệp dùng phép XOR(a, b) được: 00000001 Cứ bit ảnh, ta lấy bit đầu điểm ảnh ghép với bit thông điệp mã hóa được: 00001100 01100000 10010100 11001001 1.3.2 Phương pháp tách tin Đầu vào: - Ảnh giấu tin - Khóa (8 bit) - Số lần duyệt - Số bit thơng điệp cần mã hóa Đầu ra: - Ảnh tách tin - Thông điệp Các bước thực hiện: - Biểu diễn ma trận điểm ảnh dạng số thập phân với m x n phần tử Chuyển đổi ma trận ảnh m x n phần tử mảng chiều I với i phần tử - Chuyển bit ảnh dạng nhị phân, bit ảnh tách lấy bit bên phải Đem ghép kết lại với - Kết thu sử dụng hàm chuyển đổi từ chuỗi số nhị phân chuỗi kí tự Sau lặp lại trình số lần số lần duyệt, ta thu nội dung thơng điệp mã hóa - Sử dụng hàm giải mã thực giải mã thơng điệp khóa bit, ta thu kết nội dung gốc thông điệp - Trường hợp chuyển đổi thông điệp bảng mã quy ước sẵn: Tương tự trường hợp chuyển đổi kí tự mã nhị phân nó, giấu tin ta sử dụng bảng quy đổi kí tự chữ số theo chuẩn người lập trình tự định nghĩa Đến bước tách ta lại quy đổi ngược lại dạng kí tự số ban đầu Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Ví dụ minh họa: Quy trình tách tin: Lấy bit ngồi bên phải điểm ảnh mới: 00001100 01100000 10010100 11001001 Ghép lại với chuỗi nhị phân thông điệp bị mã hóa: 00000001 Sử dụng hàm mã hóa để lấy lại thơng điệp gốc M, cách XOR(M, b) ta nhị phân chữ ‘c’: 01100011 1.4 Đánh giá phương pháp LSB Ưu điểm:  Chất lượng hình ảnh sau giấu tin khơng bị ảnh hưởng  Kỹ thuật LSB đơn giản, dễ cài đặt phát huy hiệu tốt nhiều ứng dụng  Kỹ thuật LSB tảng cho nhiều kỹ thuật phức tạp sau Nhược điểm:  Tính bền vững thấp; thơng tin mật dễ bị thay đổi tác động vào hình ảnh  Phát thơng tin dễ dàng thuật tốn đơn giản Để giải nhược điểm trình giấu tin thường sử dụng khóa bí mật để mã hóa thơng tin cần giấu trước sử dụng kỹ thuật LSB áp dụng phương thức Seed Phương thức Seed thông qua phép logarithm rời rạc để chọn dãy pixel ngẫu nhiên thay việc ánh xạ mà LSB sử dụng Điều giúp thơng tin giấu an tồn để có thông điệp, kẻ công cần nắm rõ thuật toán sử dụng phương thức Seed 10 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien b Blum–Micali algorithm Thuật toán Blum – Micali trình tạo số giả ngẫu nhiên an tồn mặt mật mã Thuật tốn có đảm bảo tính bảo mật độ khó tốn logarit rời rạc Công thức tạo số ngẫu nhiên: x n+1=g x mod p i Trong p số nguyên tố lẻ, g p số chọn trước Thuật tốn đảm bảo khơng thể bị suy ngược nhờ độ phức tạp thuật toán logarit rời rạc 2.2.4 Phương pháp đặc biệt a Yarrow algorithm Thuật toán Yarrow họ tạo số giả mật mã (CPRNG) phát minh John Kelsey, Bruce Schneier Niels Ferguson xuất vào năm 1999 Thuật tốn Yarrow rõ ràng khơng có ký hiệu, miễn phí quyền mã nguồn mở; khơng cần giấy phép để sử dụng Một thiết kế cải tiến từ Ferguson Schneier, Fortuna, mô tả sách họ, Mật mã thực tế Yarrow sử dụng FreeBSD, thay Fortuna Yarrow tích hợp iOS macOS cho lập trình viên, Apple chuyển sang Fortuna kể từ năm 2020 Yarrow-160 sử dụng Triple DES khoá chế độ đếm để tạo đầu C giá trị đếm n-bit; K khóa Để tạo khối đầu tiếp theo, Yarrow thực theo chức hiển thị C=( C+ ) mod 2n R=Ek (C) K=k bit đầu số sinh b ChaCha20 algorithm ChaCha20 có liên quan chặt chẽ mật mã dòng phát triển Daniel J Bernstein ChaCha20 thiết kế vào năm 2005, sau Bernstein đệ trình lên eSTREAM ChaCha sửa đổi Salsa20 xuất vào năm 2008 Nó sử dụng chức vòng giúp tăng độ khuếch tán tăng hiệu suất số kiến trúc ChaCha20 gồm có đầu vào coi khố a,b,c,d 19 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Cơng thức tạo số ngẫu nhiên a+ ¿ b ; d∗¿ a ; d ≪16 ; c +¿ d ; b∗¿ c ; b ≪ 12; a+ ¿ b ; d∗¿ a ; d ≪ 8; c +¿ d ; b∗¿ c ; b ≪ ; c Fortuna algorithm Fortuna công cụ tạo số giả ngẫu nhiên an toàn mật mã (PRNG) Bruce Schneier Niels Ferguson phát minh xuất vào năm 2003 Nó đặt theo tên Fortuna, nữ thần may mắn La Mã FreeBSD sử dụng Fortuna cho lập trình viên từ FreeBSD 11 Hệ điều hành Apple chuyển sang Fortuna kể từ năm 2020 Bộ tạo dựa mật mã khối tốt Mật mã thực tế gợi ý AES, Serpent Twofish Ý tưởng chạy mật mã chế độ đếm, mã hóa giá trị liên tiếp đếm tăng dần Khóa thay đổi sau lần yêu cầu liệu (tuy nhiên nhỏ), để xâm phạm khóa tương lai khơng gây nguy hiểm cho đầu trình tạo trước Thuộc tính mô tả " Fast Key Erasure" Forward secrecy 20 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien d CryptGenRandom CryptGenRandom hàm tạo số giả ngẫu nhiên an toàn mật mã không dùng Microsoft CryptoAPI Trong chương trình Win32, Microsoft khuyến nghị sử dụng nơi cần tạo số ngẫu nhiên Một báo năm 2007 từ Đại học Hebrew đề xuất vấn đề bảo mật việc triển khai CryptGenRandom Windows 2000 (giả sử kẻ công có quyền kiểm sốt máy) Microsoft sau thừa nhận vấn đề tương tự tồn Windows XP, Vista Microsoft phát hành sửa lỗi cho Windows XP Gói Dịch vụ vào năm 2008 21 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Chương 3: Phương pháp hoán vị giả ngẫu nhiên Demo 3.1 Ý tưởng thực Trong kỹ thuật LSB, thông tin mật giấu theo cách vào bit cố định khối (các điểm ảnh) liên trật tự định Kỹ thuật đơn giản với người giấu tin, dễ bị công vét cạn nhận dạng tự động Ý tưởng giải pháp hốn vị ngẫu nhiên việc giấu thơng tin vào vị trí ngẫu nhiên, Bên cạnh đó, mục đích thuật tốn mong muốn tất bit ảnh chứa tin tham gia q trình nhúng tin, bit thông điệp phân bố ngẫu nhiên tồn miền khơng gian ảnh chứa không tuân theo thứ tự Tuy nhiên, thực theo ý tưởng người giấu tin người tách tin vị trí mà bit thơng được giấu Chính vậy, phương pháp hốn vị ngẫu nhiên khó thực Để giải vấn đề này, chuyên gia đề xuất giải pháp hoán vị giả ngẫu nhiên Theo đó, hốn vị giả ngẫu nhiên dựa giải pháp hoán vị ngẫu nhiên vị trí bit lựa chọn để nhúng thông điệp ngẫu nhiên mà giả ngẫu nhiên Có nghĩa áp dụng kỹ thuật thuật tốn để sinh chuỗi ngẫu nhiên chuỗi ngẫu nhiên khác sau lần giấu tin Hình mơ tả mơ hình giấu tin tách tin ảnh sử dụng phương pháp hoán vị giả ngẫu nhiên Trong nét đứt hình mũi tên thể quy trình sử dụng khơng sử dụng quy trình giấu tin tách tin tùy theo người dùng lựa chọn Bộ sinh số giả ngẫu nhiên (pseudorandom number generator - PRNG), gọi sinh bit ngẫu nhiên tất định (DRBG), thuật toán sinh chuỗi số có thuộc tính gần thuộc tính chuỗi số ngẫu nhiên [11, 12] Chuỗi sinh từ sinh số giả ngẫu nhiên không thực ngẫu nhiên, hồn tồn xác định từ giá trị khởi đầu, gọi nguồn (seed) (mà giá trị hồn tồn ngẫu nhiên) Mặc dù chuỗi gần ngẫu nhiên gần giống với chuỗi sinh sinh số ngẫu nhiên từ phần cứng, sinh số giả ngẫu nhiên có vai trị quan trọng thực tế tốc độ trình tạo số khả tái sử dụng 22 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hình 4: Sơ đồ nhúng tách tin phương pháp hoán vị giả ngẫu nhiên 3.2 Quá trình giấu tin Theo sơ đồ tổng quan trình giấu tách tin, để thực giấu tin giải mã, bên nhận bên gửi cần thống với việc sử dụng thuật toán sinh số giả ngẫu nhiên giá trị khởi tạo ban đầu gửi giá trị khởi tạo qua kênh truyền an toàn Ngoài thơng điệp mã hóa hai bên cần thống thuật tốn mã hóa, giải mã gửi khóa qua kênh truyền an tồn Thuật tốn giấu tin:  Bước 1: Thơng điệp mã hóa (nếu cần) sau chuyển sang thành dãy nhị phân Gọi 𝑙𝑚 độ dài thông điệp (ở dạng nhị phân) tương ứng 𝑚𝑖 bit thứ i thơng điệp sau mã hóa chuyển dạng nhị phân  Bước 2: Trích xuất ma trận điểm ảnh ảnh, biến đổi điểm ảnh dạng nhị phân chuyển ma trận thành dãy nhị phân Gọi 𝑙𝑐 độ dài ảnh sau chuyển dãy nhị phân tương ứng 𝑐𝑖 bit thứ i ảnh  Bước 3: Sử dụng sinh số giả ngẫu nhiên giá trị khởi tạo chọn trước, sinh dãy số 𝑟1 , 𝑟2 , … , 𝑟𝑙𝑚  Bước 4: Thay bit 𝑐𝑟𝑖 ảnh bit 𝑚𝑖 thông điệp 23 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien 3.3 Q trình giải tin Thuật tốn tách tin:  Bước 1: Trích xuất ma trận điểm ảnh ảnh, biến đổi điểm ảnh dạng nhị phân chuyển ma trận thành dãy nhị phân Gọi 𝑙𝑐 độ dài ảnh sau chuyển dãy nhị phân tương ứng 𝑐𝑖 bit thứ i ảnh  Bước 2: Sử dụng sinh số giả ngẫu nhiên 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 bit bit 𝑐𝑟𝑖 ảnh ghép lại để dãy nhị phân Đây dãy nhị phân thông điệp 3.4 Đánh giá Ưu điểm  Độ an toàn cao: kỹ thuật sử dụng sinh số giả ngẫu nhiên nên kẻ cơng khó tìm quy luật giấu tin LSB bit thông điệp giấu vào bit ngẫu nhiên ảnh Nhược điểm:  Dễ xảy việc xung đột trình nhúng chu kì sinh số giả ngẫu nhiên không đủ lớn (nhỏ 𝑙𝑚) dẫn đến tính trạng có nhiều bit giấu vào vị trí  Ảnh bị thay đổi giá trị nhiều bit thông điểm giấu vào bit khơng phải bit LSB Điều dẫn đến kẻ công dễ dàng phát ảnh chứa tin cần nhìn qua mắt thường Để giải nhược điểm này, thực tế chuyên gia thường kết hợp kỹ thuật LSB với kỹ thuật hốn vị giả ngẫu nhiên Theo đó, phương pháp hoán vị giả ngẫu nhiên sinh số ngẫu nhiên số ngẫu nhiên coi điểm ảnh Sau áp dụng kỹ thuật LSB vào để nhúng thông tin vị trí vừa tìm 3.5.Demo Thuật tốn giấu tin Bước 1: Thông chuyển sang thành dãy nhị phân 24 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Ví dụ: ta có thơng điệp đầu vào “mothaiba” thơng điệp mã hố thành dạng nhị phân có dạng Nhằm mục đích thuận tiện cho việc mã hóa và giải mã, ta sẽ sử dụng bit đầu(max 256 kí tự) của dãy mã hóa để nhúng độ dài của thông điệp vào ảnh , tùy vào trường hợp hoặc mục đích sử dụng , lượng ký tự mã hóa lớn ta có thể dành 16 hoặc 32 bit đầu để cho việc nhúng số lượng ký tự của thông điệp vào ảnh 25 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Bước 2: Sử dụng sinh số giả ngẫu nhiên giá trị khởi tạo chọn trước, sinh dãy số r , r , … , r lm Với phương pháp sinh số giả ngẫu nhiên khác ta thu số giả ngẫu nhiên khác nhau: a) Hoán vị giả ngẫu nhiên sử dụng phương pháp đồng dư bậc 2: Ví dụ: với seed ban đầu x 0=1234 (thoảmãn x mod 4=2), n=10 tổng điểm ảnh p Ta có cơng thức tạo số giả ngẫu nhiên: x n+1=( ( x n ( x n+ ) ) mod n ) mod p , với n , x o mod 4=2 ,n=2 k Ta sinh chuỗi số giả ngẫu nhiên: [278, 762, 798, 674, 294, 714, 558, 626, 310, 154, 318, 66, 326, 106, 78, 18, 342, 570, 862, 482, 358, 522, 622, 434, 374, 986, 382, 898, 390, 938, 142, 850, 406, 378, 926, 290, 422, 330] 26 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Vì chọn n = 10 nên số giả ngẫu nhiên không vượt 210=1024 b) Hoán vị giả ngẫu nhiên sử dụng phương pháp đồng dư tuyến tính: Ví dụ: với seed ban đầu x 0=1234 ,a=17 , c=13 , m=2017 tổng điểm ảnh p Ta có cơng thức tạo số giả ngẫu nhiên: x n+1=( ( a x n +c ) mod m ) mod p Trong a số nhân (0 a m) c gia số (0 c m) m modul (m>0) m số nguyên tố đủ lớn Ta sinh chuỗi số giả ngẫu nhiên: [1234, 821, 1868, 1514, 1547, 91, 1560, 312, 1283, 1654, 1910, 211, 1583, 703, 1879, 1701, 692, 1692, 539, 1108, 696, 1760, 1695, 590, 1975, 1316, 198, 1362, 980, 537, 1074, 118, 2, 47, 812, 1715, 930, 1704, 743, 542, 1159, 1563, 363, 133, 257, 348, 1895, 1973, 1282, 1637, 1621, 1349, 759, 814, 1749, 1508, 1445, 374, 320, 1419, 1949, 874, 752, 695, 1743, 1406, 1728, 1151, 1427, 68, 1169, 1733] c) Hoán vị giả ngẫu nhiên sử dụng phương pháp Blum Blum Shub: 27 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Ví dụ: với seed ban đầu x 0=1234 , p=59 ,q=67 , M = p∗q ;và tổng điểm ảnh p Ta có cơng thức tạo số giả ngẫu nhiên: x n+1=( x ¿ ¿ n2 mod M ) mod p ¿ Trong M tích số nguyên tố lớn p q Ta sinh chuỗi số giả ngẫu nhiên [1234, 851, 802, 2818, 3500, 3606, 1819, 100, 2094, 959, 2585, 1655, 3549, 1143, 1959, 3271, 2623, 1909, 3568, 1964, 3121, 449, 3951, 4, 16, 256, 2288, 1172, 1893, 2031, 1982, 2995, 668, 3488, 2763, 926, 3628, 2847, 1759, 2835, 776, 1320, 3080, 3153, 3567, 2735, 1149, 3852, 2295, 1629, 1178, 181, 1137, 138, 3232, 1998, 3427, 3919, 1156, 222, 1848, 3665, 3884, 808, 619, 3673, 3293, 770, 3903, 2500, 307, 3330] Bước 3: Thay bit ảnh bit số lượng kí tự thông điệp (8bit) và bit của thông điệp Ta lấy giá trị pixel ở vị trí (vị trí mà hàm sinh số giả ngẫu nhiên đã cung cấp )bằng getRGB, sau đó sử dụng hàm setBitValue để set bit ở vị trí (vị trí mà hàm sinh số giả ngẫu nhiên đã cung cấp ) StorageBit của pixel bằng bit sinh từ dãy thông điệp cần dấu Sau đó ta set lại giá trị của pixel sau đã được xử lý ; 28 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Bước 4: Sau xử lí, nhúng các bit của thông điệp vào các pixel ảnh thông qua các hàm trên, ta có thể hiển thị nó màn hình và có thể save về để gửi hoặc giải mã 29 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Thuật toán tách tin Bước : Đầu tiên ta cần tách bit số lượng của thông điệp mã hóa từ đó biết được lượng dãy số ta cần sinh để lấy lại các bit của thông điệp dựa seed và hàm sinh số giả ngẫu nhiên đã có Ví dụ ở ta có hàm Blum blum shub Với seed =1234 và n=8 ta có thể sinh dãy số 1234, 851, 802, 2818, 3500, 3606, 1819, 100 30 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Sử dụng hàm extractInteger để lấy lại từng bit pixel the vị trí cung cấp và nhúng nó vào giá trị length , cuối cùng trả về giá trị bit trường hợp này chiều dài thông điệp Bước 2: Sử dụng sinh số giả ngẫu nhiên giá trị khởi tạo dãy số giả ngẫu nhiên với giá trị seed cho trước và số lượng = chiều dài * + 8bit (mặc định lưu trữ giá trị số lượng ký tự) Bước 3: Sử dụng hàm extractBit để lấy lại các giá trị bit của thông điệp theo thứ tự của dãy số giả ngẫu nhiên đã sinh (dựa chiều dài của thông điệp đã tìm thấy) Sau đó chuyển chuỗi nhị phân tìm được thành dạng text và in màn hình, ta thu được thông điệp đã nhúng vào ảnh 31 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien 32 Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien Hoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhienHoc.phan.cac.ky.thuat.giau.tin.bai.bao.cao.bai.tap.lon.phuong.phap.hoan.vi.gia.ngau.nhien

Ngày đăng: 23/12/2023, 22:44

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

TÀI LIỆU LIÊN QUAN

w