Giả thiết Alice muốn gửi một tài liệu A cho Bob, Alice dùng giải thuật MD5 để tạo ra một mã duy nhất từ A mà ta vẫn gọi là chữ ký điện tử hay ký số S(A).
Khóa công khai của người gửi
Giải mã Tách bản tin và CKS Giải mã Bản tin tóm lược 2 Bản tin điện tử CKS Hàm băm Bản tin tóm lược 1 Giống nhau Bản tin đã ký Giống nhau Bản tin là toàn vẹn Không đúng người gửi
Khác nhau
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 36
Đặc điểm của S(A) là duy nhất với mỗi tài liệu, cho dù có sửa một ký tự trong tài liệu A thì ngay lập tức S(A) mới khác ngay với S(A) cũ. Điều đó để ta chắc chắn rằng mỗi tài liệu chỉ có một chữ ký duy nhất.
Hay nói cách khác với chữ ký tay ta thường dùng đó là mọi văn bản ta đều ký một chữ ký “của ta” vào nó. Còn chữ ký số là một mã được sinh ra từ nội dung của một tài liệu, nội dung khác thì sẽ có một mã chữ ký khác nhau và là duy nhất. Sau đó khi ta muốn gửi tài liệu A cho người nhận, thì chúng ta sẽ phải gửi kèm cả chữ ký S(A) theo.
Giả sử tài liệu A đến tay một người nào đó trước khi đến tay Bob và họ cố tình sửa nội dung của nó theo mục đích khác (mục đích xấu). Khi đó Bob sẽ nhận được tài liệu A’ tất nhiên khác A, khi đó Bob dùng MD5 để tạo chữ ký cho A’ thì thu được S(A’), tiến hành so sánh với S(A) nhận được tất nhiên S(A’) phải khác S(A). Khi đó Bob biết nội dung đã bị sửa.
Tuy nhiên nếu đối tượng đó vừa sửa nội dung thành A’ vừa tạo chữ ký S(A’) và gửi cho Bob, và Bob nhận được là A’ và S(A’) khi đó Bob không có được S(A) gốc để so sánh, và tất nhiên khi Bob dùng MD5 để tạo chữ ký cho A’ thì nhận được S(A’) = S(A’) nhận được, vì thế mà Bob không biết được tài liệu đã bị sửa.
Để khắc phục nhược điểm này Alice phải dùng thêm mã hóa cho chữ ký, ta sử dụng mã RSA. Tài liệu A MD5 Chữ ký của Tài liệu S(A)
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 37
Chương trình mô phỏng
Hình 4.3: Chương trình demo chữ ký điện tử.
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 38