0Pricing
Cryptology Academy · บทเรียน

ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao

ทำความเข้าใจการคำนวณที่ปลอดภัยระหว่างสองฝ่ายผ่านวงจรบูลีนที่ทำให้สับสน

ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

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

MPC เปิดให้ผู้เข้าร่วม n ฝ่าย ซึ่งแต่ละฝ่ายถืออินพุตส่วนตัว x_i ร่วมกันคำนวณ f(x_1,...,x_n) โดยไม่เปิดเผยอินพุตของตนแก่กันและกัน เสมือนว่าบุคคลที่สามซึ่งเชื่อถือได้เป็นผู้คำนวณให้

ตัวอย่างคลาสสิก: ปัญหาเศรษฐี

ปัญหาเศรษฐีของเหยาในปี 1982: อลิซและบ็อบต้องการทราบว่าใครร่ำรวยกว่าโดยไม่เปิดเผยทรัพย์สินของตน และไม่มีบุคคลที่สามซึ่งเชื่อถือได้ MPC แก้ปัญหานี้ด้วยหลักประกันทางการเข้ารหัส

เป้าหมายด้านความปลอดภัยใน MPC

1. ความเป็นส่วนตัว: ผู้เข้าร่วมจะเรียนรู้เฉพาะเอาต์พุตและสิ่งที่อนุมานได้จากเอาต์พุตนั้น 2. ความถูกต้อง: เอาต์พุตยังถูกต้องแม้ผู้เข้าร่วมบางรายจะถูกควบคุม 3. มีรูปแบบต่างกันสำหรับผู้โจมตีที่ปฏิบัติตามโพรโทคอลแต่พยายามเรียนรู้ข้อมูลเพิ่มเติม และผู้โจมตีที่มุ่งร้าย

วงจรบูลีนในฐานะแบบจำลองการคำนวณ

ฟังก์ชันใด ๆ สามารถเขียนแทนได้ด้วยวงจรบูลีน ซึ่งประกอบด้วยเกต AND, XOR และ NOT โพรโทคอล MPC มักทำงานในระดับวงจร โดยประเมินค่าแต่ละเกตอย่างปลอดภัย

โครงสร้างวงจรพรางของเหยา

อลิซในฐานะผู้สร้างวงจรพรางกำหนดป้ายกำกับแบบสุ่มสองค่าให้กับสายแต่ละเส้น ได้แก่ค่าหนึ่งสำหรับ 0 และอีกค่าสำหรับ 1 จากนั้นเธอเข้ารหัสตารางค่าความจริงของแต่ละเกตโดยใช้ป้ายกำกับของสายอินพุต บ็อบในฐานะผู้ประเมินจะเรียนรู้เฉพาะป้ายกำกับสำหรับอินพุตของตนผ่าน Oblivious Transfer

การประเมินค่าเกตพราง

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

การปรับให้เหมาะสมแบบชี้และสับเปลี่ยนลำดับ

เพิ่ม “บิตเลือก” แบบสุ่มให้กับป้ายกำกับแต่ละค่า บ็อบใช้บิตเลือกเพื่อค้นหาแถวที่ถูกต้องในตารางพรางด้วยเวลา O(1) แทนการลองถอดรหัสทั้งสี่รายการ ทำให้การคำนวณลดลง 4 เท่า

การปรับให้เหมาะสมแบบ XOR ฟรี

โคเลสนิคอฟและชไนเดอร์ (2008) เสนอให้เลือกค่าเลื่อนส่วนกลาง Δ จากนั้นกำหนดให้ label_1 = label_0 ⊕ Δ สำหรับสายทุกเส้น เกต XOR จึงไม่เสียค่าใช้จ่าย เพราะไม่จำเป็นต้องเข้ารหัส ช่วยประหยัดแบนด์วิดท์ได้ประมาณ 30%

เกตครึ่งหนึ่ง: เกต AND ขั้นต่ำ

ซาฮูร์ และคณะ (2015): เกต AND แต่ละเกตต้องใช้ข้อความเข้ารหัสเพียง 2 รายการ ลดลงจาก 4 รายการ เมื่อใช้ร่วมกับการปรับแบบ XOR ฟรี วิธีนี้ลดแบนด์วิดท์ของวงจรพรางมาตรฐานลงครึ่งหนึ่ง

การสร้างวงจรพรางสำหรับสองฝ่ายและหลายฝ่าย

วงจรพรางแบบคลาสสิกใช้สำหรับสองฝ่าย ส่วนส่วนขยายสำหรับหลายฝ่าย เช่น โพรโทคอล BMR จะทำให้การสร้างวงจรพรางของทุกฝ่ายทำงานขนานกัน แต่ต้องใช้การสื่อสาร O(n²) จึงเหมาะกับค่า n ขนาดเล็ก

แบบทดสอบความเข้าใจ

ในโพรโทคอลวงจรพรางของเหยา บ็อบได้รับป้ายกำกับสายที่ตรงกับบิตอินพุตส่วนตัวของตนอย่างไร

สรุปบทเรียน

MPC ช่วยให้ผู้เข้าร่วมคำนวณร่วมกันได้โดยไม่เปิดเผยอินพุต วงจรพรางเข้ารหัสฟังก์ชันบูลีนเป็นตารางค่าความจริงที่เข้ารหัส การปรับให้เหมาะสม เช่น XOR ฟรี เกตครึ่งหนึ่ง และการชี้และสับเปลี่ยนลำดับ ทำให้ใช้งานได้จริง OT ส่งมอบป้ายกำกับอินพุตของบ็อบอย่างเป็นส่วนตัว

คำถามที่พบบ่อย

บทเรียน “ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao”

ทำความเข้าใจการคำนวณที่ปลอดภัยระหว่างสองฝ่ายผ่านวงจรบูลีนที่ทำให้สับสน คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ปัญหา MPC และวงจรบูลีนที่ทำให้สับสนของ Yao
  2. โพรโทคอล GMW และการถ่ายโอนแบบไม่รู้ตัว
  3. SPDZ และ MPC เชิงเลขคณิตบนส่วนแบ่งความลับ
  4. การประยุกต์ใช้ MPC: การหาจุดร่วมของเซตแบบรักษาความเป็นส่วนตัวและแมชชีนเลิร์นนิง
← กลับไปที่ Cryptology Academy