Je suis à la recherche d'un petit projet de conception de mon propre algorithme de cryptage symétrique. Ce sera principalement pour le cryptage de fichiers. Quel est le processus de conception d'un tel projet?Lors de la conception d'un algorithme de chiffrement, quels sont les facteurs clés qui déterminent ce que l'algorithme ferait?
Répondre
Première leçon - ne pas.
Deuxième leçon - apprendre cryptanalysis. Si vous n'êtes pas au courant de la façon dont les systèmes de chiffrement sont déjà brisés, comment allez-vous évaluer comment vos propres algorithmes sont "forts" ou "faibles".
Le papier d'autoformation que j'ai lié à ci-dessus vieillit un peu cependant. Il y a des attaques plus récentes (comme la récente attaque bi-clique contre AES) qui ne seront pas couvertes ici.
Il y a aussi un site d'échange de jeune crypto de la pile, qui peut être un meilleur endroit pour poser des questions, si vous réellement l'intention d'étudier Crypto sérieusement (plutôt que « je l'ai inventé le meilleur système Crypto jamais, personne ne jamais être capable de le craquer ").
Construire un algorithme qui résiste à la ...
attaques de texte brut connus: http://en.wikipedia.org/wiki/Known-plaintext_attack
Chosen attaques texte brut: http://en.wikipedia.org/wiki/Chosen_plaintext_attack
cryptanalyse différentiel: http://en.wikipedia.org/wiki/Differential_cryptanalysis
linéaire cryptanalyse : http://en.wikipedia.org/wiki/Linear_cryptanalysis
Mes propres sugg estion est que vous commencez avec un générateur de nombres aléatoires cryptographiquement sécurisé (http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator), ensemencez ce générateur avec votre clé de cryptage symétrique et travaillez à partir de là en évitant les vecteurs d'attaque ci-dessus.
Merci, c'est très spécifique et je l'apprécie beaucoup – liamzebedee
- 1. quels facteurs déterminent la navigabilité d'une relation lors de la modélisation
- 2. Quels sont les facteurs clés ou les bonnes pratiques qui réduisent le temps de récupération de place dans Java?
- 3. Quel algorithme de chiffrement utiliser et où stocker les clés?
- 4. Est-ce que quelqu'un reconnaît cet algorithme de chiffrement?
- 5. ce qui ferait que si la décision effectuer ce qui est dans les accolades?
- 6. Quels sont les facteurs importants à considérer lors de la sélection d'une solution NoSQL?
- 7. Existe-t-il d'autres facteurs, outre le fournisseur de l'appareil et de l'application, qui déterminent l'identifiantForVendor?
- 8. Qu'est-ce qui ferait que mon Silverlight .xap quadruplerait soudainement?
- 9. Quels modèles de conception sont sous-utilisés?
- 10. Mon algorithme de chiffrement
- 11. Quels sont les facteurs à prendre en compte lors du choix entre les interfaces et les classes abstraites?
- 12. algorithme de chiffrement simple pour les nombres
- 13. Quels sont les équivalents C# des fonctions utilisées dans ce code de chiffrement PHP?
- 14. Quels sont les facteurs à prendre en compte lors du choix du cadre?
- 15. Quels grands concepts sont impliqués lors de la conception d'un système de statistiques en temps réel?
- 16. quels sont les différents types de modèles de conception?
- 17. Algorithme de chiffrement personnalisé Python
- 18. Quels sont les inconvénients du modèle de conception de façade?
- 19. Que ferait ce code? (Gestion de la mémoire)
- 20. Quelle est la raison de "algorithme de chiffrement déprécié"?
- 21. Quels sont les modèles de conception pour HTML et CSS?
- 22. Quels sont les bons modèles de conception pour CRUD?
- 23. chiffrement: algorithme RSA
- 24. Stockage des clés de chiffrement - meilleures pratiques?
- 25. Quels sont les modèles de conception courants dans Cocoa Touch?
- 26. Quels sont les facteurs pouvant conduire à Win32 error 665 (limitation du système de fichiers)?
- 27. Quels caractères sont valides dans les clés de hachage?
- 28. Quels sont les modèles de conception utilisés dans Android?
- 29. algorithme de chiffrement pour l'application
- 30. Quels sont les sites Web qui contiennent de bons exemples de conception d'interface utilisateur?
Espérons que la critique constructive: si vous avez à poser cette question, alors plus que probable que votre cryptage sera inutile. En d'autres termes, vous serez l'incarnation de la loi de Schneier: «N'importe qui, de l'amateur le plus ignorant au meilleur cryptographe, peut créer un algorithme qu'il ne peut lui-même rompre. –
Ne le faites pas, si vous n'avez pas déjà assez d'expérience en cryptographie (c'est-à-dire analysé d'autres algorithmes, lu beaucoup de papiers, etc.), sinon votre algorithme sera trivial à casser. Utilisez un algorithme établi, si possible également un protocole/format de fichier établi. –
Merci pour vos critiques constructives, j'ai eu beaucoup les mêmes commentaires avant. La chose est, c'est un projet, et je ne visualise pas relâcher cela au public extérieur. – liamzebedee