Thuật toán mã hóa công khai RSA của chữ ký số

Trong mật mã học, RSA là một thuật ngữ không còn xa lạ. RSA còn được tìm ra và định nghĩa bởi 3 nhà khoa học nổi tiếng, đánh dấu sự tiến bộ vượt bậc trong lĩnh vực bảo mật. RSA được dùng rộng rãi tại các hoạt động thương mại điện tử. Đặc biệt là trong lĩnh vực phát triển chữ ký số. Vậy thuật toán mã hóa công khai RSA của chữ ký số được hiểu như thế nào? Bài viết dưới đây, chukyso.store sẽ cung cấp những thông tin hết sức cần thiết về thuật toán đó.

Thuật toán mã hóa công khai RSA là gì?

RSA có nguồn gốc từ đề tài nghiên cứu của 3 nhà khoa học lớn là Ron Rivest, Adi Shamir, Len Adleman lần đầu tiên năm 1977.

Thuật toán mã hóa công khai RSA là một thuật toán hay còn gọi là hệ mã hóa bất đối xứng. Người ta sử dụng RSA nhiều trong công tác mã hóa, thiết lập chữ ký điện tử. Bất cứ ai cũng có thể dùng khóa công khai để có thể mã hóa được nguồn dữ liệu muốn chuyển đi.

Không giống với mã hóa có khóa đối xứng, khóa bí mật của RSA không truyền được thông tin ra bên ngoài ngay cả khi bị nghe trộm. Như vậy RSA có thể sử dụng ở hầu hết mọi trường hợp cần bảo mật thông tin. Đảm bảo thông tin an toàn một cách tuyệt đối.

Thuật toán mã hóa công khai RSAThuật toán mã hóa công khai RSA

Quá trình hoạt động của RSA

Thuật toán mã hóa công khai RSA sẽ trải qua 2 bước sau đây để hoàn thiện chức năng bảo mật:

Bước 1: Sinh khóa

Nhiệm vụ của sinh khóa là tìm kiếm một bộ gồm 3 số tự nhiên e, d, n thỏa mãn công thức sau đây:

Q7DUezIk rwZHNb BEZLJxFEyRf BACiRtqUFVyHnySxJcuEi4xx2D8f5h0uR6oqOdRYKlB6WOxsnrTNTFPWOmwRELfYMB nXV9HQzw8MEkj942

Theo đó thì d sẽ được bảo mật tuyệt đối, để dù có biết m, e, n cũng không tìm ra d được.

RSA được sinh cụ thể như sau:

  • Chọn ra 2 nguyên tố p và q
  • Có công thức n=pq. Sau đó giá trị của n có vai trò modulus ở cả 2 loại là public và private.
  • Chọn nguyên tố e ở khoảng 1, và làm giả nguyên tố n để ước chung lớn nhất của 2 số này có giá trị bằng 1.
  • Tính giá trị của d để d trung với 1/e. Như vậy d sẽ là nghịch đảo modulo của e theo công thức modulo mod.

Bộ số (n,e) sẽ được public key tìm ra và (p,q) sẽ được private key tìm ra. Bạn phải giữ cẩn thận private key và nguyên tố p, q để tính toán các khóa một cách dễ dàng.

Thông thường con người chọn e có giá trị nhỏ để có thể mã hóa nhanh chóng, e=65537.

Bước 2: Mã hóa và giải mã 

Chúng ta sẽ tìm hiểu cách mã hóa public key và giải mã private key.

Nếu có sẵn M thì chuyển sang số tự nhiên m ở khoảng (0,n) để đảm bảo m và n là hai nguyên tố cùng nhau. Mẹo đó là hãy thêm padding vào sau đó tiến hành mã hóa m để chuyển m thành c. Ta có công thức dưới đây:

8G kzq6IKE60keKEH7SoSLZv7FlfkBRNSzk5ffPhKu R7viLabaA icVi VLVS19UhsGtxSufQQRH q jBdb88RmmPwtf4IasdAAxe2EKkpe0Q4gXuxCzMRk7bGu0QweOz pA vD

C được chuyển tới người nhận. Người nhận phải giải mã c để tìm được m. Sau đó lấy giá trị từ m bạn đảo ngược padding lại để tìm được thông tin gốc. Ta có ví dụ:

p = 5, q = 7

=> n = pq = 35

=> φ(n) = 24

Công thức trên đã được chứng minh theo thuật toán được áp dụng. Bởi vậy dù bạn có thử với bất kì giá trị nào của m theo công thức RSA sẽ vẫn được kết quả chính xác.

Sử dụng thuật toán mã hóa công khai RSA trong chữ ký số

Ngày nay việc ký tên đã được công nghệ góp sức để tại thành chữ ký số. Loại chữ ký này có thể dùng RSA để gia tăng tính bảo mật cho người dùng. 

Người gửi thông tin sẽ sử dụng private, người nhận sử dụng public key. Trở ngại lớn nhất là về thời gian bởi thông tin gửi qua RSA khá dài. Bởi vậy chữ ký số được xác định theo phương pháp mã hóa.

Đôi khi chữ ký số sẽ gây trở ngại ở khâu xác nhận. Nếu chữ ký đó bị sai lệch đi một ly thì dù cho chính mình là chủ thông tin cũng khó xác nhận.

Tuy nhiên, điều này gây khó khăn cho kẻ xấu muốn đột nhập để hack tài khoản của bạn. Tất nhiên hệ mã hóa vẫn có những thách thức về an toàn nhưng dù sao đây là vẫn là một trong những cách đảm bảo độ an toàn cao.

Bởi vậy khi sử dụng thuật toán mã hóa công khai RSA người dùng cần có những lưu ý nhất định, tránh làm lộ thông tin ra ngoài.

Thuật toán mã hóa công khai RSAThuật toán mã hóa công khai RSA

Công nghệ ngày một phát triển bởi vậy các giao dịch thương mại điện tử đang được thực hiện mỗi ngày. Thông qua chữ ký số sẽ xác định được chủ nhân của dữ liệu nào đó và kiểm tra sự nguyên vẹn của dữ liệu.

Ở nước ta chữ ký số được áp dụng rộng rãi vào các ngành như: ngân hàng, kế toán,… Và trong tương lai chữ ký số sẽ còn phát triển mạnh mẽ hơn nữa khi mọi người đang hướng tới xã hội không giấy bút.

Như vậy bài viết trên đã cung cấp thông tin để ta biết thuật toán mã hóa công khai RSA là gì? Thuật toán này đem lại rất nhiều lợi ích cho cuộc sống của con người nếu biết cách sử dụng nó. Nếu có bất kỳ thắc mắc nào, hãy liên hệ ngay với chúng tôi để được giải quyết nhanh chóng nhất.

Xin trân trọng cảm ơn!