L'implémentation Android de SecureRandom produit-elle des nombres aléatoires authentiques?

J'ai lu qu'en général, certaines implémentations de SecureRandom peuvent générer de vrais nombres aléatoires .

En particulier, les documents Android disent

  • "Aapt" Erreur IOException = 2, aucun fichier ou répertoire "pourquoi ne puis-je pas créer mon gradle sur jenkins?
  • En attente d'un rappel asynchrone dans IntentService d'Android
  • Object ne peut pas être transmis à Void dans AsyncTask
  • Que fait gl.glClearColor?
  • Android - Copiez les actifs dans un stockage interne
  • Les noms de paquets pour les domaines qui se terminent par .do
  • Les instances de cette classe généreront une graine initiale en utilisant une source d'entropie interne, comme / dev / urandom

    Mais cela signifie-t-il qu'il produira de vrais nombres aléatoires (c'est-à-dire plutôt que des nombres pseudo-aléatoires)?

    Et si j'utilise SecureRandom dans Android de cette manière …

    SecureRandom sr = new SecureRandom();

    … vais-je avoir une sortie vraiment aléatoire quand j'appellerai sr.nextBoolean() ?

    Ou est-ce que la sortie est susceptible d'être plus (ou moins?) Aléatoire si, à la place, je new SecureRandom().nextBoolean() sortie en faisant cela à chaque fois: new SecureRandom().nextBoolean() ?

  • Comment désactiver Crashlytics tout en développant
  • Désactiver l'importation de Crashlytics
  • Exception en plugin Fabric pour Android Studio
  • Crashlytics déconseillant logException () quel est le remplacement?
  • X509TrustManager implémentation de tissu / crashlytics insécurité?
  • Tissu Crashlytics: Impossible d'exécuter la tâche
  • 2 Solutions collect form web for “L'implémentation Android de SecureRandom produit-elle des nombres aléatoires authentiques?”

    Les nombres aléatoires "vrais" et "pseudo-aléatoires" signifient beaucoup de choses différentes pour différentes personnes. Il est préférable de les éviter.

    / Dev / urandom a obtenu un mauvais représentant parce que les gens ne comprennent pas les différences entre lui et / dev / random (beaucoup, beaucoup moins de différence que vous ne l'attendiez).

    Si vous demandez si l'ensemencement par / dev / urandom pourrait compromettre l'aptitude de SecureRandom à l'utiliser à des fins cryptographiques, la réponse est un «non» retentissant.

    Si vous avez un certain temps, vous voudrez peut-être lire mon essai sur l'ensemble du problème.

    La réponse principale est que / dev / urandom, tel que défini par le noyau linux , est garanti pour ne pas bloquer. L'accent étant mis sur le fait de ne pas paralyser l'utilisateur alors qu'une entropie suffisante est générée. Si les docteurs Android disent qu'ils utilisent / dev / urandom pour l'initialiser, ET il n'y a pas assez d'entropie dans le noyau pour fournir des nombres aléatoires, le noyau retombera sur un algorithme pseudo-aléatoire.

    Selon la documentation du noyau, / dev / urandom est considéré comme suffisant pour presque toutes les fins, à l'exception des "clés de cryptage" à vie longue. Compte tenu de la description de votre utilisation prévue, je pense que Android SecureRandom se révélera suffisamment aléatoire pour vos besoins.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.