%% bare_jrnl.tex
%% V1.3
%% 2007/01/11
%% by Michael Shell
%% see http://www.michaelshell.org/
%% for current contact information.
%%
%% This is a skeleton file demonstrating the use of IEEEtran.cls
%% (requires IEEEtran.cls version 1.7 or later) with an IEEE journal paper.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
%% and
%% http://www.ieee.org/



% *** Authors should verify (and, if needed, correct) their LaTeX system  ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do  ***
% *** not appear when using other class files.                            ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/


%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE! 
%% User assumes all risk.
%% In no event shall IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including  **
%% ** renaming them and changing author support contact information. **
%%
%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,
%%                    bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex
%%*************************************************************************

% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[journal]{IEEEtran}
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}





% Some very useful LaTeX packages include:
% (uncomment the ones you want to load)


% *** MISC UTILITY PACKAGES ***
%
%\usepackage{ifpdf}
% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
% compilation based on whether the output is pdf or dvi.
% usage:
% \ifpdf
%   % pdf code
% \else
%   % dvi code
% \fi
% The latest version of ifpdf.sty can be obtained from:
% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
% Also, note that IEEEtran.cls V1.7 and later provides a builtin
% \ifCLASSINFOpdf conditional that works the same way.
% When switching from latex to pdflatex and vice-versa, the compiler may
% have to be run twice to clear warning/error messages.






% *** CITATION PACKAGES ***
%
%\usepackage{cite}
% cite.sty was written by Donald Arseneau
% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
% \cite{} output to follow that of IEEE. Loading the cite package will
% result in citation numbers being automatically sorted and properly
% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
% \cite will automatically add leading space, if needed. Use cite.sty's
% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
% cite.sty is already installed on most LaTeX systems. Be sure and use
% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
% not currently provide for hyperlinked citations.
% The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
% The documentation is contained in the cite.sty file itself.






