Utilizzo dei codici di correzione degli errori in teoria


39

Quali sono le applicazioni dei codici di correzione degli errori in teoria oltre alla correzione degli errori stessa? Sono a conoscenza di tre applicazioni: teorema di Goldreich-Levin sul bit hard core, la costruzione dell'estrattore di Trevisan e l' amplificazione della durezza della funzione booleana (di Sudan-Trevisan-Vadhan).

Quali sono le altre applicazioni "gravi" o "ricreative" dei codici di correzione degli errori?

UPD: un'applicazione divertente di decodifica di elenchi di codici Reed-Solomon è una soluzione a una particolare variazione del gioco di 20 domande (e un'altra , più semplice, variazione).


1
Forse sarò sciocco, ma nessuno ha parlato del teorema del PCP
Antonio Fa

Risposte:


23

Ecco un'applicazione semplice nella complessità della comunicazione (che vedo ora è anche descritta in un commento di Andy Drucker sul suo blog ) al di fuori del contesto della derandomizzazione:

Supponiamo che Alice e Bob sono date stringhe e , rispettivamente, e vogliono scoprire se la distanza di Hamming tra e è al massimo (dove è una costante fissa). Vogliamo dimostrare una complessità di comunicazione inferiore a questo problema. L'osservazione è che qualsiasi protocollo deterministico per questo problema produce un protocollo deterministico con lo stesso numero di giri per controllare l'uguaglianza di due stringhe e di lunghezza dove è una certa costante dipendente . Perché? Per verificare l'uguaglianza dixyxyϵnϵabcnc<1ϵae , Alice e Bob possono eseguire il protocollo per il primo problema su e dove è un errore che corregge il codice con distanza almeno . Poiché esiste un limite inferiore lineare facile per il problema dell'uguaglianza, ciò produce anche un limite inferiore lineare deterministico per il primo problema.bC(a)C(b)Cε


Applicazione molto accurata!
ilyaraz,

1
Ma ... Non possiamo limitarci a con una quantità sufficiente di zeri e - di quelli? yXy
ilyaraz,

ilyaraz - se lo facessimo, anche se x, y fossero uguali all'inizio, avrebbero una grande distanza di Hamming dopo il riempimento. Lo scopo di usare la mappa C () è preservare l'uguaglianza e allo stesso tempo 'amplificare' la disuguaglianza.
Andy Drucker,

Ma vogliamo distinguere due situazioni: piccolo peso di Hamming contro grande peso di Hamming. Perché vogliamo preoccuparci di preservare l'uguaglianza?
ilyaraz,

3
L'uso più interessante di questa idea è in realtà quello di dimostrare un limite superiore alla complessità della comunicazione randomizzata dell'uguaglianza: basta confrontare un bit casuale da C (a) e C (b). Se a = b allora otterrai sicuramente l'uguaglianza, altrimenti avrai epsilon di probabilità per ottenere la disuguaglianza. Ciò richiede bit O (logn) (per scegliere l'indice del bit confrontato) e se le parti hanno una casualità comune, la complessità è solo O (1).
Noam,

17

Esiste un ENORME numero di applicazioni di codici di correzione degli errori nell'informatica teorica.

Un'applicazione classica [che penso non sia stata menzionata sopra] è la costruzione di estrattori / campionatori di casualità; vedi, ad esempio, qui: http://people.seas.harvard.edu/~salil/cs225/spring09/lecnotes/list.htm

Ci sono anche molte applicazioni alla crittografia, e sono sicuro che uno dei lettori informati sarebbe felice di elaborare :)


Penso che l'OP abbia menzionato la costruzione dell'estrattore di Trevisan nella domanda.
Suresh Venkat,

14

Ecco una nuova applicazione, hot off the presses! Un nuovo rapporto ECCC di Or Meir ha questo come suo estratto:

Il teorema IP, che afferma che IP = PSPACE (Lund et. Al., E Shamir, in J. ACM 39 (4)), è uno dei principali risultati della teoria della complessità. Le prove note del teorema si basano sulla tecnica dell'aritmetizzazione, che trasforma una formula booleana quantificata in un polinomio correlato. L'intuizione che sta alla base dell'uso dei polinomi è comunemente spiegata dal fatto che i polinomi costituiscono buoni codici di correzione degli errori. Tuttavia, le prove note sembrano adattate all'uso di polinomi e non si generalizzano a codici arbitrari di correzione degli errori.

In questo lavoro, mostriamo che il teorema IP può essere dimostrato usando codici di correzione errori generali. Riteniamo che ciò costituisca una base rigorosa per l'intuizione sopra menzionata e getti ulteriore luce sul teorema IP.


Ho visto il tuo commento, quando avevo intenzione di pubblicare lo stesso. Bello!
ilyaraz,

8

Esiste una serie di articoli sulla steganografia e il calcolo nascosto (che inizia qui ) che richiedono fondamentalmente codici di correzione degli errori. Modellano chiamate oracolari fallite per attingere da una distribuzione arbitraria come rumore in un canale.


7

Alcuni altri esempi:

  • εε

  • Miglioramento della riduzione dimensionale randomizzata rapida (trasformazione rapida di Johnson-Lindenstrauss), in Ailon-Liberty, SODA'08 .


Risposta molto bella!
ilyaraz,

7

I codici di correzione degli errori vengono utilizzati nella crittografia per risolvere il problema della riconciliazione delle informazioni : Alice e Bob vogliono accordarsi su una chiave K a partire dalle stringhe (correlate) X e Y, rispettivamente. (Un esempio di questa situazione è un protocollo che si basa su un canale rumoroso, con Alice che invia X a Bob.) Una soluzione consiste nel fare in modo che Alice invii un errore nella correzione delle informazioni C a Bob in modo che possa ricostruire X. Naturalmente, il problema non è così semplice: poiché C perde alcune informazioni sull'avversario Eve, per ottenere la chiave segreta dobbiamo fare l'amplificazione della privacy. Questo può essere fatto con una funzione di hash 2 universale, come garantito dal lemma di hash rimanente.

Recentemente, gli estrattori fuzzy sono stati introdotti come una variante di estrattori tolleranti al rumore: estraggono una stringa uniformemente casuale R dal suo ingresso W e producono anche una "impronta digitale" P tale che se l'ingresso cambia in una stringa simile W ', la stringa casuale R può essere recuperato da P e W '. La costruzione di estrattori fuzzy si basa anche su codici di correzione degli errori.



6

In effetti, come menzionato da Dana, ci sono molti esempi.

Nel calcolo della tolleranza agli errori i codici di correzione degli errori sono molto importanti. Penso che l'articolo del 1988 di Ben-Or Goldwasser e Wigderson Teoremi di completezza per il calcolo distribuito tollerante ai guasti non crittografici , pur non citando esplicitamente i risultati della correzione degli errori, hanno un sapore ECC.

Naturalmente, il "teorema di soglia" che consente il calcolo quantico tollerante ai guasti si basa in modo cruciale sui codici di correzione degli errori quantistici che sono analoghi quantici dell'ECC ordinario.
(L' articolo di Wikipedia per il teorema della soglia ha certamente bisogno di lavoro; ma l' articolo sulla correzione quantistica dell'errore è migliore.)


5

Consulta l'elenco dei documenti ECCC contrassegnati con "codici di correzione errori" .

Esaminando l'elenco, vedrai che esiste una connessione tra codici di correzione degli errori e PCP (non so se considererai questa applicazione "al di là della semplice correzione degli errori"), e anche l' apprendimento PAC .


2
In particolare, i codici noti come "codici testabili localmente" (LTC) hanno strette somiglianze con i PCP e le idee utilizzate nella costruzione di LTC sono state utili anche nella costruzione di PCP. Inoltre, non sono sicuro se il sondaggio di Trevisan "Alcune applicazioni della teoria dei codici nella complessità computazionale" sia stato menzionato, ma questo è un buon riferimento per la tua domanda.
Andy Drucker,

4

Per un ottimo resoconto di come vengono utilizzati i codici di correzione degli errori in una particolare situazione pratica, guarda:

The Mathematics of the Compact Disc, di Jack H. Van Lint, in Mathematics Everywhere, M. Aigner ed E. Behrends (a cura di), American Mathematical Society, 2010

(Questo libro è una traduzione dall'originale tedesco.)


3

Un'altra applicazione è nei codici di autenticazione. Si tratta essenzialmente di codifiche progettate per rilevare eventuali manomissioni del messaggio e fondamentalmente si basano sulla correzione degli errori. Questo è un po 'più che una semplice correzione degli errori, che tende a comportare ipotesi sulla struttura del rumore.


2

Il codice di correzione degli errori ha avuto applicazioni nel test delle proprietà:

(Mi dispiace, questo è un po 'distorto rispetto agli articoli che ho scritto insieme, principalmente a causa della mia familiarità con quelli.)


1

Riteniamo che la crittografia a chiave pubblica basata su codice sia post-quantistica. In effetti, la crittografia basata su codice ha il record storico più lungo tra gli schemi di chiave pubblica post-quantistica, ma le dimensioni delle chiavi sembrano impraticabilmente grandi, come 1 MB in McBits .

Utilizziamo codici di correzione degli errori anche nella crittografia a chiave pubblica basata su reticoli, che impiegano una fase di riconciliazione come menzionato da Felipe Lacerda. In effetti, la nostra migliore scommessa attuale per uno scambio di chiavi post-quantico è lo schema Modulo-LWE Kyber (basato su reticolo).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.