Import TD_maple
This commit is contained in:
BIN
TD_maple/Chiffrement/chiffrement.pdf
Normal file
BIN
TD_maple/Chiffrement/chiffrement.pdf
Normal file
Binary file not shown.
61
TD_maple/Chiffrement/chiffrement.tex
Normal file
61
TD_maple/Chiffrement/chiffrement.tex
Normal file
@@ -0,0 +1,61 @@
|
||||
\documentclass[10pt,a4paper]{article}
|
||||
\usepackage{/media/documents/Cours/Prof/TD_maple/2012_2013/style}
|
||||
|
||||
\title{Chiffrement et encodage}
|
||||
\author{}
|
||||
\date{}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\thispagestyle{fancy}
|
||||
|
||||
|
||||
Ce TD est inspiré de l'épreuve 2008 d'informatique du concours de l'X en MP option SI.
|
||||
|
||||
Le but de ce TD sera de crypter un message en utilisant deux types de codages ``simple'': Codage César et Codage Vigenère.
|
||||
\section{Chiffrer un message}
|
||||
Avant de crypter le message il faut le rendre manipulable par l'outil informatique. Un message \texttt{M} (une liste de lettres - on oubliera les espaces et les signes de ponctuations) doit donc être tranformé en une liste de nombres \texttt{L} ($a \leftrightarrow 1$, $b \leftrightarrow 2$..).
|
||||
|
||||
Exemple sur \texttt{jaimelesmahts}:
|
||||
\begin{center}
|
||||
\begin{tabular}{c|ccccccccccccc}
|
||||
liste \texttt{M} & j & a & i & m & e & l & e & s & m & a & t & h & s \\
|
||||
\hline
|
||||
liste \texttt{L} & 10 & 1 & 9 & 13 & 5 & 12 & 5 & 19 & 13 & 1 & 20 & 8 & 19
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{Chiffre} qui chiffre un message.
|
||||
\item Écrire une procédure \texttt{Dechiffre} qui déchriffre un message.
|
||||
\end{itemize}
|
||||
|
||||
\section{Codage de César}
|
||||
|
||||
Le codage César consiste à décaler l'alphabet d'un nombre donnée \texttt{d}, la clé. Ainsi pour \texttt{d} $=1$, \texttt{jaimelesmaths} devient \texttt{kbjnfmftnbxgt}.
|
||||
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{CodeCesar} prenant en argument \texttt{M} le message et \texttt{d} la clé et renvoyant \texttt{M'} le message codé.
|
||||
\item Écrire une procédure \texttt{DeCodeCesarCle} prenant en argument \texttt{M'} le message codé et \texttt{d} la clé et renvoyant \texttt{M'} le message.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\section{Casser le codage César}
|
||||
Pour casser le codage César, il faut découvrir \texttt{d}, la clé. On pourrai essayer tous les décalages possibles et voir lequel donne un texte cohérent mais ce serai pénible. Une autre solution consiste à calculer la fréquence d'apparition de chaque lettre. En effet, l'étude de la langue français indique que sur des textes suffisamment long, la lettre la plus courante est le \texttt{e}. Ainsi si notre message est suffisamment long, la lettre la plus fréquente correspondra à \texttt{e} et on pourra calculer le décalage.
|
||||
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{Frequence} qui prend en argument le message \texttt{M} et qui renvoie la lettre la plus fréquence.
|
||||
\item Écrire une procédure \texttt{DecodeCesarAuto} qui prend en argument le message \texttt{M'} et qui renvoie le message décrypté \texttt{M}.
|
||||
\end{itemize}
|
||||
|
||||
\section{Codage de Vigenère}
|
||||
Au XVIe siècle, Blaise de Vigenère a modernisé le codage César. Au lieu de décaler toutes les lettres du texte de la même manière, on les décale en fonction d'une clé. Prenons la clé \texttt{nimajneb}. Ainsi on codera la première lettre en utilisant le décalage qui envoie \texttt{a} sur \texttt{n} (c'est à dire de 13), la deuxième lettre du décalage qui envoie \texttt{a} sur \texttt{i} et ainsi de suite. Quand on arrive à la fin de la clé, on recommence par le début.
|
||||
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{Vigenère} qui prend en argument le message et la clé et qui renvoie le message crypté.
|
||||
\item Écrire une procédure \texttt{DecVigene} qui décode un message crypté en connaissant la clé.
|
||||
\end{itemize}
|
||||
|
||||
Pour casser le codage de Vigenère, vous pouvez regarder la fin de l'épreuve de l'X.
|
||||
|
||||
\end{document}
|
||||
BIN
TD_maple/Chiffrement/chiffrement2.pdf
Normal file
BIN
TD_maple/Chiffrement/chiffrement2.pdf
Normal file
Binary file not shown.
49
TD_maple/Chiffrement/chiffrement2.tex
Normal file
49
TD_maple/Chiffrement/chiffrement2.tex
Normal file
@@ -0,0 +1,49 @@
|
||||
\documentclass[10pt,a4paper]{article}
|
||||
\usepackage{/media/documents/Cours/Prof/TD_maple/2012_2013/style}
|
||||
|
||||
\title{Chiffrement et encodage (suite)}
|
||||
\author{}
|
||||
\date{}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\thispagestyle{fancy}
|
||||
|
||||
\section{ASCII}
|
||||
D'après Wikipedia, l'ASCII est une norme de codage de caractères en informatique ancienne. Elle fait une correspondance en des caractères et des nombres (entre 0 et 255) pour rendre leur manipulation plus aisé. Maple connait cette norme et pour contient deux commandes pour la manupuler: \texttt{Char} et \texttt{Ord} (pour les utiliser, il faut charger la bibliothèque \texttt{StringTools}).
|
||||
\begin{itemize}
|
||||
\item \texttt{Char} permet à partir d'un nombre (compris entre 0 et 255) de donner le caractère correspondant.
|
||||
\item \texttt{Ord} fait l'opération inverse, c'est-à-dire transforme un caractère en son identifiant.
|
||||
\end{itemize}
|
||||
Vous pouvez utiliser ces commandes pour vous faciliter la tache lors de vos conversions lors du chiffrement et du déchiffrement.
|
||||
|
||||
\section{Codage affine}
|
||||
On propose ici une variante, un peu plus complexe, du codage de César. Le codage de César consistait à simplement décaler l'alphabet d'un certain nombre de rang. Cette opération peut se réécrire de la façon suivante $x+b$ où $x$ est le rang et $b$ est le décalage.
|
||||
|
||||
Le codage affine consiste à faire l'opération suivante $ax+b$. Ainsi la clé n'est plus un unique nombre $b$ mais un couple $(a,b)$.
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{CodeAffine} qui prend en argument un message \texttt{M} et la clé \texttt{C} et qui renvoie le message crypté.
|
||||
\item (dure) Écrire une procédure \texttt{DecodeAffine} qui fait l'opération inverse.
|
||||
\item (dure) Chercher une méthode pour casser ce codage.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\section{Annexes}
|
||||
\subsection{Transformer un texte en liste de caractères.}
|
||||
Pour manipuler directement de vrais texte ces deux procédures peuvent être utiles.
|
||||
\begin{itemize}
|
||||
\item Écrire une procédure \texttt{textToList} qui prend un texte quelconque \texttt{Text} et qui renvoie ce même texte en forme de liste de caractères \texttt{ListCara}.
|
||||
\item Écrire une procédure \texttt{listToText} qui fait l'opération inverse.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Se passer un message entre ordinateur}
|
||||
Vous pouvez vous faire passer du texte à travers internet en utilisant \texttt{pastebin.com}. Essayez alors de décoder ou casser les textes encodés par vos camarades.
|
||||
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: "master"
|
||||
%%% End:
|
||||
|
||||
BIN
TD_maple/Chiffrement/info-1-X.pdf
Normal file
BIN
TD_maple/Chiffrement/info-1-X.pdf
Normal file
Binary file not shown.
BIN
TD_maple/Chiffrement/lyceeJdS.pdf
Normal file
BIN
TD_maple/Chiffrement/lyceeJdS.pdf
Normal file
Binary file not shown.
1
TD_maple/Chiffrement/notes
Normal file
1
TD_maple/Chiffrement/notes
Normal file
@@ -0,0 +1 @@
|
||||
http://sagenb.irem.univ-mrs.fr/home/pub/17/
|
||||
Reference in New Issue
Block a user