begin process at 2012 02 17 05:17:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CRYPTAGE À CLÉ SYMÉTRIQUE

CRYPTAGE À CLÉ SYMÉTRIQUE


 Information sur la source

Note :
6 / 10 - par 5 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths Niveau :Débutant Date de création :30/09/2004 Date de mise à jour :01/10/2004 12:04:02 Vu / téléchargé :5 930 / 310

Auteur : tbbuim1

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Comme son titre l'indique, il s'agit d'un petit programme permettant de crypter et de décrypter du texte à l'aide d'une clé unique (clé symétrique). Très utile si vous voulez envoyer un mail ou un message qui ne doit pas tomber entre de mauvaise mains...
Bien entendu, il faudra que votre interlocuteur ait la même clé et que personne d'autre que vous deux ne la connaisse.

Source

  • La méthode de cryptage par clé symétrique est simple, mais efficace.
  • Voici un exemple avec la clé "abc" et le texte "defgh"
  • Il suffit de placer chacune des lettres ensemble et de répéter la clé:
  • a b c a b ensuite il faut remplacer les caractères par des chiffres
  • d e f g h
  • 1 2 3 1 2 on additionne les chiffres ensemble
  • 4 5 6 7 8
  • -----------
  • 5 7 9 8 10 et on retranscrit le tout selon notre alphabet
  • e g i h j
  • Donc le nouveau texte obtenu à partir de la clé abc est egihj
  • Pour revenir au texte initial, il suffit de faire l'opération à l'inverse
  • L'avantage, c'est que l'on a besoin que d'une clé et qu'une même
  • lettre peut être codée de plusieurs façons différentes.
La méthode de cryptage par clé symétrique est simple, mais efficace.
Voici un exemple avec la clé "abc" et le texte "defgh"
Il suffit de placer chacune des lettres ensemble et de répéter la clé:

a b c a b   ensuite il faut remplacer les caractères par des chiffres 
d e f g h 

1 2 3 1 2  on additionne  les chiffres ensemble
4 5 6 7 8 
-----------
5 7 9 8 10 et on retranscrit le tout selon notre alphabet
e g  i h  j

Donc le nouveau texte obtenu à partir de la clé abc est egihj
Pour revenir au texte initial, il suffit de faire l'opération à l'inverse
L'avantage, c'est que l'on a besoin que d'une clé et qu'une même 
lettre peut être codée de plusieurs façons différentes.

 Conclusion

On peut crypter ou décrypter quelques lignes ou un texte de plusieurs pages.
Si vous voulez sélectionner tout le texte,
il vous suffit de faire un clic droit puis sélectionner

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 octobre 2004 11:56:02 :
Cette mise à jour permet de crypter et de faire un copier/coller sur msn ou word sans retranscrire les retours chariots, car autrement le texte serait différent de celui donné par le programme et on ne pourrait plus le décrypter. Elle remplace également les caractères non contenus dans l'alphabet par un x. Ainsi, il n'y a plus d'erreur pendant le cryptage.
01 octobre 2004 12:04:02 :
Cette mise à jour permet de crypter et de faire un copier/coller sur msn ou word sans retranscrire les retours chariots, car autrement le texte serait différent de celui donné par le programme et on ne pourrait plus le décrypter. elle remplace les caractères non contenus dans l'alphabet par un x. Ainsi, il n'y a plus d'erreur pendant le cryptage.

 Sources du même auteur

Source avec Zip Source avec une capture JEU EN GIFS ANIMÉS FIRECOIN
Source avec Zip Source avec une capture JEU DE REFLEXION ET D'ENTRAINEMENT OCULAIRE
Source avec Zip Source avec une capture JEU DE MATH - CALCUL MENTAL
REMPLACER LE SYMBOLE DÉCIMAL
Source avec Zip Source avec une capture OCX PROGRESSBAR SANS FIN PARAMÉTRABLE

 Sources de la même categorie

Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66
Source avec Zip Source avec une capture SCANNER FLEX par lajouad
Source avec Zip EQUATIONSECONDDEGRÉ,MATH,DEGRÉ par shadkitenge
Source avec Zip Source .NET (Dotnet) SOMME DE CHIFFRES CONTENUE DANS UN NOMBRE par alpha5

