lunes, 8 de octubre de 2012

ALGORITMO AFÍN


ALGORITMO AFÍN


El algoritmo de cifrado Afín es mono alfabético, simétrico y es por sustitución.
Un criptosistema afín es determinado por dos enteros a y b con las siguientes características:




  •          a ≥ 0
  •          b ≤ n
  •          n es el tamaño del alfabeto.
  •          Además a y n deben ser coprimos.


Para cifrar un mensaje con el algoritmo Afín, a cada caracter se le aplica la siguiente fórmula:

Ci = (a * Mi + b )mod n
Por ejemplo:

si a=3, b=5 y n=26

Y el mensaje a cifrar (Mi) es "hola"
Toda la aritmética debe ser realizada modulo n en este caso 26.

Las letras se numeran en orden alfabético de la siguiente forma:

A
B
C
D
E
F
G
H
I
J
K
L
M
0
1
2
3
4
5
6
7
8
9
10
11
12
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
14
15
16
17
18
19
20
21
22
23
24
25

Sustituyendo valores en la función para cifrar nuetra funcion queda: 
Ci = (3 * Mi + 5 ) mod 26

Calculamos la sustitucion para cada caracter:

H =7  => C(7)   = 7  * 3 + 5 = 26 mod 26 = 0   => A
O =14=> C(14) = 14 * 3 + 5 = 47 mod 26 = 21 => V
L =11 => C(11) = 11 * 3 + 5 = 38 mod 26 = 12 => M
A =0  => C(0)   = 0  * 3  + 5 = 5 mod  26 = 5   => F

El mensaje "hola" cifradoado es "AVMF"

Este es un sistema mono alfabético pues cualquier ocurrencia de un determinado caracter será reemplazado siempre por un único caracter en el mensaje cifrado ya que Ci = a Mi + b es una función. 






El requerimiento de que a y n sean coprimos asegura que la función Ci = a Mi +b sea inyectiva ya que si la función no fuera inyectiva un cierto caracter en el mensaje cifrado podría corresponder a más de un caracter en el mensaje original y no podríamos descifrar el mensaje. 

  • NOTA:Dos números 'a' y 'b' son coprimos si su Máximo común divisor es 1. El    concepto de números coprimos es de gran importancia en el mundo de la criptografía, este y otros conceptos de la teoría de números son utilizados muy a menudo para encriptar y desencriptar información. 

En nuestro ejemplo 3 y 26 son coprimos mientras que 10 y 26 no lo son (MCD=2). 

La función para descifrar es Mi = ( Ci − b )* a^−1 (mod n ) donde a^−1 es el inverso multiplicativo de a modulo n. 



En el caso de a = 3 => a^−1 = 9 ya que 3 · 9 = 27 = 1 modulo 26, por lo tanto la función de descifrado será: 


Mi = ( Ci − 5) * 9 (mod 26)



PROGRAMA AFIN AQUÍ Y MANUAL DE USUARIO EN ESTE ENLACE

7 comentarios:

  1. puedes volver a subir los archivos ya que la ruta especificada ya no es

    ResponderEliminar
    Respuestas
    1. Mira la cuenta de dropbox la tuvimos que eliminar. Ya no dispongo de el código original, pero tengo unos trabajos que te podrían servir. Dame tu correo y si gustas te los comparto.

      Eliminar
  2. por favor me podría enviar el codo que tengas al correo yanirasoraya.25@gmail.com

    ResponderEliminar
  3. A mi también me los puedes enviar , por favor.

    ResponderEliminar
  4. A mi también me los puedes enviar , por favor.

    ResponderEliminar
  5. los tendran por alli??
    ing.amgelfloresmendoza@gmail.com

    ResponderEliminar
  6. los tendran por alli??
    ing.amgelfloresmendoza@gmail.com

    ResponderEliminar