Bài báo cáo bài tập lớn phương pháp hoán vị giả ngẫu nhiên

32 4 0
Bài báo cáo bài tập lớn   phương pháp hoán vị giả ngẫu nhiên

Đ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

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: Sinh viên thực hiện: Nguyễn Hoàng Đức Trần Quốc Định Bùi Trần Quốc Cường Phạm Tuấn Nam Phạm Hoàng Thịnh Đỗ Tuấn Sơn TS Đỗ Xuân Chợ B17DCAT046 B17DCAT038 B17DCAT026 B17DCAT134 B17DCAT174 B17DCAT154 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 .4 1.2 Phương pháp giấu tin tách tin k bit LSB .6 1.2.1 Phương pháp giấu tin .6 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 1.3.1 Phương pháp giấu tin .7 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 3.5 Demo .25 Thuật toán giấu tin 25 Thuật toán tách tin 30 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 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 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 Hình 2: Quá trình giấu tin Hình 3: Quá trình lấy thông tin khỏi ảnh 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 Q 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 bên phải ghép phầ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 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 Quá 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) ngồi 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 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 - 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 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 Ví dụ minh họa: Quy trình tách tin: Lấy bit 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 tốn sử dụng phương thức Seed 10 + x[j] print(x) Từ ta có kết sau: [ 1] 7 8 9 [ 33] 9 9 [ 65] 9 4 8 [ 97] 8 9 9 [ 129] 9 6 9 [ 161] 4 8 7 8 2.2.2 Phương pháp dựa mật mã học nguyên thuỷ a Dựa mật mã khối Một mật mã khối an tồn chuyển đổi thành CSPRNG cách chạy chế độ đếm Điều thực cách chọn khóa ngẫu nhiên mã hóa số 0, sau mã hóa số 1, sau mã hóa số 2, v.v Bộ đếm bắt đầu số tùy ý khác Tuy nhiên, sử dụng mình, khơng đáp ứng tất tiêu chí CSPRNG (như nêu trên) khơng mạnh chống lại "các phần mở rộng thỏa hiệp trạng thái": với kiến thức trạng thái (trong trường hợp đếm chìa khóa), bạn dự đốn tất số khứ b Dựa hàm băm Một mã băm bảo mật mã hóa đếm hoạt động CSPRNG tốt số trường hợp Trong trường hợp này, cần thiết giá trị ban đầu đếm ngẫu nhiên bí mật Tuy nhiên, có nghiên cứu thuật toán để sử dụng theo cách này, số tác giả cảnh báo chống lại việc sử dụng 2.2.3 Phương pháp dựa lý thuyết số học a Blum Blum Shub Blum Blum Shub (B.B.S.) tạo số giả ngẫu nhiên đề xuất vào năm 1986 Lenore Blum, Manuel Blum Michael Shub có nguồn gốc từ hàm chiều Michael O Rabin Công thức tạo số ngẫu nhiên: x n+1=x n mod M Trong M tích số ngun tố lớn p q 18 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 toán đảm bảo 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 toá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 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 tồ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

Ngày đăng: 19/06/2023, 09:29

Tài liệu cùng người dùng

Tài liệu liên quan