Cos'è la sicurezza disponibile? [chiuso]

3

In sicurezza informatica, cosa significa sicurezza dimostrabile ? Ho letto l'articolo di Provable Security su Wikipedia, e sono stato in grado di cogliere le basi. Mi piacerebbe vederlo descritto in maggiore dettaglio, usando, ad esempio, la provabilità della crittografia RSA.

Alcune query:

  • RSA è dimostrabile? Per il piccolo p e q , non è sicuro. Possiamo dire che è una sicurezza dimostrabile?
  • Qual è l'algoritmo di crittografia a chiave pubblica più affidabile?
posta Exbury 01.02.2015 - 19:25
fonte

3 risposte

12

È possibile definire un sistema come dimostrabilmente sicuro se la sicurezza del sistema si basa in definitiva su un meccanismo o una regola che ha qualche prova logica o matematica.

Ad esempio, possiamo logicamente dire che dato a + b = c , non è possibile conoscere il valore degli altri due valori se ne conosci uno solo, ad es. c=40 potrebbe significare a=20, b=20 o a=10, b=30 o a=-100, b=140 o un numero infinito di altre possibilità. Ciò significa che è molto, molto difficile calcolare i valori di a e b solo conoscendo c . Se su questa premessa puoi costruire un sistema di sicurezza, disponi di un sistema sicuramente sicuro.

Questo concetto è esteso, nel caso di RSA, alla fattorizzazione di semiprimes. I semiprimi sono numeri che possono essere rappresentati come il prodotto di due numeri primi, vale a dire n = p * q . Dato solo n , è relativamente complicato dal punto di vista computazionale calcolare i valori di p e q . Ad esempio, è banale moltiplicare i numeri primi 1009 e 6121 in una calcolatrice per ottenere 6176089, ma è molto più difficile indovinare quali numeri primi ho usato per ottenere una risposta di 27116399. Io, come utente legittimo, posso moltiplicare banalmente i numeri primi, ma tu, in qualità di aggressore, devi fare un po 'di fatica per indovinare quali principi ho usato.

Il modo in cui lo esprimerei per RSA è il seguente:

  • RSA fa affidamento sul problema della fattorizzazione del semiprime per la sicurezza.
  • La fattorizzazione del semiprime è un problema noto-difficile (in particolare, non esiste una soluzione generale che possa stimare semiprimes in tempo polinomiale o migliore) e come tale richiede un significativo lavoro computazionale da risolvere.
  • Pertanto, RSA ha la proprietà che, assumendo che tu scelga una coppia sufficientemente grande di numeri primi (e aderisca ad altri requisiti specifici di RSA, come non renderli troppo vicini), sarà computazionalmente non fattibile per un avversario per rompere RSA dati i più comuni modelli di minacce.

Un fattore importante qui è che il problema si ridimensiona. Se il tuo modello di minaccia include attori di minacce con risorse significative, puoi ridimensionare le dimensioni principali per rendere il loro lavoro molto più difficile, al costo di un tempo di calcolo maggiore sul tuo sistema.

    
risposta data 01.02.2015 - 19:50
fonte
6

"Sicurezza disponibile" significa che un sistema di sicurezza è stato matematicamente provato come sicuro secondo alcune ipotesi generalmente accettate. In quasi tutti i casi, questo assunto non è necessariamente conosciuto per essere vero, è solo molto più facile ragionare e generalmente ci si crede sia vero. Ci sono casi in cui le "assunzioni" sono gli assiomi della teoria dell'informazione, delle leggi della probabilità o di altre cose che sono considerate assolutamente indiscutibili (se le indebolite o le rimuovete, non state più lavorando nello stesso sistema matematico), ma esse 'insolito - normalmente, il presupposto è "Questo problema è difficile per un computer per risolvere rapidamente" o "Questo componente ha una tale proprietà". Ad esempio, l'assunto RSA è "dato ciphertext C e public key (N,e) , non puoi trovare efficientemente M tale che M^e = C mod N ." Gli algoritmi basati su RSA tendono a usarlo come presupposto per la sicurezza.

La chiave è che dichiari esplicitamente tutte le tue ipotesi per lo schema; qualsiasi attacco allo schema deve essere un attacco a una delle ipotesi, che potrebbe accadere, ma è considerato improbabile. Significa anche che è più semplice cambiare specifiche primitive utilizzate nell'algoritmo se necessario. Ad esempio, se si utilizza una funzione di hash nello schema, la modifica della funzione di hash specifica normalmente invalida tutto ciò che si conosce della sicurezza dello schema (poiché la sicurezza potrebbe finire per basarsi su alcune proprietà molto particolari di una funzione hash specifica). Se invece provi che il tuo schema è sicuro quando la funzione hash è resistente agli attacchi di second preimage, e la tua funzione di hash di scelta risulta essere vulnerabile a loro, puoi semplicemente scambiare qualsiasi altra funzione di hash che è ancora resistente a loro - conosci esattamente quale proprietà deve avere la funzione hash, quindi non devi preoccuparti se la modifica avrà qualche effetto negativo a causa di altre differenze tra i due.

