\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:

