Fully Homomorphic Encryption: บทนำและกรณีใช้งาน

ขั้นสูงAug 22, 2024
บทความนี้มีจุดมุ่งหมายเพื่อให้ผู้อ่านเห็นภาพรวมในระดับที่สูงขึ้นว่า FHE สามารถใช้ทําอะไรได้บ้างและสถานการณ์หรือการตั้งค่าต่างๆ ที่ใช้ประโยชน์จาก FHE ในบล็อกโพสต์ในอนาคตเราจะเจาะลึกรายละเอียดเพิ่มเติมเกี่ยวกับประเภทของ FHE (ซึ่งมีอิทธิพลต่อประเภทของการคํานวณที่เราสามารถทําได้) และสุดท้ายคอมไพเลอร์ประเภทใดที่เราสามารถหาได้เพื่อแปลโปรแกรมของเราเป็นการดําเนินงานที่สามารถคํานวณได้โดยใช้ FHE
Fully Homomorphic Encryption: บทนำและกรณีใช้งาน

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

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

เพื่อแก้ไขปัญหานี้และ use case ที่คล้ายกันเราสามารถใช้ Fully Homomorphic Encryption (FHE) ได้ FHE เป็นรูปแบบของการเข้ารหัสที่ช่วยให้เราสามารถคำนวณฟังก์ชันบน ciphertext โดยไม่ต้องถอดรหัสและเพื่อให้ได้รหัสลับของผลลัพธ์ของฟังก์ชันโดยตรง

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

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

FHE cũngกระทบเข้าไปยังการถอดรหัสเท่านั้นที่ขึ้นอยู่กับจำนวนของบิตในผลลัพธ์ข้อความประโยค มันไม่ขึ้นอยู่กับการทำงานต่อเนื่องที่ถูกนำไปใช้งาน สิ่งนี้ทำให้ระบบไม่เป็นระบบที่ไม่กะทบเข้าไปยังการถอดรหัสเท่านั้นที่ไม่สมบูรณ์ที่อาจจะนำข้อความไปต่อกันว่างๆ ที่ผู้รับสามารถทำงานโดยการถอดรหัสข้อความแล้วนำไปใช้งาน

การเอาท์ซอร์ส FHE มักถูกนําเสนอเป็นทางเลือกในการรักษาความปลอดภัยโดยพิจารณาจากความแข็งของปัญหาทางคณิตศาสตร์มากกว่าอุปสรรคในทางปฏิบัติ ดังนั้น FHE จึงคงกระพันอย่างสมบูรณ์ต่อการโจมตีช่องทางด้านข้างแบบพาสซีฟหรือความเสียหายอื่น ๆ ของโฮสต์คลาวด์ ลองนึกภาพว่ามีคนต้องการจ้างคอมพิวเตอร์จากภายนอก แต่ข้อมูลนั้นละเอียดอ่อนจริงๆ บุคคลนั้นอาจลังเลที่จะใช้ VM บนคลาวด์หากมีคนอื่นสามารถรูทบนเครื่องได้ พวกเขาอาจจะลังเลที่จะเรียกใช้ในวงล้อมเช่น SGX โดยรู้ว่า CPU และหน่วยความจําของโฮสต์คลาวด์ได้รับการตรวจสอบอย่างต่อเนื่องสําหรับการโหลดพลังงานอุณหภูมิ บางทีข้อมูลบางอย่างสามารถดึงมาจากการวัดเหล่านี้ บุคคลนั้นอาจมั่นใจได้ด้วยคํามั่นสัญญาของ FHE ว่าการดึงข้อมูลใด ๆ เพียงเล็กน้อยจําเป็นต้องทําลายปัญหาทางคณิตศาสตร์หลังควอนตัมโดยไม่ขึ้นกับการวัดใด ๆ ที่เราสามารถรวบรวมได้

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

FHE มักถูกนำเสนอในรูปแบบ public key โดยมี:

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

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

สถานการณ์ FHE

ในส่วนนี้เราจะอธิบายเหตุการณ์บางรายการที่ FHE สามารถใช้งานได้ รวมถึงบางข้อดีและข้อเสียของแต่ละการตั้งค่า

โหมดการนำเสนอผู้ให้บริการจากภายนอก


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

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

