Các bƣớc của thuật toán RSA bao gồm
Tạo khóa:
Bƣớc 1: B (Ngƣời nhận) tạo hai số nguyên tố lớn ngẫu nhiên p và q Bƣớc 2: tính n=p*q và ϕ(n)=(p-1)(q-1)
Bƣớc 3: Chọn một số ngẫu nhiên e (0<e< ϕ(n)) sao cho ƢCLN(e, ϕ(n))=1 Bƣớc 4: tính d = e-1 bằng cách dùng thuật toán Euclide
Tìm số tự nhiên x sao cho 𝑑 = 𝑥∗ϕ𝑒n +1
Bƣớc 5: n và e làm khóa công khai (public key) - d làm khóa bí mật (private key)
Ví dụ: Bƣớc 1: Chọn số 23 và 41 (2 số này là số nguyên tố) Bƣớc 2: n=23*41=943 ϕ(n)= 22*40=880 Bƣớc 3: chọn e =7 vì ƢCLN(7,880) = 1 Bƣớc 4: 𝑑 =880𝑥+1 7 → 𝑑 = 503 𝑣à 𝑥 = 4 Bƣớc 5: n=943 và e=7 d= 503 Mã hóa và giải mã:
Bƣớc 1: A nhận khóa công khai của B
Bƣớc 3: Mã hóa
Tính c= me mod n (c là mã của m sau khi mã hóa) Bƣớc 4: Gửi c cho B
Bƣớc 5: Giải mã Tính m = cd mod n
=> m là thông tin nhận đƣợc
Ví dụ:
Bƣớc 1: A nhận khóa công khai n=943 và e=7 Bƣớc 2: Thông tin cần gửi m=35
Bƣớc 3: c=357
mod 943 = 545 Bƣớc 4: Gửi c = 545 cho B Bƣớc 5: Giải mã
m=545503 mod 943=35 => m= 35
3.3.2. Lựa chọn giải thuật giấu tin
Nhƣ trên chƣơng 2, luận văn đã đề xuất một thuật toán giấu tin dựa trên mã Hamming và đánh giá giải thuật này chỉ làm thay đổi ảnh mang nhiều nhất 3%, và các vị trí thay đổi trong ảnh nằm hoàn toàn ngẫu nhiên, trong khi đó có thể giấu đƣợc một lƣợng thông tin khá lớn 16% kích thƣớc của ảnh, điều này sẽ chống đƣợc một số phƣơng pháp tấn công nhƣ phƣơng pháp thống kê. Do đó, luận văn sẽ chọn giải thuật giấu tin dựa trên mã Hamming để xây dựng chƣơng trình.
3.3.3. 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 Matlab R2014a. MATLAB là phần mềm cung cấp môi trƣờng tính toán số và lập trình. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện ngƣời dùng và liên kết với những chƣơng trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Matlab cung cấp các công cụ chuyên dụng để giải quyết những vấn đề cụ thể nhƣ xử lý ảnh, xử lý số tín hiệu…. Có thể nói Matlab là một công cụ lợi hại giúp cho việc thực hiện các giải thuật xử lý ảnh nhanh chóng và dễ hiểu.
Vì vậy, trong khuôn khổ thời gian hạn chế của luận văn này, tác giả lựa chọn giải pháp là xây dựng phần mềm trên Matlab, môi trƣờng Window 7.
3.3.4. Thiết kế và cài đặt
Theo giải pháp đã đề xuất ở trên, phần mềm có các khối chức năng chính nhƣ sau:
Khối chức năng phía ngƣời gửi:
- Tạo ngẫu nhiên cặp khóa công khai/bí mật
- Mã hóa thông điệp mật theo giải thuật mã hóa khóa công khai RSA
- Tiến hành giấu thông điệp vào ảnh theo thuật toán giấu tin dựa trên mã Hamming.
Khối chức năng phía ngƣời nhận: - Tách thông tin từ vật mang
- Giải mã thông tin bằng khóa bí mật của hệ mã hóa khóa công khai đã sinh ở trên. Bắt đầu Thông điệp M (Message) Thông điệp M đã được mã hóa Ảnh mang (Cover Image) Ảnh đã mang tin mật (Stego Image) Kết thúc RSA
Thuật toán giấu tin