D. GIảI PHáP MậT Mã
4. Thủ tục STS (trạm-tới-trạm)
STS là một thủ tục trao đổi khoá theo l−ợc đồ Diffie-Hellman, kèm theo việc trao đổi chữ ký xác thực. Trong phiên bản cơ sở của thủ tục, chúng ta giả thiết rằng các tham số đ−ợc sử dụng để thiết lập khoá là cố định và mọi ng−ời đều biết.
Thủ tục đ−ợc bắt đầu bởi một bên, ví dụ, Alice, tạo ra một số ngẫu nhiên x,
và gửi luỹ thừa gx sang bên kia cho Bob. Bob tạo số ngẫu nhiên y, và sử dụng lũy
thừa của Alice để tạo ra khoá trao đổi K = gxy. Bob thực hiện việc ký lên các luỹ
thừa bởi khoá K. Bob trả lời cùng với luỹ thừa gy và một bản mã lên chữ ký của anh ta theo một thuật tốn mã đối xứng thích hợp E. Alice nhận đ−ợc sẽ tính khố K, giải mã bởi K và kiểm tra chữ ký của Bob bằng cách dùng khố cơng khai của Bob. Cuối cùng, t−ơng tự, Bob kiểm tra chữ ký đã đ−ợc mã hoá của Alice bằng cách dùng khoá K và khố cơng khai của Alice.
Thủ tục STS
Alice Bob
gx
EK(SIGA{gx, gy}) gy, EK(SIGB{gy, gx})
Có thể tạo ra một phiên bản đối xứng hơn cho thủ tục này, trong đó các bên trao đổi các luỹ thừa tr−ớc và sau đó trao đổi bản mã lên các chữ ký riêng biệt. Trong tr−ờng hợp này, cả Alice và Bob không cần biết ai bắt đầu cuộc gọi. Điều này là mong muốn, giống nh− các tình huống trong thực tế (đ−ờng điện thoại, đ−ờng truyền dữ liệu X.25) trong đó ở một mức độ cài đặt nào đấy, không rõ là bên nào bắt đầu tr−ớc. Điều này giải thích tại sao trong khn dạng chữ ký của mỗi bên thì luỹ thừa của chính ng−ời đó đ−ợc đ−a lên tr−ớc. Nếu luỹ thừa có cùng thứ tự trong cả hai chữ ký thì Alice và Bob cần tìm cách thoả thuận xem luỹ thừa của ai đ−ợc đ−a lên tr−ớc (ví dụ là dựa và qui định xem bên nào bắt đầu cuộc gọi).
Thủ tục STS đối xứng Alice Bob gx EK(SIGB{gy, gx}) EK(SIGA{gx, gy}) gy