Un langage codé léger, 2 caractères non codé=1 caractère cod

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
Santo
Messages: 3
Enregistré le: 25 Juin 2010, 16:04

Un langage codé léger, 2 caractères non codé=1 caractère cod

par Santo » 25 Juin 2010, 16:33

[FONT=Comic Sans MS]Bonjour,

Voilà je suis en train de créer un langage codé, l'idée c'est de créer une clé nécessitant un mot de passe unique pour chaque utilisation, et un résultat plus léger que le texte entré.
L'utilisateur entre un mot de passe et un texte à codé, avec deux algorithmes différents, on obtient 2 suites de chiffres différentes à partir de ce même mot de passe, on les appelle x et y.
La clé d'un langage codé "basique" attribue à chaque caractère du texte entré un nombre n compris entre 0 et 200. (ex : si "a"=4 tous les autres "a" seront égaux à 4).
Puis à l'aide d'un autre algorithme, à partir d'un chiffre de x et n on obtient un autre nombre z compris entre 0 et 200.(si n=4 z peut être égal à 71 mais tous les autres z correspondant à un n=4 ne le seront pas forcément)
Voilà jusque là aucun problème.[/FONT]

Maintenant voici le problème :mur: >.> :
On a deux nombres z, z(1) et z(2) et je voudrais qu'avec un calcul magique on en fasse plus qu'un appelé a compris entre 0 et 200...on peut utiliser les chiffres de et x et/ou y.
Ça c'est facile : Il faut ensuite que si on vous donne simplement a, x et y, qu'on puisse retrouver z(1) et z(2), et j'ai peur qu'il y est trop d'inconnus :/.
Tous les calculs sont autorisés.
Répondez moi avec ces nombres s'il vous plait, car un exemple illustre toujours mieux ;) :
z(1)=84
z(2)=198
x=4561234894123141345469413145
y=156451234564212314235142756127321756174217651723
a=?


Merci,
Cordialement.

Edit : si vous ne trouvez pas, dites le s'il vous plait... la solution n'existant aps peut-être xD.

Edit 2 : Je reformule le problème, c'était peut-être pas très clair, je cherche un algorithme qui avec 4 variables 2 nombres compris entre 0 et 200(z(1) et z(2)) et 2 chiffres (un chiffre de x et un autre y) on puisse obtenir un nombre a compris entre 0 et 200. Et un autre algorithme associé à celui-ci, qui avec a compris entre 0 et 200 et les deux chiffres de x et y on puisse retrouver z(1) et z(2) compris entre 0 et 200.



Sve@r

par Sve@r » 26 Juin 2010, 10:41

Bonjour

Personnellement j'ai pas lu tout ça en détail. Mais au vu de ce que j'ai parcouru, je te conseillerais d'aller voir du coté de Huffman pour la partie compression et du coté de Diffie-Hellman ou bien de RSA pour la partie "création de clef".

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 26 Juin 2010, 11:27

salut,

Edit 2 : Je reformule le problème, c'était peut-être pas très clair, je cherche un algorithme qui avec 4 variables 2 nombres compris entre 0 et 200(z(1) et z(2)) et 2 chiffres (un chiffre de x et un autre y) on puisse obtenir un nombre a compris entre 0 et 200. Et un autre algorithme associé à celui-ci, qui avec a compris entre 0 et 200 et les deux chiffres de x et y on puisse retrouver z(1) et z(2) compris entre 0 et 200.


ca me parait pas possible.
Mettons, z(1) et z(2) je les appele n1 et n2.
On veut trouver une certaine fonction f, qui associe au couple (n1,n2) un nombre a, et que cette fonction f soit inversible : elle associe au nombre a Le couple (n1,n2)

Si on met n1, et n2 dans [0,1] (n1 prend la valeur 0 ou 1, idem pour n2)
Alors en entrée, on a 4 possibilités
(0,0),(0,1),(1,0),(1,1)
(ou le premier chiffre c'est n1, et le second c'est n2)
En sortie, on a que deux possibilités :
0 ou 1.
A ce niveau là, on peut pas savoir si le 0 ca correspond a un couple ou a un autre. Donc c'est mort.

En revanche, on peut imaginer encoder la sortie sur un peu plus.
Par exemple, en entrée n1 prend deux valeurs différentes.
Si on encode la sortie S, par
S = n1*|n2|+n2
ou |n2| représente le nombre de valeurs que peut prendre n2, alors si n1 prend ses valeurs dans [0,1] et mettons n2 dans [0,200]
on peut avoir S qui prend ses valeurs dans [0,1*201+200] = [0,401]
Et retrouver le couple à l'origine par
n2 = S % |n2|
et
n1 = (S - n2 )/|n2|

Ex :
n1 = 0,n2 = 30
S = 0*201+30 = 30
=>n2 = 30, N1 = (30-n2)/201 = 0
n1 = 1, n2 = 30
S = 231
=>n2 = 231 % 201 = 30
n1 = (231-30)/201 = 1
la vie est une fête :)

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite