Score:3

พิสูจน์ว่า $x$ เป็นผลรวมของตัวเลขที่เซ็นชื่อแบบดิจิทัลโดยไม่เปิดเผยผลบวก

ธง pg

ลองนึกภาพสิ่งนี้:

  • ชาลีเลือกจำนวนเต็มสองตัว $x_1$ และ $x_2$ และลงนามแต่ละจำนวนเต็มด้วยคีย์ส่วนตัวเดียวกัน
  • ชาร์ลีส่งสิ่งต่อไปนี้ให้อลิซ:
    • $x_1$ และ $x_2$,
    • ทั้งสองลายเซ็นและ
    • รหัสสาธารณะของเขา
  • อลิซคำนวณ $x = x_1 + x_2$ และส่งสิ่งต่อไปนี้ให้ Bob:
    • $x$ และ
    • กุญแจสาธารณะของชาร์ลี

อลิซสามารถพิสูจน์ให้บ็อบ (โดยไม่เกี่ยวข้องกับชาร์ลี) ได้หรือไม่ $x$ คือผลรวมของตัวเลขสองตัวที่ชาลีลงลายมือชื่อโดยไม่เปิดเผย $x_1$ และ $x_2$ ถึงบ๊อบ?

ตัวอย่างในโลกแห่งความเป็นจริงอาจเป็น: ฉันสามารถพิสูจน์ด้วยการเข้ารหัสว่าบัตรเครดิตสองใบของฉันรวมกันสามารถครอบคลุมค่าใช้จ่ายโดยไม่ต้องเปิดเผยข้อมูลเกี่ยวกับบัตรเครดิตแต่ละใบได้หรือไม่

ฉันรู้น้อยมากเกี่ยวกับการเข้ารหัสและไม่รู้ว่าจะหาทางออกได้ที่ไหนฉันคิดว่าสิ่งนี้อาจไปในทิศทางของการคำนวณที่รักษาความเป็นส่วนตัวและการพิสูจน์ที่ไม่มีความรู้ ยินดีต้อนรับคำแนะนำใด ๆ !

Score:4
ธง my

ดังที่มาร์กกล่าวไว้ ในทางทฤษฎีแล้ว มันเป็นปัญหาที่แก้ไขได้ (เรารู้วิธีการแก้ปัญหา วิธีการที่ทราบนั้นไม่ง่าย)

อย่างไรก็ตาม ด้วยการปรับแต่งเล็กน้อย เราสามารถทำให้ปัญหานี้ง่ายขึ้น

วิธีการแก้ปัญหาของฉันขึ้นอยู่กับความมุ่งมั่นของ Pedersen; สิ่งเหล่านี้ขึ้นอยู่กับกลุ่มขนาดเฉพาะขนาดใหญ่ (ซึ่งปัญหาการบันทึกแบบแยกส่วนนั้นยาก) และสมาชิกกลุ่มสองคน $g$ และ $h$ (ซึ่งไม่ทราบความสัมพันธ์ โดยเฉพาะไม่มีใครทราบวิธีแก้ปัญหา $x$ ถึง $g^x = h$).

