8. Vận chuyển khóa công kha
C.3 Thỏa thuận khóa theo Nyberg-Rueppel
Đây là ví dụ về Cơ chế thỏa thuận khóa 3.
Giao thức được sử dụng không phải là bản sao chép dạng 1-1 của giao thức ở phần B.3 nhưng dựa trên ý tưởng cơ bản của B.3.
Một hệ chữ ký và một hệ thỏa thuận khóa được chọn sao cho hệ chữ ký được xác định bởi các khóa
(hx,Px).
Để ngăn ngừa việc dùng lại các thẻ khóa cũ thì ví dụ này sử dụng một tem thời gian hoặc một số tuần tự TVP và một hàm băm mã hash, chẳng hạn như có sự ánh xạ từ chuỗi bít có độ dài tùy ý đến các số nguyên thuộc H.
Kiến thiết khóa (A1.1): A tạo ngẫu nhiên và bí mật giá trị r thuộc H và tính:
R = P[r]
KAB = (PB)[r]
A sử dụng khóa bí mật dùng chung này và tính giá trị kiểm tra mật mã tại điểm R, định danh riêng biệt
của người gửi A và số tuần tự hoặc tem thời gian TVP:
e = hash(R || KAB || A || TVP)
Ký thẻ khóa (A1.2): A tính chữ ký như sau:
KTA = (R || A || TVP || y) Và gửi nó cho B.
Kiến thiết khóa (B1.1): B tính khóa bí mật dùng chung sử dụng khóa để thỏa thuận khóa bí mật hB
của mình như sau:
KAB = R[hB]
B lại sử dụng khóa bí mật dùng chung bí mật này để tính giá trị kiểm tra mật mã đối với định danh
riêng biệt của bên gửi A và giá trị TVP như sau:
e = hash(R || KAB || A || TVP)
Kiểm tra chữ ký (B1.2): B kiểm tra tính hợp lệ của TVP và sử dụng khóa công khai của bên gửi PA
để kiểm tra sự bằng nhau:
R = P[y].(PA)[e].