Mi sto un po 'confondendo con i PRG utilizzati in crittografia.
Fondamentalmente, un PRG è usato per espandere una sequenza casuale (principalmente una chiave) di lunghezza s a una lunghezza n > s , ancora con un aspetto casuale. Ora, anche se questo non è ovviamente possibile in senso matematico, l'idea è di ottenere una casualità ragionevole, nel senso che un distinguo efficiente non può distinguere la sequenza più ampia da quella casuale (quindi otteniamo la casualità in senso computazionale). La mia domanda è davvero?
Considera questo esempio:
Input: k: {0,1} ^ 2
PRG G: {0,1} ^ 2 - > {0,1} ^ 4
Output: k '= G (k): {0,1} ^ 4
Ciò significa che la nostra chiave iniziale può assumere 4 valori possibili. Sebbene la nostra chiave derivata copre un intervallo di 16 valori, può assumere solo 4 di questi 16 valori, poiché il PRG è deterministico. Quindi cosa mi impedisce di mappare le chiavi iniziali e le chiavi di uscita come un attacco? Sarei quindi in grado di ridurre lo spazio di ricerca da 16 a 4 valori. Quindi in pratica inverti l'espansione?
Vorrei ora sostenere che non otteniamo alcuna espansione della casualità, a patto che abbiamo memoria per memorizzare questi mapping. Dato che ci sono alcuni PRG che sono comunemente usati, questo fornirebbe un incentivo per i progetti collaborativi per mappare tutte o almeno parte delle chiavi per infrangere la sicurezza per molte applicazioni.
Sono certo che devo aver trovato qualcosa di sbagliato sopra, ma non riesco a capire dove si trova il mio errore. Potresti aiutarmi?
Grazie mille