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ó như một 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ố 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 trên đường từ người gửi đến 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ừ xa xưa, nhưng sơ đồ chữ ký số đã trở thành hiện thực vào những năm 1970 với 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 hoạt động của chữ ký số, trước tiên chúng ta cần hiểu những kiến thức cơ bản về 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 là chuyển đổi dữ liệu có kích thước bất kỳ thành dữ liệu đầu ra có kích thước cố định. Điều này được thực hiện 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) 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 đối với đầu vào (thông báo) sẽ dẫn đến một đầu ra khác (giá trị băm). Chính vì lý do này mà các hàm băm mật mã được sử dụng rộng rãi để xác minh 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: một khóa chung và một khóa riêng. Hai khóa này có liên 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 thức mã hóa đối xứng đơn giản 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à dữ liệu được giải mã bằng khóa riêng tương ứng.
Ngoài ra, sơ đồ PKC cũng có thể được sử dụng khi tạo chữ ký số. Về cơ bản, quy trình này bao gồm việc băm thông điệp (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ể xác minh rằng chữ ký hợp lệ bằng khóa chung do người ký cung cấp.
Trong một số trường hợp, chữ ký số có thể chứa 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 với những gì nhiều người tin tưởng, không có mã hóa nào liên quan đến quy trình này. Về mặt kỹ thuật, Bitcoin sử dụng cái gọi là 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 chính: băm, ký và xác minh.
Băm dữ liệu
Bước đầu tiên là băm thông điệp hoặc dữ liệu số. Điều này được thực hiện bằng cách gửi dữ liệu bằng thuật toán băm để tạo giá trị băm (tức là bản tóm tắt của tin nhắn). Như đã đề cập, các tin nhắn có thể có kích thước khác nhau rất nhiều, 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 độ dài. Đây là thuộc tính chính của hàm băm.
Tuy nhiên, việc băm dữ liệu là không cần thiết để tạo chữ ký số vì người ta có thể sử dụng khóa riêng để ký một tin nhắn chưa được băm. Nhưng đối với tiền điện tử, dữ liệu luôn được băm vì làm việc với các bản tóm tắt có độ dài cố định giúp đơn giản hóa toàn bộ quá trình.
Chữ ký
Sau khi băm thông tin, người gửi tin nhắn cần 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 về cơ bản, 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 xác thực của nó bằng khóa riêng 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 bật khi tạo chữ ký, 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 xác thực 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 khóa chung được truyền đến 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. Do đó, không giống như chữ ký viết tay thườ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 toán
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 của tin nhắn này.
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. Vì vậy Bob có thể chắc chắn rằng chữ ký đó là do Alice tạo ra, vì chỉ có cô ấy mới có khóa riêng khớp với khóa chung này (ít nhất đó là những gì chúng ta 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 người khác lấy được khóa riêng của Alice, họ có thể tạo chữ ký điện tử và mạo danh 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 của cô ấy mà không cần 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à chuyển đổi dự phòng.
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 của tin nhắn sẽ dẫn đến việc tạo ra một chữ ký hoàn toàn khác.
Tính xác thực. Với điều kiệ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 minh rằng chữ ký số được tạo bởi Alice chứ không phải ai khác.
Độ tin cậy. Sau khi chữ ký được tạo, Alice không thể phủ nhận rằng cô ấy đã ký nó trong tương lai, trừ khi khóa riêng của cô ấy bị xâm phạm.
Tùy chọn 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, chúng có một số công dụng. Một số cách sử dụng phổ biến nhất là:
Công nghệ thông tin: nâng cao 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 áp dụng cho kiểm toán, báo cáo chi phí, thỏa thuận tín dụng, v.v.
Quy định pháp lý: Ký kỹ thuật số 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 chặn việc làm giả đơn thuốc và hồ sơ y tế.
Chuỗi khối: Sơ đồ chữ ký số đảm bảo rằng chỉ chủ sở hữu hợp pháp của tiền điện tử mới có thể ký giao dịch để chuyển tiền (miễn là khóa riêng của họ không bị xâm phạm).
giới hạn
Những thách thức chính mà lược đồ 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à quan trọng. Đặc biệt, đây là sự lựa chọn các hàm băm và hệ thống mật mã đáng tin cậy.
Triển khai: Nếu thuật toán tốt nhưng việc triển khai còn thiếu sót thì hệ thống chữ ký điện tử có thể bị lỗi.
Khóa riêng: Nếu khóa riêng bị mất hoặc bị xâm phạm theo cách nào đó, các thuộc tính xác thực và không bị lỗi sẽ bị vô hiệu hóa. Đối với người dùng tiền điện tử, việc mất khóa riêng có thể gây ra tổn thất tài chính đáng kể.
Chữ ký điện tử so với chữ ký số
Chữ ký số đề cập đến một loại chữ ký điện tử cụ thể thuộc về 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ử chứ không phải ngược lại.
Sự khác biệt chính giữa chúng là phương pháp xác thực. Chữ ký số sử dụng các hệ thống mật mã như hàm băm, mật mã khóa công khai và kỹ thuật mã hóa.
Kết quả
Hàm băm và mật mã khóa công khai là trung tâm của hệ thống chữ ký số, hiện có nhiều ứng dụng. Khi được áp dụng đúng cách, chữ ký số có thể cải thiện 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 lĩnh vực 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 chỉ những người có khóa riêng tương ứng mới có thể sử dụng tiền xu.
Mặc dù chúng tôi đã sử dụng cả chữ ký điện tử và chữ ký số trong nhiều năm nhưng chúng tôi vẫn còn chỗ để phát triển. Phần lớn bộ máy quan liêu ngày nay vẫn dựa trên giấy tờ, nhưng chúng ta có thể thấy việc áp dụng chữ ký số nhiều hơn khi chúng ta chuyển sang loại hệ thống xử lý dữ liệu kỹ thuật số hơn.

