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

อ่าน 10 นาที

การคำนวณแบบหลายฝ่ายที่ปลอดภัย

การคำนวณแบบหลายฝ่ายที่ปลอดภัย (หรือเรียกอีกอย่างว่า การคำนวณที่ปลอดภัย การ คำนวณแบบหลายฝ่าย ( MPC ) หรือ การคำนวณที่รักษาความเป็นส่วนตัว )...

การคำนวณแบบหลายฝ่ายที่ปลอดภัย

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

รากฐานของการคำนวณแบบหลายฝ่ายที่ปลอดภัยเริ่มต้นขึ้นในช่วงปลายทศวรรษ 1970 ด้วยงานวิจัยเกี่ยวกับ"โป๊กเกอร์ทางจิต"ซึ่งเป็นงานด้านการเข้ารหัสที่จำลองการเล่นเกม/งานคำนวณข้ามระยะทางโดยไม่จำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้โดยทั่วไปแล้ว การเข้ารหัสมีจุดประสงค์เพื่อปกปิดเนื้อหา ในขณะที่การคำนวณและโปรโตคอลประเภทใหม่นี้มีจุดประสงค์เพื่อปกปิดข้อมูลบางส่วนเกี่ยวกับข้อมูลในขณะที่ทำการคำนวณด้วยข้อมูลจากหลายแหล่ง และสร้างผลลัพธ์ที่ถูกต้อง ในช่วงปลายทศวรรษ 1980 ไมเคิล เบน-ออร์ , ชาฟี โกลด์วาสเซอร์และอาวี วิกเดอร์สันรวมถึง เดวิด ชอม, โคลด เครโป และอีวาน ดัมการ์ดได้ตีพิมพ์บทความที่แสดงให้เห็นถึง "วิธีการคำนวณฟังก์ชันใดๆ อย่างปลอดภัยในการตั้งค่าช่องทางที่ปลอดภัย"

ประวัติศาสตร์

โปรโตคอลวัตถุประสงค์พิเศษสำหรับงานเฉพาะเริ่มขึ้นในช่วงปลายทศวรรษ 1970 [ 2 ]ต่อมา การคำนวณที่ปลอดภัยได้รับการแนะนำอย่างเป็นทางการในชื่อการคำนวณแบบสองฝ่ายที่ปลอดภัย (2PC) ในปี 1982 (สำหรับปัญหาที่เรียกว่าMillionaires' Problemซึ่งเป็นปัญหาเฉพาะที่เป็นเงื่อนไขบูลีน) และโดยทั่วไป (สำหรับการคำนวณที่เป็นไปได้ใดๆ) ในปี 1986 โดยAndrew Yao [ 3 ] [ 4 ] พื้นที่นี้ยังถูกเรียกว่าการประเมินฟังก์ชันที่ปลอดภัย (SFE) กรณีสองฝ่ายได้รับการขยายไปสู่กรณีหลายฝ่ายโดยOded Goldreich , Silvio Micaliและ Avi Wigderson การคำนวณนี้ขึ้นอยู่กับการแบ่งปันความลับของข้อมูลป้อนเข้าทั้งหมดและการพิสูจน์ความรู้เป็นศูนย์สำหรับกรณีที่อาจเป็นอันตราย โดยที่ผู้เล่นที่ซื่อสัตย์ส่วนใหญ่ในกรณีของฝ่ายตรงข้ามที่เป็นอันตรายจะรับรองว่าตรวจพบพฤติกรรมที่ไม่ดี และการคำนวณจะดำเนินต่อไปโดยกำจัดบุคคลที่ไม่ซื่อสัตย์ออกไปหรือเปิดเผยข้อมูลป้อนเข้าของเขา งานวิจัยนี้ได้เสนอโครงร่างทั่วไปพื้นฐานที่สุดที่จะต้องปฏิบัติตามโดยพื้นฐานแล้วในโปรโตคอลแบบหลายฝ่ายในอนาคตทั้งหมดสำหรับการคำนวณที่ปลอดภัย[ 5 ]งานวิจัยนี้ได้แนะนำแนวทางที่เรียกว่าแบบแผน GMW สำหรับการคอมไพล์โปรโตคอลการคำนวณแบบหลายฝ่ายที่ปลอดภัยจากศัตรูที่ซื่อสัตย์บางส่วนไปเป็นโปรโตคอลที่ปลอดภัยจากศัตรูที่เป็นอันตราย งานวิจัยนี้ตามมาด้วยโปรโตคอลที่ปลอดภัยและแข็งแกร่งเป็นครั้งแรกซึ่งยอมรับพฤติกรรมที่ผิดพลาดได้อย่างนุ่มนวลโดยไม่เปิดเผยผลลัพธ์ของใครเลยผ่านงานวิจัยที่คิดค้นแนวคิด 'การแบ่งปันส่วนแบ่ง' ที่ใช้กันบ่อยเพื่อจุดประสงค์นี้[ 6 ]และโปรโตคอลที่อนุญาตให้ฝ่ายใดฝ่ายหนึ่งซ่อนอินพุตของตนได้โดยไม่มีเงื่อนไข[ 7 ]แบบแผน GMW ถูกมองว่าไม่มีประสิทธิภาพมาหลายปีเนื่องจากมีค่าใช้จ่ายสูงมากที่นำมาสู่โปรโตคอลพื้นฐาน อย่างไรก็ตาม ได้มีการแสดงให้เห็นว่าสามารถสร้างโปรโตคอลที่มีประสิทธิภาพได้[ 8 ]และทำให้แนวทางการวิจัยนี้มีความน่าสนใจมากยิ่งขึ้นจากมุมมองเชิงปฏิบัติ ผลลัพธ์ข้างต้นอยู่ในแบบจำลองที่ฝ่ายตรงข้ามถูกจำกัดให้คำนวณในเวลาพหุนาม และสังเกตการสื่อสารทั้งหมด ดังนั้นแบบจำลองนี้จึงเรียกว่า 'แบบจำลองการคำนวณ' นอกจากนี้ โปรโตคอลการถ่ายโอนแบบไม่เปิดเผยข้อมูลยังแสดงให้เห็นว่าสมบูรณ์สำหรับงานเหล่านี้[ 9 ] ผลลัพธ์ข้างต้นแสดงให้เห็นว่าภายใต้การเปลี่ยนแปลงข้างต้น เป็นไปได้ที่จะบรรลุการคำนวณที่ปลอดภัยเมื่อผู้ใช้ส่วนใหญ่ซื่อสัตย์

คำถามถัดไปที่ต้องแก้ไขคือกรณีของ ช่องทางการ สื่อสารที่ปลอดภัยซึ่งการสื่อสารแบบจุดต่อจุดไม่สามารถใช้งานได้โดยฝ่ายตรงข้าม ในกรณีนี้ พบว่าสามารถบรรลุวิธีแก้ปัญหาได้แม้จะมีฝ่ายที่ประพฤติมิชอบและประสงค์ร้ายมากถึง 1/3 และวิธีแก้ปัญหาดังกล่าวไม่ใช้เครื่องมือการเข้ารหัส (เนื่องจากมีการสื่อสารที่ปลอดภัย) [ 10 ] [ 11 ]การเพิ่มช่องทางการออกอากาศทำให้ระบบสามารถทนต่อกลุ่มผู้ประพฤติมิชอบส่วนน้อยได้มากถึง 1/2 [ 12 ]ในขณะที่ข้อจำกัดด้านการเชื่อมต่อบนกราฟการสื่อสารได้รับการตรวจสอบในหนังสือ Perfectly Secure Message Transmission [ 13 ]

ตลอดหลายปีที่ผ่านมา แนวคิดของโปรโตคอลหลายฝ่ายที่มีวัตถุประสงค์ทั่วไปได้กลายเป็นพื้นที่ที่อุดมสมบูรณ์สำหรับการตรวจสอบคุณสมบัติปัญหาโปรโตคอลพื้นฐานและทั่วไป เช่นความสามารถในการประกอบแบบสากลหรือศัตรูเคลื่อนที่เช่น ใน การแบ่งปันความลับ เชิงรุก[ 14 ]

ตั้งแต่ช่วงปลายทศวรรษ 2000 และแน่นอนตั้งแต่ปี 2010 เป็นต้นมา ขอบเขตของโปรโตคอลอเนกประสงค์ได้เปลี่ยนไปเน้นการปรับปรุงประสิทธิภาพของโปรโตคอลโดยคำนึงถึงการใช้งานจริง โปรโตคอลที่มีประสิทธิภาพมากขึ้นสำหรับ MPC ได้รับการเสนอ และปัจจุบัน MPC สามารถถือได้ว่าเป็นโซลูชันที่ใช้งานได้จริงสำหรับปัญหาต่างๆ ในชีวิตจริง (โดยเฉพาะอย่างยิ่งปัญหาที่ต้องการเพียงการแบ่งปันความลับเชิงเส้นและการดำเนินการเฉพาะที่บนส่วนแบ่งโดยไม่ต้องมีการโต้ตอบระหว่างฝ่ายต่างๆ มากนัก) เช่น การลงคะแนนแบบกระจาย การเสนอราคาและการประมูลแบบส่วนตัว การแบ่งปันลายเซ็นหรือฟังก์ชันการถอดรหัส และการดึงข้อมูลส่วนตัว [ 15 ] การประยุกต์ใช้การคำนวณแบบหลายฝ่ายขนาดใหญ่และใช้งานได้จริงครั้งแรกคือการดำเนินการประมูลแบบอิเล็กทรอนิกส์สองทางในการประมูลหัวบีทน้ำตาลของเดนมาร์กซึ่งเกิดขึ้นในเดือนมกราคม 2008 [ 16 ]เห็นได้ชัดว่าจำเป็นต้องมีทั้งแนวคิดและการวิจัยเชิงทฤษฎีและการสร้างประยุกต์ (เช่น เงื่อนไขสำหรับการนำ MPC ไปใช้ในธุรกิจประจำวันได้รับการสนับสนุนและนำเสนอใน[ 17 ] )

ในปี 2020 บริษัทหลายแห่งที่ทำงานด้านการประมวลผลแบบหลายฝ่ายที่ปลอดภัยได้ก่อตั้งพันธมิตร MPC โดยมีเป้าหมายเพื่อ "เร่งสร้างความตระหนัก การยอมรับ และการนำเทคโนโลยี MPC ไปใช้"

คำจำกัดความและภาพรวม

ใน MPC (Multiple Computing) ผู้เข้าร่วมจำนวนหนึ่ง p 1 , p 2 , ..., p Nแต่ละคนจะมีข้อมูลส่วนตัว d 1 , d 2 , ..., d N ตามลำดับ ผู้เข้าร่วมต้องการคำนวณค่าของฟังก์ชันสาธารณะบนข้อมูลส่วนตัวนั้น: F(d 1 , d 2 , ..., d N ) ในขณะที่เก็บรักษาข้อมูลป้อนเข้าของตนเองเป็นความลับ

ตัวอย่างเช่น สมมติว่าเรามีสามฝ่าย ได้แก่ อลิซ บ็อบ และชาร์ลี โดยแต่ละฝ่ายมีข้อมูลป้อนเข้าเป็น x, y และ z ซึ่งแทนเงินเดือนของแต่ละคน พวกเขาต้องการหาเงินเดือนที่สูงที่สุดในสามคนนี้ โดยไม่เปิดเผยเงินเดือนของแต่ละคนให้กันและกันทราบ ในทางคณิตศาสตร์ นี่หมายถึงการคำนวณดังนี้:

F(x, y, z) = max(x, y, z)

ถ้ามีบุคคลภายนอกที่ไว้ใจได้ (เช่น พวกเขามีเพื่อนร่วมกันชื่อโทนี่ ซึ่งพวกเขารู้ว่าเก็บความลับได้) พวกเขาก็จะบอกเงินเดือนของตัวเองให้โทนี่รู้ โทนี่ก็จะคำนวณเงินเดือนสูงสุดแล้วบอกตัวเลขนั้นให้พวกเขาทุกคนรู้ เป้าหมายของ MPC คือการออกแบบโปรโตคอลที่อลิซ บ็อบ และชาร์ลี สามารถเรียนรู้F(x, y, z) ได้โดยการแลกเปลี่ยนข้อความระหว่างกันเท่านั้น โดยไม่ต้องเปิดเผยว่าใครได้เงินเดือนเท่าไหร่ และไม่ต้องพึ่งพาโทนี่ พวกเขาควรเรียนรู้จากโปรโตคอลนี้ไม่มากไปกว่าที่พวกเขาจะเรียนรู้จากการโต้ตอบกับโทนี่ซึ่งเป็นคนที่ไว้ใจได้และไม่สามารถทุจริตได้

โดยเฉพาะอย่างยิ่ง สิ่งที่ฝ่ายต่างๆ สามารถเรียนรู้ได้นั้น คือสิ่งที่พวกเขาเรียนรู้ได้จากผลลัพธ์และข้อมูลที่ป้อนเข้าไปของตนเอง ดังนั้นในตัวอย่างข้างต้น ถ้าผลลัพธ์คือzชาร์ลีจะเรียนรู้ว่าz ของเขา คือค่าสูงสุด ในขณะที่อลิซและบ็อบจะเรียนรู้ (ถ้าx , yและzแตกต่างกัน) ว่าข้อมูลที่ป้อนเข้าไปของพวกเขาไม่เท่ากับค่าสูงสุด และค่าสูงสุดที่ได้นั้นเท่ากับzสถานการณ์พื้นฐานนี้สามารถขยายไปสู่กรณีที่ฝ่ายต่างๆ มีทั้งข้อมูลที่ป้อนเข้าไปและผลลัพธ์หลายอย่าง และฟังก์ชันจะส่งค่าที่แตกต่างกันไปยังฝ่ายต่างๆ ได้

กล่าวโดยคร่าวๆ คุณสมบัติพื้นฐานที่สุดที่โปรโตคอลการคำนวณแบบหลายฝ่ายมุ่งมั่นที่จะรับประกันมีดังนี้:

  • ความเป็นส่วนตัวของข้อมูลขาเข้า: ไม่สามารถอนุมานข้อมูลส่วนตัวใดๆ ที่คู่สัญญาถือครองไว้ได้จากข้อความที่ส่งระหว่างการดำเนินการตามโปรโตคอล ข้อมูลเดียวที่สามารถอนุมานได้เกี่ยวกับข้อมูลส่วนตัวคือสิ่งที่สามารถอนุมานได้จากการดูผลลัพธ์ของฟังก์ชันเพียงอย่างเดียว
  • ความถูกต้อง: กลุ่มย่อยที่เหมาะสมของฝ่ายที่สมรู้ร่วมคิดกันซึ่งเต็มใจที่จะแบ่งปันข้อมูลหรือเบี่ยงเบนจากคำสั่งระหว่างการดำเนินการตามโปรโตคอล ไม่ควรสามารถบังคับให้ฝ่ายที่ซื่อสัตย์ส่งผลลัพธ์ที่ไม่ถูกต้องได้ เป้าหมายด้านความถูกต้องนี้มีสองรูปแบบ: อย่างแรกคือฝ่ายที่ซื่อสัตย์ได้รับการรับประกันว่าจะคำนวณผลลัพธ์ที่ถูกต้อง (โปรโตคอลที่ "แข็งแกร่ง") หรืออย่างที่สองคือพวกเขาจะยกเลิกหากพบข้อผิดพลาด (โปรโตคอล MPC "ที่มีการยกเลิก")

มีการประยุกต์ใช้งานในทางปฏิบัติที่หลากหลาย ตั้งแต่งานง่ายๆ เช่น การโยนเหรียญ ไปจนถึงงานที่ซับซ้อนกว่า เช่น การประมูลอิเล็กทรอนิกส์ (เช่น การคำนวณราคาปิดตลาด) การลงคะแนนเสียงอิเล็กทรอนิกส์ หรือการขุดข้อมูล ที่รักษาความเป็นส่วนตัว ตัวอย่างคลาสสิกคือ ปัญหาเศรษฐี: เศรษฐีสองคนต้องการทราบว่าใครรวยกว่ากัน โดยที่ทั้งสองคนจะไม่รู้มูลค่าสุทธิของอีกฝ่าย วิธีแก้ปัญหานี้คือการประเมินฟังก์ชันเปรียบเทียบอย่างปลอดภัย

คำจำกัดความด้านความปลอดภัย

โปรโตคอลการคำนวณแบบหลายฝ่ายต้องมีความปลอดภัยจึงจะมีประสิทธิภาพ ในการเข้ารหัสลับสมัยใหม่ ความปลอดภัยของโปรโตคอลเกี่ยวข้องกับการพิสูจน์ความปลอดภัย การพิสูจน์ความปลอดภัยเป็นการพิสูจน์ทางคณิตศาสตร์ที่ความปลอดภัยของโปรโตคอลลดลงเหลือเพียงความปลอดภัยของส่วนประกอบพื้นฐาน อย่างไรก็ตาม การตรวจสอบความปลอดภัย ของโปรโตคอลการเข้ารหัสลับโดยอาศัยความรู้ของฝ่ายต่างๆ และความถูกต้องของโปรโตคอลนั้นไม่ใช่เรื่องที่เป็นไปได้เสมอไป สำหรับโปรโตคอล MPC สภาพแวดล้อมที่โปรโตคอลทำงานนั้นเกี่ยวข้องกับกระบวนทัศน์โลกแห่งความเป็นจริง/โลกอุดมคติ[ 18 ]ไม่สามารถกล่าวได้ว่าฝ่ายต่างๆ ไม่ได้เรียนรู้อะไรเลย เนื่องจากพวกเขาจำเป็นต้องเรียนรู้ผลลัพธ์ของการดำเนินการ และผลลัพธ์นั้นขึ้นอยู่กับอินพุต นอกจากนี้ ความถูกต้องของผลลัพธ์ไม่ได้รับการรับประกัน เนื่องจากความถูกต้องของผลลัพธ์ขึ้นอยู่กับอินพุตของฝ่ายต่างๆ และต้องถือว่าอินพุตนั้นถูกต้อง

แบบจำลองโลกแห่งความเป็นจริง/โลกอุดมคติกล่าวถึงโลกสองแบบ: (i) ในแบบจำลองโลกอุดมคติ มีฝ่ายที่เชื่อถือได้ซึ่งไม่สามารถถูกแทรกแซงได้ ซึ่งผู้เข้าร่วมโปรโตคอลแต่ละฝ่ายจะส่งข้อมูลป้อนเข้าให้ ฝ่ายที่เชื่อถือได้นี้จะคำนวณฟังก์ชันด้วยตนเองและส่งผลลัพธ์ที่เหมาะสมกลับไปยังแต่ละฝ่าย (ii) ในทางตรงกันข้าม ในแบบจำลองโลกแห่งความเป็นจริง ไม่มีฝ่ายที่เชื่อถือได้ และทุกฝ่ายสามารถทำได้เพียงแลกเปลี่ยนข้อความระหว่างกัน โปรโตคอลจะถือว่าปลอดภัยหากไม่สามารถเรียนรู้ข้อมูลส่วนตัวของแต่ละฝ่ายในโลกแห่งความเป็นจริงได้มากกว่าที่สามารถเรียนรู้ได้ในโลกอุดมคติ ในโลกอุดมคติไม่มีการแลกเปลี่ยนข้อความระหว่างฝ่ายต่างๆ ดังนั้นข้อความที่แลกเปลี่ยนในโลกแห่งความเป็นจริงจึงไม่สามารถเปิดเผยข้อมูลลับใดๆ ได้

แนวคิดโลกแห่งความเป็นจริง/โลกอุดมคติ เป็นนามธรรมที่เรียบง่ายของความซับซ้อนของ MPC เพื่อให้สามารถสร้างแอปพลิเคชันภายใต้สมมติฐานที่ว่าโปรโตคอล MPC ในส่วนแก่นแท้ของมันคือการทำงานในอุดมคติ หากแอปพลิเคชันมีความปลอดภัยในกรณีอุดมคติแล้ว ก็จะปลอดภัยเช่นกันเมื่อใช้งานโปรโตคอลจริง

ข้อกำหนดด้านความปลอดภัยของโปรโตคอล MPC นั้นเข้มงวดมาก อย่างไรก็ตาม ในปี 1987 ได้มีการแสดงให้เห็นว่าฟังก์ชันใดๆ ก็สามารถคำนวณได้อย่างปลอดภัย โดยมีความปลอดภัยสำหรับผู้โจมตีที่เป็นอันตราย[ 5 ]และงานเริ่มต้นอื่นๆ ที่กล่าวถึงก่อนหน้านี้ แม้จะมีสิ่งพิมพ์เหล่านี้ แต่ MPC ก็ไม่ได้ถูกออกแบบมาให้มีประสิทธิภาพเพียงพอที่จะนำไปใช้ในทางปฏิบัติในขณะนั้น MPC ที่ปลอดภัยโดยไม่มีเงื่อนไขหรือปลอดภัยตามทฤษฎีสารสนเทศนั้นมีความเกี่ยวข้องอย่างใกล้ชิดและสร้างขึ้นจากปัญหาการแบ่งปันความลับและโดยเฉพาะอย่างยิ่งการแบ่งปันความลับที่ตรวจสอบได้ (VSS) ซึ่งโปรโตคอล MPC ที่ปลอดภัยหลายตัวใช้เพื่อต่อต้านผู้โจมตีที่ใช้งานอยู่

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

ศัตรูที่โปรโตคอลต่างๆ เผชิญนั้น สามารถแบ่งประเภทได้ตามความเต็มใจที่จะเบี่ยงเบนจากโปรโตคอล โดยพื้นฐานแล้วมีศัตรูอยู่สองประเภท ซึ่งแต่ละประเภทก่อให้เกิดรูปแบบการรักษาความปลอดภัยที่แตกต่างกัน (และแต่ละประเภทก็เหมาะสมกับสถานการณ์ในโลกแห่งความเป็นจริงที่แตกต่างกัน):

  • ความปลอดภัยแบบกึ่งซื่อสัตย์ (แบบพาสซีฟ): ในกรณีนี้ สันนิษฐานว่าฝ่ายที่ทุจริตเพียงแค่ร่วมมือกันรวบรวมข้อมูลจากโปรโตคอล แต่ไม่ได้เบี่ยงเบนไปจากข้อกำหนดของโปรโตคอล นี่คือแบบจำลองศัตรูที่ไร้เดียงสา ซึ่งให้ความปลอดภัยที่อ่อนแอในสถานการณ์จริง อย่างไรก็ตาม โปรโตคอลที่บรรลุระดับความปลอดภัยนี้จะป้องกันการรั่วไหลของข้อมูลโดยไม่ตั้งใจระหว่างฝ่ายต่างๆ (ที่ร่วมมือกัน) และจึงมีประโยชน์หากนี่เป็นข้อกังวลเพียงอย่างเดียว นอกจากนี้ โปรโตคอลในแบบจำลองกึ่งซื่อสัตย์ยังค่อนข้างมีประสิทธิภาพ และมักเป็นขั้นตอนแรกที่สำคัญสำหรับการบรรลุระดับความปลอดภัยที่สูงขึ้น
  • การรักษาความปลอดภัยแบบมุ่งร้าย (เชิงรุก): ในกรณีนี้ ผู้โจมตีอาจเบี่ยงเบนการทำงานของโปรโตคอลโดยพลการเพื่อพยายามโกง โปรโตคอลที่บรรลุการรักษาความปลอดภัยในรูปแบบนี้จะให้การรับประกันความปลอดภัยที่สูงมาก ในกรณีที่ฝ่ายส่วนใหญ่ประพฤติมิชอบ: สิ่งเดียวที่ผู้โจมตีสามารถทำได้ในกรณีที่ฝ่ายที่ไม่ซื่อสัตย์ส่วนใหญ่คือการทำให้ฝ่ายที่ซื่อสัตย์ "ยกเลิก" หลังจากตรวจพบการโกง หากฝ่ายที่ซื่อสัตย์ได้รับผลลัพธ์ พวกเขาจะได้รับการรับประกันว่าถูกต้อง ความเป็นส่วนตัวของพวกเขาจะได้รับการรักษาไว้เสมอ

การรักษาความปลอดภัยต่อศัตรูที่กระตือรือร้นมักนำไปสู่การลดประสิทธิภาพ การรักษาความปลอดภัยแบบปกปิด[ 19 ]เป็นทางเลือกที่มุ่งหวังให้มีประสิทธิภาพมากขึ้นโดยแลกกับการลดทอนคำจำกัดความด้านความปลอดภัย ซึ่งสามารถนำไปใช้ได้ในสถานการณ์ที่ศัตรูที่กระตือรือร้นเต็มใจที่จะโกง แต่เฉพาะในกรณีที่พวกเขาไม่ถูกจับได้ ตัวอย่างเช่น ชื่อเสียงของพวกเขาอาจเสียหาย ทำให้ไม่สามารถร่วมมือกับฝ่ายที่ซื่อสัตย์อื่น ๆ ในอนาคตได้ ดังนั้น โปรโตคอลที่มีความปลอดภัยแบบปกปิดจึงมีกลไกเพื่อให้แน่ใจว่า หากบางฝ่ายไม่ปฏิบัติตามคำแนะนำ ก็จะถูกสังเกตเห็นด้วยความน่าจะเป็นสูงเช่น 75% หรือ 90% ในทางหนึ่ง ศัตรูที่ปกปิดคือศัตรูที่กระตือรือร้นที่ถูกบังคับให้กระทำการแบบเฉื่อยชาเนื่องจากความกังวลภายนอกที่ไม่เกี่ยวข้องกับการเข้ารหัส (เช่น ธุรกิจ) กลไกนี้สร้างสะพานเชื่อมระหว่างทั้งสองแบบจำลองโดยหวังว่าจะพบโปรโตคอลที่มีประสิทธิภาพและปลอดภัยเพียงพอในทางปฏิบัติ

เช่นเดียวกับ โปรโตคอลการเข้ารหัสลับหลายๆโปรโตคอล ความปลอดภัยของโปรโตคอล MPC อาจขึ้นอยู่กับสมมติฐานที่แตกต่างกันหลายประการ:

  • อาจเป็นการคำนวณ (เช่น อิงตามปัญหาทางคณิตศาสตร์บางอย่าง เช่น การแยกตัวประกอบ) หรือแบบไม่ขึ้นกับเงื่อนไข กล่าวคือ อาศัยการไม่มีข้อความในช่องทางการสื่อสาร (โดยปกติจะมีโอกาสเกิดข้อผิดพลาดอยู่บ้าง ซึ่งสามารถทำให้มีค่าเล็กน้อยได้ตามต้องการ)
  • แบบจำลองอาจตั้งสมมติฐานว่าผู้เข้าร่วมใช้เครือข่ายที่ซิงโครไนซ์กันโดยที่ข้อความที่ส่งใน "รอบเวลา" หนึ่งจะมาถึงใน "รอบเวลา" ถัดไปเสมอ หรือว่ามีช่องทางการกระจายเสียงที่ปลอดภัยและเชื่อถือได้ หรือว่ามีช่องทางการสื่อสารที่ปลอดภัยระหว่างผู้เข้าร่วมแต่ละคู่ โดยที่ศัตรูไม่สามารถอ่าน แก้ไข หรือสร้างข้อความในช่องทางนั้นได้ เป็นต้น

กลุ่มของฝ่ายที่ซื่อสัตย์ที่สามารถดำเนินการคำนวณได้นั้นเกี่ยวข้องกับแนวคิดของโครงสร้างการเข้าถึง โครงสร้างของฝ่ายตรงข้ามอาจเป็นแบบคงที่ ซึ่งฝ่ายตรงข้ามเลือกเหยื่อก่อนเริ่มการคำนวณแบบหลายฝ่าย หรือแบบไดนามิก ซึ่งฝ่ายตรงข้ามเลือกเหยื่อในระหว่างการดำเนินการคำนวณแบบหลายฝ่าย ทำให้การป้องกันทำได้ยากขึ้น โครงสร้างของฝ่ายตรงข้ามสามารถกำหนดได้ว่าเป็นโครงสร้างแบบมีเกณฑ์ หรือเป็นโครงสร้างที่ซับซ้อนกว่า ในโครงสร้างแบบมีเกณฑ์ ฝ่ายตรงข้ามสามารถทำลายหรืออ่านหน่วยความจำของผู้เข้าร่วมจำนวนหนึ่งได้ถึงเกณฑ์ที่กำหนด ในขณะที่ในโครงสร้างที่ซับซ้อนกว่านั้น ฝ่ายตรงข้ามสามารถส่งผลกระทบต่อกลุ่มย่อยของผู้เข้าร่วมที่กำหนดไว้ล่วงหน้า ซึ่งเป็นการจำลองการสมรู้ร่วมคิดที่เป็นไปได้หลายแบบ

โปรโตคอล

มีข้อแตกต่างที่สำคัญระหว่างโปรโตคอลที่เสนอสำหรับการคำนวณแบบสองฝ่าย (2PC) และการคำนวณแบบหลายฝ่าย (MPC) นอกจากนี้ สำหรับโปรโตคอลที่มีวัตถุประสงค์พิเศษที่สำคัญ มักจะต้องออกแบบโปรโตคอลเฉพาะที่แตกต่างจากโปรโตคอลทั่วไป (เช่น การลงคะแนน การประมูล การชำระเงิน เป็นต้น)

การคำนวณแบบสองฝ่าย

การตั้งค่าแบบสองฝ่ายนั้นน่าสนใจเป็นพิเศษ ไม่เพียงแต่จากมุมมองของการใช้งานเท่านั้น แต่ยังเป็นเพราะสามารถใช้เทคนิคพิเศษในการตั้งค่าแบบสองฝ่ายซึ่งไม่สามารถใช้ได้ในกรณีหลายฝ่าย อันที่จริง การคำนวณแบบหลายฝ่ายที่ปลอดภัย (ในความเป็นจริงคือกรณีที่จำกัดของการประเมินฟังก์ชันที่ปลอดภัย ซึ่งมีการประเมินเพียงฟังก์ชันเดียว) ได้รับการนำเสนอครั้งแรกในการตั้งค่าแบบสองฝ่าย งานดั้งเดิมมักถูกอ้างถึงว่าเป็นหนึ่งในสองเอกสารของ Yao [ 20 ]แม้ว่าเอกสารเหล่านั้นจะไม่ได้มีสิ่งที่ปัจจุบันรู้จักกันในชื่อโปรโตคอลวงจรที่บิดเบือนของ Yaoก็ตาม

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

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

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

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

บิตอินพุตของผู้ส่ง (เช่น ผู้สร้างวงจร) สามารถส่งเป็นรหัสไปยังผู้ประเมินได้โดยตรง ในขณะที่รหัสของผู้รับ (เช่น ผู้ประเมินวงจร) ที่สอดคล้องกับบิตอินพุตของเขาจะได้รับผ่านโปรโตคอลการถ่ายโอนแบบไม่เปิดเผยข้อมูล (Oblivious Transfer: OT) แบบ 1 ใน 2 โปรโตคอล OT แบบ 1 ใน 2 ช่วยให้ผู้ส่งที่มีค่าสองค่า C1 และ C2 สามารถส่งค่าที่ผู้รับร้องขอ (ค่าใน {1,2}) ในลักษณะที่ผู้ส่งไม่ทราบว่าค่าใดถูกส่งมา และผู้รับจะทราบเพียงค่าที่ถูกร้องขอเท่านั้น

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

โปรโตคอลแบบหลายฝ่าย

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

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

แผนการแบ่งปันความลับสามารถทนต่อการที่ฝ่ายตรงข้ามควบคุมได้ถึงtฝ่ายจาก ทั้งหมด nฝ่าย โดยที่tจะแตกต่างกันไปตามแผนการ ฝ่ายตรงข้ามอาจเป็นแบบพาสซีฟหรือแอคทีฟ และมีการตั้งสมมติฐานที่แตกต่างกันเกี่ยวกับพลังของฝ่ายตรงข้าม แผนการแบ่งปันความลับของ Shamir มีความปลอดภัยต่อฝ่ายตรงข้ามแบบพาสซีฟเมื่อและต่อฝ่ายตรงข้ามแบบแอคทีฟเมื่อในขณะที่บรรลุความปลอดภัยเชิงทฤษฎีสารสนเทศ ซึ่งหมายความว่าแม้ว่าฝ่ายตรงข้ามจะมีพลังการคำนวณที่ไม่จำกัด พวกเขาก็ไม่สามารถเรียนรู้ข้อมูลใด ๆ เกี่ยวกับความลับที่อยู่เบื้องหลังการแบ่งปันได้ โปรโตคอล BGW [ 21 ]ซึ่งกำหนดวิธีการคำนวณการบวกและการคูณบนส่วนแบ่งความลับ มักใช้ในการคำนวณฟังก์ชันด้วยส่วนแบ่งความลับของ Shamir แผนการแบ่งปันความลับแบบบวกสามารถทนต่อการที่ฝ่ายตรงข้ามควบคุมทุกฝ่ายยกเว้นฝ่ายเดียว นั่นคือในขณะที่ยังคงรักษาความปลอดภัยต่อฝ่ายตรงข้ามแบบพาสซีฟและแอคทีฟที่มีพลังการคำนวณที่ไม่จำกัด โปรโตคอลบางอย่างต้องการขั้นตอนการตั้งค่า ซึ่งอาจมีความปลอดภัยเฉพาะต่อฝ่ายตรงข้ามที่มีข้อจำกัดด้านการคำนวณเท่านั้น

ระบบจำนวนหนึ่งได้นำ MPC รูปแบบต่างๆ มาใช้ร่วมกับแผนการแบ่งปันความลับ รูปแบบที่ได้รับความนิยมมากที่สุดคือ SPDZ [ 22 ]ซึ่งนำ MPC มาใช้ด้วยการแบ่งปันความลับแบบบวกและมีความปลอดภัยต่อผู้โจมตีที่ใช้งานอยู่

โปรโตคอลอื่นๆ

ในปี 2557 ได้มีการอธิบาย "แบบจำลองความยุติธรรมในการคำนวณที่ปลอดภัย ซึ่งฝ่ายที่เป็นปฏิปักษ์ที่ยกเลิกเมื่อได้รับผลลัพธ์จะต้องจ่ายค่าปรับเป็นเงินที่กำหนดไว้ร่วมกัน" สำหรับ เครือข่าย Bitcoinหรือสำหรับลอตเตอรี่ที่ยุติธรรม และได้มีการนำไปใช้สำเร็จในEthereum [ 23 ] [ 24 ]

ระบบ MPC ที่ใช้งานได้จริง

ระบบ 2PC และ MPC มีความก้าวหน้าอย่างมากในช่วงไม่กี่ปีที่ผ่านมา

ในปี 2025 บริษัท Partisia ซึ่งร่วมก่อตั้งโดยIvan Damgårdได้สาธิตการใช้งาน MPC ในทางปฏิบัติหลายประการในด้านเอกลักษณ์ดิจิทัลและความเป็นส่วนตัว โดยร่วมมือกับ Toppan และสถาบันวิทยาศาสตร์และเทคโนโลยีโอกินาวา Partisia ได้ดำเนินการทดสอบแนวคิดในญี่ปุ่นโดยใช้การจดจำใบหน้าและตัวระบุแบบกระจายศูนย์เพื่อสร้างระบบบัตรประจำตัวนักเรียนที่รักษาความเป็นส่วนตัวซึ่งสอดคล้องกับ มาตรฐาน eIDAS 2.0 ระบบนี้จับคู่ข้อมูลไบโอเมตริกโดยใช้ MPC โดยไม่ต้องถอดรหัส ทำให้สามารถตรวจสอบได้ในขณะที่ยังคงรักษาความเป็นส่วนตัวอย่างเต็มที่ นอกจากนี้ Partisia ยังได้ร่วมมือกับหน่วยงานในเดนมาร์ก โคลอมเบีย และสหรัฐอเมริกาเพื่อประยุกต์ใช้ MPC ในการวิเคราะห์ด้านการดูแลสุขภาพ เอกลักษณ์ดิจิทัลข้ามพรมแดน และการแลกเปลี่ยนข้อมูลธนาคารที่ปลอดภัย[ 25 ]

โปรโตคอลที่อิงตามเหยา

หนึ่งในประเด็นหลักเมื่อทำงานกับโปรโตคอลที่อิงตาม Yao คือฟังก์ชันที่จะประเมินอย่างปลอดภัย (ซึ่งอาจเป็นโปรแกรมใดๆ ก็ได้) จะต้องแสดงเป็นวงจร ซึ่งโดยปกติจะประกอบด้วยเกต XOR และ AND เนื่องจากโปรแกรมในโลกแห่งความเป็นจริงส่วนใหญ่มีลูปและโครงสร้างข้อมูลที่ซับซ้อน นี่จึงเป็นงานที่ไม่ง่ายเลย ระบบ Fairplay [ 26 ]เป็นเครื่องมือแรกที่ออกแบบมาเพื่อแก้ปัญหานี้ Fairplay ประกอบด้วยส่วนประกอบหลักสองส่วน ส่วนแรกคือคอมไพเลอร์ที่ช่วยให้ผู้ใช้สามารถเขียนโปรแกรมในภาษาระดับสูงที่เรียบง่าย และส่งออกโปรแกรมเหล่านี้ในรูปแบบวงจรบูลีน ส่วนประกอบที่สองสามารถเข้ารหัสวงจรและดำเนินการโปรโตคอลเพื่อประเมินวงจรที่เข้ารหัสอย่างปลอดภัย นอกจากการคำนวณแบบสองฝ่ายตามโปรโตคอลของ Yao แล้ว Fairplay ยังสามารถดำเนินการโปรโตคอลแบบหลายฝ่ายได้อีกด้วย ซึ่งทำได้โดยใช้โปรโตคอล BMR [ 26 ]ซึ่งขยายโปรโตคอลที่ปลอดภัยแบบพาสซีฟของ Yao ไปสู่กรณีแอคทีฟ

ในช่วงหลายปีหลังจากการเปิดตัว Fairplay ได้มีการสร้างการปรับปรุงมากมายให้กับโปรโตคอลพื้นฐานของ Yao ทั้งในรูปแบบของการปรับปรุงประสิทธิภาพและเทคนิคด้านความปลอดภัยเชิงรุก ซึ่งรวมถึงเทคนิคต่างๆ เช่น วิธี XOR อิสระ ซึ่งช่วยให้การประเมินเกต XOR ง่ายขึ้นมาก และการลดแถวที่เข้ารหัส ซึ่งช่วยลดขนาดของตารางที่เข้ารหัสที่มีอินพุตสองตัวลง 25% [ 27 ]

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

แนวทางการรักษาความปลอดภัยเชิงรุกนี้ริเริ่มโดย Lindell และ Pinkas [ 28 ]เทคนิคนี้ได้รับการนำไปใช้โดย Pinkas และคณะในปี 2009 [ 27 ]ซึ่งให้การประเมินแบบสองฝ่ายที่ปลอดภัยเชิงรุกครั้งแรกของวงจรมาตรฐานการเข้ารหัสขั้นสูง (AES) ซึ่งถือว่าเป็นฟังก์ชันที่ซับซ้อนมาก (ประกอบด้วยเกต AND และ XOR ประมาณ 30,000 ตัว) ไม่ใช่เรื่องง่าย (รวมถึงการใช้งานที่มีศักยภาพบางอย่าง) ใช้เวลาประมาณ 20 นาทีในการคำนวณและต้องใช้วงจร 160 วงจรเพื่อให้ได้ความน่าจะเป็นของการโกง

เนื่องจากมีการประเมินวงจรจำนวนมาก ฝ่ายต่างๆ (รวมถึงผู้รับ) จำเป็นต้องยืนยันอินพุตของตนเพื่อให้แน่ใจว่ามีการใช้ค่าเดียวกันในทุกรอบการทดลอง การทดลองของ Pinkas et al. ที่รายงาน[ 27 ]แสดงให้เห็นว่าคอขวดของโปรโตคอลอยู่ที่การตรวจสอบความสอดคล้อง พวกเขาต้องส่งการยืนยันค่าต่างๆ ประมาณ 6,553,600 ครั้งผ่านเครือข่ายเพื่อประเมินวงจร AES ในผลลัพธ์ล่าสุด[ 29 ]ประสิทธิภาพของการใช้งาน Yao ที่ปลอดภัยอย่างแข็งขันได้รับการปรับปรุงให้ดียิ่งขึ้นไปอีก โดยต้องการเพียง 40 วงจร และจำนวนการยืนยันที่น้อยลงมาก เพื่อให้ได้ความน่าจะเป็นของการโกง การปรับปรุงมาจากการใช้วิธีการใหม่ในการเลือกตัดบนวงจรที่ส่ง

เมื่อไม่นานมานี้ มีการมุ่งเน้นไปที่การใช้งานแบบขนานสูงโดยอาศัยวงจรเข้ารหัสที่ออกแบบมาเพื่อใช้งานบนซีพียูที่มีหลายคอร์ Kreuter และคณะ[ 30 ]อธิบายถึงการใช้งานที่ทำงานบน 512 คอร์ของคอมพิวเตอร์คลัสเตอร์ที่มีประสิทธิภาพสูง โดยใช้ทรัพยากรเหล่านี้ พวกเขาสามารถประเมิน ฟังก์ชัน ระยะห่างการแก้ไข 4095 บิต ซึ่งวงจรประกอบด้วยเกตเกือบ 6 พันล้านตัว เพื่อให้บรรลุเป้าหมายนี้ พวกเขาได้พัฒนาคอมไพเลอร์วงจรแบบกำหนดเองที่ได้รับการปรับแต่งให้ดีกว่า Fairplay และการเพิ่มประสิทธิภาพใหม่หลายอย่าง เช่น การวางท่อ ซึ่งการส่งวงจรเข้ารหัสผ่านเครือข่ายจะเริ่มต้นในขณะที่ส่วนที่เหลือของวงจรยังคงถูกสร้างขึ้น เวลาในการคำนวณ AES ลดลงเหลือ 1.4 วินาทีต่อบล็อกในกรณีใช้งาน โดยใช้เครื่องคลัสเตอร์ 512 โหนด และ 115 วินาทีโดยใช้โหนดเดียว Shelat และ Shen [ 31 ]ปรับปรุงสิ่งนี้โดยใช้ฮาร์ดแวร์ทั่วไป เหลือ 0.52 วินาทีต่อบล็อก เอกสารฉบับเดียวกันนี้ระบุว่ามีอัตราการประมวลผล 21 บล็อกต่อวินาที แต่มีความหน่วง 48 วินาทีต่อบล็อก

ในขณะเดียวกัน นักวิจัยอีกกลุ่มหนึ่งได้ตรวจสอบการใช้GPU ระดับผู้บริโภค เพื่อให้ได้ระดับการประมวลผลแบบขนานที่คล้ายคลึงกัน[ 32 ]พวกเขาใช้ส่วนขยายการถ่ายโอนแบบไม่เปิดเผยและเทคนิคใหม่ๆ อื่นๆ ในการออกแบบโปรโตคอลเฉพาะ GPU ของพวกเขา วิธีการนี้ดูเหมือนจะให้ประสิทธิภาพที่เทียบเท่ากับการใช้งานการประมวลผลแบบคลัสเตอร์ โดยใช้จำนวนคอร์ที่ใกล้เคียงกัน อย่างไรก็ตาม ผู้เขียนรายงานเฉพาะการใช้งานวงจร AES ซึ่งมีเกตประมาณ 50,000 เกต ในทางกลับกัน ฮาร์ดแวร์ที่จำเป็นในที่นี้เข้าถึงได้ง่ายกว่ามาก เนื่องจากอุปกรณ์ที่คล้ายกันอาจพบได้ในคอมพิวเตอร์เดสก์ท็อปหรือเครื่องเล่นเกมของหลายๆ คนอยู่แล้ว ผู้เขียนได้เวลา 2.7 วินาทีต่อบล็อก AES บนเดสก์ท็อปมาตรฐาน โดยใช้ GPU มาตรฐาน หากพวกเขายอมให้ความปลอดภัยลดลงจนคล้ายกับความปลอดภัยแบบปกปิด พวกเขาจะได้เวลาทำงาน 0.30 วินาทีต่อบล็อก AES ในกรณีความปลอดภัยแบบพาสซีฟ มีรายงานการประมวลผลวงจรที่มีเกต 250 ล้านเกต และในอัตรา 75 ล้านเกตต่อวินาที[ 33 ]

การนำไปใช้ในการวิเคราะห์ข้อมูลการคำนวณแบบหลายฝ่ายที่ปลอดภัย

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

ระบบสาธิตและการผลิต

การวิเคราะห์ ผู้ดูแลข้อมูล ผู้ให้บริการเทคโนโลยี ปีที่เปิดตัว หมายเหตุ ยังใช้งานอยู่ไหม?
รายงานสภาแรงงานสตรีบอสตัน[ 34 ]นายจ้างในเขตบอสตัน มหาวิทยาลัยบอสตัน 2016
ชุดข้อมูลของ Allegheny County [ 35 ] [ 36 ] [ 37 ] [ 38 ]ชุดข้อมูลหลายชุดจากสำนักงานเขตต่างๆ กาโลอิสและศูนย์นโยบายสองพรรค 2018

ไลบรารีซอฟต์แวร์

ชื่อ นักพัฒนา ปีที่เปิดตัว หมายเหตุ ยังคงได้รับการดูแลรักษาอยู่หรือไม่?
SEPIA - การรักษาความปลอดภัยผ่านการรวบรวมข้อมูลส่วนตัว
SCAPI - API การคำนวณที่ปลอดภัย[ 39 ]
PALISADE - ไลบรารีการเข้ารหัสแบบโฮโมมอร์ฟิก[ 40 ]
MP-SPDZ - กรอบงานอเนกประสงค์สำหรับการคำนวณแบบหลายฝ่าย[ 41 ]Data61 ของ CSIRO2018 โปรโตคอล 40 รูปแบบ เน้นฟังก์ชันการเรียนรู้ของเครื่อง ข้อมูล ณ ปี 2023
Stoffel - กรอบการทำงานสำหรับการคำนวณแบบหลายฝ่ายที่แข็งแกร่ง[ 42 ]บริษัท สตอฟเฟล แล็บส์ อิงค์ 2025 ใช่

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • VMCrypt - ไลบรารี Java สำหรับการคำนวณที่ปลอดภัยและปรับขนาดได้ โดย Lior Malka
  • แนะนำตัวกับ SMC โดยคริสเตียน ซีลินสกี
  • SEPIAคือไลบรารี Java สำหรับ SMC ที่ใช้การแบ่งปันความลับ
  • MPCLib: Multi-Party Computation Library — ไลบรารีที่เขียนด้วยภาษา C# และ C++ ซึ่งนำส่วนประกอบพื้นฐานหลายอย่างที่จำเป็นสำหรับการใช้งานโปรโตคอลการคำนวณแบบหลายฝ่ายที่ปลอดภัยมาใช้
  • EMP-toolkit ชุดเครื่องมือคำนวณแบบหลายฝ่ายที่มีประสิทธิภาพ
  • งานปาร์ตี้เสมือนจริงใน SMC:โปรโตคอลสำหรับงานปาร์ตี้เสมือนจริงใน SMC
  • MPyC: การคำนวณแบบหลายฝ่ายที่ปลอดภัยในPython (และJupyter notebooks ) แพ็กเกจโอเพนซอร์สสำหรับ MPC โดยใช้ coroutines ของ Python ที่ปรับแต่งเอง
  • หนังสือ The God Protocols โดย Nick Szabo (ฉบับเก็บถาวร)
  • โครงการ SIMAP ; การจัดการและการประมวลผลข้อมูลที่ปลอดภัย (SIMAP) เป็นโครงการที่ได้รับการสนับสนุนจากสำนักงานวิจัยแห่งชาติเดนมาร์ก (เอกสารถูกเก็บถาวรแล้ว)
  • MPC ตั้งแต่เริ่มต้น: ทุกคนทำได้!โดย สตีเฟน ตง
  • JavascriptMPC — JavascriptMPC คือเฟรมเวิร์ก MPC สำหรับภาษา Go ที่สามารถคอมไพล์ไฟล์ JavaScript ให้เป็นวงจรที่อ่านไม่ออก
  • โปรแกรมแก้ปัญหา CSP แบบกระจายที่ปลอดภัย (DisCSP) — แอปพลิเคชันบนเว็บพร้อมตัวแปลแอปเพล็ตสำหรับออกแบบและเรียกใช้การคำนวณแบบหลายฝ่ายที่ปลอดภัยอย่างเต็มรูปแบบของคุณเอง (อิงตามภาษาประกาศ SMC) ใช้การประเมินวงจรเลขคณิตที่ปลอดภัยและเครือข่ายผสม
  • โครงการแฟร์เพลย์ (Fairplay Project ) — ประกอบด้วยชุดซอฟต์แวร์สำหรับการคำนวณแบบสองฝ่ายที่ปลอดภัย โดยฟังก์ชันจะถูกกำหนดโดยใช้ภาษาอธิบายฟังก์ชันระดับสูง และประเมินผลโดยใช้โปรโตคอลของเหยา (Yao's protocol) สำหรับการประเมินวงจรบูลีนอย่างปลอดภัย
  • ภาษาการคำนวณแบบหลายฝ่ายที่ปลอดภัย (Secure Multiparty Computation Language ) - โครงการพัฒนา 'ภาษาโปรแกรมเฉพาะโดเมนสำหรับการคำนวณแบบหลายฝ่ายที่ปลอดภัย' และรันไทม์การเข้ารหัสที่เกี่ยวข้อง
  • โปรเจ็กต์ Myst - แอปเพล็ต JavaCard ที่ใช้การสร้าง การลงนาม และการถอดรหัสคีย์แบบหลายฝ่ายที่ปลอดภัย
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Secure_multi-party_computation&oldid=1360994689 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การคำนวณแบบหลายฝ่ายที่ปลอดภัย

การคำนวณแบบหลายฝ่ายที่ปลอดภัย (หรือเรียกอีกอย่างว่า การคำนวณที่ปลอดภัย การ คำนวณแบบหลายฝ่าย ( MPC ) หรือ การคำนวณที่รักษาความเป็นส่วนตัว )...

ประวัติศาสตร์

โปรโตคอลวัตถุประสงค์พิเศษสำหรับงานเฉพาะเริ่มขึ้นในช่วงปลายทศวรรษ 1970 [ 2 ] ต่อมา การคำนวณที่ปลอดภัยได้รับการแนะนำอย่างเป็นทางการในชื่อ การคำนวณแบบสองฝ่ายที่ปลอดภัย (2PC) ในปี 1982 (สำหรับปัญหาที่เรียกว่า Millionaires' Problem...

คำจำกัดความและภาพรวม

ใน MPC (Multiple Computing) ผู้เข้าร่วมจำนวนหนึ่ง p 1 , p 2 , ..., p N แต่ละคนจะมี ข้อมูลส่วนตัว d 1 , d 2 , ..., d N ตามลำดับ ผู้เข้าร่วมต้องการคำนวณค่าของฟังก์ชันสาธารณะบนข้อมูลส่วนตัวนั้น: F(d 1 , d 2 , ...

คำจำกัดความด้านความปลอดภัย

โปรโตคอลการคำนวณแบบหลายฝ่ายต้องมีความปลอดภัยจึงจะมีประสิทธิภาพ ในการเข้ารหัสลับสมัยใหม่ ความปลอดภัยของโปรโตคอลเกี่ยวข้องกับการพิสูจน์ความปลอดภัย...