อ่าน 2 นาที
การแบ่งปันความลับแบบโฮโมมอร์ฟิก
ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก...
การแบ่งปันความลับแบบโฮโมมอร์ฟิก
ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก โฮโมมอร์ฟิซึมคือการแปลงจากโครงสร้างพีชคณิต หนึ่ง ไปเป็นอีกโครงสร้างหนึ่งที่มีประเภทเดียวกันโดยที่โครงสร้างยังคงอยู่ ที่สำคัญคือ หมายความว่าสำหรับการจัดการข้อมูลต้นฉบับทุกประเภท จะมีการจัดการข้อมูลที่แปลงแล้วที่สอดคล้องกัน[ 1 ]
เทคนิค
การแบ่งปันความลับแบบโฮโมมอร์ฟิก (Homomorphic secret sharing) ใช้ในการส่งต่อความลับไปยังผู้รับหลายรายดังนี้:
- แปลง "ความลับ" โดยใช้โฮโมมอร์ฟิซึม ซึ่งมักจะทำให้ความลับอยู่ในรูปแบบที่ง่ายต่อการจัดการหรือจัดเก็บ โดยเฉพาะอย่างยิ่ง อาจมีวิธีที่เป็นธรรมชาติในการ 'แยก' รูปแบบใหม่ตามที่ต้องการในขั้นตอน (2)
- แบ่งความลับที่แปลงแล้วออกเป็นหลายส่วน ส่วนละหนึ่งส่วนสำหรับผู้รับแต่ละคน ความลับจะต้องถูกแบ่งในลักษณะที่ว่าจะสามารถกู้คืนได้ก็ต่อเมื่อนำส่วนทั้งหมดหรือส่วนใหญ่มารวมกันเท่านั้น (ดูการแบ่งปันความลับ )
- แบ่งส่วนความลับนั้นให้แก่ผู้รับแต่ละคน
- นำส่วนต่างๆ ของผู้รับแต่ละคนมารวมกันเพื่อกู้คืนความลับที่ถูกเปลี่ยนแปลงไป อาจจะในเวลาที่กำหนดไว้
- กลับด้านโฮโมมอร์ฟิซึมเพื่อกู้คืนความลับดั้งเดิม
ตัวอย่าง
สมมติว่าชุมชนแห่งหนึ่งต้องการจัดการเลือกตั้งโดยใช้โปรโตคอลการลงคะแนนแบบกระจายอำนาจ แต่ต้องการให้แน่ใจว่าผู้ตรวจนับคะแนนจะไม่โกหกเกี่ยวกับผลการเลือกตั้ง โดยใช้เทคนิคการแบ่งปันความลับแบบโฮโมมอร์ฟิกที่เรียกว่า การแบ่งปันความลับของชามีร์ (Shamir's secret sharing ) สมาชิกแต่ละคนในชุมชนสามารถเพิ่มคะแนนเสียงของตนลงในแบบฟอร์มที่ถูกแบ่งออกเป็นชิ้น ๆ จากนั้นแต่ละชิ้นจะถูกส่งไปยังผู้ตรวจนับคะแนนที่แตกต่างกัน ชิ้นส่วนเหล่านี้ถูกออกแบบมาเพื่อให้ผู้ตรวจนับคะแนนไม่สามารถคาดเดาได้ว่าการเปลี่ยนแปลงใด ๆ ในแต่ละชิ้นจะส่งผลกระทบต่อทั้งหมดอย่างไร ดังนั้นจึงเป็นการยับยั้งไม่ให้ผู้ตรวจนับคะแนนทำการแก้ไขชิ้นส่วนของตน เมื่อได้รับคะแนนเสียงทั้งหมดแล้ว ผู้ตรวจนับคะแนนจะรวมคะแนนเหล่านั้นเข้าด้วยกัน ทำให้พวกเขาสามารถกู้คืนผลการเลือกตั้งโดยรวมได้
โดยละเอียด สมมติว่าเรามีการเลือกตั้งที่มีเงื่อนไขดังนี้:
- มีผลลัพธ์ที่เป็นไปได้สองอย่าง คือใช่หรือไม่เราจะแทนผลลัพธ์เหล่านั้นด้วยตัวเลข +1 และ −1 ตามลำดับ
- เจ้าหน้าที่จำนวนหนึ่ง ( k ) ที่จะทำหน้าที่นับคะแนนเสียง
- จำนวนผู้มีสิทธิเลือกตั้งnที่จะลงคะแนนเสียง
- ก่อนเริ่มดำเนินการ หน่วยงานแต่ละแห่งจะสร้างรหัสตัวเลขที่เปิดเผยต่อสาธารณะx kขึ้น มา
- ผู้มีสิทธิเลือกตั้งแต่ละคนจะเข้ารหัสการลงคะแนนของตนในพหุนามp nตามกฎต่อไปนี้: พหุนามควรมีดีกรีk − 1พจน์คงที่ควรเป็น +1 หรือ −1 (ซึ่งสอดคล้องกับการลงคะแนน "เห็นด้วย" หรือลงคะแนน "ไม่เห็นด้วย") และสัมประสิทธิ์อื่นๆ ควรถูกสร้างขึ้นแบบสุ่ม
- ผู้ ลง คะแนนแต่ละคนจะคำนวณค่าของพหุนามp n ของตนเอง ที่คีย์สาธารณะx k ของแต่ละหน่วยงาน
- วิธีนี้จะสร้างคะแนนk คะแนน โดยแต่ละคะแนนจะแทนหน่วยงานที่เกี่ยวข้อง
- จุด kเหล่านี้คือ "ส่วนประกอบ" ของการลงคะแนน: หากคุณทราบจุดทั้งหมด คุณสามารถหาพหุนามp n ได้ (และด้วยเหตุนี้คุณจึงสามารถหาได้ว่าผู้ลงคะแนนลงคะแนนอย่างไร) อย่างไรก็ตาม หากคุณทราบเพียงบางจุด คุณจะไม่สามารถหาพหุนามได้ (เนื่องจากคุณต้องใช้ จุด nจุดเพื่อกำหนดพหุนามดีกรี( n − 1)จุดสองจุดกำหนดเส้นตรง จุดสามจุดกำหนดพาราโบลา เป็นต้น)
- ผู้ลงคะแนนจะส่งค่าที่ได้จากการใช้กุญแจของหน่วยงานแต่ละแห่งไปยังหน่วยงานนั้นๆ
- แต่ละหน่วยงานจะรวบรวมค่าที่ตนได้รับ เนื่องจากแต่ละหน่วยงานได้รับค่าเพียงค่าเดียวจากผู้ลงคะแนนแต่ละคน จึงไม่สามารถค้นหาพหุนามของผู้ลงคะแนนคนใดคนหนึ่งได้ นอกจากนี้ ยังไม่สามารถคาดการณ์ได้ว่าการเปลี่ยนแปลงข้อมูลที่ส่งเข้ามาจะมีผลต่อผลการลงคะแนนอย่างไร
- เมื่อผู้มีสิทธิเลือกตั้งส่งคะแนนเสียงแล้ว หน่วยงานแต่ละแห่งkจะคำนวณและประกาศผลรวมA kของค่าทั้งหมดที่ตนได้รับ
- มีผลรวม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 ราย ผู้มีอำนาจ N − t − 1รายสามารถถูกแทรกแซงได้ ซึ่งทำให้โปรโตคอลมีความทนทานในระดับหนึ่ง
โปรโตคอลนี้จัดการข้อมูลประจำตัวของผู้มีสิทธิเลือกตั้ง (ข้อมูลประจำตัวเหล่านี้ถูกส่งมาพร้อมกับบัตรเลือกตั้ง) และสามารถตรวจสอบได้ว่ามีเพียงผู้มีสิทธิเลือกตั้งที่ถูกต้องเท่านั้นที่ได้ลงคะแนนเสียง
ภายใต้สมมติฐานเกี่ยวกับt :
- ไม่สามารถตรวจสอบย้อนกลับบัตรลงคะแนนไปยังบัตรประจำตัวประชาชนได้ ดังนั้นจึงรักษาความเป็นส่วนตัวของผู้มีสิทธิเลือกตั้งไว้ได้
- ผู้มีสิทธิเลือกตั้งไม่สามารถพิสูจน์ได้ว่าตนเองลงคะแนนอย่างไร
- การตรวจสอบความถูกต้องของการลงคะแนนเป็นไปไม่ได้
โดยปริยายแล้ว โปรโตคอลนี้ป้องกันการทุจริตในการนับคะแนน เนื่องจากหน่วยงานที่เกี่ยวข้องไม่มีแรงจูงใจที่จะเปลี่ยนแปลงบัตรลงคะแนน เพราะแต่ละหน่วยงานมีเพียงส่วนแบ่งในบัตรลงคะแนนและไม่ทราบว่าการเปลี่ยนแปลงส่วนแบ่งนี้จะส่งผลต่อผลลัพธ์อย่างไร
ช่องโหว่
- ผู้มีสิทธิเลือกตั้งไม่สามารถมั่นใจได้ว่าคะแนนเสียงของตนได้รับการบันทึกอย่างถูกต้อง
- เจ้าหน้าที่ไม่สามารถมั่นใจได้ว่าการลงคะแนนนั้นถูกต้องตามกฎหมายและเท่าเทียมกัน ตัวอย่างเช่น ผู้ลงคะแนนอาจเลือกค่าที่ไม่ใช่ตัวเลือกที่ถูกต้อง (เช่น ไม่อยู่ใน {−1, 1}) เช่น −20, 50 ซึ่งจะทำให้ผลการเลือกตั้งเอื้อประโยชน์ต่อตนเอง
ดูเพิ่มเติม
- ระบบการลงคะแนนที่ตรวจสอบได้ตั้งแต่ต้นจนจบ
- การลงคะแนนเสียงทางอิเล็กทรอนิกส์
- การรับรองเครื่องลงคะแนนเสียง
- เทคนิคการทุจริตการเลือกตั้งที่อาจเกิดขึ้นได้โดยการดัดแปลงเครื่องลงคะแนนเสียง
- การป้องกันการทุจริตการเลือกตั้ง: การทดสอบและการรับรองระบบการลงคะแนนเสียงอิเล็กทรอนิกส์
- ระบบนับคะแนนเสียง
- ประชาธิปไตยอิเล็กทรอนิกส์
- การคำนวณแบบหลายฝ่ายที่ปลอดภัย
- โป๊กเกอร์ทางจิต
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การแบ่งปันความลับแบบโฮโมมอร์ฟิก
ในการเข้ารหัสลับการแบ่งปันความลับแบบโฮโมมอร์ฟิกเป็นประเภทของอัลกอริธึมการแบ่งปัน ความลับซึ่งความลับจะถูกเข้ารหัสผ่านการเข้ารหัสแบบโฮโมมอร์ฟิก...
เทคนิค
การแบ่งปันความลับแบบโฮโมมอร์ฟิก (Homomorphic secret sharing) ใช้ในการส่งต่อความลับไปยังผู้รับหลายรายดังนี้:
ตัวอย่าง
สมมติว่าชุมชนแห่งหนึ่งต้องการจัดการเลือกตั้งโดยใช้โปรโตคอลการลงคะแนนแบบกระจายอำนาจ แต่ต้องการให้แน่ใจว่าผู้ตรวจนับคะแนนจะไม่โกหกเกี่ยวกับผลการเลือกตั้ง โดยใช้เทคนิคการแบ่งปันความลับแบบโฮโมมอร์ฟิกที่เรียกว่า การแบ่งปันความลับของ ชามีร์ (Shamir's secret sharing...
คุณสมบัติ
โปรโตคอลนี้ใช้งานได้ตราบใดที่ เจ้าหน้าที่ k คนไม่ ได้ทุจริตทั้งหมด — หากพวกเขาทุจริต พวกเขาก็อาจร่วมมือกันสร้าง P ( x ) ขึ้นใหม่สำหรับผู้ลงคะแนนแต่ละคน และเปลี่ยนแปลงผลการลงคะแนนในภายหลังได้