1. Định nghĩa RSA:
Năm 1977, Ron Rivest, Adia Shamir và Leonard Adleman đã đưa ra hệ thống mã hóa dữ liệu dùng khóa công khai. Được làm việc theo nguyên tắc sau: chọn hai số lớn số nguyên tố là p và q, và tính theo công thức n= pq, n được gọi là môđun. Chọn một số e nhỏ hơn n, và số này có giá trị tương đối là (p-1)(q-1), và tìm ra số nghịch đảo của chúng, đó là d, mod (p-1)(q-1). Có nghĩa là ed = 1 mod (p-1)(q-1), e và d được gọi là số mũ chung và số mũ riêng tương ứng. Khóa công khai là một cặp (n, e) và khóa bí mật là d. Thừa số p và q phải được giữ bí mật hoặc làm mật hiệu quả khi sử dụng lần sau.
Thật khó đoán để có thể tìm ra được khóa bí mật d từ khóa chung (công khai) (n, e). Tuy nhiên nếu ai đó có được n dựa trên p và q thì có thể tìm ra khóa bí mật d. Như thế toàn bộ việc bảo mật của RSA được căn cứ vào sự xác nhận việc phân tích ra thừa số nguyên tố là rất khó. Đó là cách RSA làm việc cho việc bảo mật riêng rẽ và chứng minh xác nhận.
Bảo mật RSA (mã hóa): giả sử rằng Alice muốn gửi một thông báo riêng tư là m đến cho Bob. Alice tạo ra một văn bản mã hóa được biểu diễn dưới dạng mũ c = m^e mod n, có e và n là khóa công khai của Bob. Để mã hóa, Bob cũng phải giải mã hàm mũ m = c^d mod n, và chuyển đổi lại thành thông báo nguyên thuỷ m. phải chắc chắn rằng mối quan hệ giữa e và d phải đúng thì Bob mới có thể chuyển đổi chính xác thông báo đó được. Vì chỉ có Bob mới biết được d, và do đó cũng chỉ có Bob mới có thể giải mã được.
Chứng minh xác thực của RSA: giả sử Alice muốn gửi một tài liệu mật hiệu m đến cho Bob. Alice tạo ra một chữ ký kỹ thuật số và cũng được biểu diễn dưới dạng mũ s = m^d mod n, mà d và n cặp khóa của Alice. Cô ta gửi s và m đến cho Bob. Để kiểm tra chữ ký có đúng hay không, Bob phải giải hàm mũ và kiểm tra lại thông báo đã được chuyển đổi trở lại, m = s^e mod n. Cặp khóa công khai của Alice là e và n.
Đó là lý do mà việc mã hóa và chứng nhận không cho phép chia sẽ bất kỳ khóa bí mật lẽ nào: mỗi người chỉ có khóa công khai chung của riêng họ và anh ta hay chị ta sở hữu riêng biệt khóa bí mật của họ. Bất cứ người nào có thể gửi một thông báo đã được mã hóa hoặc kiểm tra thông báo mật hiệu (có sử dụng chữ ký kỹ thuật số) thì họ chỉ sử dụng khóa công khai đó nhưng chỉ người nào đó có quyền sở hữu đúng khóa cá nhân thì mới có thể giải mã được thông báo mật hiệu đó.
Các khóa công khai và khoá bí mật chỉ định các hàm có thể áp dụng cho bất kỳ thông báo nào. Cho D thể hiện tập hợp các thông báo chấp nhận được. Ví dụ D có thể là tập hợp tất cả dãy bít có chiều dài hữu hạn. Ta yêu cầu các khóa công khai và khóa bí mật chỉ định các hàm từ D đến chính nó. Chẳng hạn như, ta thể hiện các khóa công khai và riêng của Alice và Bob lần lượt là PA, SA và PB, SB. Hàm tương ứng với khóa công khai PA của Alice được ký hiệu là PA() và hàm tương ứng với khóa bí mật SA được ký hiệu là SA(). Như vậy các hàm PA() và SA() là các phép hoán vị của D. Các khoá công khai và bí mật của một bên tham gia bất kỳ là một “ cặp vừa khớp” ở chổ chúng chỉ định các hàm là nghịch đảo với nhau.
Nghĩa là: M = SA(PA(M)) M= PA(SA(M))
Với một thông báo M ∈ D việc biến đổi thành công M bằng hai khoá
PA và SA theo một trong hai thứ tự sẽ cho ra thông báo M trở lại.
Trong hệ mật mã này nhất ngoài Alice ra không ai có thể tính toán hàm SA() trong thời gian cho phép được. Tính riêng tư của thông báo được mã hóa và gửi đi và các số ký danh của Alice đều dựa vào giả thiết cho rằng chỉ Alice mới có thể tính toán được SA(). Yêu cầu này cho biết tại sao Alice phải giữ bí mật SA. Giả sử chí có Alice mới có thể tính toán SA() phải đứng cvững cho dù mọi người biết PA và có thể tính toán PA(), hàm nghịch đảo với SA() một cách hiệu quả. Ta có thể thể hiện phép biến đổi PA() nhưng không thể hiện cách biến đổi nghịch đảo SA() tương ứng.