% *** GRAPHICS RELATED PACKAGES ***
%
\usepackage{graphicx}
%\ifCLASSINFOpdf
%	\usepackage[pdftex]{graphicx}
  % declare the path(s) where your graphic files are
  % \graphicspath{{../pdf/}{../jpeg/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
  % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
%\else
  % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
  % will default to the driver specified in the system graphics.cfg if no
  % driver is specified.
 %   \usepackage[dvips]{graphicx}
  % declare the path(s) where your graphic files are
  % \graphicspath{{../eps/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
  % \DeclareGraphicsExtensions{.eps}
%\fi
% graphicx was written by David Carlisle and Sebastian Rahtz. It is
% required if you want graphics, photos, etc. graphicx.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at: 
% http://www.ctan.org/tex-archive/macros/latex/required/graphics/
% Another good source of documentation is "Using Imported Graphics in
% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
% epslatex.pdf at: http://www.ctan.org/tex-archive/info/
%
% latex, and pdflatex in dvi mode, support graphics in encapsulated
% postscript (.eps) format. pdflatex in pdf mode supports graphics
% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
% which can result in "jaggedy"/blurry rendering of lines and letters as
% well as large increases in file sizes.
%
% You can find documentation about the pdfTeX application at:
% http://www.tug.org/applications/pdftex





% *** MATH PACKAGES ***
%
\usepackage[cmex10]{amsmath}
% A popular package from the American Mathematical Society that provides
% many useful and powerful commands for dealing with mathematics. If using
% it, be sure to load this package with the cmex10 option to ensure that
% only type 1 fonts will utilized at all point sizes. Without this option,
% it is possible that some math symbols, particularly those within
% footnotes, will be rendered in bitmap form which will result in a
% document that can not be IEEE Xplore compliant!
%
% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
% thus preventing page breaks from occurring within multiline equations. Use:
%\interdisplaylinepenalty=2500
% after loading amsmath to restore such page breaks as IEEEtran.cls normally
% does. amsmath.sty is already installed on most LaTeX systems. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/





% *** SPECIALIZED LIST PACKAGES ***
%
\usepackage{algorithmic}
\newlength{\algorithmicdelim}
\setlength{\algorithmicdelim}{0pt}

%\usepackage{algpseudocode}
% algorithmic.sty was written by Peter Williams and Rogerio Brito.
% This package provides an algorithmic environment fo describing algorithms.
% You can use the algorithmic environment in-text or within a figure
% environment to provide for a floating algorithm. Do NOT use the algorithm
% floating environment provided by algorithm.sty (by the same authors) or
% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
% algorithm float types and packages that provide these will not provide
% correct IEEE style captions. The latest version and documentation of
% algorithmic.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
% There is also a support site at:
% http://algorithms.berlios.de/index.html
% Also of interest may be the (relatively newer and more customizable)
% algorithmicx.sty package by Szasz Janos:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/




% *** ALIGNMENT PACKAGES ***
%
\usepackage{array}
% Frank Mittelbach's and David Carlisle's array.sty patches and improves
% the standard LaTeX2e array and tabular environments to provide better
% appearance and additional user controls. As the default LaTeX2e table
% generation code is lacking to the point of almost being broken with
% respect to the quality of the end results, all users are strongly
% advised to use an enhanced (at the very least that provided by array.sty)
% set of table tools. array.sty is already installed on most systems. The
% latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/tools/


\usepackage{mdwmath}
\usepackage{mdwtab}
% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
% especially mdwmath.sty and mdwtab.sty which are used to format equations
% and tables, respectively. The MDWtools set is already installed on most
% LaTeX systems. The lastest version and documentation is available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/


% IEEEtran contains the IEEEeqnarray family of commands that can be used to
% generate multiline equations as well as matrices, tables, etc., of high
% quality.


%\usepackage{eqparbox}
% Also of notable interest is Scott Pakin's eqparbox package for creating
% (automatically sized) equal width boxes - aka "natural width parboxes".
% Available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/





% *** SUBFIGURE PACKAGES ***
%\usepackage[tight,footnotesize]{subfigure}
% subfigure.sty was written by Steven Douglas Cochran. This package makes it
% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
% work, it is a good idea to load it with the tight package option to reduce
% the amount of white space around the subfigures. subfigure.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at:
% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
% subfigure.sty has been superceeded by subfig.sty.



%\usepackage[caption=false]{caption}
%\usepackage[font=footnotesize]{subfig}
% subfig.sty, also written by Steven Douglas Cochran, is the modern
% replacement for subfigure.sty. However, subfig.sty requires and
% automatically loads Axel Sommerfeldt's caption.sty which will override
% IEEEtran.cls handling of captions and this will result in nonIEEE style
% figure/table captions. To prevent this problem, be sure and preload
% caption.sty with its "caption=false" package option. This is will preserve
% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later 
% (recommended due to many improvements over 1.2) of subfig.sty supports
% the caption=false option directly:
%\usepackage[caption=false,font=footnotesize]{subfig}
%
% The latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
% The latest version and documentation of caption.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/




% *** FLOAT PACKAGES ***
%
%\usepackage{fixltx2e}
% fixltx2e, the successor to the earlier fix2col.sty, was written by
% Frank Mittelbach and David Carlisle. This package corrects a few problems
% in the LaTeX2e kernel, the most notable of which is that in current
% LaTeX2e releases, the ordering of single and double column floats is not
% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
% single column figure to be placed prior to an earlier double column
% figure. The latest version and documentation can be found at:
% http://www.ctan.org/tex-archive/macros/latex/base/



%\usepackage{stfloats}
% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
% the ability to do double column floats at the bottom of the page as well
% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
% LaTeX2e). It also provides a command:
%\fnbelowfloat
% to enable the placement of footnotes below bottom floats (the standard
% LaTeX2e kernel puts them above bottom floats). This is an invasive package
% which rewrites many portions of the LaTeX2e float routines. It may not work
% with other packages that modify the LaTeX2e float routines. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
% Documentation is contained in the stfloats.sty comments as well as in the
% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
% does not allow \baselineskip to stretch. Authors submitting work to the
% IEEE should note that IEEE rarely uses double column equations and
% that authors should try to avoid such use. Do not be tempted to use the
% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
% not format its papers in such ways.


%\ifCLASSOPTIONcaptionsoff
%  \usepackage[nomarkers]{endfloat}
% \let\MYoriglatexcaption\caption
% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
%\fi
% endfloat.sty was written by James Darrell McCauley and Jeff Goldberg.
% This package may be useful when used in conjunction with IEEEtran.cls'
% captionsoff option. Some IEEE journals/societies require that submissions
% have lists of figures/tables at the end of the paper and that
% figures/tables without any captions are placed on a page by themselves at
% the end of the document. If needed, the draftcls IEEEtran class option or
% \CLASSINPUTbaselinestretch interface can be used to increase the line
% spacing as well. Be sure and use the nomarkers option of endfloat to
% prevent endfloat from "marking" where the figures would have been placed
% in the text. The two hack lines of code above are a slight modification of
% that suggested by in the endfloat docs (section 8.3.1) to ensure that
% the full captions always appear in the list of figures/tables - even if
% the user used the short optional argument of \caption[]{}.
% IEEE papers do not typically make use of \caption[]'s optional argument,
% so this should not be an issue. A similar trick can be used to disable
% captions of packages such as subfig.sty that lack options to turn off
% the subcaptions:
% For subfig.sty:
% \let\MYorigsubfloat\subfloat
% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
% For subfigure.sty:
% \let\MYorigsubfigure\subfigure
% \renewcommand{\subfigure}[2][\relax]{\MYorigsubfigure[]{#2}}
% However, the above trick will not work if both optional arguments of
% the \subfloat/subfig command are used. Furthermore, there needs to be a
% description of each subfigure *somewhere* and endfloat does not add
% subfigure captions to its list of figures. Thus, the best approach is to
% avoid the use of subfigure captions (many IEEE journals avoid them anyway)
% and instead reference/explain all the subfigures within the main caption.
% The latest version of endfloat.sty and its documentation can obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/
%
% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used
% later in the document, say, to conditionally put the References on a 
% page by themselves.





% *** PDF, URL AND HYPERLINK PACKAGES ***
%
\usepackage{url}
% url.sty was written by Donald Arseneau. It provides better support for
% handling and breaking URLs. url.sty is already installed on most LaTeX
% systems. The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
% Read the url.sty source comments for usage information. Basically,
% \url{my_url_here}.





% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex).         ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )


% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor des-xi-fra-ri-a des-xi-frar}
\usepackage{amsthm,amsfonts,amssymb}
\usepackage[utf8x]{inputenc}

\begin{document}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
\title{Ús de corbes el·líptiques en la criptografia i SAGE}
%
%
% author names and IEEE memberships
% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break
% a structure at a ~ so this keeps an author's name from being broken across
% two lines.
% use \thanks{} to gain access to the first footnote area
% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks
% was not built to handle multiple paragraphs
%

\author{Adrià Alcalá Mena, David Sánchez Charles}% <-this % stops a space

% note the % following the last \IEEEmembership and also \thanks - 
% these prevent an unwanted space from occurring between the last author name
% and the end of the author line. i.e., if you had this:
% 
% \author{....lastname \thanks{...} \thanks{...} }
%                     ^------------^------------^----Do not want these spaces!
%
% a space would be appended to the last name and could cause every name on that
% line to be shifted left slightly. This is one of those "LaTeX things". For
% instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get
% "AB" then you have to do: "\textbf{A}\textbf{B}"
% \thanks is no different in this regard, so shield the last } of each \thanks
% that ends a line with a % and do not let a space in before the next \thanks.
% Spaces after \IEEEmembership other than the last one are OK (and needed) as
% you are supposed to have spaces between the names. For what it is worth,
% this is a minor point as most people would not even notice if the said evil
% space somehow managed to creep in.



% The paper headers
\markboth{Treballs Docents curs 2010/2011}%
{}
% The only time the second header will appear is for the odd numbered pages
% after the title page when using the twoside option.
% 
% *** Note that you probably will NOT want to include the author's ***
% *** name in the headers of peer review papers.                   ***
% You can use \ifCLASSOPTIONpeerreview for conditional compilation here if
% you desire.




% If you want to put a publisher's ID mark on the page you can do it like
% this:
%\IEEEpubid{0000--0000/00\$00.00~\copyright~2007 IEEE}
% Remember, if you use this you must call \IEEEpubidadjcol in the second
% column for its text to clear the IEEEpubid mark.



% use for special paper notices
\IEEEspecialpapernotice{\begin{center} Assignatura de Codificació i Criptografia de 4t de la Llicenciatura de Matemàtiques \end{center}}




% make the title area
\maketitle

\begin{abstract}
%\boldmath
El desenvolupament d'internet ha fet que les nostres comunicacions 
es realitzin mitjançant aquesta xarxa. La criptografia ens proporciona 
eines perquè la nostra informació es pugui transmetre de manera 
segura per aquesta xarxa pública. En aquest treball farem una implamentació 
utilitzant SAGE per a utilitzar corbes el·líptiques dins la criptografia
de clau pública.
\end{abstract}
% IEEEtran.cls defaults to using nonbold math in the Abstract.
% This preserves the distinction between vectors and scalars. However,
% if the journal you are submitting to favors bold math in the abstract,
% then you can use LaTeX's standard command \boldmath at the very start
% of the abstract to achieve this. Many IEEE journals frown on math
% in the abstract anyway.

% Note that keywords are not normally used for peerreview papers.
\begin{IEEEkeywords}
Corbes el·líptiques, elGamal, criptografia, SAGE
\end{IEEEkeywords}






% For peer review papers, you can put extra information on the cover
% page as needed:
 \ifCLASSOPTIONpeerreview
 \begin{center} \bfseries Pràctica corresponent a l'assignatura Codificació i criptografia \end{center}
 \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
\IEEEpeerreviewmaketitle



\section{Introducció}
% The very first letter is a 2 line initial drop letter followed
% by the rest of the first word in caps.
% 
% form to use if the first word consists of a single letter:
% \IEEEPARstart{A}{demo} file is ....
% 
% form to use if you need the single drop letter followed by
% normal text (unknown if ever used by IEEE):
% \IEEEPARstart{A}{}demo file is ....
% 
% Some journals put the first two words in caps:
% \IEEEPARstart{T}{his demo} file is ....
% 
% Here we have the typical use of a "T" for an initial drop letter
% and "HIS" in caps to complete the first word.
\IEEEPARstart{C}{ada} vegada és més habitual la compra d'articles per internet. 
Perque aquestes compres siguin exitoses s'haurien de complir 
dos requisits bàsics: secret i autenticació. La transmissió de la informació s'ha de fer de manera secreta; no es vol que una altra persona pugui, per exemple, conseguir les nostres dades bancàries. També, qui rep la informació ha de poder autenticar l'autoria de l'emissor; en el nostre exemple la tenda virtual ha d'estar segura que som nosaltres qui hem fet la compra.

La criptografia dóna solució a aquests dos problemes: Els algoritmes 
de xifrat i desxifrat ens asseguren que la transmissió de les dades 
per internet es fa de manera segura (secret). D'altra banda, també ens 
propociona algoritmes de \textit{firma} que asseguren al receptor 
qui és qui ha enviat el missatge (autenticació).

La criptografia moderna es basa en l'ús d'unes aplicacions (generalment
 tothom coneix com són aquestes aplicacions) que tenen 
per paràmetre el missatge que es vol xifrar o desxifrar i una clau. 
L'èxit d'aquests mètodes rau en què, sense la clau, és computacionalment molt difícil 
xifrar i desxifrar els missatges de la mateixa manera que l'emissor original.

Dins la criptografia moderna ens volem centrar en els criptosistemes de 
clau pública (proposats per Diffie Hellman en 1976). Aquests criptosistemes 
tenen 2 claus: Una de privada, que només 
coneix el propi usuari; i una de pública, que coneixen tots els possibles usuaris 
de la xarxa. Els usuaris que es vulguin 
comunicar amb un usuari determinat, han d'agafar la seva clau pública i fer ús 
de l'algoritme de xifrat amb aquesta clau. Quan l'usuari rep el missatge xifrat 
ha d'agafar la seva clau privada i fer ús de l'algoritme de desxifrat per retrobar el missatge original.

En aquest article farem un petit estudi d'un algoritme que fa ús de les 
corbes el·liptiques per al xifrat i desxifrat de missatges. Hem programat aquest algoritme sobre SAGE; una eina matemàtica de programari lliure que ens proporciona l'accés a diverses llibreries ja implementades.

% You must have at least 2 lines in the paragraph with the drop letter
% (should never be an issue)

 
\hfill Juny 30, 2011

% needed in second column of first page if using \IEEEpubid
%\IEEEpubidadjcol


% An example of a floating figure using the graphicx package.
% Note that \label must occur AFTER (or within) \caption.
% For figures, \caption should occur after the \includegraphics.
% Note that IEEEtran v1.7 and later has special internal code that
% is designed to preserve the operation of \label within \caption
% even when the captionsoff option is in effect. However, because
% of issues like this, it may be the safest practice to put all your
% \label just after \caption rather than within \caption{}.
%
% Reminder: the "draftcls" or "draftclsnofoot", not "draft", class
% option should be used if it is desired that the figures are to be
% displayed while in draft mode.
%
%\begin{figure}[!t]
%\centering
%\includegraphics[width=2.5in]{myfigure}
% where an .eps filename suffix will be assumed under latex, 
% and a .pdf suffix will be assumed for pdflatex; or what has been declared
% via \DeclareGraphicsExtensions.
%\caption{Simulation Results}
%\label{fig_sim}
%\end{figure}

% Note that IEEE typically puts floats only at the top, even when this
% results in a large percentage of a column being occupied by floats.


% An example of a double column floating figure using two subfigures.
% (The subfig.sty package must be loaded for this to work.)
% The subfigure \label commands are set within each subfloat command, the
% \label for the overall figure must come after \caption.
% \hfil must be used as a separator to get equal spacing.
% The subfigure.sty package works much the same way, except \subfigure is
% used instead of \subfloat.
%
%\begin{figure*}[!t]
%\centerline{\subfloat[Case I]\includegraphics[width=2.5in]{subfigcase1}%
%\label{fig_first_case}}
%\hfil
%\subfloat[Case II]{\includegraphics[width=2.5in]{subfigcase2}%
%\label{fig_second_case}}}
%\caption{Simulation results}
%\label{fig_sim}
%\end{figure*}
%
% Note that often IEEE papers with subfigures do not employ subfigure
% captions (using the optional argument to \subfloat), but instead will
% reference/describe all of them (a), (b), etc., within the main caption.


% An example of a floating table. Note that, for IEEE style tables, the 
% \caption command should come BEFORE the table. Table text will default to
% \footnotesize as IEEE normally uses this smaller font for tables.
% The \label must come after \caption as always.
%
%\begin{table}[!t]
%% increase table row spacing, adjust to taste
%\renewcommand{\arraystretch}{1.3}
% if using array.sty, it might be a good idea to tweak the value of
% \extrarowheight as needed to properly center the text within the cells
%\caption{An Example of a Table}
%\label{table_example}
%\centering
%% Some packages, such as MDW tools, offer better commands for making tables
%% than the plain LaTeX2e tabular which is used here.
%\begin{tabular}{|c||c|}
%\hline
%One & Two\\
%\hline
%Three & Four\\
%\hline
%\end{tabular}
%\end{table}


% Note that IEEE does not put floats in the very first column - or typically
% anywhere on the first page for that matter. Also, in-text middle ("here")
% positioning is not used. Most IEEE journals use top floats exclusively.
% Note that, LaTeX2e, unlike IEEE journals, places footnotes above bottom
% floats. This can be corrected via the \fnbelowfloat command of the
% stfloats package.



\section{RSA}
Al febrer de 1978 Ron Rivest, Adi Shamir i Leonard Adleman proposen un criptosistema de xifrat de clau pública: RSA, el qual consisteix en associar als missatges originals un valor numèric i aleshores xifrar el missatge per blocs de la mateixa longitud i amb un valor numèric comprès entre un cert rang.