ด้วยความสามารถของฮาร์ดแวร์ปัจจุบันโหมดการออกแบบยังคงช้าเล็กน้อยที่จะใช้ในทางปฏิบัติอย่างสมบูรณ์ - เราสามารถนับได้โดยทั่วไปว่ามีค่าโอเวอร์เฮดของเวลารัน 1 ล้านและค่าโอเวอร์เฮดของหน่วยความจำ 1,000 ในกรณีการใช้ที่ไม่เชิงเส้น อย่างไรก็ตาม ฮาร์ดแวร์ FHE กำลังถูกพัฒนาอยู่เพื่อทำให้ระยะห่างลดลงโครงการ Darpa DPRIVEหรือCryptoLight.

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

ตารางนี้สรุปข้อดีและข้อเสียของโหมดการนอกรอง

โหมดการคำนวณสองฝ่าย

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

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

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

โหมดการรวมกลุ่ม

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

โหมด Client-Server

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

วิธีการเข้ารหัสแบบโฮโมมอร์ฟิกมั่นใจว่าฟังก์ชันที่คำนวณเป็นไปตามกฎหมายอย่างไร

การใช้ FHE ในสถานการณ์การทํางานร่วมกันนั้นง่ายกว่าเสมอซึ่งผู้เข้าร่วมแต่ละคนมีแรงจูงใจในการปฏิบัติตามโปรโตคอลอย่างซื่อสัตย์ ตัวอย่างเช่น FHE สามารถใช้ในการคํานวณสถิติระหว่างสองนิติบุคคลของกลุ่มเดียวกันในสองประเทศที่แตกต่างกัน: กฎระเบียบเช่น GDPR อนุญาตให้มีการเผยแพร่สถิติบางอย่าง แต่ป้องกันไม่ให้รวบรวมข้อมูล indidividual ทั้งหมดในที่เดียวกัน ในกรณีนี้การใช้ FHE เป็นไปได้และผู้เข้าร่วมทุกคนมีแรงจูงใจที่จะปฏิบัติตามโปรโตคอลอย่างซื่อสัตย์ ในสถานการณ์ที่ไม่ทํางานร่วมกันวิธีที่ง่ายที่สุดในการตรวจสอบให้แน่ใจว่ามีการคํานวณฟังก์ชันที่เกี่ยวข้องคือการแนะนําความซ้ําซ้อน ตัวอย่างเช่นในสถานการณ์การเอาท์ซอร์สและการรวมการคํานวณแบบโฮโมมอร์ฟิกเป็นสาธารณะทั้งหมดและสามารถกําหนดได้ ตราบใดที่เอนทิตีอิสระสองเอนทิตีขึ้นไปลงเอยด้วยข้อความเข้ารหัสเอาต์พุตเดียวกันการคํานวณนั้นถูกต้องและผลลัพธ์จะปลอดภัยในการถอดรหัส ยิ่งมีความซ้ําซ้อนมากเท่าไหร่ความมั่นใจก็จะยิ่งสูงขึ้นเท่านั้นซึ่งแน่นอนว่าเป็นการแลกเปลี่ยนกับประสิทธิภาพ

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

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

FHE ทำอย่างไรเพื่อให้ผู้รับสุดท้ายถอดรหัสเพียงผลลัพธ์สุดท้ายเท่านั้นและไม่ได้ถอดรหัสตัวแปรกลาง?

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการตรวจสอบว่าเจ้าของกุญแจถอดรหัสไม่สามารถเข้าถึงข้อความที่เข้ารหัสได้ในระหว่างทางใดๆ

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

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

องค์ประกอบของการเข้ารหัสแบบโฮโมมอร์ฟิก

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

