Arantxa Zapico (Univ. Nac. de Córdoba)

Introducción a la Criptografía

UNIDAD 1 - Introducción a la Criptografía
¿Qué es?. Introducción a problemas intratables: Logaritmo Discreto, RSA, Diffie-Hellmann. Esquemas básicos: firmas digitales, intercambio de clave. Funciones de Hash y Bitcoin. Transacciones en criptomonedas. Pruebas de conocimiento: intuición y definición. Zero-knowledge (cero conocimiento): intuición y definición. Ejemplo: prueba de conocimiento del logaritmo discreto Todo en uno: ZCash y las pruebas zero-knowledge.

UNIDAD 2 - zkSNARKs:
Definición. Receta: general, pruebas interactivas con polinomios como oráculos + esquemas de compromiso de polinomios. El esquema de KZG, emparejamientos, Algebraic Group Model.

UNIDAD 3 - Diseño: SNARKs para relaciones específicas: compromiso a vectores, lookup a tablas.


UNIDAD 4 - ¿Qué más hay?
Diferentes setups: participante de confianza, actualizable (universal), transparente. Otras relaciones, problemas NP con diferentes aritmetizaciones: Plonk, R1CS (Rank-1 Constraint System), QAPs (Quadratic Arithmetic Programs). STARKs (Scalable Transparent Arguments of Knowledge), Groth16.


Forma de evaluación: Entrega de ejercicios.