ความมุ่งมั่นของ Pedersen ต่อคุณค่า $x$ คือค่า $g^xh^r$สำหรับการสุ่ม $r$; คุณสมบัติ; เราสามารถออกข้อผูกมัดได้ (โดยการเผยแพร่ค่า $g^xh^r$) จากนั้นจึงเปิดข้อผูกมัด (โดยการเผยแพร่ค่าต่างๆ $x, r$; ทุกคนสามารถตรวจสอบได้ว่าค่าเหล่านั้นให้คำมั่นสัญญา

  • มีคนมอง $g^xh^r$ ไม่สามารถกำหนดอะไรได้ $x$ คือ (อันที่จริง สำหรับค่าใดๆ ที่เป็นไปได้ของ $x$มีค่า $r$ ที่จะให้ค่าความมุ่งมั่นนั้น)

  • ผู้ออกไม่สามารถเปิดข้อผูกพันได้สองทาง นั่นคือถ้าเขาให้คำมั่นสัญญา $g^xh^r$เขาไม่สามารถหาค่าได้ $r'$ ดังนั้น $g^{x'} h^{r'}$ ประเมินเป็นค่าเดียวกัน

ด้วยพื้นฐานดังกล่าว เขาคือข้อเสนอของฉัน:

Charlie ส่งค่าต่อไปนี้ให้อลิซ:

  • $x_1$ และ $x_2$

  • ความมุ่งมั่นที่ลงนามในค่านิยมเหล่านั้น นั่นคือ สำเนาที่ลงนามแล้วของ $g^{x_1} ชั่วโมง^{r_1}$ และ $g^{x_2}h^{r_2}$

  • ค่าสุ่ม $r_1$ และ $r_2$ (เพราะเขาได้ให้ค่าตามที่เขากำหนดไว้แล้ว การให้ค่าแบบสุ่มเหล่านี้จึงไม่เป็นอันตราย)

  • รหัสสาธารณะของเขา

จากนั้นอลิซก็คำนวณ $x = x_1 + x_2$และสร้างการพิสูจน์ที่ไม่มีความรู้ว่าผลรวมของค่าสองค่าที่กระทำโดย $g^{x_1} ชั่วโมง^{r_1}$ และ $g^{x_2}h^{r_2}$ เป็น $x$. สิ่งนี้สามารถทำได้โดยสร้างหลักฐานความรู้ว่าอลิซรู้คุณค่า $s$ ดังนั้น $h^s = g^{x_1} h^{r_1} \cdot g^{x_2}h^{r_2} \cdot g^{-x}$; อลิซสามารถสร้างหลักฐานดังกล่าวได้ก็ต่อเมื่อ $x_1 + x_2 = x$

อลิสก็ส่งต่อให้บ๊อบค่า $x$สัญญาผูกมัดสองรายการที่ลงนาม คีย์สาธารณะ (เพื่อให้ Bob สามารถตรวจสอบลายเซ็นได้) และหลักฐานที่ไม่มีความรู้ (ซึ่ง Bob สามารถตรวจสอบได้เช่นกัน)

สิ่งนี้ดูเหมือนจะมุ่งสู่เป้าหมายสุดท้าย (และค่อนข้างเรียบง่าย มีรายละเอียดบางอย่างที่ฉันแค่โบกมือให้อย่างคลุมเครือ อย่างไรก็ตาม การวิจัยเล็กน้อยจะทำให้สิ่งเหล่านี้ดีขึ้น)

Elias Strehle avatar
pg flag
ขอบคุณ นี่อาจเป็นสิ่งที่ฉันกำลังมองหา! วิธีการนี้สามารถนำไปใช้กับ $x_1 * x_2$ ได้หรือไม่ และเป็นไปได้ไหมที่จะขยายสิ่งนี้ไปยังทูเพิลที่มีเครื่องหมาย $(c, x_1), (c, x_2)$ และพิสูจน์ว่าไม่เพียง $x = x_1 + x_2$ เท่านั้น แต่ยังพิสูจน์ด้วยว่าค่าคงที่ $c$ เหมือนกันโดยไม่เปิดเผย $c$ ? ... สำหรับส่วนขยายอย่างหลัง การตีความในโลกแห่งความเป็นจริงคือฉันสามารถใช้บัตรเครดิตที่ออกให้ในชื่อของฉันเองเท่านั้น (= c)
poncho avatar
my flag
@EliasStrehle: สิ่งอันดับที่มีลายเซ็นจะง่าย สร้างข้อผูกพันสำหรับ $c$ และ $x_1$ แยกกัน (และลงนามในข้อผูกพันทั้งสองเป็นข้อความเดียว); เหมือนกันสำหรับ $c$ และ $x_2$ จากนั้น สร้างหลักฐานว่าทั้ง $x = x_1 + x_2$ และ $c$ ทั้งสองมีค่าเท่ากัน สำหรับผลิตภัณฑ์นั้นเป็นเรื่องที่ยุ่งยากกว่า ไม่เพียงแต่ไม่ใช่วิธีที่ง่ายในความคิดในทันที แต่คุณยังพบปัญหาที่ว่า (ถ้าคุณกำลังคูณด้วย $\mathbb{Z}$) คุณสามารถแยกตัวประกอบของผลคูณ $x_1 \times x_2$ เพื่อให้ได้ผลลัพธ์ ด้วยความเป็นไปได้เพียงไม่กี่อย่างสำหรับ $x_1, x_2$ (และหากว่าผลิตภัณฑ์นั้นมีขนาดค่อนข้างใหญ่ มันก็ง่าย)
Elias Strehle avatar
pg flag
จริงๆ แล้ว มันจะเป็นการคูณ $\mathbb{R}$ ...ดังนั้นฉันคิดว่านั่นช่วยแก้ปัญหาหนึ่งได้ในราคาที่ใหญ่กว่า ;-) แต่ขอบคุณมากสำหรับความคิดเห็นของคุณ! มันน่าทึ่งมากที่เราสามารถทำได้ด้วยการเข้ารหัส
Elias Strehle avatar
pg flag
การแปลงบันทึกจะทำงานสำหรับการคูณหรือไม่ นั่นคือ Charlie ตกลงที่จะ $\log x_1$ และ $\log x_2$ และ Alice ส่ง $x = x_1 * x_2$ ให้ Bob และพิสูจน์ว่า $\log x = \log(x_1 * x_2) = \log x_1 + \log x_2$ ไม่แน่ใจว่าใช้งานได้จริงหรือไม่ กำลังคิดที่จะปัดเศษข้อผิดพลาด...
poncho avatar
my flag
@EliasStrehle: ฟังดูใช้งานได้ (เนื่องจาก $\log$ กำลังคำนวณนอก crypto) แน่นอน คุณต้องใส่สเกลแฟกเตอร์ อย่างไรก็ตามเนื่องจากขนาดของกลุ่ม (และด้วยเหตุนี้ขนาดของค่าที่เราสามารถยอมรับได้) มีขนาดค่อนข้างใหญ่ (อย่างน้อย 256 บิต อาจใหญ่กว่านั้น) จึงมี *พื้นที่มากมาย* ให้ทำเช่นนั้น...
Score:1
ธง ng

