Score:0

สองฝ่ายที่มีความลับร่วมกันสามารถออกข้อผูกพันได้หรือไม่?

ธง sy

สมมติว่าฝ่าย A และ B มีความลับร่วมกัน $k$. มีโปรโตคอลที่ทั้งสองฝ่ายร่วมกันปล่อยข้อผูกพันที่จะ $k$ ดังนั้นในภายหลัง ทั้ง A และ B ไม่สามารถปฏิเสธความลับทั่วไปได้?

แก้ไข: โดยเฉพาะอย่างยิ่ง ฉันสนใจในสถานการณ์ที่ฝ่ายใดฝ่ายหนึ่งสามารถมุ่งร้ายได้ และเราจำเป็นต้องพิสูจน์ให้ฝ่ายที่สาม C เห็นว่าคำมั่นสัญญา $\พี่$ เป็นจริงของความลับทั่วไป $k$.

หาก A และ B มีภาระผูกพันร่วมกัน 2 ข้อแยกกัน ฝ่ายที่ประสงค์ร้ายก็สามารถแบ่งปันข้อผูกมัดที่แตกต่างกันโดยสิ้นเชิงได้ $k'$. C จะรู้ได้เองว่าข้อใดเป็นข้อผูกมัดกับข้อใด $k$.

poncho avatar
my flag
เห็นได้ชัดว่าหากทั้งคู่มีความลับ พวกเขาก็สามารถออกข้อผูกมัดกับมันทีละคนได้ ทำไมถึงไม่เพียงพอ? คุณต้องการอะไรอีก ตัวอย่างเช่น หลักฐานว่าพวกเขามุ่งมั่นในสิ่งเดียวกัน?
Ordinary avatar
sy flag
ฝ่ายใดฝ่ายหนึ่ง (พูดว่า A) ประสงค์ร้าย ถ้า B ให้คำมั่นสัญญากับ $k$ ตามความจริง และ A ให้คำมั่นสัญญากับ $k'$ อีกอันหนึ่ง (B ไม่รู้จัก) ไม่มีทางที่บุคคลที่สาม C จะตัดสินได้ว่าใครพูดจริง กล่าวคือ แบ่งปันคำมั่นสัญญาที่มีต่อ $k$ - ความลับทั่วไป มีวิธีใดที่จะรับประกันว่า C สามารถเชื่อมั่นได้ว่าข้อผูกพันนั้นเป็นความลับทั่วไป $k$?
Score:1
ธง my

วิธีแก้ปัญหาอื่นที่อาจง่ายกว่าคือ:

  • $A$ และ $B$ มารวมกันและร่วมกันเลือกค่าสุ่มขนาดใหญ่ที่มีขนาดคงที่ $r$และเผยแพร่ $\text{แฮช}( k || r )$

  • พวกเขาทั้งสองลงนาม (โดยใช้คีย์ลายเซ็นส่วนตัว) สตริง $\text{แฮช}( k || r )$; มีการเผยแพร่ลายเซ็นทั้งสองด้วย

ทั้งคู่สามารถเปิดข้อผูกมัดได้โดยการเผยแพร่ $k$ และ $r$; ทุกคนสามารถตรวจสอบได้ว่าแฮชตามคำมั่นสัญญา และใครก็ตามที่มี $A$ และ $B$กุญแจสาธารณะของสามารถตรวจสอบลายเซ็นได้

เห็นได้ชัดว่ามีข้อผูกมัดเพียงข้อเดียวที่สามารถเปิดได้ทางเดียว (สมมติว่า $\text{แฮช}$ มีความทนทานต่อการชนและ $r$ มีความยาวที่รู้จักกันดี เช่น.เป็น 256 บิตเสมอ) ไม่มีโอกาสที่ฝ่ายใดฝ่ายหนึ่งจะโกหก สิ่งเดียวที่ฉันคิดได้สำหรับนักแสดงที่มุ่งร้ายสามารถทำได้คือการอ้างว่า "เฮ้ มีคนขโมยกุญแจส่วนตัวของฉันไป ฉันไม่ได้ลงนามในข้อตกลงนั้น"

