Trang chủ Tin tức Tìm hiểu về thuật toán chữ ký số (DSA) - cơ chế hoạt động và bảo mật

Tìm hiểu về thuật toán chữ ký số (DSA) - cơ chế hoạt động và bảo mật

Bởi: eca.com.vn - 19/06/2023 Lượt xem: 5042 Cỡ chữ tru cong

   Thuật toán chữ ký số DSA (Digital Signatures Algorithm) là một trong 2 thuật toán mã hóa phổ biến tạo nên chữ ký số. Trong bài viết này, ECA sẽ giới thiệu tới quý khách về cơ chế hoạt động và những ứng dụng của DSA một cách dễ hiểu nhất.

thuật toán DSA 1

Tìm hiểu về thuật toán chữ ký số DSA.

1. Thuật toán DSA (Digital Signatures Algorithm) là gì?

Thuật toán DSA (Digital Signatures Algorithm) là một tiêu chuẩn xử lý thông tin sử dụng cho việc xác thực chữ ký điện tử. Nó đã được đề xuất vào năm 1991 và sau đó tiêu chuẩn hóa trên toàn cầu vào năm 1994 bởi Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST).

Để bảo đảm tính toàn vẹn và xác thực của các tài liệu quan trọng chứa thông tin, thuật toán DSA đã được đưa ra và chấp nhận như một tiêu chuẩn toàn cầu để xác minh chữ ký số.

Thuật toán DSA sử dụng hai loại khóa, bao gồm khóa công khai và khóa bí mật, để xác thực chữ ký số theo kiến trúc mật mã bất đối xứng.

1.1 Mã hóa bất đối xứng (Asymmetric Encryption) là gì?

Phương pháp mã hóa bất đối xứng sử dụng hai khóa riêng biệt một khóa để mã hóa (encrypt) và khóa còn lại để giải mã (decrypt). Khóa công khai (public key) dùng để mã hóa; trong khi đó, khóa riêng tư (private key) được dùng để giải mã. Tuy nhiên, việc tạo cả 2 khóa phải được tạo từ đầu của người nhận.

 
thuật toán 2

Mô hình hoạt động của mã hóa bất đối xứng. Nguồn: internet

Việc sử dụng các khóa riêng biệt để mã hóa và giải mã đã giúp loại bỏ việc trao đổi khóa, đảm bảo tính bảo mật.

1.2 Ứng dụng thuật toán DSA trong chứng thực chữ ký số

Khoản 6, Điều 3, Nghị định 130/2018/NĐ-CP, chữ ký số (Digital Signature) là một phương tiện xác thực điện tử cho phép người dùng xác nhận tính toàn vẹn và nguồn gốc của một văn bản hoặc tài liệu điện tử đã được ký. Chữ ký số được tạo ra bằng cách sử dụng mã hóa bất đối xứng.

thuật toán 3

Ứng dụng chứng thực và bảo mật của thuật toán chữ ký số DSA.

Cơ chế hoạt động của chữ ký số nhờ được mã hóa bằng khóa cá nhân và được giải mã bằng khóa công khai. Vì các khóa được liên kết với nhau, nên việc giải mã bằng khóa công khai sẽ xác minh rằng khóa cá nhân phù hợp đã được sử dụng để ký tài liệu, do đó xác minh nguồn gốc của chữ ký.

1.3 Lợi ích khi sử dụng thuật toán chữ ký số (DSA)

Nhờ tính chất của mã hóa bất đối xứng, thuật toán DSA đem lại nhiều lợi ích khi sử dụng trong chứng thực bằng chữ ký số. 

  • Xác minh nguồn gốc nội dung: nhờ thông tin trên chứng thư số, ta có thể xác minh nguồn gốc của nội dung là do chủ thể nào đã ký.
  • Đảm bảo tính toàn vẹn: nội dung đã ký số không thể bị giả mạo hay chỉnh sửa do thuật toán sẽ ngăn gói được giải mã hoàn toàn.
  • Không thể chối bỏ: người ký nội dung bằng chữ ký số không thể từ chối rằng mình đã ký, vì chữ ký số được xác minh qua thông tin người ký.

2. Cách hoạt động của thuật toán chữ ký số DSA 

Thuật toán mã hóa chữ ký số (DSA) tuân theo quy trình gồm 3 bước: tạo khóa, tạo chữ ký và xác minh chữ ký

thuật toán 4

Thuật toán DSA hoạt động với 3 giai đoạn.

2.1 Tạo khóa (Key Generation)

  • Đầu tiên bạn chọn một số nguyên tố q, được gọi là ước số nguyên tố.
  • Một số nguyên tố khác, p, được chọn sao cho p-1 mod q = 0 (mod là phép toán tìm số dư)
  • Chọn một số nguyên g (1 <g <p), thỏa mãn hai điều kiện, g**q mod p = 1 và g = h**((p – 1)/q) mod p
  • x là khóa riêng tư và nó là một số nguyên ngẫu nhiên sao cho 0 < x <q.
  • y là khóa công khai và được tính dưới dạng y = gx mod p.
  • Bây giờ đóng gói khóa riêng là {p,q,g,x}.
  • Đóng gói khóa công khai là {p,q,g,y}.

2.2 Tạo chữ ký (Signature Generation)

  • Chuyển thông điệp ban đầu (M) qua hàm băm (H#) để lấy thông báo băm (h) của chúng ta.
  • Chuyển bản tóm tắt dưới dạng đầu vào cho một hàm ký, có mục đích là cung cấp hai biến là đầu ra, s và r.
  • Ngoài thông báo, bạn cũng sử dụng một số nguyên ngẫu nhiên k sao cho 0 < k <q.
  • Để tính giá trị của r, bạn sử dụng công thức r = (gk mod p) mod q.
  • Để tính giá trị của s, bạn sử dụng công thức s = [K-1(h+x . R) mod q].
  • Sau đó, nó đóng gói chữ ký thành {r,s}.
  • Toàn bộ gói thông điệp và chữ ký {M,r,s} được gửi đến người nhận.

2.3 Xác minh chữ ký (Signature Verification)

  • Bạn sử dụng cùng một hàm băm (H#) để tạo thông báo h.
  • Sau đó, chuyển thông báo này cho hàm xác minh, hàm này cũng cần các biến khác làm tham số.
  • Tính giá trị của w sao cho: s*w mod q = 1
  • Tính giá trị của u1 từ công thức, u1 = h*w mod q
  • Tính giá trị của u2 từ công thức, u2 = r*w mod q
  • Thành phần xác minh cuối cùng v được tính là v = [((gu1 . yu2) mod p) mod q].
  • Thuật toán so sánh giá trị của v với giá trị của r nhận được trong gói.
  • Nếu khớp, quá trình xác minh chữ ký đã hoàn tất.

Sau khi hiểu về cơ chế hoạt động của Thuật toán DSA (Digital Signatures Algorithm), chắc hẳn bạn sẽ thắc mắc việc sử dụng DSA so với thuật toán mã khóa khác sẽ có ưu điểm như thế nào? Trong phần sau đây, chúng ta sẽ so sánh thuật toán DSA với thuật toán RSA.

3. Ưu điểm của thuật toán DSA so với RSA

DSA và RSA là hai thuật toán mã hóa khóa công khai phổ biến và được sử dụng trong việc tạo và xác thực chữ ký số. Dưới đây là một số ưu điểm của DSA so với RSA:

3.1 Kích thước khóa nhỏ hơn

DSA thường yêu cầu kích thước khóa nhỏ hơn so với RSA để đạt cùng mức độ bảo mật. Điều này có nghĩa là quá trình tạo và xử lý chữ ký DSA có thể nhanh hơn và tiết kiệm tài nguyên hệ thống.

3.2 Tính toán nhanh hơn

Trong các phép tính chữ ký số, DSA thường có hiệu suất tính toán tốt hơn so với RSA. Thuật toán DSA sử dụng các phép toán modulo trên số nguyên, trong khi RSA sử dụng phép tính mũ modulo trên số nguyên lớn hơn. Do đó, DSA có xu hướng nhanh hơn trong quá trình tạo và xác minh chữ ký.

3.3 An toàn trước tấn công đơn giản

DSA được coi là an toàn trước các tấn công khả năng tìm kiếm khóa công khai và tấn công định thời (timing attack). Trong khi đó, RSA có một số lỗ hổng tiềm ẩn và yêu cầu các biện pháp bổ sung như tăng kích thước khóa hoặc sử dụng các phương pháp bảo mật khác để ngăn chặn các tấn công phổ biến như tấn công tìm kiếm khóa.

Tuy nhiên, cũng cần lưu ý rằng RSA vẫn là một thuật toán mã hóa khóa công khai mạnh mẽ và được sử dụng rộng rãi trong thực tế. Sự lựa chọn giữa DSA và RSA thường phụ thuộc vào yêu cầu cụ thể của ứng dụng và môi trường triển khai.

Trên đây là những thông tin được ECA tổng hợp và tóm gọn đơn giản hóa về Thuật toán chữ ký số DSA dành cho quý khách có nhu cầu tìm hiểu. 

Để được tư vấn sâu hơn về chữ ký số và dịch vụ chứng thực chữ ký số công cộng ECA, quý khách vui lòng liên hệ:

CÔNG TY PHÁT TRIỂN CÔNG NGHỆ THÁI SƠN

  • Địa chỉ: Số 15 Đặng Thùy Trâm – Cầu Giấy – Hà Nội
  • Tổng đài HTKH: 1900 4767 – 1900 4768
  • Tel : 024.37545222
  • Fax: 024.37545223
  • Website: https://eca.com.vn/