ลายเซ็นแหวน คล้ายกับลายเซ็นกลุ่ม แต่ไม่มีผู้จัดการกลุ่ม ความแตกต่างที่สำคัญอีกประการหนึ่งคือ "วงแหวน" สามารถสร้างขึ้นได้ในเวลาลงนามด้วยคีย์ของใครก็ตามที่คุณต้องการ - คุณไม่มี "กลุ่ม" ที่ตายตัวเหมือนในลายเซ็นกลุ่ม
ลายเซ็นไม่สามารถ "เชื่อมโยง" ได้เว้นแต่คุณจะใช้ a เชื่อมโยงได้ รูปแบบลายเซ็นแหวน ยิ่งไปกว่านั้น ตัวตนของผู้ลงนามถูกซ่อนอยู่ในแหวนและไม่สามารถระบุได้ด้วยการออกแบบ เช่นเดียวกับลายเซ็นกลุ่มรูปแบบส่วนใหญ่มีการตรวจสอบที่ทุกคนสามารถทำได้ (ตรวจสอบได้แบบสาธารณะ) และผู้ลงนามสามารถสร้างแหวนและลงนามได้ด้วยตนเองโดยไม่ต้องมีใครเข้าร่วม สิ่งนี้จึงตรงตามความต้องการทั้งหมดของคุณ โดยไม่สนใจข้อสุดท้าย (ซึ่งขึ้นอยู่กับเส้นโค้งวงรี)
การสร้างลายเซ็นแหวนครั้งแรกเป็นของ รีสต์ ชามีร์ และทามาน. รูปแบบของพวกเขาใช้คีย์ RSA อาเบะ โอคุโบะ และซูซูกิ ให้รูปแบบที่สามารถใช้คีย์ประเภท RSA และ DL ผสมกันได้ ภาคผนวก A ของบทความของพวกเขาแสดงวิธีที่คุณสามารถสร้างลายเซ็นแบบวงแหวนด้วยคีย์สาธารณะที่มีลายเซ็นของ schnorr ซึ่งสามารถปรับให้เข้ากับการตั้งค่าเส้นโค้งวงรี (และใช้ EC-schnorr)
โดยเฉพาะ สมมติว่าแต่ละฝ่ายในวงแหวนมีรหัสสาธารณะ $Y_i = [x_i]G$และผู้เข้าร่วม $k$ ต้องการสร้างลายเซ็นในนามของพวกเขาทั้งหมด ให้คำสั่งของ $G$ เป็น $p$, และปล่อยให้ $H$ เป็นฟังก์ชันแฮชที่มีโคโดเมน $\mathbb{Z}/p\mathbb{Z}$. ผู้ลงนามจะเลือกค่าสุ่ม $\alpha$และค่าสุ่ม $c_i$ สำหรับสมาชิกวงคนอื่นๆ ผู้ลงนามจะสร้าง "รหัสรวม"
$$
K = [\alpha]G + \sum_{i \neq k} [c_i]Y_i \,
$$
จากนั้นผู้ลงนามจะคำนวณแฮช $c = H(Y_0, Y_1, \ldots, Y_n, M, K)$ สำหรับข้อความ $M$. คำนวณ
$$
c_k = c - \sum_{i \neq k} c_i \pmod{p},
$$
เพื่อให้ทั้งหมด $c_i$ รวมทั้ง $c_k$ รวมเป็น $ค$ (กัญชา).
สุดท้ายปล่อยให้ $s = \alpha - c_k \cdot x_k \bmod{p}$. ลายเซ็นคือ $(s, c_0, \ldots, c_n)$. ในการตรวจสอบ เพียงคำนวณคีย์รวมและแฮชใหม่ดังนี้:
$$
K' = [s]G + \sum_i [c_i]Y_i\
c' = H(Y_0, Y_1, \ldots, Y_n, M, K')
$$
และตรวจสอบว่า $c' = \sum_i c_i \pmod{p}$.
คุณจะเห็นว่าการปฏิบัติโปรโตคอลอย่างตรงไปตรงมาจะช่วยให้ $K' = K$ เพราะ
$$
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
$$
จากนั้นการตรวจสอบจะทำงานโดยไม่คำนึงว่ากรณีใด $k$ เป็นผู้ลงนามตามที่กำหนด และทุกคนสามารถตรวจสอบลายเซ็นที่ได้รับจากชุดคีย์สาธารณะ $Y_i$, ข้อความ $M$ลายเซ็น $(s, c_i)$และพารามิเตอร์สาธารณะ $(G, p, E, \ldots)$.