ดูแล้ว การแบ่งปันความลับของ Shamir?
สำหรับกรณีของคุณดูเหมือนว่าทั้งหมด $K$ ผู้เล่นจะต้องสร้างใหม่ $y$.
อันนี้ผมว่าจริงเพราะถ้าเล่นคนเดียว $เจ$ ตัดสินใจที่จะไม่แบ่งปันคุณค่าของพวกเขา $a_jx_j$จากนั้นผู้เล่นจะเพิ่มมูลค่าและรับ:
$$ \sum_{i\neq j,i=1}^K a_ix_i = y - a_jx_j$$
เนื่องจาก $a_jx_j$ เป็น (หวังว่าจะ) สุ่มอย่างสม่ำเสมอ สิ่งนี้ทำให้พวกเขาไม่มีข้อมูลเกี่ยวกับ $y$.
ดูเหมือนว่าคุณได้รวมโปรแกรมเล่น $i$ใครจะรู้ค่า $y$ โดยตรงในชุดผู้เล่น จากที่กล่าวมา หมายความว่าผู้เล่นทุกคนต้องร่วมมือกัน รวมถึงผู้เล่นด้วย $i$, การกู้คืน $y$. แต่ถ้าผู้เล่นทุกคนตัดสินใจที่จะร่วมมือ พวกเขาไม่ต้องการแบ่งปันความลับใด ๆ เนื่องจากผู้เล่น $i$ มีค่าความลับ แทนที่จะใช้แผนการแบ่งปันความลับ ผู้เล่น $i$ ไม่สามารถส่งอะไรได้ในตอนแรกและเมื่อพวกเขาตกลงที่จะกู้คืนค่าลับ $y$จากนั้นผู้เล่น $i$ แค่ส่งให้ทุกคนก็ได้ค่า $y$.
การแบ่งปันความลับของ Shamir สามารถให้คุณได้ $t$-ออกจาก-$K$ แบบแผนเพื่อให้ผู้เล่นนั้น $i$ สามารถคำนวณค่า $x_i$ เพื่อมอบให้กับผู้เล่นทุกๆ คนนั่นเอง ซึ่งอย่างน้อยๆ $t$ ผู้เล่นร่วมมือกัน ผู้เล่นเหล่านั้นสามารถคำนวณค่าสำหรับ $a_i$ เพื่อให้ผลรวมของ $a_ix_i$ สำหรับผู้เล่นที่ร่วมมือทั้งหมดจะเท่ากัน $y$.
Shamir แบ่งปันความลับกับ $t=K$ ดูคล้ายกับสิ่งที่คุณอธิบายมาก ความแตกต่างเพียงอย่างเดียวคือไม่มี $a_i$ และ $x_i$ ได้รับอนุญาตให้เป็น $0$. สำหรับรูปแบบนี้ คุณจะเลือกแบบสุ่มอย่างสม่ำเสมอ $x_i$ เพื่อทุกคน $i$ ยกเว้น $i=K$. จากนั้นตั้งค่า
$$ x_K = y - \sum_{i=1}^{K-1}x_i$$
แล้วชุดของ $K-1$ ค่าลับเป็นค่าสุ่มที่สม่ำเสมอและไม่ขึ้นกับค่าใดค่าหนึ่ง $y$ซึ่งโดยพื้นฐานแล้วเป็นการรับประกันความปลอดภัยที่ดีที่สุดที่คุณสามารถคาดหวังได้
จากค่าเหล่านี้ของ $x_i$หากคุณต้องการให้โครงร่างคล้ายกับข้อเสนอเดิมของคุณ คุณสามารถเลือกการสุ่มที่ไม่ใช่ศูนย์ $x_i'$และตั้งค่า $a_i = x_i'^{-1}x_i$. ในความเป็นจริง ผู้เล่นแต่ละคนสามารถทำสิ่งนี้ได้เอง ดังนั้นจึงไม่เปลี่ยนแปลงความปลอดภัย แต่ฉันไม่เห็นว่ามันให้ฟังก์ชันอะไรแก่คุณ