\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{\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: 30/03/2016}
{}{Tarea 1: 16/03/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 electronico a \texttt{fkrell@gmail.com} con el asunto 
\texttt{[cripto] Entrega Tarea1} a más tardar el día 30 de marzo de 2016 a las 3:30 pm. Cada estudiante sólo puede asumir que su tarea ha sido correctamente entregada si recibe 
un email de respuesta. Usted debe entregar un archivo pdf generado en \LaTeX.

\section*{Problema 1 ({\bf 5pts)}} 
Dado que $m\oplus 0^n=m$ para todo $m\in\{0,1\}^n$, se ha sugerido que $0^n$ sea eliminado como posible llave. Es decir, $\gen$ arroja como salida un
 string uniformemente aleatorio en $\{0,1\}^n\setminus\{0^n\}$.
\begin{itemize}
 \item {\bf 2pts} ¿Es esto una buena idea? Justifique su respuesta.
 \item {\bf 3pts} ¿Es el esquema resultante perfectamente secreto?. Demuestre su respuesta.
\end{itemize}

\section*{Problema 2 ({\bf 5pts})} 
Proponga un esquema de cifrados para $\mathcal{M}=\{0,1,2,3,4,5,6,7,8,9\}$, y demuestre que este es perfectamente secreto.

\section*{Problema 3 ({\bf 5pts})}
Hemos visto en clases que el OTP es inseguro si la misma llave es utilizada más de una vez. Sin embargo, el OTP es perfectamente secreto según la definición vista en clases.

Demuestre que no existe un esquema de cifrado que satisfaga la siguiente 
definición.
\begin{definition}
Un esquema es perfectamente secreto para 2 mensajes si 
$\forall m,m'\in \mathcal{M} \forall c,c' \in \mathcal{C}$ tales que 
$\Pr[C=c \wedge C'=c']>0$

\[
\Pr[M=m\wedge M'=m' | C=c \wedge C'=c'] = \Pr[M=m \wedge M'=m']
\]

en donde tanto $M$ como $M'$ se distribuyen independientemente en $\calM$ y $C,C'$ son variables aleatorias definidas como $C = Enc(K,M)$ y $C' = \enc(K,M')$ para $K\gets \gen$.

\end{definition}

Hint: Considere el caso $c = c'$, pero $m\neq m'$.




\section*{Problema 4: Cifradores para múltiples mensajes ({\bf 10pts})}

Diremos que un esquema tiene cifrados indistinguibles para múltiples mensajes
si 
\[
\Pr[\texttt{Exp}^{\text{m-ind}}_{\mathcal{A},\Pi}=1] \leq 1/2 + \texttt{negl}(\lambda)
\] en donde \texttt{negl} es una función negligible y $\texttt{Exp}^{\text{m-ind}}_{\Pi, \calA}(\lambda)$ es definido como
\experiment{\large \underline{$\mathsf{Exp}^{\text{m-ind}}_{\Pi,\calA}(\lambda)$}:}
    {Experimento $\mathsf{Exp}^{\text{m-ind}}_{\Pi,\calA}$}
    {fig:exp}
    {
1. $k\gets \gen(1^{\lambda})$\\
2. $\vec{M}_0,\vec{M}_1\gets \mathcal{A}(1^{\lambda})$, en donde $\vec{M}_0 = \{m_0^1, m_0^2,...,m_0^n\}$, $\vec{M}_1=\{m_1^1, m_1^2,...,m_1^n\}$ y $|m_0^i|= |m_1^i|$\\
3. $b\stackrel{\$}{\gets}\{0,1\}$\\
4. $b'\gets\mathcal{A}(\enc(k,m_b^1), \enc(k,m_b^2), ..., \enc(k,m_b^n))$\\
5. Output 1 si y sólo si $b=b'$
    }

\begin{enumerate}
\item {\bf 5pts} Demuestre que existen esquemas con cifrados indistinguibles para un solo mensaje, es decir, que cumplen con la definición vista en clases, pero que NO tienen cifrados indistinguibles para múltiples mensajes (hint, encuentre un ejemplo para $n=2$).
\item {\bf 5pts} Demuestre que si $\enc$ es determinista (no aleatorio) y no mantiene estado (cada ejecución es independiente de las anteriores), entonces el esquema no puede tener cifrados indistinguibles para múltiples mensajes.
\end{enumerate}


\section*{Problema 5: Generadores Pseudo-aleatorios ({\bf 15pts})}

Sea $G:\{0,1\}^n\rightarrow \{0,1\}^{\ell(n)}$ un generador pseudo-aleatorio con expansión $\ell(n)>2n$. Determine si las siguientes funciones son también generadores pseudo-aleatorios. Justifique su respuesta formalmente (demuestre en el caso afirmativo, y de un contraejemplo en el caso negativo).

\begin{itemize}
\item ({\bf 5pts}) $G'(s)=G(s_1, s_2, \dots, s_n)$, donde $s\in\{0,1\}^{2n}$.
\item ({\bf 5pts}) $G'(s)=G(1^{n/2}||s)$ para $s\in\{0,1\}^{n/2}$
\item ({\bf 5pts}) $G'(s)=G(s)||G(s+1)$
\end{itemize}

\section*{Problema 6: Funciones Pseudo-aleatorias {\bf 10pts}}

Sea $F:{0,1}^{\lambda}\times \{0,1\}^n\rightarrow \{0,1\}^n$ una función pseudo-aleatoria. 
Determine si las siguientes funciones $F':\{0,1\}^{\lambda}\times \{0,1\}^{n-1}\rightarrow \{0,1\}^{2n}$ son también psuedo-aleatorias. Justifique su respuesta formalmente (demuestre en el caso afirmativo, y de un contraejemplo si $F'$ no es pseudo-aleatoria).

\begin{itemize}
\item {\bf 5pts} $F'(k,x)=F(k,0||x)||F(k,1||x)$
\item {\bf 5pts} $F'(k,x)=F(k,0||x)||F(k,x||1)$
\end{itemize} 

\section*{Problema (Opcional)}
%
%\url{http://www.cs.columbia.edu/\~fernando/classes/cryptopuc2016-01/Tarea1/ciphertext
%}
El archivo \texttt{ciphertext} corresponde a un texto que sido cifrado usando el One-Time Pad con un pad aleatoreo de 80 bytes.
Descifre el archivo y léalo. Escriba en la solución algún p\'arrafo del texto, y si usted lo desea de su opinión.

\section*{Problema Opcional}

Demuestre que un esquema de cifrados $\Pi$ es perfectamente secreto si y s\'olo si sus cifrados son perfectamente indistinguibles ($\Pr[\texttt{Exp}^{\text{ind}_{\mathcal{A},\Pi}} = 1] = 1/2$ para todo algoritmo $\mathcal{A}$)
\end{document}