กล่าวอีกนัยหนึ่งเมื่อคําถามถูกถามว่าวงจรข้อความธรรมดาที่กําหนดสามารถทํางานแบบ homomorphically ได้หรือไม่และมีค่าใช้จ่ายเท่าใด (ในเวลาและค่าใช้จ่ายหน่วยความจํา) PHE อาจตอบคําถามไม่ได้ LHE ตอบว่าใช่ แต่อาจกําหนดต้นทุนสูงโดยพลการสําหรับวงจรที่ซับซ้อน FHE ยังตอบว่าใช่และนอกจากนี้ยังมีคีย์การเข้ารหัสและอัลกอริธึมการถอดรหัสและวิธีการประเมินชุดเกตสากลแบบ homomorphically ก่อนที่จะระบุวงจรข้อความธรรมดาด้วยซ้ํา ดังนั้น FHE จึงเป็นโหมดเดียวที่รับประกันว่าหน่วยความจําและเวลาทํางานของการประเมิน homomorphic ยังคงเป็นสัดส่วนกับวงจรข้อความธรรมดาดั้งเดิม ในการทําเช่นนี้แผนการ FHE ทั้งหมดที่รู้จักกันในปัจจุบันจัดการกับข้อความเข้ารหัสที่มีเสียงดังมากขึ้นเรื่อย ๆ เมื่อคํานวณเสร็จแล้ว เพื่อหลีกเลี่ยงเสียงรบกวนล้นเข้าไปในการคํานวณที่ทําและนําไปสู่ข้อผิดพลาดในการถอดรหัสแผนการเหล่านี้จะดําเนินการที่ค่อนข้างแพงที่เรียกว่า bootstrapping ซึ่งช่วยลดเสียงรบกวนกลับสู่ระดับที่จัดการได้ ข้อมูลเพิ่มเติมเกี่ยวกับลักษณะเฉพาะของแต่ละรูปแบบเกี่ยวกับ bootstrapping และวิธีลดเสียงรบกวนและค่าใช้จ่ายอื่น ๆ ด้วยคอมไพเลอร์ FHE ในบล็อกโพสต์ที่สองของชุดนี้!

Disclaimer:

  1. บทความนี้พิมพ์ซ้ําจาก [cryptographycaffe] ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Nicolas Gama และ Sandra Guasch]. หากมีการท้าทานในการพิมพ์ฉบับนี้ โปรดติดต่อเกตเรียนทีมและพวกเขาจะดำเนินการโดยเร็ว
  2. คำประกาศประทับใจ: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงอันเดียวของผู้เขียนและไม่เป็นการให้คำแนะนำใด ๆ เกี่ยวกับการลงทุน
  3. การแปลบทความเป็นภาษาอื่น ๆ ทำโดยทีม Gate Learn หากไม่ได้กล่าวถึง การคัดลอก การแจกจ่าย หรือการลอกเลียนบทความที่ถูกแปลนั้นถูกห้าม

Fully Homomorphic Encryption: บทนำและกรณีใช้งาน

ขั้นสูงAug 22, 2024
บทความนี้มีจุดมุ่งหมายเพื่อให้ผู้อ่านเห็นภาพรวมในระดับที่สูงขึ้นว่า FHE สามารถใช้ทําอะไรได้บ้างและสถานการณ์หรือการตั้งค่าต่างๆ ที่ใช้ประโยชน์จาก FHE ในบล็อกโพสต์ในอนาคตเราจะเจาะลึกรายละเอียดเพิ่มเติมเกี่ยวกับประเภทของ FHE (ซึ่งมีอิทธิพลต่อประเภทของการคํานวณที่เราสามารถทําได้) และสุดท้ายคอมไพเลอร์ประเภทใดที่เราสามารถหาได้เพื่อแปลโปรแกรมของเราเป็นการดําเนินงานที่สามารถคํานวณได้โดยใช้ FHE
Fully Homomorphic Encryption: บทนำและกรณีใช้งาน

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

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

เพื่อแก้ไขปัญหานี้และ use case ที่คล้ายกันเราสามารถใช้ Fully Homomorphic Encryption (FHE) ได้ FHE เป็นรูปแบบของการเข้ารหัสที่ช่วยให้เราสามารถคำนวณฟังก์ชันบน ciphertext โดยไม่ต้องถอดรหัสและเพื่อให้ได้รหัสลับของผลลัพธ์ของฟังก์ชันโดยตรง

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

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

FHE cũngกระทบเข้าไปยังการถอดรหัสเท่านั้นที่ขึ้นอยู่กับจำนวนของบิตในผลลัพธ์ข้อความประโยค มันไม่ขึ้นอยู่กับการทำงานต่อเนื่องที่ถูกนำไปใช้งาน สิ่งนี้ทำให้ระบบไม่เป็นระบบที่ไม่กะทบเข้าไปยังการถอดรหัสเท่านั้นที่ไม่สมบูรณ์ที่อาจจะนำข้อความไปต่อกันว่างๆ ที่ผู้รับสามารถทำงานโดยการถอดรหัสข้อความแล้วนำไปใช้งาน