Commentaires et avis

Commentaire de e_NeX le 30/09/2004 23:43:44

Moias , ca a l'air pas mal! Je n'ai pas ouverta source mais ce qu'il faudrais savoir, c si ca peux crypter un fichier de 5mb? parceke crypter 5 ligne c'est bien mais bon...

sur ce , je te laisse!

Commentaire de tbbuim1 le 01/10/2004 09:39:13

Comme je l'ai dit, ce petit programme a été fait rapidement afin d'éviter qu'on lise mais conversation sur msn. Donc pas besoin de crypter un fichier de 5Mo. Mais si tu regardes la source, tu peux t'en inspirer, afin de crypter ton fichier de 5Mo. Attention tout de même, il faut compléter l'alphabet afin de crypter tous les caractères sinon yaura peut être des erreurs. Mais c'est pas mal comme idée, je pense que je ferais une mise à jour pour pouvoir le faire, surement ce weekend. [:)]

Commentaire de jupiter le 01/10/2004 15:25:52

Bravo pour cet essai.
Ce principe de cryptage par clé symétrique semble simple de conception mais je pense qu'il doit être assez  facilement décryptable par des logiciels adaptés au déchiffrement.  Je m'interresse depuis peu à la cryptanalyse mais je n'ai aucune référence sur ces log de décryptage ou je suppose que la difficulté majeure est de déterminer la longueur de la clé. Si tu as quelques tuyaux sur le concept de ces logiciels de décryptage, ca m'interresse beaucoup.

Commentaire de gandalfkhorne le 01/10/2004 20:28:14

Ce que tu as implémenter et un cryptage de Vigénère : http://www.vbfrance.com/code.aspx?id=23821

(100 Ko.s ~)

Sinon pour information il y a un script de décryptage par Vigénère, tu peux le tester : http://www.bibmath.net/crypto/poly/viganajava.php3

Bonne continuation, +

Commentaire de vlad2i le 03/10/2004 17:10:53

Salut hehe

J'aime bien montrer qu'il y a des failles juste pour que les auteurs réagissent des fois hehe

1. Ton programme ne fait pas de différence entre les majuscules et les minuscules semble-t-il

2. Quand on a une clé proche de la clé d'origine, le message est proche lui aussi, et l'erreur diffusée est perpétuée régulièrement

Ce qui signifie que ... 26 lettres (+accents+chiffres+ponctuation+caractères isolés) a analyser × la longueur du message = nombre d'essais avant de trouver (a coup sur) ton message, et donc, ta clé...

Vigenère... il a été cru inviolable jusqu'a son cassage (à la main) au 18è siècle ...

Remarque, c'est une méthode comme une autre pour s'initier :) et ton code fait très bien ce qu'il fait :)

Vlad

Commentaire de tbbuim1 le 04/10/2004 09:44:02

1. Exact, je n'ai pas encore mis les majuscules dans mon alphabet, mais vous pouvez les rajouter sans aucun problème, c'est très simple...
2. Le message obtenu n'est pas du tout proche, ça dépend de ta clé en fait, certe, le message obtenu se répète et donc on peut déterminer combien de lettre compose la clé, mais ce n'est pas suffisant pour la trouver... De plus, mon alphabet ne contient pas que 26 lettres, mais au contraire presque tous les autres caractères sauf les unicodes, soit près de 80 et je n'ai pas encore rajouter les majuscules, ce qui devrait faire dans les 106. Pour compliquer les chose, il faudrait mélanger les lettres de l'alphabet. Ainsi, un cassage (à la main) serait très difficile à réaliser, dans la mesure ou l'on ne connait pas l'ordre dans lequel ont été placé les caractères de l'alphabet. Et je pense que le cassage dont tu parles a été réalisé sur un petit alphabet bien rangé ne contenant que des lettres... :)
3. Bien entendu, cette méthode de cryptage n'est pas inviolable, mais pensez vous que si j'avais trouvé une telle méthode, je vous l'aurais partagé..?
PS: Merci Gandalfkhorne pour tes précisions.
      Jupiter, tu peux me contacter quand tu veux.

