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

Images Discussion :

Cryptographie par courbes elliptiques


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut Cryptographie par courbes elliptiques
    Bonjour,
    Je suis débutante en MATLAB: dans mon projet intitulé "cryptographie par courbes elliptiques" ;et avant la phase du chiffrement de l'image,cette dernière doit passer par une phase de prétraitement,qui consiste à converser les pixels de l'image en points sur la courbe elliptique choisi,pour cela les coordonnées sont donné par les relations suivantes:
    x=plainm*l+j; et y^2=x^3+a*x+b (mod p)
    à ce niveau j'ai une question:pourquoi le passage des pixels au points (par utilisation des 2 relations précédentes) prend beaucoup de temps, pour cela et pour le moment j'ai concerné par le chiffrement d'une petite partie de l'image.
    Aussi, et afin d'afficher le résultat de chiffrement,j'ai essayer mon code,malheureusement je n'arrive pas à une résultat,Ou est l'erreur,existe-il d'autre code pour afficher le résultat du chiffrement.
    Voici le code:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    %--------------------------------------------------------------------------%L'image à envoyer
    M=imread('cameraman.tif','tif');
    [K,N]= size(M)
    M=double(M);
    %imshow(uint8(M))
    %--------------------------------------------------------------------------Génération des clefs publiques 
    %%-------------------------------------------------------------------------1/Choix d'une courbe elliptique: y^2 = x^3 + ax +b mod n
    syms x
    syms y
    p=257;
    EF=y^2;
    EF== x^3 + 8*x +1;
    EC = mod(y^2 == x^3 + 8*x +1,p);
    %--------------------------------------------------------------------------2/Choix d'un point P
    P=[71,42];a=8;b=1;
    %--------------------------------------------------------------------------3/Choix d'un entier secret s
    %%B=sP;
    s = 96;
    B = MULTIP(P,s,a,b,p)
    Clepub=[EF,P,B]
    %--------------------------------------------------------------------------
    l=30;
    x1=[];
    for i=1:30
        for j=1:30
            x(i*j)=M(i,j)*l;
            x=[x1;x];
     
        end
    end
    x;
    y1=[];
    for i=1:length(x)
        y(i)=powermod(x(i),(p+1)/4,p);
        y=[y1;y];
    end
     y;
     %_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-Chiffrement-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
     %-
    C2=[];
    k=60;
    C1= MULTIP(P,k,a,b,p);
    C = MULTIP(B,k,a,b,p);
    for i= 1:length(x)
          D=[x(i) y(i)];
          C_2=Addition(D,C,a,b,p);
          C2=[C2;C_2];
    end
    C=[C2(1:length(x))];
    CC=[];
    C_int=double(C);
    for i=1:length(x)
       M=C_int(1:length(x));
       CC=[CC;M];
       C_int(1:length(x))=[];
    end
    figure
    imshow(uint8(CC))
    merci,

  2. #2
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    Ton code prend du temps car tu fais des boucles.
    Matlab n'aime pas les boucles.
    Traite ton tableau d'un seul coup.

    Je pourrais t'aider mais je ne comprend pas tout ton code.
    C'est quoi par exemple cette boucle là ?
    pourquoi le x(i*j) ?
    de plus, à la ligne suivante, tu mets bout à bout le même tableau x au fur et à mesure que tu le construit. Soit c'est un code particulièrement audacieux et élégant pour faire un truc compliqué, soit c'est un gros tas de bug.
    En tout état de cause, en soirtie de boucle ton tableau x doit être énorme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    l=30;
    x1=[];
    for i=1:30
        for j=1:30
            x(i*j)=M(i,j)*l;
            x=[x1;x];
     
        end
    end

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut
    Bonjour,
    Bon pour votre question : pourquoi le x(i*j) ?
    je vous dis que c'est la coordonnée x du pixel M(i,j) sur la courbe elliptique (conversion pixel/point)
    pour le moment la taille de mon image est de (30,30),donc le nombre de pixels est égale à (30*30),enfin j'ai besoin de (30*30) points correspondants à ces pixels.

  4. #4
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    OK.

    Mais les deux lignes ci-dessous, ça te génère un vecteur X qui est long comme le bras et plein de vides non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            x(i*j)=M(i,j)*l;
            x=[x1;x];
    Tu as essayé de faire un disp(x) au milieu de ta boucle pour le surveiller ?

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut
    oui,à la fin j'ai fait un disp(x);oui c'est comme vous l'avez dit ce vecteur est plein de vide.
    Mais ou est le problème?

  6. #6
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    ici tu affectes une valeur à la case i*j sans t'être préoccupée des autres cases. donc matlab, gentilment, agrandit le tableau x jusqu'à cette case là pour qu'elle existe et que tu puisses y mettre ce que tu veux.
    et ici, tu mets bout à bout le vecteur x1 et le vecteur x. Ca n'a pas de sens car la case i*j de tout à l'heure est maintenant décalée.

Discussions similaires

  1. [C#] Cryptographie par clefs privée/publique
    Par dev01 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/08/2011, 21h44
  2. cryptographie à l'aide de courbes elliptiques d'opnessl.
    Par misscricri dans le forum Sécurité
    Réponses: 1
    Dernier message: 07/06/2009, 15h02
  3. cryptographie à l'aide de courbes elliptiques d'opnessl.
    Par misscricri dans le forum Réseau
    Réponses: 0
    Dernier message: 10/11/2008, 15h46
  4. Réponses: 3
    Dernier message: 12/11/2007, 14h35
  5. Réponses: 4
    Dernier message: 27/05/2007, 19h09

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