summaryrefslogtreecommitdiff
path: root/memoria.tex
diff options
context:
space:
mode:
Diffstat (limited to 'memoria.tex')
-rwxr-xr-xmemoria.tex80
1 files changed, 52 insertions, 28 deletions
diff --git a/memoria.tex b/memoria.tex
index 25167db..64bd1ce 100755
--- a/memoria.tex
+++ b/memoria.tex
@@ -1,7 +1,3 @@
-% Preguntas:
-% - BNF?
-% - Numeración independiente Juego/Ejemplo/... en lstlisting
-
\documentclass[12pt,a4paper,parskip=full]{scrreprt}
\usepackage[top=3.5cm,bottom=3.5cm,left=3cm,right=3cm]{geometry}
@@ -94,23 +90,22 @@ asimétrica, ya que serán de utilidad a la hora de explicar la siguiente secciÃ
La criptografía \textbf{asimétrica} o \textbf{de clave pública} engloba todos
aquellos algoritmos criptográficos que usan dos funciones, $\Enc$ y $\Dec$, para
-cifrar y descifrar la información respectivamente. Cada una de estas funciones
-usa una clave distinta para llevar a cabo su tarea, por lo que es necesario un
-procedimiento de generación de claves $\KG$ para conseguir un par de claves
-pública-privada $(pk,sk)$.
-
-Las funciones de cifrado y descifrado se definen de la siguiente forma:
+cifrar y descifrar la información respectivamente. Intuitivamente, cifrar una
+información consiste en modificarla hasta hacerla ininteligible. Cada una de
+estas funciones usa una \textbf{clave} distinta para llevar a cabo su tarea, por
+lo que es necesario un procedimiento de generación de claves $\KG$ para
+conseguir un par de claves pública-privada $(pk,sk)$. Las funciones de cifrado y
+descifrado tienen la siguiente forma:
-$$\Enc(pk,t) = c$$
-$$\Dec(sk,c) = t$$
+$$\Enc(pk,T) = C$$
+$$\Dec(sk,C) = T$$
-Donde $t$ es el \textbf{texto} (o \textbf{mensaje}) y $c$ su
-\textbf{cifra}. Intuitivamente, $t$ es cualquier información y $c$ es el
-resultado de modificarla hasta hacerla ininteligible. Para que un esquema de
-criptografía asimétrica sea útil, siempre que el par $(pk,sk)$ se haya generado
-en una sola llamada a $\KG$ se debe cumplir la siguiente ecuación:
+Donde $T$ significa \textbf{texto en claro} o \textbf{mensaje}, y $C$,
+\textbf{texto cifrado} o \textbf{cifra}. Para que un esquema de criptografía
+asimétrica sea útil, siempre que el par $(pk,sk)$ se haya generado en una sola
+llamada a $\KG$ se debe cumplir la siguiente ecuación:
-$$\forall t. \Dec(sk, \Enc(pk, t)) = t$$
+$$\forall t \in T. \Dec(sk, \Enc(pk, t)) = t$$
Dicho de otra forma, la función de descifrado \textbf{invierte} la función de
cifrado. El objetivo es que cualquier persona pueda mandar un mensaje cifrado al
@@ -126,15 +121,13 @@ consisten en definir \textbf{juegos} entre un \textbf{desafiador}
(\textit{challenger}) y un \textbf{adversario} (\textit{adversary}) , ambos
representados como programas probabilísticos:
-\renewcommand{\lstlistingname}{Juego}
-\begin{lstlisting}[mathescape=true,frame=tb,
- caption=IND-CPA (fuente: \cite{BartheGB09})]
+\begin{game}[caption=IND-CPA (\cite{BartheGB09})]{}{}
$(pk,sk) \leftarrow \KG();$
$(m_0,m_1) \leftarrow A_1(pk);$
$b \overset{\$}{\leftarrow} \{0,1\};$
$c \leftarrow \Enc(pk,m_b);\\$
$\tilde{b} \leftarrow A_2(c)$
-\end{lstlisting}
+\end{game}
El Juego 1 define la propiedad de seguridad
IND-CPA\footnote{Indistinguishability under Chosen Plaintext Attack} de los
@@ -209,8 +202,7 @@ $f : (A \times B\times C) \rightarrow D$ pasaría a ser $f : A \rightarrow (B
\rightarrow (C \rightarrow D))$, o lo que es lo mismo, $f : A \rightarrow B
\rightarrow C \rightarrow D$.
-\renewcommand{\lstlistingname}{Ejemplo}
-\begin{easycrypt}[caption=Lenguaje de expresiones]{}
+\begin{easycrypt}[caption=Lenguaje de expresiones]{}{}
type 'a predicate = 'a -> bool.
datatype 'a option = None | Some of 'a.
op find : 'a predicate -> 'a list -> 'a option.
@@ -328,7 +320,6 @@ Para demostrar juicios, EasyCrypt cuenta con un lenguaje basado en tácticas
(la fórmula que se está demostrando) hasta que el último resuelve finalmente el
objetivo.
-\renewcommand{\lstlistingname}{Ejemplo}
\begin{easycrypt}[caption=Uso de tactics]{}
lemma hd_tl_cons :
forall (xs:'a list),
@@ -440,13 +431,46 @@ A lo largo de este capítulo se detallará el proceso que se ha seguido para
implementar la funcionalidad que permita a la especificación del coste de
algoritmos en EasyCrypt.
+TODO referencias a dónde se explica qué.
+
\newpage
+\section{Ejemplo de uso}
+\label{sec:ejemplo-de-uso}
+
+Supongamos que el usuario está construyendo una demostración de que un
+criptosistema de clave pública es seguro siempre que los recursos del adversario
+no sean superiores a cierto límite. En este caso, por <<seguro>> nos referimos a
+que el adversario no es capaz de descifrar un texto cifrado sin poseer la clave
+privada correspondiente. Como hemos visto en la sección \ref{sec:cript-asim},
+esto es equivalente a decir que no es capaz de \textbf{invertir} la función de
+cifrado.
+
+\section{Objetivos}
+
+Operador, axioma.
+
\section{Arquitectura de EasyCrypt}
+\label{sec:arqu-de-easycrypt}
+
+EasyCrypt es un programa complejo, y antes de poder modificarlo hay que entender
+qué partes lo integran y cómo está organizado a nivel de código.
+
+\begin{enumerate}
+\item Lexer
+\item Parser
+\item AST
+\item ...
+\end{enumerate}
+
+% ProofGeneral
+% EasyCrypt
+% Why3
+% Solvers
-\section{Ejemplo de uso (del coste)}
+% \section{Ejemplo de uso (del coste)}
-$$\forall (lst : [\alpha]) (p : \alpha -> bool) (x : \alpha). cost[find, p, lst]
-<= cost[p, x] * length(lst)$$
+% $$\forall (lst : [\alpha]) (p : \alpha -> bool) (x : \alpha). cost[find, p, lst]
+% <= cost[p, x] * length(lst)$$
\chapter{DESARROLLO: INTERFAZ WEB}