Alice chọn một danh sách các khóa riêng ngẫu nhiên thống nhất $\{a_i\}$. Cô ấy tính toán một danh sách các khóa công khai tương ứng $\{A_i\}$ như $\{a_iG\}$. Sau đó, cô ấy khai báo một danh sách các giá trị băm khóa công khai tương ứng $\{P_i\}$ tính như $\{hash(A_i)\}$.
$G$ là một điểm cơ sở nổi tiếng trên đường cong, và $hash()$ là một hàm băm an toàn bằng mật mã.
Bob cũng làm như vậy để Bob có khóa riêng $\{b_i\}$, có khóa công khai $\{B_i\}$và khai báo giá trị băm khóa công khai $\{Q_i\}$.
Ở giai đoạn này, Alice và Bob có thể quyết định cộng tác để xác định danh sách bí mật dùng chung của Diffie-Hellman $\{S_i\}$ như $\{a_iB_i\}$ hoặc $\{b_iA_i\}$. Tuy nhiên, họ không làm điều này.
Không mất tính tổng quát, nếu Alice muốn tìm hiểu bí mật được chia sẻ tại chỉ mục $j$ mà Bob không phát hiện ra $j$ hoặc bí mật được chia sẻ:
Alice chọn một yếu tố mù ngẫu nhiên thống nhất $r$, và gửi $X=rA_j+jH$ gửi Bob. $H$ là một điểm cơ sở nổi tiếng thứ hai trên đường cong, trong đó $h$ không được biết đến mức $hG==H$.
Bob gửi lại cho Alice danh sách $\{Z_i\}$ = $\{b_i(X-iH)\}$.
Alice bây giờ chỉ có thể bỏ bịt mắt và tìm hiểu bí mật được chia sẻ $S_j$ bằng cách tính toán $r^{-1}Z_j$. Cô ấy không thể tìm hiểu bất cứ điều gì về bất kỳ bí mật được chia sẻ nào khác, bởi vì $H$ thành phần trong danh sách phản hồi của Bob sẽ chỉ hủy bỏ tại một chỉ mục cụ thể.
Vì bí mật Diffie-Hellman này $S_j$ sẽ bằng $a_jB_j$, Alice sau đó có thể xác minh rằng hàm băm của Bob $Q_j$ phù hợp bằng cách kiểm tra $Q_j\overset{?}{=}hash(a_j^{-1}S_j)$.