Digital Signature Algorithm (DSA) là gì? Tìm hiểu ‘Thuật toán chữ ký số’ trong mật mã học

Digital Signature Algorithm (DSA) là gì? Tìm hiểu 'Thuật toán chữ ký số' trong mật mã học

Đại dịch Covid-19 đã mang đến một luồng sinh khí mới cho sáng kiến ​​làm việc tại nhà, đưa thế giới doanh nghiệp vào một giai đoạn chưa được khai thác. Không nghi ngờ gì nữa, hầu hết những người dùng đọc tài liệu này đã phải ký điện tử vào một số tài liệu chính thức trong vài năm qua vì thiếu tương tác mặt đối mặt và các ràng buộc về khoảng cách tiêu chuẩn.

Để duy trì tính xác thực và tính toàn vẹn của các tài liệu chứa thông tin quan trọng như vậy, Thuật toán DSA (Digital Signature Algorithm) đã được đề xuất và thông qua như một tiêu chuẩn toàn cầu để xác minh chữ ký số.

Trước khi tiếp tục với thuật toán DSA, bạn sẽ được cập nhật về Mã hóa bất đối xứng (Asymmetric Encryption), vì nó xác minh chữ ký số (digital signatures) theo kiến ​​trúc mật mã bất đối xứng, còn được gọi là kiến ​​trúc mật mã khóa công khai (public-key).

Mã hóa không đối xứng (Asymmetric Encryption) là gì?

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

Mô hình Mã hóa không đối xứng (Asymmetric Encryption)
Mô hình Mã hóa không đối xứng (Asymmetric Encryption). Nguồn: simplilearn

Việc sử dụng các khóa riêng biệt để mã hóa và giải mã, như trong hình trên, đã giúp loại bỏ việc trao đổi khóa, như đã thấy trong trường hợp Mã hóa đối xứng (Symmetric Encryption).

Ví dụ, nếu Alice cần gửi tin nhắn cho Bob, cả khóa riêng tư và khóa công khai đều phải thuộc về Bob.

Ví dụ Alice cần gửi tin nhắn cho Bob thông qua Symmetric Encryption
Ví dụ Alice cần gửi tin nhắn cho Bob thông qua Symmetric Encryption. Nguồn: simplilearn

Quá trình cho hình ảnh trên như sau:

  • Bước 1: Đầu tiên Alice sử dụng khóa công khai của Bob để mã hóa tin nhắn
  • Bước 2: Tin nhắn được mã hóa đến được với Bob
  • Bước 3: Bob giải mã tin nhắn bằng khóa bí mật của anh ấy

Điều này giúp loại bỏ yêu cầu người gửi và người nhận phải trao đổi bất kỳ khóa bí mật nào, giảm thiểu cơ hội khai thác.

Bây giờ bạn đã học cách Mã hóa bất đối xứng xảy ra, bạn sẽ xem cách kiến ​​trúc Chữ ký số (Digital Signature) được thiết lập.

  Số lượng các nhóm Cardano đang hoạt động gần 3.000 khi Vasil hardfork cập nhật

Chữ ký kỹ thuật số (Digital Signature) là gì?

Mục tiêu của chữ ký điện tử (Digital Signature) là xác thực và xác minh các tài liệu và dữ liệu. Điều này là cần thiết để tránh giả mạo và sửa đổi hoặc giả mạo kỹ thuật số trong quá trình truyền các tài liệu chính thức.

Với một ngoại lệ, chúng hoạt động trên kiến ​​trúc mật mã hóa khóa công khai. Thông thường, hệ thống Khóa bất đối xứng mã hóa bằng khóa công khai và giải mã bằng khóa riêng. Đối với chữ ký điện tử, tuy nhiên, điều ngược lại là đúng.

Chữ ký đượ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ã nó bằng khóa công khai sẽ xác minh rằng khóa cá nhân thích hợp đã được sử dụng để ký tài liệu, do đó xác minh nguồn gốc của chữ ký.

Hình ảnh mô phỏng chữ ký kỹ thuật số hoạt động
Hình ảnh mô phỏng chữ ký kỹ thuật số hoạt động. Theo: simplilearn
  • M – Bản rõ (Plaintext)
  • H – Hàm băm (Hash function)
  • h – Thông báo băm (Hash digest)
  • +‘ – Gói cả bản rõ và bản tóm tắt (Bundle both plaintext and digest)
  • E – Mã hóa (Encryption)
  • D – Giải mã (Decryption)

