Cách 1
Một cách đơn giản để giải quyết các vấn đề trên với thông điệp có kích thƣớc lớn là ― chặt ‖ bản tin thành nhiều đoạn nhỏ (Ví dụ các đoạn 160 bit ), sau đó ký lên các đoạn đó độc lập nhau. Nhƣng biện pháp này vẫn không giải quyết đƣợc vấn đề nêu trên.
Hơn thế nữa còn gặp vấn đề nghiêm trọng hơn. Đó là kết quả sau khi ký, nội dung của thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có thể bị mất mát. Ta cần phải bảo vệ tính toàn vẹn của bản tin gốc.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Thay vì phải ký trực tiếp trên tài liệu dài, ngƣời ta thƣờng dùng ―hàm băm‖ để tạo ―đại diện‖ cho tài liệu, sau đó ký số lên ―đại diện‖ này.
Các tài liệu (bản tin) có thể dƣới dạng văn bản, hình ảnh, âm thanh… và kích thƣớc của chúng tùy ý (vài KB đến vài chục MB), qua các thuật toán băm nhƣ MD4, MD5, SHA,…các đại diện tƣơng ứng của chúng có kích thƣớc cố định, ví dụ 128 bit với dòng MD, 160 bit với dòng SHA.
Đại diện của tài liệu chính là giá trị của ―hàm băm‖ trên tài liệu, nó còn đƣợc gọi là ―tóm lƣợc‖ hay ―bản thu gọn‖ của tài liệu.
Với mỗi tài liệu ( đầu vào ), qua hàm băm chỉ có thể tính ra đƣợc một ―đại diện‖ với giá trị băm tƣơng ứng - duy nhất. ―Đại diện‖ của tài liệu đƣợc xem là ―đặc thù‖ của tài liệu ( thông điệp ), giống nhƣ dấu vân tay của mỗi ngƣời.
Trên thực tế, hai tài liệu khác nhau có hai ―đại diện‖ khác nhau. Nhƣ vậy khi đã có ―đại diện‖ duy nhất cho tài liệu, thì việc ―ký‖ vào tài liệu, đƣợc thay bằng ký vào đại diện của nó là hoàn toàn hợp lý. Đó là chƣa kể việc tiết kiệm thời gian cho việc ký số, bộ nhớ lƣu giữ ―chữ ký‖, thời gian truyền ―chữ ký‖ trên mạng.