กลับไปหน้าบทความ

อ่าน 2 นาที

การแบ่งปันความลับแบบโฮโมมอร์ฟิก

ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก...

การแบ่งปันความลับแบบโฮโมมอร์ฟิก

ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก โฮโมมอร์ฟิซึมคือการแปลงจากโครงสร้างพีชคณิต หนึ่ง ไปเป็นอีกโครงสร้างหนึ่งที่มีประเภทเดียวกันโดยที่โครงสร้างยังคงอยู่ ที่สำคัญคือ หมายความว่าสำหรับการจัดการข้อมูลต้นฉบับทุกประเภท จะมีการจัดการข้อมูลที่แปลงแล้วที่สอดคล้องกัน[ 1 ]

เทคนิค

การแบ่งปันความลับแบบโฮโมมอร์ฟิก (Homomorphic secret sharing) ใช้ในการส่งต่อความลับไปยังผู้รับหลายรายดังนี้:

  1. แปลง "ความลับ" โดยใช้โฮโมมอร์ฟิซึม ซึ่งมักจะทำให้ความลับอยู่ในรูปแบบที่ง่ายต่อการจัดการหรือจัดเก็บ โดยเฉพาะอย่างยิ่ง อาจมีวิธีที่เป็นธรรมชาติในการ 'แยก' รูปแบบใหม่ตามที่ต้องการในขั้นตอน (2)
  2. แบ่งความลับที่แปลงแล้วออกเป็นหลายส่วน ส่วนละหนึ่งส่วนสำหรับผู้รับแต่ละคน ความลับจะต้องถูกแบ่งในลักษณะที่ว่าจะสามารถกู้คืนได้ก็ต่อเมื่อนำส่วนทั้งหมดหรือส่วนใหญ่มารวมกันเท่านั้น (ดูการแบ่งปันความลับ )
  3. แบ่งส่วนความลับนั้นให้แก่ผู้รับแต่ละคน
  4. นำส่วนต่างๆ ของผู้รับแต่ละคนมารวมกันเพื่อกู้คืนความลับที่ถูกเปลี่ยนแปลงไป อาจจะในเวลาที่กำหนดไว้
  5. กลับด้านโฮโมมอร์ฟิซึมเพื่อกู้คืนความลับดั้งเดิม

ตัวอย่าง

