Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (MXYU/a/2006/000002) PSEUDO-RANDOM OPERATIONS METHOD FOR THE DATA ENCRYPTION
Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

MÉTODO DE OPERACIONES PSEUDO ALETORIAS PARA LA
1MCRSPCDON DE DATOS

DESCRIPCIÓN

OBJETO DE LA SNVEMCCÓM

El Método tiene como objetivo proveer de seguridad y confidencialidad mediante la encriptación y la desencriptación de datos. Este método es de cálculo ligero y es ideal para ser implementado en aplicaciones donde la complejidad y el tiempo cómputo son factores claves, como sucede en la encripción de grandes cantidades de información. Otro escenario de aplicación es en la encripción de datos en redes inlámbricas pues se desea ahorrar tanta energía como sea posible. El consumo de energía por encripción por lo general está en función de la complejidad y tiempo de cómputo del Método.

ANTECEDENTES

Los métodos de encripción se dividen en dos clases, de clave secreta y de clave pública. Los algoritmos de clave pública ofrecen cierta ventaja sobre los algoritmos de clave secreta como el poder realizar autentificaciones. Sin embargo en muchas aplicaciones se prefiere los Métodos de clave pública porque son menos complejos y más rápidos de calcular.

Algunos ejemplo clásicos Métodos de encriptación de clave secreta son DES e IDEA. Sin embargo la seguridad de DES es demasiada baja para ser implementada en la mayoría de aplicaciones. Por el otro lado, aunque la seguridad de IDEA es buena y menos compleja que Métodos de clave pública, computacionalmente es demasiado caro para ser implementado en aplicaciones inlámbricas.

El estándar para redes inlámbricas de datos 802.11 define un mecanismo de secundad llamado WEP que utiliza el Método de encriptación de clave pública RC4 como principal elemento. El IEEE optó por esta opción porque apesar de que otros Métodos son más seguros, en este tipo de apliaciones en que se requiere ahorrar energía se necesitan de Métodos que sean realmente ligeros. Métodos computacionalmente caros incrementarán el consumo de energía drásticamente haciéndolos inadecaudos para ser implementados en este tipo de aplicaciones.

Sin embargo la seguridad de WEP ya ha sido quebrada y varios mecanismos de ataques han sido publicados. Recientemente en 2005 el F.B.I. en los Estados Unidos demostró que una red inálambrica que utiliza WEP puede ser quebrada en tres minutos utilizando herramientas que están disponibles públicamente.

DESCRIPCIÓN DETALLADA DE LA INVENCIÓN

Lista de Definiciones y Abreviaciones
GNA: Generador de números aleatorios.
K: Clave secreta. Esta clave puede ser generada aleatoriamente por el usuario.
RAND: Generar un número de punto flotante aleatorio que va de 0 a 1.
Semilla: Estado incial del GNA que puede verse como el índice de la tabla aleatoria.

El presente Método de encripción orientado a bloques es de clave secreta. Un bloque de datos se encripta mediante realizar operaciones a nivel bit de manera pseudo-aleatoria; cuatro operaciones están definidas para este Método. El tamaño de la clave en bits está dada por el tamaño del Generador de Números Aleatorios (GNA), pero también debe tomarse en cuenta el tamaño del bloque de bits.

Las computadoras por naturaleza no son aleatorias sino que se simula un proceso aleatorio mediante el uso de un GNA. Un GNA no es más que una equación con la que se puede generar una serie de números aleatorios. Esta serie de números aleatorios es finita y después de cierta cantidad de número aleatorios generados se repite de manera cíclica. La longitud del ciclo se le llama periodo del GNA y esta dada por el número de bits del GNA y limitado por número de bits de las operaciones matemáticas que pueden calcularse; en una PC es de tan solo 32 bits pero es posible simular una cantidad mayor de bits.

El GNA requiere de una semilla que es el estado incial del GNA, esto se puede ver como un índice de la tabla aleatoria, de este modo se puede acceder al valor aleatorio de manera directa sin necesidad de tener que calcular los valores para cada número aleatorio secuencialmente. Esto es un aspecto necesario en el presente Método de encripción porque para su implementación es necesario recorrer la tabla aleatoria de diferentes maneras y no únicamente de manera incremental.

Aunque es posible generar número enteros aleatorios que van de 0 a n cuando se utiliza un GNA, las funciones que se disponen en un lenguaje devuelven este valor de manera normalizada en formato de punto flotante que va de 0 a 1.

A continuación se describe el Método utilizando números aleatorios normalizados pero se extiende su aplicación a números aleatorios enteros.

Método de Encriptación
La serie de datos a encriptar es dividida en bloques de bits. Se recomienda que el el tamaño del bloque en bits sea igual al número de bits del RNG.

1 bits n
Pl† P2†