การเอาท์ซอร์ส FHE มักถูกนําเสนอเป็นทางเลือกในการรักษาความปลอดภัยโดยพิจารณาจากความแข็งของปัญหาทางคณิตศาสตร์มากกว่าอุปสรรคในทางปฏิบัติ ดังนั้น FHE จึงคงกระพันอย่างสมบูรณ์ต่อการโจมตีช่องทางด้านข้างแบบพาสซีฟหรือความเสียหายอื่น ๆ ของโฮสต์คลาวด์ ลองนึกภาพว่ามีคนต้องการจ้างคอมพิวเตอร์จากภายนอก แต่ข้อมูลนั้นละเอียดอ่อนจริงๆ บุคคลนั้นอาจลังเลที่จะใช้ VM บนคลาวด์หากมีคนอื่นสามารถรูทบนเครื่องได้ พวกเขาอาจจะลังเลที่จะเรียกใช้ในวงล้อมเช่น SGX โดยรู้ว่า CPU และหน่วยความจําของโฮสต์คลาวด์ได้รับการตรวจสอบอย่างต่อเนื่องสําหรับการโหลดพลังงานอุณหภูมิ บางทีข้อมูลบางอย่างสามารถดึงมาจากการวัดเหล่านี้ บุคคลนั้นอาจมั่นใจได้ด้วยคํามั่นสัญญาของ FHE ว่าการดึงข้อมูลใด ๆ เพียงเล็กน้อยจําเป็นต้องทําลายปัญหาทางคณิตศาสตร์หลังควอนตัมโดยไม่ขึ้นกับการวัดใด ๆ ที่เราสามารถรวบรวมได้

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

FHE มักถูกนำเสนอในรูปแบบ public key โดยมี:

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

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

สถานการณ์ FHE

ในส่วนนี้เราจะอธิบายเหตุการณ์บางรายการที่ FHE สามารถใช้งานได้ รวมถึงบางข้อดีและข้อเสียของแต่ละการตั้งค่า

โหมดการนำเสนอผู้ให้บริการจากภายนอก


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

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

ด้วยความสามารถของฮาร์ดแวร์ปัจจุบันโหมดการออกแบบยังคงช้าเล็กน้อยที่จะใช้ในทางปฏิบัติอย่างสมบูรณ์ - เราสามารถนับได้โดยทั่วไปว่ามีค่าโอเวอร์เฮดของเวลารัน 1 ล้านและค่าโอเวอร์เฮดของหน่วยความจำ 1,000 ในกรณีการใช้ที่ไม่เชิงเส้น อย่างไรก็ตาม ฮาร์ดแวร์ FHE กำลังถูกพัฒนาอยู่เพื่อทำให้ระยะห่างลดลงโครงการ Darpa DPRIVEหรือCryptoLight.

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

ตารางนี้สรุปข้อดีและข้อเสียของโหมดการนอกรอง

โหมดการคำนวณสองฝ่าย

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

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

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

โหมดการรวมกลุ่ม

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

โหมด Client-Server

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

วิธีการเข้ารหัสแบบโฮโมมอร์ฟิกมั่นใจว่าฟังก์ชันที่คำนวณเป็นไปตามกฎหมายอย่างไร

การใช้ FHE ในสถานการณ์การทํางานร่วมกันนั้นง่ายกว่าเสมอซึ่งผู้เข้าร่วมแต่ละคนมีแรงจูงใจในการปฏิบัติตามโปรโตคอลอย่างซื่อสัตย์ ตัวอย่างเช่น FHE สามารถใช้ในการคํานวณสถิติระหว่างสองนิติบุคคลของกลุ่มเดียวกันในสองประเทศที่แตกต่างกัน: กฎระเบียบเช่น GDPR อนุญาตให้มีการเผยแพร่สถิติบางอย่าง แต่ป้องกันไม่ให้รวบรวมข้อมูล indidividual ทั้งหมดในที่เดียวกัน ในกรณีนี้การใช้ FHE เป็นไปได้และผู้เข้าร่วมทุกคนมีแรงจูงใจที่จะปฏิบัติตามโปรโตคอลอย่างซื่อสัตย์ ในสถานการณ์ที่ไม่ทํางานร่วมกันวิธีที่ง่ายที่สุดในการตรวจสอบให้แน่ใจว่ามีการคํานวณฟังก์ชันที่เกี่ยวข้องคือการแนะนําความซ้ําซ้อน ตัวอย่างเช่นในสถานการณ์การเอาท์ซอร์สและการรวมการคํานวณแบบโฮโมมอร์ฟิกเป็นสาธารณะทั้งหมดและสามารถกําหนดได้ ตราบใดที่เอนทิตีอิสระสองเอนทิตีขึ้นไปลงเอยด้วยข้อความเข้ารหัสเอาต์พุตเดียวกันการคํานวณนั้นถูกต้องและผลลัพธ์จะปลอดภัยในการถอดรหัส ยิ่งมีความซ้ําซ้อนมากเท่าไหร่ความมั่นใจก็จะยิ่งสูงขึ้นเท่านั้นซึ่งแน่นอนว่าเป็นการแลกเปลี่ยนกับประสิทธิภาพ

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

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

