Trang chủ Tin tức Thuật toán RSA là gì? Tìm hiểu về công nghệ mã hóa đằng sau chữ ký số

Thuật toán RSA là gì? Tìm hiểu về công nghệ mã hóa đằng sau chữ ký số

Bởi: eca.com.vn - 16/01/2024 Lượt xem: 1782 Cỡ chữ tru cong

   RSA là một trong những tiêu chuẩn, thuật toán mã hóa được sử dụng rộng rãi trên thế giới. Ứng dụng của thuật toán RSA là gì? Và tại sao chữ ký số lại được sử dụng thuật toán RSA? Mời quý khách cùng tìm hiểu thông tin qua bài viết tổng hợp dưới đây của ECA.

1. RSA là gì?

RSA là một thuật toán mã hóa khóa công khai, được sử dụng rộng rãi trong nhiều ứng dụng bảo mật, như chữ ký số, xác thực, mã hóa đường truyền, v.v. RSA được đặt theo tên của ba nhà khoa học đã phát minh ra nó: Ron Rivest, Adi Shamir và Leonard Adleman.

rsa 1

RSA là thuật toán mã hóa phổ biến hàng đầu thế giới.

1.1 Lịch sử và nguồn gốc của RSA

RSA được phát minh vào năm 1977 bởi ba nhà khoa học làm việc tại Viện Công nghệ Massachusetts (MIT). Họ đã lấy cảm hứng từ một bài báo của Whitfield Diffie và Martin Hellman vào năm 1976, trong đó đề xuất một ý tưởng về mã hóa khóa công khai. 

Tuy nhiên, Diffie và Hellman không đưa ra một thuật toán cụ thể để thực hiện ý tưởng này. RSA là thuật toán mã hóa khóa công khai đầu tiên được công bố và có thể thực hiện được trong thực tế.

1.2 Tầm quan trọng của RSA trong mật mã học

RSA là một trong những thuật toán mã hóa quan trọng bậc nhất trong lịch sử mật mã học. Nó đã mở ra một kỷ nguyên mới cho việc trao đổi thông tin an toàn trên internet và các mạng máy tính. 

Thuật toán này cũng là nền tảng cho nhiều tiêu chuẩn bảo mật hiện đại, như SSL/TLS, PGP, S/MIME, v.v. RSA cũng có ảnh hưởng lớn đến các lĩnh vực liên quan, như toán học, khoa học máy tính, kinh tế và luật.

2. Thuật toán RSA và chữ ký số

Nhờ có thuật toán RSA, chữ ký số được tạo ra và trở thành một phương tiện bảo mật hàng đầu, được sử dụng rộng rãi trên toàn cầu.

rsa 2

Chữ ký số được tạo ra nhờ ứng dụng RSA.

2.1 Chữ ký số mã hóa RSA là gì?

Chữ ký số là một dạng chữ ký điện tử được tạo ra bằng cách biến đổi một thông điệp dữ liệu sử dụng hệ thống mật mã không đối xứng, theo đó, người có được thông điệp dữ liệu ban đầu và khóa công khai của người ký có thể xác định được chính xác người ký và tính toàn vẹn của thông điệp.

Chữ ký số RSA là loại chữ ký số sử dụng hệ mã hóa RSA để tăng độ an toàn và bảo mật cho thông điệp dữ liệu.

2.2 Vai trò của RSA trong việc tạo ra chữ ký số

RSA đóng vai trò quan trọng trong việc tạo ra chữ ký số bằng cách sử dụng cặp khóa không đối xứng: khóa công khai (public key) và khóa bí mật (private key). Quy trình tạo chữ ký số với thuật toán RSA diễn ra như sau: 

  • Để tạo ra chữ ký số RSA, người ký sử dụng khóa bí mật của mình để mã hóa thông điệp dữ liệu thành một chuỗi bit gọi là chữ ký. 
  • Chữ ký được gắn vào thông điệp dữ liệu hoặc được gửi riêng lẻ. 
  • Người nhận sử dụng khóa công khai của người ký để giải mã chữ ký thành thông điệp dữ liệu ban đầu. Nếu thông điệp dữ liệu giải mã trùng với thông điệp dữ liệu gốc, nghĩa là chữ ký hợp lệ và thông điệp không bị thay đổi.

2.3 Ưu điểm của mã hóa RSA trong việc tạo và kiểm tra chữ ký số

RSA có nhiều ứng dụng trong việc tạo và kiểm tra chữ ký số, ví dụ như:

- Xác định danh tính chủ thể ký: Chỉ người có khóa bí mật mới có thể tạo ra chữ ký số RSA cho thông điệp của họ, do đó người nhận có thể tin tưởng vào nguồn gốc của thông điệp.

- Bảo vệ tính toàn vẹn nội dung: Bất kỳ sự thay đổi nào trong thông điệp dữ liệu sẽ làm cho chữ ký số RSA không hợp lệ, do đó người nhận có thể phát hiện ra nếu thông điệp bị can thiệp hoặc bị hư hỏng.

- Tính chống chối bỏ: Người ký không thể phủ nhận việc ký số cho thông điệp của họ, vì chỉ họ mới có khóa bí mật để tạo ra chữ ký đó, do đó người nhận có thể chứng minh được trách nhiệm của người ký.

Nhờ những ưu điểm trên, chữ ký số sử dụng thuật toán RSA được pháp luật công nhận có giá trị pháp lý tương tự chữ ký tay hay con dấu của cá nhân, tổ chức.

2.4 Ứng dụng của chữ ký số sử dụng mã hóa RSA

