การใช้รหัสแก้ไขข้อผิดพลาดในทางทฤษฎี


39

แอปพลิเคชันของรหัสแก้ไขข้อผิดพลาดในทางทฤษฎีมีอะไรบ้างนอกเหนือจากการแก้ไขข้อผิดพลาดเอง? ฉันตระหนักถึงสามแอปพลิเคชัน: ทฤษฎีบท Goldreich-Levinเกี่ยวกับฮาร์ดคอร์บิต, การสร้างเครื่องสกัดและการขยายความแข็งของฟังก์ชันบูลีนของ Trevisan (โดย Sudan-Trevisan-Vadhan)

แอปพลิเคชัน 'ร้ายแรง' หรือ 'สันทนาการ' อื่น ๆ ของรหัสแก้ไขข้อผิดพลาดคืออะไร?

UPD: แอปพลิเคชั่นหนึ่งที่น่าขบขันในการถอดรหัสรายการรหัส Reed-Solomon เป็นวิธีแก้ปัญหาสำหรับรูปแบบเฉพาะของเกมคำถาม 20 ข้อ (และอีกรูปแบบหนึ่งที่ตรงไปตรงมามากขึ้นการเปลี่ยนแปลง)


1
บางทีฉันอาจจะโง่ แต่ไม่มีใครพูดเกี่ยวกับทฤษฎีบท PCP
AntonioFa

คำตอบ:


23

นี่คือแอปพลิเคชันที่ตรงไปตรงมาในความซับซ้อนของการสื่อสาร (ซึ่งฉันเห็นในตอนนี้มีการอธิบายไว้ในข้อคิดเห็นโดย Andy Drucker บนบล็อกของเขา) นอกบริบทของการทำให้เป็นแบบสุ่ม:

สมมติว่า Alice และ Bob ได้รับสายอักขระและตามลำดับและพวกเขาต้องการค้นหาว่าระยะทางระหว่าง Hamming กับและนั้นมากที่สุดที่ (โดยที่เป็นค่าคงที่) เราต้องการพิสูจน์ความซับซ้อนของการสื่อสารที่ต่ำกว่าขอบเขตสำหรับปัญหานี้ การสังเกตก็คือว่าใด ๆ โปรโตคอลกำหนดสำหรับปัญหานี้มีผลเป็นโปรโตคอลที่กำหนดมีหมายเลขเดียวกันของรอบสำหรับการตรวจสอบความเท่าเทียมกันของสองสายและของความยาวที่เป็นค่าคงที่ขึ้นอยู่กับ\ทำไม? เพื่อตรวจสอบความเท่าเทียมกันของy x y ϵ n ϵ axyxyϵnϵac n c < 1 ϵ abcnc<1ϵaและอลิซและบ๊อบสามารถเรียกใช้โปรโตคอลสำหรับปัญหาที่เกิดขึ้นเป็นครั้งแรกในและที่เป็นข้อผิดพลาดแก้ไขรหัสด้วยระยะทางอย่างน้อย\เนื่องจากมีขอบเขตล่างเชิงเส้นที่ง่ายสำหรับปัญหาความเสมอภาคนี่จึงให้ขอบเขตล่างเชิงเส้นแบบกำหนดแน่นอนสำหรับปัญหาแรกC ( a ) C ( b ) C ϵbC(a)C(b)Cϵ


แอปพลิเคชั่นที่ประณีตมาก!
ilyaraz

1
แต่ ... เราไม่สามารถเอาจำนวนที่เพียงพอและ - ด้วยได้หรือไม่ yxy
ilyaraz

ilyaraz - ถ้าเราทำอย่างนั้นถึงแม้ว่า x, y เท่ากับเริ่มต้นพวกเขาจะมีระยะห่างของ Hamming มากหลังจากแพ็ดดิ้ง จุดประสงค์ของการใช้แผนที่ C () คือการรักษาความเท่าเทียมกันในขณะที่ 'ขยาย' ความไม่เท่าเทียมกัน
Andy Drucker

แต่เราต้องการแยกแยะสถานการณ์ที่สอง: น้ำหนัก Hamming ขนาดเล็กเทียบกับน้ำหนัก Hamming ขนาดใหญ่ ทำไมเราต้องการที่จะดูแลรักษาความเท่าเทียมกัน?
ilyaraz

3
การใช้แนวคิดนี้ที่น่าสนใจที่สุดคือการพิสูจน์ขอบเขตบนความซับซ้อนของการสื่อสารแบบสุ่มของความเสมอภาค: เพียงเปรียบเทียบบิตสุ่มจาก C (a) และ C (b) ถ้า a = b ถ้างั้นคุณก็จะได้ความเสมอภาคไม่เช่นนั้นคุณมี epsilon น่าจะเป็นเพื่อความไม่เท่าเทียมกัน สิ่งนี้ต้องใช้บิต O (logn) (ในการเลือกดัชนีของบิตเปรียบเทียบ) และหากฝ่ายต่างๆมีการสุ่มแบบทั่วไปความซับซ้อนนั้นก็แค่ O (1)

