Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Cryptographie affine

Posté par
Lufibie
10-12-16 à 18:50

Voici un exercice de dm que je n'aie pas du tout compris aidez moi svp je suis à bout :
On souhaite coder un  texte donné à partir d'une clé de cryptage.
Pour chiffrer une lettre d'un texte on doit d'abord utiliser le tableau de correspondance de l'alphabet ci-dessous. A=0,  B=1, C=2, ... Z=25
fonction affine : f(x)=ax+b ou a =3 et b=2
Exemple E (de rang 4) est f(4)=3*4+2=14 soit alors la lettre O
Si le résultat n'est pas dans le tableau de 0 à 25 alors il faut faire par exemple 53-2*26=1 lettre A.
1-Codée le mot SECONDE
2-Réaliser un algorithme en language codé puis en language calculatrice qui permet de coder un texte à partir des rangs du tableau.
Merci d'avance

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 18:52

J'ai essayé et j'ai trouvé les lettres EOIILLO mais je ne pense que c bon car j'ai trouver des nombre négatif

Posté par
mathafou Moderateur
re : Cryptographie affine 10-12-16 à 19:41

Bonjour, (à toi aussi)

je me demande bien comment tu trouves des nombres négatifs en multipliant un nombre entre 0 et 25 par 3 et en ajoutant 2 !!

en tout cas c'est faux ton EOIILLO pour le code de SECONDE

c'est "visiblement faux" puisque le C et le O seraient tous deux codés par I ?? et comment diable pourrait on décoder ?
(et pareil pour le N et le D qui ne peuvent pas être tous deux codés l=par L !)

tu dois faire des erreurs de calcul ... du genre grossières.

si le résultat n'est pas dans le tableau on ne retranche pas 2*26 comme dans l'exemple (qui n'est qu'un exemple)
mais autant de fois 26 qu'il faut pour que ça retombe entre 0 et 25.

si j'obtiens 32 par exemple je ne retranche qu'une seule fois 26

Posté par
flight
re : Cryptographie affine 10-12-16 à 20:11

salut

en posant f(x)= 3x +2 modulo 26

alors pour le mot "seconde" les rangs des lettres sont : 18  4  2  14  13  3 4
f(18)= 3*8+2 modulo 26   soit f(18)= 26 modulo 26    soit  f(18)=0 modulo 26  --> lettre A
f(4)= 3*4+2 modulo 26   soit f(18)= 14 modulo 26      --> lettre O

pareil pour les suivants

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 20:11

J'ai recommencé et j'ai trouvé EOISPLO par contre pour l'algorithme je ne vois pas comment faire.

Posté par
flight
re : Cryptographie affine 10-12-16 à 20:28

pour le bout de programme permettant de coder , j'ai pu fabriquer ca sous excel vba

Sub codage()
alpha = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
p = UCase(InputBox("saisir la chaine de caractères à coder"))
For i = 1 To Len(p)
  For j = 0 To UBound(alpha)
    If Mid(p, i, 1) = alpha(j) Then
     x = x & " " & alpha((3 * j + 2) Mod 26)
    End If
  Next
Next
MsgBox x 'qui renvoi une codification de la chaine saisie dans l'alphabet
End Sub

testé et ca marche

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 20:31

En language calculatrice ca donne quoi car j'ai reconnu certaines formules mais d'autres pas du tout je n'utilise pas souvent excel : /

Posté par
flight
re : Cryptographie affine 10-12-16 à 20:31

je reprend cette ligne pour laquelle j'ai trainé une petite erreur

f(18)= 3*18+2 modulo 26   soit f(18)= 56 modulo 26    soit  f(18)=4 modulo 26  --> lettre E

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 20:33

modulo c quoi en calculatrice et TO UBOUND ???

Posté par
mathafou Moderateur
re : Cryptographie affine 10-12-16 à 20:50

déja il faut que ta calculatrice puisse traiter du texte ...
(trouver quelle lettre de l'alphabet etc)

en tout cas c'est comme partout et toujours

on ne commence pas par le codage d'un programme mais par un algorithme :
écrire en langage naturel la succession des opérations, décrites en langage naturel (= en français courant) à effectuer

ensuite on se pose les questions comment coder ce truc la :
comment connaitre le rang d'une lettre dans l'alphabet
comment extraire les lettres individuelles d'un message etc etc

et les réponses à ça dépendent du matériel / logiciel à sa disposition (en cherchant au besoin dans la notice la spécification des fonctions)

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 20:55

oui le problème c'est que je sais pas comment trouver le codage et l'algoritme on n'a pas vu ça en cours et j'ai beau chercher je ne trouve pas ce que je dois faire ?

Posté par
mathafou Moderateur
re : Cryptographie affine 10-12-16 à 21:09

algorithme :

pour chacune des lettres du message à coder
calculer le rang x dans l'alphabet de cette lettre
calculer la formule y = 33*x+2
tant que y est > 25, retrancher 26 à y
sortir la lettre correspondant au rang y dans l'alphabet

c'est ça du langage naturel

et ça fait se poser les bonnes questions pour la réalisation (c'est à dire pour le codage de cet algorithme en un programme)

comment je vais entrer le message à coder ?
comment je vais extraire chacune des lettres de ce message ?
vais-je devoir dés le départ entrer le message lettre par lettre ? ou tout d'un coup ?
comment je vais trouver le rang d'une lettre dans l'alphabet ?

etc et toutes ces questions là dépendent du matériel sur lequel tu vas faire ton programme

une calculette : voir la notice de la calculette pour traiter des textes (des lettres et pas des chiffres)
Algobox ? chercher du côté des chaines de caractères par exemple, des tableaux, des fonctions de Algobox qui traitent ce genre de trucs (lire l'aide en ligne)
un autre langage ? pareil, même démarche (notice et doc)

Posté par
Lufibie
re : Cryptographie affine 10-12-16 à 21:22

c sur calculatrice TI-83 Premium (texas) et je ne comprend comment il faut calculer le rang x ?

Posté par
mathafou Moderateur
re : Cryptographie affine 10-12-16 à 22:02

aucune idée de la façon dont cette calculette pourrait transformer une lettre entrée en texte en un nombre qui serait le rang dans l'alphabet.

si ça se trouve la calculette n'est pas du tout adaptée à cet usage ...

il faut attendre un spécialiste de cette calculette là.
(faire remonter par des "up" au besoin)

Posté par
cocolaricotte
re : Cryptographie affine 12-02-17 à 19:25

Tu n'as pas donné la réponse à ton énigme.

On attend.

Posté par
carpediem
re : Cryptographie affine 12-02-17 à 19:43

mathafou @ 10-12-2016 à 22:02

aucune idée de la façon dont cette calculette pourrait transformer une lettre entrée en texte en un nombre qui serait le rang dans l'alphabet.

si ça se trouve la calculette n'est pas du tout adaptée à cet usage ...

il faut attendre un spécialiste de cette calculette là.
(faire remonter par des "up" au besoin)


il me semble que c'est possible en utilisant l'assembleur de la calculatrice ... mais qui utilise peut-être le code ASCII ... enfin faut voir le mode d'emploi ...

sinon en utilisant une liste L[0] --> L[25] contenant les 26 lettres il est assez aisé de faire un algo qui marche ...

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


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

Inscription gratuite

Fiches en rapport

parmi 1447 fiches de maths

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 !