Suposem $m \in [2, n-1]$, l'algoritme de xifrat es redueix al càlcul d'una exponencial on la clau és el parell de nombres $(e,n)$:
\[
c= E_{(e,n)} (m) = m^e \pmod n
\]

L'algoritme de desxifrat per poder obtenir $m$ a partir de $c$ consisteix també en una exponenciació, essent la clau ara un altre parell de nombres $(d,n)$.
\[
m= D_{(d,n)} = c^d \pmod n 
\]
\footnote{El teorema d'Euler assegura que $D_{(d,n)}(E_{(e,n)}(m))=m$ si $e\cdot d = 1 \mod (\phi(n))$}
Donat $\varphi (n) $ és fàcil generar el parell de nombres $e$ i $d$ tal que $e \cdot d = 1 \pmod {\varphi (n)}$. No obstant això,   calcular $d$ coneixent $e$ i $n$ és molt complicat computacionalment sense coneixer $\phi(n)$. La fortalesa d'aquest criptosistema va lligada a la dificultat de la factorització de $n$.

Per tant, si tenim una manera simple d'obtenir $\varphi (n)$, obtendrem un bon esquema de xifrat i desxifrat. Rivest, Shamir i Adleman sugereixen  l'algoritme d'obtenció de les claus que es pot veure a la Fig \ref{alg:RSA}.

\algsetup{indent=2em}
\begin{figure}[h!]
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
	\REQUIRE Dos nombres primers $p, q$.
	\ENSURE La clau pública i privada de l'usuari.
	
	\medskip
	\STATE $n = p \cdot q$.
	\STATE Es calcula $\phi(n) = (p-1)(q-1)$.
	\STATE S'agafa un nombre sencer $0 < e < \phi(n)$ tal que $mcd(e, \phi(n)) = 1$.
	\STATE Es calcula $d = e^{-1} \pmod{ \phi(n) }$.
	\RETURN Clau pública (n, e), Clau privada (d)
\end{algorithmic}
\hrule
\caption{algoritme d'obtenció de les claus}\label{alg:RSA}

\end{figure}

Recordem que quan calculam la $d$ feim l'invers dins de l'anell $\mathbb{Z}_{\phi(n)}$ i aquest invers sempre existeix ja que $mcd ( e, \phi) = 1$.

\subsection{Exemple}
\begin{scriptsize}
\begin{verbatim}
sage:p,q,e,e2=23,19,17,29
sage:CLAUA=Claves(p,q,e)
     CLAUB=Claves(p,q,e2)
sage:CLAUA
[23, 19, 437, 396, 17, 233]
sage:CLAUB
[23, 19, 437, 396, 29, 41]
sage:missatge="RSA vs CE"
sage:send=EnviarMensaje2(missatge,CLAUA,CLAUB)
R -> 82 -> 54 -> 104
S -> 83 -> 11 -> 7
A -> 65 -> 145 -> 350
  -> 32 -> 288 -> 200
v -> 118 -> 423 -> 234
s -> 115 -> 115 -> 115
  -> 32 -> 288 -> 200
C -> 67 -> 249 -> 15
E -> 69 -> 46 -> 69
sage:RecibirMensaje2(send,CLAUA,CLAUB)
104 -> 54 -> 82 -> R
7 -> 11 -> 83 -> S
350 -> 145 -> 65 -> A
200 -> 288 -> 32 ->  
234 -> 423 -> 118 -> v
115 -> 115 -> 115 -> s
200 -> 288 -> 32 ->  
15 -> 249 -> 67 -> C
69 -> 46 -> 69 -> E
'RSA vs CE'
\end{verbatim}
\end{scriptsize}
\section{Corbes el·líptiques}
Una corba el·líptica sobre nombres reals es defineix com el conjunt de punts $(x,y)$ que satisfan l'equació de Weierstrass simplificada
\[
y^2 = x^3+ ax + b
\]
Les corbes el·líptiques sobre cossos finits $\mathbb{Z}_p$, amb un valor de $p$ gran, ofereixen una alternativa en la criptografia de clau pública, com veurem posteriorment.

Si es compleix que $4a^3 + 27 b^2 \neq 0$, la corba no té arrels repetides i podrem formar un grup additiu que a més tindrà un producte escalar, $(G,+,*)$, on $G$ és el conjunt de punts de la corba, l'operació + és la suma de punts (que definirem més endavant) i * és el producte escalar. També afegirem un punt especial $0$, que anomenarem \emph{infinit}, que serà el neutre del grup.
\subsection{Aritmètica en corbes el·líptiques dins el cos del nombres reals}
\subsubsection{Suma de punts d'una corba el·líptica} 
Donats dos punts de la corba $P$ i $Q$, podem traçar la recta que passa per ells. Si aquesta recta talla la corba en un tercer punt, el reflectirem a través de l'eix de les $x$, i dóna lloc a un nou punt $R$. Direm que $R$ és la suma de $P$ i $Q$. En el cas que la recta que passa per $P$ i $Q$ no talli la corba en un tercer punt poden passar dues coses:
\begin{enumerate}
\item La recta és tangent a la corba en un dels dos punts. Amb la qual cosa la suma seria el simètric del punt on és tangent.
\item La recta no és tangent a la corba en cap punt. En aquest cas $P+Q=0$
\end{enumerate}

En el cas en que $P = Q$, es fa la mateixa construcció però amb la recta tangent a la corba que pasa per $P$.

L'explicació de l'operació suma es pot veure més fàcilment a la Fig \ref{Suma}
\begin{figure}[h!]
\includegraphics[width=0.49\linewidth]{Imatges/PMesQ.png}
\includegraphics[width=0.49\linewidth]{Imatges/PMesQI0.png}
\includegraphics[width=0.49\linewidth]{Imatges/PMesP.png}
\includegraphics[width=0.49\linewidth]{Imatges/PMesPI0.png}

\caption{Exemple de suma de punts en la corba el·líptica $y^2 = x^3 -2x$} \label{Suma}
\end{figure}
\subsubsection{Punt invers dins una corba el·líptica}
Podem definir el punt invers, o simètric, de $P=(x,y)$, com la seva reflexió sobre l'eix $x$, és a dir:
\[
-P=(x,-y)
\]
Aquesta definició és consistent, ja que si un punt $P$ és de la corba $-P$ també ho és, ja que tota corba el·líptica és simètrica respecte l'eix $x$, si $y^2 = x^3+ax+b$ aleshores $(-y)^2= x^3+ax+b$.
\subsubsection{Producte d'un punt per un escalar}
De la mateixa manera que podem sumar dos punts, el podem sumar amb ell mateix (Fig \ref{Suma}) i de manera recursiva podem definir que:
\[
k \cdot P = ((k-1) \cdot P )+ P
\]
Així com les definicions de suma de punts i de punt invers tenien una explicació geomètrica, en aquest cas no.

\subsubsection{Aritmètica dins corbes el·líptiques amb cossos finits}
De la mateixa manera que hem definit les operacions sobre corbes el·líptiques en els reals, les podem definir sobre un $\mathbb{Z}_p$, i com era d'esperar, coincideixen amb el cas real però fent la reducció mòdul $p$. En aquest cas les definicions perden l'explicació geomètrica, ja que en un $\mathbb{Z}_p$ una corba el·líptica és un conjunt de punts sense cap continuïtat visual ( veure Figura 8).
\subsection{Algoritme ElGamal}
En primer lloc necessitem obtenir les claus, per això hem de construir la clau pública i privada amb l'algoritme que es pot veure a la Fig. \ref{alg:CE}.
\begin{figure}[h!]
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
	\REQUIRE Una corba el·líptica $CE$ i un punt $P$.
	\ENSURE La clau pública i privada de l'usuari.
	
	\medskip
	\STATE Calculam l'ordre $r$ de la corba (el nombre de punts de la corba el·líptica).
	\STATE Elegim un enter $d\in [ 2 , r-2]$.
	\STATE $clau=d*P$
	\RETURN Clau pública (P,clau, r), Clau privada (d,P,r)
\end{algorithmic}
\hrule
\caption{algoritme d'obtenció de les claus}\label{alg:CE}
\end{figure}
Un cop tenim les claus podem xifrar amb l'algoritme que es pot veure en la Fig. \ref{XifratCE} i desxifrar el missatge rebut amb l'algoritme que es pot veure en la Fig. \ref{DesxifratCE}.
\begin{figure}
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
	\REQUIRE Una corba el·líptica $CE$ d'ordre $r$, la clau pública $clau$ amb el punt $P$ i el punt que es vol enviar $M$.
	\ENSURE El punt $M$ xifrat.
	
	\medskip
	\STATE Elegim un enter $k \in [2, r-2]$.
	\STATE $C1=k*P$.
	\STATE $C2=M+k*clau$
	\RETURN $(C1,C2)$
\end{algorithmic}
\hrule
\caption{algoritme de xifrat}\label{XifratCE}
\end{figure}

\begin{figure}
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
	\REQUIRE Una corba el·líptica $CE$, la clau privada $d$ i el missatge rebut $(C1,C2)$
	\ENSURE El missatge $(C1,C2)$ desxifrat.
	
	\medskip
	\STATE $M=C2 - d*C1$
	\RETURN $M$
\end{algorithmic}
\hrule
\caption{algoritme de desxifrat}\label{DesxifratCE}
\end{figure}

L'algoritme de firma d'un missatge $M$ és pot trobar en la Fig. \ref{FirmaCE}, per altra part per a comprovar l'autenticitat de l'emissor farem ús de l'algoritme que es pot veure a la Fig. \ref{VerificarFirma}. Aquests algoritmes utilitzen un tipus d'aplicacions anomenades funcions de hash\footnote{Una funció de hash transforma un objecte en una cadena de bits de longitut constant, pero no es coneix cap manera eficient d'obtenir, si existeix, l'invers d'aquest tipus aplicacions.}.

\begin{figure}[h!]
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
\REQUIRE Una corba el·líptica $CE$ i el seu ordre $r$, la clau privada $(d, P)$ i un hash del missatge $H(M)$.
\ENSURE La firma $(R, S)$ del missatge $M$.

\medskip

\STATE $k \in [2, r-2]$
\STATE x, y = components de $k*P$
\STATE $R = x \pmod{r}$
\STATE $S = k^{-1} (H(M) + R \cdot d) \pmod{r}$
\RETURN (R, S)
\end{algorithmic}
\hrule
\caption{algoritme de firma} \label{FirmaCE}
\end{figure}

\begin{figure}[h!]
\hrule
\hspace*{2pt}
\begin{algorithmic}[1]
\REQUIRE Una corba el·líptica CE i el seu ordre $r$, la clau pública $(P, Q)$, el hash $M$ del missatge rebut i la seva firma $(R, S)$.
\ENSURE L'acceptació, o no, de la firma.

\medskip

\STATE $w = S^{-1} \pmod{r}$
\STATE $u_1 = M \cdot w$, $u_2 = R \cdot w$
\STATE x, y = components de $u_1 * P + u_2 * Q$
\RETURN És $x = R \pmod{r}$
\end{algorithmic}
\hrule
\caption{algoritme de verificació de la firma} \label{VerificarFirma}
\end{figure}

\subsection{Exemple}
Comencem amb un primer exemple senzill dins $\mathbb{Z}_{23}$. La corba el·líptica amb la que farem feina és
\begin{scriptsize}
\begin{verbatim}
sage:E = CorbaElliptica(y**2==x**3+9*x+7,23)
\end{verbatim}
\end{scriptsize}
Comprovem que l'ordre sigui primer
\begin{scriptsize}
\begin{verbatim}
sage: E.order()
19
\end{verbatim}
\end{scriptsize}
Amb el SAGE també la podem dibuixar amb la instrucció \texttt{E.plot()} que ens retorna la figura que es pot veure a Fig \ref{Expetit}.
\begin{figure}
\includegraphics[width=\linewidth]{Imatges/ExPetit}
\caption{Gràfica de la corba el·líptica $y^2=x^3+ 9x+7$ dins $\mathbb{Z}_{23}$}\label{Expetit}
\end{figure}

Definim tres punts i vegem com podem sumar punts amb SAGE:
\begin{scriptsize}
\begin{verbatim}
sage:P,Q,M=E([8,4,1]),E([9,9,1]),E([14,5,1])
sage:(P+Q).xy()
(8,19)
sage:(5*P).xy()
(6,22)
\end{verbatim}
\end{scriptsize}
La instrucció \texttt{.xy()} és simplement per a veure les coordenades del punt.

Ara farem ús de la llibreria \emph{ElGamalArt}\footnote{Aquesta llibreria està feta per nosaltres, si a qualqu li interesa es pot posar en contacte amb nosaltres mitjançant els correus dscharles@gmail.com o adria.alcala@gmail.com} per a xifrar el missatge $M$. Primer hem de crear les claus dels dos usuaris que es volen comunicar.
\begin{scriptsize}
\begin{verbatim}
sage: publicaP,privadaP=Clau(E,P)
sage: publicaP
((8 : 4 : 1), (17 : 6 : 1), 19)
sage: privadaP
(4, (8 : 4 : 1), 19)
sage: publicaQ,privadaQ=Clau(E,Q)
sage: publicaQ,privadaQ
(((9 : 9 : 1), (17 : 6 : 1), 19), (17, (9 : 9 : 1), 19))
\end{verbatim}
\end{scriptsize}

Cada usuari utilitza un punt diferent, d'una corba el·liptica comuna, per a obtenir el seu parell de claus. La clau pública està formada per un punt $R$ (en el nostre exemple els punts $P$ i $Q$), un múltiple seu $d \cdot R$ i, per qüestions d'optimització, l'ordre de la corba el·líptica. D'altra banda, la clau privada està formada per l'escalar $d$ i, per comoditat, els punts $R$ i l'ordre de la corba el·líptica.

El primer usuari vol enviar el missatge $M$, per a xifrar el missatge ha d'utilitzar la clau pública del receptor
\begin{scriptsize}
\begin{verbatim}
sage:send=Xifrar(E,publicaQ,M)
sage:send
((6 : 22 : 1), (10 : 19 : 1))
\end{verbatim}
\end{scriptsize}
Per tant l'emissor enviaria \texttt{send} al receptor. I, en el cas que el volgués firmar, el podria enviar amb la firma del nombre 19\footnote{Hem escollit la suma de les coordenades del punt, però hauríem pogut escollir qualssevol altra funció de hash}
\begin{scriptsize}
\begin{verbatim}
sage:firma=Firmar(E,privadaP,19)
sage:firma
(10,3)
\end{verbatim}
\end{scriptsize}
Per tant l'emissor enviaria \texttt{send} juntament amb \texttt{firma}. 

Ara, quan el receptor rebés el missatge, primer desxifra el missatge per a obtenir el missatge original
\begin{scriptsize}
\begin{verbatim}
sage:Desxifrar(E,privadaQ,send)
(14 : 5 : 1)
\end{verbatim}
\end{scriptsize}
i si vol verificar l'autoria del missatge, ha de calcular el hash del missatge desxifrat (en aquest cas, $19 = 14 + 5$) i fer-ne us de l'algoritme d'autenticació
\begin{scriptsize}
\begin{verbatim}
sage:VerificarFirma(E,publicaP,19,firma)
True
\end{verbatim}
\end{scriptsize}
\section{Comparació de criptosistemes}
Anem a comparar ara la velocitat del criptosistema RSA amb el de corbes el·líptiques utilitzant ElGamal.  Per a comparar la velocitat no podem agafar tamanys de claus iguals, si no que han de ser proporcionals a la dificultat de rompre el criptosistema, per exemple una clau de 512 bits a RSA és equivalentment segura a una de 106 bits a corbes el·líptiques. Taules comparatives de tamanys de claus es poden trobar a \cite{EUROCRYPT91} i en podem veure una a la Fig. \ref{Taula}
\subsection{1024 bits RSA vs 160 bits CE}
Vegem primer el que tarda en xifrar un punt qualssevol amb una corba amb un ordre de 160 bits.
%sage: a=620499158614608
%	  b=730750818665451459101842410432309263907232949589
%	  p=730750818665451459101842416358141509827966272213
%sage:CE=EllipticCurve(y^2 == x^3 +a*x+b).change_ring(Zmod(p))
%sage:P=CE.random_element()
%     timeit("Xifrar(CE,publica,P)")
%     send=Xifrar(CE,publica,P)
%     timeit("Desxifrar(CE,privada,send)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 5 loops, best of 3: 60.1 ms per loop
Desxifrar: 25 loops, best of 3: 29.5 ms per loop
\end{verbatim}
\end{scriptsize}

I ara vegem el que tarda en xifrar un nombre sencer qualssevol amb RSA amb una clau de 1024 bits.
%sage:p=next_prime(randint(2^511,2^512))
%     q=next_prime(randint(2^511,2^512))
%sage:CLAUA=Claves(p,q,e)
%sage:n=p*q
%sage:timeit("Cifrar(randint(1,n),CLAUA)")
%     send=Cifrar(randint(1,n),CLAUA)
%     timeit("Descifrar(send,CLAUA)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 125 loops, best of 3: 2.25 ms per loop
Desxifrar: 125 loops, best of 3: 2.23 ms per loop
\end{verbatim}
\end{scriptsize}
\subsection{2048 bits RSA vs 192 bits CE}
Vegem primer el que tarda en xifrar un punt qualssevol amb una corba amb un ordre de 192 bits.
%sage: a=620499158614608
%	  b=730750818665451459101842410432309263907232949589
%	  p=730750818665451459101842416358141509827966272213
%sage:CE=EllipticCurve(y^2 == x^3 +a*x+b).change_ring(Zmod(p))
%
%sage:P=E3.random_element()
%	 timeit("Xifrar(E3,publica,P)")
%	 send=Xifrar(E3,publica,P)
%	 timeit("Desxifrar(E3,privada,send)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 5 loops, best of 3: 75.7 ms per loop
Desxifrar: 25 loops, best of 3: 37 ms per loop
\end{verbatim}
\end{scriptsize}
I ara vegem el que tarda en xifrar un de sencer amb RSA amb una clau de 2048 bits.
%sage:p=next_prime(randint(2^1023,2^1024))
%	 q=next_prime(randint(2^1023,2^10240))
%	 CLAUA=Claves(p,q,e)
%	 n=(p-1)*(q-1)
%	 timeit("Cifrar(randint(1,n),CLAUA)")
%	 send=Cifrar(randint(1,n),CLAUA)
%	 timeit("Descifrar(send,CLAUA)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 25 loops, best of 3: 16.6 ms per loop
Desxifrar: 25 loops, best of 3: 16.8 ms per loop
\end{verbatim}
\end{scriptsize}

\subsection{521 bits CE vs 15034 bits i 4048 bits  RSA  }
Vegem primer el que tarda en xifrar un punt qualssevol amb una corba amb un ordre de 521 bits.
%sage: a=620499158614608
%	  b=730750818665451459101842410432309263907232949589
%	  p=730750818665451459101842416358141509827966272213
%sage:CE=EllipticCurve(y^2 == x^3 +a*x+b).change_ring(Zmod(p))
%sage:P=E3.random_element()
%	 timeit("Xifrar(E3,publica,P)")
%	 send=Xifrar(E3,publica,P)
%	 timeit("Desxifrar(E3,privada,send)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 5 loops, best of 3: 231 ms per loop
Desxifrar: 5 loops, best of 3: 113 ms per loop
\end{verbatim}
\end{scriptsize}
Vegem el que tarda en xifrar un nombre sencer qualssevol amb RSA amb una clau de 4048 bits.
%sage:CLAUA=Claves(p,q,e)
%	 n=(p-1)*(q-1)
%	 timeit("Cifrar(randint(1,n),CLAUA)")
%	 send=Cifrar(randint(1,n),CLAUA)
%	 timeit("Descifrar(send,CLAUA)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 5 loops, best of 3: 164 ms per loop
Desxifrar 5 loops, best of 3: 170 ms per loop
\end{verbatim}
\end{scriptsize}

I ara vegem el que tarda en xifrar un de sencer amb RSA amb una clau de 15034 bits.
%sage:CLAUA=Claves(p,q,e)
%	 n=(p-1)*(q-1)
%	 timeit("Cifrar(randint(1,n),CLAUA)")
%	 send=Cifrar(randint(1,n),CLAUA)
%	 timeit("Descifrar(send,CLAUA)")
\begin{scriptsize}
\begin{verbatim}
Xifrar: 5 loops, best of 3: 4.37 s per loop
Desxifrar: 5 loops, best of 3: 3.92 s per loop
\end{verbatim}
\end{scriptsize}
\begin{figure}
\begin{center}
\begin{tabular}{|c|c|c|}
 \hline Nivell de seguretat & RSA & CE \\
\hline 80 & 1024 & 160 \\
\hline 112 & 2048 & 224 \\
\hline 128 & 3072 & 256 \\
\hline 192 & 7680 & 384 \\
\hline 256 & 15360 & 512 \\
\hline 
\end{tabular}
\end{center}
\caption{Tamany de clau recomanat per NIST} \label{Taula}
\end{figure} 
\section{Conclusions}
La primera conclusió que obtenim és que l'algoritme per a corbes el·líptiques necessita claus molt més petites que RSA, i aquesta diferència és fa més gran a mesura que el tamany de les claus augmenta. També observem que quan augmentem el tamany de la clau el temps que tarda RSA en xifrar i desxifrar augmenta moltissim, per altra part l'algoritme ElGamal per a corbes el·líptiques no té un augment tan agressiu com el RSA. Això pot ser degut als càlculs amb xifres de molts de dígits que ha de fer RSA.

En relació amb el temps que tarda l'algoritme de ElGamal, podem observar com xifrar tarda dues vegades el de desxifrar, que es la diferència de multiplicacions que hi ha en l'algoritme. Pareix que aquestes multiplicacions són el que més temps, i recursos, consumeixen. A \cite{FastPoint} han trobat un tipus més concret de corbes el·líptiques on el temps de càlcul es pot millorar fins a un $50 \%$.

Per últim,  quan siguin necessaris unes claus més fiables aquesta tècnica serà molt més eficaç. De fet, ja comença a ser útil a certs casos crítics: per exemple, el DNI electrònic utilitza una clau RSA d'uns 4000 bits. Com ja hem vist, aquest cas té un cost computacional parescut al de ElGamal amb una clau d'uns 520 bits, emperò ElGamal en aquest cas proporciona molta més seguretat.



%La primera conclusió que obtenim es que per a corbes el·líptiques necessitam claus molt més petites que amb RSA i per tant, com podem observar a la secció anterior, quan el tamany de la clau es molt gran la diferència de temps es més que considerable, a més a més, tenim que el criptosistema que hem utilitzat per a corbes el·líptiques es pot millor considerablement, ja que l'operació fonamental dins aquest criptosistema és la multiplicació d'un punt per un escalar, per això per a desxifrar tarda la meitat que per a xifrar, i aquest producte, per a un conjunt ampli de curves, es pot millorar fins a un 50$\%$, tal com es pot veure a \cite{FastPoint}.

%Tot i aquestes possibles millores, com podem observar a la secció anterior, per a nivells de seguretat estàndards d'avui dia és més ràpid utiltizar RSA. Per tant, podem concloure que en el present és suficient utilitzar RSA, ja que és més ràpid utilitzar una clau de 2048 bits a RSA que una de 192 bits amb CE i la primera és més segura que la segona. Tot i això en un futur, quan el nivell de seguretat necessari sigui superior, tindrem disponible aquesta eina que, com hem vist, comença a ser més ràpida per a claus més grans amb la mateixa seguretat. En aquestes condicions, la criptografía amb corbes el·liptiques es podrà començar a utilitzar de manera usual\footnote{Encara que ja n'hi ha organismes, com la NSA, que ja utilitzen aquests criptosistemes}.
% if have a single appendix:
%\appendix[Proof of the Zonklar Equations]
% or
%\appendix  % for no appendix heading
% do not use \section anymore after \appendix, only \section*
% is possibly needed

% use appendices with more than one appendix
% then use \section to start each appendix
% you must declare a \section before using any
% \subsection or using \label (\appendices by itself
% starts a section numbered zero.)
%


\appendices
% you can choose not to have a title for an appendix
% if you want by leaving the argument blank


% use section* for acknowledgement
\section*{Agraïments}
Amb la col·laboració del Dr. Llorenç Huguet Rotger, CU en Ciències de la Computació i Intel·ligència Artificial a la Universitat de les Illes Balears i professor de l'assignatura \textit{Codificació i Criptografia} de la llicenciatura de Matemàtiques.


% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
 \newpage
\fi



% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}

% references section

% can use a bibliography generated by BibTeX as a .bbl file
% BibTeX documentation can be easily obtained at:
% http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/
% The IEEEtran BibTeX style support page is at:
% http://www.michaelshell.org/tex/ieeetran/bibtex/
%\bibliographystyle{IEEEtran}
% argument is your BibTeX string definitions and bibliography database(s)
%\bibliography{IEEEabrv,../bib/paper}
%
% <OR> manually copy in the resultant .bbl file
% set second argument of \begin to the number of references
% (used to reserve space for the reference number labels box)
\begin{thebibliography}{1}

\bibitem{EUROCRYPT91}
T.Beth, F.Schaefer,  \emph{Non Supersingular Elliptic Curves for Public Key Cryptosistem}, Advances in Cryptology- EUROCRYPT'91, pag 316-327
\bibitem{FastPoint}
Robert P. Gallant, Robert J. Lambert, and Scott A. Vanstone, \emph{Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms},  Advances in Cryptology - CRYPTO 2001, pag 190-200

\bibitem{Apunts}
L. Huguet, \emph{Apunts de l'assignatura Codificació i Criptografia}, curs 2010-11.
\end{thebibliography}

% biography section
% 
% If you have an EPS/PDF photo (graphicx package needed) extra braces are
% needed around the contents of the optional argument to biography to prevent
% the LaTeX parser from getting confused when it sees the complicated
% \includegraphics command within an optional argument. (You could create
% your own custom macro containing the \includegraphics command to make things
% simpler here.)
%\begin{biography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{mshell}}]{Michael Shell}
%\end{biography}
%\begin{tiny}
%\begin{biography}[{\includegraphics[width=0.8in,height=1.25in,clip,keepaspectratio]{fotosbio/adria.jpg}}]{Adrià Alcalá Mena}
%Llicenciat en Matemàtiques l'any 2011 en la Universitat de les Illes Balears.
%\end{biography}
%\begin{biography}[{\includegraphics[width=0.8in,height=1.25in,clip,keepaspectratio]{fotosbio/david.jpg}}]{David Sánchez Charles} Estudiant de quart de la llicenciatura de matemàtiques
%\end{biography}
%\end{tiny}
% or if you just want to reserve a space for a photo:

%\begin{IEEEbiography}{Adrià Alcalá Mena}
%-----
%\end{IEEEbiography}

% if you will not have a photo at all:
%\begin{IEEEbiographynophoto}{John Doe}
%Biography text here.
%\end{IEEEbiographynophoto}

% insert where needed to balance the two columns on the last page with
% biographies
%\newpage

%\begin{IEEEbiography}{David Sánchez Charles}
%¬¬
%\end{IEEEbiography}

% You can push biographies down or up by placing
% a \vfill before or after them. The appropriate
% use of \vfill depends on what kind of text is
% on the last page and whether or not the columns
% are being equalized.

%\vfill

% Can be used to pull up biographies so that the bottom of the last one
% is flush with the other column.
%\enlargethispage{-5in}



% that's all folks
\end{document}


