Score:5

วิธีที่ถูกที่สุดในการพิสูจน์ว่าบุคคลคนเดียวกันรู้จักคีย์ส่วนตัวที่แตกต่างกันสองคีย์

ธง np

สมมติว่ามีคู่คีย์ ECC ที่ไม่เกี่ยวข้องกันสองคู่ ($ผับ_1$, $Priv_1$) และ ($ผับ_2$, $Priv_2$). อลิซอ้างว่าเธอรู้ทั้งสองอย่าง $Priv_1$ และ $Priv_2$แต่บ็อบไม่เชื่อใจเธอและคิดอย่างนั้น $Priv_2$ เป็นที่รู้จักเฉพาะกับอีฟ เพื่อนของอลิซ

บ็อบขอให้อลิซพิสูจน์ว่าเธอเป็นผู้ควบคุมกุญแจส่วนตัวทั้งสองดอก ตอนนี้บ็อบรู้แล้วว่าหากอีฟควบคุมจริงๆ $Priv_2$เธอยินดีที่จะสมรู้ร่วมคิดกับอลิซเพื่อสร้างหลักฐานว่าอลิซควบคุมทั้งสองอย่าง แต่เขาก็รู้ด้วยว่าความเชื่อใจของอีฟมีจำกัด—อีฟคงไม่ยอมบอกกุญแจส่วนตัวให้อลิซรู้ $Priv_2$.

อลิซสามารถพิสูจน์อะไรให้บ็อบได้ว่าเธอ (หรืออย่างน้อยก็คนๆ เดียวกัน) รู้จักทั้งสองอย่าง $Priv_1$ และ $Priv_2$? โปรดทราบว่าเช่น ลายเซ็นที่ซ้อนกันเช่น $Sig_1(Sig_2(msg))$ ไม่เพียงพอเพราะอีฟสามารถสร้างได้ $Sig_2(msg)$ และมอบให้อลิซเพื่อห่อ $ซิก_1$ โดยไม่เคยเปิดเผย $Priv_2$.

ภาวะแทรกซ้อนอื่น: การพิสูจน์ต้องทำงานอย่างมีประสิทธิภาพบนเส้นโค้ง secp256k1 (ฉันได้ตรวจสอบการใช้ zkSNARK สำหรับสิ่งนี้ แต่ไลบรารี SNARK ที่ฉันเห็นไม่ทำงานอย่างมีประสิทธิภาพบนเส้นโค้งนั้น)

kelalaka avatar
in flag
อลิซสามารถส่งรหัสส่วนตัวให้อีฟได้หรือไม่? และอีฟตอบสนองอย่างตรงไปตรงมานอกเหนือจากการป้อนคีย์ส่วนตัวหรือไม่...
np flag
@kelalaka ไม่ เราถือว่าทั้งอลิซและอีฟไม่ไว้ใจซึ่งกันและกันมากพอที่จะเปิดเผยรหัสส่วนตัวให้อีกฝ่ายทราบโดยตรง
Score:2
ธง in

สิ่งนี้ดูเหมือนเป็นไปไม่ได้ในทางทฤษฎี เท่าที่ฉันสามารถบอกได้ ไม่มีความแตกต่างระหว่างการรู้ $priv_2$ และสมรู้ร่วมคิดกับผู้รู้ $priv_2$.

สมมติโปรโตคอลการพิสูจน์บางอย่าง $\ปี่$ อยู่ระหว่างผู้พิสูจน์ (A) และผู้ตรวจสอบ (B) ซึ่งเป็นไปตามข้อกำหนดที่อธิบายไว้ มีวิธีการเสมอสำหรับ $A(priv_1)$ และ $E(priv_2)$ เพื่อสมรู้ร่วมคิดในการดำเนินการ $\ปี่$ ในทางที่ $A$ เรียนรู้อะไรเกี่ยวกับ $priv_2$. $A$ และ $E$ เพียงเรียกใช้โปรโตคอล MPC เพื่อคำนวณการตอบสนองถัดไป $B$.

ความปลอดภัยของโปรโตคอล MPC รับประกันได้ว่า $A$ ไม่เรียนรู้อะไรมากไปกว่าอินพุตของตนเอง $priv_1$ และผลลัพธ์ซึ่งเป็นการตอบสนอง $B$ซึ่งทุกคนสามารถเห็นได้อยู่แล้ว และถ้า $\ปี่$ เป็นศูนย์ความรู้ที่จะ $B$ (โดยทั่วไปต้องการ) จากนั้น $A$ เรียนรู้อะไรจากการตอบสนอง

knaccc avatar
es flag
"ไม่มีความแตกต่างระหว่างการรู้ 2 และการสมรู้ร่วมคิดกับคนที่รู้ 2"
Score:0
ธง es

