Argueta
Cortes
Jairo
I.
UNAM‐
Facultad
de
Ingeniería
Criptografía
7
de
Abril
de
2010
Red
Feistel
El
cifrado
de
Feistel
es
un
método
de
cifrado
en
bloque
con
una
estructura
particular.
También
es
conocido
comúnmente
como
Red
de
Feistel.
Un
gran
número
de
algoritmos
de
cifrado
por
bloques
lo
utilizan,
siendo
el
más
conocido
el
algoritmo
Data
Encryption
Standard
(DES).
Las
redes
de
Feistel
presentan
la
ventaja
de
ser
reversibles
por
lo
que
las
operaciones
de
cifrado
y
descifrado
son
idénticas,
requiriendo
únicamente
invertir
el
orden
de
las
subclaves
utilizadas.
El
primer
algoritmo
basado
en
las
redes
de
Feistel
fue
el
algoritmo
Lucifer,
diseñado
en
IBM
por
Horst
Feistel
y
Don
Coppersmith
a
principios
de
la
década
del
1970,
aunque
la
popularidad
para
este
esquema
llegó
cuando
el
Gobierno
Federal
de
los
Estados
Unidos
adoptó
el
algoritmo
DES
como
estándar
para
el
cifrado
de
las
comunicaciones
gubernamentales.
Este
algoritmo
derivaba
del
algoritmo
Lucifer
y
también
está
constituido
por
una
red
de
Feistel.
La
naturaleza
iterativa
de
estas
redes
hacía
que
la
implementación
del
algoritmo
en
hardware
fuera
sencillo.
Este
algoritmo
se
denomina
simétrico
por
rondas,
es
decir,
realiza
siempre
las
mismas
operaciones
un
número
determinado
de
veces
(denominadas
rondas).
Los
pasos
de
la
red
de
Feistel
son:
1.
Se
selecciona
una
cadena,
N,
normalmente
de
64
o
128
bits,
y
se
la
divide
en
dos
subcadenas,
L
y
R,
de
igual
longitud
(N/2),
para
realizar
el
cifrado
en
cada
ronda
2.
Se
toma
una
función,
F,
y
una
clave
Ki,
donde
f
es
una
función
y
Ki
son
cada
una
de
las
subclaves
aplicadas
a
cada
iteración.
El
texto
cifrado
viene
dado
por
la
concatenación
de
Ln
y
Rn.
3.
Se
realizan
una
serie
de
operaciones
complejas
con
F
y
Ki
y
con
L
o
R
(solo
uno
de
ellas)
4.
La
cadena
obtenida
se
cambia
por
la
cadena
con
la
que
no
se
han
realizado
operaciones,
y
se
siguen
haciendo
las
rondas.
Una
ventaja
de
este
modelo
es
que
la
función
f
usada
no
tiene
por
qué
ser
reversible,
pudiendo
ser
todo
lo
complicada
que
se
desee,
esta
cualidad
permite
a
los
criptógrafos
concentrarse
en
la
seguridad
de
dicha
función
sabiendo
que
el
proceso
de
descifrado
está
garantizado
ya
que
la
propia
estructura
de
la
red
de
Feistel
es
reversible.
Para
ello
únicamente
requiere
que
se
invierta
el
orden
de
las
subclaves
utilizadas.
Un
ejemplo
básico
de
cifrado
tipo
Feistel
El
algoritmo
usará
bloques
de
tamaño
8
caracteres.
Tendrá
dos
vueltas
y
en
cada
vuelta
realizará
una
operación
de
sustitución
S
y
una
permutación
P
sobre
la
1ª
mitad.
Sustitución:
Ci
=
(Mi
+1
)
mod
27
Permutación:
Ci
=
Π3241
(el
carácter
1º
pasa
a
la
4ª
posición
en
el
criptograma,
el
4º
a
la
3ª,
el
2º
a
la
2ª
y
el
3º
a
la
1ª)
Mensaje:
M
=
STAR
WARS,
LA
MISIÓN
CONTINÚA
Cifrado
tipo
Feistel
en
cuerpo
n
=
27
Argueta
Cortes
Jairo
I.
UNAM‐
Facultad
de
Ingeniería
Criptografía
7
de
Abril
de
2010
C
=
SBTX
BUST
PJÑT
NBJM
VÑBJ
ÑPUD
DES
hará
prácticamente
lo
mismo
trabajando
con
bits
y
con
funciones
un
poco
más
“complejas”.
Comentario
Mesografía:
[Link]