chữ ký nhẫn tương tự như chữ ký nhóm, nhưng không có người quản lý nhóm. Một điểm khác biệt chính nữa là "vòng" có thể được hình thành tại thời điểm ký với bất kỳ khóa nào bạn thích - bạn không có một "nhóm" cố định như trong chữ ký nhóm.
Chữ ký không thể được "liên kết" trừ khi bạn đang sử dụng cụ thể có thể liên kết sơ đồ chữ ký vòng. Hơn nữa, danh tính của người ký được ẩn trong vòng và không thể được xác định theo thiết kế, giống như trong chữ ký nhóm.Hầu hết các chương trình đều có việc xác minh có thể được thực hiện bởi bất kỳ ai (có thể xác minh công khai). Và những người ký tên có thể tự tạo chiếc nhẫn và ký tên mà không cần sự tham gia của bất kỳ ai khác. Vì vậy, điều này đáp ứng tất cả các yêu cầu của bạn, bỏ qua yêu cầu cuối cùng (rằng chúng dựa trên các đường cong elip).
Việc xây dựng chữ ký vòng đầu tiên là một bởi Rivest, Shamir và Tauman. Sơ đồ của họ sử dụng các khóa RSA. Abe, Ohkubo và Suzuki đã đưa ra một sơ đồ trong đó có thể sử dụng hỗn hợp các khóa loại RSA và DL. Phụ lục A của bài báo của họ cho thấy cách bạn có thể tạo chữ ký vòng chỉ bằng các khóa công khai chữ ký schnorr, khóa này có thể được điều chỉnh theo cài đặt đường cong elip (và sử dụng EC-schnorr).
Cụ thể, giả sử mỗi bên trong vòng có một khóa công khai $Y_i = [x_i]G$, và người tham gia $k$ muốn tạo chữ ký thay mặt cho tất cả họ. Hãy để thứ tự của $G$ thì là ở $p$, và để $H$ là một hàm băm có tên miền là $\mathbb{Z}/p\mathbb{Z}$. Người ký sẽ chọn một giá trị ngẫu nhiên $\alpha$, và các giá trị ngẫu nhiên $c_i$ cho tất cả các thành viên vòng khác. Người ký sau đó sẽ tạo một "khóa tổng hợp"
$$
K = [\alpha]G + \sum_{i \neq k} [c_i]Y_i \, .
$$
Sau đó, người ký sẽ tính toán hàm băm $c = H(Y_0, Y_1, \ldots, Y_n, M, K)$ cho tin nhắn $M$. tính toán
$$
c_k = c - \sum_{i \neq k} c_i \pmod{p},
$$
để tất cả các $c_i$ bao gồm $c_k$ tổng thành $c$ (băm).
Cuối cùng, hãy để $s = \alpha - c_k \cdot x_k \bmod{p}$. chữ ký là $(s, c_0, \ldots, c_n)$. Để xác minh, chỉ cần tính toán lại khóa tổng hợp và hàm băm như sau:
$$
K' = [s]G + \sum_i [c_i]Y_i\
c' = H(Y_0, Y_1, \ldots, Y_n, M, K')
$$
và kiểm tra xem $c' = \sum_i c_i \pmod{p}$.
Bạn có thể thấy rằng việc thực hiện giao thức một cách trung thực sẽ cho phép $K' = K$ bởi vì
$$
K' = [s]G + \sum_i [c_i]Y_i \
= [\alpha]G - [c_k \cdot x_k]G + \sum_i [c_i]Y_i\
= [\alpha]G - [c_k]Y_k + \sum_i [c_i]Y_i\
= [\alpha]G + \sum_{i \neq k} [c_i]Y_i = K.
$$
Sau đó, xác minh hoạt động bất kể điều gì $k$ là người ký, theo yêu cầu và bất kỳ ai cũng có thể xác minh chữ ký được cung cấp bộ khóa công khai $Y_i$, thông điệp $M$, chữ ký $(s, c_i)$và các tham số công khai $(G, p, E, \ldots)$.