17

มีการใช้งานจำนวนมากของรหัสการแก้ไขข้อผิดพลาดในวิทยาการคอมพิวเตอร์เชิงทฤษฎี

แอปพลิเคชันแบบคลาสสิก [ที่ฉันคิดว่าไม่ได้กล่าวถึงข้างต้น] คือการสร้างเครื่องแยกแบบสุ่ม / ตัวอย่าง ดูเช่นที่นี่: http://people.seas.harvard.edu/~salil/cs225/spring09/lecnotes/list.htm

นอกจากนี้ยังมีแอปพลิเคชันมากมายสำหรับการเข้ารหัสและฉันแน่ใจว่าหนึ่งในผู้อ่านที่ได้รับข้อมูลจะยินดีที่จะอธิบายอย่างละเอียด :)


ฉันคิดว่า OP พูดถึงการก่อสร้างของ Trevisan ในคำถาม
Suresh Venkat

14

นี่คือแอปพลิเคชั่นใหม่กดร้อนแรง! รายงาน ECCC ใหม่โดย Or Meirมีสิ่งนี้เป็นนามธรรม:

ทฤษฎีบท IP ซึ่งอ้างว่า IP = PSPACE (Lund et. al. และ Shamir ใน J. ACM 39 (4)) เป็นหนึ่งในความสำเร็จที่สำคัญของทฤษฎีความซับซ้อน การพิสูจน์ทฤษฎีบทที่รู้จักกันนั้นมีพื้นฐานมาจากเทคนิคการคำนวณเลขคณิตซึ่งเปลี่ยนสูตรบูลีนเชิงปริมาณเป็นพหุนามที่เกี่ยวข้อง สัญชาตญาณที่รองรับการใช้งานของชื่อที่ประกอบด้วยหลายคำที่มีความจริงที่ว่ามีหลายชื่อประกอบด้วยรหัสแก้ไขข้อผิดพลาด อย่างไรก็ตามหลักฐานที่เป็นที่รู้จักนั้นดูเหมือนจะปรับให้เข้ากับการใช้ชื่อพหุนามและไม่ได้พูดถึงการแก้ไขข้อผิดพลาดโดยพลการ

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


ฉันเห็นความคิดเห็นของคุณเมื่อฉันตั้งใจจะโพสต์สิ่งเดียวกัน ดี!
ilyaraz

8

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


7

