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 nó 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ói một cách đơn giản, chúng ta có thể mô tả chữ ký số dưới dạng mã được liên kết với tin nhắn hoặc tài liệu. Sau khi được tạo, mã nói trên đóng vai trò là bằng chứng cho thấy tin nhắn chưa bị thao túng trong quá trình chuyển nó từ người gửi đến người nhận.

Mặc dù khái niệm bảo vệ thông tin liên lạc thông qua việc sử dụng mật mã đã có từ xa xưa, nhưng các sơ đồ 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). Vì vậy, để tìm hiểu cách chữ ký số hoạt động, trước tiên chúng ta cần hiểu các nguyên tắc cơ bản của hàm băm và mật mã khóa công khai.


Hàm băm

Băm là một trong những yếu tố 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ó độ dài cố định. Điều này đạt được bằng cách sử dụng 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 bản tóm tắt của thông báo.

Kết hợp với mật mã, cái gọi là hàm băm mật mã có thể được sử dụng để tạo ra giá trị băm (thông báo) có chức năng như một dấu vân tay duy nhất. Điều này có nghĩa là bất kỳ thay đổi nào đối với 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). Và đâ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, chỉ định hệ thống mật mã sử dụng một cặp khóa: một khóa chung và một khóa riêng. Hai khóa này được liên kết 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 dữ liệu được mã hóa bằng khóa chung và giải mã bằng khóa riêng tương ứng.

Ngoài ra, sơ đồ PKC có thể được áp dụng để tạo chữ ký số. Về cơ bản, quy trình này bao gồm việc băm một tin nhắn (hoặc dữ liệu số) cùng với 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ể liên quan đến mã hóa, mặc dù điều này không phải lúc nào cũng đúng. Ví dụ: chuỗi khối Bitcoin sử dụng PKC và chữ ký số, nhưng không giống như những gì nhiều người tin tưởng, không có mã hóa nào xảy ra trong quy trình. Về mặt kỹ thuật, Bitcoin sử dụng cái gọi là Thuật toán chữ ký số Elliptic Curve (ECDSA) để xác thực các giao dịch.


Cách chữ ký số hoạt động

Trong không gian 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 này đạt được bằng cách xử lý dữ liệu bằng thuật toán băm để thu được giá trị băm (trong trường hợp này là bản tóm tắt của thông báo). Như đã đề cập, kích thước của tin nhắn có thể thay đổi đáng kể, nhưng khi chúng được băm, tất cả các giá trị băm thu được của chúng đều có cùng độ dài. Đây là thuộc tính cơ bản nhất của hàm băm.

Tuy nhiên, để tạo ra chữ ký số, không nhất thiết phải băm dữ liệu vì người ta có thể sử dụng khóa riêng để ký một tin nhắn chưa được băm. Giờ đây, trong trường hợp tiền điện tử, dữ liệu luôn phải trải qua quá trình băm vì việc xử lý các bản tóm tắt có độ dài cố định giúp toàn bộ quá trình trở nên dễ dàng hơn.

Việc kinh doanh

Sau khi băm thông tin, người gửi tin nhắn phải ký tên. Đây là thời điểm mật mã khóa công khai phát huy tác dụng. Có nhiều loại thuật toán chữ ký số khác nhau, mỗi loại có cơ chế riêng. Nhưng nhìn chung, tin nhắn đã được băm sẽ được ký bằng khóa riêng và người nhận sẽ 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).

Nói cách khác, nếu khóa riêng không được bao gồm khi chữ ký được tạo thì 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ó. Cả khóa chung và khóa riêng đều do người gửi tin nhắn tạo ra, nhưng chỉ có khóa chung được chia sẻ với người nhận.

Điều đáng chú ý là chữ ký số có liên quan trực tiếp đến 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 bất kể tin nhắn nào, mỗi tin nhắn được ký điện tử sẽ có một chữ ký số khác nhau.

kiểm tra

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, mã hóa 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 duy nhất của 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ý được tạo bởi Alice vì chỉ có cô ấy mới có khóa riêng tương ứng với khóa chung đó (ít nhất đó là điều chúng tôi hy vọng).

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 người khác có được khóa riêng của Alice, họ có thể tạo chữ ký điện tử và giả vờ là 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 để đạt được ba kết quả: tính toàn vẹn dữ liệu, xác thực và chống chối bỏ.

  • Toàn vẹn dữ liệu. Bob có thể xác minh rằng tin nhắn của Alice không thay đổi trong quá trình gửi. Bất kỳ sửa đổ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 cô ấy để xác nhận rằng chữ ký số được tạo bởi Alice chứ không phải ai khác.

  • Tôi không bác bỏ. Khi chữ ký đã được tạo, Alice sẽ không thể từ chối việc ký 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 trong kiểm toán, báo cáo chi phí, hợp đồng cho vay, v.v.

  • Hợp pháp. Chữ ký số của tất cả các loại hợp đồng kinh doanh và thỏa thuận pháp lý, bao gồm cả các tài liệu của chính phủ.

  • Chăm sóc sức khỏe. Chữ ký số có thể ngăn ngừa gian lận đơn thuốc và hồ sơ y tế.

  • Chuỗi khối. Các chương trình chữ ký số đảm bảo rằng chỉ những chủ sở hữu hợp pháp của tiền điện tử mới có thể ký một giao dịch để chuyển tiền (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à các sơ đồ chữ ký số phải đối mặt dựa trên í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 lựa 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ẽ gặp lỗi.

  • 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ố

Nói một cách đơn giản, chữ ký số liên quan đến một loại chữ ký điện tử cụ thể, đề cập đến bất kỳ phương thức ký văn bản và tin nhắn điện tử nào. Vì vậy, mọi chữ ký số đều là chữ ký điện tử nhưng điều ngược lại không phải lúc nào cũng đúng.

Sự khác biệt chính giữa chúng là phương pháp xác thực. Chữ ký số thực hiện 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 và kỹ thuật mã hóa.


Tóm lại là

Hàm băm và mật mã khóa công khai là cốt lõi 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 không gian 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 người sở hữu khóa riêng tương ứng.

Mặc dù chúng tôi đã sử dụng chữ ký điện tử và chữ ký số trong nhiều năm nhưng vẫn còn rất nhiều chỗ để phát triển. Phần lớn bộ máy quan liêu ngày nay vẫn dựa vào thủ tục giấy tờ, nhưng chúng ta có thể sẽ thấy việc áp dụng các sơ đồ chữ ký số nhiều hơn khi chúng ta chuyển sang một hệ thống số hóa hơn.