คุณกำลังมองหาแนวคิดของ ลายเซ็นเพิ่มเติมแบบโฮโมมอร์ฟิค. โดยทั่วไป โฮโมมอร์ฟิซึ่มเป็นฟังก์ชันที่ "เคารพการดำเนินการ" ความหมาย:

$$f : A\ถึง B,\qquad f(a_0+a_1) = f(a_0)\oplus f(a_1)$$

ที่นี่ฉันใช้ $+, \oบวก$ เพื่อเขียน "การดำเนินการเพิ่มเติม" สองรายการ (อาจแตกต่างกัน) ดังนั้นโฮโมมอร์ฟิซึ่มแบบเติมจึงทำงานได้ดีเมื่อเทียบกับการคูณ ในทำนองเดียวกัน

$$f : A\to B,\qquad f(a_0\times a_1) = f(a_0) \otimes f(a_1)$$

จะเป็นโฮโมมอร์ฟิซึ่มแบบทวีคูณ (แม้ว่านี่จะไม่สำคัญที่นี่)

ในภาษานี้ สิ่งที่คุณต้องมีคือลายเซ็นโฮโมมอร์ฟิคแบบเติมแต่ง มีอยู่มากมาย ดูตัวอย่าง กระดาษแผ่นนี้. น่าเสียดายที่ฉันไม่รู้ว่ามีสิ่งใดที่ง่ายเป็นพิเศษ (นี่ค่อนข้างแตกต่างจากการเข้ารหัสแบบโฮโมมอร์ฟิคเพิ่มเติม --- มีโครงร่างง่ายๆ จำนวนหนึ่ง) แต่สิ่งที่คุณต้องการคือแนวคิดที่เป็นที่รู้จักกันดีในทางทฤษฎีเป็นอย่างน้อย

โพสต์คำตอบ

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