Quá trình tạo khóa ban đầu có thể chia thành các bƣớc: [+] Bƣớc 1:
- Các thành viên sẽ thống nhất chọn p là một số nguyên tố lớn, q là ƣớc số nguyên tố của p-1 và G là nhóm cyclic con bậc q của Zp*
,còn α là phần tử sinh của G. - Các thành viên tự chọn cho mình khóa bí mật r (thuộc Zq*)
- Mỗi thành viên Mi sẽ chuyển cho Mi+1 kết quả tính toán αr1*r2*…*ri (với 0<i<n-1)
[+] Bƣớc 2: Thành viên Mn-1 sau khi nhận đƣợc kết quả tính toán của Mn-2 sẽ tính toán αr1*r2*…*rn-1
và gửi broadcasts kết quả tính toán cho tất cả các thành viên trong nhóm
[+] Bƣớc 3: Các thành viên trong nhóm sau khi nhận đƣợc gói tin từ Mn-1 sẽ tiến hành tính toán và gủi kết quả đến Mn
[+] Bƣớc 4: Mn sau nhận đƣợc các gói tin từ các thành viên sẽ tính toán và gửi broadcasts lại cho tất cả các thành viên
Các thành viên trong nhóm sẽ tính toán ra khóa dùng chung theo công thức
Ví dụ : Giả sử có 1 nhóm có 4 thành viên, việc tạo khóa ban đầu sẽ diễn ra theo trình tự :
[+] Các thành viên tự chọn cho mình 1 khóa bí mật và thống nhất với nhau số nguyên tố p và α sẽ sử dụng .
[+] Các thành viên tự chọn cho mình khóa bí mật r1, r2, r3, r4 là các phần tử thuộc Zq*.
[+] Các thành viên lần lƣợt gửi cho nhau các khóa nhƣ sau :
o AB : αr1 o B nhận đƣợc αr1 liền tính αr1*r2 BC : αr1*r2 o C nhận đƣợc liền tính αr1*r2*r3 CA : αr1*r2*r3 CB : αr1*r2*r3
o Tất cả các thành viên nhận đƣợc thông tin từ C liền tính toán và gửi đến D :
AD : αr2*r3
BD : αr1*r3
CD : αr1*r2
o D nhận đƣợc liền tính αr1*r3*r4, αr2*r3*r4, αr1*r2*r4, αr1*r2*r3*r4
D tính toán khóa dung chung là K = αr1*r2*r3*r4
DA : K = αr2*r3*r4*K14
DB : K = αr1*r3*r4*K24
DC : K = αr1*r2*r4*K34
Sau đó các thành viên tự tính toán kết hợp với khóa của mình để ra khóa dung chung là K = αr1*r2*r3*r4
Hình 2.9: Quá trình khởi tạo khóa ban đầu của nhóm trong CLIQUES-I
Bảng 2.6: Thuật toán khởi tạo khóa của CLIQUES-II