Vous n'êtes pas enregistré. Loggez-vous ou inscrivez vous.


Offre à ne pas rater : 1 pénis gratuit !

OleooRadio

Ecoutez OleooRadio

Pages: 1 2 Suivant

Atom RSS

Page [ 1 of 2 ] Posts [ 1 to 20 of 23 ]

volfuco

Discussion: [C++] Crypto-cryptage de fichier à clé unique

Bon je sais le nom n'est pas très original, ce n'est qu'un premier jet clindoeil
Voici donc Crypto, il s'agit d'un petit soft en c++ destiné à crypter un fichier à l'aide d'un algorithme original développé par moi.
Il n'est pour l'instant disponible qu'en interface console, néanmoins l'interface est plutôt explicite.
Les sources ne sont pour l'instant valides que sous windows, j'ai quelques petits problème de portage sous unix
Il n'acceptent également que les fichier .txt et stocke la clée de chiffrement en clair sur votre disque dur

Je bosse actuelement sur la version GUI qui utilise Qt 4.4.0,et qui devrait être multiplateforme.
Toutes les informations utilisateurs seront chiffrées etc..
Merci de me faire parvenir des critique constructives et vos suggestions clindoeil

http://dl.free.fr/lBZcZLiZm/Crypto.zip

ps: étant pour l'instant aux USA je n'ai pas accès à mon ftp free donc si le lien est mort entre temps, signalez le moi merci !

Dernière édition par volfuco (22/06/08 15:45:57)

rvns

Re: [C++] Crypto-cryptage de fichier à clé unique

Cryptage linéaire ? :p

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

ca dépend qu'entend tu par cryptage linéaire ?

unknows

Re: [C++] Crypto-cryptage de fichier à clé unique

Ce qui est plutôt intéréssant, c'est de savoir si c'est un cryptage symétrique ou asymétrique, l'algoritme utilisé...

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

alors soyons honnête l'algorithme est perso et bien qu'ayant un bagages mathématique de prépa, je n'y connais pas grand chose à la cryptographie,
il s'agit a mon avis d'un cryptage symétrique, l'algorithme s'inspirant du fonctionnement d'enigma (interprété à ma sauce hein)
Par exemple, vous pourrez crypter la lettre a plusieurs fois de suite, elle ne sera pas crypter deux fois de suite par la même lettre

mitchum.perce1

Re: [C++] Crypto-cryptage de fichier à clé unique

Euh, desole mais il faut remettre les choses dans leur contexte..le terme "crypter" n existe pas au sens de la cryptographie. Le terme exact est "chiffrer".
Desole pour le purisme

// Slash is Back \\

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

tu as tout à fait raison excusez moi pour cet angliscisme ^_^

unknows

Re: [C++] Crypto-cryptage de fichier à clé unique

Euh, desole mais il faut remettre les choses dans leur contexte..le terme "crypter" n existe pas au sens de la cryptographie. Le terme exact est "chiffrer".
Desole pour le purisme

Je suis d'accord dans le fond, mais même si nombre de français n'aiment pas les anglicismes, on ne peut démontrer la fréquence de leur usage, et surtout en matière de jargon informatique! Si j'avais à faire une remarque sur le mot en lui même, ça serait plutôt sur le mauvais usage contextuel. (crypter désigne en soit le fait de rendre non compréhensible un message en le codant, ce qui est incontestablement juste en cryptographie)

oups8

Re: [C++] Crypto-cryptage de fichier à clé unique

salut,
pourquoi tu a choisi ce type de cryptosystème, tu aurais mieux le faire avec un chiffrement hybride ( symétrique et asymétrique ), c'est plus sur et rapide à mon avis ? ta bien des raisons ?

http://a.imagehost.org/0158/DTB.png

Vive Oleoo ^^

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

lorsque l'idée de cet algorithme m'est venu j'étais encore jeûne ^_^ alors RSA et autres me paraissaient très loin d'içi clindoeil
entre temps me sus mis au C/C++ donc mon objectif prioritaire était d'arriver à implenter correctement mn algo et l'intégrer à un programme viable
En ce moment je suis ds ma période gui donc je m'occupe de la gui mais à terme il est prévu de revoir l'algo vir d'en proposer plusieurs ce qui est assez simple à implemnter vu que mon prog est assez modulable ds son architecture
par contre je ne vois pas torp comment tu veux coupler symétrique et asymétrique éclaire moi ^_^

unknows

Re: [C++] Crypto-cryptage de fichier à clé unique

par contre je ne vois pas torp comment tu veux coupler symétrique et asymétrique éclaire moi ^_^

C'est le principe même des systèmes PGP qui couplent chiffrement à clé publique et chiffrement à clé privée ! (on a ainsi l'avantage des deux chiffrements: Le système à clé symétrique étant plus efficace au niveau de l'algorithme même, mais le système à clé asymétrique beaucoup plus sécuritaire content )

Dernière édition par unknows (24/06/08 11:07:06)

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

ok mais concrètement comment tu t'y prend ? tu compose deux algorithmes de chiffrement ensembles ? parce que si je me souvien bien avec pgp l'utilisateur n'a accès qu'a la clée publique du destinataire non ?

DDx'S

Re: [C++] Crypto-cryptage de fichier à clé unique

Et on pourrait avoir la source ? Dans le cas contraire c'est complétement inintéressant content

Mr.Spunky

Re: [C++] Crypto-cryptage de fichier à clé unique

Voici donc Crypto, il s'agit d'un petit soft en c++ destiné à crypter un fichier à l'aide d'un algorithme original développé par moi.

http://nsa02.casimages.com/img/2008/06/26//0806260151503826429.png
Absent du 4 Juillet au 19 Juillet :ange:
MrHero :love:

rabialex

Re: [C++] Crypto-cryptage de fichier à clé unique

Salut volfuco

Ce qui serait sympa à faire serait d'implémenter une solution de cryptage asymétrique entre plusieurs interlocuteurs (d'ailleurs le cryptage asymétrique tire son interêt dans l'échange de données)

Comme l'ont dit plusieurs personnes, ce serait plutôt intéressant de se pencher sur un cryptosystème asymétrique, le principe est assez simple :

- Tu dois générer deux clés : une publique et une privée (la publique est échangée entre les différents interlocuteurs et la privée reste .... privée langue donc n'est pas échangée)
- L'interlocuteur recoit ta clé publique afin de crypter le message.
- Il te renvoit le message fraichement crypté
- Ta clé privée fonctionne comme une fonction inverse du cryptage et tu es donc (à priori) le seul à pouvoir décrypter le message reçu.

Vu que tu sors de prépa les maths permettant de créer les clés puis de chiffrer et déchiffrer le messages avec ces clés ne sont pas trop bourrines à moins que tu utilises des algos assez chiants sur les courbes elliptiques par exemple qui n'utilisent meme pas des clés classiques mais des points sur des courbes et le problème du log discret un truc à retourner le cerveau :p

Sinon essaies de voir du côté de RSA c'est pas trop compliqué (j'ai fait mon TIPE de prépa dessus^^) si t'es pas allergique à l'arithmétique.

Enfin ,pour que ce soit pleinement utilisable il faudrait implémenter un système de communications client-serveur pour tester tout ca mais c'est de l'enrobage à coup de sockets. Donc un truc du genre :

- Le client génère son couple de clés
- Le serveur recoit ta clé publique et crypte
- Le serveur te renvoit le message crypté et tu le décryptes avec ta clé privée perso.

Voila c'est juste quelques idées en vrac si t'es motivé par le sujet ca pourra te donner peut etre quelques pistes pour améliorer ton petit soft clindoeil

Dernière édition par rabialex (26/06/08 15:30:10)

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

==>a DDx'S

désolé mais pour l'instant c'est un peu trop le bordel, je préfère attendre la sortie d'une version plus aboutie

==>à Rabialex

merci beaucoup pour les idées, je me suis bien renseigné sur RSA, je voulais essayer de l'implémenter mais je cherche la librairie néccéssaire pour l'utilisation d'aussi grand nombres
et concernant la mise en communication utilisateur-serveur si ta un peu de doc la dessus je ne crache vraiment pas dessus
est ce qu'il y a des solutions multi plateforme d'ailleurs ou faut il s'y prendre différement selon l'OS (je sais que l'api windows propose pas mal de trucs mais je répugne un peu à l'utiliser...

merci d'avance !

rabialex

Re: [C++] Crypto-cryptage de fichier à clé unique

Pour l'utilisation de grands nombre tu peux utiliser le type

Code:
unsigned long long

du coup t'auras plus trop besoin d'utiliser une librairie pour ca.

Pour ce qui est des fonctions mathématiques tu peux plutot t'orienter vers un dev en Java plutot qu'en C++ même si en C++ c'est tout a fait faisable mais un peu plus compliqué à mon sens

Pour l'appli client-serveur, tu as deux solutions :

- Soit tu restes sur Windows et tu utilises Winsocks, il y a de très bonne docs sur internet la dessus. Il s'agit d'une bibliothèque de DLL permettant d'implémenter des sockets (une socket est la base de toutes les communications clients serveurs IP). Tu trouveras toute la doc dans la MSDN de microsoft à l'adresse suivante : http://msdn.microsoft.com/en-us/library … S.85).aspx. C'est en anglais mais bon vu que tu es aux US ca devrait pas te poser plus de problèmes que ca langue

- Soit tu passes sur Linux et la c'est le bonheur ^^ Tu n'as rien à installer du tout car tout est pris nativement en charge par le kernel. Cependant ce n'est peut être pas la meilleure solution pour toi si d'une part tu n'as pas Linux et que tu as déja commencé à développer sur Windows.

Quoiqu'il en soit que tu utilises Winsocks ou les sockets linux le principe d'une socket en mode connecté TCP ou non connecté UDP reste le même, je te fait un bref topo d'une socket en mode connecté (TCP) :

Serveur

- Création d'une socket (retourne un descripteur de fichiers sous Linux et un objet SOCKET sous Windows)

- Liaison de la socket (liaison entre la socket et une structure de données coté serveur modifiée lors de l'échange de données)

- Ecoute sur un port

- Attente de demandes de connexions (bloquant sur le serveur tant qu'aucun client ne fait de demande de connexions, retourne un nouveau descripteur de fichiers sur linux et une nouvelle structure SOCKET sur Windows sur laquelle se fera tous les échanges)

- Lecture/Ecriture de données

Client

- Création d'une socket

- Bind de la socket

- Connexion au serveur sur un port sur lequel le serveur écoute

- Ecriture/Lecture de données une fois la connexion acceptée par le serveur

Pour une socket en UDP (mode non connecté) la seule différence est que c'est non fiable c'est à dire qu'il n'y a pas de retransmission de données si c'est perdu, pas d'accusé de réception, et l'identification client serveur se fait explicitement (pas de routine d'acceptation de connexions mais plutot création d'une structure de données client et une structure de données serveur permettant de les identifier donc pas de risques que la connexion soit frauduleuse en théorie bien sur ^^).

Pour ton cas tu peux utiliser soit le mode connecté (TCP) ou le mode non-connecté (UDP) sachant que pour ce genre d'appli si elle reste en local elle n'a pas besoin d'une connexion fiable en TCP enfin ca c'est a toi de choisir :p

Eventuellement je pourrais t'envoyer quelques unes de mes sources sur les sockets mais ce sera uniquement des sockets UNIX pas Windows zik si tu en as besoin clindoeil

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

génial merci beaucoup !
je vais essayer de me mettre doucement aux sockets alors
perso suis en dual boot vista/ubuntu(8.10)
et je trouve des avantages aux deux c'est pourquoi j'aurai voulu essayer d'avoir une solution multi plateforme mais je devrai pouvoir survivre ^^
bon je me met à l'implementation de RSA, ca n'a pas l'air sorcier en effet clindoeil

edit:

j'ai commencer à me renseigner sur les socket seule question :
il y a t'il des solutions d'hébergement de serveurs gratuites qui me permettrait de faire tourner mon app serveur sur ce dit serveur ? car pour l'instant je n'ai trouve que des espace d'hebergement pour site web ou alors est il possible de coupe l'app client ac une page php et une base de donnée sql ou qqchose ds le genre ?

Dernière édition par volfuco (26/06/08 20:46:38)

rabialex

Re: [C++] Crypto-cryptage de fichier à clé unique

Il faudrait que tu ais la main sur le serveur distant pour pouvoir lancer ton serveur socket. Mais pour tester tu peux très bien héberger ton serveur et ton client sur la même machine ca ne pose aucun problème content
Donc tu lances ton serveur qui reste actif et boucle sur les connexions entrantes et tu lance ton client sur la même machine en lui spécifiant localhost comme adresse du serveur.

Par la suite tu pourras te créer un serveur web dedié chez toi sous Linux et tu pourras executer ton soft (qui jouera le rôle du client soit dit en passant)  sur n'importe quelle machine dans le monde ou alors louer un serveur chez ovh mais bon ca en vaut pas le coup pour un serveur socket de ce genre je pense ^^

Si tu as un vieux PC chez toi il fera très bien l'affaire pour ce travail langue

Pour ce qui est du multiplateforme c'est assez complexe dans le sens ou tu devras développer un soft par plateforme (Linux et Windows principalement) et ton serveur devra gérer cet aspect multiplateforme mais à priori au niveau de la socket il n'y aura pas trop de problèmes de compatibilité vu que les sockets c'est du TCP (ou UDP) sur IP et en terme d'implémentation ça change pas des masses entre Winsocks 1.0 et Linux

Analyse bien tes besoins, quel est le public visé et peut être que tu ne devras pas te soucier de l'aspect multiplateforme et te concentrer sur un OS au lieu de plusieurs clindoeil mais sache que c'est tout a fait faisable de gérer un serveur compatible Windows et Linux (et BSD et BeOS et blablabla langue) faut juste s'armer de patience parce que des fois les problèmes de compatibilité multiplateforme ca fait perdre des cheveux ^^

volfuco

Re: [C++] Crypto-cryptage de fichier à clé unique

ok je vois merci beaucoup en tous cas !
j'ai trouvé un petit tuto sur le Site du Zéro qui détail pas mal et qui permet d'avoir un code à peu près multi plateforme grâce à des directives de préprocesseur
Je vais essayer de m'y mettre quand je ne bosserai pas et je publierai les mise à jour içi
Question sur cette histoire de multi plateforme: est ce qu'un client sous unix peut dialoguer avec un serveur sous windows et vice versa ?

Page [ 1 of 2 ] Posts [ 1 to 20 of 23 ]

Le post pour invité est désactivé. Vous devez connexion ou s'enregistrer pour pouvoir répondre.

Pages: 1 2 Suivant


Forum quick jump menu

[ Generated in 0.161 seconds, 8 queries executed ]

OleooRadio est une radio editee par Radionomy.

Oleoo.info : Classement par Audience - OleooTV - Recherche de Fichiers