ข้อจำกัดความรับผิดชอบ: ฉันไม่มีหลักฐานความปลอดภัยสำหรับโครงการนี้ คำติชมยินดีต้อนรับ

เพื่อให้สัญกรณ์ง่ายขึ้น ฉันเรียกคู่คีย์ทั้งสอง (ส่วนตัวและสาธารณะ) $(a, A = a\cdot G)$ และ $(b, B = b\cdot G)$ บนจุดฐาน $G$. ตัวพิมพ์เล็กคือสเกลาร์ ตัวพิมพ์ใหญ่คือจุด EC $H_s()$ หมายถึงแฮชและลด (mod คำสั่งของ $G$) เป็นสเกลาร์ การดำเนินการทั้งหมดระหว่างสเกลาร์ (เช่น การลบและการคูณ) เป็นคำสั่งของ mod $G$.

ก่อนอื่นให้ประกาศ $D = a\cdot b\cdot G$.

อนุญาต $m = H_s(\text{"กำลังเซ็นข้อความ"})$ เป็นข้อความแบบครั้งเดียวที่จะป้องกันการนำลายเซ็นนี้ไปใช้ซ้ำในบริบทต่างๆ

เพื่อพิสูจน์ $D$ สร้างอย่างถูกต้องจริงๆ ใช้ลายเซ็น Schnorr แบบขยาย:

ลายเซ็นเป็น $(ง, ค, ร)$ ที่ไหน $k$ เป็นสเกลาร์แบบสุ่ม $c = H_s(m \mathbin\| k\cdot G \mathbin\| k\cdot B)$ และ $r = k - c\cdot a$.

ลายเซ็นถูกตรวจสอบโดยการตรวจสอบ $c \overset{?}{=} H_s(m \mathbin\| r\cdot G + c\cdot A \mathbin\| r\cdot B + c\cdot D)$ และโดยการตรวจสอบ $D$ เป็นจุดที่ถูกต้องและไม่ใช่จุดที่ไม่มีที่สิ้นสุด

สิ่งนี้พิสูจน์ได้ว่าทั้งสองอย่าง $a$ เป็นที่รู้จักและนั่น $a$ เป็นทั้งคีย์ส่วนตัวของจุด $A$ ที่จุดกำเนิด $G$และยังเป็นคีย์ส่วนตัวของจุด $D$ ที่จุดกำเนิด $B$. ดังนั้น $D$ ได้รับการพิสูจน์แล้วว่า $a\cdot b\cdot G$.

สุดท้าย เราต้องสร้างลายเซ็นที่สองเพื่อพิสูจน์ว่ามีคนรู้ทั้งสองอย่าง $a$ และ $ข$. เราสามารถทำได้โดยการพิสูจน์ความรู้ของคีย์ส่วนตัวของจุด $D$ บนจุดฐาน $G$ (จึงเป็นการพิสูจน์ความรู้ของ $a\cdotข$).

ลายเซ็นเป็น $(c', r')$ ที่ไหน $k'$ เป็นสเกลาร์แบบสุ่ม $c' = H_s(m \mathbin\| k'\cdot G)$ และ $r' = k' - c'\cdot a\cdot b$.

ลายเซ็นถูกตรวจสอบโดยการตรวจสอบ $c' \overset{?}{=} H_s(m \mathbin\| r'\cdot G + c'\cdot D)$.

ถ้าอลิซสมรู้ร่วมคิดกับอีฟโดยที่อีฟไม่เปิดเผย $ข$อลิซจะต้องเปิดเผยรหัสส่วนตัวของเธอ $a$ ถึงอีฟ ความรู้ของ $k'$ โดย colluder ทั้งสองจะอนุญาตให้ colluder นั้นคำนวณคีย์ส่วนตัวของ colluder อื่น ความปลอดภัยของแผนการนี้ขึ้นอยู่กับว่าอลิซไม่สามารถสมรู้ร่วมคิดกับอีฟในทางคณิตศาสตร์ได้ในทางคณิตศาสตร์ $r'$ เพื่อให้อลิซหรืออีฟสามารถกำหนดคีย์ส่วนตัวของอีกฝ่ายในทางคณิตศาสตร์ได้

ลายเซ็นโดยรวมจึงเป็น $(ง, ค, ร, ค', ร')$ และคือ $5\cdot 32 = 160$ ไบต์

Wilson avatar
se flag
ฉันจะลงคะแนนด้วยความเคารพ ฉันคิดว่าอาจมีตัวแยกที่แสดงความรู้ทั้ง $a$ และ $b$ แต่ฉันยังไม่แน่ใจทั้งหมดในขณะนี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา