Trình Tạo Khóa RSA là gì?
Trình Tạo Khóa RSA tạo cặp khóa công khai và riêng tư RSA ở định dạng PEM tiêu chuẩn, sẵn sàng sử dụng trong mã hóa, chữ ký số, chứng chỉ SSL/TLS và các giao tiếp an toàn.
RSA (Rivest-Shamir-Adleman) là một trong những thuật toán mã hóa bất đối xứng được sử dụng rộng rãi nhất trong mật mã học hiện đại. Nó sử dụng một cặp khóa được liên kết toán học: khóa công khai để mã hóa dữ liệu hoặc xác minh chữ ký, và khóa riêng tư để giải mã dữ liệu hoặc tạo chữ ký.
Giải Thích Loại Khóa
RSA-OAEP
Optimal Asymmetric Encryption Padding
Được thiết kế để mã hóa và giải mã dữ liệu. Được khuyến nghị cho trao đổi dữ liệu an toàn, mã hóa tệp và bảo vệ thông tin nhạy cảm.
Mã hóaRSASSA-PKCS1-v1_5
RSA Signature Scheme with Appendix
Được sử dụng để tạo và xác minh chữ ký số. Phổ biến trong mã thông báo JWT, ký mã, xác thực tài liệu và bảo mật API.
Chữ kýKích Thước Khóa
2048-bit
Mức bảo mật tiêu chuẩn phù hợp với hầu hết các ứng dụng.
- Tạo nhanh
- Tiêu chuẩn ngành
- Hiệu suất cân bằng
- Được khuyến nghị cho mục đích chung
3072-bit
Bảo mật nâng cao để bảo vệ dữ liệu nhạy cảm.
- Biên độ bảo mật cao hơn
- Bảo vệ tương lai
- Thời gian tạo vừa phải
- Lý tưởng cho dữ liệu nhạy cảm
4096-bit
Bảo mật tối đa cho các môi trường bảo mật cao.
- Bảo vệ tối đa
- Bảo mật dài hạn
- Tạo chậm hơn
- Cấp độ doanh nghiệp
Cách Sử Dụng Trình Tạo Khóa RSA
Tạo cặp khóa RSA an toàn trong vài giây bằng công cụ dựa trên trình duyệt của chúng tôi. Làm theo các bước đơn giản này để tạo khóa mật mã của bạn:
Chọn Kích Thước Khóa
Chọn giữa 2048, 3072 hoặc 4096 bit dựa trên yêu cầu bảo mật của bạn. Đối với hầu hết các ứng dụng, 2048-bit cung cấp bảo mật đầy đủ với hiệu suất tối ưu.
Chọn Loại Khóa
Chọn RSA-OAEP nếu bạn cần mã hóa/giải mã dữ liệu, hoặc RSASSA-PKCS1-v1_5 nếu bạn cần tạo/xác minh chữ ký số.
Chọn Thuật Toán Băm
Chọn từ SHA-256, SHA-384 hoặc SHA-512. SHA-256 được khuyến nghị cho hầu hết các trường hợp sử dụng, trong khi SHA-512 cung cấp sức mạnh băm tối đa.
Tạo Cặp Khóa
Nhấp vào nút "Tạo Cặp Khóa". Khóa công khai và riêng tư của bạn sẽ được tạo ngay lập tức và hiển thị ở định dạng PEM tiêu chuẩn.
Sao Chép hoặc Tải Xuống
Sử dụng nút sao chép để nhanh chóng sao chép khóa vào bộ nhớ tạm, hoặc tải xuống dưới dạng tệp .pem để lưu trữ an toàn và tích hợp vào các dự án của bạn.
Định Dạng Đầu Ra
Khóa Công Khai
Được xuất ở định dạng SPKI (Subject Public Key Info), được bao bọc trong mã hóa PEM. An toàn để chia sẻ công khai cho mã hóa hoặc xác minh chữ ký.
Có thể chia sẻKhóa Riêng Tư
Được xuất ở định dạng PKCS8, được bao bọc trong mã hóa PEM. Phải được giữ bí mật và an toàn. Được sử dụng để giải mã và tạo chữ ký.
Giữ Bí MậtDấu Vân Tay
Băm SHA-256 của khóa công khai ở định dạng thập lục phân được phân tách bằng dấu hai chấm. Cung cấp xác định và xác minh khóa dễ dàng.
Định danhDữ Liệu Của Bạn Vẫn Riêng Tư
Bảo mật và quyền riêng tư là ưu tiên hàng đầu của chúng tôi. Tất cả việc tạo khóa diễn ra hoàn toàn trong trình duyệt của bạn bằng Web Crypto API:
- Không xử lý máy chủ - Khóa được tạo cục bộ bằng phần cứng mật mã của thiết bị của bạn và không bao giờ được truyền qua mạng
- Không lưu trữ - Khóa chỉ tồn tại trong bộ nhớ phiên trình duyệt của bạn cho đến khi bạn lưu chúng một cách rõ ràng. Chúng tôi không lưu trữ bất cứ điều gì
- Không theo dõi - Chúng tôi không ghi nhật ký, giám sát hoặc thu thập bất kỳ thông tin nào về hoạt động tạo khóa của bạn
- Mật mã nguồn mở - Sử dụng Web Crypto API gốc của trình duyệt, được kiểm toán và duy trì bởi các nhà cung cấp trình duyệt
Tính Năng
Nhiều Kích Thước Khóa
Tạo khóa RSA ở ba kích thước tiêu chuẩn ngành để phù hợp với yêu cầu bảo mật của bạn:
- 2048-bit cho mục đích hàng ngày và bảo mật tiêu chuẩn
- 3072-bit cho bảo vệ nâng cao và tuân thủ
- 4096-bit cho bảo mật tối đa và bảo vệ dài hạn
Loại Khóa Linh Hoạt
Hỗ trợ cả hai trường hợp sử dụng mật mã RSA chính:
- RSA-OAEP cho mã hóa và giải mã dữ liệu an toàn
- RSASSA-PKCS1-v1_5 cho chữ ký số và xác minh
- Chọn thuật toán phù hợp cho ứng dụng cụ thể của bạn
Lựa Chọn Thuật Toán Băm
Chọn từ nhiều hàm băm mật mã:
- SHA-256 - Nhanh và an toàn cho hầu hết các ứng dụng
- SHA-384 - Bảo mật nâng cao với đầu ra băm lớn hơn
- SHA-512 - Sức mạnh băm tối đa cho các hệ thống quan trọng
Đầu Ra PEM Tiêu Chuẩn
Khóa được xuất ở định dạng PEM tương thích rộng rãi:
- Khóa công khai sử dụng tiêu chuẩn mã hóa SPKI
- Khóa riêng tư sử dụng tiêu chuẩn mã hóa PKCS8
- Tương thích với OpenSSL, SSH và hầu hết các thư viện mật mã
- Sẵn sàng sử dụng ngay trong các hệ thống sản xuất
Dấu Vân Tay Khóa
Mỗi cặp khóa được tạo bao gồm các tính năng xác minh:
- Dấu vân tay SHA-256 của khóa công khai
- Định dạng thập lục phân được phân tách bằng dấu hai chấm để dễ đọc
- Xác định và xác minh khóa dễ dàng
- Phát hiện giả mạo hoặc thay thế khóa
Sao Chép và Tải Xuống
Nhiều tùy chọn để lưu khóa được tạo của bạn:
- Sao chép một cú nhấp vào bộ nhớ tạm để sử dụng nhanh
- Tải xuống dưới dạng tệp .pem để lưu trữ an toàn
- Các tệp riêng biệt cho khóa công khai và riêng tư
- Tích hợp ngay vào các dự án của bạn
Công Cụ Dòng Lệnh
- Cài đặt OpenSSL hoặc các công cụ tương tự
- Tìm hiểu cú pháp lệnh phức tạp
- Chuyển đổi định dạng thủ công
- Rủi ro lỗi cú pháp
- Thiết lập tốn thời gian
Trình Tạo Dựa Trên Trình Duyệt
- Không cần cài đặt
- Giao diện trực quan đơn giản
- Xử lý định dạng tự động
- Tạo không có lỗi
- Kết quả tức thì
Các Câu Hỏi Thường Gặp
Tôi nên sử dụng kích thước khóa nào?
2048-bit đủ cho hầu hết các ứng dụng và là tiêu chuẩn ngành hiện tại được khuyến nghị bởi NIST và các tổ chức bảo mật khác. Nó cung cấp bảo mật mạnh mẽ với hiệu suất tối ưu cho các hoạt động mã hóa và ký.
Sử dụng 4096-bit nếu bạn cần bảo mật dài hạn (10+ năm), làm việc trong các môi trường bảo mật cao hoặc có yêu cầu tuân thủ yêu cầu kích thước khóa lớn hơn. Hãy nhớ rằng khóa lớn hơn có những sự đánh đổi:
- Thời gian tạo dài hơn (có thể mất vài giây)
- Hoạt động mã hóa/giải mã chậm hơn
- Kích thước tệp khóa lớn hơn
- Tăng chi phí tính toán
3072-bit cung cấp một giải pháp trung gian với bảo mật nâng cao trong khi duy trì hiệu suất hợp lý.
Sự khác biệt giữa RSA-OAEP và RSASSA-PKCS1-v1_5 là gì?
Đây là hai lược đồ RSA khác nhau được thiết kế cho các mục đích khác nhau:
RSA-OAEP (Mã Hóa)
Sử dụng cho: Mã hóa và giải mã dữ liệu
- Mã hóa bằng khóa công khai
- Giải mã bằng khóa riêng tư
- Trao đổi dữ liệu an toàn
- Mã hóa tệp
RSASSA-PKCS1-v1_5 (Chữ Ký)
Sử dụng cho: Tạo và xác minh chữ ký số
- Ký bằng khóa riêng tư
- Xác minh bằng khóa công khai
- Mã thông báo JWT
- Ký mã
Chọn dựa trên trường hợp sử dụng của bạn: Nếu bạn cần bảo vệ tính bảo mật của dữ liệu, hãy sử dụng RSA-OAEP. Nếu bạn cần chứng minh tính xác thực và toàn vẹn, hãy sử dụng RSASSA-PKCS1-v1_5.
Các khóa được tạo có an toàn không?
Có, hoàn toàn. Các khóa được tạo bằng Web Crypto API tích hợp của trình duyệt, triển khai các thuật toán mật mã tiêu chuẩn ngành và sử dụng trình tạo số ngẫu nhiên an toàn mật mã (CSRNG).
- Tính ngẫu nhiên an toàn mật mã - Sử dụng các nguồn entropy phần cứng khi có sẵn
- Không truyền mạng - Khóa được tạo hoàn toàn trên thiết bị của bạn
- Không lưu trữ máy chủ - Khóa chỉ tồn tại trong phiên trình duyệt của bạn
- Triển khai gốc trình duyệt - Được kiểm toán bởi các nhà cung cấp trình duyệt và các nhà nghiên cứu bảo mật
- Thuật toán tiêu chuẩn ngành - Tuân theo các thông số kỹ thuật NIST và IETF
Web Crypto API là công nghệ tương tự được sử dụng bởi các trang web lớn cho các giao tiếp an toàn. Khóa của bạn cũng an toàn như những khóa được tạo bởi các công cụ dòng lệnh chuyên nghiệp như OpenSSL.
Tôi có thể sử dụng các khóa này với OpenSSL không?
Có, hoàn toàn tương thích. Định dạng PEM với mã hóa SPKI (khóa công khai) và PKCS8 (khóa riêng tư) là định dạng tiêu chuẩn được sử dụng bởi OpenSSL và hầu như tất cả các công cụ và thư viện mật mã.
Bạn có thể trực tiếp sử dụng các khóa được tạo với:
- OpenSSL - Bộ công cụ mật mã dòng lệnh
- SSH - Xác thực vỏ an toàn (với chuyển đổi)
- Mô-đun mật mã Node.js - Mật mã JavaScript
- Thư viện mật mã Python - PyCrypto, cryptography.io
- API bảo mật Java - JCE, Bouncy Castle
- Hàm OpenSSL PHP - hàm openssl_*
- Mật mã .NET - RSACryptoServiceProvider
- Chứng chỉ SSL/TLS - Cấu hình máy chủ web
# Verify public key
openssl rsa -pubin -in public_key.pem -text -noout
# Verify private key
openssl rsa -in private_key.pem -text -noout
# Extract public key from private key
openssl rsa -in private_key.pem -pubout -out public_key.pem
Tại sao việc tạo khóa 4096-bit lại mất nhiều thời gian?
Kích thước khóa lớn hơn yêu cầu tìm các số nguyên tố lớn hơn, điều này tính toán rất nhiều. Việc tạo khóa RSA liên quan đến:
Tạo Số Nguyên Tố
Tìm hai số nguyên tố ngẫu nhiên lớn
Kiểm Tra Tính Nguyên Tố
Xác minh các số thực sự là số nguyên tố
Tính Toán Khóa
Tính toán các số mũ công khai và riêng tư
Đối với khóa 4096-bit, các số nguyên tố gấp đôi so với khóa 2048-bit, làm cho kiểm tra tính nguyên tố phức tạp hơn đáng kể. Thời gian tạo phụ thuộc vào sức mạnh xử lý của thiết bị của bạn:
| Kích Thước Khóa | Thời Gian Điển Hình | Độ Phức Tạp |
|---|---|---|
| 2048-bit | < 1 giây | Nhanh |
| 3072-bit | 1-3 giây | Vừa phải |
| 4096-bit | 3-10 giây | Tính toán nhiều |
Lưu ý: Các thiết bị hiện đại có tăng tốc mật mã phần cứng có thể tạo khóa nhanh hơn. Các thiết bị di động thường mất nhiều thời gian hơn máy tính để bàn.
Dấu vân tay khóa là gì?
Dấu vân tay là băm SHA-256 của khóa công khai, hiển thị ở định dạng thập lục phân được phân tách bằng dấu hai chấm (tương tự như dấu vân tay khóa SSH). Nó đóng vai trò là một định danh ngắn, duy nhất cho khóa của bạn.
Tại sao dấu vân tay hữu ích:
- Xác minh khóa - Xác nhận bạn đang sử dụng khóa công khai chính xác
- Phát hiện giả mạo - Xác minh khóa không bị sửa đổi trong quá trình truyền
- So sánh dễ dàng - So sánh khóa mà không cần kiểm tra nội dung PEM đầy đủ
- Quản lý khóa - Theo dõi và xác định nhiều khóa trong hệ thống của bạn
- Kiểm toán bảo mật - Ghi nhật ký và giám sát khóa nào đang được sử dụng
SHA256:a3:4f:2c:8e:1d:9b:7f:3a:6c:5e:2d:8f:4b:1a:9c:7e:3d:6f:2a:8b:5c:1e:9d:4f:7a:3c:6e:2b:8d:5f:1a:9c
Dấu vân tay được lấy từ mật mã từ khóa công khai, vì vậy bất kỳ thay đổi nào đối với khóa (thậm chí một bit duy nhất) sẽ tạo ra một dấu vân tay hoàn toàn khác.
Chưa có bình luận nào. Hãy là người đầu tiên!