8. Vận chuyển khóa công kha
B.9 Vận chuyển khóa EIGamal có chữ ký của bên gử
Đây là ví dụ về Cơ chế vận chuyển khóa 2.
Một số nguyên tố thích hợp p và bộ tạo g thuộc ZP được lựa chọn và công bố công khai. Các khóa dùng để thỏa thuận khóa công khai tương ứng của B là hB và:
pB = ghB mod p
Các phép biến đổi ký công khai và bí mật của A tương ứng ký hiệu là SA và VA, (SA,VA) có thể được
thể hiện ở bất cứ hệ chữ ký nào như chữ ký RSA còn việc kiểm tra chữ ký được đưa ra trong ISO/IEC 9796.
Mã hóa khóa (A1.1): A có một khóa K và muốn gửi nó theo cách an toàn đến B. Trước tiên A tạo ngẫu nhiên và bí mật một số nguyên r trong khoảng (1,…,p-2) sau đó mã hóa khối dữ liệu khóa A || K như sau:
BE = (A || K) (pB)r mod p
Chú thích rằng K phải được chọn theo cách sao cho giá trị (A || K) phải nhỏ hơn số nguyên tố p.
Kiến thiết thẻ khóa (A1.2): A tạo ra một khối dữ liệu khóa bao gồm định danh riêng biệt của bên nhận, có thể có tem thời gian hoặc một số tuần tự TVP, gr và khối đã mã hóa BE. Tiếp đó A ký khối dữ
liệu khóa bằng phép ký bí mật SA của mình rồi gửi sang cho B: KTA1 = SA (B || TVP || gr || BE)
Kiểm tra thẻ khóa (B1.1): B sử dụng phép kiểm tra công khai của bên gửi VA để kiểm tra chữ ký số của thẻ khóa KTA1 nhận được. Tiếp đó B kiểm tra định danh bên nhận B và trường tùy chọn TVP.
Giải mã khóa (B1.2): B tiến hành giải mã khối BE sử dụng khóa để thỏa thuận khóa bí mật hB của nó bằng cách tính:
A || K = BE (gr)hB mod p
Tiếp đó B kiểm tra đinịh danh của bên gửi A. Nếu tất cả kiểm tra đều thỏa mãn thì B chấp nhận khóa
K.