Comment tester la qualité d'un algorithme de chiffrement?
Je veux tester un algorithme de chiffrement pour la force. Il n'a pas à être fort, il faut juste résister à accidentelle de fissuration et de dire, un hacker déterminé en train de 10 heures à perdre. (J'ai écrit l'algorithme de chiffrement. Oui, je sais que c'est généralement une mauvaise idée, mais je pense que j'ai une bonne raison.)
Quels tests dois-je faire? Jusqu'à présent, j'ai essayé ceci:
- Générer de l'aléatoire A.
- Retourner l'un de bits aléatoires de faire B.
- De vérifier que le nombre de 1s à chiffrer(a) XOR chiffrer(b) correspond à une distribution de poisson (sauf que le XOR jamais sorties 0).
Toute autre suggestion de tests?
Sur le chiffrement
C'est un standard Fiestel de Chiffrement conçu pour fonctionner dans des 3n et être entièrement combinatoire, pas de registres. (C'est un ordre de grandeur plus rapide que DES/AES/etc.) - Je faire autant de tours que je peux dans 3n, qui est seulement d'environ 6.
J'ai d'abord permuter l'ordre des bits d'entrée.
Ensuite, pour chaque bit sur la moitié gauche de l'entrée, je XOR avec la sortie d'une fonction F. F a une entrée 3-bit et de sortie 1 bit. Les 3 bits d'entrée de F sont sélectionnés à partir de la droite de la moitié de l'entrée. La sortie de F est une permutation de {00001111} donc F est équilibré. Les 3 bits d'entrée de F sont choisis parmi les bits sur la droite de la moitié de sorte que chaque bit sur la moitié droite est utilisé le même nombre de fois (ou aussi proche que possible). Chaque "F" est généré aléatoirement et indépendamment l'un de temps.
Prochaine je swap moitiés gauche et droite du résultat et de le faire à nouveau. Encore une fois, de nouveaux "F" pour chaque bit avec la nouvelle entrée.
Tout ce qui est à un seul tour. Je fais 6 fois, à chaque round par hasard, indépendamment généré F fonctions. 6 tours de prendre environ 3n. J'ai essayé de changer le nombre de tours et le nombre d'entrées du F.
source d'informationauteur Eyal
Vous devez vous connecter pour publier un commentaire.
Les instructions de téléchargement sur le web pour la fabrication de bas grade sale dispositif nucléaire, zip avec une carte de rue de Washington, DC, puis de chiffrer et de l'envoyer à [email protected].
La force de votre algorithme de chiffrement sera inversement proportionnel au temps qu'il prend les hommes en costumes noirs pour montrer à votre porte.
Garder à l'esprit que c'est probablement à être une expérience, au moins pour quelques années, vous passez à Gitmo 🙂
Je soupçonne que la réponse serait "Si vous avez besoin de vous poser cette question, le mieux que vous pouvez espérer, c'est kid-sœur chiffrement."
Mais si vous devez, vous pouvez commencer par appliquer l'habitude randnomness tests à la sortie (Comment tester des nombres aléatoires?) en octets, de mots, de longue des mots, etc.
Si vous ne pouvez pas passer que vous savez elle est faible, sans aucun travail supplémentaire. Notez qu'en passant ce ne pas garantir qu'il est fort.
De le poster sur internet et voir si quelqu'un peut le casser (Ce qui NIST/NSA avait avec AES, SHA-3, etc..).
Je regarde tous les attaques courantes.
Déterminer la taille de la touche espace, c'est que quelqu'un doit bruteforce pour trouver le texte en clair, est-elle plus petite que toutes les clés possibles? Faire deux touches de résultat dans le même texte chiffré?
Pouvez-vous choisir un texte en clair qui va révéler la clé dans le texte chiffré?
Si vous vous posez - c'est une assez bonne indication que vous ne devriez pas écrire votre propre.
Si vous avez envie d'en écrire un, comme un exercice d'apprentissage, puis le Chiffrement de la Torture Test de Kirtan suggéré est probablement une bonne chose. Cependant, si vous envisagez d'utiliser ce chiffrement pour un certain but, où la sécurité est vraiment nécessaire, que l'outil ne va pas se substituer, pour les années de l'analyse d'experts publié algorithmes ont traversé.
Même si votre algorithme génère une sortie qui semble aléatoire, qui ne veut PAS forcément dire qu'il est sécurisé.
Je peux presque garantir que vous n'avez pas une bonne raison. Si vous le faites, cependant, de le soumettre pour examen par les pairs et les NIST lors de l'AES vient autour pour le remplacement. Examen suivi par des personnes qui savent réellement ce qu'ils font est la seule façon de savoir.
Statistique de l'évaluation d'un algorithme de cryptage est nécessaire mais pas suffisante pour s'assurer qu'il est sécurisé. De nombreux algorithmes ont connu des faiblesses ou des lacunes potentielles qui n'ont rien à voir avec l'entropie et les propriétés statistiques du chiffrement. Regardez RSA (dépend de l'affacturage être dur), MD5 (les attaques par collision), et d'autres algorithmes. De ces années-homme de rigoureux de sondage pour les faiblesses.
Suivant les conseils de ne pas écrire votre propre. Cela ne signifie pas que vous devez tirer dans un vaste complexe de la bibliothèque ssl. Regarder quelque chose comme le THÉ (et dérivés), ils peuvent être codés dans une seule fonction, une dizaine de lignes.