Chữ ký số (Digital Signature)
Cơ chế sử dụng công nghệ mật mã để chứng minh danh tính người tạo dữ liệu số và đảm bảo dữ liệu không bị giả mạo. Được thực hiện bằng sự kết hợp giữa mã hóa khóa công khai và hàm băm.
Chữ ký số (digital signature) là cơ chế sử dụng công nghệ mật mã để đảm bảo "ai đã tạo" (xác thực) và "nội dung có bị thay đổi không" (tính toàn vẹn) cho tài liệu số. Tương đương với chữ ký tay hoặc con dấu trên tài liệu giấy, nhưng có nền tảng mật mã học nên cực kỳ khó giả mạo. Chữ ký số là nền tảng tin cậy của xã hội số, được ứng dụng trong hợp đồng điện tử, phân phối phần mềm và xác thực email.
Cơ chế chữ ký số gồm 3 bước. Thứ nhất, người ký tính giá trị băm (digest có độ dài cố định) của tài liệu. Thứ hai, mã hóa giá trị băm bằng khóa bí mật của người ký để tạo dữ liệu chữ ký. Thứ ba, người xác minh giải mã dữ liệu chữ ký bằng khóa công khai của người ký và so sánh với giá trị băm tính từ tài liệu. Nếu khớp, chứng minh tài liệu do chính người ký tạo ra và không bị thay đổi sau khi ký.
Mối quan hệ giữa số ký tự và chữ ký số thể hiện qua tính chất của hàm băm. SHA-256 luôn xuất ra giá trị băm 256 bit (64 ký tự thập lục phân) bất kể độ dài dữ liệu đầu vào. Văn bản 1 ký tự hay 1 triệu ký tự đều cho giá trị băm cùng độ dài. Tuy nhiên, chỉ cần thay đổi 1 ký tự trong văn bản đầu vào, giá trị băm sẽ hoàn toàn khác, cho phép phát hiện mọi sự giả mạo.
Kích thước dữ liệu chữ ký phụ thuộc vào thuật toán sử dụng. Chữ ký RSA-2048 có kích thước 256 byte, ECDSA (P-256) khoảng 64 byte. Dữ liệu chữ ký được đính kèm vào tài liệu nên tổng kích thước tăng lên. Với chữ ký số trên PDF, ngoài dữ liệu chữ ký còn nhúng chuỗi chứng chỉ và dấu thời gian, tăng thêm vài KB đến vài chục KB.
Tại Việt Nam, Luật Giao dịch điện tử 2023 (có hiệu lực từ 01/07/2024) công nhận giá trị pháp lý của chữ ký số đáp ứng các điều kiện nhất định. Chữ ký số do tổ chức cung cấp dịch vụ chứng thực chữ ký số (CA) được NEAC cấp phép có giá trị tương đương chữ ký tay. Các dịch vụ như VNPT-CA, Viettel-CA, FPT-CA cung cấp chứng thư số cho cá nhân và doanh nghiệp. Số ký tự trong hợp đồng không ảnh hưởng đến hiệu lực pháp lý của chữ ký số.
Ký mã (code signing) là ứng dụng chữ ký số cho phân phối phần mềm. Bằng cách ký lên tệp thực thi, nhà phát triển đảm bảo danh tính và tính toàn vẹn của mã nguồn. Phần mềm không được ký sẽ bị hệ điều hành hiển thị cảnh báo, nên code signing trở thành yêu cầu thực tế bắt buộc để xây dựng niềm tin với người dùng.