Se una prova di sicurezza è una riduzione di un altro problema, generalmente ha un formato simile a "Supponiamo che un utente malintenzionato possa fare questo tipo di compromesso generale in condizioni così ampie e così. per creare un algoritmo che viola la proprietà che stiamo riducendo a ". Per esempio, supponiamo di voler provare che sotto l'assunzione di RSA, e partendo dal presupposto che varie primitive in esso hanno certe proprietà, RSA-OAEP ha la proprietà IND-CPA (che dice che un utente malintenzionato ha la chiave pubblica RSA, e chi sa che un determinato testo cifrato è una crittografia di uno dei due possibili testi in chiaro, non può dire con certezza quale testo in chiaro è una crittografia di). Quello che facciamo è che abbiamo un algoritmo che può risolvere quel problema, e quindi usarlo per violare l'assunzione di RSA o l'assunzione di uno dei nostri primitivi. Questo ci dice che se l'assunzione di RSA vale e le proprietà delle nostre primitive crittografiche sono valide, il nostro sistema è sicuro contro quell'attacco.

In risposta alle modifiche: vari algoritmi basati sull'algoritmo di base RSA (cioè C=M^e mod N ) si sono dimostrati sicuri contro attacchi specifici basati sull'assunzione di RSA. L'assunto RSA stesso è non dimostrato di essere vero; come regola generale, è generalmente sicuro presumere che ogni dato problema non sia dimostrato essere difficile. Tuttavia, è generalmente ritenuto vero. Le prove di sicurezza sono cose molto specifiche; non esiste una cosa come essere generalmente "provati sicuri", solo dimostrati sicuri contro un tipo specifico di attacco. "RSA di libri di testo" (cioè RSA senza padding, senza crittografia ibrida, semplicemente prendendo testo in chiaro, tagliandolo in blocchi a seconda delle esigenze e crittografando) è banalmente sicuro contro il ripristino del testo normale totale sotto l'assunto RSA, ma in realtà è molto, molto debole contro altri tipi di attacchi, motivo per cui è usato raramente. Se non si è disposti ad assumere l'assunto RSA, praticamente nessuna delle prove di sicurezza relative a RSA ti convincerà di nulla, perché generalmente si basano su di esso. La caratteristica fondamentale della sicurezza dimostrabile è più che tu dai nomi espliciti alle tue ipotesi, e sei preciso su ciò che esattamente stai rivendicando (cioè gli specifici tipi di attacchi contro cui ti stai difendendo. "

Per dimensioni di chiavi di piccole dimensioni: in realtà non è affatto un problema di sicurezza dimostrabile. I tipi di ipotesi fatte in sicurezza tendono ad essere sulla falsariga di "questo problema diventa rapidamente quando le dimensioni di chiave e di dati aumentano ." Con chiavi brevi e dati lunghi, puoi sempre forza bruta.

Per lo schema "migliore": non esiste uno schema "migliore". Schemi diversi hanno proprietà diverse; non esiste il meglio universale.

    
risposta data 01.02.2015 - 22:32
fonte
-1

Per quanto ho capito, la sicurezza "dimostrabile" significa semplicemente che, come nel molto comune esempio di Alice, Bob ed Eve, Eve sta cercando di intercettare il messaggio personale inviato da Alice a Bob.

Se Eve deve decifrare un irrisolvibile (vedi: One-time pad ) o almeno, molto difficile (la maggior parte dei moderni metodi di crittografia) encrpytion, quell'algoritmo può essere definito Provable.

Ora, Eve può essere l'NSA con un'incredibile quantità di risorse e tempo. O Eve può essere semplicemente un "hacker sotterraneo" con accesso a risorse limitate.

Sicurezza garantita è sicurezza che non può essere infranta nemmeno da una persona che ha accesso a una potenza di calcolo infinita (One-time pad e crittografia quantistica), e c'è anche un altro termine: Sicurezza concreta , che è una sicurezza che non può essere infranta da una persona con accesso a una determinata quantità di risorse.

    
risposta data 01.02.2015 - 19:42
fonte

Leggi altre domande sui tag