FHE ทำอย่างไรเพื่อให้ผู้รับสุดท้ายถอดรหัสเพียงผลลัพธ์สุดท้ายเท่านั้นและไม่ได้ถอดรหัสตัวแปรกลาง?

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการตรวจสอบว่าเจ้าของกุญแจถอดรหัสไม่สามารถเข้าถึงข้อความที่เข้ารหัสได้ในระหว่างทางใดๆ

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

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

องค์ประกอบของการเข้ารหัสแบบโฮโมมอร์ฟิก

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

กล่าวอีกนัยหนึ่งเมื่อคําถามถูกถามว่าวงจรข้อความธรรมดาที่กําหนดสามารถทํางานแบบ homomorphically ได้หรือไม่และมีค่าใช้จ่ายเท่าใด (ในเวลาและค่าใช้จ่ายหน่วยความจํา) PHE อาจตอบคําถามไม่ได้ LHE ตอบว่าใช่ แต่อาจกําหนดต้นทุนสูงโดยพลการสําหรับวงจรที่ซับซ้อน FHE ยังตอบว่าใช่และนอกจากนี้ยังมีคีย์การเข้ารหัสและอัลกอริธึมการถอดรหัสและวิธีการประเมินชุดเกตสากลแบบ homomorphically ก่อนที่จะระบุวงจรข้อความธรรมดาด้วยซ้ํา ดังนั้น FHE จึงเป็นโหมดเดียวที่รับประกันว่าหน่วยความจําและเวลาทํางานของการประเมิน homomorphic ยังคงเป็นสัดส่วนกับวงจรข้อความธรรมดาดั้งเดิม ในการทําเช่นนี้แผนการ FHE ทั้งหมดที่รู้จักกันในปัจจุบันจัดการกับข้อความเข้ารหัสที่มีเสียงดังมากขึ้นเรื่อย ๆ เมื่อคํานวณเสร็จแล้ว เพื่อหลีกเลี่ยงเสียงรบกวนล้นเข้าไปในการคํานวณที่ทําและนําไปสู่ข้อผิดพลาดในการถอดรหัสแผนการเหล่านี้จะดําเนินการที่ค่อนข้างแพงที่เรียกว่า bootstrapping ซึ่งช่วยลดเสียงรบกวนกลับสู่ระดับที่จัดการได้ ข้อมูลเพิ่มเติมเกี่ยวกับลักษณะเฉพาะของแต่ละรูปแบบเกี่ยวกับ bootstrapping และวิธีลดเสียงรบกวนและค่าใช้จ่ายอื่น ๆ ด้วยคอมไพเลอร์ FHE ในบล็อกโพสต์ที่สองของชุดนี้!

Disclaimer:

  1. บทความนี้พิมพ์ซ้ําจาก [cryptographycaffe] ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Nicolas Gama และ Sandra Guasch]. หากมีการท้าทานในการพิมพ์ฉบับนี้ โปรดติดต่อเกตเรียนทีมและพวกเขาจะดำเนินการโดยเร็ว
  2. คำประกาศประทับใจ: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงอันเดียวของผู้เขียนและไม่เป็นการให้คำแนะนำใด ๆ เกี่ยวกับการลงทุน
  3. การแปลบทความเป็นภาษาอื่น ๆ ทำโดยทีม Gate Learn หากไม่ได้กล่าวถึง การคัดลอก การแจกจ่าย หรือการลอกเลียนบทความที่ถูกแปลนั้นถูกห้าม
เริ่มตอนนี้
สมัครและรับรางวัล
$100