Chữ ký số sử dụng thuật toán mã hóa RSA có độ bảo mật cao, và những tính chất nổi bật, phù hợp để ký những giao dịch, nội dung điện tử cần sự toàn vẹn và giá trị pháp lý như:

  • Ký số cho các văn bản điện tử, hợp đồng điện tử, giấy tờ tùy thân điện tử, chứng chỉ điện tử, hóa đơn điện tử... để đảm bảo tính pháp lý và hợp lệ của chúng.
  • Ký số cho các giao dịch ngân hàng, thanh toán trực tuyến, chuyển tiền điện tử... để đảm bảo tính an toàn và bảo mật của chúng.
  • Ký số cho các phần mềm, ứng dụng, trang web, tập tin... để đảm bảo tính xác thực và bảo vệ quyền sở hữu trí tuệ của chúng.

3. Cơ chế hoạt động và thuật toán cụ thể của RSA

rsa 3

Cách hoạt động của thuật toán RSA.

Cơ chế hoạt động của RSA dựa trên việc sử dụng hai khóa khác nhau: một khóa công khai và một khóa bí mật. 

  • Khóa công khai là một số nguyên lớn, được công khai cho tất cả mọi người, và được sử dụng để mã hóa dữ liệu. 
  • Khóa bí mật là một số nguyên lớn, được giữ bí mật bởi người sở hữu, và được sử dụng để giải mã dữ liệu. 
  • Khóa công khai và khóa bí mật có mối quan hệ toán học với nhau, nhưng rất khó để tìm ra khóa bí mật từ khóa công khai.

Về thuật toán, cụ thể cách tạo khóa trong RSA như sau:

- Chọn hai số nguyên tố lớn p và q, sao cho p khác q. 

- Tính n = p * q. Số n này sẽ là phần của khóa công khai và khóa bí mật.

- Tính 𝜙(n) = (p - 1) * (q - 1). Số 𝜙(n) này là hàm số Euler, biểu thị số lượng số nguyên dương nhỏ hơn n và nguyên tố cùng nhau với n. 

- Chọn một số e sao cho 1 < e < 𝜙(n) và e nguyên tố cùng nhau với 𝜙(n). Số e này sẽ là phần còn lại của khóa công khai.

- Tìm một số d sao cho d * e ≡ 1 (mod 𝜙(n)). Số d này sẽ là phần còn lại của khóa bí mật.

Sau khi có được hai khóa, ta có thể sử dụng chúng để mã hóa và giải mã dữ liệu theo công thức sau:

- Để mã hóa một thông điệp M, ta tính C = M^e (mod n), với C là thông điệp đã mã hóa.

- Để giải mã một thông điệp C, ta tính M = C^d (mod n), với M là thông điệp gốc.

Như vậy, ta đã thấy cách hoạt động của RSA qua một ví dụ đơn giản. Tuy nhiên, trong thực tế, các số p, q, e, d, n được chọn rất lớn, có thể lên đến hàng trăm chữ số, để đảm bảo tính an toàn của thuật toán. Việc phá vỡ RSA đòi hỏi phải phân tích n thành hai thừa số nguyên tố p và q, nhưng đây là một bài toán rất khó, và chưa có thuật toán nào có thể giải quyết nhanh chóng được.

4. Những ứng dụng khác của thuật toán RSA

4.1 Ứng dụng RSA trong thương mại điện tử 

Mã hóa RSA được sử dụng để bảo mật các giao dịch trực tuyến giữa người mua và người bán. RSA cho phép người mua và người bán trao đổi các thông tin nhạy cảm như số thẻ tín dụng, thông tin tài khoản, địa chỉ giao hàng, vv một cách an toàn. 

Cách ứng dụng RSA trong thương mại điện tử như sau: 

  • Người bán sẽ tạo ra một cặp khóa công khai và khóa riêng tư. Khóa công khai sẽ được công bố cho tất cả người dùng, còn khóa riêng tư sẽ được giữ bí mật. 
  • Khi người mua muốn gửi thông tin cho người bán, họ sẽ mã hóa thông tin đó bằng khóa công khai của người bán. Chỉ có người bán mới có thể giải mã thông tin đó bằng khóa riêng tư của mình. Như vậy, thông tin của người mua sẽ được bảo vệ khỏi sự can thiệp của kẻ gian.

4.2 Ứng dụng RSA trong các giao thức mạng 

RSA cũng được sử dụng để xác thực danh tính và tính toàn vẹn của các thông điệp trên mạng. Một số giao thức mạng phổ biến sử dụng RSA là SSH, OpenPGP, S/MIME, SSL/TLS. SSH là giao thức cho phép truy cập từ xa vào máy tính khác qua mạng. Trong đó:

  • OpenPGP là giao thức cho phép mã hóa và ký số các email. 
  • S/MIME là giao thức cho phép mã hóa và ký số các tin nhắn MIME. 
  • SSL/TLS là giao thức cho phép thiết lập kết nối an toàn giữa máy khách và máy chủ trên web. 

Các giao thức này đều sử dụng RSA để tạo ra các chữ ký số và các chứng chỉ số. Chữ ký số và chứng thư số giúp xác nhận rằng thông điệp không bị thay đổi hoặc giả mạo trên đường truyền và danh tính của người gửi.

Tổng kết, RSA là một thuật toán mã hóa quan trọng và cơ bản trong lĩnh vực an ninh mạng và điện tử. Việc hiểu rõ cách thuật toán này hoạt động và tạo chữ ký số giúp người sử dụng có thể yên tâm về tính bảo mật. 

Nếu quý khách có nhu cầu được tư vấn về chữ ký số, xin vui lòng liên hệ - Dịch vụ chứng thực chữ ký số công cộng ECA để được hỗ trợ qua hotline: 1900.4767 hoặc 1900.4768.