Commentaire de vlad2i le 04/10/2004 17:28:58

tbbuim> concernant ta réponse; le message obtenu est TRES proche, disais-je, si la clé utilisée est TRES proche elle aussi... Pour contrer ta théorie, j'ai cassé (a la main, et a la machine) pour les besoins des tests de Fitz son cryptage (sui marche +/- comme DES, donc codage symmétrique + password + transposition) et il ne s'agit évidemment pas de lettres bien rangées :)

"on ne connait pas l'ordre dans lequel ont été placé les caractères " ... ca n'est pas déterminant... une analyse heuristique des caractères dans une langue donnée te donne de suite les correspondances :)

Vi c'est po inviolable :) mais regardes Rijndael, RSA (aie, mauvais exemple :p), bon alors Serpent ou Blowfish ... Très très sécurisés, meme si pas inviolables, et publics (tout du moins utilisables gratuitement)  ...

PS: correction de vocabulaire :
"mais au contraire presque tous les autres caractères sauf les unicodes" <== niet

tu voudrais en fait placer tous les caractères alphanumériques de la table ASCII (qui comporte 256 caractères au total)

Les "caractères unicodes", qui sont des combinaisons de caractères sur 1, 2, 3 ou 4 octets sont cryptés exactement pareil, cad, un prog capable de crypter ASCII peut crypter UNICODE indiferremment :)

Si tu adaptes ton code à ASCII, ca donne :

A = mot de passe
B = message

C = A+B = message crypté ...

on ne peut pas faire plus simple :)
et ca marche :)

J'essaies juste d'aider moi :p ton code marche, certes. Il possède juste quelques failles que je te présente, c'est pour t'aider, pas pour critiquer ni quoi que ce soit dans ce genre

Vlad

Commentaire de dnob700 le 04/10/2004 18:14:31

oui, c'est sympa pour t'initier, mais si effectivement, c'est une méthode simple, elle n'est pas vraiment efficace.

donc il n'y a un interet pédagogique, mais aucun interet pour le cryptage lui même car ton système se casse extremement facilement (pour un texte de 5mo comme il est question plus haut, c'est un jeu d'enfant, la facilité du cassage augmentant avec la longueur du code, sauf si la clef augmente aussi en longueur).

si tu veux améliorer ton programme tout en continuant à utiliser des clefs privées, essaye de mélanger plusieurs sytème de cryptage décalage (comme tu le fait, avec des clefs plus longue) + des XOR avec une autre clef + un hash. Par exemple.

Commentaire de RaphAstronome le 04/10/2004 18:30:31

C'est facile a casser si il y a repetition de caractaire :
5 1 4 3 Code
1 1 1 1 Message
----------
6 2 7 4 Crypté
Il est possible de faire une étude statistique et de casser le code.

Commentaire de tbbuim1 le 05/10/2004 09:24:34

Ok les gars, amusez vous bien avec vos méthodes de cryptage, je cherche pas à me cacher aux yeux des RG, mais juste aux yeux des quiches de mon services info :p
Donc pour moi, ce code et suffisant et TRES TRES efficace! :D Certes, pour nous, ça ne l'est pas :(
En revanche Vlad, je ne comprends pas ce que tu entends par très proche? car, si je choisi la clé tbbuim et que le mot à crypter est tbbuim, la réponse n'est pas tbbuim et est loin de l'être, encore plus, si je mélange les lettres de l'alphabet, donc pour moi ce n'est pas TRES proche, par conséquent, j'aimerais comprendre pourquoi tu dis ça.

Commentaire de fkx le 05/10/2004 12:42:29

Pourquoi ne pas optimiser un peu ton code ?
Par exemple,

Public Function Crypte(ByVal C As String, ByVal T As String) As String
    Dim Temp As Integer
    Dim C1, T1 As String
    C1 = alpha(C)
    T1 = alpha(T)
    Temp = CInt(C1) + CInt(T1)
    If (Temp > NbC) Then Temp = Temp - NbC
    Crypte = reget(CStr(Temp))
    StrCrypt = StrCrypt & Crypte
End Function

Pourrait être remplacé par :

