Oh ragazzo, da dove cominciare.
Quello grande è sicuramente scatole nere. I ricercatori di Crypto si preoccupano di cose come il problema di inaffidabilità del modello Oracle casuale. I ricercatori della sicurezza sono all'estremo opposto e vorrebbero che tutto fosse utilizzabile come una scatola nera, non solo funzioni di hash. Questa è una fonte costante di tensione.
Per illustrare, se si esamina l'analisi formale dei protocolli di sicurezza, ad esempio la logica BAN , si vedrà che la crittografia simmetrica viene trattata come un "codice a blocchi ideale". C'è una sottile distinzione qui: la logica BAN (e altre tecniche di analisi del protocollo) non pretendono di essere prove di sicurezza; piuttosto, sono tecniche per trovare difetti. Pertanto non è strettamente vero che qui è coinvolto il modello di cifratura ideale. Tuttavia, è empiricamente vero che la maggior parte dell'analisi della sicurezza tende ad essere limitata al modello formale, quindi l'effetto è lo stesso.
Non abbiamo ancora nemmeno parlato dei praticanti. Questi tipi in genere non hanno nemmeno la minima idea che cripto-primitivi non siano destinati a essere scatole nere, e dubito che questo cambierà mai - decenni di tentativi di battere questo nella loro testa non hanno fatto la differenza.
Per vedere quanto è grave il problema, considera questo avviso di sicurezza relativo alla perdibilità della firma API. Il bug è in parte dovuto all'attacco di estensione della lunghezza nella costruzione Merkle-Damgard (che è qualcosa di veramente fondamentale), e colpisce Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive e Zoomr. Gli autori notano che questo non è un elenco completo.
Penso che i praticanti meritino la parte del leone della colpa per questo triste stato di cose. D'altra parte, forse anche i teorici delle criptovalute devono ripensare la loro posizione. La loro linea è stata: "le scatole nere sono impossibili da costruire; non ci proveremo nemmeno". Al che dico, dato che è chiaro che le tue costruzioni verranno comunque usate (mis) come scatole nere, perché non provare almeno a renderle il più vicino possibile alle scatole nere?
Il documento Merkle-Damgard Revisited è un ottimo esempio di ciò di cui sto parlando. Studiano l'idea di sicurezza secondo cui "la funzione di hash di lunghezza arbitraria H deve comportarsi come un oracolo casuale quando il blocco predefinito a lunghezza fissa è visto come un oracolo casuale o un cifrario a blocchi ideale". Questo tipo di ricerca teorica ha il potenziale per essere estremamente utile nella pratica.
Ora passiamo al tuo esempio di valutazione del circuito. Mi permetto di non essere d'accordo con il tuo ragionamento. Non è come se prendessi un binario compilato e lo trasformassi ciecamente in un circuito. Piuttosto, applicheresti la valutazione del circuito solo alla funzione di confronto sottostante che di solito è abbastanza semplice. Fairplay è un'implementazione della valutazione del circuito. Un mio collega con cui ha lavorato mi dice che è sorprendentemente veloce. Mentre è vero che l'efficienza è un problema con la valutazione dei circuiti (e conosco le istanze del mondo reale in cui è stata respinta per questo motivo), è tutt'altro che uno showtopper.
La seconda ragione per cui non sono d'accordo con te è che se pensi ad alcuni dei tipici scenari di vita reale in cui potresti voler realizzare una valutazione del circuito inconsapevole - per esempio, quando due società stanno scoprendo se unire - i costi di calcolo il coinvolgimento è banale rispetto allo sforzo e al budget umani complessivi.
Allora perché allora nessuno usa in pratica la valutazione generica delle funzioni sicure? Ottima domanda Questo mi porta alla mia seconda differenza tra teoria e pratica: la fiducia esiste davvero nella pratica! Non tutto deve essere fatto nel modello paranoico. L'insieme di problemi che le persone vogliono effettivamente risolvere utilizzando la crittografia è molto, molto più piccolo di quanto i crittografi immaginino.
Conosco qualcuno che ha avviato un'azienda che cerca di vendere servizi di calcolo multiparty sicuri a clienti aziendali. Indovina un po '- nessuno lo voleva. Il modo in cui affrontano questi problemi è di firmare un contratto specificando cosa è possibile e cosa non si può fare con i dati e che si distruggeranno i dati dopo aver finito di usarli per lo scopo previsto. La maggior parte delle volte funziona perfettamente.
Il mio ultimo punto di differenza tra teoria e pratica riguarda la PKI. I criptovalute spesso attaccano una frase da qualche parte che dice "assumiamo un PKI". Sfortunatamente, i certificati digitali per gli utenti finali (al contrario di siti Web o dipendenti in un contesto aziendale, dove esiste una gerarchia naturale) non si sono mai materializzati. Questo documento classico descrive l'ilarità che ne consegue quando chiedi alle persone normali di usare PGP. Mi è stato detto che il software è migliorato molto da allora, ma i problemi di progettazione e architettura e le limitazioni umane non sono molto diversi oggi.
Non credo che i crittografi dovrebbero fare qualcosa di diverso in conseguenza di questa mancanza di una PKI nel mondo reale, tranne che essere consapevoli del fatto che limita l'applicabilità nel mondo reale dei protocolli crittografici. L'ho lanciato perché è qualcosa che sto cercando di risolvere.