ฉันจะแก้ปัญหานี้ได้อย่างไร: ฉันมีกราฟชี้นำของโหนดที่อาจเป็นอันตรายและโหนดทั้งหมดมีค่าส่วนตัว
- พิจารณาโหนด "B" ด้วยค่าส่วนตัว "BPrivatValue = b"
- บรรพบุรุษของ B เรียกว่า "A" และค่าส่วนตัวของ A คือ "APrivateValue = a"
- ผู้สืบทอดของ B เรียกว่า "C" และค่าส่วนตัวของ C คือ "CPrivateValue = c"
ฉันต้องการให้ทุกโหนดในกราฟนี้สามารถทำสิ่งต่อไปนี้ได้ (ที่นี่เราพิจารณาโหนด B เพื่อความง่าย):
- B ทำการโต้ตอบบางอย่างกับ A และค้นหาว่า APrivateValue > BPrivateValue หรือ APrivateValue < BPrivateValue แต่ไม่มีอะไรมากไปกว่าการเปรียบเทียบนี้รั่วไหลไปยัง A และ B เกี่ยวกับคุณค่าส่วนตัวของอีกฝ่าย
- ถ้า APrivateValue < BPrivateValue B เปลี่ยนค่าส่วนตัวของเขาเป็น "a" เช่น BPrivateValue = a (โปรดทราบว่าจริง ๆ แล้ว B ไม่รู้ค่าของ a เขามีความมุ่งมั่นหรือการเข้ารหัสของ "a" แต่เขารู้ว่าเขาควรเปลี่ยน ค่าส่วนตัว)
- ตอนนี้ C ทำสิ่งเดียวกันกับ B และโปรโตคอลนี้ดำเนินต่อไปจนถึงโหนดสุดท้ายในเส้นทางนี้ในกราฟ ในตอนท้าย การผูกมัดหรือการเข้ารหัสของค่าไพรเวตขั้นต่ำในพาธนี้คือเอาต์พุต
ตอนนี้ คุณคิดว่ารูปแบบหรือเครื่องมือใดสามารถช่วยฉันใช้ฟังก์ชันนี้ได้ ก่อนอื่น ฉันคิดถึงการเข้ารหัสรักษาความเป็นส่วนตัวแบบอสมมาตร โหนดทั้งหมดเข้ารหัสค่าส่วนตัวและส่งการเข้ารหัสไปยังโหนดถัดไป โหนดถัดไปทำการเปรียบเทียบและส่งค่าเข้ารหัสของค่าส่วนตัวขั้นต่ำไปยังโหนดถัดไป แต่จากนั้นฉันก็ตระหนักว่าการเข้ารหัสแบบรักษาความเป็นส่วนตัวแบบอสมมาตรนั้นไม่ปลอดภัยเลย และใครก็ตามสามารถคำนวณข้อความธรรมดาที่สอดคล้องกับข้อความเข้ารหัสด้วยการค้นหาแบบไบนารีอย่างง่าย ดังนั้นคุณแนะนำอะไร