tESIS DOCTORAL
METODOLOGÍA DE LOS SISTEMAS
DE PRODUCCIÓN PARA
CRIPTOGRAFIADO ÓPTIMO
VICENTE MARTÍNEZ ORGA Licenciado en Informática
prttsantada en la
FACULTAD DE INFORMÁTICA de Id
UNIVERSIDAD POLITÉCNICA DE MADRID
para la obtención del
GRADO DE DOCTOR EN INFORMÁTICA
MADRID, NOVIEMBRE DE 1985
^ T S DOCTORAL
METODOLOGÍA DE LOS SISTEMAS DE PRODUCCIÓN
PARA CRIPTOGRAFIADO ÓPTIMO"
Por
VICENTE MARTÍNEZ ORGA
Licenciado en Informática -I'
por la
Facultad de Informática de Madrid
presentada en la
FACULTAD DE INFORMÁTICA
déla
UNIVERSIDAD POLITÉCNICA DE MADRID
para la obtención del
GRADO DE DOCTOR EN INFORMÁTICA
UUiVERSlDi^D POÜTECHiCA DE MADRID FACULTAD D.ti SMFORMATÍCA
BIBLIOTECA
!••;• cocüí;;¿w l ü _.
SlGKATURA-T-'¿2
jviaünd, ¡Noviembre de 1985
TESIS DOCTORAL
"METODOLOGÍA DE LOS SISTEMAS DE PRODUCCIÓN
PARA CRIPTOGRAFIADO ÓPTIMO"
A UTO R Vicente Martínez Orga
TUTOR Antonio Insúa Negrao ;
TRIBUNAL CALIFICADOR
PRESIDENTE: Rafael Portaencasa Baeza
VOCALES: Ángel Jordán Goñi
Luis Mfi Laíta de la Rica
Manuel Diaz y Diez de Ülzurrun
SECRETARIO: Juan Pazos Sierra
- I
PLANTEAMIENTO Y RESUMEN
El presente trabajo se inscribe dentro del área de Inteligencia Artificial y,
más particularmente, dentro del campo de los Sistemas Basados en el Conocimiento.
El objetivo es aplicar la metodología basada en los principios arquitecturales
de construcción de Sistemas Basados en el Conocimiento (es decir, separación de los
conocimientos de los procedimientos que los manejan), a problemas, como es el caso de
la criptografía, en principio alejados del dominio de la Inteligencia Artificial.
Después de hacer un estudio crítico del estado de la cuestión en el campo de
la criptografía, se construye con la metodología propuesta un sistema criptográfico que
es óptimo, según los criterios propuestos por Shannon, eficiente, adaptable y
transportable.
El énfasis principal del trabajo se pone, además de en el establecimiento de
la metodología propuesta, en introducir en el sistema dos tipos de conocimientos
públicos:
1. El uso de la transformación de variable aleatoria para conseguir
criptogramas con distribución uniforme de sus símbolos, con lo que el
sistema resulta inviolable.
2. El principio del valor relativo de los sistemas de numeración para romper
la relación contextual de los símbolos del criptograma.
Con todo ello, se obtiene un sistema de cifrado de llave pública "cuasi-
óptimo", aplicable tanto a almacenamiento como a transmisión de información. Este
- II -
sistema, es instrumentable, según convenga, utilizando "software" o "hardware", en
cualquier tipo de computador, incluso personal, lo que le confiere al sistema un
carácter de generalidad hasta ahora no conseguido.
Como resultado final, se ha solicitado del Registro de la Propiedad
Industrial, la concesión de una patente para el dispositivo "hardware" del mismo.
En resumen, se puede decir que la hipótesis de trabajo establecida, la
estructura de sistemas basados en el conocimiento es aplicable a otros campos distintos
de los de la inteligencia artificial. Esto amplia el campo de utilización de estas
metodologías más allá de lo esperado. ;
- I I I
ABSTRACT
The present thesis can be framed within the AI field and more specifically
in the field of based-knowledge systems.
The objective is to apply the methodology based on the architectural
principies of based-knowledge systems -i.e. to sepárate knowledge from the procedures
used for that knowledge- to problems not related to the AI domain, such as
cryptography.
After making a critical study of the state of the art, a cryptographic system
-r is designed with the proposed methodology. This system, according to Shannon's
Gritería, is efficient, adaptable and portable.
The emphasis has been laid on implementing the proposed methodology and
on entering two kinds of public knowledge at the system:
1. The change of the aleatory variable in order to obtain cryptograms with
homogeneous distribution of its symbols so that the system is inviolable.
2. The application of the relative valué principies that numeration systems
have in order to break the contextual relationship of the cryptogram
symbols.
Henee, a coded system of public key -almost optimum- is obtained and can
be applied both to store and transmit data. This system can be implemented in any
Computer, even in P.Cs, at convenience by using software or hardware. This provides
the system a general character nót obtained up to this moment.
- IV -
Finally» a patent of the hardware device has been applied for at the
Reglster of Mortgages.
To sum up, it can be said that the hypothesis established, -i.e. structure of
Systems based on knowl'edge- is applicable to many different áreas in A.I. This fact
expands the application of these methodologies more than it is expected.
4
- V -
ÍNDICE
Página
CAPITULO 1. INTRODUCCIÓN.
1.1. Información. 1
1.2. Necesidad de ses^ridad en sistemas informáticos. 14
1.3. Amenaza a la seguridad y privacidad de la información. 18
1.4. Implicaciones sociales y legales. 22
1.5. Propósito del trabajo. 26
CAPITULO 2. ESTADO DE LA CUESTIÓN. ^
2.1. Antecedentes y métodos afines a la criptografía. 28
2.2. Criptografía. 29
2.3. Métodos tradicionales. 35
2.3.1. Transposición. 35
2.3.1.1. Sistemas de cifrado por líneas. 36
2.3.1.2. Sistemas de cifrado matriciales. 37
2.3.1.3. Sistema de cifrado por columnas a partir de
la llave. 37
2.3.2. Sustitución. 38
2.3.2.1. Monoalfabéticos. 39
2.3.2.2. Polialfabéticos. 40
2.3.2.3. Sustitución digráfica. 41
2.3.3. Sistemas híbridos. 43
2.4. Esquemas basados en el computador. 44
2.4.1. Esquemas aritméticos. 45
-j 2.4.1.1. Suma y resta. 45
2.4.1.2. Multiplicación y división. 46
VI -
Página
2.4.2. Esquemas lógicos. 47
2.4.3. Esquemas matriciales. 49
2.5. Técnicas avanzadas. 49
2.5.1. Método de la llave en memoria. 50
2.5.2. Método de llave infinita. 52
2.5.3. El DES ("Data Encryption Standar"). 53
2.5.3.1. Génesis. 53
2.5.3.2. El algoritmo. 55
2.5.3.3. La problemática DES. 56
2.5.4. Algoritmos de llave pública. ^^' 58
2.5.4.1. Bases teóricas. 58
2.5.4.2. Propiedades de un sistema de cifrado de llave
pública. 62
2.5.4.3. Algoritmo RSA. 63
2.5.4.4. Método de Merkle y Hellman. 66
2.5.4.5. Problemas de los sistemas de llave
pública. 67
CAPITULO 3. SISTEMA PROPUESTO.
3.1. Hipótesis de trabajo. 68
3.2. El conocimiento del sistema. 70
3.3. Principio del valor relativo de los sistemas de numeración. 75
3.4. Transformación de variable aleatoria. 76
3.5. Números aleatorios. 79
3.5.1. Generalidades. 79
^ 3.5.2. Generación de números aleatorios uniformes:
Método de las congruencias. 81
- VII
Página
3.5.3. Elección de los parámetros. 84
3.5.4. El método de generación propuesto. 92
3.5.5. "Test" de aleatoriedad. 99
3.5.5.1. Introducción. 99
. 3.5.5.2. "Test" de X2. 100
3.5.5.3. Test espectral. 104
3.6. Sistemas de producción. 122
3.6.1. Arquitectura de los sistemas de producción. 122
3.6.2. Ejemplo de funcionamiento de un motor de
inferencias. 131
3.6.2.1. Ciclo elemental de trabajo. 132
3.6.2.2. Encadenamiento de ciclos en vistas a
verificar las hipótesis iniciales. 134
3.6.3. Propagación de conocimientos. 136
3.7. El sistema propuesto. 138
CAPITULO 4. RESULTADOS Y FUTURAS LINEAS DE INVESTIGACIÓN.
4.1. Resultados y conclusiones. 144
4.2. Futuras líneas de investigación. 155
BIBLIOGRAFÍA. 156
VIII
LISTA DE SÍMBOLOS
*
=
ffe
log
log2
log n
I
e
A
*
/
®
M
V
A
-*
<—
/
**
0
54(10
00
i
C
£
>
s s
3 , '
1 1 1
igual
desigual
equivalente 0 módulo
no equivalente a
logaritmo decimal
logaritmo en base 2
logaritmo neperiano
suma torio
integral
número e
incremento
producto
cociente
suma lógica
negación
disyunción
conjunción
implicación
asignación
función
exponenciación
cero 0 vacío
base de numeración
infinito
pertenece
contenido en
menor o igual
mayor 0 igual
aproximadamente
existe en
tal que
módulo 0 valor absoluto
1 -
"Vivir verdaderamente es vivir con la información adecuada"
(N. Wiener)
CAPITULO 1. INTRODUCCIÓN.
1.1. Información.
Se ha convertido en un lugar común el decir que la cultura contemporánea
está marcada por una tecnología computacional omnipresente. En efecto, las
sociedades de tecnología avanzada son ya oficialmente calificadas por la OCDE de
"Sociedades de Inforitiación". La razón es clara: En ellas predominan las bien llamadas
"Industrias del conocimiento" o "blandas", por oposición a las tradicionales, duras,
contaminantes, con alto consumo energético y abundante necesidad de materias
primas como consumo, y uso de abundante mano de obra.
Los nuevos "productos" son: informaciones, datos y conocimientos
elaborados, imágenes y concepciones nuevas, a la par de crecientes y rápidamente
cambiantes, con un gran número de innovaciones tecnológicas y sociales puestas en
circulación. En este sentido, se puede decir que la información, y el conocimiento que
dicha información es susceptible de aportar, son la base de toda sociedad moderna.
Esto es tan cierto que para muchos, entre los que se encuentra D.Bell, el principal
recurso estratégico de las sociedades postindustriales ya no es el capital financiero,
sino el conocimiento. Pero no puede existir conocimiento, sin su soporte previo; la
información.
Además el efectivo uso de la información produce en toda organización la
posibilidad de disminuir su nivel de entropía y, en consecuencia, la capacidad de
aumentar, para bien y para mal, la eficiencia de sus actuaciones. En efecto, los físicos
saben que todo sistema aislado cambia de modo tal que se acerca a un estado de
reposo definido, que es un estado de equilibrio. Este estado no corresponde a una
pérdida sino a una degradación de la energía. El cambio de energía durante este
proceso irreversible és la diferencia entre la entropía al final y la entropía al
comienzo. La medida de la entropía es, por lo tanto, una medida de una diferencia
entre un estado inicial y un estado final. El valor de dicha medida viene dado por la
fórmula:
S = KlogD ^^
Siendo S la entropía, K la constante universal de Boltzmann cuyo valor es
1,38 X 10~16 expresada en ergios por grado centígrado, que es igual a la constante de
los gases perfectos dividido por el número de Avogadro, y D la medida del desorden
atómico. El estado de reposo al cual un sistema aislado tiene la tendencia a llegar,
corresponde a una entropía máxima, esto es, a un desorden máximo [Brillouin 3].
Ahora bien, como la entropía es una medida de desorden o estado perfecto
de equilibrio, guarda relación con la probabilidad. En un sistema cerrado que
evoluciona desde un estado menos probable a un estado más probable, es obvio que la
probabilidad aumenta pero también lo hace la entropía. La relación entre probabilidad
y entropía viene dada por la fórmula de Boltzmann-Planck:
S = KlnP
- 3 -
Siendo P el número de "complexiones elementales" que se corresponden a
las configuraciones discretas; es decir, a los saltos del sistema atómico desde una
estructura inestable a otra.
También es cómodo dar una expresión para la inversa de la entropía esto
es, para el grado de orden atómico o la disponibilidad para realizar trabajo. Esta
entropía negativa "negaentropía", representa la calidad o grado de energía y su valor
será:
N = K log \ID
r El concepto de entropía, presenta actualmente unas relaciones muy
estrechas con la cantidad de información. Estas relaciones, han sido planteadas desde
las publicaciones de Shannon, ya que él denominaba a la función H "entropía del
mensaje" o "entropía de información". La razón de esto era, evidentemente, la
analogía formal entre la definición de su función por la fórmula:
y la entropía termodinámica por la fórmula de Boltzmann:
S= -K^ pii) Inpii)
siendo las p(i) de la fórmula de Shannon definidas como las probabilidades de los
símbolos utilizados en los mensajes. Las p(i) de Boltzmann, se definen en
termodihámica estadística de la siguiente manera: Cualquier sistema, entendiendo por
tal una "muestra" de materia en condiciones de cambio y transformaciones de energía
- 4 -
y materia bien determinados, puede encontrarse en un gran número de estados i,
caracterizado cada uno por una energía Ef. Por ejemplo, una cierta cantidad de gas
contenido en un cierto volumen V a la temperatura T, puede encontrarse en diferentes
estados, todos compatibles con los mismos valores de la masa de gas, de V y de T que
definen el sistema. Cada uno de los estados está caracterizado por un valor particular,
de la energía interna del sistema, o, mejor aún, por un valor particular de la cantidad
de energía que el sistema es susceptible de liberar, si se le deja evolucionar
espontáneamente [Barrow 2].
El problema se plantea debido a que las magnitudes según las cuales el
sistema está especificado: número de moléculas o masa de gas M, volumen que ocupa
V y temperatura T, son magnitudes macroscópicas. Ahora ^ n , el sistema está
constituido por un gran húmero de partículas microscópicas o, más bien,
submicroscópicas: las moléqulas del gas. Cada una de ellas se encuentra en un estado
particular, definido por su posición en el espacio y su velocidad o, más precisamente,
su cantidad de movimiento. Estas posiciones y velocidades son, según el principio de
indeterminación de Heisenberg [Gamow 12], [Heisemberg 17], inaccesibles a la medida.
Todo el problema de la termodinámica estadística estriba en mostrar cómo las
variables microscópicas, posición y cantidad de movimiento, determinan las
magnitudes macroscópicas medibles. Dado que el estado microscópico de un sistema
en un instante dado, posición y cantidad de movimiento de cada una de sus moléculas,
no puede ser conocido; toda magnitud medida sobre el sistema, se considera como una
media de todos los estados microscópicos posibles en los cuales este sistema puede
encontrarse.
Dicho de otra forma, se define un conjunto termodinámico, como un
número muy grande de sistemas idénticos desde el punto de vista de sus
especificaciones macroscópicas, pero diferentes desde el punto de vista de un estado
microscópico. Estos estados microscópicos, están caracterizados por distribuciones
- 5 -
diferentes de las moléculas sobre las posiciones y velocidades que pueden tener. Uno
de los postulados de base de la termodinámica estadística, consiste en identificar una
magnitud macroscópica medible con el valor medio de esta magnitud sobre todos los
estados del conjunto. Además, una medida necesita, en general, un tiempo muy largo
respecto a las velocidades de las moléculas. Este valor medio sobre el conjunto de los
estados, se identifica también con el valor medio en el tiempo de la magnitud
macroscópica del mismo sistema, cuyos estados microscópicos varían evidentemente
de un estado macroscópico a otro.
En el ejemplo del gas anterior, número de moléculas, volumen y
temperatura están impuestas desde el exterior y def-inen el conjunto. Un sistema,
puede encontrarse en un gran número de microestados diferente|ry toda medida sobre
este gas se considera como el resultado de una media sobre todos estos microestados.
Esta media depende, evidentemente, de que la distribución de los microestados tenga
la misma probabilidad o que, al contrario, algunos sean más frecuentes que otros. Es
esta distribución de microestados, la que está determinada por las condiciones
macroscópicas de la experiencia, y la que establece que las otras magnitudes físicas
sean susceptibles de ser medidas en esta muestra: presión, energía mecánica, calor,
energía eléctrica, etc. La elección de magnitudes macroscópicas impuestas que
definen el conjunto, y de las susceptibles de variar, que son el objeto de las medidas
es, evidentemente, arbitrario y está en general, dictado por las condiciones de la
experiencia. Así el ejemplo elegido, corresponde al caso de experiencias realizadas a
temperaturas y volumen constante sobre una muestra cerrada; es decir, no susceptible
de cambiar materia con su entorno pero donde son posibles cambios de energía. Sea
como fuere, el paso de las variables microscópicas a las magnitudes macroscópicas,
parámetros, y variables, se hace por intermedio de una distribución de los
microestados posibles del sistema sobre el conjunto construido a partir de este
sistema;' A cada microestado i está asociada una probabilidad p(i). Es así que la energía
E de un sistema, en tanto que magnitud macroscópica medible, es considerada como la
-6 -
media E de las energias &• correspondientes a cada uno de los estados, y está dada por
la fórmula:
£ = 2 p (í) e.
De la misma forma, a cada macroestado de un grupo, definido por los
valores medios de uno o más de sus atributos, le corresponden en general varios
microestados del grupo. Por ejemplo, a cada macroestado del movimiento de las
moléculas de un cuerpo, definido por la velocidad media de sus moléculas, o, lo que es
lo mismo, su temperatura, le corresponden muchos microestados de un movimiento
molecular. No es, pues, sorprendente que en un cuerpo de billones y billones de
moléculas haya un gran número de microestados distintos de movimiento, cada uno de
los cuales puede pertenecer a un macroestado con la misma velocidad media por
molécula. El número de distintos microestados que corresponden a un macroestado
dado, definido por cualquier temperatura T, se conoce como "probabilidad
termodinámica". La razón de llamarse "probabilidad" se basa en la perogullada de que,
cuanto mayor sea el número de microestados correspondientes al macroestado definido
por T, mayor será la probabilidad de que cualquier microestado elegido al azar,
manifieste la característica externa de ese macroestado: T.
Una magnitud llamada "entropía", había sido definida antes, a partir del
estudio de las máquinas térmicas, por la fórmula:
dS = dQ/T
donde dQ representa una cantidad de calor recibida por el sistema, T su temperatura
absoluta y dS la variación de entropía del sistema. El interés de esta definición residía
en que dS es una diferencial total. En efecto, gracias a eso los cambios de calor y las
- 7 -
transformaciones de energía haciendo intervenir el calor, pueden ser calculadas
cómodamente a partir de la integral de esta diferencial
- \ dQ/T
lo que de otra manera sería imposible, puesto que en general dQ no es una diferencial
total. En termodinámica estadística, se demuestra que, cualquiera que sea el conjunto
termodinámico considerado, esta magnitud está unida a la distribución de los
microestados por la fórmula:
S= -K^pd) Inpií)
Así, mientras que la energía temodinámica E de un sistema, está definida a
partir de las energías mecánicas e ^ de los microestados, la entropía es una función que
no depende más que de las probabilidades p(i). En otras palabras, es una magnitud
macroscópica que no solamente está ligada a la distribución estadística de los
microestados, como las otras, sino que expresa esta distribución y no expresa más que
eso.
Un problema aún no resuelto de naturaleza fundamental, se origina en una
paradoja básica de la termodinámica. Eddington, llamó a la entropía "La flecha del
tiempo". De hecho, es la irreversibilidad de los acontecimientos físicos, expresadas por
la función entropía, la que da al tiempo su dirección. Sin entropía, es decir, en un
Universo de procesos completamente reversibles, no habría diferencia entre pasado y
futuro. Sin embargo, las funciones de entropía no incluyen explícitamente al tiempo.
Esto pasa tanto con la clásica función de entropía para procesos cerrados de Clausius,
como con la función generalizada para sistemas abiertos y termodinámica irreversible
- 8 -
debida al premio Nobel Prigogine. El único intento de colmar este vacío se debe a
Reik, aunque hasta el momento sin mucho éxito.
El problema de las relaciones de la entropía y las cantidades de
información puede ser explicitado, por el planteamiento de las cuestiones siguientes:
a). ¿La analogía entre las fórmulas de Shannon y Boltzmann no es más que
una analogía formal, o, antes bien, revela una relación profunda entre
las nociones que sirven a definir?.
b). Si esta analogía no es formal y fortuita, la relación entre entropía e
información es una identidad pura y simple co^'las variantes de los
factores K y los log en base 2 y neperianos, o bien es una relación más
elaborada.
La importancia de estas cuestiones, hoy en día sujetas a debate, es muy
grande tanto desde el punto de vista de la teoría de la información como de la
termodinámica. En efecto, la teoría de la información, en principio, no es más que una
teoría estadística desarrollada fuera del cuadro conceptual de las ciencias físicas. Un
parentesco real entre cantidad de información y entropía significa que no solamente
esta noción de información tiene un interés práctico en el tratamiento estadístico de
ciertos problemas de comunicación, sino que expresa una realidad física universal en
relación con las magnitudes físicas mensurables tales como: energía, temperatura, etc.
Recíprocamente, la verificación de este parentesco incide inevitablemente sobre la
manera de comprender la noción de entropía y, por lo tanto, modifica sensiblemente el
cuadro conceptual clásico de las ciencias. Esto es cierto, en particular, en lo
concerniente al papel del observador y la medida, según Rotshein y Brillouin, toda
medida'física va acompañada ineludiblemente de variaciones de la entropía que
conducen a un aumento de la entropía total del sistema formado por el aparato de
- 9 -
medida y el sistema en que se desarrolla el fenómeno a medir. Que existe un mínimo
debajo del cual ninguna medida es posible, y que este mínimo es igual a K ln2 que se
corresponde a una medida que aporta un bit.
Este punto de vista, no hace más que subrayar y desarrollar las
consecuencias de una evidencia; los conceptos físicos más habituales, no existen más
que como interpretación de experiencias sobre magnitudes mensurables. Considerar la
realidad de estos conceptos olvidando el papel de las experiencias de medida en su
definición constituye una grave falta metodológica. Por contra, cuando esta evidencia
se tiene presente, la noción de información física asociada a todo fenómeno de
medida, aparece indisociable del contenido de los conceptos físicos más habituales. De
esta forma, la definición estadística de la entropía por la fórmv|¿a de Boltzmann hace
aparecer esta magnitud, como otra forma de expresar la información transmitida de
las medidas físicas a propósito del estado microscópico de los sistemas observados. En
otras palabras, las probabilidades p(i) de los diferentes microestados de un sistema se
consideran como las probabilidades de los símbolos de los mensajes. Cada sistema en
un instante dado, está asimilado a un mensaje existiendo una serie de valores p(i)
asociados a cada uno de los microestados i. Las dos fórmulas de Shannon y Boltzmann
[Martínez 27] son entonces puestas en relación fácilmente cuando se escribe que la
cantidad de información media Hs que recibiría un observador conociendo el
microestado en el que se encuentra un sistema dado cuya entropía es S, es igual a:
Hg= - ^ piü U>g^p(í) = -log^e 2 pii) InpiO i i
de tal manera que S = K log2eHs y reemplazando K y log2e por sus valores es; S = 1,38
X 10-16 X 0,69 Hs = 10-16 Hs, expresándose K en ergios por grado. La entropía de un
sistemares, de esta suerte, proporcional a la cantidad de información que se tendría si
se supiera en que microestado se encuentra el sistema. Esta relación plantea dos
-10-
problemas: uno de signo y otro de unidades. Siguiendo a Brillouin [Brillouin 3], y por
razones ligadas al segundo principio de la termodinámica, se tiene tendencia a
considerar que las variaciones de entropía y de cantidad de información de un sistema,
se efectúan en direcciones opuestas, es decir, que a un aumento de entropía
corresponde una disminución A Hs o lo que es lo mismo:
AS = -Kln^C^H
Además, S y H no tienen aparentemente la misma dimensión puesto que se
pasa de uno al otro por intermedio de la constante de Boltzfhann K, a la que
habitualmente se atribuye la dimensión de una energía por unidad de temperatura.
Esta relación ha permitido resolver ciertas paradojas clásicas que se presentaban como
transgresiones aparentes del segundo principio de la termodinámica. Siendo el más
célebre el Demonio de Maxwell. En la mayor parte de los casos, la contribución de la
información a la variación total de la energía es despreciable de modo que la relación
pasa inadvertida por efecto del factor de la transformación. Pero, en los casos límites,
como el del Demonio de Maxwell, no puede ignorarse so pena de entrar en
contradicción con el segundo principio. Así la entropía no es una medida del orden
microscópico del sistema, sino del grado de conocimiento que un observador puede
tener del estado microscópico de este sistema; en otras palabras, la entropía mide la
falta de información sobre la verdadera estructura del sistema.
Otro problema de mucho interés, es la relación entre la termodinámica
irreversible y la teoría de la información. El orden es la base de la organización. En
cierto sentido, puede medirse el orden por la entropía negativa en el sentido de
Boltzmann.
- 1 1 -
El concepto de entropía, como medida de desorden o estado perfecto de
equilibrio, en palabras de Unamuno, especie de homogéneo último, fue expresado de
forma intuitiva, en prosa poética, por Leopardi en el fin del cántico del Gallo Salvaje
con las siguientes palabras: "Tiempo llegará en que este Universo y la naturaleza
misma se habrá extinguido; y al modo que de grandísimos reinos e imperios humanos y
sus maravillosas acciones que fueron en otra edad famosísima, no queda ni señal ni
forma alguna, así igualmente del mundo entero y de las infinitas vicisitudes y
calamidades de las cosas creadas no quedará ni un sólo vestigio, sino un silencio
desnudo y una quietud profundísima llenarán el espacio inmenso. Así ese arcano
admirable y espontáneo de la existencia universal antes de haberse aclarado o dado a
entender, se extinguirá o perderá".
-r" Para terminar con este apartado, un breve comentario acerca del aspecto
filosófico de estas teorías, aspecto que constituye en sí mismo un amplio campo y
sobre el cual se ha escrito mucho. Tales implicaciones filosóficas pueden ilustrarse
mediante un ejemplo concreto. El que se va a considerar aquí está relacionado con el
conflicto entre los puntos de vista termodinámico y mecánico sobre el
comportamiento de la materia.
Considérense dos recipientes: uno de ellos contiene un cierto gas, el otro
está vacío. ¿Qué sucede si se pone en comunicación ambos recipientes mediante un
tubo y se abre repentinamente una válvula colocada en el tubo? De acuerdo con el
segundo principio de la termodinámica, el gas pasará del recipiente A al B con una
rapidez que sigue una ley exponencial hasta que la presión es la misma en los dos
recipientes. Lo anterior constituye una expresión de la ley.de la entropía creciente,
que, en su formulación más pesimista, afirma que toda la materia y la energía del
universo terminarán por nivelarse en el estado que Rudolf Clausius, uno de los padres
del segundo principio de la termodinámica, denominó de forma menos poética que
Leopardi, "WSrmetod" (muerte térmica).
12-
Pero la concepción mecánica, o cinética, de la materia describe la
situación de una forma enteramente diferente. Es cierto que las moléculas del gas
tenderán a moverse desde las regiones de presión grande a las de presión pequeña, pero
el movimiento no se realiza únicamente en un sentido; las moléculas, al chocar con las
paredes de los recipientes y entre sí, se mueven siguiendo caminos aleatorios; y
aquellas moléculas que están en el recipiente B, igual pueden volver al A que continuar
en el B. Un teorema matemático debido a Poincaré demuestra que un sistema
dinámico de este tipo acaba por aproximarse indefinidamente a su estado inicial; es
decir, aquel estado en que todas las moléculas del gas (o casi todas) se hallan en el
recipiente A.
-r' Paul y Tatianá Ehrenfest ilustraron en 1907 esta idea con un sencillo y
bello modelo probabilístico. Considérense dos recipientes A y B; en el recipiente A se
colocan un gran número de bolas numeradas y en el B no se pone ninguna. De otro
recipiente lleno de tiras de papel igualmente numeradas se extrae al azar un número
(por ejemplo, el 6) y se pasa la bola que tiene este número del recipiente A al B. Se
devuelve la tira del papel a su sitio y se continua el juego, extrayendo al azar un
número entre 1 y N (el número total de bolas contenidas en un principio en el
recipiente A) y pasando la t)ola correspondiente al número extraído del recipiente en
que está el otro.
Intuitivamente resulta claro que mientras haya muchas más bolas en el
recipiente A que en el B, la probabilidad de sacar un número que corresponda a una
bola de A es mucho mayor que la de sacar uno que corresponda a una bola de B. Por
tanto, el flujo de bolas será al principio mucho más fuerte de A hacia B que en sentido
contrario. A medida que se van sucediendo las extracciones, la probabilidad de que el
número 'extraído corresponda a una bola de A variará de una forma que dependerá de
las extracciones anteriores. Esta forma de dependencia de la probabilidad respecto a
-13-
los acontecimientos anteriores se designa con el nombre de cadena de Markov, y todos
los hechos relativos al juego pueden ser deducidos explícita y rigurosamente dentro de
la teoría correspondiente. Se obtiene como resultado que, en promedio, el número de
bolas del recipiente A decrece, en efecto, de acuerdo con una ley exponencial, según
indica la teoría termodinámica, hasta que casi la mitad de las bolas está en el
recipiente B. Pero el cálculo demuestra también que si el juego se prolonga
suficientemente, entonces, y con una probabilidad igual a 1, todas las bolas terminarán
finalmente por volver al recipiente A, tal como dice el teorema de Poincaré.
¿Cuál sería, por término medio, el número de extracciones necesario para
volver al estado inicial? 'La respuesta es 2N extracciones, que es un número
considerable, aún en el caso de que el número total de bolas (fí) sea menor de 100.
Esto explica por qué en la naturaleza el movimiento se efectúa en una única dirección,
en vez de presentar oscilaciones en ambos sentidos. Toda la historia del hombre es
ridiculamente corta si se la compara con el tiempo que necesitaría la naturaleza para
volver a su estado primitivo.
A fin de comprobar experimentalmente la exactitud de los cálculos
teóricos, el juego de Ehrenfest fue realizado por un computador. El juego comenzaba
con 16.384 bolas en el recipiente A, y cada serie constaba de 200.000 extracciones (en
las que el computador invertía menos de dos minutos). Como era de esperar, la curva
que representaba el número de bolas en el recipiente A después de cada 1.000
extracciones decrecía de un modo casi perfectamente exponencial. Una vez alcanzado
el equilibrio; es decir, 8.192 bolas, la mitad del número de partida, la curva comenzaba
a oscilar, moviéndose aleatoriamente por encima y por debajo de este número, pero sin
apartarse mucho de él. Estas oscilaciones pecaban, a veces, de exageradas por los
caprichos de la propia máquina, pero en todo caso representaban fluctuaciones reales
en el número de bolas contenidas en A.
-14-
Estas pequeñas y caprichosas fluctuaciones constituyen modelos de la
variabilidad de la naturaleza y es todo cuanto se interpone entre los seres vivos y la
muerte térmica, a la cual parece condenar irremisiblemente la segunda ley de la
termodinámica. La teoría de la probabilidad ha resuelto el conflicto aparente entre las
concepciones cinética y termodinámica de la naturaleza, mostrando que no existe
ninguna contradicción entre ellas, siempre que se interprete flexiblemente la segunda
ley de la termodinámica. Y es que el desarrollo de la teoría de la probabilidad en el
siglo XX ha cambiado de tal modo las actitudes humanas que se ha dejado de pensar
que las leyes de la naturaleza pueden construirse de modo rígido o dogmático [Kac 19].
1«2. Necesidad de seguridad en sistemas informáticos.
-r En los primeros años de la informatización, con un funcionamiento basado
en la monoprogramación, con los dispositivos de entrada-salida, próximos al
computador, y memorias externas exclusivas para cada usuario, la seguridad referente
a los datos manejados, se resolvía con procedimientos manuales relativos a la
operación del sistema. Posteriormente, con la aparición de los sistemas operativos, el
computador se usa de forma diferente. La multiprogramación, la memoria externa
compartida por usuarios y la posibilidad de acceso al computador desde lugares
remotos mediante terminales, gracias a las telecomunicaciones, ha incrementado la
necesidad de métodos de seguridad de los datos.
El uso de herramientas normalizadas de teleinformática así como los
avances tecnológicos en todos los campos de la Informática y las telecomunicaciones
amplió la cantidad de servicios a otorgar y aumentó la calidad de los mismos. Todo
ello puso de evidencia preocupaciones que previamente habían sido relegadas a un
segundo plano. Cosas tales como : seguridad de la información en los ficheros y bases
de datos, y en su transmisión a través de redes de comunicación, discrección,
identificación, etc., son distintos conceptos que hoy hay que tener muy en cuenta. En
-15-
definitiva garantizar el uso adecuado por las personas pertinentes de esa información,
es el problema que se plantea.
Si el mercado de las telecomunicaciones se ha abierto a las técnicas
informáticas, también las telecomunicaciones se han puesto al servicio de la
informática. De este modo, se han creado nuevas redes públicas de transmisión de
datos para las aplicaciones informáticas existentes asegurándoles una calidad de
servicio cuando menos equivalente a las medias convencionales y a menor coste.
El aumento en potencia y la normalización de los instrumentos empleados
en el momento presente en teleinformática, modifican ciertos "equilibrios"
económicos, hasta el punto de que las técnicas utilizadas poi ias nuevas redes de
transmisión de datos pueden "transportar", a menor coste, una gran parte de las
informaciones actualmente enviadas por correo. Sin embargo, es necesario completar
el arsenal teleinformático para ofrecer en ciertos puntos características equivalentes
a las del correo. Una carta se caracteriza por un sobre, un sello y un remite. Dicha
carta puede, cuando se necesite, ser enviada, o certificada con acuse de recibo, para
probar que la carta ha sido recibida de hecho por su destinatario. Pues bien, todas
estas características deben encontrar un equivalente electrónico mejorado en las
nuevas redes de transmisión de datos, si se quiere que estas jueguen plenamente su
papel transcendente en la sociedad postindustrial [Guillou 16] [Sugarman 41] [EDP
ANALYZER 7]. Lo mismo vale decir para transacciones monetarias, por intermedio de
un banco entre clientes, con justificante de dichas transacciones, incluso si se
efectúan por teléfono [Logpre 26].
También deben modificarse otras características más sutiles. Deben
crearse e integrarse en estos sistemas nuevas medidas, con el fin de garantizar la
seguridad y privacidad de estos sistemas tanto en sus transmisiones de información
como en el almacenamiento de las informaciones en ficheros y bases de datos. La
-16-
transferencia electrónica de fondos, necesita imperativamente que la integridad de las
comunicaciones sea total. Los canales de transmisión por satélite no pueden utilizarse
para transmitir informaciones con valor mercantil, más que si está asegurada
razonablemente la discrección de las comunicaciones [Govaerts 14] [Lennon 24].
Últimamente, crece en todo el mundo la incidencia de hechos delictivos, y
fraudes [Desmedt 5] en los cuales, el arma es el computador. Especialistas
organizados, ladrones solitarios y hasta jóvenes genios, causan perjuicio a muchas
empresas, provocando quiebras o desvelando secretos. Las personas con grandes
conocimientos en informática, descubren fácilmente los secretos del proceso de
funcionamiento de cualquier sistema.
-r' Resulta curioso testimoniar que, en Estados Unidos, el país del mundo con
más computadores, la mayor parte de los delitos cometidos usando el computador
como "herramienta" es causada por personas "honestas" que, simplemente por desafío,
buscan quebrar o interceptar el sistema. Muchas personas, después de violar los
sistemas, se enorgullecen en público y confiesan que no lograron ningún lucro en ello.
Otros tipos de técnicos familiarizados con los computadores, lo utilizan para robar
pequeñas cantidades de cuentas corrientes. Es el caso de cajeros que jamás abonan los
"céntimos" en las cuentas de clientes. Nadie reclama y, al final, el cajero obtiene una
gran suma. Actualmente en Estados Unidos, ya hay bandas organizadas que compran
computadores para emplearlos en actos criminales. Ciertas bandas buscan listas donde
haya nombres de personas importantes para descubrir sus direcciones, luego, escogen
las mejores familias para asaltarlas.
Un cajero de banco, puede usar el computador de su institución para
transferir dinero. El empleado tiene su propio código para operar el sistema. El cajero,
al recibir las facturas y cuentas, altera en el computador la fecha de los vencimientos.
En el caso de que su cliente pague su cuenta el día 5, lo modifica para que aparezca
-17-
esa cuenta el día 10. En esos días, el empleado utiliza el dinero o recibe los intereses y
luego repone su valor. Se dio el caso de un cajero en Estados Unidos, que en 3 años,
ganó con este método tres millones de dólares.
También se producen problemas cuando un empleado es despedido de una
empresa que usa computadores, ya que puede copiar ficheros o programas y provocar
daños.
Con el incremento de los computadores personales, los jóvenes
experimentan con palabras, hasta entrar en un sistema por linea telefónica y alterar u
obtener información. No pasa un mes sin que en la prensa aparezca, con carácter
sensacionalista, la noticia de un joven o un grupo de jóvenes cof''su(s) computadores)
personal(es), se ha(n) introducido en los sistemas informáticos de algún organismo
gubernamental norteamericano, como puede ser la NASA o el Pentágono.
Recientemente, "siete magníficos" de la informática, en edad escolar,
fueron detenidos en una localidad del Estado de Nueva Jersey, en Estados Unidos, bajo
la acusación de robo y conspiración. Los siete muchachos de entre 14 y 18 años, habfan
cometido la osadía de "introducirse", mediante el manejo de sus computadores
domésticos, en diversos organismos públicos y privados: el Pentágono, la compañía
telefónica ITT, la Intelsat (compañía de satélites para la comunicación), etc. Los
jóvenes "ladrones" de South Plainfield, sólo se conocían entre sí a través del cordón
umbilical de sus minicomputadores, que habían sido regalo a sus buenas notas.
Todo esto a puesto una vez más en evidencia la fragilidad de los sistemas
modernos en cuanto a seguridad comercial, bancaria o de Defensa.
En estos momentos, según cifras no comprobadas, pero sí estimadas,
pululan, a lo largo y ancho de Estados Unidos, unos 25.000 "piratas electrónicos" o
-18 -
"hackers" en lenguaje de la calle. El delito, relativamente nuevo, comienza a
extenderse como una mancha de aceite y muchos de los Estados de la Unión -40 hasta
el presente- han aprobado leyes especiales contra esta plaga. El FBI, por su parte,
dispone de unos trescientos especialistas en la persecución de estos nuevos piratas.
Todos estos elementos, unidos a los peligros derivados de algún error en el
sistema, algún accidente u otro tipo de incidencia, implican la necesidad de la
protección del sistema informático.
Por otro lado, el crecimiento de los sistemas informáticos es tal, que su
utilización es primordial para casos tan dispares como operaciones policiales, tráfico
aéreo, sistemas bancarios, aplicaciones comerciales, defensa'f' un sinfín de otras
aplicaciones en donde se ve la necesidad de proteger la información frente a la
introducción de errores en las mismas y también ante el uso desautorizado de esa
información.
Pero no hay que caer en la trampa de que todo debe ser criptografiado.
Como bien señala Fisher [Fisher 10], la criptografía a pesar de ser un potente método
de protección de las informaciones no es adecuada en todas las situaciones. Saber
cuando es o no necesaria, es otra de las funciones de los responsables de los sistemas
informáticos que con alta frecuencia se pasa por alto.
1.3. Amenaza a »« seguridad v privacidad de la información.
Se define la seguridad de la información como la protección de dicha
información ante accesos a la misma, accidentales o intencionados, por personas no
autorizadas que eventualmente pudieran permitirle su modificación o destrucción.
-19 -
Por su parte, la privacidad de las informaciones concierne a los derechos
que tienen las personas y las organizaciones a determinar cuándo, cómo y en qué
medida, la información acerca de ellos se puede emplear.
De entre los distintos tipos de hechos que pueden afectar a la seguridad o
privacidad de los sistemas de información, como son: calamidades naturales, errores
"hard-software", errores por descuido o incompetencia humana en el manejo y
explotación de dichas informaciones, etc.; en lo que aquí concierne, se va a tratar
únicamente de acciones intencionadas. Con este "titulo", se incluyen: robos, fraudes,
desfalcos, acceso no autorizado a ficheros o bases de datos, invasión de la privacidad,
etc. Estas acciones pueden realizarse de las dos formas siguientes: , .i
a) Pasiva, como la intervención en lineas de teleproceso, o mediante
captación electromagnética, o por recogida de material de pruebas, o
inservible; cuyas denominaciones en terminología inglesa son,
respectivamente: "wiretapping", "electromagnetic pick-up", y "waste
basket".
b) Activa. Esta forma de ataque a la seguridad o privacidad de la
información también puede producirse de varias maneras, entre las que
caben destacar: El uso de acceso legitimo al sistema para obtener
información a la que no se tiene derecho y, o, autorización. Acceso al
sistema de forma enmascarada; o por medios electrónicos. O cuando el
usuario legitimo está inactivo pero todavía mantiene "vivo" el canal de
comunicación. Cuyas denominaciones, en terminología inglesa, son
respectivamente: "browsing", "masquerading", "piggybacking", y
"between lines". También se pueden considerar en este apartado
procedimientos más burdos como robos de ficheros, chantajes, etc.
-20 -
Todas estas situaciones pueden producir diversos efectos en la información
como son: la modificación, destrucción o divulgación de la misma. Las consecuencias
dependen de factores tales como: La intencionalidad de la causa. La importancia de la
información afectada. La posibilidad de su recuperación, etc. Con el fin de conseguir
un grado aceptable, y a poder ser óptimo, de seguridad y privacidad del sistema
informático, además de establecer unos controles previos de carácter organizativo,
que aquí no conciernen, deberán tomarse medidas a tres niveles:
1. Prevención o protección, minimizando la probabilidad de que se
produzcan errores o intromisiones indeseables. Para ello, es
conveniente disponer de controles de acceso al sistema mediante
identificadores, llaves, etc. Y, sobre todo, protegiendo los datos
"enmascarándolos" mediante tánicas criptográficas que es justamente
el "leiv motiv" de este trabajo.
2. Detección, reduciendo a cero en lo posible los daños ocasionados, en el
supuesto de que se haya producido un fallo. En este sentido, resulta
conveniente establecer un registro de accesos, errores y un análisis de
datos.
3. Recuperación, minimizando el tiempo para volver a la situación previa
al error. Resulta muy efectivo al respecto, el tener duplicaciones de
los ficheros, y tener preparados planes de recuperación, etc.
Obviamente, la seguridad aplicada a un sistema Informático, dependerá de
las características del sistema en cuestión. El intentar conseguir una seguridad total,
será prácticamente imposible, pues supondría un costo muy elevado y una degradación
en las abtividades del sistema. Por lo tanto, habrá de contar con la existencia de unas
ciertas probabilidades de riesgos íntimamente ligadas a las medidas de seguridad
- 2 1 -
adoptadas. Sin embargo, conviene tener en cuenta una serie de factores que inciden en
la seguridad como son:
a) La existencia de un entorno hostil, en cuyo caso, seria aconsejable
incrementar las medidas precautorias.
b) La necesidad de funcionamiento continuo; es decir, si el sistema
admite las interrupciones o requiere una recuperación inmediata.
c) La privacidad de la información. Esto es, si los datos y ficheros
manejados contienen o no información confidencial.
d) La clase de utilización; es decir, si se trata de tiempo real, trabajo en
"batch", si existen bases de datos, etc.
Así, en sistemas militares o policiales, se precisa un alto nivel de seguridad
y se requieren medidas de coste elevado para resguardarse de los intrusos. Por otro
lado, algunos sistemas comerciales, pueden dedicar un mínimo esfuerzo a la seguridad,
especialmente si no hay riesgo de desfalcos.
El coste de las medidas de seguridad, también depende de las personas ante
las cuales se intenta la protección. Las personas pueden obtener información
desautorizada de las siguientes formas:
1. Accidentalmente, cuando una persona descubre alguna información de
forma imprevista en un terminal, en un listado, etc.
'" 2. Casualmente, cuando una persona hábil, aprovecha sus conocimientos
para descubrir ciertos datos en algún descuido.
22
3. Deliberadamente:
a) Por personas que no son criminales profesionales, cuando
premeditadamente intentan invadir el sistema para obtener
beneficios materiales. Se precisará conocimiento técnico y equipo
técnico.
b) Por criminales bien equipados, empleados para desfalcar, expertos
altamente remunerados, ladrones especializados, etc.
c) Por medio de organizaciones específicas, con grandes recursos,
como agencias de espionaje o militares que intentan obtener
información secreta, etc.
Para apreciar el valor de la información almacenada, es claro que un
enemigo potencial no gastará más dinero para violar el sistema informático que el que
gastaría para adquirir la información por otro medio, o en reponer los daños causados
por el uso de esa información en su contra. Parece razonable pensar que, en general,
no más del cinco por ciento del gasto de mecanización deberá ser gastado en
seguridad; en cuanto al tiempo de respuesta y al procesamiento, las técnicas de
seguridad no deberán elevarlo más allá del doble; es decir, del diez por ciento.
1.4. Implicaciones sociales y legales.
La importancia creciente del uso de la informática en todos los órdenes de
la vida hace aparecer riesgos para las libertades individuales que son el fundamento
mismo de las sociedades occidentales entre las cuales se enmarca la sociedad
española. En consecuencia, las garantías brindadas a los ciudadanos provienen de
nuevas disposiciones legales, tal y como se expresan por ejemplo, en el artículo 18
puntos 3 y 4 de la Constitución Española en vigor. El primero de los cuales garantiza el
secreto de las comunicaciones, y el segundo limita el uso de la informática para
-23-
garantizar el honor y la libertad personal. Sin embargo, estas disposiciones para que
tengan total efectividad deben completarse con nuevos dispositivos técnicos.
Ciertamente, ficheros manuales han existido desde hace mucho tiempo.
Pero el uso de los computadores en el manejo y recuperación de la información
contenida en ficheros y bases de datos automatizados, han transformado la naturaleza
de los problemas. En los EE.UU., la evolución del problema de la protección de la vida
privada ha sido analizada bastante exhaustivamente, en particular por el profesor
Weslin, sus conclusiones, que se exponen a continuación, sirven "mutatis mutandis"
para la problemática existente en España.
En primer lugar, debe producirse un período de tafia de conciencia del
problema. La comprobación de la existencia de abusos en el uso de los computadores,
entraña una desconfianza generalizada del gran público. En particular esto se
cristaliza en la puesta en marcha de grandes bases de datos nacionales y su eventual
interconexión.
A continuación, se pasa a una fase de estudio en comisiones "ad hoc". En
esta fase se encargan estudios y encuestas a diversos organismos con el fin de precisar
los aspectos sociológicos y políticos de estas cuestiones. Los aspectos técnicos se
confian a grupos de expertos. Gracias a estas acciones esclarecedoras, comisiones
gubernamentales y parlamentarias llegan a proposiciones que tratan de reducir los
abusos identificados en el uso de los instrumentos informáticos.
Por último, en una tercera etapa, las proposiciones y conclusiones de los
informes de las comisiones son paulatinamente transformados en leyes. Esta fase que,
en los EE.UU. no está más que en los inicios, en España está inédita. Además deberán
tomarse'otras medidas adicionales para asegurar las libertades individuales.
-24-
Estas leyes entrañan restricciones técnicas tanto en la concepción de
nuevos sistemas como en la adaptación de los antiguos. Son justamente estas
restricciones las que explican la circunspección en el establecimiento de nuevas leyes
y la progresividad de su entrada en vigor, en aquellos paises en donde se hace, lo que
lamentablemente hasta la fecha no ocurre en España.
Por si esto no fuera suficiente, existen otros problemas legales al
considerar muchos organismos e instituciones oficiales en los distintos paises, la
criptografía como un arma de guerra. Un incidente ocurrido en 1.977 en los EE.UU. es
revelador al respecto. Allí y entonces, el editor del IEEE, prestigioso conjunto de
publicaciones de la más que famosa asociación norteamericana de ingenieros
eléctricos y electrónicos, recibió una misteriosa carta en la qu^'se le informaba a la
dirección del IEEE de que ciertos miembros, teóricos de la información, se arriesgaban
por sus actividades pasadas, presentes y futuras a infringir los reglamentos y las leyes
relativas al tráfico de armas, en particular el "International Traffic in Arms
Regulations" y el "Arms Export Control Act". Esta carta había partido de un miembro
del IEEE que la había escrito a título personal y eso sin ninguna relación con el hecho
de que era empleado de la Agencia Nacional de Seguridad (NSA). La carta fué
comunicada a los miembros del IEEE que preparaban un "symposium" sobre la Teoría
de la Información a celebrar el 10 de octubre de ese mismo año en Ithaca (NY).
Los principales conferenciantes de la sesión consagrada a criptografía
tomaron todas las precauciones posibles y no comunicaron los textos de sus
conferencias. Nadie sabía exactamente donde se detenía la libertad de investigación y
de publicación en el dominio de la Teoría de la Información. Nueve días después del
congreso de Ithaca, el New York Times publicaba una declaración de la National
Science Foundation (NSF), organismo encargado de proporcionar recursos financieros y
apoyo á la investigación en EE.UU. en la que acusaba al NSA de "Sytematic
bureaucratic snippin"; es decir, tirador de élite emboscado sistemático y burocrático.
-25-
contra las personas implicadas en la investigación sobre criptografía. Finalmente, el
13 de abril del año siguiente 1.978, una comisión del senado, concretamente el "Senate
select committee on inteligence", declara que no se haría ninguna demanda judicial ni
se tomaría ningún tipo de medidas coactivas al respecto y que la carta había sido
enviada sin la aprobación de NSA. Sin embargo, esta declaración no aportaba ninguna
luz sobre el problema de fondo.
En resumen, el problema en toda su crudeza es el siguiente: ¿Debe, en
nombre de la seguridad del estado, ponerse trabas al desarrollo, puesta a punto y
utilización de dispositivos que garanticen la seguridad de las informaciones?. Estos
dispositivos, vitales para proteger los ficheros nominativos y personalizar las
responsabilidades, son por igual necesarios en el desarrollo de qfievos servicios sobre
redes públicas de transmisión de datos, así como en el control eficaz del acceso a la
información y a los recursos. En el bien entendido de que conviene señalar la
diferencia, por una parte, entre los problemas de normalización de algoritmos y
métodos de cifrado, y, por otra parte, de los problemas de normalización de
procedimientos e implementación de los mismos en los protocolos de
telecomunicación. La certificación, la identificación y la firma, son problemas de
procedimiento y legislación.
Si códigos "inviolables" ven la luz del día y son utilizados libremente, se
modificaría seriamente la actividad principal de las agencias de información, léase
espionaje.
En resumen, además de los problemas reales a que da lugar, la criptografía
plantea un problema social fundamental al plantear un serio conflicto entre la
necesaria libertad académica y de investigación científica, y los imperativos de
defensa'nacional y seguridad del estado.
- 2 6 -
1.5. Propósito del trabajo.
Este trabajo, tiene como premisa básica el principio de simplicidad
explicativa, según la denominación cartesiana, que considera anticientífico recurrir a
explicaciones complicadas cuando es posible apoyarse en principios más elementales.
O, dicho de otro modo, tiene en cuenta la navaja de Occam, también denominada
"Principio de parsimonia", porque "rasura" una teoría hasta sus elementos
fundamentales, lo que significa que no deben postularse más causas que las necesarias
para explicar los fenómenos observados.
Además, teniendo en cuenta las consideraciones que preceden, se presenta
un sistema criptográfico que cumple las características siguient^:
En primer lugar, se establece una metodología original basada en técnicas
de inteligencia artificial, que lo hacen sumamente adaptativo, modular y robusto. De
este modo, se consigue su facilidad de modificación cuando se requiera, su capacidad
incremental cuando ello fuera necesario, y su versatilidad para implementarlo en
distintos sistemas de información.
En segundo lugar, además de cumplir con todos los requisitos que Shannon
[Shannon 40] estableció para un buen sistema de cifrado, se basa, aunque sólo sea
laxamente, en la noción de función fácilmente invertible por oposición a los
tradicionales que son de función difícilmente invertible. Dejando toda la potencia del
secreto a la pura clave, con lo que lo convierte en un método de cifrado transparente.
O, por ser más precisos, a la semilla de la clave.
Finalmente, tanto su arquitectura como sus fundamentos técnicos están
tomados de la metodología en experimentación para la construcción de sistemas
expertos. Aunque, en puridad, este sistema debería denominarse "antiexperto" por la
-27-
casi segura imposibilidad de violar sus informaciones cifradas al menos a un coste
aceptable.
Obviamente, si el sistema propuesto presenta, tal y como es de esperar,
todas las características acabadas de enunciar, se construirá tanto por "software", lo
que está garantizado, como, y este punto también es importantísimo, por "hardware"
obteniendo la correspondiente patente.
Sin embargo, hay que subrayar que, en paridad, éste no es un trabajo en o
sobre criptografía, sino en inteligencia artificial. El hecho de aplicar los principios de
la lA para resolver un problema de criptografía, se debe única y exclusivamente a
consideraciones de oportunidad, utilidad y, hasta cierto punto, nefésidad.
28
"Nada hay tan oculto
que no acabe por saberse"
[Biblia]
CAPITULO 2. ESTADO DE LA CUESTIÓN.
2.1. Antecedentes y métodos afines a la criptografía.
Desde la remota antigüedad, en ciertas ocasiones muchas veces más de las
que fueran de desear, los hombres intentaron ocultar sus inform'Íclones, para ponerlas
al abrigo de "indiscretas miradas indeseables". Al principio, se usaron métodos
estenográficos, es decir, aquellos que ocultan los símbolos, en los que el emperador
romano Claudio, según cuentan sus historiadores, era un consumado experto. Después,
usando métodos criptográficos; o sea, aquellos cuya pretensión era ocultar el
significado. Finalmente, se usan, sobre todo en tareas de espionaje militar, métodos
mixtos en los que al tiempo se pretende "enmascarar" los símbolos y el significado del
mensaje.
Dentro de estos últimos los más conocidos por su popularización que de
ellos hizo en sus novelas Forsyth [Forsyth 11], está el denominado "One-time pad"
[Kafka 20] que cuando se aplica a cada palabra de un mensaje, no deja pautas ni
repeticiones por lo que se considera inviolable. Este procedimiento, muy laborioso para
enviar mensajes clandestinos, consiste, en escribir de forma clara y lo más breve
posible, el mensaje. Después, dicho mensaje se pone en clave, aunque continua siendo
una serie de signos. A continuación, el mensaje cifrado es transmitido en morse a un
magnetófono, donde se graba en la cinta a una velocidad extraordinaria. De este modo,
los puntos y rayas que constituyen el mensaje cifrado, quedan comprimidos y se
- 2 9 -
confunden en un chirrido único que dura sólo unos segundos que es justamente lo que se
transmite. Este método, a parte de la seguridad del propio mensaje, busca conseguir la
imposibilidad de ubicar a quién lo envía, salvaguardando su actividad.
2.2. Criptografía.
La criptografía [Meyer 30] es la mejor técnica y probablemente la única
efectiva, para proteger las informaciones confidenciales durante su almacenamiento y
transmisión a través de las líneas de comunicación de accesos indeseables a la misma
[Widman 44].
El término criptografía proviene de los vocablos -jfriegos "cripto", que
significa secreto, y "grafía", que quiere decir escritura. Es pues una escritura secreta,
y consiste en que, partiendo de un mensaje original entendible, se obtiene otro no
entendible para un supuesto interceptor; sin embargo, el mensaje resulta comprensible
para el destinatario que conoce las reglas de transformación. El proceso de conversión
del mensaje original en el otro, incomprensible para el interceptor, se llama cifrado o
código y el resultado producido, mensaje cifrado o criptograma. El proceso inverso de
obtención del mensaje original a partir del mensaje cifrado, se llama descifrado, y el
conjunto de reglas que permiten estos procesos, se llama clave o llave.
Si se designa por T el texto original o claro, por C el criptograma o texto
final o cifrado, y por F la función de cifrado que representa el procedimiento de
conversión del primero en el segundo, entonces se tiene que:
C = F{T)
Análogamente, si D es la función de descifrado, deberá cumplirse:
30
D(0 = D (F (D) = T
Así pues, tiene que haber una relación biunívoca entre T y C mediante la
función F y entre C y T, mediante la función D.
La diferencia entre codificación y cifrado consiste en que, mientras una
codificación sustituye una palabra o frase codificada por una palabra o frase del texto
original, un sistema de cifrado actúa sobre caracteres antes que sobre palabras o
frases. A su vez, los sistemas de cifrado computacional se subdividen en: Sistemas de
cifrado en bloque, que tratan siempre con bloques completos de caracteres, y Sistemas
de flujo, según los cuales se criptografía una cadena de caracteres uno a uno.
Otra variante importante de los sistemas de cifrado, es la de los sistemas
de algoritmo o clave secreta, frente a los de clave pública. El algoritmo, llave o clave
es, como acaba de decirse, el conjunto de reglas que convierten un texto claro en uno
cifrado. Aunque pudiera parecer a primera vista que los sistemas de clave oculta son
más seguros, la realidad no es así [EDP ANALYZER 7].
En primer lugar, porque los algoritmos públicos que han soportado ataques
de gentes interesadas en "romperlos" son más dignos de confianza que los secretos que
no están tan contrastados.
En segundo lugar, lo que un intruso astuto espera conseguir es una solución
"rápida" al descifrado explotanto alguna "flaqueza" del algoritmo. Encontrar una
solución "rápida" para un algoritmo verdaderamente "robusto" es esencialmente una
genialidad. En los algoritmos públicos cualquier debilidad de los mismos que conduzca
a una solución rápida inmediatamente se hace pública. Pero si una solución de este
-31 -
tipo no puede encontrarse, la única alternativa que queda es la búsqueda exhaustiva.
Para lo cual, el intruso debe tener una parte del texto cifrado que se sabe es el
correspondiente a un texto claro que conoce. Además, debe suponerse que conoce el
algoritmo aunque sea secreto. Entonces prueba cada posible llave para intentar
transformar el texto claro en el cifrado, o viceversa, hasta que encuentre la llave
correcta.
Los sistemas de llave pública, se diseñan para proporcionar protección
frente al supuesto de Tuchman [Tuchman 42] de que los intrusos:
a) Saben todo acerca del algoritmo.
b) Tienen un cómplice que puede insertar cualquier cantidad de texto
claro elegido dentro del mensaje.
c) Tienen grandes computadores a su disposición para efectuar los
análisis.
Actualmente, se están estudiando [Bennett 1] métodos de codificar la
información en forma de estados de "quantum" no ortogonales, lo que da lugar a usar
el principio de incertidumbre de Heisenberg [Heisenberg 17] para desarrollar una
manera de criptografiar inalcanzable con los métodos anteriores.
Sin embargo, dadas sus características específicas y, sobre todo, su
necesidad de brevedad, estos procedimientos son inadecuados para usarlos en la normal
transmisión de informaciones. Además, en una de sus fases, estos métodos también
usan la criptografía. Por estas razones, los métodos actualmente usados son los
criptográficos que son los que más ampliamente se van a considerar a continuación.
Pero antes se van a hacer algunas consideraciones que muestran cómo, de forma
natural,'hubo que abocar a estos métodos.
-32 -
En efecto, cada vez es más frecuente el uso de computadores para tratar
información confidencial, de ahí la necesidad de procedimientos para proteger esta
información contra accesos no autorizados a la misma.
En principio, esta necesidad se veía cumplimentada por la existencia de
llaves que los fabricantes incorporaban en la definición de los ficheros y que impedían
el acceso a estos ficheros, de los que no estuvieran en posesión de esta llave de
acceso. Sin embargo, este procedimiento presenta dos graves inconvenientes: El
primero, y fundamental, es que la información de la que confidencial no es una
excepción, no es algo estático que está inamovible sobre un dispositivo de
almacenamiento físico sino que, al contrario, es algo dinámico, tanto en su contenido,
debido a las distintas modificaciones que sufre en el transcurso d^l tiempo, como en el
paso a través de los distintos canales por los cuales se transmite. Este carácter
dinámico de la información, hace que la privacidad de la misma se vea,sometida a un
sinnúmero de riesgos, dado que su transmisión se hace sin otra codificación que la
habitual en el uso de los computadores. El segundo inconveniente, es que incluso para
la información, salvaguardada mediante ficheros con llaves que "teóricamente" les dan
un óptimo grado de privacidad, en la práctica esto no es así, ni mucho menos. En
efecto, cualquiera que conozca un poco a fondo los entresijos de los sistem.as
operativos de los computadores actuales, sabe que existen programas privilegiados que
tienen acceso a cualquier fichero sin que importe, en absoluto, su carácter de privado
y, o, su definición de llaves de acceso.
Esto hizo que, habida cuenta de la imposibilidad de emplear métodos
estenográficos, hubiera necesidad y, además, conveniencia de usar métodos
criptográficos.
La criptogn^afía ha jugado un importante papel en la génesis de la teoría de
la información. El estudio de la comprensión de señales de televisión, y de la
-33-
redundancia de los lenguajes en relación con la criptografía ha conducido a Shannon
[Shannon 39,40] a establecer las bases de la teoría de la información y a precisar la
introducción de la redundancia artificial para detectar y corregir los errores de
transmisión en presencia de ruido.
También la criptografía ha jugado un transcendental papel én el desarrollo
de los ancestros de los computadores actuales. Pues durante la Segunda Guerra
Mundial la máquina Colossus ha servido para descifrar los mensajes que procedían del
cifrado de las máquinas alemanas Enigma [Randell 36].
La ciencia criptográfica, estudia el cifrado y descifrado de mensajes. El
criptoanalisis consiste en el análisis de la información cifrará para conseguir el
mensaje original sin disponer de la clave.
En la práctica de la transmisión de informaciones, estas pueden ser
cifradas antes de la transmisión y descifradas después de ella para prevenir el
descubrimiento de información confidencial. Igualmente, los ficheros de datos pueden
ser almacenados de una forma cifrada para suministrar máxima protección ante una
infiltración accidental o deliberada.
Conviene señalar que, de igual manera que incluso el más simple método de
cifrado, puede prevenir contra un descubrimiento accidental, una sofisticada técnica
criptográfica, puede, en algunos casos, ser inútil ante un criptoanalista profesional.
Sin embargo, los problemas que aparecen en el proceso de almacenamiento
y transmisión de grandes cantidades de información, haciendo uso de la
teleinformática son de naturaleza mucho más compleja. En este caso, estas
informaciones van a estar almacenadas "per se" o por necesidad de manejo, en algún
dispositivo durante un largo período de tiempo. Esto hace que puedan ser sometidas a
-34-
todo tipo de análisis para su interpretación. Como el dispositivo al alcance de estos
analistas intrusos es el computador, con su rapidez y alta capacidad de proceso de la
información, va a permitirles hacer posible un análisis exhaustivo, usando técnicas
estadísticas, de las informaciones en un relativamente corto período de tiempo. Por
consiguiente, como los factores aquí puestos en juego son, con mucho, diferentes a los
implicados en la "criptografía de comunicación" parece conveniente emplear nuevas
técnicas para alcanzar lo que se conoce con el nombre de "criptografía
computacional".
En cualquier caso, estas técnicas deben cumplir los criterios y medidas que
Shannon [Shannon 40] considera deben cumplir los sistemas secretos de comunicación
perfectos. Estos criterios, que Shannon considera la condición necesaria, incluso
suficiente, para un cifrado de comunicación perfecto, son los siguiente:
1. La cantidad de seguridad necesaria debe decidir la cantidad de trabajo
empleado en el cifrado y descifrado.
2. La clave debe ser lo más corta y sencilla posible.
3. Las operaciones de cifrado y descifrado deben ser tan sencillas como
sea posible.
4. Los errores en el cifrado no deben propagarse al resto del texto y
tampoco debe originar una pérdida de información.
5. El tamaño del mensaje cifrado no debe ser mayor que el tamaño del
mensaje original.
-35-
El cifrado y descifrado de mensajes puede ser realizado por programas de
computador o por dispositivos "hardware", dependiendo de las necesidades de la
instalación y del usuario. En el caso de transmisión de pocos datos, el cifrado y
descifrado por "software" es suficiente.
2.3. Métodos tradicionales.
Existen dos métodos criptográficos fundamentales que son la Transposición
y la Sustitución y, un tercer método, Híbrido.
2.3.1. Transposición.
Consiste en una reagrupación de los caracteres que constituyen el texto del
mensaje, de una forma establecida. Es decir, los caracteres cambian su posición pero
no su identidad. Es decir, los caracteres del mensaje original se toman fuera de su
orden en el texto y son reubicados de acuerdo con algún patrón geométrico definido, o
camino topológico, convenido a "priori" por los interlocutores válidos. Recibe el
nombre de transposición "monoliteral" cuando sólo se transpone una letra simple del
texto claro y se denomina "poliliteral", cuando se efectúa sobre grupos de caracteres
del texto claro.
Una transposición elemental consiste en escribir el texto completo pero en
orden inverso y separado en bloques de cinco caracteres, así por ejemplo:
TEXTO : ESTO ES UN MENSAJE
TEXTO CIFRADO : EJASN EMNUS EOTSE
Otra variante sería transmitir cada palabra en orden inverso, así, para el
texto anterior:
36-
TEXTO CIFRADO : OTSE SE NU EJASNEM
Dentro de esta categoría de cifrado por transposición existen algunas
variantes más sofisticadas que van a considerarse a continuación.
2.3.1.1. Sistemas de Cifrado por Líneas.
Se dice que fue utilizado en la guerra civil americana para cifrar mensajes.
Es un método simple y puede ser combinado con otros sistemas. Existen dos versiones,
en la primera versión, la mitad del texto es escrita en una línea, y la otra mitad,
debajo. Así, .^'
TEXTO : ESTE ES EL MENSAJE X
PASO 1 : ESTEESEL
MENSAJEX
A continuación, se escogen, de arriba abajo, y de izquierda a derecha,
bloques de cinco carac teres , en este caso,
TEXTO CIFRADO : EMSET NESEA SJEEL X
En la segunda versión, el texto se forma escribiendo el mensaje por
columnas de izquierda a derecha, así:
PASO 1 : ETEEMNAE
SESLESJX
Y; a partir de aquí, se escriben las dos filas en bloques de cinco carac teres :
37
TEXTO CIFRADO : ETEEM NAESE SLESJ X
Con este método no se necesita llave concreta. Sin embargo, los mensajes
son fáciles de descifrar, por lo que no suelen utilizarse.
2.3.1.2. Sistemas de Cifrado Matriciales.
Consisten en escribir el mensaje en una matriz, y a continuación,
seleccionar una matriz de forma diferente. Ejemplo:
TEXTO : ESTE ES EL MENSAJE X .^•
ESTE
ESEL
PASO 1:
MENS
AJEX
TEXTO CIFRADO : EEMA SSEJ TEÑE ELSX
Es decir, el PASO 1 se forma por filas, y el TEXTO CIFRADO por
columnas, también se puede hacer de otras formas. Al igual que el método por líneas,
es fácil de destacar .
2.3.1.3. Sistema de Cifrado por Columnas a partir de la llave.
Sea:
LLAVE = CLAVE
TEXTO = ESTE ES EL MENSAJE X
- 3 8 -
Primeramente, se determina el orden alfabético de los caracteres de la
llave: En este caso:
C = 2;L = 4;A = l ;V = 5 y E = 3.
A continuación, se escribe el texto en forma matricial, siendo el número de
columnas igual al número de caracteres de la llave.
ESTEE
SELME PASO 1:
NSAJE
X
I
A continuación, se escribirá el texto cifrado de acuerdo con la llave. Así,
en el ejemplo considerado, primero la tercera columna, ya que la primera letra de la
llave es la A (posición 3), a continuación la columna 1, ya que la segunda letra de la
llave es la C (posición 1), etc., quedando agrupados en bloques de cinco caracteres. En
consecuencia, se produce el siguiente
TEXTO CIFRADO : TLAES NXEEE SESEM J
Los métodos de transposición, se pueden aplicar varias veces, de forma
que, al texto ya cifrado se le puede aplicar una nueva transposición.
2.3.2. Sustitución.
Consiste en el reemplazamiento de los caracteres del texto por otros
caracteres. Los caracteres mantienen su posición, pero pierden su identidad. Un
ejemplo es el Sistema "Cesar", que consiste en sustituir cada letra por la letra
colocada tres lugares a la derecha en el alfabeto. Así:
39
ALFABETO : ABCDEFGHIJKLMNOPQRSTUVWXYZ
A. CIFRADO : DEFGHIJKLMNOPQRSTUVWXYZABC
Así, por ejemplo,
TEXTO : ESTO ES UNA PRUEBA
TEXTO CIFRADO : HVWRH VXQDS UXHED
Los tipos de sistemas de sustitución son:
2.3.2.1. Monoalfabéticos. -f
Cuando se utiliza un sólo alfabeto cifrado, como el del ejemplo anterior.
Una variante es el alfabeto inverso, que es un alfabeto recíproco, ya que aplicado 2
veces, devuelve el ca rác te r original:
ALFABETO : ABCDEFGHIJKLMNOPQRSTUVWXYZ
A. CIFRADO : LKJIHGFEDCBAZYXWVUTSRQPONM
Otra forma de obtener el alfabeto cifrado es a partir de una palabra clave,
y consta de t res fases:
1. Elección de la palabra clave. Ejemplo, CRIPTOGRAFÍA.
2. Eliminación de caracteres repetidos, en este caso quedaría:
CRIPTOGAF.
3. Inserción de las letras restantes del alfabeto, para este ejemplo sería:
CRIPTOGAFBDEHJKLMNQSUVWXYZ.
-40-
También puede sustituirse un carácter del texto original por dos o más
caracteres según una matriz de equivalencia, pero esto incrementa la longitud del
texto, por lo que no resulta conveniente.
2.3.2.2. Polialfabéticos.
Se utilizan múltiples alfabetos cifrados, como la Tabla del cifrado
"Vigenere", que se da en la figura 2.1. Se opera de la forma siguiente:
1. Se escoge una frase o palabra que se escribe encima del texto, siendo
la llave de igual longitud que el texto. Así por ejemplo:
LLAVE : CRIPTOGRAFIACRIP
TEXTO : ESTEESELMENSAJEX
2. Cada carácter es cifrado mediante la tabla Vigenere, donde la fila
representa la llave y la columna el texto. Así, el primer carácter de la
llave C y el primero del texto E, dan G, y así sucesivamente,
resultando:
TEXTO CIFRADO : GJBTXMKCMJVSCAMM
41
A B C D E F G H I J K L M N 0 P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R'ST U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Figura 2.1. TABLA VIGENERE.
A partir de este método, se pueden incorporar variaciones para ocultar aún
más la información.
2.3.2.3. Sustitución Digráfica.
En lugar de procesar carácter a carácter, la sustitución digráfica, sustituye
los caracteres de dos en dos. Así, el sistema "Playfair", utiliza una matriz basada en
una llave, como, por ejemplo:
O R D E N
AB C FG
H IJ K L M
P Q S T U
V W X Y Z
42
El proceso es como sigue:
1. Se divide el texto en grupos de dos caracteres, si los caracteres en
algún grupo son iguales, se separan y al primero de ellos se le añade un
carácter poco frecuente verbigracia W. Por ejemplo:
TEXTO : ESTO ES UN MENSAJE, quedaría:
PASO 1 : ES TO ES UN ME NS AJ EW
2. Se van sustituyendo cada par de caracteres, de forma que se pueden
dar tres casos: -g''
2.1. Que los dos caracteres estén en la misma fila de la matriz de
sustitución, en cuyo caso se sustituyen por los dos caracteres
inmediatamente siguientes
2.2. Si están en la misma columna, igualmente se sustituyen por los
siguientes en la columna de la matriz.
2.3. Si no están en la misma fila ni en la misma columna, se sustituyen
por los dos que forman un rectángulo con ellos en la matriz; es
decir, los caracteres Cij Ckl se sustituyen por los caracteres C¡i
Ckj de la matriz de sustitución. Por lo tanto, en este caso sería:
TEXTO CIFRADO : DTPED TZGLN DUBHR Y
-43-
2.3.3. Sistemas Híbridos.
Los dos métodos básicos de sustitución y transposición, pueden combinarse
dando lugar a unos sistemas más complejos. Así se obtiene, por ejemplo, el sistema
fraccionante, que consta de los siguientes pasos:
1. Sustitución bilateral: Transformando cada carácter en dos caracteres
según una matriz:
1 2 3 4 5
1 O R D E N
2 A B C F G ,^:
3 H IJ K L M
4 P Q S T U
5 V W X Y Z
Así, el TEXTO: ESTO ES UN MENSAJE, quedaría
1 4 4 1 1 4 4 1 3 1 1 4 2 3 1
4 3 4 1 4 3 5 5 5 4 5 3 1 2 4
2. Transposición: Estas dos filas, se transforman en una, concatenándolas
de izquierda a derecha y de arriba abajo, quedando:
1 4 4 1 1 4 . . . 4 5 3 1 2 4
3. Sustitución: Según la matriz precedente, y tomando los números de dos
en dos, quedaría:
TEXTO CIFRADO : EFE ... UHF
44-
2.4. Esquemas basados en el computador.
Las técnicas antes citadas pueden ser implementadas en un computador, sin
embargo, en computadores estándar, los códigos máquina usados, son fijos, y los datos
deben estar en forma utilizable por la máquina; por lo que los símbolos cifrados,
deberán ser escogidos entre los que la máquina es capaz de utilizar, y así, no puede ser
introducido cualquier símbolo cifrado.
Los lenguajes disponibles en el sistema, también imponen una restricción,
ya que los programas para la utilización de la criptografía deben estar codificados en
algún lenguaje estándar, pues en caso contrario, el coste d^'programación, sería
prohibitivo.
Los programas criptográficos deberán tener en cuenta las siguientes
consideraciones:
a) La cantidad de confidencialidad, decide el tiempo de computación y la
labor de programación.
b) Las llaves usadas deben ser simples de construcción, fáciles de
implementar y modificar en la máquina, y ocupar un espacio de
memoria mínimo.
c) Los programas de cifrado y descifrado con llave conocida, deben ser
tan simples como sea posible y con un tiempo de computación pequeño.
d) Las llaves deben destruir los parámetros estadísticos y, o, la
estructura natural del lenguaje dado.
45
e) Los errores en el criptograma no deben causar ambigüedad o
distorsiones en los datos originales de forma que los hagan inservibles.
f) La capacidad de almacenamiento del criptograma no debe incrementar
excesivamente la memoria.
g) El análisis del texto cifrado sin la llave, deberá ser un problema de tal
calibre que suponga un coste prohibitivo.
La aparición de los computadores dio origen a nuevos esquemas,
criptográficos. Entre los más importantes están los siguientes: ,^'
2.4.1. Esquemas Aritméticos.
Se basan en el hecho de que las operaciones aritméticas tienen la ventaja
de ser fáciles de implementar. Entre estos cabe destacar, respectivamente los dos
siguientes:
2.4.1.1. Suma y Resta.
Puesto que la adición y sustracción tienen operaciones inversas que son
respectivamente la sustracción y adición, y puesto que la información en la memoria
está representada de forma numérica, es posible utilizar estas operaciones para
codificar datos, de forma que el mensaje cifrado C sea:
C= M±K
- 4 6 -
Siendo M el mensaje y K la llave
El mensaje descifrado M será pues
M = C + K
2.4.1.2. Multiplicación y División.
Estas operaciones pueden ser utilizadas para transformar la información.
Sin embargo, la multiplicación incrementa el tamaño del mensaje. En el caso de la
división, además del divisor entero habrá que transmitir la parte fraccionaria de la
división o bien el resto.
El mensaje cifrado C será:
C = M*/K
Y el mensaje descifrado M, será:
M=C/*K
La clave K, también puede tener la forma p/q, donde p y q son enteros bien
definidos.
- 4 7 -
2.4.2. Esquemas Lógicos.
Se basan en la propiedad que presentan las operaciones lógicas, o exclusivo,
equivalencia y negación, de poseer operación inversa. En consecuencia, pueden ser
usadas para criptrografiar mensajes.
Así pues, en el caso del "o" exclusivo, se tiene que:
C = M e K
y
M = K e c
'4''
En el caso de la negación, es:
C = M
y
M = C
Y en el caso de equivalencia, se obtiene:
C = M = K
y
M = C = K
En el caso de un fichero M, se puede descomponer en dos componentes Cl y
C2 de las formas siguientes:
Fl . M V K = Cl
M V K = C2
Siendo v la operación "o" lógico, entonces es:
(M V K) A ( ¥ V K") = ((M V K) A M) V ((M v K) A K) =
-48-
= (M A K) V (íí A M) = M © K = Cl A C2
Siendo A la operación "y" lógico, entonces, se t iene que:
M = (Cl A C2) © K
F2. M-> K = C l
K -»• M = C2
Siendo -* la operación de implicación, se tiene que:
(M V K) A (ir V M) = M s K = Cl A C2,
Luego,
M = (Cl AC2) = K
F3. M A K = C l -I''
M A K = C2.
Entonces,
(M A K) V (M A K) = ((M A K) v M) A ((M A K) v K) =
= (M V M) A (K V M) A (M V K") A (K V K) =
= (K V M) A (M V K") = M = K = Cl V C2.
Luego,
M = (Cl V C2) = K
F4. M A K = C l
M V K = C2
Entonces,
(M V K) -» (M A K) = C2 -» C l .
Por lo t an to .
(M V K) V (M A K) = (M A K) V (M A K) = C2 - - C l .
Luego,
M = K = C 2 - » ' C 1 y M = (C2 ^ Cl) ^ K.
- 4 9 -
2.4.3. Esquemas Matriciales.
El mensaje M se descompone en elementos de una matriz rectangular de f
filas y c columnas, de forma que si e son los elementos de M, entonces e < fe,
rellenando de elementos redundantes en caso de e < fe.
A la matriz M, se le puede sumar o multiplicar una matriz clave K. En el
caso de la adición, el tamaño de K debe ser igual al de M, y se realizan menos
operaciones que en el producto.
Si se utiliza la multiplicación, K debe tener una única inversa, por lo que la
matriz K debe ser cuadrada no singular, de c x c elementos. En e|te caso, es preferible
elegir un gran número de filas f para M y un número pequeño de columnas c. En el caso
más simple, K puede ser escogida como una matriz ortogonal para que K"l sea su
transpuesta.
2.5. Técnicas avanzadas.
Existen dos tipos de algoritmos criptográficos: convencionales o de llave
secreta y públicos. Con un algoritmo criptográfico convencional, las llaves de cifrado
y descifrado, o bien son idénticas, o si son diferentes, son de tal forma que una de ellas
puede ser obtenida fácilmente a partir de la otra. En cambio, en un algoritmo de llave
pública, muchos usuarios pueden codificar un texto según una llave pública de cifrado,
pero sólo el usuario o destinatario específico del texto, o bien aquel que conoce la
llave de descifrado puede decodificar dicho texto, ya que la llave de descifrado no se
puede obtener a partir de la llave de cifrado.
-50-
A continuación, se van a presentar tres ejemplos de algoritmos
convencionales: El de la llave en memoria, el de llave infinita y el D.E.S.; Y dos
algoritmos de llave pública, el R.S.A. y el método de Merkle y Hellman.
2,5.1. Método de la Llave en Memoria.
Basada en la técnica desarrollada por Vernam, utiliza el "o" exclusivo.
Skatrud, por su parte, implemento un sistema que utiliza dos llaves de memoria y una
dirección de memoria. La sincronización se alcanza por medio de esta dirección que es
la primera información del texto. A partir de esta dirección, se localizan las
posiciones de memoria que se utilizarán para la codificación. El proceso de
modificación consta de dos partes: -|'
a) X = D © Ki
b) C = X e K2
Donde D, representa el dato o carácter a codificar. Ki es la primera llave
de memoria y K2 la segunda. A continuación, se modifica el carácter siguiente
utilizando otras llaves.
La seguridad del sistema depende de la cantidad de memoria usada, que a
su vez, depende de los mensajes.
Supóngase que se quieren transmitir mil mensajes de mil caracteres cada
uno, se necesitaran mil posiciones de memoria con objeto de no repetir ningún par de
direcciones de memoria en las operaciones de cifrado. Entonces, el mensaje número 1
se codificará así:
- 5 1 -
CARÁCTER DIRECCIÓN DE MEMORIA 1 DIRECCIÓN DE MEMORIA 2
1 1 1
2 2 2
1.000 1.000 1.000
A continuación, el mensaje 2, ya no usaría los mismos pares de direcciones
del mensaje 1 y se condificaría así:
CARÁCTER DIRECCIÓN DE MEMORIA 1 DIRECCIÓN DE MEMORIA 2
1 1 2 ,g.
2 2 3
1.000 1.000
Y así sucesivamente, hasta el mensaje 1.000, que sería codificado de la
forma:
CARÁCTER DIRECCIÓN DE MEMORIA 1 DIRECCIÓN DE MEMORIA 2
1 1 1.000
2 2 1
1.000 1.000 999
Por lo tanto , no se han repetido los pares de direcciones de memoria en la
codificación de los 1.000 mensajes.
52
Para poder realizar el descifrado, las posiciones de memoria utilizadas no
deben haber sufrido ningún cambio después de la codificación.
2.5.2. Método de Llave Infinita.
Mediante esta técnica, debida a Carrol y Me Lellan, se reduce la necesidad
del almacenamiento de las llaves de memoria que utiliza el método anterior. Está
basada en la generación de números aleatorios por el método de las congruencias que
está incorporado en cualquier computador moderno. Se procede de acuerdo con los
siguientes pasos;
1. Se divide el texto a codificar en bloques de n cacacteres.
2. Se escoge un valor inicial o semilla XQ, para generar una serie de n
números aleatorios.
3. Se genera una serie de números aleatorios xi, X2,..., xn a partir del XQ
y se efectúa el "o" exclusivo entre los caracteres cj del texto y los
números xj obtenidos para los n caracteres del bloque del texto.
4. Si no existen más bloques a transmitir se termina el proceso. En caso
contrario, se sigue en el punto siguiente.
5. Se escoge como nueva semilla XQ, el último número aleatorio generado
Xn; es decir, XQ = xn y se vuelve al paso tercero.
Para poder descifrar el texto, se procede de manera análoga, bastando con
conocer la semilla original XQ para poder reconstruir el mensaje.
-53-
2.5.3. El DES, ("Data Encrvption Standar").
2.5.3.1. Génesis.
De 1.968 a 1,975 un grupo de investigadores de la casa IBM, "Internacional
Bussines Machines", estudiaron técnicas de cifrado para proteger, económica y
eficazmente, la información almacenada en ficheros o transmitida por canales de
comunicaciones. De estas investigaciones nació Lucifer, que es un esquema, basado en
las ideas expuestas por Shannon [Shannon 40], y que utiliza combinaciones de
transformaciones elementales simples tales como transposiciones fijas y sustituciones
controladas por llaves [Feistel 9], [Meyer 29].
En las aplicaciones comerciales, las especificaciones del algoritmo son
públicas, hasta incluso normalizadas, residiendo todo el secreto en la llave. Además,
los detalles del algoritmo deben elegirse de manera que permitan su implantación
sobre un único circuito de larga escala de integración por aquella época. Con lo que,
resulta ser un dispositivo "hardware".
En el curso de estos estudios, la NSA, "Agencia Nacional de Seguridad", se
interesó en el desarrollo de esos trabajos. Las sustituciones, son funciones no lineales
realzadas con la ayuda de cajas S, que son una especie de tabla de 6 bits de dirección y
4 bits de resultado. En el bienio 73-74, la NSA "clasifica" los principios subyacentes en
la elección de estas tablas, declarando que los investigadores habían redescubierto
principios previamente clasificados.
En mayo de 1.973 y en agosto de 1.974 [Guillou 16], la NBS, Oficina
Nacional de Estándares, sensibilizada por el contexto político, publica llamadas para la
adquisición de algoritmos de cifrado para su uso por las distintas agencias federales.
Entre los algoritmos remitidos, respondiendo a esta llamada, se encontraba el que
-54-
envió IBM con el nombre de "Encrytion algorithm for computar data protection". Este
algoritmo, fue publicado en marzo de 1.975 y en agosto del mismo año, con una
petición de comentarios con el fin de establecer una norma de uso en las agencias
federales. IBM había precisado en aquél momento que si el algoritmo propuesto era el
seleccionado como una norma federal, renunciaría a las patentes implicadas en los
límites territoriales de los EE.UU.
El algoritmo finalmente fue el elegido y rápidamente bautizado como DES,
quedando sometido a control oficial, ejercido por la NSA, sobre la exportación de
circuitos. Este control, impuesto en nombre de la seguridad, abocó a un
proteccionismo exagerado de los productos y los servicios propuestos por las firmas
norteamericanas. Este control "incordia" mucho, fuera de los E^UU., el desarrollo de
maquetas y experiencias dedicadas a precisar la puesta en marcha del cifrado en los
protocolos de comunicaciones. Y, lo que es aún más grave, DES en principio elegido
para su uso por las agencias federales, se ha convertido de hecho en una norma
comercial. Así en marzo de 1.978, el "American National Standards Institute" (ANSÍ),
eligió al DES como norma comercial de cifrado. Y el grupo de trabajo, "ad hoc"
ANSIX3S3, estudia actualmente los problemas de introducción del cifrado en los
protocolos de comunicación. Aunque las investigaciones realizadas alrededor del DES y
su existencia, sean incluso obstáculos en el desarrollo y la puesta en marcha de un
nuevo algoritmo concurrente, es absolutamente necesario el conocimiento técnico y la
voluntad política e industrial para desarrollar en Europa un algoritmo de cifrado. Más
aún, pues, so pena de hipotecar gravemente el porvenir de las tecnologías de
comunicación, es necesario desarrollar una norma europea de cifrado.
- 5 5 -
2.5.3.2. El Algoritmo.
Es un algoritmo complejo, en el cual, cada bit del texto cifrado, depende de
todos los bits del texto original y de todos los bits de la llave. Consta de un conjunto
de operaciones de sustitución y transposición.
Opera con bloques de 64 bits de texto. La llave es de 64 bits, de los cuales
56 son usados por el algoritmo y los otros 8 pueden ser usados para control de paridad.
Es interesante, subrayar que las primeras descripciones de algoritmos tipo Lucifer
hablen de llaves de 128 bits. El algoritmo consta de los siguientes pasos globales:
1 El bloque de texto se inserta en bloques de - 4 bits, que, en caso
necesario, se completan con caracteres de relleno y es sometido a una
permutación IP, de acuerdo con una tabla.
2 A partir del bloque permutado, se efectúan 16 iteraciones, en cada una
de las cuales, se procede como sigue: Se divide el bloque de entrada en
dos partes: Li y Ri de 32 bits cada una, entonces, el bloque de salida
será:
Li+i = Ri
Ri+1 = Li © f(Ri, Ki+i)
Siendo Ki+i, un bloque de 48 bits elegidos de los 64 de la llave. Y
siendo f una función compleja de cifrado que, mediante unas tablas de
selección y una permutación al final, produce un bloque de 32 bits.
-56-
3 Una vez producida la última iteración, se somete a los bloques de
salida concatenados Rig Lig a la permutación IP"1, inversa de la
primitiva IP.
Tal vez sea conveniente, por las implicaciones que tiene, el extenderse aquí
un poco más acerca de la función f del paso [Sugarman 41] del algoritmo. Lo primero
que hace f es expandir Rj de 32 bits a 48 bits por medio de una tabla que dice: Colocar
el bit 1 en las posiciones 2 y 48; colocar los bits 2 y 3 en las posiciones 3 y 4; colocar
el bit 4 en las posiciones 5 y 7; etc. Luego, se seleccionan de forma "astuta" 48 de los
56 bits de la llave para obtener la llave 1. Entonces, estos dos números de 48 bits se
suman en "o" exclusivo dando otro número de 48 bits, que se introducen en un conjunto
de ocho cajas S ya mencionadas y que forman parte de la controversia del DES. Cada
caja S acepta seis bits de entrada y devuelve 4 bits de salida, especificados por ocho
tablas, una para cada caja S. Cada número de salida puede proceder de uno de los
números de entrada. El resultado obviamente es que el número de 48 bits se reduce a
uno de 32,
El sentido de esta expansión y posterior contracción, es que un supuesto
penetrador del sistema no puede trabajar hacia atrás, a través de DES, cuando intente
descifrar. El violador podría conocer, porque está publicado [NBS 31], el esquema de
permutación. Pero cuando examine una caja S, no sabrá cual de las cuatro posibles
salidas se usó en cualquier caso.
2.5.3.3. La Problemática DES.
Existen tres argumentos principales [Guillou 16], [EDP ANALYZER 7]
contra el uso del DES, que aquí se van a describir someramente. El primero, de gran
importaticia, es que se guardan cosas en secreto. Por ejemplo, hay quien dice que, con
la disculpa de verificar el algoritmo, la NSA lo cambió con el fin de reducirlo y crear
-57-
una "trampa" de la que sólo la NSA tiene la llave. Otros afirman que la NSA forzó a
IBM a mantener secreto el diseño de las cajas S de modo que esta puede ser la
"trampa". Otros arguyen que fué la NSA la que obligó a IBM a reducir el tamaño de la
llave de 64 a 56, y justo ahí puede estar parte de la "trampa".
Ante estos alegatos tanto IBM como la NSA se declaran inocentes de
cualquier tipo de manipulación secreta; sin embargo, muchos suponen que,
efectivamente, hay "gato encerrado", por lo que difícilmente puede considerarse a
DES como de llave pública.
El segundo argumento contra DES, afirma que la llave de 56 bits es
demasiado corta. En efecto, Diffie y Hellman [Diffie 6] inves^gadores en Stanford,
señalaron la posibilidad de un ataque brutal contra DES, gracias a una máquina
especializada permitiendo comprobar en un día el conjunto de las 256 llaves posibles
siendo dado un par "claro-cifrado". Esta máquina evaluada por ellos en 20.000.000 $, es
fácil de construir y su coste disminuirá de año en año. Estas ideas fueron consideradas
como poco realistas en el momento de su publicación y no provocaron ninguna reacción
oficial, tanto más cuanto que los oficiales de NBS intentaban desacreditar en privado a
estos teóricos de la información y, por elevación, sus críticas al asunto DES. Pero, en
1.977 Rivest, basándose en estos trabajos de Diffie y Hellman, publicó sendos artículos
en las revistas Science y Scientific American, en donde explicaba detalladamente sus
trabajos recogidos en la memoria técnica 82 de abril del 77 de LCS (Laboratorio of
Computer Science) del MIT. Con lo que las nuevas ideas sobre criptografía no estaban
confinadas al "ghetto" de sólo los iniciados. A partir de ese momento, las ideas de
Diffie y Hellman dejaron de ser irrealistas y desde entonces la NSA se interesa en el
desarrollo de cifrados de llave pública.
-58-
El tercer argumento, es que justamente por esas razones los sistemas de
verdadera llave pública son mejores que DES. Estos sistemas de cifrado son los que se
van a considerar a continuación.
2.5.4. Algoritmos de Llave Pública.
2.5.4.1. Bases Teóricas.
En el curso del Congreso sobre la Teoría de la Información celebrado en
junio de 1.975 en Lenox Massachusetts, Diffie y Hellman presentaron ideas originales
sobre sistemas de cifrado. Allí pusieron de evidencia el problema fundamental de las
redes públicas de transmisión de información; a saber, la -distribución de llaves
secretas y la identificación entre corresponsales, sugiriendo métodos nuevos para
alcanzar estos resultados.
Sus reflexiones se apoyan en la teoría de la complejidad del cálculo. Para
evaluar una función en un punto, se puede bien calcular directamente el valor usando
un algoritmo adecuado, o bien buscando en una tabla de valores precalculados. De este
modo, la complejidad del cálculo puede expresarse como un compromiso entre el
número de operaciones elementales a efectuar; es decir, el tiempo y la energía
consumidos en el cálculo, y el tamaño de la memoria necesario, o espacio de cálculo
empleado. Para un problema dado, el mejor algoritmo es el que minimiza el producto
de ambos factores.
La noción de función prácticamente no invertible, se deduce de estas
consideraciones y es relativa al estado actual de los conocimientos de los algoritmos,
así como al estado actual de la tecnología que define la potencia de cálculo disponible.
Para que sea utilizable, una función prácticamente no invertible debe ser fácil de
-59-
calcular, mientras que el cálculo de su función inversa, necesite un tiempo
astronómico y una memoria galáctica.
Y, justamente, ciertos problemas matemáticos, no pueden resolverse
actualmente más que por métodos demasiado lentos incluso por los computadores más
potentes. Claro que el hecho de que no se conozcan métodos eficientes, no quiere
decir que no existan.
En noviembre de 1.976, Diffie y Hellman [Diffie 6] fueron los primeros en
imaginar funciones de cambio de llaves que permiten establecer una llave secreta
entre dos corresponsales ligados por un canal de comunicación de escucha pasiva.
Siendo asimismo los primeros en definir las propiedades teóricas de los sistemas de
cifrado con llave pública que permiten el equivalente electrónico de las firmas, algo
que no permitía el DES.
Estas funciones de cambio de llave se basan en ciertos resultados clásicos
de la aritmética que se mostraron adecuados a las nuevas necesidades, como el
siguiente: Sea P un número primo; las leyes de la suma y de la multiplicación módulo 7
dotan al conjunto de los enteros de O a P-1 de una estructura de cuerpo. Es el cuerpo
de Galois CG(P). Siendo dados x e y dos elementos no nulos de CG(P), se puede definir
X ** y módulo P como la potencia y-ésima de x módulo P. Si x es un elemento
primitivo; es decir, generado por sus potencias sucesivas de todos los elementos no
nulos del cuerpo, entonces la transformación de y en z tal que z = x ** y módulo P se
denomina "exponencial", mientras que la transformación inversa se denomina
"logaritmo de base x sobre GC(P)".
Si P y (P-l)/2 son dos números primos, entonces la exponencial sobre GC(P)
es una función prácticamente no invertible [Pohling 35]. Si el número P se escribe
sobre n bits, el cálculo de la exponencial se hace con tres palabras de n bits en un
-60-
tiempo proporcional a n**3; en tanto que el cálculo de un logaritmo por el mejor
algoritmo conocido se hace con una memoria y un tiempo proporcional a 2 **(n2).
Números primos de esta forma existen y se localizan bastante fácilmente. Incluso se
pueden elegir de manera que se puedan simplificar los cálculos en binario. Por
ejemplo, 2210-65 y 2209-33 cumplen estos requisitos.
Una propiedad de base de las funciones exponenciales es que:
(a ** x) y = (a ** y) X = a ** xy
lo que permite hacer de la exponencial sobre CG(P) una función de cambio de llaves, y
concebir a continuación un servicio público de identificación y.^iscrección sobre una
red pública. La forma de hacer esto es como sigue: La administración retiene un gran
número primo P, verbigp^acia 2209 - 65, y genera periódicamente al azar un elemento
primitivo de CG(P), por ejemplo "e". Luego indica estos valores P y e a cada usuario
que posee una caja negra como interfaz con la red. De este modo, un usuario del
servicio, tal que Ul, genera al azar y secretamente un número impar "i" de 210 bits e
introduce este valor en su caja negra como identificador secreto. Depués, calcula,
también en secreto, la imagen pública de este identificador como sigue:
A = e ** i mod P
que constituye su identificador público, que transmite a sus principales
"interlocutores" y a la administración para que lo inserte en el "armario" público. Este
"armario", establecido y gestionado bajo la responsabilidad de la administración,
indicará además del nombre de los usuarios y del número de acceso a la red, su
identificador público. Eventualmente podrá ser consultado a través de la red por un
acceso particular. Entonces, el acceso estará provisto de una caja negra parecida a la
- 6 1 -
de los usuarios de modo que identifique el "armario" en el momento de las consultas,
pues es esencial que dicho "armario" no pueda ser ni simulado ni falsificado.
Cuando dos usuarios, Ul y U2, desean establecer una comunicación secreta,
combinan el identificador público de su interlocutor con su identificador secreto con el
fin de obtener la llave de conexión característica de su comunicación durante el
período de validez del elemento primitivo "e". Para Ul la llave es:
K : B ** i mod P
mientras para U2 la llave es:
K = A ** i' mod P
Un intruso poseyendo e. A, B y P no puede calcular prácticamente i ó i' y, en
consecuencia, no puede calcular K, y entonces esta llave de conexión se utiliza como
un identificador mutuo. Si ahora Ul y U2 quieren generar una clave de comunicación
particular para cada reinicialización de su comunicación, Ul genera al azar x, número
impar de 210 bits y calcula K ** x mod P que transmite a U2 que procede de la misma
forma. Entonces la llave de comunicación es para Ul:
(K ** y) ** x mod P
y para U2:
(K ** x) ** y mod P
A continuación, esta llave se utiliza para cifrar los datos transmitidos
sobre la línea así reinicializada. Este cifrado puede hacerse con la ayuda de DES pues
si el circuito se reinicializa cada minuto, el ataque brutal, frente a DES es ineficaz.
-62-
2.5.4.2. Propiedades de un Sistema de Cifrado de Llave Pública.
Las propiedades de un sistema de cifrado de llave pública, definidas por
Diffie y Reliman en el trabajo ya citado [Diffie 6], son las siguientes:
Sea K un espacio finito de llaves, M un espacio finito de mensajes, y
(PK,SK) pares de transformaciones definidas en M. Entonces:
a) Para toda llave K, PK y SK son inversas.
b) Para toda llave K, todo mensaje m, PK(m) y SK(m) son fáciles de
calcular. ,g'"
c) Para casi todas las llaves K, es prácticamente imposible definir un
algoritmo eficaz equivalente a SK conociendo solamente PK.
d) Para toda llave K, es fácil generar un par (PK,SK).
De este modo, cuando un usuario desea ser miembro de un sistema de
cifrado de llave pública, utiliza un generador público de cifra de llave pública, para
obtener un par (S,P). Guarda en secreto la transformación S, mientras que inscribe en
el "armario" público la transformación P. Toda persona conociendo la transformación
pública P puede dirigir un mensaje confidencial a ese usuario transmitiéndole el
criptograma C = P(M). Únicamente, quien conozca la transformación secreta S puede
interpretar correctamente ese criptograma.
Un sistema de cifrado de llave pública permite igualmente obtener firmas,
"matasellos", acuses de recibo, etc. Sólo quien posea la transformación secreta S
-63-
puede emitir una firma R = S(M) pero todo el mundo puede verificar su autenticidad
aplicando la transformación pública P.
Los dos principales generadores de llave pública el de Rivest [Rivest 38] el
de Merkle y Reliman [Merkle 28] se consideran a continuación.
2.5.4.3. Algoritmo RSA.
Su principio consiste en utilizar un resultado clásico de la teoría de
números conocido con el nombre de teorema de Euler, el cual afirma que para evaluar
la función de Euler de un número es necesario conocer su descomposición en factores
primos. Ahora bien, es fácil mostrar que un número entero no-es primo gracias al
teorema de Fermat; sin embargo, es prácticamente imposible factorizar un número
compuesto de factores primos grandes, o demostrar que es primo. Ambos problemas
están ligados. De hecho, es fácil determinar de cuales se está prácticamente seguro de
que son primos y, por lo tanto, crear un gran número compuesto conteniendo dos
grandes factores casi con certeza primos. Pero es harto imposible factorizar el gran
número así obtenido sin idea previa de los factores que lo componen.
El algoritmo RSA, así llamado debido a las iniciales de sus autores, procede
como sigue:
1 Para codificar el mensaje se utiliza una llave pública formada por dos
números enteros e y n.
2 Para decodificar el mensaje cifrado, se utiliza una llave de descifrado
privada, formada por dos números enteros d y n.
3 El mensaje se divide en n bloques de x dígitos, de forma que
M = did2 ••• dxti.
-64-
4 El cifrado C del mensaje M, será el resto de dividir Me entre n. Es
decir,
Me = bn + r.
Teniendo en cuenta que dos números enteros a y b son congruentes
módulo m; es decir:
a = b (mod m)
Si se cumple que: a - b = xm, para algún x, entonces:
Me = r (mod n)
y denotando por E(M) el cifrado de M, será
C = E(M) = r
5 El descifrado de C, D(C) será el resto de dividir íjd entre n, por lo que:
Cd = b' n + r'
Cd = r' (mod n)
D (C) = r'
Se elige n como el producto de dos números primos p y q. Se
recomienda escoger p y q de unos 100 dígitos, por lo que n será de unos
200 dígitos.
Se cumple que D (E (M)) = M
En efecto, sea (n) la función "cociente" de Euler para el número n.
Entonces,
0 (n) = n (1 - 1/p) (1 -1/q) = (p-l)(q-l)
Se escogen e y d tales que:
ed = 1 (mod 0 (n)).
Es decir,
ed = t 0 (n) + 1
Por otro lado,
Mt 0 (n)+l = M (mod n)
En efecto:
-65-
a) Si M es relativamente primo a n
Mt 0 (n) = 1 (mod n) y, por lo tanto,
Mt 0 (n)+l = M (mod n)
b) Si M no es relativamente primo a n, tendrá un factor de n, sea este
p, entonces M = hp.
En este caso, q no puede ser factor de h ya que M < n. Por lo tanto:
M s 1 (mod q)
Y también
M 0 (q) = 1 (mod q)
Siendo
0 (q) = q = (1-1/q) = q-1
Por las propiedades de las congruencias ^^'
M 0 (q) 0 (p)t = 1 (mod q)
o bien
M 0 (n)t = 1 + sq
y multiplicando por M se tiene que
M 0 (n)t+l = M + sqhp = M + shn
o bien
M 0 (n)t+l = M (mod n)
Análogamente, si se hubiera escogido q como factor de M, se
habría llegado a
Mt 0 (n)+l = M (mod n)
Así pues,
Med = M (mod n)
y también
Med = M + zn
Como
Cd = (Me - bn)d = b'n + r',
resulta que.
-66-
Med = b"n + r'.
De donde
M = r'
Cumpliéndose, por lo tanto, que
D (E(M)M = M
Igualmente, se cumple que
E (D(M)) = M
Así pues, el descifrado de C, devuelve M. Por otro lado, a partir de la
llave pública e, n no es posible obtener la llave privada d, n ya que d no
es fácilmente computable a partir de e y n..
Actualmente, este algoritmo está implementado sobre micros, donde
parece que no es causa de graves problemas de uso [Burton 4].
2.5.4.4. Método de Merkle y Hellman.
El principio del método se basa en el conocido problema de la "mochila", en
inglés "knapsack", muy estudiado en inteligencia artificial por su evidente explosión
combinatoria, que puede enunciarse como sigue: Siendo dada una longitud 1 y un
conjunto finito de elementos de longitud l i , I2, ... ln> encontrar un subconjunto de
estos elementos que puestos uno detrás de otro, dan exactamente la longitud 1. Este
problema, muy complicado en el caso general, forma parte de un conjunto de
problemas matemáticos para los cuales sólo se conocen soluciones admisibles pero no
eficaces y menos óptimas.
En la práctica, para usar la teoría subyacente a este problema en
criptografía, se comienza por construir un conjunto ordenado en donde cada elemento
es mayor que la suma de los que le preceden; después se oculta esta propiedad
-67-
aplicando al conjunto una transformación secreta y reversible. Este conjunto
desordenado representa la transformación pública, únicamente quien conozca la
"artimaña"; es decir, la información secreta que permite reordenar el conjunto, puede
interpretar el criptograma contenido en una "mochila" dada, obtenida con la
transformación pública. Sin embargo, la seguridad de este método ha sido
sobreestimada, encontrándose fallos [Vandewalle 43].
2.5.4.5. Problemas de los Sistemas de Llave Pública.
A pesar de las bondades pregonadas por sus inspiradores, los sistemas de
llave pública presentan algunos inconvenientes que no es posible ignorar. En primer
lugar, está el hecho de que estos sistemas son muy lentos de operación.
Por su parte, Kohnfelder [Govaerts 14] apunta algún otro problema
concernientes al uso de estos sistemas, como es la necesidad de una tercera parte
fiable para operandos, so pena de que un intruso pudiera imitar la función del fichero
público. También apunta que los sistemas de llave pública son más apropiados para
transmisión de datos que para su almacenamiento.
68
"Sólo me fío de lo incierto;
sólo dudo de lo cierto,
y es del capricho del azar
de quien aprendo"
(F. Villon)
CAPITULO 3. SISTEMA PROPUESTO.
3.1. Hipótesis de trabajo.
La consecuencia fundamental que se puede extraer del capítulo anterior, es
que a pesar de la conveniencia de la existencia de un Sistema d^ Criptografía de llave
pública, cumpliendo los requisitos de Shannon, (a quien por cierto mientras se estaba
elaborando este trabajo le concedieron el premio "Inamori", equivalente al Nobel en
Informática) la verdad es que hasta ahora no se ha conseguido. En el caso, RSA y
Merkel-Hellman, porque si bien son de clave pública, no parecen ser lo suficientemente
seguros. En el caso del DES, de uso habitual en muchos organismos, porque, además de
ser teóricamente vulnerable, la colusión IBM, NSA, NBS hace que se sospeche
altamente de su carácter público.
Todo ello hace que, aquí ahora, se proponga un sistema con un enfoque
totalmente distinto y, por ende, original diferente a los presentados hasta el momento,
que cumple todas y cada una de las condiciones de Shannon. De este modo, este sistema
se puede considerar de llave pública, invulnerable, y adaptativo, que hace que su
versatilidad sea tal que pueda usarse tanto desde un punto de vista "software" como
"hardware", y a voluntad tanto en grandes computadores como en computadores
personales. En suma, se puede afirmar que, con probabilidad rayana en la certeza, el
sistema presentado está lo suficientemente próximo al concepto habitual de sistema
criptográfico óptimo que puede ser tenido por tal.
69
La condición de invulnerabilidad, la alcanza porque se fundamenta en el
hecho, establecido "a priori", y contrastado experimentalmente a "posteriori", de que la
distribución de los símbolos en el mensaje cifrado, es uniforme. En consecuencia,
cualquier análisis estadístico que se efectúe sobre el mismo será vano. Pero, son
justamente los análisis de tipo estadístico los únicos que pueden vulnerar este tipo de
cifrado, puesto que el sistema es público.
Su adaptabilidad viene dada por su arquitectura, basada en la separación de
los datos o conocimiento factual, del conocimiento operatorio dado en forma de reglas;
del conocimiento de control que, como se verá más adelante, en este caso es muy
sencillo. Esta arquitectura, tomada del procedimiento de modelización de problemas
usado en inteligencia artificial, denominado "Sistemas de Producción", es
absolutamente adecuada para la construcción de sistemas adaptativos, más aún, para
sistemas capaces de aprendizaje [Newell 32].
Es público, puesto que aquí mismo se va a describir totalmente poniendo
algunos ejemplos de funcionamiento, en donde aparecerá tanto el texto claro como el
cifrado. Sin que toda esta información aumente el grado de vulnerabilidad.
También es interesante señalar que, a fin de hacerlo totalmente versátil y
transportable, se abandonó la concepción de cifrado en bloques por la de cifrado por
caracteres. Aunque, al menos hasta el momento actual, no existe un acuerdo total sobre
cual de los dos es el mejor, de lo que no existe duda es de que el cifrado por bloques
basado en "hardware", viene condicionado por el propio "hardware" con lo que su grado
de versatilidad y transportabilidad entre sistemas es muy reducido. En cambio, el
cifrado por caracteres presentado, puede establecerse fácilmente con independencia del
"hardware" pudiendo asegurarse que su transportabilidad es total.
-70
Todas estas cuestiones, tanto teóricas como prácticas de aleatoriedad,
arquitectura, y, finalmente, la descripción del sistema propuesto como síntesis de lo
que se va a exponer a lo largo de este capítulo, conforman la realización práctica de las
hipótesis de trabajo que planteó esta tesis.
3.2. El conocimiento del sistema.
Con el nombre genérico de sistemas basados en el conocimiento, de los que
los sistemas expertos, es el apartado más importante y conocido, industrial y
eomercialmente hablando, se designan un conjunto de programas construidos usando
-r" técnicas de inteligencia artificial, cuyas prestaciones dependen más de la presencia
explícita de un conocimiento de alta calidad que del uso de ingeniosos y, o, potentes
métodos computacionales [Pazos 33].
Hablando en abstracto, el conocimiento consta de:
a) Descripciones, que identifican y diferencian objetos y clases, y datos. Las
descripciones, son declaraciones y aserciones en algún lenguaje, cuyas
componentes elementales constan de conceptos o características
primitivas. Un sistema de descripción incluye generalmente, reglas para
aplicar e interpretar dichas descripciones en aplicaciones específicas.
b) Relaciones, que son tipos particulares de descripciones que expresan
dependencias y asociaciones entre elementos de conocimiento.
Específicamente, estas relaciones pueden denotar asociaciones
definicionales, taxonómicas, empíricas y causales.
-71 -
c) Procedimientos que especifican las operaciones a efectuar cuando se
intenta razonar o resolver un problema.
El laboratorio de Inteligencia Artificial de la Facultad de Informática de la
Universidad Politécnica de Madrid, para escapar de especulaciones metafísicas, ha
adoptado por definir, en fórmula resumida, el conocimiento como un par formado por:
a) Unos datos, y, o, hechos, traducidos en forma de informaciones.
b) Un conjunto de reglas de experiencia o heurísticas que sirven para tratar
adecuadamente esos datos y, o, hechos.
El conocimiento de estos sistemas presenta un conjunto de características
que es necesario tenerlas presentes en el momento de representar o tratar dicho
conocimiento. Dicho en otros términos, para construir sistemas basados en el
conocimiento eficaces, es necesario tener en cuenta las siguientes consideraciones:
a) Las buenas prestaciones para la solución inteligente y hábil de problemas,
vienen condicionadas por la existencia de un conocimiento de la más alta
calidad posible, muchas veces en gran cantidad, disponible y almacenable,
sobre la tarea que se tiene entre manos, y no por poseer una gran
colección de métodos formales independientes del dominio. Durante largo
tiempo, la inteligencia artificial centró su atención casi exclusivamente
en el desarrollo de "potentes" métodos de inferencia que se suponía
desarrollarían "inteligencia", el GPS [Ernst 8] es el arquetipo, lo que se
conoció con el calificativo de "paradigma del poder". Hasta que se fue
evolucionando hacia el conocimiento, al darse cuenta los investigadores, -1
de que el poder de estos sistemas no reside en el método de inferencia
-72 -
elegido, casi cualquier método servirá; sino en el conocimiento, lo que
constituye el "paradigma del conocimiento".
De hecho, la mayoría de los problemas interesantes y difíciles no tienen
soluciones algorítmicas practicables ya que muchas tareas importantes,
originadas en contextos, físicos o sociales, complejos, resisten
generalmente cualquier intento de descripción precisa y análisis riguroso.
b) El conocimiento puede ser público o privado. El primero, incluye las
definiciones, hechos, métodos y teorías publicados y al alcance, el menos
material, de cualquiera interesado en el asunto. Sin embargo, la pericia en
un dominio implica algo más que ese conocimiento público, y es lo que se
denomina conocimiento privado. Esta privacidad se manifiesta en una
doble vertiente: En primer lugar, porque es una evidencia el hecho de que
mucho del conocimento de los expertos está interiorizado, no porque sean
reacios a compartir públicamente sus pautas de actuación, sino
simplemente porque son incapaces de hacerlo: "lo que realmente saben los
maestros, no está escrito en los libros". Tradicionalmente, la transmisión
del conocimiento proveniente de los "maestros", exigía largos años de
"pupilaje" junto al maestro. Sin embargo, ahora se sabe que, al menos en
algunos casos, ese conocimiento privado, "interiorizado", puede
descubrirse o exteriorizarse mediante un cuidadoso análisis.
A veces, esta exteriorizaeión la hace el propio experto, operando en el
contexto de un gran número de problemas "ad hoc" de prestaciones
específicas. Otras, mediante la intervención y ayuda de lo que, en
EE.UU., ha venido én denominarse "ingenieros del conocimiento" que
ayudan al experto a explicitar su conocimiento y establecer claramente
-73
qué es lo que conocen y cómo aplicarlo efectivamente. Y ello, porque la
inteligencia artificial, permite confrontar intuiciones. Cuando una
suposición intuitiva se exterioriza y hace explícita, se puede convertir en
un programa, que llama más la atención y se vuelve más accesible a la
reflexión. Por su parte, las ideas de la inteligencia artificial pueden
retomarse como materiales para el trabajo de remodelación del
conocimiento intuitivo, dado que en ciertos casos, las intuiciones entran
en conflicto con la realidad. En cualquier caso, este proceso de
refinamiento del conocimiento, puede acelerarse al hacer el conocimiento
privado utilizable para someterlo a comprobación y evaluación pública.
En segundo lugar, este conocimiento privado, que aún no ha encontrado su
vía de expresión en los medios de comunicación, consta mayormente, de
reglas de buen juicio, intuitivas o de experiencia que, como decía Huxley:
"No es lo que te ocurre sino lo que haces con ello", denominadas
heurísticas. Esta reglas, capacitan a las personas expertas, para hacer,
siempre que lo necesiten, buenas conjeturas, reconociendo enfoques
prometedores en la solución de problemas y tratar eficientemente con
datos informaciones y conocimientos incompletos, inciertos o imprecisos.
En suma, con conocimiento mal especificado. Es decir, aunque un experto
no siempre conozca lo que sabe acerca de su dominio de experiencia, de
un modo similar a M. Jourdan de Moliere, lo usa adecuadamente. Después
de todo, la naturaleza del conocimiento que un experto usa al ejecutar
una tarea, es en gran medida heurística; es decir, básicamente buen juicio
y práctica, en lugar de hechos contrastados y razonamiento riguroso.
c) El conocimiento con el que tratan estos sistemas es, con frecuencia,
además de incompleto, incierto o impreciso. Se dice que una expresión es
-74
"incierta", si es verdadera o falsa pero no se sabe. Por ejemplo, el decir
que la población mundial es mayor que 4.000 millones de personas, es una
expresión incierta, pues realmente no se sabe si es o no así.
Por otra parte, se dice que un conocimiento es impreciso cuando se es
incapaz de definir exactamente el valor de una variable. Esta imprecisión
viene dada habitualmente por el uso de cuantificadores como "La
mayoría", "Unos pocos"", etc. Así, por ejemplo, la sentencia "Juan
cometió algún error", es imprecisa. También es impreciso afirmar el valor
de la variable dentro de un intervalo. Verbigracia es impreciso decir "La
edad de María está entre 20 y 25 años". '4'"
Por su parte, el razonamiento es incompleto, cuando es por "defecto". A
veces, se puede obviar esta carencia usando hipótesis o valores por
defecto. De este modo, si se conoce que "Pepe es un adulto", se puede
deducir que "Pepe sabe leer".
Teniendo en cuenta estas características, el conocimiento básico del
sistema propuesto consiste, por una parte, en saber que la única forma de violar un
sistema de criptografía, consiste en someterlo a rigurosos análisis estadísticos que
establezcan las frecuencias de los distintos signos del cifrado en correlación con los del
texto claro. Para evitar esto, es imprescindible conseguir una distribución uniforme de
los textos del cifrado. Para lo cual, se va a hacer uso del concepto de transformación de
variable aleatoria.Por otra, del concepto del valor relativo de los números en los
sistemas de numeración para romper las relaciones contextúales de los símbolos en el
criptograma. Ambos están, tomados respectivamente del conocimiento público en
estadística y teoría de números. Ambos conceptos se desarrollan a continuación.
75
3.3. Principio del valor relativo de los sistemas de numeración.
Este principio [Pazos 34] afirma que, en un sistema de numeración
determinado, un mismo símbolo representa valores distintos según el lugar que ocupan
dentro de una secuencia dada. Así, por ejemplo, en el número:
71976^^„
que está expresado en base 10, una cifra a la izquierda de otra, representa el número de
unidades de orden superior a la dada. En este caso, el 6 representaría:
6 unidades de orden O; es decir, 6 X 1 0 '*
e í 7 . . . 7 unidadesdcordenl = 7 X 1 0 ^
e í 9 . . . 9 unidadesdeorden2 = 9X10^
o
ell ... 1 unidad deordenZ = 1X10
ell ...1 unidades de orden 4 = 7 X 1 0
en donde, como puede verse el valor del segundo 7, empezando por la izquierda
representa 70 unidades, en tanto que el primer 7; es decir, el más a la izquierda
representa 70.000 unidades. Todo ello cumpliendo el principio de Haenkel, sobre la
sucesión de cifras en un número, que dice que las cifras.representando las unidades
mayores se encuentran, considerándolas de izquierda a derecha, delante de las unidades
menores. Así, por ejemplo, el número:
54(10
significa:
5X 10 + 4
76
y no:
5 + 4 XIO
"Hic et nunc", es necesario modificar el principio del valor relativo, para
aplicarlo al sistema propuesto de la siguiente forma: "El valor de cada símbolo en el
mensaje cifrado vendrá afectado por la posición que ocupa en el mensaje claro". De
esta forma, igual que en el pricipio del valor relativo, un mismo símbolo tendrá, en el
mensaje cifrado, distinto valor según la posición que ocupe en el texto claro. Sin
embargo, al contrario de lo señalado por el principio de Haenkel, el valor va
incrementándose de izquierda a derecha.
3.4. Transformación de variable aleatoria. -g'
Intuitivamente, se entiende por variable aleatoria una función cuyos valores
dependen del resultado de un experimento aleatorio. Más formalmente, siguiendo a
S.Rios [RÍOS 37], se dice que la función uniforme I, (a) definida para los sucesos
elementales a del espacio probabilístico (E, A, P), es una variable aleatoria, si el
contradominio A de cada intervalo I de la forma [-a>,c] es un suceso del espacio
probabilístico, tal y como se ve en la figura 3.1.
Es decir, sea i, (a) una función real unívoca cuya variable a representa los
resultados elementales de un fenómeno aleatorio, y supóngase definida una o-álgebra (E,
A, P). Se denomina contradominio de un conjunto C de números reales, al conjunto A de
todos aquellos sucesos elementales a tales que:
Entonces, es posible escribir:
A = r^(C)
77-
Se ve fácilmente que el contradominio del conjunto de todos los números
reales R es el suceso seguro E; es decir:
Si C es un cierto conjunto de números reales, se define:
P*(0 = P*(^(a)€0 = P(A)
como la probabilidad de que la función í, (a) tome un'valor de C.
i TTH-R
Contradominio de C
FIGURA 3.1. EJEMPLO DE VARIABLE ALEATORIA
Las variables aleatorias pueden ser discretas, cuando toman valores finitos o
infinitos numerables de valores distintos. Es otro caso, se denominan continuas.
Sea, por ejemplo, i, una variable aleatoria, cuya función de distribución es:
F(x) = P(^Sx)
y sea q = g(Q una función medible Borel de la variable i,; es decir, tal que el
contradominio C de cualquier intervalo -<» < q^y es un conjunto de Borel, aunque es
suficiente en particular que q = g(0 sea uniforme y continua. Entonces, i\ es una
variable aleatoria. Y su función de distribución será:
-78 -
ct)(y) = Píná^-) = P(g(^) <:y) = P (^ í C^)
Como C„ es un conjunto de Borel, P(xíCy) es fácil de calcular.
En el caso concreto que aquí interesa, de una transformación lineal de
variable aleatoria, ta l como:
n = aí,+ b (a>0)
Se tiene que:
<P{y) =P(q ^y) = P(aí, + b^y) = P(í, < ^ ^ ^ ) = F{^^-^-) a a
'»'
Si F(x) admite derivada, entonces f(x) = F'(x), será:
y - 6 1 1 y -b (^(y) = <t>'(y) = F'i- ) - = -f{- )
a a a a
Si a < O, se t iene que:
<P(y) = P{^^y) = P{aí,+ b^y) = P{i,> ^-^^) = 1 _P(^ < ^^^^) = 1 _P(^ < ^^^^ ) + P{\= ^-^^) a a a a
Si la variable i, es continua:
y — b Pii,= - ) = 0
a
Y, queda que:
V — 6 <P{y) = l -FC- )
a
y derivando, es:
1 y- b ^iy)=<P'(y)= --fC- )
a a
79
Todo este desarrollo, puede resumirse diciendo que una transformación
lineal de una variable aleatoria, tal y como la expuesta, produce otra variable aleatoria
idénticamente distribuida con la anterior; es decir, ambas variables aleatorias tienen
funciones de probabilidad coincidentes.
En consecuencia, ahora todo el problema se reduce a conseguir una variable
aleatoria uniformemente distribuida sobre la que aplicar la transformación lineal
elegida. Esta variable puede obtenerse generando una secuencia de números aleatorios
uniformemente distribuidos que es lo que se va a considerar a continuación.
3.5. Números Aleatorios.
3.5.1.Generalidades.
Una distribución uniforme de un conjunto finito de números es aquella en la
que cada posible número es igualmente probable. Al principio, la gente que tenía
necesidad de conseguir números aleatorios para su trabajo científico, debía usar
métodos convencionales, tales como: extraer bolas de una bolsa, arrojar un dado,
extraer una carta de un mazo, etcétera. En 1927, Tippett construyó, usando el censo de
los EE.UU., una tabla con 40.000 números aleatorios. A partir de entonces, se han
construido una serie de dispositivos para generar mecánicamente números aleatorios.
La primera de tales máquinas fue usada en 1939 por Kendall y Babington-Smith para
producir una tabla de 100.000 dígitos aleatorios, y en 1955 la RAND Corporation
publicó unas tablas que tuvieron una amplia difusión. También se ha usado una famosa
máquina de números aleatorios denominada ERNIE que los tomaba de entre los que
ganaban premio en la lotería británica.
-80
Posteriormente, se propusieron métodos mucho más sofisticados y rápidos
haciendo uso de ciertas propiedades físicas de la materia. Por ejemplo, se puede tomar
como generador de números aleatorios el ruido de fondo de un circuito o, como sugirió
en cierta ocasión Turing, usando los impactos de los electrones que salen de una fuente
radioactiva.
Pero ambos métodos presentan un inconveniente teórico y otros de carácter
práctico que los hacen inviables para lo que aquí concierne. En primer lugar, ambos son
no invertibles. Es decir, que no se puede recuperar una secuencia igual a voluntad.
Solamente esto, ya los haría inservibles para el propósito de este trabajo. Pero hay más,
pues a lo rupestre y pesado de los primeros, se le contrapone lo difícil de realizar o
emplear de los segundos.
Para liberarse de estas hipotecas, se han diseñado procedimientos
matemáticos particulares computerizados, que si bien obvian los problemas planteados
por los procedimientos anteriores, lo hacen a costa de un deterioro en la noción de azar
científico. En efecto, ¿Cómo puede un computador que es una máquina explícitamente
determinística, generar números aleatorios, que son implícitamente no determinísticos?
La respuesta es que no puede. Lo que sí puede hacer un computador es generar números
que aparenten ser aleatorios.
Teniendo esto presente, Knuth [Knuth 22] ideó un algoritmo tan
aleatoriamente tortuoso y tan tortuosamente aleatorio que parecía estar garantizado
que engendraría números "superaleatorios", como los llamaba Knuth. Sin embargo, para
su asombro, la primera vez que el algoritmo se puso a trabajar en un computador,
convergió casi inmediatamente hacia el número 6065038420, que, por una
extraordinaria coincidencia, se transforma en sí mismo al aplicarle el algoritmo. La
moraleja que sacó Knuth de todo esto es sencilla, ya que no intuitivamente obvia: "Los
81
números aleatorios no deberían generarse por métodos elegidos al azar. Se precisa
alguna teoría". Justamente esto es lo que, siguiendo al propio Knuth, va a presentarse
en los apartados siguientes.
3.5.2. Generación de Números Aleatorios Uniformes; Método de las congruencias.
Aunque existen varios métodos de generar números aleatorios reales Un>
uniformemente distribuidos entre cero y uno, entre los que los más conocidos son los de
Lehmer; el del medio del cuadrado, basado en un teorema de Von Neuman; o el de
Fibonacci. Sin embargo, los más ampliamente usados son los congruenciales. Pero como
el computador puede representar un número real con sólo una exactitud finita, los que 'i'"
realmente se van a generar son números enteros Xn entre cero y algún número m.
entonces la fracción:
U =X /m n n
caerá entre cero y uno. Habitualmente, m es el tamaño de la palabra del computador y
de este modo, Xn puede verse como el contenido entero de una palabra de memoria con
el punto en el extremo derecho y Un puede verse como el contenido de la misma
palabra, pero con el punto en el extremo izquierdo.
Los métodos congruenciales, son casos especiales del siguiente esquema
general dado por Lehmer en 1949 [Lehmer 23]. Elíjanse cuatro números "mágicos".
m, el módulo m>0
a, el multiplicador OSa<m
c, el incremento Q<c<m
X , el valor incial o semilla 0<X <m
La secuencia deseada de números aleatorios Xn se obtiene haciendo:
-82
X ^, = (oX + c) modm , n>Q (3.1) n + i n
que recibe el nombre de secuencia congruencial lineal. Sin embargo, no todas las
secuencias así elegidas son aleatorias para cualesquiera números mágicos elegidos. De
hecho, los principios de selección de estos números, es una cuestión más bien delicada
que requirá consideración posterior aparte.
Por otra parte, y a pesar de lo bien que se hagan las cosas, al elegir los
números mágicos, las secuencias congruenciales siempre acaban por meterse en un
ciclo; puesto que es una propiedad común a todas las secuencias que tienen la forma
general:
Al ciclo se le denomina el período y, en consecuencia, una secuencia útil será aquella
que tenga el período más largo posible.
El caso especial c=0, merece mención explícita, ya que el proceso de
generación de los números es un poco más rápido que, cuando CÍ^O, y aunque reduce el
tamaño del período de la secuencia, aún es posible conseguir una longitud del período
razonablemente grande.
Es útil definir:
6 = a - 1
con el fin de simplificar muchas de las fórmulas que se van a emplear aquí. Sin
embargo, hay que rechazar inmediatamente el caso a=l. Para este caso, se tiene que:
X = (X.+nc) mod m, n ü
-83-
y la secuencia ciertamente no se comportaría aleatoriamente. El caso a=0 es aún peor.
Por lo tanto, para propósitos prácticos, se puede suponer que:
a > 2 , 6>1
Ahora, se puede probar una generalización de la fórmula (3.1),
X ^,= (a^X + (a* - l)c/b) mod m, k>0, n> O (3.2) n-r K n
que expresa el término (n+k)-ésimo directamente en términos del término n-ésimo. Se
sigue de aquí que la subsecuencia constando de cada uno de los k-ésimos términos de
(Xn) es otra secuencia congruencial teniendo el multiplicador al^,níod m y el incremento
((al<-l)c/b) mod m.
Un importante corolario de esta generalización, es que la secuencia general
definida por m, a, c y XQ, puede expresarse fácilmente en términos del caso especial en
el que c = 1 y XQ = 0. Sean:
y = O, F =(0 7-1-1) mod m O íi + 1 n
De acuerdo con la ecuación (3.2), se tiene que
F = (a* - 1)/ 6 {módulo m); (3.3) ft
por lo tanto, la secuencia general definida en (3.1) satisface
X = (AY + XJ mod m,- donde A = (X 6 -t- c) mod m
-84
3.5.3. Elección de los Parámetros.
La meta de este apartado es encontrar buenos valores para los parámetros
que definen una secuencia congrueneial, tratando cada uno de ellos aparte.
a) Elección del módulo. Lo primero que se desea, es un módulo m adecuado.
En primer lugar, se desea que m sea lo más grande posible ya que el
período no puede tener más que m elementos. A continuación, hay que
considerar el otro factor que debe influenciar la elección de m: la
velocidad de generación; es decir, se desea buscar un valor tal que la
computación de
iaX + c) mod m n
sea la más rápida posible.
Sea p el tamaño de la palabra del computador a saber 2b para un
computador de b dígitos binarios. El resultado de una suma se da
habitualmente módulo p, excepto en los computadores que hacen el
complemento a unos. La multiplicación módulo p, también es bastante
sencilla, ya que el resultado deseado es la mitad menor del producto. Así,
el siguiente "programa" computa (aX+c) mod p eficientemente:
rA *- A
rAX *- (.rA)X
rA <- rAX modp
rA *- {rA + c) modp
Para ejecutar computaciones módulo (p+1), puede usarse una técnica hábil
menos conocida. Generalmente, se quiere que c=0 cuando m=p+l, de esta
forma, sólo es necesario computar (aX) mod (p+l). A la pregunta de por
qué se usa el módulo m=p±l, cuando la elección m=p es tan
manifiestamente adecuada, se puede responder que cuando m=p, los
-85-
dígitos del lado derecho de Xn son mucho menos aleatorios que los de lado
izquierdo. Si d es un divisor de m, y si
Y = X mod d, n n
se puede mostrar fácilmente que
Y ^, ={aY +c) mod d (3.4)
Haciendo,
X , = aX + c •¥ qm para algún entero q,
'i"' y tomando ambos lados módulo d provoca que la cantidad qm desaparezca
cuando d es un factor de m. Para ilustrar la significación de la ecuación
(3.4), supóngase, por ejemplo, que se tiene un computador binario. Si
m=p=2b, los cuatro bits de más bajo orden de Xn son los números
Yn=Xn mod 24. El problema de la ecuación (3.4) es que los cuatro bits de
orden inferior de (Xn) forman una secuencia congruencial que tiene un
período de tamaño 16 o menor. Similarmente, los cinco bits de más bajo
orden son periódicos con un período de a lo sumo 32, y el bit menos
significativo de Xn es constante o alterna estrictamente. Esta situación
no aparece cuando m=p±l; en tal caso los bits de más bajo orden de Xn
serán igual de aleatorios que los otros. Si por ejemplo, p=235 y m = 235-i,
los números de la secuencia no serán muy aleatorios, si sólo se consideran
sus restos módulo: 31,71,127, ó 122921; pero los bits de bajo orden que
representan los números de la secuencia tomados módulo 2 serían
satisfactoriamente aleatorios.
-86
Otra alternativa es hacer m igual al más largo número primo menor que p.
Este primo, no es muy difícil de encontrar, incluso están tabulados. Todo
lo que se acaba de exponer es para computadores con magnitud con signo,
aunque "mutatis mutandis" puede decirse lo mismo para computadores que
usan notaciones con complemento.
b) Elección del Multiplicador. La elección del multiplicador es esencial para
conseguir un período de tamaño máximo, lo que es básico para cualquier
secuencia que se vaya a usar como fuente de números aleatorios. Lo que
en realidad se espera es que el período contenga considerablemente más
números que los que se vayan a usar en una aplicación sencilla. Sin
embargo, dadas las características de la criptografía computacional, que
son las que aquí interesan, esto no es posible, puesto que por grande que
fuera el período, mayor será la información a almacenar, y, o, transmitir.
Esto obliga a obtener varias secuencias que, a pesar de todo, también
deben tener un período lo más amplio posible.
Pero, hay que tener en todo momento muy presente, que un período
amplio es sólo un criterio deseable para la aleatoriedad de la secuencia.
Por ejemplo, cuando a=c=l, la secuencia es simplemente:
X , , = (X + 1 ) mod m n+1 n
que obviamente, tiene un período de tamaño m, pero que en absoluto es
aleatoria.
Ya que sólo son posibles m valores, seguramente el período no puede ser
mayor que m, pero al menos se trata de que sea m. El ejemplo anterior
muestra que siempre es posible alcanzar una secuencia de tamaño de
-87-
período m, aunque la elección de a y c no produzca una secuencia
deseable. Entonces se trata de investigar todas las posibles elecciones de
a, c y Xo que dan el máximo período en una secuencia deseable.
Resultando que, como se verá a continuación, todos los valores de esos
parámetros pueden caracterizarse muy simplemente. Cuando m es el
producto de distintos primos, sólo a=l produce el máximo tamaño del
período, pero cuando m es divisible por una potencia alta de algún primo,
hay considerable amplitud en la elección de a, tal y como lo muestra el
siguiente teorema debido a Greenberger [Greenberger 15] y Hull y Dobell
[Hull 18].
i TEOREMA 1.
La condición necesaria y suficiente, para que la secuencia congruencial
lineal definida por m, a, c, y XQ tenga período de tamaño m es que se cumpla que:
1. c sea primo con m.
2. b = a - 1 sea múltiplo de p, para todo primo p dividiendo a m.
3. b sea múltiplo de 4, si m es múltiplo de 4.
Para demostrar el teorema, previamente hay que, usando la técnica tan
conocida de la inteligencia artificial, de reducción o descomposición de un problema en
subproblemas, establecer los lemas siguientes:
-88
LEMA 1
Sea p un número primo, y sea e un entero positivo, con pe >2. Si
X = 1 {módulop^), X 1 (módulo p^* ) ,
entonces
e + 2. x'' = 1 (módulo p^ ) , x^ ^ 1 (módulo p^ ")
DEMOSTRACIÓN
'4''
Se tiene que x = 1 + qpe para algún entero q que no es múltiplo de p. Por la
fórmula binomial:
x ^ = l + ( ^ j q p ^ + ... + ( ^ )qP-^p'^-' '^ + q^p^
= . . , . - ( . . l ( ^ ) , . . . l ( ^ ) , V . - . . . l ( M , - P —
La cantidad dentro del paréntesis más externo, es un entero, y, de hecho, cada término
parentizado es múltiplo de p, excepto el primer término. Si 1 <k < p el coeficiente
binomial
es divisible por p, por lo tanto:
i (p) , . - . , . . - . . .
-89-
es divisible por p(k-l)e; y el último término es qP~l p(p~l) e-1, que es divisible por p ya
que (p-1) e >1 cuando pe >2. De este modo,
- t ' '^ 1 + qp^'^^ (módulop^'^^)
lo que completa la demostración.
LEMA 2
Sea la descomposición de m en factores primos:
el tamaño x del período de la secuencia con^uencial determinada por (XQ, a, c, m) es
el mínimo común múltiplo de los tamaños Tj de los períodos de las secuencias
congruenciales (XQ mod p;® , a mod Pj^J, c mod Pí® ,Pj ), 1 ^ j ^ t .
DEMOSTRACIÓN
Se hace por inducción sobre t, para lo cual basta demostrar que si mi y m2
son relativamente primos, el tamaño x de la secuencia congruencial determinado por
los parámetros (XQ, a, c, mi m2) es el mínimo común múltiplo de los tamaños TJ y X2
de los períodos de las secuencias determinadas por (XQ mod mi, a mod mi, c mod mi,
'^l) y (XQ mod m2, a mod m2> c mod m2, m2). Pero como ya se vio en la ecuación (3.4),
si los elementos de estas tres secuencias se denotan, respectivamente, por Xn, Yn, y
Zn, se tendrá que:
Y =X modm, y Z ~X modm„, para todo n^O
- 9 0 -
Por lo tanto, teniendo en cuenta (3.4) se encuentra que la condición
necesaria y suficiente para que
n k
es que
Y =Y y Z=Z, (3.5) n k n K
Sea T' el mínimo común múltiplo de T-^ y T2; entonces se quiere probar que
T' = T. Ya que Xn = Xn+x para todo n deseablemente grande, se tiene que Yn = Yn+x 5
por lo tanto, T es múltiplo Xj y Zn = Zn+xj por consiguiente, T es múltiplo de T2; de
este modo, se tiene que T > T ' . Además, se sabe que Yn = Yn+x' y Zn = Zn+x' para todo
n deseablemente grande; por lo tanto, por la fórmula (3.5), es Xn|= Xn+x'> lo Que prueba
que T < T ' .
Ahora ya se está en condiciones de demostrar el teorema 1, puesto que el
lema 2, basta para demostrar el teorema cuando m es una potencia de un número primo.
La condición necesaria y suficiente para que
«1 «í «1 e,
Py •••P¿ = x= mcm(t^, ...,xp áXj...x^ <Pj ...p^
es que
- r, J z. = p . para 1 ^j^t
Por lo tanto, supóngase que m= pe, donde p es primo, y e un entero positivo.
El teorema es obviamente cierto cuado a=l; de este modo, se puede tomar a>l. La
condición necesaria y suficiente para que el período pueda ser de tamaño m, es que
cada poáible entero Oáx<m aparezca en el período, ya que ningún valor aparece en el
período más de una vez. En consecuencia, la condición necesaria y suficiente para que
91 -
el período sea de tamaño m, es que el período de la secuencia con XQ = O sea de tamaño
m, y está justificado suponer que Xo=0. Por la fórmula (3.2), se tiene que:
o " - l X =1 ]cmodm (3.6)
" V a - 1
Si c no es relativamente primo a m, este valor Xn nunca puede ser igual a 1; de este
modo, la condición 1 del teorema 1 es necesaria. La condición necesaria y suficiente
para que el período tenga tamaño m, es que el menor valor positivo de n para el cual
Xn=Xo=0 es n=m. Por la fórmula (3.6) y la condición 1 del teorema 1, el teorema 1 se
reduce ahora a probar el siguiente hecho; dado por el
'4'"
LEMA 3
Supóngase que 1 < a < pe, siendo p primo. Si x es el menor entero positivo
para el cual (a^ - l)/(a-l) = O (módulo pe), entonces la condición necesaria y suficiente
para que
es que:
a = l {módulop) cuando p>2
a = l (módulo 4) cuando p = 2
DEMOSTRACIÓN
Supóngase que x = ps. Si a ^ 1 (módulo p), entonces la condición necesaria y
suficiente para que (a" - l)/(a-l) = O (módulo pe) es qué ai^-l = 0 (módulo pe). La
condición aP®-l = 0 (módulo pe) implica entonces que aP® = 1 (módulo p); pero, por el
teorema de Fermat [Knuth 22]; se tiene que aP® = a (módulo p); por lo tanto, a ^ l
(módulo p) que conduce a una contradicción. Y si p=2 y a=3 (módulo 4), se tiene que
92
(a2e 1 -i)/(a-l) = O (módulo 2e) cuando e >1. Esto muestra que, en general, es necesario
tener a=l+qpf, donde pf>2 y q no es múltiplo de p, cuando T = pe.
Ahora sólo queda por probar que dicha condición es suficiente para hacer
x=pe. Por aplicación repetida del lema 1, se encuentra que:
g g
a = limódulop' ^),a^ ^ I {módulo p''^^'^ ) ,paratodog>Q
Y, por lo tanto:
(a"^ _ l ) / ( a - l ) = 0 (módulop^)
ia^ _ l ) / ( a - l ) ^ 0 {módulop^""'^)
(3.7)
En particular (aP^-l)/(a-l) = 0 (módulo pe). Ahora la secuencia congruencial
(O,a, 1, pe) tiene Xn = (a" -l)/(a-l) (módulo pe); por consiguiente, tiene un período de
tamaño x; es decir, la condición necesaria y suficiente para que Xn = O, es que n sea
múltiplo de T. En consecuencia, pe es múltiplo de x. Esto sólo puede suceder si X = p?
para algún g, y las relaciones dadas en (3.7) implican que X=pe, lo que completa la
demostración del lema 3 y del teorema 1.
3.5.4. El Método de Generación Propuesto.
Teniendo en cuenta todas las consideraciones teóricas acerca de los números
aleatorios y su generación consideradas a lo largo de este capítulo 3, se puede
establecer un método que da el "más elegante" y simple generador de números
aleatorios para el lenguaje máquina de la mayoría de los computadores actuales. Este
método puede expresarse como sigue.
-93-
Inicializar el progn^ama colocando en una variable entera X algún valor XQ.
Esta variable sólo se usa con el propósito de la generación de los números aleatorios.
Siempre que se necesite un nuevo número aleatorio, colocar:
X *— {aX + c) mod m
y usar el nuevo valor de X como el valor aleatorio. Es necesario elegir XQ, a, C y m
adecuadamente, y usar los números aleatorios "sabiamente" de acuerdo con los
principios siguientes:
a) El número XQ, denominado "semilla" puede elegirse arbitrariamente. Si se
desean varias series de números aleatorios, comogés el caso, y además
recuperarlos de modo reversible, colocar como nuevo XQ el último valor
calculado de X.
b) El número m debe ser el mayor posible, al menos 2'*'', siendo muy
conveniente que sea del tamaño de la palabra del computador, ya que esto
hace la computación de (aX+c) módulo m, bastante eficiente. Esta
computación debe hacerse exactamente sin errores de redondeo. La
elección de m ya se discutió en detalle en 3.5.3. (a).
c) Si m es una potencia de 2; es decir, si se usa un computador binario,
tomar a de modo que sea a mod 8=5. Si m es una potencia de 10; o sea, si
se emplea un computador decimal, elegir a de manera que a mod 200 = 21.
Esta elección de a junto con la elección de c, que se dará más adelante,
asegura que el generador de números aleatorios producirá todos los m
diferentes valores posibles de X antes de comenzar a repetirse y asegura
•" una potencia alta.
-94
d) El multiplicador a debe elegirse preferentemente entre .Olm y .99m y sus
dígitos decimales o binarios no deberían tener un patrón regular simple.
Eligiendo alguna constante, tal como a=3141592621, que satisface las
condiciones de (c), se obtiene un multiplicador razonablemente bueno.
Además, deberían hacérsele distintos test si el generador de números
aleatorios se va a usar ampliamente. El multiplicador debería pasar por lo
menos el test espectral, que se verá más adelante, antes de recibir todas
las "bendiciones" de calidad.
e) El valor de c es indiferente cuando a es un buen multiplicador, salvo que c
no debe tener ningún factor común con m. De este modo, se puede elegir
c=l ó c=a, según convenga.
f) Los dígitos menos significativos, los de la derecha, de X no son muy
aleatorios, de este modo, las decisiones basadas en X deberían estar
influenciadas, en primer término, por los dígitos más significativos. Es
generalmente, mejor pensar en X como una fracción aleatoria X/m entre
O y m; es decir, visualizar X con un punto decimal a su izquierda; antes
que verlo como un entero aleatorio entre O y m-1; puesto que para
computar un entero aleatorio entre O y k-1 hay que multiplicar por k y
truncar el resultado.
Los principios que informan el método propuesto que se acaban de exponer,
se aplican principalmente a la codificación en lenguaje máquina. En lenguajes de
programación de alto nivel, es imposible con frecuencia utilizar las, características
dependientes de la máquina tal como el módulo entero aritmético tamaño de la palabra,
y> en algunos compiladores, el producto de dos enteros grandes. En consecuencia, y para
mantener el grado de generalidad y transportabilidad del sistema propuesto, se va a
95
presentar ahora otra técnica capaz de proporcionar un generador de números aleatorios
que está eficientemente descrito en un lenguaje de alto nivel, en este caso, el LISP.
(* Función con la que se consigue la semilla necesaria para generarla secuencia de números aleatorios)
(VAL [LAMBDA (CLAVE)
(COND [(NOT (NULL CLAVE))
(PLUS (QUOTIENT (ITIMES 7 (CAR CLAVE)) 10000.0)
(VAL (CDR CLAVE] (T 0])
(RANGO [LAMBOA (NUMERO)
(*• Genera un numero aleatorio comprendido entre O y (numero-1) para ello genera un numero aleatorio llamando al GEN-ALEA lo considera como si fuera fraccionario y lo multiplica por NUMERO quedando solo la parte entera)-
(SETQ ULTIMO (GEN-ALEA ULTIMO)) (FIX (TIMES ULTIMO NUMERO]) 'g
(GEN-ALEA [LAMBDA (ALE;
(PLUS (TIMES .3141592 ALE) .1073742])
(*• Generador aleatorio de números. FUNCIÓN GENERADORA)
Este mismo método puede escribirse en FORTRAN, ya que sólo usa
aritmética entera entre 10~9 y 109. El método está dado como una subrutina
FUNCTION para que pueda usarse llamándola desde cualquier programa principal.
FUNCTION lAL (lA)
DIMENSIÓN lA (1)
C SUPONER QUE IA(1) ... IA(55) SE HAN INICIALIZADO ADECUADAMENTE
C ESTA SUBRUTINA REUBICA EN EL VECTOR lA LOS SIGUIENTES 55
C NÚMEROS DE UNA SECUENCIA SEUDOALEATORIA, Y DEVUELVE EL
C VALOR 1.
-" DO 1 I = 1,24
J = lA (I) - IA (1+31)
96
IF (J.LT.0) J=J+1000000000
IA(I) = J
1 CONTINUÉ
DO 2 1=25,55
J = lA (I) - lA (1-24)
IF (J,LT.0) J=J+1000000000
lA (I) = J
2 CONTINUÉ
IAL= 1
RETURN
END
Para usar estos números en un programa FORTRAN, sea JALE una variable
entera auxiliar; se puede obtener el siguiente número aleatorio U, como una fracción
entre 0 y 1 escribiendo las tres sentencias siguientes:
JALE = JALE + 1
IF (JALE.GT.55) JALE = lAL (lA)
LI = FLOAT (lA(JALE))* 1.0 E-9
Obviamente al comienzo del programa es necesario dimensionar lA a 55 y
colocar JALE igual a 55, así como hay que inicializar el vector lA. Una inicialización
idónea puede hacerse llamando a la siguiente subrutina colocando en IX cualquier valor
entero, cumpliendo los requisitos ya indicados, que se va a emplear como XQ.
SUBROUTINE IN (IA,IX)
DIMENSIÓN IA(1)
C ESTA SUBRUTINA COLOCA EN lA (1),...,IA(55) LOS VALORES
-97
C INICIALES ADECUADOS PARA LLAMARLOS MAS TARDE EN lAL(IA).
C IX ES UN VALOR ENTERO APROPIADO ENTRE O Y 999999999.
IA(55) = IX
J = IX
K = 1
DO 1 1= 1,54
II = MOD (21*1,55)
lA (II) = K
K = J-K
' IF (K.LT.0) K = K+1000000000
J = lA (II)
-r" 1 CONTINUÉ
lAL (lA)
lAL (lA)
lAL (lA)
RETURN
END
Este método dado de forma modular, es lo suficientemente flexible como
para adecuarse a las distintas especificaciones de los distintos computadores existentes
actualmente en el mercado. Y, sin duda, a los que puedan aparecer, al menos, en un
futuro inmediato. Nótese, por ejemplo, que 229 < io9 < 230; luego cualquier número par
grande puede realmente ser sustituido por 109 en estas subrutinas, si se efectúa un
cambio correspondiente de la computación de la fracción aleatoria U. Además, sería
posible también trabajar con números en coma flotante, en lugar de con enteros,
haciendo en los programas los cambios adecuados, con tal de que la aritmética en coma
flotante de los computadores sea lo suficientemente exacta como proporcionar
resultados exactos en todos los cálculos que se necesitan. La mayoría de los
-98
computadores binarios, serán capaces de cumplimentar estos requerimientos cuando
todos los números con los que se van a tratar tienen la forma a/2P, siendo a un entero,
0<a<2P y, hay p bits de precisión en las fracciones en coma flotante. Los números
(24,55) en estas subrutinas, pueden reemplazarse por cualquier par de valores (j,k) de la
tabla dada por la figura 3.2. para k>50; las constantes 31, 25, 54 y 21 deben entonces
reemplazarse por k-j, j+1, k-1, y d respectivamente, siendo d relativamente primo a k y
d « 0.328k.
(1,2)
(1,3)
(1,4)
(2,5)
(1,6)
(1,7)
(3,7)
(4,9)
(3,10)
(2,11)
(1,15)
(4,15)
(7,15)
(3,17)
(5,17)
(6,17)
(7,18)
(3,20)
(2,21)
(1,22)
(5,23)
(9,23)
(3,25)
(7,25)
(3,28)
(9,28)
(13,28)
(2,29)
(3,31)
(6,31)
(7,31)
(13,31)
(13,33)
(2,35)
(11,36)
(4,39)
(8,39)
(14,39)
(3,41)
(20,41)
(5,47)
(14,47)
(20,47)
(21,47)
(9,49)
(12,49)
(15,49)
(22,49)
(3,52)
(19,52)
(21,52)
(24,55)
(7,57)
(22,57)
(19,58)
(1,60)
(11,60)
(1,63)
(5,63)
(31,63)
(18,65)
(32,65)
(9,68).
(33,68)
(6,71)
(9,71)
(18,71)
(20,71)
(35,71)
(25,73)
(28,73)
(31,73)
(9,79)
(19,79)
(4,81)
(16,81)
(35,81)
(13,84)
(13,87)
(38,89)
(2,93)
(21,94)
(11,95)
(17,95)
(6,97)
(12,97)
(33,97)
(34,97)
(11,98)
(27,98)
FIGURA 3.2. TABLA DE PARES PRODUCIENDO LARGOS PERIODOS MODULO 2.
Finalmente, antes de pasar a la comprobación de la aleatoriedad del método
propuesto, decir unas palabras justificativas del por qué de la elección de un método de
generación de números aleatorios nuevo, cuando hay tantos en el mercado.
Lamentablemente, la inmensa mayoría de los generadores actuales o violan o no siguen
las recomendaciones teóricas exigibles para una "buena" aleatoriedad. Como afirma
Knuth [Knuth 22], por ejemplo, el generador más usado actualmente el RANDU es
realmenj:e "horrible". Como quiera que sea, el uso de números que sean de "verdad"
aleatorios es consubstancial con el sistema de criptografiado propuesto, es por eso que
99-
es condición "sine qua non" del éxito del mismo el conseguir un buen generador de
números aleatorios, dado que los existentes no reunían todas las garantías necesarias.
3.5.5."Test" de Aleatoriedad.
3.5.5.1. Introducción.
Como ya ha quedado dicho, el principal requerimiento del sistema va a ser
la obtención de secuencias de números que se comporten como si fuesen aleatorios. La
cuestión estriba en saber cu-ando una secuencia dada de números es, o no, aleatoria. Por
ejemplo, durante mucho tiempo, los matemáticos consideraron que; la expansión decimal 'i'"
del número n era una serie aleatoria; sin embargo, como apunta el "Dr. Matrix" [Gadner
13], para los modernos numerologistas, tiene notables repeticiones. Así el primer par de
números que se repite es el 26, y el segundo aparece al principio de una triple
repetición cuya continuación es imagen especular de la primera tal y como se ve en la
figura 3.3.
3.141592653589.7 9,^^4 6 2 6 4 3 ^ ^ ^ 5 O vy> ^^Ui
FIGURA 3.3. REPETICIONES EN EL NUMERO H
Sólo la teoría estadística proporciona algunas medidas para evaluar la
aleatoriedad de una secuencia de números. Se puede decir que el número de test que
pueden concebirse para medir la aleatoriedad, es prácticamente infinito, pero sólo hay
unos cuantos que se han mostrado como más útiles y fácilmente adaptables al uso
computacional, dos de los cuales, naturalmente los más ampliamente contrastados, son
los que aquí se van a considerar. Por otra parte, si una secuencia es aleatoria respecto a
-100
los test Ti, T2,.">Tn> en general no se puede estar seguro de que no fracase cuando se
la somete a un test adicional Tn+i. Con todo, cada test proporciona una confianza
incremental de la aleatoriedad de la secuencia.
Se pueden distinguir tres tipos de test: "Empíricos", para los cuales el
computador manipula grupos de números de una secuencia y evalúa ciertos criterios
estadísticos. "Teóricos", para los que se establecen características de las secuencias
usando métodos de teoría de números basados en la regla de recurrencia empleada para
formar la secuencia. Y, finalmente, los "generales" que pueden considerarse "híbridos"
puesto que, basándose en consideraciones teóricas, actúan de un modo similar a los
empíricos. Entre estos el más conocido y ampliamente empleado.es el "Chi-cuadrado" i"
que es por el que se va a empezar aquí.
3.5.5.2."Test" de X^
El "test" X^ (Ji o Chi cuadrado) es quizás el mejor conocido de todos los test
estadísticos y es un método básico que se usa en conexión con muchos otros tests. Su
descripción general es la siguiente: Supóngase que en una determinada muestra o
secuencia de números se observan una serie de posibles sucesos o eventos Ei, E2> ... ,
Ek, que ocurren con frecuencias observadas o empíricas Oi, 02» •••» Ok y que, según las
reglas de la probabilidad, se esperaba que ocurrieran con frecuencias teóricas e i , e2, ...
, ek, tal y como se muestra en la tabla dada por la figura 3.4. A menudo, como es este
el caso, se desea saber si las frecuencias observadas difieren significativamente de las
frecuencia esperadas.
101
¡\
El
Ol
ei
E2
02
62
E3
03
63
• «•
• ••
• ••
Ek
Ok
ek
. )E FRECUENCIAS OBSERVADAS Y ESPERADAS
. la discrepancia existente entre las frecuencias observadas y
por el estadístico X2 dado por:
+ + ... + (0 , - e J k (O.-e.r
= 2 -7^ 7 = 1 J
(3.8)
ocias es N,
y 0 = y e.=w'
frecuencias observadas y teóricas concuerdan exactamente;
coinciden exactamente. A valores mayores de X2, mayores
las frecuencias observadas y esperadas.
ón muestral de x2 se aproxima muy estrechamente a la
Y = Y^X'^-e' (3.9)
las son al menos iguales a 5, y mejoran dicha aproximación
ín la fórmula (3.9) v representa los grados de libertad, cuyo
102
a) V = k-1 si las frecuencias esperadas pueden calcularse sin tener que
estimar parámetros poblaeionales con las estadísticas muéstrales. El restar
1 a k está motivado por el hecho de que si son conocidas k-1 de las
frecuencias esperadas, la frecuencia restante puede calcularse trivialmente.
Este va a ser el caso que aquí se contemple.
b) V = k-l-m si las frecuencias esperadas solamente pueden calcularse
estimando m parámetros de la población a partir de las estadísticas
muéstrales.
V En la práctica, las frecuencias esperadas se calculan de acuerdo con la
hipótesis nula HQ. Para llegar a tomar decisiones estadísticas, conviene hacer
determinados supuestos o conjeturas acerca de las "poblaciones" que se estudian. Tales
supuestos que pueden ser, o no, ciertos reciben el nombre de hipótesis estadísticas. En
muchos casos, se formulan hipótesis estadísticas con el solo propósito de rechazarlas o
invalidarlas. Por ejemplo, como es el caso, si se quiere decidir sobre si un
procedimiento es mejor que otro, se formula la hipótesis de que "no hay diferencia"
entre ambos. Tales hipótesis se conocen por el nombre de "hipótesis nulas" y se denotan
por HQ. Cualquier hipótesis que difiera de una dada se llama "hipótesis alternativa".
Si en el supuesto de que una hipótesis determinada es cierta, se encuentra
que los resultados observados en una muestra al azar difieren significativamente de
aquellos que cabía esperar con la hipótesis y con la variación propia del muestreo,
diríase que las diferencias observadas son significativas, estándose en condición de
rechazar la hipótesis, o al menos de no aceptarla de acuerdo con la evidencia obtenida.
Los procedimientos que facilitan el decidir si una hipótesis se acepta o se rechaza, o el
determinar si las muestras observadas difieren significativamente de los resultados
103
esperados se denominan "ensayos de hipótesis" o de "significación" o, aún, "reglas de
decisión".
Si se rechaza una hipótesis cuando debería ser aceptada, se dice que se
comete un "error del tipo I" y, por el contrario, si se acepta una hipótesis que debería
ser rechazada, se dice que se comete un "error de tipo II". Obviamente, en ambos casos,
se comete un error al tomar una decisión equivocada. A la probabilidad máxima con la
que en el ensayo de una hipótesis se puede cometer un error del tipo I se llama "nivel de
significación" del ensayo. Esta probabilidad se denota a veces por a, y generalmente se
fija antes de la extracción de las muestras, de modo que los resultados obtenidos no
influyen en la elección. En la práctica, se acostumbra a utilizar niveles de significación
del 0,05 ó 0,01. En el primer caso, se está diciendo que hay aproximadamente 5
ocasiones de 100 en que se rechaza la hipótesis cuando debería ser aceptada; es decir,
se está en un 95% de confianza de que se toma la decisión adecuada. En tal caso, se
dice que la hipótesis ha sido rechazada al "nivel de significación" del 0,05, lo que
significa que se puede cometer error con una probabilidad de 0,05.
Si bajo la hipótesis HQ el valor calculado de x2, dado por la fórmula (3.8), es
mayor que algún valor crítico, tal como X^g gg ó X^Q gg, que son los valores críticos a
los niveles de significación de 0,05 y 0,01, respectivamente, se deduce que las
frecuencias observadas difieren significativamente de las esperadas y se rechaza HQ. En
caso contrario, se aceptará o al menos no se rechazará la hipótesis. Debe advertirse que
aquellas situaciones en las que X2 está muy próximo a cero, deben mirarse con cierto
recelo, puesto que es raro que las frecuencias observadas concuerden demasiado bien
con las esperadas. Para examinar tales situaciones, se puede determinar si el valor
calculado de X2 es menor que X^Q gg ó X'^g^gj, en cuyos casos se decide que la
concordancia es bastante buena a los niveles de significación indicados.
104
Pues bien, sometido el generador de números aleatorios propuesto con
valores de Xo=cualquiera, a=3141592653, c=2718281829 y m=235, al test de X2 ha dado
resultados satisfactorios.
El test de X2 se aplica a la situación en la cual las observaciones caen
dentro de un número finito de categorías. Sin embargo, no es insólito considerar
cantidades que puedan tomar "infinitos" valores. Para estos casos, se utiliza el test
Kolmogorov-Smirnov ("K-S"), que aquí no se va a considerar y que, está tratado de
forma casi exhaustiva por Knuth [Knuth 22]. La principal diferencia entre ambos test es
que justamente el X2, se aplica a distribuciones en las que F(x) tiene saltos, en tanto
que el K-S se aplica a distribuciones en las que F(x) no presenta saltos. Sin embargo, el ' i '
test K-S puede usarse conjuntamente con el x2. Por ejemplo, supóngase que se efectúan
10 test X2 independientes sobre distintas partes de una secuencia aleatoria,
obteniéndose diez valores distintos Xi, X2,.-> Xio- A continuación, se ajusta una
distribución empírica a esos valores y se compara con la distribución teórica K-S.
3.5.5.3.Test espectral
Los resultados teóricos proporcionan un mayor entendimiento acerca de los
métodos de generación que los aportados por los métodos empíricos de "ensayo y error".
Si se conocen los resultados de algunos test antes de que realmente se generen los
números, evidentemente hay más facilidad de escoger adecuadamente a, m y c, si se
tratan, como es el caso, de generadores congruenciales lineales.
El "test espectral" es una forma especialmente importante de verificar la
calidad de los generadores de números aleatorios por el método congruencial lineal. Por
una parte, porque todos los buenos generadores pasan el test y, por otra, porque todos -i
los generadores considerados malos fracasan ante dicho test. De este modo, es con
105-
mucho el más potente de los test conocidos y, por esta razón, merece atención
particular.
Este test, además, engloba aspectos de los test tanto teóricos como
prácticos ya mencionados. Es similar a un test teórico porque trata con propiedades del
período completo de la secuencia, y es como un test empírico debido a que requiere un
programa de computador para determinar los resultados.
El más importante criterio de aleatoriedad parece residir en las propiedades
de la distribución combinada de t elementos consecutivos de la secuencia, y el test
espectral trata directamente con esta distribución. Si se tiene una secuencia (Un) de
r período m, la idea es analizar el conjunto de todos los m puntos
« ^ . ' ^ „ . l ^n.t.l>^ (3.10)
en un espacio t-dimensional.
Por simplicidad, se va a suponer que se tiene una secuencia congruencial
lineal (XQ, a, c, m) de tamaño máximo de periodo m, de este modo c*0, o que m es
primo y c=0 y el tamaño del periodo es m-1. En este último caso, se añadirá el punto
(0,0,...,0) al conjunto dado por (3.10), de modo que siempre existen en total m puntos;
este punto extra tiene un efecto despreciable cuando m es grande, y hace la teoría
mucho más sencilla. Con estas consideraciones, (3.10) puede reescribirse como sigue:
{— (x, s(x), s(six)),.'.'., s^ \x)) 1 o Sx<m} ' (3.11) m
donde
s(x) = (ax + c) mod m
-106-
es el "sucesor" de x. Hay que señalar que sólo se está considerando el conjunto de todos
los puntos en t dimensiones, y no el orden en el cual dichos puntos se generan
realmente. Pero el orden de generación se refleja en la dependencia entre componentes
de los vectores; y el test espectral estudia tai dependencia para varias dimensiones t
tratando con la totalidad de todos los puntos de (3.11).
Por ejemplo, la figura 3.5, muestra un caso típico pequeño en 2 y 3
dimensiones, para el generador con
s(x) = (137x -I- 187) mod 256
Naturalmente, que un generador con un periodo de tamaño 256 difícilmente sera
aleatorio, pero 256 es lo suficientemente pequeño como para dibujar un diagrama y
alcanzar algún entendimiento antes de pasar a valores m más largos que son los que
tienen interés práctico.
(a)
FIGURA 3.5. (a) "Espacio" bidimensional formado por todos los pares de puntos
sucesivos (Xn, Xn+l), cuando Xn+1 = (137 Xn +187) mod 256. (b) Espacio
tridimensional de los triples (Xn, Xn+1> Xn+2)«
-107-
Quizás la cosa más chocante acerca de los patrones de cajas de la figura
3.5., es que se pueden cubrir todos ellos por un pequeño número de líneas paralelas. De
hecho, hay distintas familias de líneas paralelas que tocarían esos puntos. Si el mismo
generador se considera en tres dimensiones, se obtienen 256 puntos en un cubo, obtenido
añadiéndole una componente en la parte superior s(s(x)) a cada uno de los 256 puntos
(x,s(x)) en el plano de la figura 3.5 (a), como lo muestra la figura 3.5 (b). Imagínese que
esta estructura tipo cristal en tres dimensiones, se ha realizado en un modelo físico; es
decir, un cubo real, cuando se le gira, se advierten varias familias de planos paralelos
que ligan todos los puntos.
A primera vista, se puede pensar que tal comportamiento sistemático es tan
no aleatorio como para hacer a los generadores congruenciales bastante carentes de
valor; pero una reflexión más cuidadosa, lleva a recordar que m es lo suficiente grande
en la práctica como para proporcionar un mejor discernimiento. La estructura regalar
en la figura 3.5, es esencialmente el "grano" que se ve cuando se examinan los números
aleatorios bajo un microscopio de gran poder. Si se toman números verdaderamente
aleatorios entre O y 1 y se redondean o truncan a una exactitud finita, de modo tal que
es un entero múltiplo de 1/v para algún número dado v, entonces los puntos
t-dimensionales en (3.10) que se obtienen, tendrán un carácter extremadamente regular
cuando se observan a través del microscopio.
Sea l/v2 la distancia máxima entre líneas, tomada sobre todas las familias
de rectas paralelas que cubren los puntos {(x/m), s(x) / m} en dos dimensiones. Se
llamará V2 la exactitud bidimensional del generador de números aleatorios, ya que los
pares de números sucesivos tienen una estructura fina que es esencialmente buena a una
parte en V2. Similarmente, sea I/V3 la distancia máxima entre planos, tomadas sobre
todas las familias de planos paralelos que cubren todos los puntos {(x/m), s(x)/m,
s(s(x))/m)}; llamando a V3 la exactitud en tres dimensiones. La exactitud vt t-
-108
dimensional es la recíproca de la distancia máxima entre hiperplanos, tomadas sobre
todas las familias de hiperplanos paralelos (t-l)-dimensionales que cubren todos los
puntos {(x/m), s(x)/m,..., st-1 (x)/m)}.
La diferencia esencial entre secuencias periódicas y secuencias realmente
aleatorias que han sido truncadas a múltiplos de 1/v, es que la "exactitud" de las
secuencias verdaderamente aleatorias es la misma en todas las dimensiones, mientras
que la "exactitud" de las secuencias periódicas disminuye a medida de que t aumenta.
Verdaderamente, ya que sólo hay m puntos en el cubo t-dimensional cuando m es el
tamaño del periodo, no se puede alcanzar una exactitud t-dimensional de más que
aproximadamente mi A.
-r'
Cuando se considera la independencia de t valores consecutivos, los números
aleatorios generados con computador se comportarán esencialmente como si se tomaran
números realmente aleatorios y se truncaran a log v bits, donde vt decrece cuando se
incrementa t. En la práctica, tal variación de exactitud es habitualmente todo lo que se
necesita. La exactitud 10-dimensional es 235, en el sentido de que todas las (235)10
posibles 10-ernas (Un, Un+l>—jUn+9) serían igualmente probables sobre una máquina de
35-bits; para valores tan grandes de t se necesitan sólo unos pocos de los bits iniciales
de (Un, Un+lv>Un+t-l) P^^^ ^"^ se comporten como si fueran aleatorios
independientemente.
Por otra parte, cuando una aplicación exige alta resolución de la secuencia
de números aleatorios, las secuencias congruenciales lineales simples serán
necesariamente inadecuadas. En ese caso, debería usarse un generador con un periodo
más largo, incluso aunque sólo sea realmente generado una pequeña fracción del
periodo. Elevar al cuadrado el periodo elevará esencialmente el cuadrado de la
109-
exactitud en dimensiones más altas; es decir, doblará el número efectivo de bits de
precisión.
El test espectral se basa en los valores de vt para t pequeño, tal como
2 ^ t s 6 . Dimensiones como 2, 3 y 4 parecen ser adecuadas para detectar deficiencias
importantes en una secuencia, pero ya que se considera el periodo entero, parece mejor
ser algo precavido y elevarlo en una dimensión o dos. Por otra parte, los valores de vt
para t > 10 parecen no tener significación práctica. Esto es una suerte, debido a que
parece ser difícil calcular vt cuando t > 10:
Puede parecer al principio que debería aplicarse el test espectral sólo para
un valor de t deseablemente alto; si un generador pasa el test en tres dimensiones,
parece plausible que también debería pasar el test de dos dimensiones; por lo tanto,
puede omitirse este último. La falacia de este razonamiento aparece porque se aplican
condiciones más estrictas en dimensiones menores. Una situación similar ocurre con el
test serial: Considerar un generador que tenga casi el mismo número de puntos en cada
subcubo del cubo unidad, cuando este se ha dividido en 64 subcubos de tamaño
1/4x1/4x1/4; este mismo generador puede producir subcuadrados completamente vacíos
del cuadrado unidad, cuando este se ha dividido en 64 subcuadrados de tamaño 1/8x1/8.
Ya que se incrementan las expectativas en dimensiones menores, es necesario realizar
un test separado para cada dimensión.
No es siempre verdad que vt ^ ml/t , aunque este límite superior es válido
cuando los puntos forman una parrilla rectangular. Por ejemplo, resulta que V2 = V274
>V256 en la figura 3.5, debido a que una estructura próxima a la hexagonal conduce los
m puntos agrupados que sería posible en una ordenación estrictamente rectangular.
-110
Con el fin de analizar el conjunto básico (3.10) se va a comenzar con la
observación de que
1 . faJx\a\a\...\aJ-^)c\ — s'(x) = 1 I mod 1 m \ m /
Es posible eliminar la operación "módulo 1" extendiendo el conjunto
periódicamente, tomando infinitas copias del hipercubo t-dimensional original,
procediendo en todas las direcciones. Esto proporciona el conjunto:
X s{x) s' (x) L = {(— + ^ , — + k , + kUenteros x , k k , k }
m m m Í ¿ c
X ax a X ^ • = { ^ + - + ^ ' ~ + ^ 2 - - ^ ; r +k\\enterosx,k^,k^,...,k^
m '• m '• m
siendo:
1 t 9 V- = - (0,c, (1 +a)c,...,(l + a + ... +a'~^)c)
un vector constante. La variable k i es redundante en esta representación de L, porque
se puede cambiar, sin pérdida de generalidad, (x, k i , k2,...,kt) a (x+kim, O, k2-aki>...,kt-
a t - l k i ) , reduciendo ki a cero. Obteniéndose, consecuentemente la fórmula,
comparat ivamente más sencilla:
siendo
1 V=-{\,a,a,..,a'-\ (3.12)
^ m ... - •
V = (0,1,0,...,0), V3 = (0,0,1,...,0),...,V^ = (0,0,0,...,1) (3.13)
-111
Los puntos (xi,x2v>xt) de L que satisfacen 0<xj<l para todo j , son precisamente los m
puntos del conjunto original (3.10).
Es de señalar, que el incremento c sólo aparece en VQ, y el efecto de VQ es
meramente desplazar todos los elementos de L sin cambiar sus distancias relativas; por
lo tanto, c "no afecta al test espectral en absoluto", y se puede suponer que VQ =
(0,0,0,..,0) cuando se calcula Vf Cuando VQ es el vector cero se tiene el así llamado
"retículo" de puntos:
^0 " ^1^1 "^^2^2'''-^^t^tI ^'^^«'•osyvy2' -'y)
Y la meta es estudiar las distancias entre hiperplanos (t-l)-dimensionales adyacentes,
en familias de hiperplanos paralelos que cubren todos los puntos efe LQ.
Una familia de hiperplanos (t-l)-dimensionales, puede definirse por un
vector no nulo U=(ui,...,ut) que es perpendicular a todos ellos; y entonces el conjunto de
puntos sobre un hiperplano particular es:
[{x^,...,x^\ x^u^ + ...+x^u^ = q)
siendo q una constante distinta para cada hiperplano en la familia. En otros términos,
cada hiperplano es el conjunto de todos los X para los cuales el producto escalar X.U
tiene un valor q dado. En el caso que aquí concierne, los hiperplanos están separados por
una distancia fija, y uno de ellos contiene (0,0,...,0); por lo tanto, es posible ajustar la
magnitud de U de modo que el conjunto de todos los valores enteros q proporcione todos
los hiperplanos de la familia. Entonces, la distancia entre hiperplanos vecinos es la
distancia mínima de (0,0,...,0) al hiperplano que tiene de valor q=l, a saber
^ ' ^ ^ ' ' (3.14) realx ,...,x^
-112
La desigualdad de Cauchy dice que
{x^u^ + ... + x^uf < (x5 + ...+xJ) (u^+... + u )
Y, por lo tanto, el mínimo en (3.14) se produce cuando para cada
x. = u./(u^, + ... + u^) J J ^ t
la distancia entre hiperplanos vecinos es:
1/V^ + ... + U = 1/dimensión ({/) '*
Dicho de otro modo, la cantidad vt buscada, es precisamente la dimensión del vector U
más pequeño que define una familia de hiperplanos
{X.U = q\q entero)
conteniendo todos los elementos de LQ. Tal vector
debe ser no nulo, y debe satisfacer que V.U = entero para todo V en LQ. En particular,
ya que los puntos (1,0,...,0), (0,1,...,0),...,(0,0,...,1) están todos en LQ, todos los uj, deben
ser enteros. Además, ya que Vi está en LQ, se debe tener que l/m(ui+au2+...+at-l ut)=
entero; es decir:
u^ + aw2+..+a'"^u^ =0 (mocím) (3.15)
Recíprocamente, cualquier vector entero no nulo U=(ui,...,ut) satisfaciendo (3.15),
define una familia de hiperplanos con las propiedades exigidas, ya que todos los puntos
113-
en Lo estarán cubiertos: (yiVi+...+ytVt).U, será entero para todos los enteros yi,...,yt>
con lo que se ha demostrado que:
2 V =
t min {u +... + U \ u^+au +... + a u =0 {módulom)}
(u^,...,up*(0,...,0)
9 A 1 2 2 2 2
min ((mx,—ax,—a x„ —... —a x) +X2+X 4-... + x ) (Xj,...,xp*(0,...,0)
(3.16)
Con lo que se ha reducido el test espectral al problema de encontrar el valor mínimo de
(3.16). Pero la dificultad estriba ahora en cómo determinar ese valor mínimo en una
cantidad de tiempo razonable. Obviamente, una búsqueda "ciega" o de "fuerza bruta" no
es la solución ya que m es muy grande en los casos de interés práctico. Por lo tanto, y
en una especie de huida hacia adelante, será más interesante y probablemente más útil,
desarrollar un método computacional para resolver el problema, incluso más general, de
encontrar el valor mínimo de la cantidad:
Ax^,...,xp = {u^^x^ + ... + u^^xf+... + (u^^x^ + ... + u^^xf (3.17)
sobre todos los vectores enteros no nulos (xi,...,xt) dada cualquier matriz no singular de
coeficientes U=(uij). La expresión (3.17) se denomina "forma cuadrática definida
positiva" en t variables. Dado que U es no singular, (3.17) no puede ser cero a menos que
todas las xj sean cero.
Si se indica por Ui,...,Ut todas y cada una de las filas de U, entonces se
puede escribir:
/•(x^,...,xp = (x^í/j + ...+x^C/p.(Xjt/^ + ... + x^í/p • (3.18)
como el cuadrado de la longitud del vector xiUi+...+xtUt. La matriz no singular U tiene
una inversa, lo que significa que se pueden encontrar unívocamente determinados
vectores Vi,...,Vt tales que:
114
tiene:
UV.= 5. , l<i,j<t (3.19)
Por ejemplo, en la forma especial (3.16) que surge en el test espectral, se
U=( m , 0 , 0 , . . . , 0 ) , V, = - ( 1 , a . a ^ , ... , a ' - M , ' '• m
Í/.2 = ( -a , 1 , 0 O ) , V^= ( 0 , 1 , 0 , . . . , O ) ,
í/g = ( -a^ , O , 1 , ... , O ) , V^= ( 0 , 0 , 1 , . . . , O ) ,
<7 = ( _ a ' - l , 0 , 0 , ... , 1 ) , V^= ( 0 . 0 , 0 , : . . , ! )
Siendo las Vj precisamente los vectores (3.12) y (3.13) que se usan para
definir el retículo original LQ. Verdaderamente, esto no es una coincidencia, si se ha
comenzado con un retículo arbitrario LQ, definido por cualquier conjunto de vectores
linealmente independientes Vi,...,Vt el argumento usado con anterioridad puede
generalizarse para mostrar que la separación máxima entre hiperplanos en una familia
que cubra el conjunto, es equivalente a minimizar (3.18), estando los coeficientes uij
definidos por (3.19).
El primer paso para minimizar (3.18) consiste en reducirlo a un problema
finito; es decir, a mostrar que no es necesario verificar infinitos vectores (xi,...,xt)
para encontrar el mínimo. Aquí es justamente en donde entran en juego los vectores
Vl,...,Vt; así se tiene que:
y, por la desigualdad de Cauchy, es:
a,^t/^+...+,^c/p.v^)2<A.v...,xp(^.v,)
-115
con lo que se obtiene un límite superior útil sobre cada coordenada xk, descrito por el
siguiente:
LEMA
Sea (xi,...,xt) un vector no nulo que minimiza (3.18) y sea (yivjYt)
cualquier vector entero no nulo. Entonces:
.r¿<(V^ .V^^)/-(y ,...,3;p paral<k^t (3.20)
En particular, haciendo yi=5ij para todo i, es:
xl<.iV^.V^){U .U), paral<j,k<l (3.21)
Este lema reduce el problema a una búsqueda finita, pero el lado izquierdo
de la desigfualdad (3.20) es habitualmente demasiado grande como para hacer factible
una búsqueda exhaustiva; por lo tanto, es necesario añadir algo más. En tal caso, la
siguiente regla heurística resuelve el problema:
"Si no se puede resolver un problema como está establecido.
Entonces, cambiarlo a uno más sencillo que tenga la misma respuesta"
Un ejemplo de uso de esta heurística para el algoritmo de Euclídes es el
siguiente: "Si no se sabe el máximo común divisor de los números deseados, entonces
cambiarlos a números más pequeños que tengan el mismo máximo común divisor". De
hecho, en esta regla heurística subyace un enfoque más general de heurística, ya citado,
que, con el nombre de reducción o descomposición de problemas en subproblemas, es la
base del análisis cartesiano y de todos los posteriores, incluidos los informáticos. Esta
-116-
heurística general, fundamentada en la divisa Cesariana del "Divide y vencerás",
empleada en el descubrimiento de casi todos los algoritmos, puede enunciarse como
sigue:
"Si no se puede resolver un problema directamente.
Entonces, reducirlo a uno o más problemas más sencillos a partir de cuya
solución puede resolverse el problema original"
En lo que aquí concierne, un problema más sencillo será uno que requiera
menos búsqueda porque el lado derecho de (3.21) es menor. La idea clave que se va usar'
es que es posible cambiar una forma cuadrática en otra que es equivalente para todos
los efectos prácticos. Sea j cualquier índice fijado de antemano tal que, l < j s t ; sea
(qi,...,qj-l,qj+l,...,qt) cualquier secuencia de t-1 enteros; y considérese la siguiente
transformación de los vectores:
V\ = V.-q.V., x'.=x.-q.x. , IT. =U. , para i^j ^ (3.22)
v.^v, x'.=x. , [r.=u.+ y. qu.
Es fácil ver que los nuevos vectores U'i,...,U't definen una forma cuadrática
f para la cual f'(x'i,...,x't) = f(xi,...,xt); además la condición básica de ortogonalidad
(3.19) permanece válida, debido a que es fácil verificar que U'i . V'j = Sij. Como
(xi,...,xt) va a través de todos los vectores enteros no nulos, también considera
(x'i,..,x't); por lo tanto, la nueva forma f tiene el mismo minino que f.
La meta es usar la transformación (3.22), reemplazando Ui por U'¡ y Vj por
V'i para todo i, con el fin de hacer el lado derecho de (3.21) pequeño, que lo será cuando
ambos Uj.Uj y V^.V^ son pequeños. Por lo tanto, las dos consideraciones siguientes son
pertinentes:
1 1 7 -
a) ¿Qué elección de qj hace V'i.V'¡ tan pequeño como sea posible?
b)¿Qué elección de q•^^,...,q:_•^^, q:+j,...,q^ hace U'j.U'j tan pequeño como sea
posible?
La cuestión (a) para valores reales de qj se resuelve fácilmente, ya que
(V _ q V .).{V -q.V.) = V .V.-2q.VV + q'V V
= iV.V.)(q.-iV..V./ V..V)f j J i i j j J
+ V..V.-(V..V.f / V .V. t i 1 7 J J
y el mínimo ocurre cuando
q z^V.V./V.V (3.23) t i J J J
En cuanto a la cuestión (b) se quiere elegir el q; tal que
C/.+ y . q.U.
tiene dimensión mínima. Geométricamente, se quiere comenzar con Uj y añadir algún
vector en el hiperplano (t-l)-dimensional cuyos puntos son la suma de múltiplos de (Uj
|Í3tj). De nuevo, la mejor solución es elegir las cosas de modo que U'j sea perpendicular
al hiperplano; es decir, tal que U'j. Uk=0 para todo k * j ; o sea;
U..U^+ Z 9/í^,-t^^) = 0, \<k<t,k^j (3.24)
Una vez respondidas a ambas cuestiones, aparece un dilema. En efecto,
¿debería elegirse qj de acuerdo con (3.23), de modo que V'j.V'j se minimice, o de
acuerdo'con (3.24) de manera que se minimice U'j U'j? En cualquiera de los casos, se
mejora el lado derecho de (3.21); por lo tanto no está claro "a priori" que elección
-118
efectuar. Afortunadamente, Knuth [Knuth 22] demuestra que ambas condiciones son la
misma, redescubriendo el "proceso de ortogonalización de Schmidt".
Sin embargo, todo esto está restringido a que los valores de qj sean enteros.
La mejor manera de extenderlo a valores reales es tomar como qj el entero más
próximo a Vi.Vj | Vj Vj. Aunque ésta no es la mejor solución para la cuestión (b), de
hecho U'j puede a veces ser mayor que Uj. Sin embargo, el límite (3.20) nunca se
incrementa ya que se puede recordar el menor valor de f(y-^,...,yp encontrado hasta
entonces. De este modo, la elección de qj basada únicamente en la cuestión (a) es
bastante satisfactoria.
Si se aplica la transformación (3.22) repetidamente, de tal manera que
ninguno de los vectores V¡ se haga más largo y al menos uno se haga más corto, nunca
se entra en un ciclo; es decir, nunca se considerará la misma forma cuadrática de nuevo
después de una secuencia de transformaciones no trivales de este tipo. Pero
eventualmente se puede producir que ninguna de las transformaciones (3.22) para
l < j < t sea capaz de "acortar" cualquiera de los vectores Vi,...,Vt. Entonces, se puede
iniciar una búsqueda exhaustiva usando los límites del lema anterior que ahora es
bastante reducida en la mayoría de los casos. Con esto se consigue constreñir la
explosión combinatoria, aumentando la eficiencia de la búsqueda exhaustiva.
De todas estas consideraciones, se ha obtenido un algoritmo bastante
eficiente que desarrolla el test espectral. Este algoritmo, determina el valor de
y = min{\/x^+...+x^ \ x +ax^ + ... + a' x^ = O (módulom)}
para 2 s t < T dados a, m y T, con 0<a<m y a relativamente primo a m. El número v mide
la exactitud t-dimensional de los generadores de números aleatorios. Toda la aritmética
dentro de este algoritmo está hecha sobre enteros cuya magnitud raras veces, si alguna
119
o
vez se produce, excede a m^, excepto en el paso 8; puesto que, de hecho, todas las
variables enteras, serán menores que m en valor absoluto durante la computación.
Cuando se está calculando v^ para t > 3 , el algoritmo trabaja con dos
matrices U y V de t x t, cuyos vectores fila se denotan por U}=(uj2,...,uj^) y Vi=
(v|]^,...,vj^) para l < i < t . Estos vectores satisfacen las condiciones:
u , + au.„+... + a' ^u. ^ O {módulo m), l < i < í (3.25)
U..V. = 5..m, \<i , j<t (3.26)
De este modo, la Vj anteriormente discutida ha sidk' multiplicada por m,
para asegurar que sus componentes son enteros. También se usan otros tres vectores
auxiliares X = (x-j^,...,x^) , Y=(yj,...,y.j.) y Z = {7.-^,...,z^. Por otra parte, r representará
at~l módulo m y s denotará el menor límite superior para v^ descubierto hasta ese
momento. El algoritmo, se describe con los pasos siguientes:
1. Inicialización. Colocar en h'í-a, h'«-m, p«-s, p'^-o, r -a, s<-l+a2. Los
primeros pasos del algoritmo, manejan el caso t=2 por un método
especial, muy similar al algoritmo de Euclides; se tendrá
h — ap = h' — ap'^0 {módulo m)
kp'—h'p = ím
durante esta fase del cálculo.
2. Paso Euclídeo. Colocar en qHh'/h| , u<-h'-qh, v-í-p'-qp. Si u^+v^ <s,
colocar en s«-u^+v^ , h'<-h, h«-u, p'-«-p, p<-v y repetir este paso 2.
-120
3. Computar v^. Colocar en h<-u-h, v*-v-p; y si u^ + v <s, colocar en
s*-u^ + v" , h'<-u, p'*-v. Entoces la salida es Vs=v^. Ahora se colocarán
en las matrices U y V, satisfaciendo las condiciones (3.25) y (3.26) para
los cálculos de los casos de dimensionalidad mayor que 2:
- : : • : • ) • - ( . : . : •
donde la condición necesaria y suficiente para elegir el signo menos de
V es que p' sea mayor que 0.
4. Incremento de t. Si t=T, el algoritmo termiüa. En otro caso, se
incrementa t en 1. En este punto, U y V son matrices de txt
satisfaciendo las condiciones (3.25) y (3.26) y deben ampliarse
adecuadamente añadiéndoles una fila y una columna. Colocar en t<-t+l
y en r<-(ar) módulo m. Colocar a Ut la nueva fila (-r, O, O, ..., O, 1) de t
elementos, y colocar en uj^«-0 para l<i<t . Colocar en Vt la nueva fila
(O, O,...,O, m). Finalmente, para l<i<t, colocar en q<-E (V^r/m),
Vj^-í-V^r-qm, y Uf«-Ut+qUi« Aquí E indica el entero más próximo a x;
es decir, |x+l/2|. Esencialmente, se está haciendo Vif»-Viir e
inmediatamente se aplica la transformación (3.22) con j=t ya que los
números iVjirl son tan grandes que deben reducirse. En los pasos
siguientes, j denota el índice de la fila actual en transformación y k
denota la fila en la que la transformación ha tenido lugar en el último
paso. ._. -
5. Transformar. Para l < i < t , hacer las operaciones siguientes: Si ixj y
2|V|.Vj|>Vj.Vj, colocar en q^E(Vj.Vj/Vj.Vj), en Vj«-V}-qVj, en
Uj-«-Uj+qU}, y en k<-j« El hecho de omitir esta transformación cuando
121
2|V}.Vj| se iguala exactamente con V:.VJ previene la entrada del
algoritmo en un ciclo infinito.
6. Examinar nuevo límite. Si k=j; es decir, si la transformación en 5 ha
hecho algo útil, colocar en s<-min (s, U,-, U,-)-
7. Incrementar j . Si j=t, colocar en j-í-1; en otro caso, colocar en j«-j+l-
Ahora bien, si j * k , ir a 5. Si j=k significa que se han hecho t-1 ciclos
consecutivos de no transformación.
8. Preparación de la búsqueda. Ahora, se determinará el mínimo absoluto i '
usando una búsqueda exhaustiva sobre todos los (x2,...,x^) que
satisfacen la condición (20) del lema; para lo cual, colocar en X«-Y
•«-(0,..,0), colocar en k«-t, y colocar en
Z . ^ l \ / | ( V . .V )s/m^\\ ,para l < y < í
Se examinan todas las X=(xj,...,x^) con |x.-i<z: para l < j < t . Aunque
hasta ahora, ni z; se hizo nunca mayor que 1, ni la búsqueda exhaustiva
ha reducido s; sin embargo, son posibles en casos excepcionales,
especialmente en los de muy alta dimensionalidad. Durante la
búsqueda exhaustiva, el vector Y será siempre igual a Xj U +...+x^U^,
de modo que f(xj^,...,x^) = Y.Y. Dado que f(-X2,...,-x^) = f(X]^,...,x^), sólo
se examinarán aquellos vectores cuya primer componente no nula es
positiva.
9. Incrementar xj^. Si Xj =zj , ir a 11. En otro caso, incrementar X| en 1 y
colocar en Y<-Y+Uj^.
122
10. Incrementar k. Colocar en k<-k+l. Entonces si k ^ t , hacer x^*—Zj^,
Y«-Y-2zj^Uj^, y repetir el paso 10. Pero si k>t, hacer s^-min (s,Y.Y).
11. Decrementar k. Colocar en k*-k-l. Si k > l , ir a 9. En otro caso, salir
con el resultado v^=V?, la búsqueda exhaustiva se completa, e ir a 4.
3.6. Sistemas de producción.
3.6.1.Arquitectura de los sistemas de produción.
Los sistemas de producción son uno de esos acontecimientos felices, aunque I '
en clave menor, de los que los historiadores de la ciencia hablan frecuentemente de
ellos, pues son un formalismo bien establecido en espera de una misión científica. Su ya
larga historia, comienza con Post, de quien recibieron el nombre, pero arrastraron
desde entonces tal desarrollo teórico y práctico, en especial en su orientación a las
aplicaciones en inteligencia artificial, que los sistemas actuales tienen poco en común
con la presentación de Post.
La característica más notable de estos sistemas es su concepción
arquitectónica que separa el conocimiento factual o asercional, del conocimiento
operativo o heurístico y ambos del conocimiento de control. Esta modularidad permite
que este tipo de sistema sea fácilmente modificable y transportable. Por otra parte, su
versatilidad es tal que se puede decir que son aplicables a casi cualquier tipo de
problema para los que no exista o se conozca solución algorítmica practicable.
-123
BASE DE CONOCIMIENTOS
MOTOR
DE
INFERENCIAS
.Filtrado de reglas
a partir de la base
de conocimientos
.Ciclo de resolu
ción
c c
>
BASE DE REGLAS
-REGLAS
Representación Interna de reglas de producción
del tipo Si Condiciones Entonces Acciones
-METAREGLAS
Método de selección de reglas
Restricción del espacio de búsqueda
Reglas para la adquisición de nuevas reglas
MEMORIA DE TRABAJO: BASE DE HECHOS
Datos y Hechos
Lista de subproblemas
Reglas en espera
Figura 3.5. ESQUEMA DE UN SISTEMA DE PRODUCCIÓN COMPLEJO
En suma, un sistema de producción SP, tal y como se muestra en la figura
3.5.,se define como una terna formada por una base de datos, BD, un conjunto de reglas
de producción RP, y, un intérprete de reglas o estrategia de control EC; es decir:
SP = (BD, RP, EC)
A continuación se va a estudiar por separado cada uno de estos elementos de
los sistemas de producción.
a) Base de datos. También llamada "memoria de trabajo" o "contexto",
contiene los datos y hechos establecidos y, o, los fines a alcanzar; es
-124
decir, la información adecuada para una tarea particular. Esta
información puede y debe estar estructurada en una forma adecuada al
problema en curso de solución. Alguna de las partes de la base de datos,
puede ser permanente, mientras que otras pueden pertenercer sólo a la
solución del problema entre manos y, en consecuencia, presentar un
carácter temporal.
En su faceta de memoria de trabajo, es el foco de atención de las reglas
de producción, de modo que, como se verá, el lado izquierdo de cada una
de las producciones, del conjunto de reglas de producción, representa una
o varias condiciones que deben estar presentes en la base de datos antes
de que esa producción sea susceptible de ejecutarse. Por su parte, el lado
derecho de las producciones,la parte de acción de la regla, puede cambiar
el contexto de la base de datos de tal modo que otras reglas satisfarán su
parte de condición. De este modo, y esto es algo importante, la memoria
de trabajo es el único punto de contacto entre las reglas de producción.
Sin embargo, en principio esta base de datos, no tiene nada que ver con
las bases de datos tradicionales, puesto que, según los casos, puede ser
algo tan sencillo como una matriz, como sucede cuando quiere resolverse
el problema del "15-Puzzle", o algo tan complejo como sistemas de bases
de datos relaciónales o, incluso, redes semánticas, o "marcos".
b) Un conjunto de Reglas de Producción. La gran mayoría del conocimiento
sobre solución de problemas, puede agruparse en forma de pequeños
"cuantos" denominados producciones. Se entiende por producción a una
regla que consta de dos partes: una, denominada condición o situación de
reconocimiento, C^ y otra, de acción, A. De este modo, puede definirse
125
una producción como un par "condición-acción", en el cual el lado
izquierdo del par es una lista de cosas a verificar, y el lado derecho otra
lista de cosas a hacer, representándose por el esquema
Si Condición 1,..., Condición n
Entonces Acción 1,..., Acción m
La característica más importante que deben presentar estas reglas es la
independencia de unas respecto a otras. Es decir, una regla de producción,
no puede referenciar directamente a otra, sólo pueden comunicarse a
través de la memoria de trabajo. De este modo, el conjunto de reglas,
está constituido por un conjunto "desordenado" de forma "granular" de
conocimientos y, o, heurísticas independientes entre sí. En consecuencia,
la modificación de este conjunto de reglas que constituye el conocimiento
operatorio del sistema, se hace suprimiendo, o añadiendo reglas, o
modificando las reglas del conjunto. Por lo tanto, los efectos colaterales
son mínimos, con lo que el "mantenimiento" del sistema es bastante fácil.
Cuando estas reglas contienen el conocimiento privado de un experto, el
sistema de producción recibe el nombre de "sistema experto" o "basado en
el conocimiento".
c) "Estrategia de Control" o "motor de inferencias", o "máquina deductiva" o
"intérprete de reglas", que por todos estos nombres se le conoce, deriva
nuevos hechos a partir de la base de conocimientos usando
encadenamiento hacia adelante y hacia atrás. Esto es lo que aquí se va a
considerar más en profundidad.
126
FASE 1. DECISIÓN
RESTRICCIÓN R 1 C R
BH 1 C BH
FILTRADO Rl/BH 1->R2 C Rl
RESOLUCIÓN DE CONFLICTOS R3 C R2
1 FASE 2. ACCIÓN
EJECUCIÓN DE LAS ACCIONES DE LAS REGLAS DE R3
BH, Y. EVENTUALMENTE, BR PUEDEN SER MODIFICADOS
SON POSIBLES OTROS EFECTOS
L , J
FIGURA 3.6. FASES DE FUNCIONAMIENTO DE UN MOTOR DE INFERENCIAS
Esta parte del sistema de producción, sirve para activar las reglas y
encadenarlas en el curso de un ciclo de funcionamiento. En consecuencia, el motor de
inferencias, debe cumplir, tres requisitos básicos para considerarlo adecuado. En primer
lugar, tiene que causar movimiento; es decir, hacer transitar el sistema de un estado a
otro hacia la meta. De modo que un sistema que no cumpla con este requisito, jamás
conducirá a una solución. En segundo lugar, debe ser sistemático en la aplicación de las
reglas disponibles. La carencia de sistemática puede llevar a aplicar una secuencia
particular de reglas inútilmente varias veces antes de que finalmente se llegue a
encontrar una solución. Por último, debe ser eficiente en el sentido de encontrar una
solución, aunque no sea la óptima, empleando el mínimo número de recursos
computacionales. Para esto es necesario eliminar o, cuando menos, constreñir la
explosión combinatoria que casi siempre aparece en los problemas que se tratan de
resolver usando sistemas de producción. Para conseguir una adecuada eficiencia a veces
es necesario comprometer los dos requerimientos anteriores, introduciendo la idea de
heurística. Este ciclo funcionará según se ve en la figura 3.6., en dos fases.
127
FASE 1. Selección de la regla a disparar. Esta es la fase más importante, puesto que
trata de determinar y elegir la regla candidata a ejecutarse entre un
conjunto de reglas posibles, a veces importante en número. Se desarrolla en
las etapas siguientes:
a) Restricción: Se lleva a cabo sobre el conjunto de hechos y, o, reglas, con
el fin de que la etapa de equiparación sea más rápida. Consiste
básicamente en explotar, siempre que sea posible, los acontecimientos
generales y las circunstancias especiales sobre la forma de particionar,
en distintas clases o familias los hechos y, o, las reglas.
-r' Esta etapa a veces es estática y se efectúa "a priori". Por ejemplo, en
una consulta médica, es posible separar las reglas concernientes al
examen y diagnóstico de las de tratamiento. Otras veces las
restricciones se hacen dinámicamente con la ayuda de las metarreglas.
Por ejemplo, el sistema MYCIN, un sistema experto para el tratamiento
de enfermedades bacterianas usa metarreglas como las siguientes:
Si
1) existen reglas que mencionan pseudomonas en una premisa, y
2) existen reglas que mencionan las klebsielas en una premisa
Entonces
es verosímil ('4) que sea mejor usar las primeras antes que las
segundas.
En suma, en esta etapa se determina a partir del conjunto de hechos
inicial BH y del conjunto de reglas de partida BR, que subconjuntos BHl
-128-
y Rl, de ambos merecen ser comparados en el instante actual; es decir,
pasar a obtener:
BHl C BH y Rl C BR
b) Equiparación, filtrado o cotejo, que por estos tres nombres se le conoce.
En esta etapa, los conocimientos o más exactamente, el espacio de
conocimientos considerado, se examina con el fin de seleccionar el
conjunto de reglas candidatas a dispararse; es decir, aquellas cuya
expresión es compatible con la base de hechos, por intermedio de los
mecanismos de equiparación. En otras palabras, el motor de inferencias
examina cada una de las reglas de Rl, respecto ál conjunto de hechos
BHl. Entonces, se obtiene un subconjunto R2 que contiene las reglas que
se juzgan compatibles con BHl. Este subconjunto R2, recibe el nombre
de "conjunto conflicto". Es decir, esta etapa se encarga de obtener:
R2 C Rl / B H l .
Esta etapa es muy importante puesto que todos los sistemas de
producción, reposan sobre la idea de una selección de reglas dirigida por
su "contenido", o sea, si una regla menciona algo, y si ese algo es
interesante en ese instante, la regla se selecciona. Además, esta etapa es
la que, con mucho, consume más recursos computacionales.
Este mecanismo posee .un gran número de variantes. El caso más
sencillo se produce cuando tanto las reglas como los hechos contienen
sólo constantes, entonces éstas deben coincidir. En este supuesto, el
motor de inferencias se dice que es de orden 0. Sin embargo, surgen
casos más complejos cuando se permite el uso de variables. Para tratar
- 1 2 9 -
muchos de estos casos, es necesario utilizar mecanismos de equiparación
potentes tales como el proceso de "unificación". Con el uso de variables,
los motores de inferencia pasan a ser de orden 1 y superiores, de acuerdo
con el tipo de representación y mecanismos lógicos que utilicen.
Por último, hay que señalar que la equiparación puede hacerse tanto
sobre la parte conclusión como sobre la parte acción de las reglas, dando
origen a los dos encadenamientos o modos de razonamiento: "hacia
adelante y hacia atrás", aquí sólo se tendrá en cuenta el primer modo.
c) Resolución de conflictos: En esta etapa se determinan el conjunto de
reglas que deben dispararse; es decir, ser e fec t iv^en te ejecutadas. En
suma, se trata de elegir las mejores de las reglas que conforman el
conjunto conflicto. Cuando existe un solo procesador, sólo se podrá elegir
una regla.
R3 C R2
Esta etapa, según los sistemas, utiliza distintas estrategias. Algunos,
se contentan con elegir la primitiva encontrada. Desgraciadamente, eso
conduce a definir un orden sobre la base de reglas lo que no siempre es
deseable. Otros, aplican exhaustivamente este conjunto de reglas sin
elegir. Es la forma de actuar del sistema MYCIN, pues en medicina es,
en efecto, muy importante considerar todas las alternativas posibles,
para evitar errores de diagnóstico.
Generalmente, está previsto un mecanismo particular para
seleccionar las reglas candidatas. Esto puede hacer intervenir un orden
sobre la parte de acción de las reglas, o bien una prioridad sobre los
-130-
hechos, disparándose la regla que se equipara con el hecho que se juzga
más importante o más reciente, o bien a partir de un criterio general, tal
como elección de la última regla utilizada, orden a "priori" sobre el
conjunto de reglas de la base, etc.
También es posible decidir la regla candidata a partir de meta-reglas
que definen prioridades dinámicas sobre el conjunto de reglas. Este tipo
de selección es, sin duda, el que se considera más rico, pues permite
explicitar el control de las reglas. En otros términos, el mecanismo de
inferencia está descrito con ayuda de reglas. Además, al ser las meta-
reglas, a su vez reglas, pueden ser manipuladas directamente por el
motor de inferencias, sin necesidad de emplear rrfecanismos anexos. Es
por lo que a pesar del crecido tiempo de cálculo que necesita se trata del
modo de selección que ofrece más interés y posee el más halagüeño
porvenir ante si.
FASE 2. Activación, acción, ejecución o deducción, que por todos estos nombres se
conoce. En esta fase, el motor de inferencia controla, si R3 no es vacio, la
ejecución de cada una de las reglas. En consecuencia, consiste en aplicar
efectivamente la, o las reglas elegidas sobre la base de hechos; es decir,
activar la parte acción de todas las reglas retenidas para su ejecución.
Generalmente, esta parte se limita a introducir nuevos hechos en la base de
hechos y a suprimir y, o, modificar otros. A veces también se permite el
disparar procedimientos diseñados de forma convencional, tales como
cálculos matemáticos, entradasrsalidas, etc.
-131 -
3.6.2. Ejemplo de funcionamiento de un motor de inferencias.
El ejemplo abstracto pero sencillo que se da a continuación, ilustra el
encadenamiento de varios ciclos necesarios para la resolución de un problema, que
puede enunciarse como sigue: Considérese la base de reglas presentadas por la figura
3.7.(a). En la cual, por ejemplo, la regla 1 podría significar lo siguiente: "Para
establecer la hipótesis P hay que dar el resultado de un análisis, observación o medida
indicado por B y establecer la veracidad de las hipótesis D' y E' ".
Por su parte, la base de hechos se supone que inicialmente comporta los
cuatro hechos simbólicos indicados en la figura 3.7(b): H', B, C, a. Como puede verse,
un hecho con apostrofe, verbigracia H', representa una hipótesÜ'cuya veracidad debe
establecerse; por ejemplo: "El enfermo padece tal enfermedad". En tanto que un hecho
sin él, verbigracia B ó a, se considera como establecido o comprobado, por ejemplo,
"se ha observado tal síntoma".
R: BASE DE REGLAS BH: BASE DE HECHOS
REGLA 1 P' REGLA 2 A', B - REGLA 3 A' REGLA 4 D', L -* REGLA 5 E' REGLA 6 H'
B, D', E' D', G' C, P-c, p H, D' L, A'
H' B
4 HECHOS DE LOS CUALES, HAY QUE ESTABLECER 1: H
(a) (b)
FIGURA 3.7. EJEMPLO DE BASE DE CONOCIMIENTOS ELEMENTAL
La forma del funcionamiento dado por la figura 3.8., puede describirse del
modo simiente:
132-
'
BASE DE HECHOS INICIAL
R2
D'G' LBC a
R4
p G' LBC a
CALLEJÓN SIN SALIDA PUES NO HAY REGLAS APLICABLES. HAY QUE RETROCEDER
H'BCn
R6
LA' BC a
H SE VERIFICA FIN
R3
P'LBC a
Rl
D'E* LBC a
R4
P E' LBC a
• R5
P HD'LBC a
R4
P HLBC a
FIGURA 3.8. FORMA DE FUNCIONAMIENTO DEL MOTOR DE INFERENCIA
3.6.2.1. Ciclo elemental de trabajo.
FASE DE DECISIÓN O RECONOCIMIENTO.
a) Etapa de restricción. Aquí se conviene en que no se hace ninguna
restricción sobre la base de reglas; es decir, Rl = R. Por el contrario, la
base de hechos se reduce a los hechos de BH que no están simbolizados
por letras griegas. Lo que podría significar que en el estado actual de la
actividad del sistema de reglas, los síntomas correspondientes se suponen
"a priori" sin interés. Aquí, pues, en el primer ciclo, se tiene que:
BHl = ÍH', B, C}
133
b) Etapa de equiparación. Se supone aquí que es la parte izquierda de cada
una de las reglas de Rl, la que se compara con BHl. Para que pueda
contemplarse el disparo de una regla, es necesario que cada una de las
expresiones componiendo su parte izquierda; por ejemplo, para la regla 2,
son dos expresiones la A' y la B, sean compatibles con los hechos en BHl.
De este modo, en el desarrollo del primer ciclo, únicamente se retiene la
regla 6 que constituye el conjunto R2.
c) Etapa de resolución de conflictos. En el marco de este ejemplo, no se
disparará más que la primera regla catalogada en R2, suponiéndose que
las reglas se someten a equiparación en orden creciente; es decir, de 1 a
6. De este modo, la equiparación se detendrá en el momento en el cual
una regla de Rl se reconozca compatible con BHl. Esta estrategia es con
frecuencia utilizada en los sistemas reales, sin embargo, no es
razonablemente aceptable más que si el motor de inferencia es capaz de
retroceder sobre sus pasos ("backtracking"); es decir, si la elección
sistemática de la primera regla compatible conduce a una situación en la
cual no es aplicable ninguna regla, la elección anterior más reciente, se
pone en tela de juicio, para salir del callejón sin salida.
FASE DE ACCIÓN.
En este ejemplo, se limitará a introducir en la base de hechos, los símbolos
que figuran en la parte derecha de la regla ejecutada, en tanto que ciertos hechos de la
base se eliminarán de ella: los hechos a establecer que también están presentes en la
parte izquierda de la regla disparada. Aquí después de la aplicación de la regla 6, H' se
elimina,- en tanto que L y A' se introducen. Entonces la base de datos se convierte en:
- 1 3 4 -
BH = {L, A', B, C, a}.
Todo ello en el bien entendido de que si un hecho establecido tal como S
figura en la base de hechos, es conveniente no introducir S'. Por el contrario, si S' está
en la base de hechos y si S está presente en la parte derecha de una regla, S debe
sustituir a S' en BH.
3.6.2.2. Encadenamiento de ciclos en vistas a verificar las hipótesis iniciales.
En el ejemplo sólo existe una hipótesis inicial: H'. Después de la aplicación
de la única regla plausible: la 6, el motor de inferencias va a ejecutar otros ciclos que
transforman la base de datos hasta que no contenga más que hec!|os establecidos.
En el curso del segundo ciclo de trabajo, a partir de la base de datos
obtenida:
BH = {L, A', B, C, a}.
Las reglas 2 y 3 podrían retenerse por la equiparación. La resolución de
conflictos elegida conduce a no retener más que la regla 2. Entonces, al final del
segundo ciclo, la base de datos se convierte en:
BH = {D', G', L, B, C, a}.
Puesto que se elimina A' y se introducen D' y G'.
El tercer ciclo de trabajo dispara la regla 4, a consecuencia de lo cual, la
base deshechos se convierte en:
- 1 3 5 -
BH = {p, G', L, B, C, a}.
En donde C no se introduce puesto que C, hecho establecido, está presente.
Este cuarto ciclo de trabajo, conduce a la conclusión de que ninguna regla es
ahora aplicable. En consecuencia, el encadenamiento de las reglas 6, 2, 4 ha conducido
a un callejón sin salida. El motor de inferencias pondrá en tela de juicio este
encadenamiento, y realizará una vuelta atrás ("Backtracking").
En el inicio del segundo ciclo, la regla 3, aunque satisfacía el filtrado, no se
había retenido para R2, sin embargo, ahora en el quinto ciclo se considera y dispara, a
partir de la base de datos resultante del primer ciclo: ,M''
BH = {L, A', B, C, a).
Produciendo la base de datos:
BH = {P', L, B, C, a}.
El sexto ciclo, dispara la regla 1, produciendo:
BH = {D', E', L, B, C, a}.
El séptimo dispara la regla 4, produciendo:
BH = {p, E', L, B, C, a}.
El octavo dispara la regla 5, produciendo:
136
BH = {i3, H, D', L, B, C, a}.
El noveno ciclo dispara la regla 4 de nuevo, produciendo:
BH = {p, H, L, B, C, a}.
Entonces, el motor de inferencias, comprueba que no hay ya más hechos a
establecer y se detiene.
En consecuencia, la aplicación de las reglas: 6, 3, 1, 4, 5 y 4, han permitido
justificar la hipótesis inicial H' teniendo en cuenta los hechos ya-fstablecidos B y C. En
el curso del proceso, se han establecido los hechos: p , H, L.
3.6.3. Propagación de conocimientos.
Si es relativamente fácil escribir un motor de inferencias, resulta mucho
más complicado realizar un sistema de altas prestaciones. El método de emplear la
técnica de equiparación; es decir, de la puesta en correspondencia de las partes de
condición de las reglas con el conjunto de hechos de la base, es poco eficiente cuando
el número de reglas y de hechos es de consideración, debido a la explosión
combinatoria que se produce y que es muy costosa en tiempo. De hecho, el 90% del
tiempo de un ciclo de resolución se consume en esta etapa.
Para superar estas limitaciones, se han elaborado técnicas que reposan sobre
una representación interna particular y la propagación de conocimientos. En primer
lugar, es posible compilar la base de conocimientos indexando las reglas por su parte
de condición. Esta manera de catalogar las reglas es menos natural, pero más
eficiente. A continuación, es posible encontrar medios de discriminar estas condiciones
-137-
para que su equiparación sobre la base de hechos se haga más rápido. La elección de la
representación interna de los conocimientos así compilados, lo mismo que los criterios
de discriminación de las condiciones, difieren de un sistema a otro.
La propagación de conocimientos, implica un algoritmo diferente de la fase
de selección de reglas; tal y como se muestra en la figura 3.9., el algoritmo general de
propagación de conocimientos en un sistema de reglas de producción. En cada ciclo de
resolución, la lista de reglas candidatas es actualizada en función del conjunto de
hechos añadidos y suprimidos. En el curso del primer ciclo de resolución, se selecciona
un conjunto de reglas candidatas. Algunas entre ellas, se activan, modificando la base
de hechos. Basta a continuación considerar cuáles son las reglas que están afectadas
por estos cambios; es decir, cuyas partes de condición están en correspondencia, más o
menos estrecha, con los hechos añadidos o suprimidos, y actualizar el conjunto de
reglas candidatas. Ciertamente, hay propagación de conocimientos de los hechos hacia
las reglas, puesto que toda modificación de la base de hechos entraña una
reorganización de la base de reglas candidatas.
COLOCAR EL CONJUNTO DE REGLAS CANDIDATAS EN RC
k K r
ELECCIÓN DE UNA REGLA A DISPARAR
• ^ r
DISPARO DE LA REGLA Y ACTUALIZACIÓN DE LA BASE DE HECHOS
4-RCS=REGLAS DE RC QUE YA NO SON CANDIDATAS
RCA=REGLAS '" QUE SON" CANDIDATAS DE NUEVO
RC=RC-RCS+RCA
\
FIGURA 3.9. ALGORITMO DE PROPAGACIÓN DE CONOCIMIENTOS
- 1 3 8 -
3.7 El sistema propuesto.
Teniendo en cuenta, como condiciones necesarias, las razones anteriores,
se diseñó e implemento un sistema basado en el conocimiento instrumentando éste en
forma de reglas de produción. Este sistema cumple todos los criterios exigidos a los
criptogramas, pero sobre todo, es óptimo en lo que concierne a los criterios primero y
último. En efecto, como ya se acordó, anteriormente, una transformación lineal
aplicada a una variable aleatoria conserva el carácter aleatorio y el tipo de
distribución de la nueva variable transformada, ya que esta transformación implica
sólo un cambio de origen y de escala de medida sobre la variable inicialmente
considerada. Este conocimiento ha de incorporarse a las reglas del sistema que se
diseñe. En consecuencia, el sistema establece para cada símbolo £n la base de datos el
siguiente proceso:
1. Obtener, de acuerdo con las funciones VAL y RANGO en LISP o lAL en
FORTRAN del punto 3.5.4., una serie de números aleatorios de tamaño
igual al conjunto de símbolos existente en la base de hechos: NA(I)
2. Dar a cada símbolo un valor numérico en un código de computador:
Fieldata, ASCII, EBCDIC, etc. Por ejemplo, en Fieldata, sería: (A=06,
B=07,...,O=48, 1=49,...,a=00,...,0=62). Este valor se representa por
NC(I).
3. Hacer la transformación de variable aleatoria usando el conocimiento
estadístico. Para lo cual, se multiplica el número aleatorio que ocupa
la posición correspondiente a la del símbolo a criptografiar en el
mensaje por el valor de esa posición y se le suma el valor del carácter
obtenido en 2; es decir, se hace: NV(I) = NA(I) * I + NC(I)
- 1 3 9 -
4. Obtener la congruencia módulo número de símbolos en el código (por
ejemplo en el caso de Fieldata 63), de NV(I); es decir, hacer:
NCS(I) = MOD (NV(I),N)
siendo N el número de símbolos del código.
5. Hacer la correspondencia de NCS(I) por el símbolo correspondiente.
La serie de números aleatorios NA, generados en el punto 1 del proceso
considerado, asignaría a cada posición I del texto, un número aleatorio procedente de
una distribución uniforme de parámetros (0.1). Podemos considfrar dicha serie como
una realización de un proceso aleatorio finito, de dimensión igual a la longitud del
texto, en donde para cada I fijado, las funciones de distribución de primer orden serían
idénticas y uniformes (0.1). Al aplicar en el punto I del texto, la transformación
indicada en el sistema
NV(I) = NA(I) * I + NC(I)
produce valores correspondientes a la realización de otro proceso estocástico de la
misma longitud que el inicial y en el que las distribuciones de primer orden son
también uniformes aunque los valores que produzcan están ahora comprendidos entre
NC(I) y NC(I)+I. Con ello, dado el carácter de equiprobabilidad que presentarán los
valores transformados correspondientes al cifrado de cada símbolo del mensaje, se
tiene la seguridad de que los criterios primero y segundo se verifican
escrupulosamente. Como el carácter aleatorio del sistema viene establecido "a priori"
por el conocimiento estadístico englobado en la transformación dada, no es necesario,
cada vefz que se obtiene un texto cifrado, de efectuar un test de aleatoriedad tipo X2,
espectral u otro contrastado. Además, esta transformación no expande el texto en
-140-
absoluto; es decir, si el número de símbolos que compone el mensaje de entrada es N,
el número de símbolos del mensaje en clave es también N. Todo ello con un coste
computacional reducido, lo que incrementa la eficiencia del sistema. Dicho sistema
puede describirse como sigue:
a. BASE DE DATOS;
{Ci, C2,-.>Ct,a,co} ; es decir, el texto a cifrar o descifrar y los
caracteres inicial y final.
b. BASE DE REGLAS:
' i '
Rl. Si a (carácter inicial). Entonces generar cadena aleatoria ei,...,en
y hacer p= 1. Siendo n < t y p un contador de posición.
R2. Si 3 cp en entrada y posición <n. Entonces hacer Sp = mod
(ep*p+cp,N) y hacer p = p+1. Donde N es el número de símbolos del
código y Sp el carácter de salida.
R3. Si 3 Cp y p = n+1. Entonces hacer eo=en> hacer p = 1 y generar
61,...,en.
R4. Si 3 Cp y posición < n, Entonces hacer sp=mod (cp+N-mod (ep
*p,N)N). Y hacer p = p+1.
R5. Si co (carácter final). Entonces TERMINAR.
- 141 -
c) ESTRATEGIA DE CONTROL:
En función de la operación: cifrado o descifrado, se restringe la base de
reglas. En el cifrado se elimina la R4 y, en el descifrado la R2. Una vez hecho esto se
usa la primera regla aplicable, que cambia el símbolo de la parte de condicción por el
resultado proporcionado por la parte de acción.
La traducción de estas reglas en un lenguaje de programación, en este caso
LISP, dio lugar a dos funciones respectivamente de OPERACIÓN y OPERAR que se
explicitan a continuación:
(OPERACIÓN [LAMBDA (TIPO F-EMT F-SAL ALEA 0?.CE:J)
(* Función donde se realiza la codifícacicn a decodificacion de un carácter)
(SETQ L E Í D O (CAR (READ F-ENT))) (CONO
((EQUAL LEÍDO 13) (PRINl (LIST LEÍDO)
F-SAL)) (T (COND
((EQUAL TIPO (QUOTE DEC)) (PRINl (LIST (IREMAINDER (IPLUS LEÍDO (IDIFFERENCE N (IREMAINDER (ITIMES ALEA ORDEN)
N))) N))
F-SAL)) ((EQUAL TIPO (QUOTE COO))
(PRINl (LIST (IREMAINDER (IPLUS LEÍDO (ITIMES ALEA ORDEN)) H ) )
F-SAL])
(OPERAR [LAMBDA
(whi le do
(TIPO F-ENT F-SAL)
(READP F-ENT) (SETQ POS 1) (SETQ ULTIMO (VAL CLV)]
(while (OR (EQUAL POS TOPE) (READP F-ENT))
do (OPERACIÓN TIPO F-ENT F-SAL (RANGO 10000) POS)
(SETQ POS (ADDl POS])
C En esta función se genera todo lo necesario para decodificar o codificar un carácter)
(' POS = posición del carácter en el fichero) (* ULTIMO = ultimo numero aleatorio generado.) (•* La semilla se consigue al operar sobre los códigos) (' numéricos de la clave)
(* RANGO nos generara un numero aleatorio entre O j 9999)
-142-
Cuya expresión en FORTRAN viene dada por las siguientes rutinas de
cifrado y descifrado.
RUTINA CIFRADO
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
100
200
3 400
2
1 20 300
4 5
800 500
DIMENSIÓN C (500), NC (80), NA (80), NV (80) READ (7,100) C(1) FORMAT(FIO.O) WRITE (6,200) C(1) FORMAT (1H1/' CÓDIGO CIFRADO CON LA CLAVE GENERADA A PARTIR DEL NUM
1ER0 ", F10.0///) READ(7,400) NC FORMAT (80R1) IF (NC(1)*NC(2)*NC(3).EQ.1) STOP CALLALEA(C,500) NA(1) = C(1)*200 12 = 2 DO 1 1 = 2,500 NA (12) = C (1) * 200 'H'" K2 = 12-1 DO 2 J = 1,K2 IF(NA(12).EQ.NA(J) GO TO 1 CONTINUÉ 12 = 12+1 IF (I2.EQ.81) GO TO 4 CONTINUÉ WRITE (6,300) FORMAT ('ERROR') STOP DO 5 1=1,80 NV(I) = MOD (NA (0*1 + NC (l),63) LX = LX + 1 WRITE (6,500) LX,NC,LX,NV WRITE (8,800) NV FORMAT (80R1) FORMAT (1X,'T',J2,10X,80R1/1X,'C,J2,10X,80R1/) 11 = 11 + 1 IJ = MOD (11,80) + ! C(1) = NA(U) GO TO 3 END
143-
RUTINA DESCIFRADO
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
100
200
3 400
2
1 20 300
4
5
500
DIMENSIÓN C (500), NC (80), NA (80), NV (80) READ (8,100) C(1) FORMAT(FIO.O) WRITE (6,200) C(1) FORMAT (1H1/' TEXTO DESCIFRADO CON LA CLAVE GENERADA A PARTIR DEL
1NUMER0 ', F10.0///) READ(8,400) NC FORMAT (80R1) IF (NC(1)*NC(2)*NC(3).EQ.1) STOP CALLALEA(C,500) NA(1) = C(1)*200 12 = 2 DO 1 1 = 2,500 NA (12) = C( l )*200 K2 = 12-1 DO 2 J = 1,K2 IF(NA(I2).EQ.NA(J) GO TO 1 CONTINUÉ 12 = 12 + 1 IF (I2.EQ.81) GO TO 4 ' | ' ' CONTINUÉ WRITE (6,300) FORMAT ('ERROR') STOP DO 5 1=1,80 I1=M0D(I*NA(I),63) NV(I) = MOD(NC(l) +63-11,63) LX = LX + 1 WRITE (6,500) LX,NC,LX,NV FORMAT (1X,'C',J2,10X,80R1/1X,'T',J2,10X,80R1/) 11 = 11 + 1 IJ = MOD (11,80)+1 C(1) = NA(IJ) GO TO 3 END
-144-
"Nada hay peor que no hacer nada,
porque sólo se puede hacer poco"
(LIA-FIM)
CAPITULO 4. RESULTADOS Y FUTURAS LINEAS DE INVESTIGACIÓN
4.1. Resultados y conclusiones.
Al sistema propuesto, se le sometió a distintas comprobaciones para medir
tanto el carácter aleatorio como la efectividad del mismo. Pá#a lo cual se eligieron
distintos textos tanto humanísticos como científicos, pues un sistema criptográfico no
debe ser sensible al texto claro que debe criptografiarse. En este sentido, y a título de
ejemplo, se presentan a continuación, por una parte un texto tomado de la novela más
famosa de la literatura universal: "El ingenioso hidalgo D. Quijote de la Mancha" del
inmortal manco de Lepanto D. Miguel de Cervantes Saavedra, y de otra, un texto, que
puede considerarse las antípodas del anterior, sobre álgebra matricial.
De estos y otros textos de distintas áreas tanto de las ciencias, como de las
humanidades, se vio que el sistema cumplía todos y cada uno de los requisitos exigibles
por Shannon a un sistema criptográfico computacional.
-145-
EJEMPLO 1. CIFRADO DE LAS DOS PRIMERAS PAGINAS DEL QUIJOTE
CÓDIGO CIFRADO CON LA CLAVE GENERADA A PARTIR DEL NUMERO 44.
T O l EM U(J L I IGAP DE L A MAt lCHA» DE CUYO HOMBRE 110 OI I IE=!Ü ACORDARME > MO HA '•'! iCHO C n i ra-478Xll7CQ'^DF*«H2lJ(33S,-Í.L3<ENG7LBRI)H2-*9G)Z*7F2C?B*"! : / » " I H ! J - ( t t 2 R * H ( « ! = ? > ' ' ; ñ ) • ' )
T 0 2 T I E M P O QUE V l v I A I )t l H I D A L G O DE LOS DE L A I I Z A E l i A S T I L ' . E R O » ADARGA f l T l G U A r R O -
C 0 2 \ + U % A \ 2 5 2 3 D 7 O X 0 \ " R M + L = / l l / a 7 R / 8 < ! V H R C ^ S i m c r n + A E l \ - ! r 3 ( Z I RSD-GHOQST I + ' ^ J ¡ I 3 G S i 2
T 0 3 C I N F L A C O Y GALGO COR' E D O P . Uf lA O L ' A DE ALGO MAS VACA QUE C A P I l E F O r S A L O I C 0 ; i
C 0 3 " J * F R 0 . a = h > ' J P V / 0 C ! 2 Q ? : M " i - J > i + - K Z B : f l L / I - ' ^ 0 » H R 1 2 7 M I * P Z I > . T = D ."3RE2 ) K I « 3 iO ) líZ'.v . . ' .J7S
Tni+ L A S MAS I IGCHES» DUELOS Y O u e R P A I I T O S L ' )S - " A r u n O S » L ' J I T F J A S LOS V I E P H E S , A L G ^ " '
C")l^ ; , G - i Y L Z 7 0 K E + Z : G O L > 6 " l < V K 8 r ! I P . n 2 K E a P . > 9 í ^ . Í'.-;V - v o t ! K 6 / G r . - ; > » A 6 ( T PTV : M ? / r S - S ^ J ' - ' C - f t C ^ :
TOS P A L O M I M O DE A \ . D I J U P A LOS DOMIMGOS» Cni |Ci ¡ M I / \ | | L \c, x ^ E S PARTES D E S ' i H A C I E l - i n V .
C 0 5 V " U . I I ' J l l l O R = « C - G - W E = ) Q V : \ L " ? \ / A ? 2 < J O ' 5 l » 4 . 7 3 / . W 2 r - : r , U F 0 3 M J 3 * : ^ ? l - / K D C = l ? + A \ ) K 'GAVJ Í ' IK
TOÓ E L f=^FSTO D E L L A COMCL.UIA I I SACO DE V t ' L A P T E » C A L Z A S DE VELLi.U|C) PAR ALAS . F I E S T A S .
C 0 6 n R W > P ) M ) S H y H A I 5 ! W Y V I VMÍJÓACW n i l S I » ! < P \ r : 5 /Z !bu^ :0 S R A I »$EXr?DU<DP J 6 0 M ( l . ' - ' - > r M J - ^ ^P !
TOY COfI SUS ^ A M T U F L O S D' LO ^ r c - n , Y LOS O I .V" ¡ i r £MT' - 'E5EMAI IA SE HOf l ^ARA C ; : , S u C n 7 D . H = \ ' 5 4 i r r M T * M S C 7 G I (=1 iVO í : ,?FU f > H U ) " S » K ( S' » OP I ! - ? F - g H 3 X 7 vp ( 1 , l i , (->P » v " = ! r ; / ' - • - - - ; K
TO.'Í V E L L O R Í D E L'"I M A S P l ' i ' " ' . T ' " ' ! I A r t | <•,! i C A S \ i M lA ^'vi.; f)i ,E P . ^ S A H A ' O P L O C CI'.\>>r: \J - , v
COH '"')']Jtn]n,P,X,-í ' K H , L ! ; í ? . ; LA ) ^ - , - ! r - i i : i r ? f ^ n n - " T r n T ' M í J » - - ; » 6 - 1 V M P I U o i ' ; / ? L ' S i r ' i iCSAE£ i^^O- < -?3
T 0 9 l l t i A S O R R M A OUE i 10 L ' - E O A B A , i.OS ^ir-'l'Wr, y i ¡ i • . •0?. ; | ) r CAMPO Y P L A Z A » 0 1 T AST c o n " M X I ? 1 . 0 ( P l < V J I I * \ L V ' - ' ' = L E 6 . " - > - " " ' > ? U t ^ i ' , > ' ^ : r ' ! C 1 r ü v - T T 3 ) 7 I ? H = ?'-:7!«30 ( 7 1 P \ 1 : + F U = n r 6>S- .A ; ' i
T i n E M S I L U A B A E L P O C I M C O N ' O T ' i v A f i . v L A P 0 D A ! ) F P A . F R I S A R A L A EDAD DE MUESTRO HIOAl . f „o
C Í O - M P 7 U I A 0 / ! V 5 D L 7 Y » / " M • 1 2 ) = A Z / ' + ? A X f l O 3 7 0 r ' t 0 P A O i + R = O 0 Q l l - L I - S W R H * B ? » ' J R U " 6 I ? ) i I ) 6 1
T u COIL LOS C I M C U E M T A A O S i ERA DE C 0 M P | I.X l O l I ^- 'FCI A > SECO DE CARMES»'~MJi iTO DE " - -
C U J l l l V H 2 S V ' r u P I I » » ' 5 H ' ' \ f 5 " : f l S " G S - 0 : » < C ! J F ' Í 7 + & " U ! > - ' H J ' ( D S I U Q C ? D S « M - K n ? M ! ( ( w a + ^PC-)
T 1 2 S T P O f GRALl MADRUGADOR Y A ' - i IGO DE L A C A Z A . O U I E R H I D E C I P Oi ÍE T E M Í A r i cnnnf-.r-.'-
C l 2 J ) < S 0 < . f l 3 2 Y S ! Y S / M ^ V H » ^ ) r ? ) 0 2 G 4 . = L K A ( r ( - Z U N ^ - i l R n » S - ^ 0 1 2 0 . T . E ! L S U + Z'-" ^ • • U J H 1 LT • 3 ' i r ,
' 1 3 DE Q U I J A D A O O U E S A n . \ » Oi lE EM ESTO HAY ;,| r,; lU ' , D I F E i - r n C I A FU LOS AUTORES Oi ir ~ . - S ~ C l j • V / < r ^ F : P O \ T r . Y " \ ' t •••! + 6 T M ) r < r ' 7 0 ; > . " i ^ P Y O r - / . / ••?:•• nV l f " ? i i u j | i , , | ( . ! !'S<3H P K * < 6 r L + ? * ' ^ = ; ' '-'••' >
T l ' v T E CASO E S C P I h E ' l l A U M O ' E i='">P Cí)U J ' ' T i M'A"", ' ' r - OS I'-l I L E S ' F l ) ' " JA (^•| |T"l lD'^= OU " S-: C U ; : H ( q X ! H " > . 7 r i . < ; ; , C m < 3 ¡ 5 í ' f ! / C M - / w K ' «-0 = A P T H ? - - Y / i v - T K , % P " r \ M h 0 7 ¡ « K Y ñ W ! T ' C i ó r t / F : ! . - .R-*.* ' ! S M I
T i ' ; |_ AM ,HA QiiEvJAM.'-.. PEPO E S f O I M O ' I P T A P O C ' •'. M i i r ^ T R n O H E I I T O Í BASTA QUE ': • I LA í : / ; -
C l ' i Oi ' '06'-»FH7!l l-37MOftQr 2 Y - A ( 2 4 - Q l )'-iPt? ) O ] . ; H - V ü - ju r , . " , ! AF ( H < \ 3 0 F 0 " ) D » '*F0 A W 0 S H * E 6 S?»-' ( tC-:)»-•>
T i n í ' R A C I O í l P F L MO SE SAL.GA i ' I I P " U T O DE LA VE i^OAO. C l 6 HCRCWñ ( V > ' I H O ) ! - ? « I I ' K 2 ( - V P < 6 T - . í l l ! S I H < ' D / n ' ; ' M r M » n X \ A I 0 \ a . * X : X 0 Z . B B U ^ ' A J G C i n Y L K ' 7V
7 1 7 ES» i^UES» DE SAB! "P» OUE t S T E S O B R E D I C H O H I D A L G O » L O S . PATOS OUEESTABA O C I O S " . C l 7 »OHCZLP » ? * ( I f t S < + í + C I I » X 6 H L v , i | ! > f i W > D I C > W : - \ 6 ' . - / i: S H S a G V \ 0 - 8 / = R - ' ) / f t t l U Q T ' » - Q < U 2 í i L P ' T E X ' ) f í
T l H - 0 1 lE ERAM LOS MAS D E L A \ o - , SE DAHA A LE P L. IRROS DE C A B A L L E R Í A S . . . r i H TS» l \ 0 ? - r - r O - f S S X - I / r , H l Y ) ' + C r - - , T J ) ' > i H f - ^ ' G ) ' r - . ( J J " ^ ( * i - A ! X A I R ? - > W ! D P > " 5 ! A / " 0 3 9 1 G 0 2 S ' . ^ ' • •<,<•;
146-
TEXTO DESCIFRADO CON LA CLAVE GENERADA A PARTIR DEL NUMERO 44.
C O I a'^7F^X[)7CQQDF*»)-^P^ln^S 5 . L . 1 < F : M ( ; 7 L n f l i H 2 - ? ! ' 3 f í ) Z * 2 P 2 C ? R * " ! : / t t " I H ! ; - ( t J 2 P * H ( * ! r ? > 0 6 ) f t ) T O l EU IJM LUGAR DE L A MAMCHA» DE CUYO IIOMRHE f lO Q U I E R O ACORDARME ,<\r) HA MUCHO
C 0 2 \+U!»!A \ 2 5 ? ' . 3 D 7 0 X n \ " R , M + L = / i i / H 7 P / f l < ! VHRCO«'+i 'CT i i + A F l \ - ¡ r 3 ( 2 «««D-GHO'v 'ST ( + 3 J t I ^ G ' i ' 2 T O ? T I E M P O Q i i r v / I V T A l i l i H I D A L G O DE LOS DE L A ' I Z F ' i A S T I L l E P O f ADApr ¡A , . l l T i r ; i i ; \ , o o -
C 0 3 " J * F R O . « = ^ H P v n c ! 2 0 S 1 V W - J > 4 - I < ? B : R L / I - H O t t « H 1 2 7 M M * P Z T > . T = n M-1PF7 ) t T«3 ! '".) " 7 •'» .1 i7S 1 0 3 C l t l F L A ' " 0 Y GALGO r n P " E D O ' - . lU lA O L L A DE ALGO MAS VACA 01 iL C A P n r p n , Q,\L " I C " i
COU 1 » G - ! Y L Z 7 n K F + 7 : G 0 | . > 6 " l < V t < ' H C ! I S 0 2 K ' E ' Í ' ' . > * ' í '> / \ / ' - i - vn r | K 6 / G l i ' / > . Añ ( T PJ^/Vi?/^ T.-'^ * j ' r : i ^ < " S : TOU L A S MAS I l O C H F S f Di i FLn< ; Y 01 l E B ^ A I ITOS L ' I ' ^ .AR.^DOS» L A N T E J A S I.OS V/ir.-;;!;: c,, /^ '^i • •
C 0 5 V " l i . i M ' ( i Q p = f c - G - ' ' / E = ) . ' ' ^ ' : \ L " 7 V A ? P < J 0 » S ( » « . 7 T / . W 2 P G ' ; F 0 3 M J \% \? I ' /^^r¡C- ^?+ iW ) v • G A ^ ^ ^ l l ' TO'S P A L O M I M O rjE A V A D I n n P A L ' l ^ n O M T ' I G n C r r ^ j ic i r n A M |_ ; \C , T P t r q P A i ^ T r s DE'^.! : M.-,r j r r i n A .
COft » ) o w > P ) M ) ' B f l y tA I !5 . " . /Yv / l " i | l í 6 A C - / l i | S I ' V ! l < P \ r «5 / 7 - i i i r ) S R A I . Í F y i i n i K O P J f t O l I (1 v - > , M 3 - S I P :
TOft E L P[-"STO DFL I A r o i i r L U i A M SAO'-i D r v L I A n T E f r A i . 7 A S D F VELLJ|P)n P A ^ A L S F T F - T A ' ^ W
C n 7 D . H = \ 5 i + T G M T * M S C 7 r , l ( = t A o ! : 3<^a + >H'1 ¡ " c , 1 / ( a n . n n i ¡ . o p - ^ H ^ ^ v y vj ( \ , í \ ' Q ' ^ ' \ "=:'~-/('•<-•'•'K-^, T 0 7 COM Si.lS PAMTI 'FLO^ ' . n r 1/1 -.Tc^-'n, y |_nc, nTAc^. r¡F r> |T " rc ;F> , i , ; ; )A c,r H O L K - A M ^ . r - • > c ' ;
COR - O T j j p - l G r i i í - í ' - kG f 1.1 2 ? , ' l A 1 H - " f : l ^ F o + i . - .M--n?v Tfl=='*: f f t - 1 VRt^ I ^ i i ' - l . " ' ?L ' j i l ' - ' i !i =;.-.'^-( e n - - ; ? 3 ~ 0 n V E L ' O " ! n i^ '..''1 '•'A'-'. t ^ T ' . " . ' ^ ^ I T A r- i c u f^,^c; | n , •, -. A r,[ ,\r PASARA n r l.r-<-, "_"•'•" ^:'T \ , y
COQ " MX l ? n ( i " ' I < ' - i i ! * \ | . " = i . rrr-, ! / i > i - - ' i ->? ' ¡P i ;>< í2 i r . 1 tí'ñY2!" E 3 ) 7 I ?H=2'^ .7 '^3G ( 7 1 " V 3 : + - • ' = " r í i > S > \ ! O :
TOO Mi|A S O R P I ' I A OME M'^ L— r"'AR L 0 = \i^-:i'\T-, v 1 111 MO70 OE CAMi ' i^ Y • ' ' L ' V A í ' . F A S I
C Í O ' - f i P 7 i i I A O A !>/=; D L 7 Y , / •"•<l•:')-^^/¡^.?^y»r.',znn^,'^r•^r•.un = '^n<Tlll-[^u-'^'•lf>H* n ? * ' * " ' " ^ l ? . ' • " • : l íSI . T i n E ' I S I L L A R A r:^ i ^ n c i M rr-.'- T ' - ' . 'Ar ' - , L ••. i - r , r i ! ) r ^ ' A . C ^ - I S A R . \ L •'• E D A " HE l ü ' E s r - ' O M T D A I . G ' I
C l ' J l f l V H 2 S V < i i P I I I » S H P \ ( = ^ " : ' | « " G S - n : ii< < C I J E « 7 + G " M ! > - > p , j » ( n S I ! i Q C ? ] S » M - K ' n ? M i ( ( . . | f t ) - i .Qcs T I ' COM LOS C I ' I C U E I I T A A \ O s i ¡"Í^ A DE r n ' i n i r-y r n t 1 u i T i A r S F r o D i ' r Ao i IFS « r i i j i i f ^ nt^ •" • -
C 1 2 J ) < f t O < . n 3 2 Y ' ; ! Y f l / M ' * ¡ \ H » ) C 2 ) 0 ' 5 . G S . = L K A I C ( - / H V « ÍS I RD» S A G I 2 Q . T . E ' L S I | * / F + » 0,1 r a 1 T ' 3 5 G
T 1 2 STPO» G P A ' l MAÜPIJGAnn== Y A ^ I G O Q F |_A C A Z ' » . O n l F t T r i p E f T " O! lE T E ' I I A Fi_ c o R f F M O v -
C 1 3 » V < r S ) F : P D \ I O v q \ u " • ; + f . T ^ • ) ' • l < ^ 7 G : > ! a 2 ? 7 J T « / • 7 ' l 2 . ^ • • ' f ^ ' * ; ( E Z ^ " J ! ' ^ ' l K l l ' > ^ < 3 R P K * < 6 C L + 7 * S 5 ' í i ' - ' - A T 1 3 DE O H I J A n A O Ol . iESAn » Oi lE r t 1 r c j i o HAY Al . i ^U ' lA D I F F P r r i c I A E' I Lf^S AUTOPE' í 01 !L P E S -
r \ i i : B ¡ g y i H " > 7 E L S R * < ' " S M ' l / r ' r - i M H ' ••C = A P T S ? - - Y / * 7 ' ' r ')if.:-^"r-\\>f,Qj 1 » K Y Q \ V ¡ T ! Q^SS/F ; i _ - / B * * " I5'-11
T i n TE CASO E ' ^ C P I R E ' I I AI.I.'lOUF P O P C ^ M J E T M P A S v r - c n s í ' - : I . . E S SE D E J A EMTEMOE= 'ü F S "
C1 ~ GK06'=»EH7Mfl7MQ6i?r 2 Y - A ( ' ' U - í r i ) W"^» ) OOT . S + v ; E J i !6í»r AF ( H < \ 3 n E 0 " ) O » « F n A ' - ' ^ ' ^ M + F A =>.?i ( I C ' U f t )
']'•'-: l.l AMAR •• O i ' E J A l i . P E ^ - ' - S T O ¡ v p - i U T A ^^^OC^ A ¡¡[tfz.jJr, r'. E ' H " I 8 A S T • O'¡E • " I " . " -
C 1 6 RCP/ :wñ ( V > » I H ' M r - 2 « ' l í l ' 2 ( - V D < < = , T - 3 " ! = ; l w < ' i / n ? H F M ' O X \ A I 0 \ 2 . * X : ' - ' 0 7 . R P ' i i ^ i " ^ ' - I P v i i ^ ! ! 7 \ /
T l 6 D A C I O i l DEL '10 s r - ,ALGA 11; I P " M T ' " . RE LA " t - ' f - ^nA" .
C 1 7 . P R C Z L P » ? + ( I » \ < + U C r i » v 6 R L ' - ' " l > S " í > D I C > w : ' \ f S ' ' i P S ' ^ ' ^ n G V \ n - f l / = R - ' ) / f i r i n o T ' S * ' : < " ? ' ^ L F O F Y q G T l 7 fc,, Dl. iFc,, r,E S A R F F , 01 lE • S T ' SOf- iPEDICHO H I D A L G O » LOS RATOS Oi lE ; S T A " A O C I O S ' i
C 1 8 T S ! l \ 0 ? - r - r o - 6 s x - I / = 8 1 Y ) 4 r E - i ' / T J ) ' X Q + 2 G ) 5 \ t 1 J 3 ( * P \ ! X A T R ? W ! D P > S ! A / " 0 3 O I G ' 2 S 0 V v \ 9 5
T 1 8 - 0 1 ¡E '^RAf l LOS MAS D E L A \ 0 - , SE DARÁ \ L E E P L I B R O S DE C A B A L L E R Í A S . . -
147-
EJEMPLO 2. TOMADO DE LAS PAGINAS 63, 64 y 65 DEL LIBRO DE ALGEBRA
MATRICIAL DE MATA CORTES DE EDITORIAL DOSSAT DE 1966
CÓDIGO CIFRADO CON LA CLAVE GENERADA A PARTIR DEL NUMERO 33.
TOl DAOOS nos VFCTOPES V I Y V2 PERTFiM' CIFMT'S A E» SE DEFINE rriTREELí OS LA OPF-COl rnA59)5 \ . ' *M( )«?=0 CO 3M<>M=QH$S!CNF-W«-l/-r+j/Rl , G T ' 7 í » * ! » :l.» OPOT » I ' TfiT- 'S!!, ! »»aG
T02 RACIOrj DE SUMA VI «-V?, Ol lE CUMPLE*. C02 H * I I : M » .OtlQOXQA^a T"4 r> •^CF'5".<6H8*) «IOS<Q.1\=D -Rn\>C< ?0 o= C' MHl^MN S ( * ) i r ' ! i i SK
^rrl^ A) v i+* '? = W2+VI cn3 \<HA2Gy»- 'B?OTt" r )y-o i2«<JwiM2)0 : PCn«7nBT>2YraMK\>\i)*yF-M?-K r7=<?)),> yj)c-Mc»7
rnu P) V I + ( V 2 + ^ ' : Í ) = ( v i + v 2 ) f V 5 Cnu qOS-r I*P2V = < .'«. + ) !'Í7:^"LA-<!BI36AT073P. ("»-ilSU2t\) .?"T( )l*) :%urft »+2!7\II+OÍ*3<H';I!*0
TOS C) V+O" = V 1 Cn5 fJM<flC»GflR«J<U"-HR='*\ ' í6yxi2\>n<C?0 + ' .•fi4ir,¡(\ /»i\yo\)\ «Kiawíftnn'/» ">b\ lLGra(Hn)bG" • -
TOís n) v + ( - v ) = O" cn6 ( 2 " I 6 ( G : ¡ i i roMTxnv i • )ML,ii\<r,T .nFyc3i'ii ' 'T^».r.'n ^ / ^ i » ) " S P S S J K P K ) I R « L ' ' ' ^ " * I I ^ ' " ! ? ' ' ^ * ' ' .
Tn7 AOEMAS. OAQOS Ull VECTOR V PFRTrMECI-| ITE A f Y iltl ESCALAR C» PERTrurri'TfiTi- A C07 Jftqc:37r>/.r)K")<-W"<7I'5nP'R 0f\9+"«C.1J>7.'i\A?i>GDU F<3I5>.'P)? ":n"7H+/ZXF»-STH+c+)
Tnn K» SE DEFinr • MTRE EI.'..OS LA nP(rPACTOM Dr PROnuCTO C*Vf OUE CUMPLE: con riflL\>»K/»*f<KDE'+J(WÍC»PW3w$/G>A«=nnPF'5C6)*«)70y».Al( '->CJ"<F"KFP50»Pr "!IQ)M1"?'!IM"S
TOO 1) (Cl+C2>*V = C1*V+C?*V rOQ M !RLP5 V»!7 ) OH 1??>MAK9 ( . VI O : 5TU/nft n"<H'SF\r7 > C,P(D r?=7 ) > •CH=r>lM f-,'3i\"y I .n--> "ixnof-.v 'J
T i n 2) C*(V l+V2) = C*V1+C*V2 Cln «L \B \> A 5 \»i.i(>Fn-QPT;? ?*=<?\A^rG )FM on M f i n g v . / ns iGMSi-xsu R iCPionM(T" )E* )Fy
T u 3) C]-*(C?-*v) = ( c i * r 2 ) * v C U H.) :0XNY)F/»ER-?) ZM ) ytt5T/'GM=iL'-JYO»=>pii> t|P . ? ) w ]\G< I O (IHUOA 1X7A ^-'íf-IPGPT y)A*(AP
TI? U) ll*V = V C12 ra9 nH'X*K2M?TíGt l !7) l \ o e L l » - N \ y R l 9 ) * l IF T ?K ) =r IG'iO?» ( T-tl7Fi i»= C r 2\ -P*Y2n»"A .<fjr •
T13 SE DICE OiiE i'M SITEMA Ql" VECTORES •; = ( v i »\/2r . . . »VP) DEL rsPACIO VECTOPIAI E C13 '»íVYI-3WK'^7SRY6 :''53»RT7SY7nwG"7JP."»ttSJ ! YO *"YK>rk.r.|Gw.HQ ) ! 0''M«+PHSCR2/ZSKf Cfl ' ' X ! »
T14 S08PE K» son LIMfALMFtITF OFPi ' l i n in IT'-S f '". r ' 'M Ef-IE'ITE DEPi-uniFi ITESC'Alinn r v i c T r - i c i u D*T(E"KP(? \Tv« '4H3/rF ' í rz<Hi- ;%»*cni"T>.H\nr T y ! " F K r - A . : j r + í>aF« rF iHcnw i : ^ ! J A . C < / » Y W
T15 P ELEMENTOS L l PFPTEMECIFriTFS A K» MO j n n S MULOS TALES OIIP;: C15 4(K>ZSLM+XH *«« ( ) rUtt*)VL»0'4.S"5D.+3*7.ra»\ (MFr 0C2I I »W"W5->.GTr / tV 'JBC . ( * l i : \ = = a
T16 L l * V l + L 2 i ' V ? v . . . +LR*VR = O C16 n 8 7 M I ra SflV: . M)12JFIi-PTUZaL7nxqEWft.-»=7FR.6RTo:A\$«:02H*OfV) "K ^l<»!OPPP^?(l|( in*g=;5
T17 SF DICE (5IIE UN VECTOR V DEP'UDE LltlEALMFMTE DF Utl SISTEMA» CUAMDO : C17 RA-EMPP07S5U''> IP) (SQi+TDSI'' • ! S \ : JZ 'HL ).PE5l!KnEZlCn4K6>*»D2''5Q70WPOÜ TQ.<0. IR /D ' "$ ' l ) /S
T18 V = L1*V1+L2*V"+ ... + LP*V'" C18 t*ü 0!Sy.7IM. (SNfí !IS;sn»Q<KH*eKZIF/A(6"MLT i QCS ) Y'-«XPE ? ?»»L'? SGF( ?Pijr) «r ¡OF- "pp
148
TEXTO DESCIFRADO CON LA CLAVE GENERADA A PARTIR DEL NUMERO 33.
COI r O A 5 9 ) ? \ . ' * M ( ) t t 2 = 0 CO í ^ 'OMsOUSJSCMF-W* - IZ -E+J /R 1 »( ;Tr7 í r « I » : L » Q R O T ' I ! iaT>i<s M_1 ! « Q R TO l DAnoS n o s VECTOPFí V I Y V? PERTEMFCI iMIHiS A E» «IF D .FIí-lE E'ITPF L'.OS LA rpF-
CCl?. H - * Ü : M » .0riCOXi--.A2y?T>UT> C F S " . < f t H « * ) •=»OS<03\=0 - f ; 0 \ > C < 20 r C» Hm»:M\ ? ( * ) I F ' M i 5 K TOS P A C I o n DF SUMA V l+^ ' 2» O ' i r C U M P ' L P ' :
Cn3 \ < L 1 A 2 G X I - ' 5 ? 0 I : " r )X-n I2?5Q\ - íT ' l2 )n : P C H < ' 7 t l R ? 2 Y r 8 i l K \ > M ) * X F M 2 « K ' G=<2) > . i yJ ¡FMC»7 T03 A) V1+V2 = \ / 2 í - v i
Cnt» 9 0 5 - 1 : l*fíZ'J=<l<^'. ••) > t 7 3 " L A - < r R f 7 6 A T 0 7 3 P . ( " »-U<;£t?5\ ) . ?"T ( ) I * ) I ' í i l i rH I + 2 !7 \ ' l fP i *T<j?r ¡ i ! *n rn't P) VM + (V2+V3) = (v'i+^-2)+v3
Cn'^ MM<ñCtGHP«J<U"-HR=' 9 i \ 9 r « v ^ I 2 \ > i ) < C ? 0 t ' ^ ' ' i i i n H \ / " I \ Y D i i \ «^ I r tGNKnf l 'A 9>5\1<-G'3(Hn ¡""iG" -TOís c) v+nv = V ,^;'
Cn6 ( 2 ' M 6 { G : ) l i r O M 7 X n \ ; . ) n L O \ < 0 ) . O F X C I i r P33HPR M 3 I » ) " SP'iNJK R P K ) 1 B f í i , ' 5? " *1 ) P ' / i I?Vy*6 106 D) v + ( - v ) = OV
Cn7 J 6 9 C T 3 7 E > / . 0 K " • ! < - ' • ' " < ? I S f i ^ "••; 8 P \ 9 ^ - " S C 3 J > 7 Í \ A'5>Gni n 'PJOi 5> ¡O) ? •• 1 P " 7 H + / 7 Y F , .«STn+r H 1 0 7 A D F - ' A ' ; » n-^nn<; u n VFCTOrí v/ DFP.T r t i r r i - ; i i T - A '.' Y i.m F S C A I . A P C » PE' 'T f : "F ' - IF" IT=: A
c o a r i 8 L V > I K / . t * K K n E U J ( W ! C ! P W 3 ••5/G>Aa=ni | f ;FQrf t ) * % ) 7 D X S . A n ( » - > C J " < F " K F P 5 0 » P r " ! i q ) M 1 " ? ! I I H 1 i TOB Kf SF n ' ' F imE . ' ITP' E L L " ^ ' LA ORF^ACIOI-I QF opnn i i r i O C*Vr 01 lE CUMPLE:
c o a M'^RLPS V ! ! 7 ) 01 n?2>.MAKQ ( . V 10 : ST'4/G6 n*;a=iP' \C7 I "^R" r ? = 7 ) . *CH=5 lM 6 ° ! I " Y ( . ns i v»n f t v ] I T09 1) ( c i + í - p j + v = ci-KV+r^KV
CÍO - I \ R ' ) \ A S \ . l J ( > E R - ' í F r 2 ' ' - ? * = < ? \ A 3 r G ) FM on • ' l l » 3 2 y . / 03 IGn ' iT -y '> ' * R 1 C Í ^ I ' ^ " W ( T " 1 P * ) F X T ÍO 2 ) C * ( V 1 + V 2 ) = C * V l + C f V r '
c u » . ) : i n X I I Y ) E / A F Q - ? ) 7M)y t t ' iT / - r : i i p iL '?Yn6R( )> '|P . ? ) w ] \ f ; < > n ( l H i i 0 A ] X 7 A +BR- (?GBr y ) A * ( A P T i l 3 ) C1*<C2+V) = ( C 1 ' ' C 2 ) * V
C12 Q9 " K X * i ' ? M . n 5 ' ; « ! 7 ) l \ OAi . t ) - ' i \ y R i o ) * r i r r ? K ) = r I G ' ; n ? B t T - " J 7 F n » r r r 2 \ - P * Y 2 P 3 " A . < f ; r T I 2 «*) U*v/ = ^'
C13 5KVY»-3WKE7«;PYfi i r - , 3 . f l T 7 H Y 7 0 w í ; " 7 J D H « ' ; j í Y O *"YK>ri ' . I iGWrHO ) ! 0 9 ¡ «+PH5CP2/ZSK tCS ! !X : » T13 SE DICE ONE i i t l SISTEMA ÜF VFCTOPFS «; = ( V I » V 2 f . . . »VP ) DEL ESPACIO VECTORIAL E
CIU P * T ( F " K P ( ? \ T \ S ' lM3 / rF ' ^ r7<Hw 'K )+ r . l i | " T > . n \ n r I X . ' " F K r - A . ! j r + »>f lF- r E 3 H ( 0 W n ! I A . C < / » Y w T1U s;nROE K' ^lOtl L r iFAL ' ' ' !~MTí ' n r P F M n i r r i T r - c ; n c ; iMnLrMEl lT r DFPEMDIFMTFSri iAi inn FVIST="M
C1S a (K>7SLi)+y?í •'V'íC ) T n « * I V L > n ü < í " 5 n . + 3 * 7 . R f \ (HEP 0C2L I »'"^•".VS->.fiTr / « tV 'JRr . ( * n : \ ' ' > = í t TIF) P FL^MEriTOS L I PEPT ' " ' IFC I - r iT ' -S A f » 110 T ' .O ' t ; H H L O S TALES Q' iE:
C l f t n S 7 M I 1 SHV: . | i i r ? j F l ) - P T U 7 i i L 7 n x o E W f i . ' = 7 F n . 6 8 I O : A \ S S : 0 2 H * 0 » V ) K M3S0PP • \ ? ( l i ( ( 0 * H = ? T l f t L l * V l + L 2 * V 2 + . , . , . +LP*VR = 0
C17 PA-F I IPro7SSl l ' ' i I P ) 6 Q í + T 1 5 T " i ! S \ : j 7 ' H L > r i F * K ' n F 7 i r R 4 K 6 > * » n 2 ' ' 5 0 7 ' 5 W P 0 i i T r a . < 0 . I P / D = S i l ) / S T17 . SE DICE QUE UN VECTOR V DFP'MOE L i r i E A L ^ F U T E DE UM SI^-.TFMA» CUANDO :
C í a i+" n S X . 7 I t l . ( S \ » ! • • I S ! \ U « f 7 < K H * f i l < 7 > F / A ( f t " H L T L 9 C » ) Y Y X X R F ? 2 ! » L » ? ÍRP (?RU=)-HOFf l "RP T18 V = L 1 * V 1 + L 2 * V ? + • • •• LR*VR'
-149
De este modo, este sistema se ha instrumentado también en un dispositivo
"hardware", para obtener la correspondiente patente en el Registro de la Propiedad
Industrial. La descripción "grosso modo" de dicho dispositivo es la siguiente:
El esquema de un generador de números aleatorios que se ajusta a las
especificaciones dadas en 3.5.4., se muestra en la figura 4.1.. Dicho generador daría
números aleatorios enteros comprendidos entre O y k-1.
La salida del multiplicador sería:
{a.u+ —) modl ; (M=2'") M
Para calcular NA(I) habría que multiplicar dicha salida por k. Si se elige k=2' dicha
multiplicación equivale a coger los k bits más significativos de la salida del
multiplicador ya que esta es un número decimal binario.
Como se quiere calcular NA(I) mod N siendo N = 2" y puesto que k=2'* y
k^n, dicho cálculo se reduciría a coger los n bits menos significativos dentro de los k
bits más significativos de la salida del multiplicador.
A continuación se explican las funciones que realiza cada uno de los bloques
de que está compuesto el generador de números aleatorios.
Interfase tecladot
Su misión es la de leer la "semilla" Ug desde el teclado, y codificarla como u
número _,binario de m bits. Una vez que se ha reconocido el fin de la entrada del
-150
valor inicial se activa una señal IQ que va a la unidad de control y que permite la
activación de las distintas señales generadas por dicha unidad.
Multiplexon
Este módulo es un multiplexor 2 a 1 que selecciona entre la "semilla" üg y
el último número aleatorio generado, es decir, la primera vez seleccionará UQ y liará
U-«-Uo y las restantes veces seleccionará la salida del multiplicador y hará
U*-{aU+ —)mod2"' M
El multiplexor está gobernado por una señal de selección SQ proveniente de
la unidad de control, dicha señal conmuta cuando la unidad de control detecta la
activación de la señal IQ generada por la interfase del teclado. Entre la detección de la
señal Ig y la conmutación de la señal Sg se deberá dejar el tiempo suficiente para que el
dato se propague a través del multiplexor y se cargue en los registros U.
Registros U:
El propósito de estos registros es almacenar el último número aleatorio U
generado con el fin de ser utilizado en el cálculo del siguiente número aleatorio. La
carga de los registros está controlada por una señal Cg generada por la unidad de
control.
Multiplicador:
^ Las entradas al multiplicador son la constante a y la salida del registro U.
La salida son los m bits más significativos del resultado de multiplicar a y U.
1 5 1 -
Sumadon
La salida del sumador es el nuevo número aleatorio fraccionario. Dicha
salida actúa como entrada al multiplexor para posteriormente ser cargada en el registro
U y utilizarse para el cálculo del nuevo U.
A partir de esta salida, según se explicó al principio de este apartado, se
calcula un número aleatorio entero módulo N.
m
'TECLADO
lo 1
INTERFASE
TECLADO
m
MULTIPLEXOR
m
REGISTRO - U
>' m
i m
MULTIPLICADOR
"c"
i m y ' m
SUMADOR
; ' m
So
<—7* Co
í n FIGURA 4.1. GENERADOR DE NÚMEROS ALEATORIOS
152-
El cifrado del carácter que ocupa el lugar I en un mensaje dado, se realiza
mediante la siguiente transformación:
NCS (J) = {NA{D.I + NC{D} modN
Siendo:
I la posición del carácter a cifrar dentro de mensaje.
NA(I) el número aleatorio generado en el lugar I.
NC(I) el valor correspondiente al carácter a cifrar en un determinado
código (ASCII, EBCDIC, etc.).
N el número de símbolos del código.
-r Valiéndose de las siguientes propiedades:
(A:B) modj = (A modj. B modj) modj
(A + B) modj = (A modj + B modj) modj
NCS(l) se podrá escribir de la siguiente forma:
NCS(/) = {[NA(D modN.ImodN\modN + NC(J)} modN (4.1)
Generalmente, N será una potencia de 2 (N=2") y de esta forma el cálculo de (A+B) mod
N y (A.B) mod N se simplifica considerablemente.
El cálculo de (A+B) mod N se hará mediante un sumador de n bits, siendo el
resultado la salida directa del sumador. El acarrero de mayor peso se debe de ignorar.
Para calcular (A.B) mod N se multiplican A y B y el resultado será los n bits
inferiores de este producto.
-153-
La implementación se ajusta a la expresión (4.1) y se muestra en la figura
4.2., que representa el esquema general para el cifrado, cada uno de cuyos componentes
se explican a continuación:
El cálculo de I mod N se realiza mediante un sumador y un registro. La
primera vez, el registro se cargará con el valor cero, al activar la unidad de control la
señal CLEAR. La salida del registro irá a un sumador de n bits donde se incrementará
en una unidad, dando como resultado I mod N. Este resultado se cargará en el registro
mediante la activación por la unidad de control de la señal Cl. Cada vez que entre un
nuevo carácter para su cifrado se repetirá el ciclo anterior.
El multiplicador hallaría el producto de las salidas del sumador y del
generador de números aleatorios, correspondiendo los n bits inferiores del resultado a:
[NAiDmodN.ImodN] modN
A continuación, se suma el carácter a cifreu: con la salida del multiplicador.
La salida del sumador corresponderá a la expresión:
¡ÍNAÍD modN. I modN] modN + NC{D} modN
Que es la expresión que se quería obtener.
El carácter a cifrar se obtiene de un registro de desplazamiento donde
estaria almacenado o se iría cargando el mensaje. Cada vez que se necesite un nuevo
carácter para su cifrado, la unidad de control activará la señal C2, pasando el primer
carácter en el registro de desplazamiento a ser cifrado.
-154-
Por último el carácter ya cifrado pasaría a una unidad transmisora desde
donde sería enviado.
Obviamente, el mecanismo de descifrado sería similar al de cifrado.
REGISTRO
GENERADOR DE
NÚMEROS ALEATORIOS
CLEAR
Cl
• I I .' "
." "
SUMADOR
n . "
MULTIPLICADOR REGISTRO DE
DESPLAZAMIENTO (MENSAJE)
SUMADOR
n
C2
TRANSMISOR
>' n
FIGURA 4.2. ESQUEMA GENERAL DE CIFRADO
155
De estos resultados y del estudio teórico previo, se puede concluir:
a) Que el sistema es de llave pública.
b) No expande el texto.
c) Es inviolable si no se conoce la semilla.
d) Es más eficiente que los conocidos hasta ahora.
e) Es versátil.
f) Es transportable, lo que permite implementarlo sobre cualquier
computador, incluidos micros.
-r 4.2. FUTURAS LINEAS DE INVESTIGACIÓN
Puede afirmarse con probabilidad rayana en la certeza, que el sistema
propuesto si no es óptimo es casi óptimo, lo que lo convierte en un tema casi cerrado.
Sin embargo, como no hay bueno que no admita mejor, se va a intentar modificar el
sistema para que optimice su comportamiento en el caso de las comunicaciones.
En efecto, seria ciertamente interesante que, a efectos de transmitir la
información criptografiada, el sistema no sólo no expandiera el texto sino que, a ser
posible lo comprimiera. En este sentido, se va a continuar la investigación para añadirle
al sistema un compresor de textos que, sin eliminar las características ya reseñadas,
que actualmente lo hacen casi óptimo, reduzca el texto a enviar. Esto además de una
reducción de costes puede añadir un elemento adicional más a la inviolabilidad del
mismo, de un modo parecido a los sistemas "One time pad" ya descritos en el capitulo 2.
-156
BIBLIOGRAFÍA
[1] Bennett, C.H.: "Quantum Cryptography and its Application to Probably
Secure Key Expansión, Public-Key Distribution, and Coin-Yossing". IEEE
Abstract Int. Symp. on Information Theory, pp. 91. Quebec. September 1983.
[2] Barrow, G. M.: "Physical Chemistry". Me Graw-Hill. Inc. 1973.
[3] Brillouin, L.; "La Science et la Theorie de L'Information". Masón. París
1959.
[4] Burton, CE. : "A Public Key Cryptography System". Dr. Dobb's J. Vol. 9, nS
3, pp. 16-22. USA. Mareh 1984.
[5] Desmedt, Y. et. ai: "Cryptography Protects Information Againts Several
Frauds". Proc. of the Int. Carnahan Conf. on Security Technology, pp 255-
259. Zurich. October 1983.
[6] Diffie, W. and Reliman, M.E.: "New Directions in Cryptography". IEEE
Trans. Inf. Th, Vol IT 22, nS 6, pp 644-654. November 1976.
[7] EDP ANALYZER : "Data Encryption: Is it for You?. Vol 16, n2 12. Vista
California. December 1978.
[8] Ernst, G.W. and Newell, A.: "GPS: A Case Studyin Generality and Problem
Solving". Academia Press. New York 1969.
157
[9] Feistel, H.: "Cryptography and Computer Privacy". Scientific Americain,
Vol. 228, n2 5, pp. 15-23. Mayo 1973.
[10] Fisher, W.W.: Crytography for Computer Security: Making the Desicion".
Comput. & Secup. Vol 3, n9 3, pp 229-233, Netherlands. August. 1984.
[11] Forsyth, F.: "The Fourth Protocol". Hutchinson London. 1984
[12] Gamow, G.: "Biografía de la Física". Salvat - AE. 1971
[13] Gardner, M.; "Juegos matemáticos". Scientific Americain. Enero 1965.
v [14] Govaerts, R. J. M. et. al.: "Cryptography: How to Attack, What to
Protect?". Proc. of the International Conf. on Comm. ICC84, Vol 1, pp 175-
178. North-Holland, Amstemdam. May 1984.
[15] Greenberger, M.: "JACM 8", pp 383-389. 1961
[16] Guillou, L. C. and Lorig. B: "The Impaet of Cryptography in the Desing of
the New Services", Proc. ICCC 78, pag. 303-308, Kyoto 1978.
[17] Heisemberg. W.: "Determinisme et Indeterminisme" en "Science et
Synthése". Gallimard. París 1967.
[18] HuU and Dobell: "SIAM Review'i", pp 230-254. 1962. "
[19] Kac, M.: "Probabilidad", en "Mathematical Thinking in Behavioral Sciences".
W. H. Freeman and Có. S. Francisco 1968.
-158
[20] Kafka, G.: "Data Encryption: Criptography Offers Effective Protection
Against Data Theft". Elektronik. Vol. 33, n2 12, pp. 159-163. Junio 1984.
[21] Knuth, D. E.: "Fundamental Algoritms, Vol. l:The Art of Computer
Programming". Addison-Wesley 1968.
[22] Knuth, D. E.: "Seminumerical Algoritms". Vol. 2: "The Art of Computer
Programming". Addison-Wesley 1981.
[23] Lehmer, D. H.: Proc 22 Symp. on Large-Scale; Digital Calculating ' i '
Machinery. Cambridge, Hardward, University Press 1951.
[24] Lennon, R. E. et. al.: "Cryptography in Data Processing". Data Procesing.
Vol 26, n9 7, pp 36-38. GB. September 1984.
[25] Lennon, R. E. et. al.: "Coupling PAC to Both AP and I D". IBM Tech.
Disclosure BulL VoL 26, n9 6, pp 2803-2805. USA. November 1983.
[26] Logpre, L.: "The Use of Public-Key Cryptography System". Dr. Dobb's J.
VoL 9, n9 3, pp 16-22. USA. March 1984.
[27] Martínez, V. y Pazos, J.: "Fundamentos de Teoría de Sistemas". Servicio de
Publicaciones de la Facultad de Informática de la UPM. Madrid. Diciembre
1984.
[28] Merkle, R.C. and Hellman, M.E.: "Hiding Information and Signatures in
Trapdoor Knapsacks". IEEE Trans. Inf. Th, Vol IT24, n2 5, pp 525-530.
September 1978.
159
[29] Meyer, C.H.: "Desing Considerations for Cryptography". AFIPS. Conf. Proc.
42, pp 603-606. 1973.
[30] Meyer, C. H. et. al.: "Cryptography: A new Dimensión in Computer Data
Security". Jolin Wiley and Sons. New York. 1982.
[31] NBS : "Data Encryption Standar", FIPS Pub. 46, January 1977.
[32] Newell, A. and Simón, H.: "Humgm Problem Solving". Prentige Hall, N.J.
1972.
[33] Pazos, J. y Martínez, V.: "Sistemas Basados en el Conocimiento; Una
Aplicación de la inteligencia Artificial". Servicio de Publicaciones de la
Facultad de Informática de la UPM. Madrid. Diciembre 1984.
[34] Pazos, J. y Martinez, V.:"Fundamentos Matemáticos de la Programación",
Servicio de Publicaciones de la Facultad de Informática de la UPM. Madrid.
Diciembre 1984.
[35] Pohling, S. and Hellman, M.E.: "An Improved Algorithm for Computig
Logarithm over GF(P)". IEEE Trans. Inf. Th. Vol IT24, n9 1, pp 106-110.
January 1977.
[36] Randell, S.: "The Colossus". Pw>c. Int. Conf. on Histbry óf Computing. Los
Alamos 1976.
[37] RÍOS, S.: "Métodos estadísticos". Industrias Gráficas España. Madrid 1963.
-160-
[38] Rivest, R.L. et. al.: "A Method for Obtaining Digital Signatures and Public
Key Cryptosystems". Comm. ACM, Vol. 21, n2 2, pp 120-126. February
1978.
[39] Shannon, CE. : "A Mathematical Theory of Communicatios", BSTJ Vol. 27,
pp. 479-523, 623-656, 1948.
[40] Shannon, CE. : "Communication Theory of Secrecy Systems", BSTJ Vol 28,
pp. 665-775. 1949.
[41] Sugarman, R.M.: "Freedom to Research and Publish on Cryptography
-r Remains Unresolved". The Institute News-Supp. to Spectrum. Vol 2, n2 5.
1978.
[42] Tuchman, W: Proc. National Computer Conference", AFIPS. 1978.
[43] Vandewalle, J. and Govaerts, R.: "Does Public-Key Cryptography Provide a
Practical and Secure Protection of Data Storage and Transmission? Proc. of
the Int. Carnahan Conf. on Security Technology, pp 113-119, Zurich August
1983.
[44] Widman, K.O.: "Cryptography. The Art of Secret-Keeping". Proc. Int. Zurich
Seminar on Digital Comm., pp. 151-156, Zurich. March 1984.