สมมติว่าชุมชนแห่งหนึ่งต้องการจัดการเลือกตั้งโดยใช้โปรโตคอลการลงคะแนนแบบกระจายอำนาจ แต่ต้องการให้แน่ใจว่าผู้ตรวจนับคะแนนจะไม่โกหกเกี่ยวกับผลการเลือกตั้ง โดยใช้เทคนิคการแบ่งปันความลับแบบโฮโมมอร์ฟิกที่เรียกว่า การแบ่งปันความลับของชามีร์ (Shamir's secret sharing ) สมาชิกแต่ละคนในชุมชนสามารถเพิ่มคะแนนเสียงของตนลงในแบบฟอร์มที่ถูกแบ่งออกเป็นชิ้น ๆ จากนั้นแต่ละชิ้นจะถูกส่งไปยังผู้ตรวจนับคะแนนที่แตกต่างกัน ชิ้นส่วนเหล่านี้ถูกออกแบบมาเพื่อให้ผู้ตรวจนับคะแนนไม่สามารถคาดเดาได้ว่าการเปลี่ยนแปลงใด ๆ ในแต่ละชิ้นจะส่งผลกระทบต่อทั้งหมดอย่างไร ดังนั้นจึงเป็นการยับยั้งไม่ให้ผู้ตรวจนับคะแนนทำการแก้ไขชิ้นส่วนของตน เมื่อได้รับคะแนนเสียงทั้งหมดแล้ว ผู้ตรวจนับคะแนนจะรวมคะแนนเหล่านั้นเข้าด้วยกัน ทำให้พวกเขาสามารถกู้คืนผลการเลือกตั้งโดยรวมได้

โดยละเอียด สมมติว่าเรามีการเลือกตั้งที่มีเงื่อนไขดังนี้:

  • มีผลลัพธ์ที่เป็นไปได้สองอย่าง คือใช่หรือไม่เราจะแทนผลลัพธ์เหล่านั้นด้วยตัวเลข +1 และ −1 ตามลำดับ
  • เจ้าหน้าที่จำนวนหนึ่ง ( k ) ที่จะทำหน้าที่นับคะแนนเสียง
  • จำนวนผู้มีสิทธิเลือกตั้งnที่จะลงคะแนนเสียง
  1. ก่อนเริ่มดำเนินการ หน่วยงานแต่ละแห่งจะสร้างรหัสตัวเลขที่เปิดเผยต่อสาธารณะx kขึ้น มา
  2. ผู้มีสิทธิเลือกตั้งแต่ละคนจะเข้ารหัสการลงคะแนนของตนในพหุนามp nตามกฎต่อไปนี้: พหุนามควรมีดีกรีk − 1พจน์คงที่ควรเป็น +1 หรือ −1 (ซึ่งสอดคล้องกับการลงคะแนน "เห็นด้วย" หรือลงคะแนน "ไม่เห็นด้วย") และสัมประสิทธิ์อื่นๆ ควรถูกสร้างขึ้นแบบสุ่ม
  3. ผู้ ลง คะแนนแต่ละคนจะคำนวณค่าของพหุนามp n ของตนเอง ที่คีย์สาธารณะx k ของแต่ละหน่วยงาน
    • วิธีนี้จะสร้างคะแนนk คะแนน โดยแต่ละคะแนนจะแทนหน่วยงานที่เกี่ยวข้อง
    • จุด kเหล่านี้คือ "ส่วนประกอบ" ของการลงคะแนน: หากคุณทราบจุดทั้งหมด คุณสามารถหาพหุนามp n ได้ (และด้วยเหตุนี้คุณจึงสามารถหาได้ว่าผู้ลงคะแนนลงคะแนนอย่างไร) อย่างไรก็ตาม หากคุณทราบเพียงบางจุด คุณจะไม่สามารถหาพหุนามได้ (เนื่องจากคุณต้องใช้ จุด nจุดเพื่อกำหนดพหุนามดีกรี( n − 1)จุดสองจุดกำหนดเส้นตรง จุดสามจุดกำหนดพาราโบลา เป็นต้น)
  4. ผู้ลงคะแนนจะส่งค่าที่ได้จากการใช้กุญแจของหน่วยงานแต่ละแห่งไปยังหน่วยงานนั้นๆ
  5. แต่ละหน่วยงานจะรวบรวมค่าที่ตนได้รับ เนื่องจากแต่ละหน่วยงานได้รับค่าเพียงค่าเดียวจากผู้ลงคะแนนแต่ละคน จึงไม่สามารถค้นหาพหุนามของผู้ลงคะแนนคนใดคนหนึ่งได้ นอกจากนี้ ยังไม่สามารถคาดการณ์ได้ว่าการเปลี่ยนแปลงข้อมูลที่ส่งเข้ามาจะมีผลต่อผลการลงคะแนนอย่างไร
  6. เมื่อผู้มีสิทธิเลือกตั้งส่งคะแนนเสียงแล้ว หน่วยงานแต่ละแห่งkจะคำนวณและประกาศผลรวมA kของค่าทั้งหมดที่ตนได้รับ
  7. มีผลรวมk ชุด A kเมื่อนำมารวมกัน จะได้พหุนามP ( x ) ที่ไม่ซ้ำกัน ซึ่งก็คือผลรวมของพหุนามผู้ลงคะแนนทั้งหมด: P ( x ) = p 1 ( x ) + p 2 ( x ) + ... + p n ( x )
    • ค่าคงที่ของP ( x ) นั้นแท้จริงแล้วคือผลรวมของคะแนนเสียงทั้งหมด เนื่องจากค่าคงที่ของP ( x ) คือผลรวมของค่าคงที่ของแต่ละp n
    • ดังนั้น ค่าคงที่ของP ( x ) จึงให้ผลการเลือกตั้งโดยรวม: ถ้าเป็นค่าบวก แสดงว่ามีคนลงคะแนนให้ +1 มากกว่าลงคะแนนให้ −1; ถ้าเป็นค่าลบ แสดงว่ามีคนลงคะแนนให้ −1 มากกว่าลงคะแนนให้ +1
ตารางแสดงขั้นตอนการลงคะแนน
ภาพประกอบแสดงขั้นตอนการลงคะแนนเสียง แต่ละคอลัมน์แสดงถึงคะแนนเสียงของแต่ละผู้ลงคะแนน และแต่ละแถวแสดงถึงคะแนนเสียงที่หน่วยงานที่เกี่ยวข้องได้รับ

คุณสมบัติ

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

โปรโตคอลนี้ต้องการ ผู้มีอำนาจ t + 1รายที่ต้องดำเนินการให้เสร็จสมบูรณ์ ดังนั้นในกรณีที่มีผู้มีอำนาจN > t + 1 ราย ผู้มีอำนาจ Nt − 1รายสามารถถูกแทรกแซงได้ ซึ่งทำให้โปรโตคอลมีความทนทานในระดับหนึ่ง

โปรโตคอลนี้จัดการข้อมูลประจำตัวของผู้มีสิทธิเลือกตั้ง (ข้อมูลประจำตัวเหล่านี้ถูกส่งมาพร้อมกับบัตรเลือกตั้ง) และสามารถตรวจสอบได้ว่ามีเพียงผู้มีสิทธิเลือกตั้งที่ถูกต้องเท่านั้นที่ได้ลงคะแนนเสียง

ภายใต้สมมติฐานเกี่ยวกับt :

  1. ไม่สามารถตรวจสอบย้อนกลับบัตรลงคะแนนไปยังบัตรประจำตัวประชาชนได้ ดังนั้นจึงรักษาความเป็นส่วนตัวของผู้มีสิทธิเลือกตั้งไว้ได้
  2. ผู้มีสิทธิเลือกตั้งไม่สามารถพิสูจน์ได้ว่าตนเองลงคะแนนอย่างไร
  3. การตรวจสอบความถูกต้องของการลงคะแนนเป็นไปไม่ได้

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

ช่องโหว่

  • ผู้มีสิทธิเลือกตั้งไม่สามารถมั่นใจได้ว่าคะแนนเสียงของตนได้รับการบันทึกอย่างถูกต้อง
  • เจ้าหน้าที่ไม่สามารถมั่นใจได้ว่าการลงคะแนนนั้นถูกต้องตามกฎหมายและเท่าเทียมกัน ตัวอย่างเช่น ผู้ลงคะแนนอาจเลือกค่าที่ไม่ใช่ตัวเลือกที่ถูกต้อง (เช่น ไม่อยู่ใน {−1, 1}) เช่น −20, 50 ซึ่งจะทำให้ผลการเลือกตั้งเอื้อประโยชน์ต่อตนเอง

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Homomorphic_secret_sharing&oldid=1163912573 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การแบ่งปันความลับแบบโฮโมมอร์ฟิก

ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก...

เทคนิค

การแบ่งปันความลับแบบโฮโมมอร์ฟิก (Homomorphic secret sharing) ใช้ในการส่งต่อความลับไปยังผู้รับหลายรายดังนี้:

ตัวอย่าง

สมมติว่าชุมชนแห่งหนึ่งต้องการจัดการเลือกตั้งโดยใช้โปรโตคอลการลงคะแนนแบบกระจายอำนาจ แต่ต้องการให้แน่ใจว่าผู้ตรวจนับคะแนนจะไม่โกหกเกี่ยวกับผลการเลือกตั้ง โดยใช้เทคนิคการแบ่งปันความลับแบบโฮโมมอร์ฟิกที่เรียกว่า การแบ่งปันความลับของ ชามีร์ (Shamir's secret sharing...

คุณสมบัติ

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