Chữ ký số là một cơ chế mã hóa được sử dụng để xác minh tính xác thực và tính toàn vẹn của dữ liệu số. Chúng ta có thể coi đây là phiên bản kỹ thuật số của chữ ký viết tay thông thường nhưng có mức độ phức tạp và bảo mật cao hơn.
Để đơn giản hóa, chúng ta có thể mô tả chữ ký số như một mã được đính kèm vào tin nhắn hoặc tài liệu. Sau khi được tạo, mã này đóng vai trò là bằng chứng cho thấy tin nhắn không bị giả mạo dưới bất kỳ hình thức nào giữa người gửi và người nhận.
Mặc dù khái niệm bảo mật thông tin liên lạc bằng mật mã đã có từ khá lâu trong lịch sử loài người, nhưng hệ thống chữ ký số đã trở thành hiện thực vào những năm 1970 – nhờ vào sự phát triển của Mật mã khóa công khai (PKC). Để biết chữ ký số hoạt động như thế nào, trước tiên chúng ta cần hiểu những khái niệm cơ bản về hàm băm và mật mã khóa công khai.
Hàm băm
Hash là một trong những thành phần chính của hệ thống chữ ký số. Quá trình băm bao gồm việc chuyển đổi dữ liệu có kích thước bất kỳ thành đầu ra có kích thước được xác định trước. Điều này đạt được nhờ một loại thuật toán đặc biệt được gọi là hàm băm. Đầu ra do hàm băm tạo ra được gọi là giá trị băm hoặc dấu vân tay.
Khi kết hợp với mật mã, hàm băm mật mã có thể được sử dụng để tạo ra một giá trị băm (dấu vân tay) hoạt động như một dấu vân tay kỹ thuật số duy nhất. Điều này có nghĩa là bất kỳ thay đổi nào trong dữ liệu đầu vào (thông báo) sẽ dẫn đến kết quả đầu ra hoàn toàn khác (giá trị băm). Đây là lý do tại sao hàm băm mật mã được sử dụng rộng rãi để xác minh tính xác thực của dữ liệu số.
Mật mã khóa công khai (PKC)
Mật mã khóa công khai, hay PKC, đề cập đến một hệ thống mật mã sử dụng một cặp khóa: khóa chung và khóa riêng. Hai khóa này có mối tương quan về mặt toán học và có thể được sử dụng cho cả mã hóa dữ liệu và chữ ký số.
Là một công cụ mã hóa, PKC an toàn hơn các phương pháp mã hóa đối xứng thô sơ hơn. Trong khi các hệ thống cũ dựa vào cùng một khóa để mã hóa và giải mã thông tin, PKC cho phép mã hóa dữ liệu bằng khóa chung và giải mã dữ liệu đó bằng khóa riêng tư tương ứng.
Ngoài ra, sơ đồ PKC cũng có thể được áp dụng trong việc tạo chữ ký số. Về bản chất, quá trình này liên quan đến việc băm một tin nhắn (hoặc dữ liệu số) bằng khóa riêng của người ký. Sau đó, người nhận tin nhắn có thể kiểm tra xem chữ ký có hợp lệ hay không bằng cách sử dụng khóa chung do người ký cung cấp.
Trong một số trường hợp, chữ ký số có thể bao gồm mã hóa nhưng không phải lúc nào cũng như vậy. Ví dụ: chuỗi khối Bitcoin sử dụng PKC và chữ ký số, nhưng trái ngược với những gì nhiều người tin tưởng, quy trình này không có mã hóa. Về mặt kỹ thuật, Bitcoin triển khai Thuật toán chữ ký số đường cong Elliptic (ECDSA) để xác thực các giao dịch.
Cách chữ ký số hoạt động
Trong bối cảnh tiền điện tử, hệ thống chữ ký số thường bao gồm ba bước cơ bản: băm, ký và xác minh.
Băm dữ liệu
Bước đầu tiên là băm tin nhắn hoặc dữ liệu số. Điều thứ hai đạt được bằng cách đưa dữ liệu thông qua thuật toán băm để tạo ra giá trị băm (tức là bản tóm tắt của thông báo). Như đã đề cập, các tin nhắn có thể có kích thước khác nhau đáng kể, nhưng khi chúng được băm, tất cả các giá trị băm của chúng đều có cùng kích thước. Đây là thuộc tính cơ bản nhất của hàm băm.
Tuy nhiên, băm dữ liệu không phải là điều kiện bắt buộc để tạo chữ ký số, vì khóa riêng có thể được sử dụng để ký một tin nhắn mà không cần băm. Về tiền điện tử, dữ liệu được băm một cách có hệ thống vì việc thao tác dấu vân tay có kích thước cố định và không thay đổi sẽ tạo điều kiện thuận lợi cho quá trình này.
Chữ ký
Sau khi băm thông tin, người gửi tin nhắn phải ký tên. Đây là lúc mật mã khóa công khai phát huy tác dụng. Có một số loại thuật toán chữ ký số, mỗi loại có cơ chế riêng. Nhưng nói chung, tin nhắn được băm sẽ được ký bằng khóa riêng và người nhận tin nhắn sau đó có thể xác minh tính hợp lệ của nó bằng khóa chung tương ứng (do người ký cung cấp).
Nghĩa là, nếu khóa riêng không được bao gồm khi chữ ký được tạo, người nhận tin nhắn sẽ không thể sử dụng khóa chung tương ứng để xác minh tính hợp lệ của nó. Khóa chung và khóa riêng được tạo bởi người gửi tin nhắn nhưng chỉ có khóa chung được chia sẻ với người nhận.
Điều quan trọng cần lưu ý là chữ ký số được liên kết trực tiếp với nội dung của từng tin nhắn. Vì vậy, không giống như chữ ký viết tay, có xu hướng giống nhau một cách có hệ thống bất kể chúng được đính kèm vào thông điệp nào, mỗi tin nhắn được ký điện tử sẽ có một chữ ký điện tử khác nhau.
Xác minh
Hãy lấy một ví dụ để minh họa toàn bộ quá trình cho đến bước xác minh cuối cùng. Hãy tưởng tượng Alice viết một tin nhắn cho Bob, băm nó và sau đó kết hợp giá trị băm với khóa riêng của cô ấy để tạo chữ ký số. Chữ ký sẽ hoạt động như một dấu vân tay kỹ thuật số duy nhất cho tin nhắn cụ thể đó.
Khi Bob nhận được tin nhắn, anh ta có thể xác minh tính hợp lệ của chữ ký số bằng khóa chung do Alice cung cấp. Bằng cách này, Bob có thể chắc chắn rằng chữ ký đó là do Alice tạo ra vì cô ấy là người duy nhất có khóa riêng khớp với khóa chung này (Ít nhất đó là điều Bob mong đợi).
Vì vậy, điều quan trọng đối với Alice là giữ bí mật khóa riêng của mình. Nếu ai đó có được khóa riêng của Alice, người đó sẽ có thể tạo chữ ký điện tử và giả làm Alice. Trong bối cảnh Bitcoin, điều này có nghĩa là ai đó có thể sử dụng khóa riêng của Alice để di chuyển hoặc tiêu Bitcoin mà không có sự cho phép của cô ấy.
Tại sao chữ ký số lại quan trọng?
Chữ ký số thường được sử dụng cho ba mục đích mà các thuộc tính của chúng đạt được: tính toàn vẹn dữ liệu, xác thực và chống chối bỏ.
Tính toàn vẹn dữ liệu. Bob có thể xác minh rằng tin nhắn của Alice chưa bị sửa đổi giữa việc gửi và nhận. Bất kỳ thay đổi nào đối với tin nhắn sẽ tạo ra một chữ ký hoàn toàn khác.
Tính xác thực. Miễn là khóa riêng của Alice được giữ bí mật, Bob có thể sử dụng khóa chung của mình để xác nhận rằng chữ ký số được tạo bởi Alice chứ không phải ai khác.
Không bác bỏ. Sau khi chữ ký được tạo, Alice sẽ không thể phủ nhận việc áp dụng nó trong tương lai, trừ khi khóa riêng của cô ấy bị xâm phạm theo cách nào đó.
Trường hợp sử dụng
Chữ ký số có thể được áp dụng cho nhiều loại tài liệu và chứng chỉ số. Như vậy, họ có một số ứng dụng. Một số trường hợp sử dụng phổ biến nhất bao gồm:
Công nghệ thông tin, để cải thiện tính bảo mật của hệ thống truyền thông Internet.
Tài chính. Chữ ký số có thể được triển khai để kiểm toán, báo cáo chi phí, thỏa thuận cho vay, v.v.
Pháp lý. Ký kết kỹ thuật số tất cả các loại hợp đồng giữa doanh nghiệp với doanh nghiệp và thỏa thuận pháp lý. Điều tương tự cũng xảy ra với các tài liệu của chính phủ.
An sinh xã hội. Chữ ký số có thể đóng vai trò ngăn chặn gian lận đơn thuốc và hồ sơ y tế.
Chuỗi khối. Chữ ký số đảm bảo rằng chỉ chủ sở hữu hợp pháp của số tiền mới có thể ký giao dịch (miễn là khóa riêng của họ không bị xâm phạm).
Hạn chế
Những thách thức chính mà hệ thống chữ ký số phải đối mặt phụ thuộc vào ít nhất ba yêu cầu:
Thuật toán. Chất lượng của các thuật toán được sử dụng trong sơ đồ chữ ký số là rất quan trọng. Điều này bao gồm việc chọn các hàm băm và hệ thống mật mã đáng tin cậy.
Thực hiện. Nếu thuật toán tốt nhưng việc triển khai không tốt thì hệ thống chữ ký số có thể sẽ có sai sót.
Khóa riêng. Nếu khóa riêng bị rò rỉ hoặc bị xâm phạm theo bất kỳ cách nào, các thuộc tính xác thực và chống chối bỏ sẽ bị vô hiệu. Đối với người dùng tiền điện tử, việc mất khóa riêng có thể dẫn đến tổn thất tài chính đáng kể.
Chữ ký điện tử so với chữ ký số
Tóm tắt một cách đơn giản, chữ ký số là một loại chữ ký điện tử đặc biệt - dùng để chỉ bất kỳ phương thức điện tử nào để ký tài liệu hoặc tin nhắn. Vì vậy, tất cả chữ ký số đều là chữ ký điện tử, nhưng điều ngược lại không đúng về mặt hệ thống.
Sự khác biệt chính giữa chúng là phương pháp xác thực. Chữ ký số triển khai các hệ thống mật mã, chẳng hạn như hàm băm, mật mã khóa công khai cũng như các kỹ thuật mã hóa.
Để kết luận
Hàm băm và mật mã khóa công khai là trọng tâm của hệ thống chữ ký số, hiện được áp dụng cho nhiều trường hợp sử dụng. Nếu được triển khai đúng cách, chữ ký số có thể tăng cường tính bảo mật, đảm bảo tính toàn vẹn và tạo điều kiện xác thực tất cả các loại dữ liệu số.
Trong blockchain, chữ ký số được sử dụng để ký và ủy quyền các giao dịch tiền điện tử. Chúng đặc biệt quan trọng đối với Bitcoin vì chữ ký đảm bảo rằng tiền chỉ có thể được sử dụng bởi những cá nhân có khóa riêng tương ứng.
Mặc dù chúng đã được sử dụng trong nhiều năm nhưng vẫn còn nhiều tiến bộ cần đạt được trong lĩnh vực chữ ký số và điện tử. Một tỷ lệ lớn bộ máy quan liêu ngày nay vẫn dựa vào việc sử dụng giấy, nhưng có khả năng chúng ta sẽ thấy việc áp dụng rộng rãi chữ ký số khi chúng ta tiến tới một xã hội số hóa hơn bao giờ hết.

