Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Boucle infinie

Posté par
PetitCerveau
16-05-20 à 18:49

Bonjour,

Tout d'abord je vous prie de m'excuser, peut être que mon manque de vocabulaire en la matière ne m'a pas permis d'avoir des recherches concluantes. C'est un projet extra scolaire, j'espère que le classement conviendra.

Je vais commencé par la base de mon projet. Un programme convertit des données en une chaine de caractères, et je voudrais convertir cette chaine de caractères avec un algorithme que je suis le seul à connaitre, mes données sont ainsi protégées.

Pour ça je vais attribuer un nombre entier naturel supérieur à 0 pour chaque caractère, par exemple :
# = 45
! = 2
&=64

Les caractères auront la même valeur avant et après le l'encodage, mon scrip va simplement les convertir avec un calcul. Pour "a" étant la valeur des caractères fournis par le programme et "b" étant la valeur des caractères une fois convertis par mon script, je vais prendre l'exemple de l'algorithme suivant :
a^(1/6) = b

Mon scripte va donc exécuter ceci :
45^(1/6) = 1,89 soit 2
Il convertira donc # en !

Dans le cas où le résultat est 1,46 par exemple, l'arrondi serait 1.

Le but est de pouvoir exploiter les données que j'aurai cryptées, donc pour arrondi(a^(1/x) = b), j'étais tenté de faire arrondi(b^x = a).
J'ai alors continué avec :
2^6 = 64

Ce qui veut dire qu'en reconstituant la chaine de caractère pour que le programme de base reconstruise mes données, mon scrip reconstituerait ! en & et non en #

Il faudrait donc qu'au moment du cryptage, l'arrondi soit pris en compte.

Etant donné que pour :
a^(1/x) = b
x = ln(a)/ln(b)

J'ai dans un premier temps crypté comme suit:
a^(ln(a)/ln(b)) = b

Toujours en remplaçant b par  a^(ln(a)/ln(b)) mais je fini coincé dans une boucle.

Alors je me pose cette question. Comment construire une équation qui prend en compte les arrondis, et qui une fois inversée renvoie à la valeur de départ ?

Merci d'avance pour vos réponses.

Posté par
carpediem
re : Boucle infinie 16-05-20 à 19:18

salut

je ne vois pas comment tu peux prendre en compte l'arrondis puisque les valeurs 1,1 et 1,2 seront arrondis à 1

et de plus avec une fonction irrationnelle comme x --> x^(1/6) tu as en plus les arrondis de machine ...

enfin plus généralement il te faudrait une fonction bijective sinon ça buggera toujours ...

pourquoi ne te choisis-tu pas une fonction de N dans N tout simplement ? ou plus simplement si tu as 50 caractères par exemple de {1, 2, ..., 50} dans lui-même ?

Posté par
flight
re : Boucle infinie 16-05-20 à 19:31

salut

il fut un temps ou j'avais codé ceci sur excel vba  : Cryptographie affine   ca pourrait peut etre te servir

Posté par
flight
re : Boucle infinie 16-05-20 à 19:34

sinon si tu veux des outils de cryptage tu peux aller ici :

Posté par
PetitCerveau
re : Boucle infinie 17-05-20 à 14:03

Salut,

Je vois que toutes les idées se regroupent, mais dans ce cas, comment créer un fonction sujective sur un intervalle donné ?

Posté par
carpediem
re : Boucle infinie 17-05-20 à 15:26

il ne faut pas qu'elle soit surjective mais bijective !!!

Posté par
littleguy
re : Boucle infinie 25-05-20 à 18:28

Alors si, il faut effectivement qu'elle soit surjective, mais ça ne suffit pas, non ?  



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !