<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to RSA</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>Recent changes to RSA</description><atom:link href="https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 15 Sep 2014 15:47:04 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/feed" rel="self" type="application/rss+xml"/><item><title>RSA modified by Marcelo Ruiz</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -14,18 +14,18 @@

 1) Generar aleatoriamente dos números primos grandes (típicamente 1024 bits) y distintos,  **p** y **q**.

-2) Calcular n como producto de p y q: **n = p*q**
+2) Calcular **n** como producto de p y q: **n = p*q**

-3) Calcular phi: **phi(n) = (p-1)*(q-1)**
+3) Calcular **phi**: **phi(n) = (p-1)*(q-1)**

-4) Calcula un número natural d que sea relativamente primo (coprimo) de phi(n), es decir que **mcd(d, phi(n)) = 1**. Esto es lo mismo que buscar un numero impar por el que dividir phi(n) que de cero como resto.
+4) Calcula un número natural **d** que sea relativamente primo (coprimo) de phi(n), es decir que **mcd(d, phi(n)) = 1**. Esto es lo mismo que buscar un numero impar por el que dividir phi(n) que de cero como resto.

-5) Mediante el algoritmo extendido de Euclides calcular e, el inverso multiplicativo de d: **(e*d) mod fi(n) = 1**. Para ello puede calcularse 
+5) Mediante el algoritmo extendido de Euclides calcular **e**, el inverso multiplicativo de d: **(e*d) mod fi(n) = 1**. Para ello puede calcularse 
 e=((k*fi(n))+1)/d para k=1,2,3,… hasta encontrar un e entero.

 ENTONCES:
- - El par de números (e,n) son la clave pública.
- - El par de números (d,n) son la clave privada.
+ - El par de números **(e,n)** son la **clave pública**.
+ - El par de números **(d,n)** son la **clave privada**.

 #####Encriptación:#####

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Ruiz</dc:creator><pubDate>Mon, 15 Sep 2014 15:47:04 -0000</pubDate><guid>https://sourceforge.netdfc02dcd5e1901bec9b1f53bd2c9cdb59f285845</guid></item><item><title>RSA modified by Marcelo Ruiz</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -10,39 +10,39 @@
 Pasos del algoritmo
 -------------------

-* Generación de claves:
+#####Generación de claves:#####

-1) Generar aleatoriamente dos números primos grandes (típicamente 1024 bits) y distintos,  p y q.
+1) Generar aleatoriamente dos números primos grandes (típicamente 1024 bits) y distintos,  **p** y **q**.

-2) Calcular n como producto de p y q: n = p * q
+2) Calcular n como producto de p y q: **n = p*q**

-3) Calcular phi: phi(n)=(p-1)*(q-1)
+3) Calcular phi: **phi(n) = (p-1)*(q-1)**

-4) Calcula un número natural d que sea relativamente primo (coprimo) de phi(n), es decir que mcd(d,phi(n))=1. Esto es lo mismo que buscar un numero impar por el que dividir phi(n) que de cero como resto.
+4) Calcula un número natural d que sea relativamente primo (coprimo) de phi(n), es decir que **mcd(d, phi(n)) = 1**. Esto es lo mismo que buscar un numero impar por el que dividir phi(n) que de cero como resto.

-5) Mediante el algoritmo extendido de Euclides calcular e, el inverso multiplicativo de d: (e*d) mod fi(n) =1. Para ello puede calcularse 
+5) Mediante el algoritmo extendido de Euclides calcular e, el inverso multiplicativo de d: **(e*d) mod fi(n) = 1**. Para ello puede calcularse 
 e=((k*fi(n))+1)/d para k=1,2,3,… hasta encontrar un e entero.

 ENTONCES:
  - El par de números (e,n) son la clave pública.
  - El par de números (d,n) son la clave privada.

-* Encriptación
+#####Encriptación:#####

 1) Asignar a cada caracter del mensaje plano un número entero entre 0 y (n-1) de acuerdo a alguna codificación elegida, por ejemplo ASCII.

 2) Elegir un tamaño de bloque, dividir el mensaje representado numéricamente en bloques de ese tamaño.

-3) Por cada bloque resutante (m), realizar la encriptación de acuerdo a c = m^e mod n
+3) Por cada bloque resutante (m), realizar la encriptación de acuerdo a **c = m^e mod n**

 M: mensaje plano
 m: bloque de mensaje plano
 c: bloque de mensaje encriptado
 C: mensaje encriptado

-* Desencriptación
+#####Desencriptación:#####

-1) Por cada bloque de mensaje encriptado (c), realizar la desencriptación de acuerdo a m = c^d mod n
+1) Por cada bloque de mensaje encriptado (c), realizar la desencriptación de acuerdo a **m = c^d mod n**

 2) Asignar a cada número del mensaje desencriptado el caracter correspondiente de acuerdo a la misma codificación utilizada para desencriptar

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Ruiz</dc:creator><pubDate>Mon, 15 Sep 2014 15:45:40 -0000</pubDate><guid>https://sourceforge.net202b3e5c85d52be487b1e6556a8ae71f1b172b3e</guid></item><item><title>RSA modified by Marcelo Ruiz</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -27,6 +27,25 @@
  - El par de números (e,n) son la clave pública.
  - El par de números (d,n) son la clave privada.

+* Encriptación
+
+1) Asignar a cada caracter del mensaje plano un número entero entre 0 y (n-1) de acuerdo a alguna codificación elegida, por ejemplo ASCII.
+
+2) Elegir un tamaño de bloque, dividir el mensaje representado numéricamente en bloques de ese tamaño.
+
+3) Por cada bloque resutante (m), realizar la encriptación de acuerdo a c = m^e mod n
+
+M: mensaje plano
+m: bloque de mensaje plano
+c: bloque de mensaje encriptado
+C: mensaje encriptado
+
+* Desencriptación
+
+1) Por cada bloque de mensaje encriptado (c), realizar la desencriptación de acuerdo a m = c^d mod n
+
+2) Asignar a cada número del mensaje desencriptado el caracter correspondiente de acuerdo a la misma codificación utilizada para desencriptar
+
 Ejemplo de pantalla
 -------------------

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Ruiz</dc:creator><pubDate>Mon, 15 Sep 2014 15:38:49 -0000</pubDate><guid>https://sourceforge.netee5169e0bf74c2732ea975ded35fefa3df89d0c7</guid></item><item><title>RSA modified by Marcelo Ruiz</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,5 +1,5 @@
 Introducción
------------
+------------

 El sistema criptográfico con clave pública RSA es un algoritmo asimétrico de cifrado por bloques, que utiliza una clave pública, la cual se distribuye, y otra privada, la cual es guardada en secreto por su propietario.

@@ -10,7 +10,22 @@
 Pasos del algoritmo
 -------------------

-*Hay que describir cual va a ser el "paso" del algoritmo (i.e. que operación/es el usuario hará avanzar desde el control de la aplicación). También estaría bueno aclarar si ese paso se va a usar para evalua al alumno.*
+* Generación de claves:
+
+1) Generar aleatoriamente dos números primos grandes (típicamente 1024 bits) y distintos,  p y q.
+
+2) Calcular n como producto de p y q: n = p * q
+
+3) Calcular phi: phi(n)=(p-1)*(q-1)
+
+4) Calcula un número natural d que sea relativamente primo (coprimo) de phi(n), es decir que mcd(d,phi(n))=1. Esto es lo mismo que buscar un numero impar por el que dividir phi(n) que de cero como resto.
+
+5) Mediante el algoritmo extendido de Euclides calcular e, el inverso multiplicativo de d: (e*d) mod fi(n) =1. Para ello puede calcularse 
+e=((k*fi(n))+1)/d para k=1,2,3,… hasta encontrar un e entero.
+
+ENTONCES:
+ - El par de números (e,n) son la clave pública.
+ - El par de números (d,n) son la clave privada.

 Ejemplo de pantalla
 -------------------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Ruiz</dc:creator><pubDate>Mon, 15 Sep 2014 15:19:48 -0000</pubDate><guid>https://sourceforge.net6e74d2257fd6d5cae429521c34b6e164cda9f249</guid></item><item><title>RSA modified by Marcelo Ruiz</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RSA/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,7 +1,11 @@
 Introducción
 -----------

-*Explicar el a grandes rasgos el funcionamiento del algoritmo*
+El sistema criptográfico con clave pública RSA es un algoritmo asimétrico de cifrado por bloques, que utiliza una clave pública, la cual se distribuye, y otra privada, la cual es guardada en secreto por su propietario.
+
+Este algoritmo fue desarrollado por Rivest, Shamir y Adleman y provee tanto confidencialidad (propiedad de la información que garantiza que está accesible únicamente a personal autorizado) como autenticación (propiedad asociada a la identificación, se trata de métodos que permiten comprobar de manera segura alguna característica sobre el mensaje). Está basado en el problema de la factorización de números enteros largos: dados dos números primos p y q muy grandes, es sencillo hallar su producto (p*q), pero es un problema muy complejo encontrar, a partir del producto, los números p y q que lo originaron.
+
+Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de los números primos mencionados anteriormente, lo cuales deben ser grandes (mayores que 10^100) y elegidos al azar para conformar las claves. Para realizar tanto la encripación como la desencriptación, se emplean expresiones exponenciales en aritmética modular.

 Pasos del algoritmo
 -------------------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Ruiz</dc:creator><pubDate>Mon, 15 Sep 2014 15:02:41 -0000</pubDate><guid>https://sourceforge.net5a8a018a475ea387d4cd0f4a75a3b0b95bb52b51</guid></item><item><title>RCA modified by Marco</title><link>https://sourceforge.net/p/fiubacryptolearningtools/wiki/RCA/</link><description>&lt;div class="markdown_content"&gt;&lt;h2 id="introduccion"&gt;Introducción&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Explicar el a grandes rasgos el funcionamiento del algoritmo&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="pasos-del-algoritmo"&gt;Pasos del algoritmo&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Hay que describir cual va a ser el "paso" del algoritmo (i.e. que operación/es el usuario hará avanzar desde el control de la aplicación). También estaría bueno aclarar si ese paso se va a usar para evalua al alumno.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="ejemplo-de-pantalla"&gt;Ejemplo de pantalla&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Armar una primera versión de como podría verse por pantalla este algoritmo (no se compliquen, un dibujito en google draw que más o menos muestre los bontones, campos y etiquetas, junto con la explicación de la operación y ya)&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marco</dc:creator><pubDate>Sun, 14 Sep 2014 01:42:26 -0000</pubDate><guid>https://sourceforge.net9e6b5bcdb4589232402590d25769c6e8a120c4c8</guid></item></channel></rss>