\documentclass[11pt]{article}
\usepackage{lmodern}
\usepackage{xspace}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{latexsym}
\usepackage[center]{subfigure}
\usepackage{epsfig}
\usepackage{hyperref}

% Inline bibliographies
\usepackage{filecontents}
% Algorithm environment
\usepackage{algorithmicx,algpseudocode,  algorithm}
% Diagrams and figures in TikZ
\usepackage{tikz}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{url}

\newtheorem{theorem}{Teorema}
\newtheorem{lemma}[theorem]{Lema}
\newtheorem{fact}[theorem]{Hecho}
\newtheorem{definition}[theorem]{Definición}
\newtheorem{corollary}[theorem]{Corolario}
\newtheorem{proposition}[theorem]{Proposición}
%\newtheorem{claim}[theorem]{Claim}
\newtheorem{conjecture}[theorem]{Conjectura}
\newtheorem{observation}[theorem]{Observación}
\newtheorem{assumption}[theorem]{Supuesto}
%\newtheorem{example}[theorem]{Ejemplo}

\newcommand{\gen}{\mathsf{Gen}}
\newcommand{\enc}{\mathsf{Enc}}
\newcommand{\dec}{\mathsf{Dec}}
\newcommand{\mac}{\mathsf{Mac}}
\newcommand{\sign}{\mathsf{Sign}}
\newcommand{\vrfy}{\mathsf{Vrfy}}
\newcommand{\mcd}{\mathsf{mcd}}
\newcommand{\hash}{\mathsf{Hash}}

\newcommand{\NN}{\mathbb{N}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\GG}{\mathbb{G}}
\newcommand{\HH}{\mathbb{H}}
\newcommand{\la}{\langle}
\newcommand{\ra}{\rangle}
\newcommand{\calA}{\mathcal{A}}
\newcommand{\calB}{\mathcal{B}}
\newcommand{\calC}{\mathcal{C}}
\newcommand{\calD}{\mathcal{D}}
\newcommand{\calE}{\mathcal{E}}
\newcommand{\calG}{\mathcal{G}}
\newcommand{\calH}{\mathcal{H}}
\newcommand{\calI}{\mathcal{I}}
\newcommand{\calJ}{\mathcal{J}}
\newcommand{\calK}{\mathcal{K}}
\newcommand{\calL}{\mathcal{L}}
\newcommand{\calM}{\mathcal{M}}
\newcommand{\calN}{\mathcal{N}}
\newcommand{\calO}{\mathcal{O}}
\newcommand{\calP}{\mathcal{P}}
\newcommand{\calQ}{\mathcal{Q}}
\newcommand{\calR}{\mathcal{R}}
\newcommand{\calS}{\mathcal{S}}
\newcommand{\calT}{\mathcal{T}}
\newcommand{\calU}{\mathcal{U}}
\newcommand{\calV}{\mathcal{V}}
\newcommand{\calW}{\mathcal{W}}
\newcommand{\calX}{\mathcal{X}}
\newcommand{\calY}{\mathcal{Y}}
\newcommand{\calZ}{\mathcal{Z}}