ตัวอย่างอื่น ๆ :

  • การสร้างพื้นที่ตัวอย่างอิสระ -biased k-wise (เช่นNaor-Naor, STOC'90 ) ที่จริงแล้วพวกเขาใช้ ECC สองครั้งก่อนสร้างอิงตามพื้นที่ตัวอย่างแล้วแปลงเป็น k-wise อิสระϵϵϵ

  • ปรับปรุงการลดมิติแบบสุ่มอย่างรวดเร็ว (Fast จอห์นสัน Lindenstrauss Transform) ในAilon-เสรีภาพ SODA'08


คำตอบที่ดีมาก!
ilyaraz

7

รหัสการแก้ไขข้อผิดพลาดถูกใช้ในการเข้ารหัสเพื่อแก้ปัญหาการกระทบยอดข้อมูล : Alice และ Bob ต้องการเห็นด้วยกับคีย์ K โดยเริ่มจากสตริงที่มีความสัมพันธ์ X และ Y ตามลำดับ (ตัวอย่างของสถานการณ์นี้คือโปรโตคอลที่อาศัยช่องทางที่มีเสียงดังโดยอลิซส่ง X ไปยัง Bob) วิธีแก้ปัญหาคือทำให้อลิซส่งข้อผิดพลาดในการแก้ไขข้อมูล C ถึง Bob เพื่อให้เขาสามารถสร้าง X ขึ้นใหม่ได้แน่นอนปัญหา ไม่ใช่เรื่องง่าย: เนื่องจาก C มีการรั่วไหลของข้อมูลบางอย่างไปยังฝ่ายตรงข้ามอีฟเราจึงต้องทำการขยายความเป็นส่วนตัวเพื่อรับคีย์ลับ สิ่งนี้สามารถทำได้ด้วยฟังก์ชันแฮชแบบ 2 สากลตามที่รับประกันโดย hash lemma ที่เหลือ

เมื่อเร็ว ๆ นี้ได้มีการนำเสนอตัวแยกสัญญาณแบบฝอยเป็นตัวแปรตัวแยกสัญญาณรบกวนของตัวแยกสัญญาณ: พวกเขาดึงสตริงสุ่ม R ที่สม่ำเสมอจากอินพุต W และสร้าง "ลายนิ้วมือ" P เช่นนั้นถ้าอินพุตเปลี่ยนเป็นสตริงคล้ายกัน W 'สตริงสุ่ม สามารถกู้คืน R จาก P และ W 'ได้ การสร้างตัวแยกฟัซซียังอาศัยรหัสการแก้ไขข้อผิดพลาด


6

Andy Drucker ได้พูดถึงการสำรวจโดย Trevisan [Tre04] ในความคิดเห็นต่อคำตอบอื่นแต่ฉันคิดว่ามันควรจะพูดถึงในแบบอักษรขนาดใหญ่!

[Tre04] Luca Trevisan การประยุกต์ใช้ทฤษฎีการเข้ารหัสบางอย่างในความซับซ้อนในการคำนวณ Quaderni di Matematica , 13: 347–424, 2004. http://www.cs.berkeley.edu/~luca/pubs/codingsurvey.pdf


6

แน่นอนดังที่ Dana ได้กล่าวไว้มีตัวอย่างมากมาย

ในรหัสการแก้ไขข้อผิดพลาดการคำนวณข้อผิดพลาดที่มีความสำคัญมาก ฉันคิดว่ากระดาษ 1988 โดย Ben-Goldwasser และทฤษฎีบทความสมบูรณ์ครบถ้วนของ Wigderson สำหรับการคำนวณแบบกระจายที่ไม่ใช่การเข้ารหัสลับที่ไม่ได้เข้ารหัสลับในขณะที่การอ้างถึงข้อผิดพลาดการแก้ไขข้อผิดพลาดอย่างชัดเจนมี ECC

แน่นอนว่า "ทฤษฎีบทธรณีประตู" ช่วยให้การคำนวณควอนตัมที่ยอมรับความผิดต้องอาศัยวิธีการสำคัญในการแก้ไขข้อผิดพลาดของควอนตัมซึ่งเป็นควอนตัมแบบอะนาล็อกของ ECC สามัญ
( บทความ Wikipediaสำหรับทฤษฎีบทขีด จำกัด ต้องทำงานอย่างแน่นอน แต่บทความเกี่ยวกับการแก้ไขข้อผิดพลาดเชิงปริมาณจะดีกว่า)


5

ตรวจสอบรายชื่อของเอกสาร ECCC ที่ถูกแท็กด้วย "รหัสแก้ไขข้อผิดพลาด"

perusing รายการที่คุณจะเห็นว่ามีการเชื่อมต่อระหว่างรหัสแก้ไขข้อผิดพลาดและ PCPs (ผมไม่ทราบว่าคุณจะพิจารณานี้เป็นโปรแกรม "กว่าเพียงแค่การแก้ไขข้อผิดพลาดของตัวเอง.") และยังเรียนรู้ PAC


2
โดยเฉพาะรหัสที่เรียกว่า 'รหัสที่ทดสอบได้ในท้องถิ่น' (LTC) มีความคล้ายคลึงกันอย่างใกล้ชิดกับ PCP และแนวคิดที่ใช้ในการสร้าง LTC ก็มีประโยชน์ในการสร้าง PCP ด้วยเช่นกัน นอกจากนี้ฉันไม่แน่ใจว่าแบบสำรวจของ Trevisan มีการกล่าวถึง "การประยุกต์ใช้ทฤษฎีการเข้ารหัสบางอย่างในความซับซ้อนในการคำนวณ" แต่นั่นเป็นการอ้างอิงที่ดีสำหรับคำถามของคุณ
Andy Drucker

4

สำหรับบัญชีที่ดีมากเกี่ยวกับวิธีใช้รหัสการแก้ไขข้อผิดพลาดในสถานการณ์จริงที่เฉพาะเจาะจงดูที่:

คณิตศาสตร์ของคอมแพคดิสก์โดย Jack H. Van Lint ในคณิตศาสตร์ทุกหนทุกแห่ง, M. Aigner และ E. Behrends (บรรณาธิการ), สมาคมคณิตศาสตร์อเมริกัน, 2010

(หนังสือเล่มนี้เป็นคำแปลจากต้นฉบับภาษาเยอรมัน)


3

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


2

รหัสแก้ไขข้อผิดพลาดมีแอปพลิเคชันในการทดสอบคุณสมบัติ:

(ขออภัยนี่เป็นอคติเล็กน้อยต่อเอกสารที่ฉันเขียนร่วมส่วนใหญ่เนื่องจากฉันคุ้นเคยกับสิ่งเหล่านี้)


1

เราเชื่อว่าการเข้ารหัสรหัสสาธารณะที่ใช้รหัสเป็นโพสต์ควอนตัม ในความเป็นจริงรหัสฐานการเข้ารหัสที่มีประวัติยาวนานที่สุดในหมู่ผู้โพสต์ควอนตัมรูปแบบคีย์สาธารณะ แต่ขนาดของคีย์ดูเหมือนขนาดใหญ่ impractically, เช่น 1MB ใน McBits

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.