Nhằm đảm bảo được tính toàn vẹn dữ liệu và bảo mật cao, chữ ký số sử dụng một hệ mã hóa bất đối xứng. Tuy có nhiều hệ mã hóa khác nhau nhưng hệ mã hóa bất đối xứng RSA được coi là khá kinh điển trong việc sản xuất công cụ số hóa này.
Cùng chúng tôi tìm hiểm xem Chữ ký số RSA là gì? nhé. Bài viết sau sẽ giải thích thuật ngữ RSA một cách dễ hiểu và đơn giản nhất cho bạn.
1. Chữ ký số RSA là gì?
Theo Khoản 6, Điều 3, Nghị định 130/2018/NĐ-CP quy định về Luật giao dịch điện tử về chữ ký số và Dịch vụ chứng thực chữ ký số:
“Chữ ký số là một dạng chữ ký điện tử được tạo ra bằng sự 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.”
Vậy hoàn toàn có thể hiểu, chữ ký số RSA là loại chữ ký số sử dụng hệ mã hóa RSA để tăng độ bảo đảm an toàn và truyền đạt tài liệu dạng số hóa bảo mật thông tin hơn .
2. Cấu tạo của chữ ký số RSA
RSA được hiểu là một thuật toán mật mã hóa khóa công khai. Đây cũng là thuật toán đầu tiên phù hợp cho việc tạo ra chữ ký điện tử và mã hóa chúng. Nó là sự tiến bộ vượt bậc nằm trong lĩnh vực mật mã học và áp dụng thành công vào việc sử dụng khóa công cộng.
Chữ ký số RSA rất phổ biến trong thương mại điện tử, giao dịch trực tuyến vì nó đảm bảo an toàn khi điều kiện độ dài khóa đủ lớn. Dựa trên công nghệ mã hóa trên, Chữ ký số RSA gồm một cặp khóa được mã hóa không đối xứng như một khóa công khai (Public Key) và khóa bí mật (Private Key). Cụ thể như sau:
Khóa bí mật | Dùng để tạo ra chữ ký số RSA |
Khóa công khai | công dụng trong việc thẩm định và đánh giá, kiểm tra chữ ký số và xác nhận về người dùng. Nó được tạo bởi khóa bí hiểm tương ứng trong mỗi cặp khóa . |
Người ký | Đối tượng dùng khóa bí hiểm của mình để ký số vào một tài liệu nào đó biểu lộ tên mình . |
Người nhận | Đối tượng nhận được thông điệp tài liệu được ký số, bằng việc sử dụng những chứng từ số để kiểm tra chữ ký số cho tài liệu nhận được. Ngoài ra còn triển khai những hoạt động giải trí, thanh toán giao dịch điện tử .. |
Ký số | Đưa khóa bí hiểm RSA vào ứng dụng tự động hóa tạo và gắn chữ ký số cho thông điệp dữ liệu nào đó . |
3. Giải thích thuật ngữ RSA – ít người biết
RSA là tên của hệ mã hóa bất đối xứng. nó cũng được viết tắt bởi tên của những nhà tăng trưởng ra hệ mã hóa này : Ron Rivest, Adi Shamir và Leonard Adleman. RSA được sử dụng thoáng đãng với mục tiêu mã hoá và đặc biệt quan trọng là công nghệ tiên tiến tạo chữ ký RSA.
Trong đó, khóa công khai minh bạch hoàn toàn có thể san sẻ cho tổng thể mọi người. Hoạt động của hệ mã hóa RSA nói chung và chữ ký số RSA nói riêng đều dựa trên 4 bước chính : sinh khóa, san sẻ mã, mã hóa và giải thuật.
3.1. Sinh khóa cho hệ mã hóa RSA
Mấu chốt của việc sinh khóa trong hệ mã hóa RSA là tìm được những bộ 3 e, d và n là số tự nhiên sao cho :
m ^ ( ed ) = m mod n
Và một điểm không thể bỏ qua là bảo mật cho d để sao cho dù biết e, n hay thậm chí m thì cũng không thể tìm ra d được.
Cụ thể, hệ mã hóa RSA được sinh như sau:
- Chọn 2 số p và q là số nguyên tố .
Tính n = pq. Khi đó, n sẽ được dùng làm modulus cho public key và private key .
- Tính một số giả nguyên tố bằng phi hàm Carmichael như sau:
(n) = BCNN(λ(p), λ(q)) = BCNN(p − 1, q − 1).
Giữ bí mật cho giá trị này.
- Chọn một số ít tự nhiên e trong khoảng chừng ( 1, λ ( n ) )
e thỏa mãn nhu cầu điều kiện kèm theo ƯCLN ( e, λ ( n ) ) = 1, hay chính là e và λ ( n ) nguyên tố cùng nhau .
- Tính toán số d
Điều kiện là d ≡ 1/e (mod λ(n)) hay de ≡ 1 (mod λ(n)). Từ đó, số d được gọi là nghịch đảo modulo của e (theo modulo mod λ(n)).
Khóa công khai sẽ là bộ số (n, e), và khóa bí mật sẽ là bộ số (n, d). Cần giữ khóa bí mật cẩn thận cũng như các số nguyên tố p và q để từ đó tính toán các khóa dễ dàng hơn.
Thường chọn e tương đối nhỏ vì nó giúp việc mã hóa và giải mã nhanh hơn. Giá trị thường dùng nhất là e = 65537. Bên cạnh đó, có thể tính số giả nguyên tố bằng phi hàm Euler φ(n) = (p − 1)(q − 1) và coi nó như λ(n).
Vì φ(n) là bội của λ(n) nên d cần thỏa mãn điều kiện de ≡ 1 (mod φ(n)) cvà d ≡ 1/e (mod λ(n)).
3.2. Mã hóa và giải khóa cho hệ mã hóa RSA
Đây là bước mã hóa với Khóa công khai minh bạch ( n, e ) và giải thuật với khóa bí hiểm ( n, d )
.
Nếu có bản rõ M, cần chuyển nó thành số tự nhiên m trong khoảng chừng ( 0, n ) với điều kiện kèm theo m, n cùng là nguyên tố. Việc này thường được triển khai bằng cách thêm kỹ thuật padding. Tiếp đến là mã hóa m thành c theo công thức : c ≡ m ^ e mod n c
Sau đó giá trị c sẽ chuyển cho người nhận.
Ở phía người nhận, c được giải mã để lấy được m theo công thức: c^d ≡ m^(de) ≡ m mod n
Đây chính là cách đảo ngược padding để lấy m và có lại dữ liệu mã hóa,
Ví dụ:
p = 5, q = 7 => n = pq = 35 => φ(n) = 24
Chọn e = 5 vì ƯCLN(5, 24) = 1, dhọn d = 29 vì ed – 1 = 29×5 – 1 chia hết cho 24.
Giả sử có m = 32, chúng ta sẽ mã hóa m và thu được kết quả:
c = 32 ^ 5 % 35 = 2
Giải mã c để thu m theo công thức: m = 2 ^ 29 % 35 = 32.
Đây chính là giá trị của m ban đầu.
Bạn có thể thứ các giá trị khác nhau của m để kiểm tra thuật toán xem có hoàn toàn chính xác hay không. Mức độ bảo mật của hệ mã hóa RSA phụ thuộc vào khả năng phân tích thừa số nguyên tố của các số.
Lí do là vì chúng ta cung cấp khóa công khai một cách rộng rãi, nếu phân tích thừa số nguyên tố đơn giản sẽ dẫn đến việc bị lộ khóa bí mật. Chữ ký số RSA cũng dựa trên nguyên lý trên.
Có thể thấy khi tiến hành sinh khóa, cần chọn các số nguyên tố p và q tương đối ngẫu nhiên. Hai số nguyên tố có giá trị rất lớn, để phân tích thừa số nguyên tố là khá khó khăn. Vì vậy chưa có phương pháp nào cho phép thực hiện công đoạn này với máy tính cá nhân.
4. Chữ ký số RSA có an toàn không?
Quá trình sử dụng chữ ký số RSA và xác nhận nó tựa như như việc mã hóa mà chúng tôi vừa lý giải. Tuy nhiên khóa công khai minh bạch và khóa bí hiểm của những chữ ký số RSA có nhiều sự đổi khác .
Để tạo chữ ký số RSA, người gửi sẽ dùng khóa công khai và người nhận sẽ dùng khóa bí mật với mục đích xác thực là chính.
Dữ liệu có thể khá dài nên việc mã hóa toàn bộ chúng sẽ tốn nhiều thời gian, vì vậy người ta sử dụng thêm phương pháp mã hóa giá trị hash của dự liệu nhằm mang lại các lợi ích:
Các hàm hash là hàm 1 chiều, nên dù biết được hash cũng khó biết được về dữ liệu gốc. Chữ ký số RSA sẽ có ý nghĩa và giá trị hơn chữ ký tay nhiều, dẫn tới việc xử lý và mã hóa chúng cũng tương đối phức tạp. Tuy nhiên bù lại, chữ ký số RSA vô cùng an toàn và khó để lộ thông tin cho bên thứ ba.
Đặc biệt với các giao dịch điện tử, khi dữ liệu có kèm chữ ký số RSA sẽ rất dễ dàng tìm ra nguồn gốc của chữ ký đó. Người gửi và người nhận cũng khó chối bỏ được vai trò của mình. Vì vậy bạn yên tâm về giá trị pháp lý của chữ ký số RSA nhé!
Hi vọng cách giải thích thuật ngữ RSA mà chúng tôi vừa chia sẻ trong bài viết trên đã đủ để bạn hiểu về hệ mã hóa này, cũng như trả lời cho câu hỏi chữ ký số RSA là gì. Đây là công cụ hữu hiệu cho hoạt động của doanh nghiệp, vì vậy hãy tìm hiểu nó thật kỹ nhé!
Source: https://vinatrade.vn
Category : Công thức cần nhớ