Trong thời gian qua, nhiều hệ thống mật mã khóa công khai và chữ ký số đã đƣợc đề xƣớng và cài đặt, sau đó do các nhu cầu thực tiễn đặt ra, ngƣời ta lại cố gắng sử dụng chúng để thiết kế các giao thức chữ ký phức tạp hơn để phục vụ nhiều nhiệm vụ đa dạng và phức tạp của con ngƣời. Trong số các giao thức chữ ký nhƣ vậy, có một số loại chữ ký đặc biệt đƣợc đề xuất và đã đem lại những ứng dụng hữu ích trong thực tiễn, đó là: ”chữ ký số mù”, ”chữ ký số nhóm” và ”chữ ký số mù nhóm”. Chƣơng này và các chƣơng tiếp sau đây chúng ta sẽ giới thiệu và trình bày các loại chữ ký này.
Để cho gọn và thống nhất trong việc trình bày, trong luận văn này ta quy ƣớc cụm từ ”chữ ký số” có thể viết tắt là ”chữ ký”, do đó các thuật ngữ:
”chữ ký số mù”, ”chữ ký số nhóm”, ”chữ ký số mù nhóm”, ta chỉ viết là: ”chữ ký mù”, ”chữ ký nhóm”, ”chữ ký mù nhóm”, và không nhất thiết cần viết trong cặp dấu ” ” nhƣng đƣợc hiểu đó là các thuật ngữ Tin học.
Khái niệm chữ ký mù (Blind Digital Signatures) đƣợc giới thiệu đầu tiên bởi Chaum [16] năm 1983. Đây là một biến thể của chữ ký số truyền thống. Chữ ký mù là chữ ký với quy định rằng ngƣời ký một tài liệu không biết nội dung của nó. Hơn nữa, sau này khi ngƣời ký nhìn thấy cặp tài liệu/chữ ký, anh ta không thể xác định đƣợc anh ta đã ký nó khi nào và cho ai, mặc dù anh ta có thể thẩm tra rằng chữ ký là hợp lệ và có phải do anh ta ký không. Bằng trực giác, điều này tương ứng với việc ký một tài liệu mà người ký nhắm cả 2 mắt. Đầu tiên khái niệm này có vẻ một chút kì lạ - vì sao bạn muốn ký cái gì đó mà không nhìn thấy nó?
Giao thức sinh chữ ký mù như sau:
Giả sử A là ngƣời ký, B là ngƣời nhận chữ ký và thông điệp cần ký là m.
▪ Bước 1: B làm mù m bằng hàm Blind, đƣợc: x = Blind(m), và gửi x cho A.
▪ Bước 2: A ký mù trên x bằng hàm Sign, đƣợc:
y = Sign(x) = Sign(Blind(m)), và gửi y cho B.
▪ Bước 3: B xóa mù trên y bằng hàm UnBlind, đƣợc chữ ký trên m:
s = Sign(m) = UnBlind(y) = UnBlind(Sign(Blind(m))). . Khái niệm chữ ký mù có một số ứng dụng rất đƣợc quan tâm trong một số tình huống mà ẩn danh là một vấn đề quan trọng. Hai ứng dụng nhƣ vậy là
bầu cử trực tuyến và tiền mặt điện tử. Khi bạn bỏ một lá phiếu trực tuyến, bạn có thể bầu cử giấu tên sao cho không ai có thể biết bạn bầu lá phiếu nào.
Tƣơng tự, với tiền mặt điện tử, bạn có thể không muốn ngƣời khác biết bạn là ai khi bạn tiêu thụ nó. Điều này tƣơng tự nhƣ tiền giấy thông thƣờng, khi bạn mua sắm nhà cung cấp ít khi quan tâm đến bạn là ai nếu bạn trả họ đồng tiền hợp pháp. Trong giao dịch tiền điện tử, một tài liệu tƣơng đƣơng với một đồng tiền điện tử hoặc phiếu trả tiền, và ngƣời ký thì đại diện cho một ngân hàng. Ngƣời tiêu tiền là ẩn danh trong bất kỳ giao dịch nào liên quan tới những đồng tiền điện tử nếu chúng đƣợc ký mù.
Chƣơng này chúng ta thảo luận sơ đồ chữ ký mù Chaum [16], và sơ đồ chữ ký mù Schnorr, sơ đồ chữ ký này là quan trọng vì một số ý tƣởng đƣa ra trong đó đƣợc sử dụng trong sơ đồ chữ ký nhóm Camenisch và Stadler [14], và sau đó bởi Ramzan [20]. Hai phần tiếp theo thảo luận việc áp dụng chữ ký mù cho tạo tiền điện tử và bầu cử trực tuyến. Phần cuối cùng trình bày các sự