π
<-
Chat plein-écran
[^]

Outil pour la methode de chiffrement XOR

Discussions scientifiques et scolaires

Outil pour la methode de chiffrement XOR

Message non lude Ti64CLi++ » 17 Nov 2017, 21:34

Depuis quelque temps, je me suis remis aux epreuves de Newbiecontest, un site de challenge.
Hier je suis tombe sur une epreuve faisant intervenir une methode de cryptage appellee XOR.

Pour ceux qui ne connaissent pas, je vous laisse le soin de taper dans la barre de recherche de votre moteur de recherche prefere :D (un peu de repetition mais ca va :p)

Je me suis donc lance dans la creation de 3 outils pour m'aider dans cette taches:
  • Le premier pour retrouver la clef de chiffrement utilise a partir du texte crypte en hexadecimal, et d'une partie du (ou de tout le) texte decrypte (celui ci n'est pas entierement de moi)
  • Le deuxieme pour crypter un texte a l'aide d'une clef specifie (je vous conseille de ne pas mettre d'espace dans votre texte a crypter). Affiche le texte crypte en hexadecimal
  • Et le troisieme pour decrypter un texte crypter a l'aide de sa valeur l'hexadecimal, a l'aide d'une clef donne. Il affiche le texte en hexadecimal et en ASCII

Voila amusez vous bien, et en esperant que ca serve.

P.S.:
Tout ces outils sont codes en C++, et compiles pour linux.
Fichiers joints
XOR Tools.zip
(16.57 Kio) Téléchargé 90 fois
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Outil pour la methode de chiffrement XOR

Message non lude Lionel Debroux » 17 Nov 2017, 21:36

C'est bien de chercher à apprendre par ce genre de challenges (j'avais fait une cinquantaine de problèmes du Project Euler il y a maintenant 6 ans), et de publier tes outils.

Je voudrais juste expliciter le fait que le chiffrement XOR n'est absolument pas à utiliser pour autre chose que des exercices d'apprentissage :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Outil pour la methode de chiffrement XOR

Message non lude Adriweb » 17 Nov 2017, 22:59

En théorie, pour un chiffrement, si la clé XOR est seule connue des 2 participants a leur conversation "chiffrée" avec ladite clé, il n'y a pas mieux comme protection.
Le mieux étant une clé XOR au moins aussi longue que le message :P
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14605
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Outil pour la methode de chiffrement XOR

Message non lude Lionel Debroux » 17 Nov 2017, 23:05

Mouais, mais XOR mâche beaucoup moins les bits que les algorithmes de chiffrement bien faits, qui utilisent des clés beaucoup plus courtes. Avec des clés de taille usuelle, le XOR prête le flanc à l'analyse statistique du contenu.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Outil pour la methode de chiffrement XOR

Message non lude Ti64CLi++ » 17 Nov 2017, 23:12

Je suis en train de faire la meme chose pour Vigenere et Beaufort
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Outil pour la methode de chiffrement XOR

Message non lude Wistaro » 17 Nov 2017, 23:16

Tiens ça me rapelle mon dernier BE d'info..

On devait implanter en C le cryptage de Vigenere et trouver un moyen de cracker le code ne connaissant pas la clef..

Ça peut être très intéressant si tu t'intéresses au cryptage, c'est un bon exercice.
Sinon, on a aussi fait le cryptage de Hill, mais c'est un chouia plus complexe (ça fait intervenir des produits matriciels), mais tout aussi sympathique :)
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Outil pour la methode de chiffrement XOR

Message non lude Ti64CLi++ » 17 Nov 2017, 23:17

Vigenere, c'est fait, la je m'attaque a Beaufort, ca devrait pas etre plus complique.
Juste un moins et l'ordre
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Outil pour la methode de chiffrement XOR

Message non lude Wistaro » 17 Nov 2017, 23:19

Ti64CLi++ a écrit:Vigenere, c'est fait, la je m'attaque a Beaufort, ca devrait pas etre plus complique.
Juste un moins et l'ordre


Tu as le code de Vigenere ? Je suis curieux de savoir comment tu as procedé.. :)

Sinon ouais Beaufort c'est pas très compliqué non plus.
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Outil pour la methode de chiffrement XOR

Message non lude Ti64CLi++ » 17 Nov 2017, 23:30

Pour Vigenere (ca donne la clef a partir du texte crypte et d'une partie ou de tout le texte en clair):
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
#include <iostream>
#include <string>
#include <cmath>

using namespace std;

int main(int argc, char **argv)
{
   string texteChiffre;
   string texteClaire;
   int longueurTexteChiffre;
   int longueurTexteClaire;
   int difference;
   char lettre1, lettre2,clef;

   cout << "Entrez le texte chiffre en majuscule sans caractere accentue : ";
   getline(cin,texteChiffre);

   cout << "Entrez le texte clair en majuscule sans caractere accentue : ";
   getline(cin,texteClaire);
   
   
   longueurTexteChiffre = texteChiffre.length();
   longueurTexteClaire = texteClaire.length();

   if(longueurTexteClaire > longueurTexteChiffre)
   {
      cout << "La longueur du texte clair doit etre inferieur ou egale a la longueur du texte chiffre" << endl;
      return 0;
   }

   cout << "Resultat de la clef" << endl;
   
   for(int i=0; i < longueurTexteClaire; i++)
   {
      lettre1 = texteChiffre.at(i) - 'A';
      lettre2 = texteClaire.at(i) - 'A';

      difference = (lettre1 - lettre2);

      if(difference < 0)
      {
         clef = char(65+(26 - abs(difference)));
      }
      else
      {
         clef = char(difference + 65);
      }
      cout << clef;
   }

   cout << endl;

   return 0;
}


Ca peut donner la clef plusieurs fois a la suite, si la clef est plus petite que le texte clair
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Outil pour la methode de chiffrement XOR

Message non lude Wistaro » 17 Nov 2017, 23:40

Ti64CLi++ a écrit:Pour Vigenere (ca donne la clef a partir du texte crypte et d'une partie ou de tout le texte en clair):
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
#include <iostream>
#include <string>
#include <cmath>

using namespace std;

int main(int argc, char **argv)
{
   string texteChiffre;
   string texteClaire;
   int longueurTexteChiffre;
   int longueurTexteClaire;
   int difference;
   char lettre1, lettre2,clef;

   cout << "Entrez le texte chiffre en majuscule sans caractere accentue : ";
   getline(cin,texteChiffre);

   cout << "Entrez le texte clair en majuscule sans caractere accentue : ";
   getline(cin,texteClaire);
   
   
   longueurTexteChiffre = texteChiffre.length();
   longueurTexteClaire = texteClaire.length();

   if(longueurTexteClaire > longueurTexteChiffre)
   {
      cout << "La longueur du texte clair doit etre inferieur ou egale a la longueur du texte chiffre" << endl;
      return 0;
   }

   cout << "Resultat de la clef" << endl;
   
   for(int i=0; i < longueurTexteClaire; i++)
   {
      lettre1 = texteChiffre.at(i) - 'A';
      lettre2 = texteClaire.at(i) - 'A';

      difference = (lettre1 - lettre2);

      if(difference < 0)
      {
         clef = char(65+(26 - abs(difference)));
      }
      else
      {
         clef = char(difference + 65);
      }
      cout << clef;
   }

   cout << endl;

   return 0;
}


Ca peut donner la clef plusieurs fois a la suite, si la clef est plus petite que le texte clair


Du coup c'est pas du cryptage de Vigenere ça, c'est pour trouver la clef -_-
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Suivante

Retourner vers Maths, physique, informatique et autre...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
784 utilisateurs:
>769 invités
>10 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)
cron