\newcommand{\experiment}[4]{
%{\begin{figure}[tbp]
{\begin{figure}[h!]
\begin{center}
\fbox{
\small
\hbox{
\begin{minipage}{.90\columnwidth}
{\bf #1}
\bigskip

#4

\end{minipage}
}
}
%\if\full
\vspace{-3pt}
\caption{\label{#3}#2}%\fi
\end{center}
\end{figure}
%\vspace{-10pt}
} }


\newcommand{\handout}[5]{
   \noindent
   \begin{center}
   \framebox{
      \vbox{
    \parbox[t]{4in} {\bf #1 } \vspace{3mm}  {\hfill \bf #2 }
       \vspace{2mm}
       \hbox to 6.00in { {\Large \hfill #5  \hfill} }
       \vspace{1mm}
       \hbox to 6.00in { {\it #3 \hfill #4} }
      }
   }
   \end{center}
   \vspace*{1mm}
}

% compact lists, and handy shortcuts for items
\usepackage[shortlabels]{enumitem}

\begin{document}

\handout{Criptografía y Seguridad Computacional}{2016-01}
{Entrega: 1/06/2016}
{}{Tarea 5: 18/05/2016}

\thispagestyle{plain}


\section*{Reglas}

Las tareas se pueden discutir de a 2 personas. Sin embargo, cada estudiante tiene la obligación de escribir su propia solución.
La entrega de la tarea se realiza mediante correo electrónico a \texttt{fkrell@gmail.com}, y con copia a \texttt{jsnavar1@uc.cl}, con el asunto 
\texttt{[cripto] Entrega Tarea5} a más tardar el día Miercoles 1 de Junio de 2016 a las 23:59. Cada estudiante sólo puede asumir que su tarea ha sido correctamente entregada si recibe confirmación del profesor o del ayudante. Usted debe entregar un archivo formato PDF generado en \LaTeX. Para su conveniencia puede usar el template en la página web del curso. 

{\Large Si utiliza referencias, es obligaci\'on agregarlas al final de su soluci\'on}.

\section*{Problema 1 (10pts)}

Demuestre como falsificar firmas en el esquena de firmas de Shnorr si eliminamos el string aleatorio $r=g^k$ usado en el hash sobre el mensaje.

\section*{Problema 2 (15pts)}

Considere la siguiente variación del esquema de firmas RSA plano ($\sign_{\langle d,N\rangle}(m) = m^d \mod N$) visto en clases:
El algoritmo generador de llaves es idéntico al RSA plano ($pk=N,e$, $sk = N,d$, en donde
$e\cdot d=1 \mod \phi(N)$


Sea $n=||N||$ (largo en bits del módulo $N=pq$).
El esquema esta definido para mensajes de largo $9n/10-1$.
Antes de firmar, el mensaje es cambiado a $\hat{m}=(0||m||0^{n/10})^d \mod N$, y la firma esta definida como $\sigma = \hat{m}^d \mod N$.

Luego verificamos comparando $\sigma^e\mod N$ con $(0||m||0^{n/10}) \mod N$. 


\begin{enumerate}

\item Demuestre que el ataque visto en clases para RSA plano (elegir primero una firma arbitraria $\sigma$ y luego computar el mensaje como $m=\sigma^e$) no funciona en este nuevo esquema.

\item Demuestre que el esquema sigue siendo inseguro.

\end{enumerate}


\section*{Problema 3 (15pts)}

Sea $\Pi=(\gen, \sign, \vrfy)$ un esquema de firmas digitales seguro según la definición vista en clases (es decir, el adversario es incapaz de generar una firma válida para un mensaje, elegido por este, que no haya sido consultado a su oráculo de firmas). Considere el esquema de firmas digitales $\Pi_y=(\gen, \sign_y, \vrfy)$ tal que si $H(0)\neq y$ entonces ${\sign_y}_{sk}(m)=\sign_{sk}(m)$. En cambio, si $H(0)=y$, entonces ${\sign_y}_{sk}(m)=sk||\sign_{sk}(m)$.

\begin{itemize}
\item Demuestre que si $H$ es un oráculo aleatorio, entonces $\Pi_y$ es seguro para \emph{cualquier} $y$.
\item Demuestre que existe un $y$ tal que $\Pi_y$ no es seguro si $H$ es instanciado con una función de hash fija (sin llave), como por ejemplo SHA-1.
\end{itemize}


\section*{Problema 4 (20pts, OBLIGATORIO)}

\begin{enumerate}

\item Describa el conjunto y la operación binaria que definen un grupo de curva elíptica.

\item ¿Cómo se computa la operación sobre 2 elementos iguales?

\item ¿Cuál es el elemento neutro para la operación anterior?

\item ¿Nombre al menos 2 ventajas y una desventaja de utilizar grupos en curvas elipticas en comparación con los grupos vistos en clases, por ejemplo, el grupo de residuos cuadrados módulo $p=2q+1$ ($p$ y $q$ primos)?

\item ¿Cuál es la razón de utilizar una función de hash (SHA-1) para generar los parámetros de la curva P-256?

\item ¿Por qué el uso de una función de hash para generar los parámetros no es suficiente para convencer a la comunidad criptográfica de que la curva P-256 no fue generada maliciosamente?

\end{enumerate}
\end{document}
