72 votes

Quels sont les facteurs optimaux de travail crypté?

Je suis à l'aide d'un Java scrypt bibliothèque pour le stockage de mot de passe. Il appelle à une N, r et p de la valeur quand je crypter les choses, qui de sa documentation se réfère à "coût de l'UC", "coûts de mémoire" et "la parallélisation des coûts" paramètres". Seul problème, je ne sais pas vraiment ce qu'ils impliquent notamment, ou ce que les bonnes valeurs pour eux; peut-être qu'ils correspondent en quelque sorte à l'-t, -m et -M commutateurs sur Colin Percival de l'application d'origine?

Quelqu'un aurait-il des suggestions pour cela? La bibliothèque elle-même des listes de N = 16384, r = 8 et p = 1, mais je ne sais pas si c'est fort ou faible ou quoi.

73voto

gimpf Points 3528

Comme un début:

cpercival mentionné dans ses diapositives à partir de 2009, quelque chose autour de

  • (N = 2^14, r = 8, p = 1) < 100ms (utilisation interactive), et
  • (N = 2^20, r = 8, p = 1) < 5s (sensible de stockage).

Ces valeurs se trouvent être assez bon pour un usage général (mot de passe-db pour certains WebApp) encore aujourd'hui (2012-09). Bien sûr, les caractéristiques dépendent de l'application.

Aussi, ces valeurs (pour la plupart) dire:

  • N: Travail en général, le facteur, nombre d'itérations.
  • r: taille de bloc dans l'utilisation de sous-jacents de hachage; affine la mémoire relative des coûts.
  • p: parallélisation de facteur; affine la relative cpu-coût.

r et p sont destinés à accueillir le problème potentiel que la vitesse du PROCESSEUR et la taille de la mémoire et la bande passante n'augmentent pas comme prévu. Devrait augmenter les performances du PROCESSEUR plus rapide, vous augmentez p, devrait plutôt une percée dans la technologie de mémoire de fournir un ordre de grandeur de l'amélioration, vous augmentez r. Et N est là pour garder en place avec le général doublement de la performance par certains laps de temps.

Important: Toutes les valeurs de changer le résultat. (Mis à jour:) C'est la raison pour laquelle tous les scrypt paramètres sont stockés dans la chaîne de résultat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X