Public Function Crypte(ByVal C As String, ByVal T As String) As String
    Dim Temp As Integer
    Temp = CInt(alpha(C)) + CInt(alpha(T))
    Temp = Temp mod NbC
    Crypte = reget(CStr(Temp))
    StrCrypt = StrCrypt & Crypte
End Function

La seule ligne sur laquelle j'ai un doute est :
Temp = Temp mod NbC
En effet, dans des langages un peu plus "optimisés" (genre C++ voire ASM), le débranchement (if...then...) avec une affectation dans le "then" est plus coûteux (en temps) que l'affectation directe (en l'occurence, le test que l'on souhaite faire s'y prête très bien).
La question est donc de savoir si VB réalise le modulo "lui-même" (avec des instructions ASM) ou  s'il fait appel à la vilaine MSVBVMx.DLL pour le calculer, auquel cas il se pourrait que le test (réalisé en ASM, c'est sur) soit plus rapide.
A voir...

En tous cas, la morale de l'histoire est : "Optimisation !"

Dans cette optique, je te conseille plus que très vivement de remplacer ta fonction "alpha(caract As String) As String"
par un tableau de CARACTERES (Byte en VB) que tu initialiseras au lancement du programme par exemple.
Ayant déjà testé, cette optimisation est très très très efficace !

Bonne prog !!!

Commentaire de fkx le 05/10/2004 12:46:15

Petite remarque supplémentaire, tu n'auras qu'à appeller ton tableau "alpha" pour ne pas avoir à refaire tout ton code.

Essaie aussi de remplacer le plus souvent possible tes String par des Byte (quand c'est possible, évidemment)

Commentaire de vlad2i le 05/10/2004 17:32:04

Prends pas ca mal, tbbuim ...

Quand je dis qu'avec une clé proche de la bonne, le message est proche du bon...

un exemple concret :

In Spain, it rains in spain (clé abcdefghij) =>
jp%wugpvé6jv%vfou/5so?vtfou

Mais si je décrypte avec une mauvaise clé (abcddfghij) =>
in sqain, it rbins in spbin

non seulement, je vois que seule une lettre toute les 10 en partant de la 5e (espaces et ponctuations compris) a changé ... je remarque aussi que la lettre est la suivante de celle que l'on attend dans l'alphabet => je dois donc avancer d'une lettre la 5e de mon code ... et que la clé fait 10 lettres de long...

Tt ca certes, c'est un peu d'un niveau plus avancé, très empirique et évidement je ne prétends pas tromber par hasard sur une clé aussi proche...

Mais c'est ca que j'entends par un "résultat proche si la clé est proche" ... Si on a a peu pres ta clé, on a a peu prés le message :)

Vlad

Commentaire de vlad2i le 05/10/2004 17:34:45

PS : 4/10 c'est qd meme méchant comme note ...

OK c pas parfait, mais c'est po du kk non plus

Je te met un 8, pour rééquilibrer

Vlad

Commentaire de tbbuim1 le 06/10/2004 12:00:45

Ok, merci, je n'avais pas compris que tu parlais de mettre une clé proche de la clé d'origine pour décrypter, je pensais que tu parlais de mettre un texte proche de la clé. Donc dans ce cas, il est vrai, que le texte obtenu est TRES proche, mais encore faut-il avoir le même programme de cryptage... :p De plus, je ne prends pas ça mal, j'ai juste une façon de parler un peu sèche :( et je ne tiens pas vraiment compte des notes donc ça ne me chagrine pas :) Cela dit, merci quand même. De plus, ayant fait ce programme en 1/2h (au départ), j'ai plutôt cherché à adapter le texte obtenu pour qu'il s'intègre bien sous msn (d'où le fait que je n'aie pas pris en compte les majuscules car je voulais faire vite) qu'à penser à toutes les possibilités d'optimisations pour la rapidité, qui est ma foi assez correcte pour l'utilisation que j'en ai. Merci pour tout vos conseils, ça fait plaisir que pour une fois, on me laisse des commentaires sur une de mes source... Maintenant, je vais essayer de faire un plugin pour msn, là, ce sera vraiment intéressant, ensuite, je verrais pour l'optimisation (^c^) @+

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales