IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Crypto à l'aide de python


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Crypto à l'aide de python
    Bonsoir,

    j'aurais besoin d'aide pour l'algorithme du DES.
    Voici l'énoncé que j'ai :
    Donner le programme permettant de chiffrer un message via DES, puis de le déchiffrer.
    L'utilisateur saisit son message, son mot de passe (c'est à dire un tableau de clés). Les permutations seront définies dans le code source du programme (celles de votre choix). Les permutations inverse seront calculées par le programme. Il est demandé d'expliquer en détail comment a été déterminé l'algo de déchiffrement.

    A la base il s'agit d'un message ASCII par blocs de 8 caractères en 16 tours avec l'algorithme DES.

    En classe, nous avions fait un algo pour deux permutations en classe. J'ai repris la même chose sauf que cette fois-ci j'insère 16 permutations.
    Ca ne marche pas je ne sais pas vraiment comment faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    mot_clair=input("Saisir votre message secret:")
     
    tperm=[[2,1,0],[1,0,2],[2,2,2],[3,1,1],[1,2,2],[3,2,1],[3,3,3],[2,0,3],[4,0,1],[4,3,2],[1,1,1],[4,5,2],[5,0,0],[3,3,1],[5,0,1],[4,4,4]]       
    tcles=[[4,1,9],[35,2,8],[33,5,4],[5,20,37],[2,7,6],[22,21,25],[21,22,23],[10,13,15],[2,2,1],[11,11,11],[12,13,24],[20,20,20],[25,23,24],[14,14,14],[7,8,9],[5,2,3]]
     
    def permute(m,perm): #m et perm ont meme longueur
    	return "".join([m[perm[i]] for i in range(len(m))
     
    def Vigenere(m,cle): #m et cle ont meme longueur
    	return "".join([chr((ord(m[i])+cle[i])%256) for i in range(len(m))])
     
    def DES_BLOC(m,tperm,tcles):
    	p=len(m)//2
    	for i in range(len(tperm)):
    		m=m[p:p+p]+Vigenere(permute(m[0:p],perm[i]),tcles[i])
    	return m
     
    def DES_phrase(phrase,tperm,tlces,LBloc):#LBloc=2p
    	phrase+=(LBloc-len(phrase)%LBloc)*" "
    	phrase_crypte=""
    	for i in range(0,len(phrase),LBloc): 
    		phrase_crypte+=DES_bloc(phrase[i:i+LBloc],tperm,tcles)
    	return phrase_crypte
    Svp si quelqu'un pouvait m'aider ...

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Un début de correction...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    mot_clair=input("Saisir votre message secret:")
     
    tperm=[[2,1,0],[1,0,2],[2,2,2],[3,1,1],[1,2,2],[3,2,1],[3,3,3],[2,0,3],[4,0,1],[4,3,2],[1,1,1],[4,5,2],[5,0,0],[3,3,1],[5,0,1],[4,4,4]]       
    tcles=[[4,1,9],[35,2,8],[33,5,4],[5,20,37],[2,7,6],[22,21,25],[21,22,23],[10,13,15],[2,2,1],[11,11,11],[12,13,24],[20,20,20],[25,23,24],[14,14,14],[7,8,9],[5,2,3]]
     
    def permute(m,perm): #m et perm ont meme longueur
        return "".join(m[perm[i]] for i in range(len(m)))
     
     
    def Vignere(m,cle): #m et cle ont meme longueur
        return "".join([chr((ord(m[i])+cle[i])%256) for i in range(len(m))])
     
     
    def DES_BLOC(m,tperm,tcles):
        p=len(m)//2
        for i in range(len(tperm)):
            m=m[p:p+p]+Vignere(permute(m[0:p],tperm[i]),tcles[i])
        return m
     
    def DES_phrase(phrase,tperm,tcles,LBloc):#LBloc=2p
        phrase+=(LBloc-len(phrase)%LBloc)*" "
        phrase_crypte=""
        for i in range(0,len(phrase),LBloc): 
            phrase_crypte+=DES_BLOC(phrase[i:i+LBloc],tperm,tcles)
        return phrase_crypte

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Bonsoir merci beaucoup de ta réponse mais je ne vois pas ce qui a changé dans le nouveau code, si tu pouvais m'expliquer ... ;(

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Ah si en fait j'ai vu les petits soucis,
    merci mais du coup y a-t-il des problèmes de "principe" ou de logique dans le code car pour moi il me semble qu'il n'y a rien à changer à part le nombre de clés...
    Par contre mon second souci est de faire rentrer le tableau de clés, j'ai pensé à la fonction append qui permet de rajouter à une liste mais je ne vois pas comment faire ça avec un tableau. comme cela est demandé dans l'énoncé...
    merci ...

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Je ne connais cette méthode que de nom (et de loin) : pour t'aider, il serait peut-être bon que tu fournisses le code pour les 2 permutations avant de passer à 16...

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Bonsoir, merci de la réponse,

    le code pour deux permutations est exactement le même à la différence près qu'il n'y avait que deux éléments dans tclés et tperm...
    Or vu que le nombre de permutations est égal à tperm donc 16, cela devrait aller tout seul mais ça ne marche pas et je ne vois pas où réside le souci...;(

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    S'il vous plait quelqu'un pourrait-il m'aider ?

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    S'il vous plait si quelqu'un est sur le topic pourrait-il se manifester, merci ...

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    marco056 stp es-tu en train de t'occuper de mon topic ou pas car j'aimerais savoir s'il faudrait que je fournisse plus d'infos si nécessaire
    En tt cas si c'est le cas stp pourrais-tu te manifester ...?
    Merci...

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Je ne sais pas si j'aurai le temps de regarder cela demain.
    Comme je te l'ai déjà indiqué, je connais très mal cette méthode de chiffrage.

    Je pense que si tu veux des réponses, sauf à tomber sur un intervenant qui connaît la méthode, il va falloir (choix multiples ) :
    - commenter un peu ton code,
    - peut-être fournir des exemples
    - fournir l'algo ou le code simple (qui apparemment fonctionne avec 2 permutations)
    - être plus patient

  11. #11
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Oui oui c'était juste que comme je suis nouveau, je ne savais pas trop si mon topic était encore actif ou déjà oublié...
    En tt cas merci, ce serait vraiment bien si je pouvais avoir des réponses demain ...
    Merci d'avance

  12. #12
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Citation Envoyé par skharit18 Voir le message
    Oui oui c'était juste que comme je suis nouveau, je ne savais pas trop si mon topic était encore actif ou déjà oublié...
    En tt cas merci, ce serait vraiment bien si je pouvais avoir des réponses demain ...
    Merci d'avance
    Oui, mais sans commenter, donner des exemples, ... pas grand monde ne t'aidera.
    Pour ma part, je ne comprends pas ce que tu veux faire, ne serait-ce que dans la première fonction (je ne parle pas des autres !).
    Par ailleurs, ne compte pas avoir la solution : ici, on essaiera de t'aiguiller mais on ne fera pas tes devoirs à ta place.

Discussions similaires

  1. Aide sous Python 3.1
    Par david1865 dans le forum Général Python
    Réponses: 5
    Dernier message: 13/09/2010, 12h21
  2. aide programme python!
    Par ano33 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/04/2010, 16h54
  3. aide exercice python
    Par cedric190985 dans le forum Général Python
    Réponses: 2
    Dernier message: 24/03/2010, 12h57
  4. Aide Syntaxe Python
    Par ziska dans le forum Général Python
    Réponses: 15
    Dernier message: 03/10/2009, 08h52
  5. Aide sur python et CGI dans un cas particulier
    Par Papaillou dans le forum Réseau/Web
    Réponses: 0
    Dernier message: 11/04/2009, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo