RSA en c++ : tentative
Fermé
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
-
18 févr. 2015 à 21:13
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 21 févr. 2015 à 15:52
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 21 févr. 2015 à 15:52
A voir également:
- RSA en c++ : tentative
- Forfait internet rsa orange - Accueil - Box & Connexion Internet
- SVP! aidez moi !!cryptage décryptage RSA NTL - Forum Programmation
3 réponses
lepro34
Messages postés
124
Date d'inscription
mardi 12 août 2014
Statut
Membre
Dernière intervention
3 juin 2016
5
18 févr. 2015 à 22:34
18 févr. 2015 à 22:34
Ok je pourrait t'aider car moi aussi je suis un fan du c++ et je suis devenu un pro.
Quel logiciel utilise tu pour coder?
Quel logiciel utilise tu pour coder?
Salut, fmod c'est pour les virgules flottantes, en cryptographie la moindre approximation fausse tout.
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
19 févr. 2015 à 12:46
19 févr. 2015 à 12:46
Oui je sais mais le problème c'est que si je met (h%n) ça ne marche pas car ça suppose que j'ai déclarer mes variables comme long int; or avec de telles variables je pourrai faire que de très petites puissances .. Je suis obligé de passer par ça pour pouvoir mettre des nombres assez grands ..
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
19 févr. 2015 à 12:48
19 févr. 2015 à 12:48
Mais les nombres a virgule flottante souffrent d'importants problèmes de précision, surtout quand le nombre est très grand ou très petit, ce qui fausse tous les calculs cryptographiques.
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
19 févr. 2015 à 12:50
19 févr. 2015 à 12:50
Mais meme si je les déclare en double ou float, ils ne prennent comme valeur que des nombres entiers .. Je pensais donc que cela n'influerait pas et me permettrait d'avoir des nombres entiers de grandes tailles
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
Modifié par gravgun le 19/02/2015 à 12:56
Modifié par gravgun le 19/02/2015 à 12:56
Des flottants entiers ont moins de précision que les types intégraux qui leur sont analogue: les
Si tu veux faire joujou avec des entiers ou flottants de précision arbitraire, regarde du coté de GMP.
doubles n'ont que 52 bits de mantisse, or ils prennent autant de place qu'un
long long int: 64 bits. Donc moins de place pour le nombre.
Si tu veux faire joujou avec des entiers ou flottants de précision arbitraire, regarde du coté de GMP.
cor3ntino10
Messages postés
10
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
19 février 2015
19 févr. 2015 à 12:55
19 févr. 2015 à 12:55
Ah d'acc du coup tu me conseilles d'utiliser quoi plutot comme type de variables ?
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
21 févr. 2015 à 15:52
21 févr. 2015 à 15:52
Bonjours
Avant tout quand on est un pro de la programmation comme certains le revendiquent en ne dit pas cryptage car c'est un procéder et d'ailleurs, dans le domaine informatique, mathématique ou cryptographique, On n'utilise pas le terme ou le mot cryptage, mais chiffrement tout comme il y a une différence bien distincte entre codage et chiffrement ou cryptage.
De plus la méthode que vous essayer d'implémenté est dite chiffrement asymétrique RSA et non cryptage; le cryptage est l'ensemble des procédés de chiffrement RSA. En cryptographier pour résumer, un texte ou donner brut en clair est appelé Texte clair ou donné non chiffrer sa version chiffré est appelé texte ou donnée chiffrer donc le chiffrement a pour objectif de transformer les données non chiffrés en donnée chiffré et le déchiffrement est quant à lui le contraire du chiffrement. Le ou les informations de conversions ( claire to chiffré or chiffré to déchiffré) sont appelés clés cryptographiques ou clé de chiffrement .
Le Code source écrit par @cor3ntino10 n'est pas aux points et ne présente rien d'un chiffrement asymétrique; dès le départ les données du problème sont mal comprises et ce n'est pas une de ses différentes instructions qui vont fournir un chiffrement ou détermine de très grands nombres premiers. Vous allez dire qu'un ordinateur ne peut travailler avec de si grand nombre et que certaines machines sont limitées à 64 bits. Oui et des professionnels vous diront utilisé un langage de programmation qui permet de travailler avec de si grand nombre; exemple le langage python qui permet de manipuler des entiers de taille non fixés; "Alors le RSA ne peut être implémenté en langage C ? et comment faire pour générer un si grand nombre " oublié la programmation un moment, car ce n'est plus du domaine informatique mais le domaine des mathématiques et de l'algorithmique (les fondation de la cryptographie) qui dans le cas des mathématique, va nous permettre de savoir si ont peut générer de très grand nombres et si possible fixé une limite Max, l'algorithmique quant à elle, nous permettra d'élaborer un ou des algorithmes nous permettant d'implémenté notre résolution mathématique "mais comment ?" exemple :
(GMP pourquoi ?) bref.
Les tutoriels c'est bien mais, vaut mieux ne pas prendre comme argent comptent tout ce qui est écrit. Retourné sur le site du tutoriel mentionné dans les précédents postes vous verrez qu'il utilise une bibliothèque ou un programme déjà écrit pour argumenter le sujet, mais en aucun cas en vous expliqueras comment c'est différentes procédures / algorithme on été implémenté. Beaucoup de novices pourront chiffrer en RSA en suivant le tutoriel c'est le bute recherché , mais que savent ils réellement sur son fantastique algorithme ou les formidables technique mathématique qui ont aboutie à une telle prouesse ? "faut savoir reconnaître et admirer l'élégance mathématique mais aussi de de la physique père de l'électronique". Ils sauront chiffrer et RSA mais ... qu'est-ce qu'ils ont appris où compris, pourront-ils écrire une variante de chiffrement asymétrique d'eux même où ils vont encore à nouveau chercher des tutoriels traitant des variantes de chiffrement asymétrique ?.
En conclusion, commencer par comprendre les algorithmes ensuite implémenté les procédure permettant de réaliser un chiffrement asymétrique RSA.
Puis choisissez un langage procédurale ou fonctionnel qu'un langage orienté objet.
Et au final amuser vous à chiffrer déchiffrer des donnés et pour ceux qui sont vraiment des professionnels amusez-vous à déchiffrer une donnée sans connaître la clé de chiffrement.
Débuter avec Euclide "plus grand diviseur commun cours de quatrième (les PGCD) " ensuite écrire l'algorithme Euclide et sur la base du même algorithme adapté là afin de rechercher deux nombres premiers entre eux et après ça, exploré d'autre horizon exemple mettre très rapidement des nombre en puissance , générer des nombre premier etc. après tout ça vous y verrez plus clair et la difficulté de la "choses".
à bientôt.
Avant tout quand on est un pro de la programmation comme certains le revendiquent en ne dit pas cryptage car c'est un procéder et d'ailleurs, dans le domaine informatique, mathématique ou cryptographique, On n'utilise pas le terme ou le mot cryptage, mais chiffrement tout comme il y a une différence bien distincte entre codage et chiffrement ou cryptage.
De plus la méthode que vous essayer d'implémenté est dite chiffrement asymétrique RSA et non cryptage; le cryptage est l'ensemble des procédés de chiffrement RSA. En cryptographier pour résumer, un texte ou donner brut en clair est appelé Texte clair ou donné non chiffrer sa version chiffré est appelé texte ou donnée chiffrer donc le chiffrement a pour objectif de transformer les données non chiffrés en donnée chiffré et le déchiffrement est quant à lui le contraire du chiffrement. Le ou les informations de conversions ( claire to chiffré or chiffré to déchiffré) sont appelés clés cryptographiques ou clé de chiffrement .
Le Code source écrit par @cor3ntino10 n'est pas aux points et ne présente rien d'un chiffrement asymétrique; dès le départ les données du problème sont mal comprises et ce n'est pas une de ses différentes instructions qui vont fournir un chiffrement ou détermine de très grands nombres premiers. Vous allez dire qu'un ordinateur ne peut travailler avec de si grand nombre et que certaines machines sont limitées à 64 bits. Oui et des professionnels vous diront utilisé un langage de programmation qui permet de travailler avec de si grand nombre; exemple le langage python qui permet de manipuler des entiers de taille non fixés; "Alors le RSA ne peut être implémenté en langage C ? et comment faire pour générer un si grand nombre " oublié la programmation un moment, car ce n'est plus du domaine informatique mais le domaine des mathématiques et de l'algorithmique (les fondation de la cryptographie) qui dans le cas des mathématique, va nous permettre de savoir si ont peut générer de très grand nombres et si possible fixé une limite Max, l'algorithmique quant à elle, nous permettra d'élaborer un ou des algorithmes nous permettant d'implémenté notre résolution mathématique "mais comment ?" exemple :
x^M mod ncomprend tu ?" c'est a dire qu'on pourras avoir que des nombres compris entre 0 & n-1" oui "donc on peut par déduction fixé la taille de 'n' "oui et tu était pas loin" mais quel type de variable choisir pour de si grand nombre ?" cela dépendra de la borne max en clair, "n-1" "ça veut dire qu'on peut implémenter RSA en langage C ou C++? " oui."
(GMP pourquoi ?) bref.
Les tutoriels c'est bien mais, vaut mieux ne pas prendre comme argent comptent tout ce qui est écrit. Retourné sur le site du tutoriel mentionné dans les précédents postes vous verrez qu'il utilise une bibliothèque ou un programme déjà écrit pour argumenter le sujet, mais en aucun cas en vous expliqueras comment c'est différentes procédures / algorithme on été implémenté. Beaucoup de novices pourront chiffrer en RSA en suivant le tutoriel c'est le bute recherché , mais que savent ils réellement sur son fantastique algorithme ou les formidables technique mathématique qui ont aboutie à une telle prouesse ? "faut savoir reconnaître et admirer l'élégance mathématique mais aussi de de la physique père de l'électronique". Ils sauront chiffrer et RSA mais ... qu'est-ce qu'ils ont appris où compris, pourront-ils écrire une variante de chiffrement asymétrique d'eux même où ils vont encore à nouveau chercher des tutoriels traitant des variantes de chiffrement asymétrique ?.
En conclusion, commencer par comprendre les algorithmes ensuite implémenté les procédure permettant de réaliser un chiffrement asymétrique RSA.
Puis choisissez un langage procédurale ou fonctionnel qu'un langage orienté objet.
Et au final amuser vous à chiffrer déchiffrer des donnés et pour ceux qui sont vraiment des professionnels amusez-vous à déchiffrer une donnée sans connaître la clé de chiffrement.
Débuter avec Euclide "plus grand diviseur commun cours de quatrième (les PGCD) " ensuite écrire l'algorithme Euclide et sur la base du même algorithme adapté là afin de rechercher deux nombres premiers entre eux et après ça, exploré d'autre horizon exemple mettre très rapidement des nombre en puissance , générer des nombre premier etc. après tout ça vous y verrez plus clair et la difficulté de la "choses".
à bientôt.
19 févr. 2015 à 07:43
19 févr. 2015 à 12:10
19 févr. 2015 à 12:13