Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 49
Ba định lý trong phần này đều mới chỉ đề cập tới một khía cạnh là Bob chấp nhận hay chối bỏ chữ ký của mình mà chưa nói tới một khía cạnh khác là Alice có thể chối bỏ chữ ký của mình đã đọc thông báo do Bob gửi. Ta giả định rằng nếu Bob gửi cho Alice một thông báo đòi nợ nhưng Alice chưa muốn trả hoặc không muốn trả thì cô ta sẽ lờ đi và coi như chưa nhận hay chưa đọc thông báo đó. Vậy Bob có thể làm cách nào để chứng minh Alice đã mở thông báo?
Để giải quyết vấn đề trên Bob và Alice thực hiện theo giao thức sau: Trước tiên, Bob và Alice cùng xây dựng khóa K theo lược đồ trao đổi khóa Diffie – Hellman. Giao thức như sau:
Giả sử p là số nguyên tố, là căn nguyên thủy của Zp*; , p là công khai. Cuộc trao đổi khóa giữa Bob và Alice theo các bước sau:
Bob chọn ngẫu nhiên aB: 0 aB p – 2 1. Bob tính aB
mod p và gửi cho Alice 2. Bob chọn ngẫu nhiên aA: 0 aA p – 2 3. Bob tính aA
mod p và gửi nó cho Bob 4. Bob tính K = (aA
)aB mod p 5. Alice tính K = (aA
)aB mod p
Sau đó, Bob tiếp tục xây dựng một khóa K1, K1 bí mật. Bob có thể xây dựng K1 theo hệ mật đối xứng (DES, AES – đó là hệ một khóa. Các khóa lập và giải mã như nhau hay dễ dàng xác định lẫn nhau. Các hệ một khóa cung cấp một cách tuyệt vời cho việc mã hóa các tệp riêng của người dùng). Bob và Alice tiến hành tiếp theo các bước dưới đây:
Bob dùng K1 để mã hóa thông báo x và chữ ký kèm theo: y = sigB(x)
i = eK
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 50
Bob gửi i cho Alice
1. Alice gửi lại thông báo x1 kèm chữ ký y1 = sigA(x1) và mã y1 bằng K: j = eK(y1) rồi gửi cho Bob. Trong đó x1 chứa ngày giờ, lời yêu cầu và chứa cả i.
Bob tính i1 = eK(K1) và gửi nó cho Alice.
Khi Bob và Alice tiến hành theo giao thức trên, muốn đọc được thông báo thì Alice phải gửi lại một thông báo (đã được mã hóa bằng khóa K) tới Bob, yêu cầu Bob gửi khóa K1 cho mình bởi vì K1 chỉ mình Bob biết. Bob kiểm tra thông báo của Alice theo thuật toán kiểm tra công khai Ver để xác định thông báo có đúng của Alice gửi hay không? Nếu đúng, anh ta gửi khóa K1 cho Alice mà K1 đã được mã hóa theo K.
Bob thực hiện theo cách trên sẽ có đủ chứng cứ để chứng minh trước tòa rằng Alice có mở và đọc thông báo anh ta gửi tới bằng cách đưa thông báo có kèm chữ ký của Alice và cả ngày giờ Bob nhận được thông báo đó. (Xem trong [6], [8], [5]).
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 51
CHƢƠNG 6
ỨNG DỤNG CHỮ KÝ SỐ (DIGITAL SIGNATURE)