Vous ne voulez pas crypter les mots de passe (PIN) - vous voulez les hacher . Lorsque quelqu'un entre un mot de passe, vous hachez ce mot de passe et comparez le hachage avec le hachage stocké. L'avantage de cette méthode (utilisée depuis plus de 30 ans) est que même si quelqu'un s'empare de la source et des hachages, il ne peut toujours pas dire quels codes PIN correspondent aux hachages, tant que vous choisissez une fonction de hachage suffisamment forte .
Vous ne voulez pas implémenter le chiffrement vous-même - vous voulez utiliser la bibliothèque de quelqu'un d'autre, en particulier celle avec une implémentation ouverte qui a été testée par une grande communauté. Le cryptage est difficile, les tests sont difficiles et les tests de cryptage sont sacrément durs, alors demandez à quelqu'un d'autre de le faire pour vous.
Vous devriez vérifier la bibliothèque AVR Crypto , qui est sous licence GPLv3. Il existe également une implémentation de Skein pour AVR .
Ce lien publié par Hristos, bien qu'il soit peut-être utile, ne compte certainement pas comme un "cryptage". Ce n'est vraiment que de "l'obscurcissement".
Une cryptographie appropriée est notoirement facile à se tromper, même pour les personnes qui connaissent les mathématiques.
En réponse au message d'origine - quelles sont les méthodes d'attaque qui permettraient à quelqu'un d'accéder aux codes PIN dans l'EEProm? Certes, s'ils ont atteint ce point dans vos appareils électroniques, ils peuvent simplement "couper le fil rouge" et ouvrir la porte?
Si vous en quelque sorte faire un système où les attaquants pourraient mettre la main sur le contenu EEProm sans avoir déjà suffisamment d' accès pour ouvrir votre porte, vous voulez probablement le redessiner. Vous pouvez regarder des fonctions de hachage unidirectionnelles similaires au hachage de mot de passe Unix - de cette façon, l'EEProm n'a pas besoin de contenir de clé de déchiffrement - le problème est que l'espace de recherche des codes PIN est très petit - si je peux télécharger la version hachée du PIN, je peux essayer assez rapidement les 10 000 codes PIN possibles, je pense que n'importe quel ordinateur portable moderne les exécutera tous en quelques secondes.
la source
Le problème que je prévois est que s'ils peuvent voir vos épingles, ils peuvent également voir votre programme qui chiffre / vérifie / déchiffre vos épingles. De plus, s'ils ont votre puce, peuvent-ils non seulement modifier le programme pour toujours donner un résultat positif (contourner efficacement le contrôle) pour toute broche entrée.
la source
Comment prévoyez-vous de décoder les codes PIN cryptés, afin de vérifier si l'utilisateur a entré un code PIN valide? Vous devrez stocker la clé de déchiffrement ... à quel moment si l'attaquant peut lire votre eeprom, il peut également lire votre flash pour trouver la clé de chiffrement. Rendant fondamentalement votre cryptage entier complètement inutile. De plus, comme l'ont dit les autres personnes, s'il a déjà la capacité de lire votre puce, il pourrait simplement écrire un nouveau programme. Beaucoup plus simple de simplement ouvrir la porte, je doute que quiconque se donne la peine d'essayer de pirater votre puce.
la source
Voici une méthode de simple inscription en C qui pourrait facilement être portée sur l'Arduino. Cela semble être le moyen le plus simple de crypter les données avec les ressources limitées de l'arduino.
-EDIT- Pour garder la clé hors de votre programme, vous pouvez faire de la moitié du code PIN la clé. Cela signifie que votre programme utilise la moitié clé du code PIN pour décrypter le 1/2 code PIN crypté stocké dans EEProm. Si la clé décryptée d'EEProm correspond à la partie de votre code PIN qui n'est pas la clé, la porte se déverrouillerait. Cela ne fonctionnerait que dans une situation où il n'est pas possible pour les intrus de casser la porte ou de reprogrammer l'Arduino.
la source
Je déteste ne pas répondre à la question tout en en posant une autre, mais ...
Y a-t-il une raison pour laquelle votre appareil n'est pas inviolable? J'ai vu des interrupteurs à bouton-poussoir dans les trous de vis mis en place `` sur le banc '' pour détecter le type de falsification qui vous inquiète. Ensuite .. voici le gamin avec une micro torche au butane qui parvient à obtenir votre puce sans rien dévisser (ou endommager la puce) .. d'une manière ou d'une autre, il connaissait la conception de votre système inviolable qui (aussi, espérons-le) comprend la détection de changements dans lumière et / ou son ambiant. Lorsque le couvercle se détache, les deux deviennent très différents .. de jour comme de nuit.
Si tel est le cas, ce devrait être un système en deux parties où les pièces exposées communiquent avec quelque chose où le cryptage est plus facilement implémenté. De plus, les sommes de contrôle (aide) représentent l'enfant avec la torche.
Je pense que vous demandez à un tournevis d'être un marteau.
la source
Ces commentaires sont vraiment précis. Il n'y a rien de mal à essayer d'expérimenter pour en savoir plus sur le cryptage, mais ce n'est pas vraiment un bon projet pour apprendre de telles choses. Vous voulez vraiment un bon manuel et un ordinateur, et comme @bigiain le dit, les mathématiques sont notoirement faciles à se tromper.
Pour une meilleure compréhension du fonctionnement de la cryptographie et de ce que vous affrontez, le Handbook of Applied Cryptography est excellent et gratuit:
Si vous voulez simplement sécuriser votre projet, c'est une manière inefficace de le faire. Si vous êtes intéressé par la cryptographie, commencez par ce livre et un ordinateur.
la source