
Thuật toán Chữ ký Số (DSA) là một phương pháp mật mã dùng để ký số và xác minh chữ ký số. Hãy hình dung khóa riêng là con dấu cá nhân, còn khóa công khai là mẫu để bất kỳ ai cũng có thể kiểm tra tính xác thực. DSA giải quyết hai vấn đề cốt lõi: “Ai là người gửi thông điệp này?” và “Thông điệp có bị thay đổi trong quá trình truyền tải không?”
Trong môi trường số, thông điệp không được ký trực tiếp mà sẽ được băm trước—quy trình này nén một thông điệp dài thành một “dấu vân tay” ngắn, cố định. Chữ ký sẽ áp dụng lên dấu vân tay này. Việc xác minh sử dụng khóa công khai để kiểm tra dấu vân tay và chữ ký có khớp nhau không.
Bảo mật của DSA dựa trên “bài toán logarit rời rạc”. Nói đơn giản, bạn có thể thấy kết quả của phép nhân toán học phức tạp, nhưng việc đảo ngược để tìm số mũ bí mật là bất khả thi về mặt tính toán, khiến việc giả mạo chữ ký gần như không thể xảy ra.
DSA dựa trên bộ tham số gồm p, q và g. Ở đây, p là “không gian số” rất lớn, q là kích thước một nhóm con trong không gian đó, còn g là “bộ sinh” hoặc điểm khởi đầu cho phép tính. Khóa riêng là một số ngẫu nhiên, còn khóa công khai được tạo ra từ các tham số này và khóa riêng.
DSA tuân thủ quy trình chuẩn hóa cho ký và xác minh, gồm các bước chính: băm thông điệp, sử dụng khóa riêng và số ngẫu nhiên k để tạo chữ ký, rồi xác minh bằng khóa công khai.
Chuẩn bị khóa và dấu vân tay: Tạo khóa riêng và khóa công khai. Băm thông điệp để sinh dấu vân tay ngắn, tối ưu cho tính toán và xác thực.
Tạo chữ ký: Dùng khóa riêng và số ngẫu nhiên k duy nhất để tính một cặp giá trị (thường gọi là r và s) dựa trên dấu vân tay. Cặp này là chữ ký, được gửi kèm thông điệp.
Xác minh chữ ký: Bất kỳ ai có thông điệp, chữ ký và khóa công khai đều có thể dùng quy trình mở để xác nhận chữ ký hợp lệ. Nếu hợp lệ, chỉ chủ sở hữu khóa riêng mới tạo được; nếu không, thông điệp hoặc chữ ký đã bị thay đổi hoặc giả mạo.
Dù DSA, ECDSA và EdDSA đều là thuật toán chữ ký số, chúng dựa trên nền tảng toán học khác nhau. DSA dùng logarit rời rạc trên trường hữu hạn; ECDSA dựa trên đường cong elliptic với nguyên lý tương tự; EdDSA là giao thức elliptic hiện đại, ưu tiên tốc độ và bảo mật nâng cao.
Trong hệ sinh thái blockchain, ECDSA và EdDSA phổ biến hơn. Ví dụ, Bitcoin và Ethereum dùng ECDSA trên đường cong secp256k1; nhiều dự án mới chọn EdDSA dựa trên Ed25519 nhờ hiệu suất tốt, đơn giản và tương thích hạ tầng hiện có.
Nắm vững nguyên lý DSA giúp bạn hiểu rõ các “họ hàng” như ECDSA và EdDSA: tất cả đều ký bằng khóa riêng, xác minh bằng khóa công khai, dựa trên dấu vân tay băm và các bài toán toán học khó đảo ngược.
Trong blockchain, giao dịch là tập hợp dữ liệu được các nút mạng xác thực bằng khóa công khai để xác nhận quyền chi tiêu. Dù các blockchain chủ đạo ưu tiên ECDSA hoặc EdDSA, nguyên lý nền tảng vẫn tương tự DSA.
Trên nền tảng Gate, hai trường hợp sử dụng chính là:
Số ngẫu nhiên k giống như “mật khẩu dùng một lần”—mỗi lần ký phải dùng k mới, không thể đoán trước. Nếu hai thông điệp khác nhau cùng ký bằng một k, kẻ tấn công có thể toán học phục hồi khóa riêng.
Thực tế đã ghi nhận nhiều sự cố do sinh k kém chất lượng khiến khóa riêng bị lộ. Để giảm rủi ro, các triển khai hiện đại dùng k xác định (sinh từ hàm băm) hoặc nguồn ngẫu nhiên chất lượng cao, thường đảm bảo duy nhất ở cấp thư viện.
Rủi ro lớn nhất là số ngẫu nhiên k không an toàn: tái sử dụng, dễ đoán hoặc lỗi phần cứng đều đe dọa bảo mật. Rò rỉ khóa riêng—do lưu trữ kém an toàn, ghi log hoặc môi trường phát triển bị xâm nhập—cũng là mối nguy lớn.
Các hiểu lầm thường gặp:
Với các trường hợp liên quan bảo mật tài sản, hãy dùng ví cứng, thực thi phân quyền, multi-signature và kiểm toán chặt chẽ mọi triển khai ký số.
Trong môi trường sản xuất, hãy chọn thư viện mật mã uy tín, tuân thủ tiêu chuẩn. Đối với blockchain hoặc giao dịch, ECDSA hoặc EdDSA thường được ưu tiên vì phù hợp hệ sinh thái.
Từ 2024 đến 2026, các blockchain chủ đạo vẫn sẽ dùng ECDSA hoặc EdDSA. EdDSA ngày càng được ưa chuộng nhờ tốc độ và dễ triển khai; chữ ký ngưỡng và tính toán đa bên nâng cao bảo mật lưu ký và multi-signature.
Về tuân thủ, các tổ chức như NIST liên tục cập nhật thuật toán, tham số khuyến nghị. Lập trình viên nắm vững nền tảng DSA sẽ dễ thích nghi giữa các giao thức chữ ký và đưa ra quyết định kỹ thuật đúng đắn.
DSA về bản chất là ký bằng khóa riêng, xác minh bằng khóa công khai dựa trên dấu vân tay băm, dựa vào bài toán logarit rời rạc để bảo mật. Số ngẫu nhiên k là yếu tố then chốt—mỗi giá trị phải duy nhất, không thể đoán trước. ECDSA và EdDSA phổ biến hơn trong blockchain nhưng đều kế thừa nguyên lý DSA. Luôn chọn thư viện uy tín, gắn chữ ký với miền nội dung cụ thể, quản lý an toàn khóa và ngẫu nhiên, kiểm soát rủi ro nghiêm ngặt—đặc biệt khi bảo vệ tài sản.
Không—chữ ký số DSA không thể bị thay đổi mà không bị phát hiện. Mọi thay đổi với chữ ký hợp lệ đều khiến xác minh thất bại, vì mỗi chữ ký gắn chặt toán học với thông điệp gốc và khóa riêng. Thay đổi một bit cũng phá vỡ liên kết này, lập tức phát hiện ý đồ giả mạo. Đó là lý do DSA được dùng rộng rãi để đảm bảo xác thực và không thể chối bỏ giao dịch.
Trong DSA, mỗi số ngẫu nhiên k phải duy nhất, không thể đoán trước cho từng chữ ký; nếu không, kẻ tấn công có thể so sánh nhiều chữ ký để suy ra khóa riêng. Tái sử dụng hoặc dự đoán được k sẽ tiết lộ đủ thông tin để phục hồi khóa riêng—rủi ro này đã xảy ra thực tế. Vì vậy, việc dùng bộ sinh số ngẫu nhiên chất lượng cao là bắt buộc.
DSA được dùng trong ví và sàn để xác thực tính hợp lệ giao dịch. Khi bạn tạo giao dịch, khóa riêng sinh chữ ký số chứng minh quyền sở hữu; người nhận xác minh bằng khóa công khai của bạn. Gate và các nền tảng khác dựa vào cơ chế này để đảm bảo chỉ chủ tài khoản hợp pháp mới có thể rút, chuyển tiền—bảo vệ tài sản khỏi truy cập trái phép.
Tái sử dụng k là lỗ hổng nghiêm trọng—kẻ tấn công có thể trực tiếp tính khóa riêng từ hai chữ ký dùng cùng k. Đây không chỉ là lý thuyết: thực tế đã xảy ra (ví dụ: một số ứng dụng Bitcoin không an toàn làm lộ khóa riêng như vậy). Trong sản xuất, đảm bảo k luôn ngẫu nhiên, duy nhất là bắt buộc.
DSA cần sinh số ngẫu nhiên k mới cho mỗi chữ ký—quy trình này dễ lỗi khi triển khai, tăng độ phức tạp. EdDSA dùng thuật toán xác định, loại bỏ nhu cầu ngẫu nhiên mỗi lần ký nên khó bị khai thác sai. EdDSA còn có hiệu suất và bảo mật vượt trội. DSA tồn tại do di sản, nhưng các dự án mới nên chuyển sang EdDSA hoặc ECDSA để đáp ứng nhu cầu hiện đại.


