Mô tả thuật toán:
Ngƣời nhận sẽ tạo ra cho mình một cặp khóa công khai và khóa riêng (khóa bí mật) bằng cách nhƣ sau:
- Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập.
- Tính giá trị hàm Phi Euler .
- Chọn một khóa công khai sao cho và là số nguyên tố cùng nhau với .
- Tính khóa riêng sao cho .
Ngƣời nhận sẽ gửi khóa công khai của mình cho ngƣời gửi trên một kênh an toàn và giữ bí mật khóa riêng của mình. Ở đây, và giữ vai trò rất quan trọng, chúng là các nhân tố của và cho phép tính khóa riêng sau khi đã biết khóa công khai .
Quá trình mã hóa: Ngƣời gửi biết đƣợc bản rõ và , sau đó sẽ mã hóa dữ liệu bằng khóa công khai của ngƣời nhận, sau khi mã hóa sẽ đƣợc bản mã
.
Quá trình giải mã: Nhận đƣợc bản mã từ ngƣời gửi, ngƣời nhận lấy khóa riêng của mình để giải mã ra bản rõ theo công thức .
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Ta có sơ đồ hoạt động của thuật toán RSA sau:
Hình 2.5. Sơ đồ tạo khóa, mã hóa và giải mã RSA Ví dụ: 70793 707933 50116700869 50115922144 30483041 Chọn p,q nguyên tố Tính n = p*q Tính ф(n) = (p-1)(q-1)
Chọn khóa công khai e (1<e<ф(n)), (e là nguyên tố cùng ф(n))
Tính khóa riêng d sao cho de ≡ 1(mod ф(n)) C = me mod n Bản rõ m Bản mã C m = Cd mod n Bản rõ gốc m e d
5851898625 30483041 7523619714 30483041 7523619714 38101458113 7523619714 3487987 4469234330 3487987 754553 45262687896 754553 884545 48968540294 884545 46665533 10037623855 46665533 15657 29531681112 15657 95432 4648093185 95432 4545786 38326603863 4545786 777543 38921288996 777543 45673222 21930948547 45673222 Bảng 2.3. Bảng giá trị của bản mã và bản rõ
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: Bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó (không tìm đƣợc thuật toán hiệu quả để giải chúng) thì không thể thực hiện đƣợc việc phá mã toàn bộ đối với RSA. Phá mã một phần phải đƣợc ngăn chặn bằng các phƣơng pháp chuyển đổi bản rõ an toàn. Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): Tìm số m sao cho
, trong đó (e, n) chính là khóa công khai và c là bản mã.
Hiện nay phƣơng pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực hiện đƣợc điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm đƣợc 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm đƣợc giá trị và qua đó xác định d từ e. Trong chƣơng số học chúng ta đã biết chƣa có một phƣơng pháp nào đƣợc tìm ra
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
trên máy tính để giải bài toán này trong thời gian đa thức (polynomial-time). Tuy nhiên ngƣời ta cũng chƣa chứng minh đƣợc điều ngƣợc lại (sự không tồn tại của thuật toán).