Diffie–Hellman hai bên có thể mở rộng cho ba bên Alice, Bob, Carol cùng thống nhất một khóa chung, thông qua giao thức vòng tròn 3 bước với tham số công khai p (nguyên tố) và g. Alice, Bob, Carol có khóa bí mật lần lượt là a,b,c.
Bước 1: mỗi bên tự tính giá trị công khai của mình: XA=gamodp,XB=gbmodp,XC=gcmodp
Bước 2: trao đổi vòng tròn Alice → Bob → Carol → Alice, mỗi bên mũ hóa giá trị vừa nhận được bằng khóa riêng của mình: YA=XCamodp,YB=XAbmodp,YC=XBcmodp
Bước 3: tiếp tục trao đổi vòng tròn theo đúng thứ tự đó và mũ hóa lần cuối để ra khóa chung: KA=YCamodp,KB=YAbmodp,KC=YBcmodp
Có thể chứng minh KA=KB=KC=gabcmodp. Cho T bộ (p,g,a,b,c), hãy tính khóa chung cuối cùng mà cả ba bên thu được.
Ví dụ: p=23, g=5, a=3, b=4, c=5 cho khóa chung bằng 3.
In ra T dòng, dòng thứ i là khóa chung K=gabcmodp của bộ dữ liệu thứ i.
Ví dụ:
Đầu vào:
1
23 5 3 4 5
Đầu ra:
3
Đầu vào:
1
7 3 1 1 1
Đầu ra:
3
Đang tải editor...