C) Hoạt động của AH và ESP trong các chế độ (mode)
a) Hệ thống mật mã khoá công khai RSA
Kỹ thuật mã hoá khoá công cộng RSA được phát triển năm 1977, và cái tên RSA bắt nguồn từ tên của ba nhà phát triển là: Ron Rivest, Adir Shamir và Leonard Adleman.
Cơ sở của thuật toán dựa trên tính phức tạp của phép phân tích một số tự nhiên lớn thành các ước số nguyên tố, được hiểu là có thể dễ dàng nhân A và B được kết quả là C nhưng không dễ dàng suy ra A và B khi biết C, với A, B là những số tương đối lớn.
Hàm một chiều trong thuật toán RSA có dạng y= f(x)= Xe
Các bước thực hiện thuật toán RSA Bước 1: Tạo khoá
- Tạo hai số nguyên lớn p,q - Tính n = p.q; 0(n)=(p-1)(q-1)
- Chọn ngẫu nhiên 1<e<0(n) thoả gcd (0(n), e)=1
- Tính d=e-1mod 0(n)
- Khoá công khai Ku=[e,n] - Khoá bí mật Kr=[d,n] Bước 2: Mật mã
- Đoạn tin x<n
- Mật mã y=Xemod n
Bước 3 Giải mã - Khối tin mã:y
- Giải mã y=Xemod n.
Khoá RSA bao gồm ba giá trị số đặc biệt được sử dụng trong các cặp để mã hoá và giải mã dữ liệu. Khoá công cộng RSA gồm một giá trị khoá công cộng (thường là 317 hay 65.537) và một mạch toán modulus để lấy giá trị tuyệt đối. Modulus là sản phẩm của hai số lớn chính được chọn một cách ngẫu nhiên, được liên kết một cách toán học đến khoá công công được chọn. Khoá riêng được tính toán từ hai số chính phát ra từ modulus và giá trị khoá công cộng.
Thực tế, để thực hiện thuật toán mật mã khoá công khai RSA còn phải liên quan đến một loạt các vấn đề lý thuyết số phức tạp, như thuật toán Euclide để tìm ƯSCLN của hai số nguyên, thuật toán Miller-Rabin để kiểm tra tính nguyên tố của các số tự nhiên lớn.
Kỹ thuật này tạo ra các khoá công cộng phù hợp với các khoá riêng đặc biệt. Điều này tạo cho RSA những ưu điểm là cho phép người giữa một khoá riêng mã hoá dữ liệu với khoá đó, vì thế bất kỳ người nào có một bản sao của khoá công cộng đều có thể giải mã nó sau đó.