Si prevede che un CSPRNG restituisca ogni possibile valore dello spazio immagine con una probabilità indistinguibile da una distribuzione casuale.
Lasciare fuori determinati risultati farebbe un cattivo design. Pensa ai dadi. Se lanci 1-1-1, non penseresti che questo non sia abbastanza casuale e lo risolvi - Hai appena generato quell'entropia con certezza che è reale.
Farlo con un PRNG comprometterebbe la sua sicurezza, quindi no, non c'è nulla di filtrato , si spera.
Nota a margine qui: anche se la probabilità è molto piccola (così piccola da essere trascurabile): non si dovrebbe riutilizzare lo stesso IV sulla stessa chiave con AES-CBC, in modo da non trapelare nulla se i file condividono informazioni strutturali
Oltre a questo, dovresti essere d'accordo con il tuo approccio. Ogni chiamata a SecRandomCopyBytes
puoi prendere in considerazione un lancio di dadi, per quello a cui tieni, dato che è la migliore entropia che otterrai.
Se il tuo obiettivo non è solo la riservatezza ma anche l'integrità dei dati, sarebbe meglio usare un'altra modalità di funzionamento, come indicato nei commenti. Lo so, iOS non è molto generoso nel dare molta scelta lì, però.