Método del par complementario

Anuncio
“METODOS DE OCULTAMIENTO DE DATOS BASADOS
EN SECUENCIAS DE ADN”
75.19 - TEORIA DE COMUNICACION
Entrega: Método del par complementario
05/06/2012
UNIVERSIDAD DE BUENOS AIRES
Nicolás Tudela 83593 – Diego Costa 78189
Entrega método del par complementario
Conceptos previos
Para el desarrollo del método del par complementario, es necesario comprender los conceptos
utilizados y descriptos para el desarrollo del método de inserción.
Además, para el desarrollo de dicho método, se utilizara el concepto de “Par de Base”, cuyo significado
detallado en la rama de la biología puede encontrarse en algún libro de biología molecular.
Para el desarrollo de este método de ocultamiento de datos, pares complementarios deben ser
definidos. Esto es, una contraparte única asignada para cada par de base.
Por ejemplo, la siguiente regla complementaria puede aplicar:
((AC)(CG)(GT)(TA))
Utilizando dicha regla complementaria, entonces, el complemento de AATGC será CCATG.
Método del par complementario
Por ejemplo, en la secuencia: "ATCTGAATGCTTGTCTACCATGTCAAT", existe un par de cadenas
complementarias indicado en negrita con longitud de 5.
Para encontrar la cadena complementaria mas larga en una cadena de ADN, podría aplicarse algún
método de programación dinámica, aunque para el presente trabajo, implementamos una solución
‘naive’.
Asumiremos que el mensaje secreto M tendrá un numero par de bits. Notemos que en nuestro caso,
esta asunción es razonable, ya que en nuestra implementación cada caracter del mensaje ocupa 8 bits
en su forma binaria.
Para poder encriptar utilizando este método, necesitaremos, como en los otros 2, una cadena de
referencia (S).
El método consiste en encontrar el par de cadenas complementarias mas larga presentes en la cadena
de referencia S, tomar su tamaño (k), generar cadenas complementarias de largo k+1 aleatoriamente y
luego usando pedazos del mensaje como prefijo del primer elemento del par complementario,
insertarlo en la cadena de referencia. La utilización del cadenas de largo k+1 garantiza que serán los
pares de mayor longitud, con lo cual, será fácil encontrar el prefijo del primer elemento del par y
reconstruir el mensaje original.
Encriptación
Para encriptar utilizando el método del par complementario, debemos tener como parámetros
de entrada:


Una cadena de ADN de referencia
Un mensaje a encriptar
Los pasos para la encriptación son los siguientes:




Convertir el mensaje M en su representación binaria (utilizaremos la conversión binaria de
cadenas desarrollada en el método de Inserción que asigna 8 bits a cada carácter de un
mensaje) y luego dividirlo en segmentos tal que cada segmento tenga 2 bits. Luego, aplico la
inversa de la regla de codificación binaria (también desarrollada para el método de Inserción)
para obtener un nucleótido por cada segmento del mensaje
Obtener la longitud del par complementario mas largo de la cadena de referencia (S), y la
denotamos k. Generar pares complementarios de manera random (se generan tantos pares
complementarios como segmentos haya del mensaje). La longitud de dichos pares
complementarios será k + 1. Además, a cada par complementario, se le agregara al principio y al
final (de cada elemento del par) un nucleótido “T”, con la esperanza de que al incluirlos en la
cadena S, estos pares se mantengan como los más largos, haciendo posible encontrarlos en un
futuro.
Se genera la cadena S’, intercalando en la cadena S original, los pares generados en el punto
anterior. Antes del primer elemento de cada par, se inserta un segmento i del mensaje a
encriptar.
Se evalúa la cadena S’ generada, para garantizar que los pares complementarios mas largos sean
los que generamos en el punto 2 e insertamos en el punto 3. Si no se cumple esta condición, se
vuelve al punto 2 (para generar nuevos pares complementarios aleatoriamente). Esta condición
puede darse cuando, usando un segmento del mensaje como prefijo del primer elemento del
par complementario, se genera un complemento al insertar el segundo elemento del par
complementario generado aleatoriamente, en una posición posterior de la cadena S’. Si se
cumple la condición, entonces esta nueva cadena S’ es la secuencia de ADN falsa a emitir.
Notar que el nucleótido T utilizado en el paso 2 puede ser remplazado por cualquiera de los otros 3
nucleótidos (A C G).
Desencriptación
Se recibe del emisor, un conjunto de cadenas de ADN falsas (una de ellas contiene el mensaje),
una cadena de ADN llamada S (de referencia) y la longitud k (la longitud de los pares complementarios
de mayor longitud de la cadena S). Las reglas de codificación binaria y las reglas complementarias son las
mismas que las que se utilizaron para encriptar.




Por cada cadena recibida en el conjunto, aplico el algoritmo que busca los pares
complementarios de mayor longitud. Si la longitud de dichos pares no concuerda con la longitud
k recibida, proceso la siguiente cadena del conjunto.
Para los pares complementarios encontrados en la fake sequence, tomo el nucleótido
inmediatamente anterior al nucleótido T que precede al primer elemento del par. Este
nucleótido será un segmento del mensaje. Lo guardamos en una lista y eliminamos dicho
nucleótido y el par complementario de la cadena falsa (junto con sus caracteres T anteriores y
posteriores a cada elemento del par).
Una vez que procesamos todos los pares complementarios, lo que quedo en la cadena falsa
debe ser equivalente a la cadena de referencia S recibida. Si no se cumple esta afirmación, se
vuelve al paso 1.
Se concatenan todos los segmentos de mensajes, se aplica la regla de conversión binaria (de los
nucleótidos obtengo un mensaje en binario). Luego con dicho mensaje en binario, aplico la
inversa de la codificación binaria de caracteres, y obtengo el mensaje M buscado.
Limitaciones de implementación:
Si bien se provee un mecanismo para intentar que los pares complementarios generados
aleatoriamente (en el paso 2 del método de encriptación) se mantengan como los de mayor longitud,
existe la posibilidad de que al intercalarlos en la cadena de referencia S se generen pares
complementarios mas largos que los anteriores (Por ello se realiza un chequeo de dicha condición en el
paso 4 del método de encriptación). Para reforzar el control y para no quedarse en un loop infinito si se
presenta dicha condición, pusimos un corte y un número de reintentos igual a 40. Es decir, se prueba de
generar pares complementarios aleatorios y de encriptar el mensaje hasta 40 veces. Si las 40 veces se
generaron pares aleatorios de mayor longitud en la intercalación, el algoritmo lanza un error.
Probabilidades de ataques de intrusos
La probabilidad de un ataque exitoso, depende de que un intruso obtenga:
a) La cadena de Referencia S: Hay 163 millones de cadenas de ADN publicadas. Entonces, la
probabilidad de adivinar la cadena utilizada es de
b) La regla complementaria: Hay 4 posibilidades para cada una de las 4 letras del alfabeto utilizado
para los nucleótidos. Entonces, la cantidad total de reglas complementarias es de 4 x 3 x 2 x 1 =
24. Por lo tanto, la probabilidad de adivinar la cadena utilizada es de 1/24
c) La regla de codificación binaria: Hay 4 posibilidades por cada letra del alfabeto, por lo tanto, el
número de posibles reglas de codificación binaria es 24. Entonces, la posibilidad de adivinar la
regla de codificación binaria es 1/24
Por lo tanto, la posibilidad de un ataque exitoso al método de par complementario, es de
x 1/24 x 1/24.
Además, hay que agregarle el costo de obtener los pares complementarios más largos de una cadena.
Descargar