Score:0
ธง my

แนวทางหนึ่งคือการให้ทั้งสองฝ่ายสร้างและเผยแพร่ข้อผูกมัด และร่วมกันเผยแพร่โดยปราศจากความรู้ที่พิสูจน์ได้ว่าข้อผูกพันทั้งสองมีค่าเท่ากัน

นี่เป็นแนวทางหนึ่งในการทำเช่นนั้น: ทั้งสองอย่าง $A$ และ $B$ สร้างและเผยแพร่ความมุ่งมั่นของ Pedersen ตัวอย่างเช่น, $A$ เลือกค่าสุ่ม $r$ และเผยแพร่ $C_A = g^k h^r$, ในขณะที่ $B$ เลือกค่าสุ่ม $s$ และเผยแพร่ $C_B = g^k h^s$ (ซึ่งจะทำในกลุ่มที่บันทึกแยกยาก และไม่มีใครรู้บันทึกแยกของ $h$ ด้วยความเคารพ $g$).

การพิสูจน์ความรู้เป็นศูนย์ว่าพวกเขายึดมั่นในคุณค่าเดียวกันคือข้อพิสูจน์ว่าไม่มีความรู้ในคุณค่า $v$ ดังนั้น $C_A C_B^{-1} = h^v$ (ซึ่งสำหรับคำมั่นสัญญาที่ซื่อสัตย์คือ $v = r-s$); หากฝ่ายหนึ่งให้คุณค่ากับอีกสิ่งหนึ่ง ก็จะไม่มีใครรู้คุณค่านั้น $v$และด้วยเหตุนี้จึงไม่มีใคร (แม้แต่ $เอ, บี$ ร่วมกัน) จะสามารถเผยแพร่หลักฐานดังกล่าวได้ โปรดทราบว่า $C_A C_B^{-1}$ สามารถคำนวณได้โดยใครก็ตามที่สามารถเข้าถึงข้อผูกพันทั้งสองได้

ดูเหมือนว่าจะค่อนข้างง่ายสำหรับทั้งสองฝ่ายในการทำงานร่วมกันเพื่อสร้างหลักฐาน Schnorr ดังกล่าว:

  • $A$ เลือกค่าสุ่ม $a$ และส่ง $h^a$ ถึง $B$; $B$ เลือกค่าสุ่ม $ข$ และส่ง $h^b$ ถึง $A$.

  • พวกเขาทั้งสองคำนวณค่าส่วนกลาง $c = \text{แฮช}(h^a h^b)$

  • $A$ คำนวณ $x = a + c r$และจัดพิมพ์ $x, h^a$. $B$ คำนวณ $y = b - ค s$และจัดพิมพ์ $y, h^b$.

คู่ $h^อา^b, x+y$ จะเป็นหลักฐาน Schnorr ที่ถูกต้อง; ผู้ตรวจสอบจะตรวจสอบว่า $h^{x+y} = (h^ah^b) (C_A C_B^{-1})^{\text{Hash}(h^ah^b)}$

ตอนนี้:

  • ฉันเชื่อว่าการเข้าถึง 'ครึ่งพิสูจน์' $x, h^a$ และ $y, h^b$ ไม่ได้ให้ข้อมูลเชิงลึกเกี่ยวกับความมุ่งมั่นอย่างใดอย่างหนึ่ง

  • โปรโตคอลนี้ได้รับการปกป้องจากผู้ประสงค์ร้ายรายเดียว ถ้า (พูด) $A$ มีความซื่อสัตย์ ถ้าหลักฐานที่ไม่มีความรู้ตรวจสอบได้ แสดงว่า $B$ ต้องมีความมุ่งมั่นในคุณค่าเดียวกัน ที่จริงแล้ว แม้ว่าทั้งสองฝ่ายจะมุ่งร้าย พวกเขายังไม่สามารถยอมรับแต่ละค่าที่ต่างกันได้

โพสต์คำตอบ

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