Hình ảnh trên cho thấy toàn bộ quá trình, từ việc ký khóa đến xác minh khóa. Vì vậy, hãy đi qua từng bước để hiểu kỹ quy trình.

  • Bước 1: M, thông báo ban đầu (original message), đầu tiên được chuyển đến một hàm băm (hash function) được ký hiệu là H# để tạo một thông báo.
  • Bước 2: Tiếp theo, nó gói tin nhắn cùng với thông báo băm h và mã hóa nó bằng cách sử dụng khóa riêng của người gửi.
  • Bước 3: Nó gửi gói được mã hóa đến người nhận, người có thể giải mã nó bằng khóa công khai của người gửi.
  • Bước 4: Sau khi nó giải mã thông báo, nó được chuyển qua cùng một hàm băm (H#), để tạo ra một thông báo tương tự.
  • Bước 5: Nó so sánh giá trị băm mới được tạo với giá trị băm được đóng gói nhận được cùng với thông báo. Nếu chúng khớp, nó sẽ xác minh tính toàn vẹn của dữ liệu.

Có hai cách tiêu chuẩn ngành để thực hiện phương pháp trên. Đó là:

  • Thuật toán RSA (Rivest-Shamir-Adleman Algorithm)
  • Thuật toán DSA (Digital Signatures Algorithm)

Cả hai thuật toán đều phục vụ cùng một mục đích, nhưng các chức năng mã hóa và giải mã khác nhau khá nhiều. Vì vậy, bây giờ bạn đã hiểu cách nó phải hoạt động trong khi xác minh chữ ký, hãy đi sâu vào trọng tâm của chúng ta cho ngày hôm nay, Thuật toán DSA.

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

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

  Công ty Brazil đặt cược vào NFT và blockchain để cứu rừng nhiệt đới Amazon

Nó hoạt động dựa trên khuôn khổ của tính lũy thừa mô-đun và các bài toán logarit rời rạc, rất khó tính toán như một hệ thống cưỡng bức. FIPS viết tắt của Federal Information Processing Standard là Tiêu chuẩn xử lý thông tin liên bang.

Thuật toán DSA (Digital Signatures Algorithm) cung cấp ba lợi ích như sau:

  • Xác thực tin nhắn: Bạn có thể xác minh nguồn gốc của người gửi bằng tổ hợp phím phù hợp.
  • Xác minh tính toàn vẹn: Bạn không thể giả mạo thư vì nó sẽ ngăn gói được giải mã hoàn toàn.
  • Không từ chối: Người gửi không thể khẳng định họ chưa bao giờ gửi thư nếu xác minh chữ ký.
Hình ảnh mô phỏng hoạt động của thuật toán DSA
Hình ảnh mô phỏng hoạt động của thuật toán DSA. Nguồn: simplilearn

Hình ảnh trên cho thấy toàn bộ quy trình của thuật toán DSA. Bạn sẽ sử dụng hai chức năng khác nhau ở đây, chức năng ký tên và chức năng xác minh. Sự khác biệt giữa hình ảnh về quy trình xác minh chữ ký số điển hình và hình trên là phần mã hóa và giải mã.

Chúng có các tham số riêng biệt, bạn sẽ xem xét trong phần tiếp theo của bài học này về Thuật toán DSA.

Các bước trong thuật toán DSA (Digital Signatures Algorithm)

Hãy ghi nhớ hình ảnh ở trên, hãy tiếp tục và xem toàn bộ quy trình hoạt động như thế nào, bắt đầu từ việc tạo cặp khóa cho đến xác minh chữ ký ở cuối.

  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 g = h**((p – 1)/q) mod p
  • x là khóa riêng của chúng ta và nó là một số nguyên ngẫu nhiên sao cho 0 < x <q.
  • y là khóa công khai của chúng ta và bạn có thể tính nó 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}.
  1. Tạo chữ ký (Signature Generation)
  • Nó 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.
  • Nó 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, sr.
  • 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.
  1. 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 đó, bạn 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].
  • Nó so sánh giá trị của v với giá trị của r nhận được trong gói.
  • Nếu nó khớp, quá trình xác minh chữ ký đã hoàn tất.
  Sở hữu trí tuệ (SHTT) trong việc ứng dụng công nghệ Blockchain

Sau khi hiểu chức năng của Thuật toán DSA (Digital Signatures Algorithm), bạn phải biết những lợi thế mà thuật toán này mang lại so với các tiêu chuẩn thay thế như thuật toán RSA.

Ưu điểm của DSA (Digital Signatures Algorithm)

Ưu điểm của DSA (Digital Signatures Algorithm)
Ưu điểm của DSA (Digital Signatures Algorithm). Nguồn: simplilearn
  • Rất mạnh mẽ: DSA rất mạnh mẽ về khía cạnh bảo mật và ổn định so với các thuật toán xác minh chữ ký thay thế.
  • Tốc độ tốt hơn: Việc tạo khóa nhanh hơn nhiều so với thuật toán RSA và tương tự như vậy.
  • Dung lượng lưu trữ ít hơn: DSA yêu cầu ít dung lượng lưu trữ hơn để hoạt động trong toàn bộ chu trình của nó.
  • Miễn phí bằng sáng chế: Khi NIST phát hành nó, nó đã được cấp bằng sáng chế để có thể sử dụng miễn phí trên toàn cầu.

Hy vọng bài viết này đã giúp bạn hiểu chữ ký điện tử quan trọng như thế nào trong thời đại kỹ thuật số này và tác động của mật mã trong việc định hình mô hình mối đe dọa của khu vực doanh nghiệp của chúng ta.

Tuy nhiên, đây là một sự sụt giảm nhỏ trong đại dương rộng lớn là an ninh mạng, một ngành có nhu cầu ngày càng tăng đối với các chuyên gia được đào tạo.

Sự kết luận về thuật toán DSA (Digital Signatures Algorithm)

Với điều này, bạn đã hiểu tầm quan trọng của mật mã không đối xứng (Asymmetric Encryption), hoạt động của chữ ký điện tử, chức năng của DSA, các bước liên quan đến xác minh chữ ký và lợi thế của nó so với các đối tác tương tự. Hy vọng hướng dẫn này đã giúp bạn hiểu được thuật toán DSA.

Theo: simplilearn

Khuyến cáo: Thông tin trên bài viết này chỉ mang tính tham khảo, không có bất kỳ lời khuyên nào về mua bán, đầu tư. Bạn hãy tự nghiên cứu trước khi thực hiện bất kỳ hình thức đầu tư nào.

Nội dung đề xuất