Figura 1 : Encripción de un bloque de bits El usuario genera una clave secreta K. Con esta clave se genera un número aleatorio R pasando como semilla la clave secreta K. Se tienen dos punteros P1 y P2 para este bloque de bits que apuntan cada uno a un bit en particular de bloque de bits. P1 es incrementado gradualmente durante el barrido de todo el bloque. Por cada incremento del puntero P1 se incrementa también la semilla para la generación del número aleatorio (véase la Figura 2). P2 se calcula con un número aleatorio que va de 1 hasta el número máximo de bits del bloque n. En los diagramas de flujos que se presentan en este documento se describe el Método optimizado de tal modo que P2 es calculado únicamente cuando se le necesita.



Figura 2: Diagrama de Flujo para la Encriptación

Se ejecutan de manera aleatoria una de las siguientes posibles 4 operaciones a nivel bits utilizando P1 y P2, el resultado es almacenado en el bit que apunta P1. Operación 1: invertir P1 Operación 2: realizar una operación XOR del bit que apunta P1 con un bit generado aleatoriamente. Este bit se calcula con el mismo número aleatorio ya generado R mediante comparar R con .5 (véase la Figura 3). En el diagrama de flujo que se muestra en la Figura 3 se realiza la operación XOR con un NOT. Sin embargo esta operación es equivalente pues una operación XOR inverte los bits de acuerdo a los valores que se les de como entrada la operación. Esto se hace por optimización pues de lo contrario se tendría que hacer una conversión extra de flotante a boleano.
Operación 3: realizar una operación XOR del bit que apunta P1 con el bit que apunta P2.
Operación 4: ¡ntercambar los bits entre P1 y P2

Para obtener una de estas operaciones aleatoriamente se multiplica el número generado aleatoriamente R por cuatro; este resultado es almacenado en la variable OP. Si el valor de OP esta dentro del rango [0, 1 ) la Operación a nivel bits 1 es realizada; si está dentro del rango [1 , 2) la operación 2 es realizada; si está dentro del rango [2, 3) la operación 3 es realizada; si está dentro del rango [3, 4] la operación 4 es realizada.


Figura 3: Diagrama de Flujo para el Subproceso de Operación Aleatoria.

Una vez realizada la operación a nivel bits se incrementan P1 y la semilla del RNG. Se realizan las operaciones aleatorias nuevamente para el nuevo P1 hasta que se haya realizado esto para cada bit del bloque; es decir P1 sea igual a n. El proceso continúa hasta que la serie de datos a encriptar finalicen (véase la Figura 2).

Método de desencriptación
Debido a que las operaciones que se realizan a nivel bits en este Método de encripción son de tipo reversibles, para obtener los datos de regreso únicamente hay que realizar las mismas operaciones de nuevo. Por esta misma razón el proceso de desencriptación que se muestra en la Figura 4 utiliza el mismo subproceso para la operación a nivel bits descritos en el diagrama de flujo en la Figura 3.

La diferencia consiste que para revertir las operaciones, estas necesitan hacerse de nuevo pero en el orden inverso en que fueron realizadas originalmente en el proceso de encriptación empezando P1 a apuntar al final del bloque de bits (P1=n). Durante la desencriptación P1 es decrementado en vez de incrementarse. Lo mismo sucede para la semilla del GNA, pero para hacer coincidir la misma semilla que se utilizó en la encripción para el primer bloque la semilla se le incrementa (n-1 ). Después de cada bloque la semilla es compensada por lo decrementos que fueron realizados durante la desencriptación del bloque sumándole n después de finalizar con cada bloque de bits.


Figura 4: Diagrama de Flujo para la Desencriptacion Consideraciones para números aleatorios enteros
El Método se describió utilizando números aleatorios normalizados, sin embargo para aplicaciones prácticas trabajar con número flotantes puede ser demasiado costoso pues es necesario implementar la comparación, conversión, división y multiplicación de números flotantes. Especialmente cuando se implementa un Método en hardware (como es el caso de las redes inalámbricas) se desea mantener al mínimo la complejidad del Método para de este modo reducir el número de circuitos lógicos en su implementación y consecuentemente reducir el consumo de energía.

Para estos casos es preferible utilizar un GNA de números enteros. Sin embargo un problema que surge es que para redimensionar el número aleatorio necesita pasarse a través de múltiples comparaciones de menor que haciendo además de de necesario escribir más código también ocupa más espacio ya sea en la memoria de la computadora o en número de cicuitos lógicos. Esto se soluciona redimensionado el número aleatorio con tomar únicamente los bits menos significativos, de este modo el número generado es redimensionado a números factores de 2n.

Aplicando este procedimiento, las diferentes opciones para las operaciones a nivel bit se encuentran comparando los 2 primeros menos significativos bits del número aletorio. El valor de P2 se encuentra tomando los bits menos significativos de número entero aleatorio generado. Con esto se requiere que el tamaño de los bloques sean en factores de 2n (e.g. 32, 64, 128 bits). La operación XOR aleatoria se compara con el valor medio que puede ser generado con el número aleatorio, es decir Max/2 que se obtiene de manera sencilla recorriendo Max 1 bit hacia la derecha (Operación SHR).

Estas simplificaciones hacen que el Método sea más rápido en su ejecución y en su implementación. Reduce considerablemente el número de cálculos ahorando tiempo de cómputo además de energía.