En informática , una estructura de datos ciega es una estructura de datos que no proporciona información sobre la secuencia o el patrón de las operaciones que se han aplicado, excepto el resultado final de las operaciones. [ 1 ]
En la mayoría de los casos, incluso con los datos cifrados, se puede obtener el patrón de acceso, lo que puede provocar la filtración de información importante, como las claves de cifrado. En la externalización de datos a la nube , esta filtración de patrones de acceso es especialmente grave. Un patrón de acceso especifica el modo de acceso para cada atributo de un esquema de relación. Por ejemplo, las secuencias de lectura y escritura de datos por parte de los usuarios en la nube constituyen patrones de acceso.
Decimos que una máquina es ajena a la información si la secuencia de acceso es equivalente para cualquier par de entradas con el mismo tiempo de ejecución. Por lo tanto, el patrón de acceso a los datos es independiente de la entrada.
Aplicaciones:
- Externalización de datos en la nube : Al escribir o leer datos desde un servidor en la nube , las estructuras de datos transparentes resultan útiles. Y dado que las bases de datos modernas dependen en gran medida de las estructuras de datos, estas estructuras resultan muy prácticas.
- Procesador seguro: Los procesadores seguros resistentes a manipulaciones se utilizan para la defensa contra ataques físicos o el acceso de intrusos maliciosos a las plataformas informáticas de los usuarios. Entre los procesadores seguros existentes, diseñados en el ámbito académico e industrial, se incluyen AEGIS e Intel SGX . Sin embargo, las direcciones de memoria aún se transfieren en texto plano a través del bus de memoria. Por lo tanto, la investigación revela que este bus de memoria puede revelar información sobre las claves de cifrado . Con la implementación práctica de la estructura de datos Oblivious, el procesador seguro puede ofuscar el patrón de acceso a la memoria de forma demostrablemente segura.
- Computación segura: Tradicionalmente, se utilizaba el modelo de circuitos para realizar cálculos seguros, pero este modelo resulta insuficiente cuando el volumen de datos es elevado. El modelo de computación segura basado en RAM se propuso como alternativa al modelo de circuitos tradicional, y emplea una estructura de datos opaca para evitar el robo de información sobre el comportamiento de acceso.
Estructuras de datos inconscientes
RAM inconsciente
Goldreich y Ostrovsky propusieron este término en relación con la protección del software.
El acceso a la memoria de la RAM ciega es probabilístico y la distribución de probabilidad es independiente de la entrada. En el artículo compuesto por Goldreich y Ostrovsky hay un teorema sobre la RAM ciega: Sea RAM( m ) una RAM con m ubicaciones de memoria y acceso a una máquina oráculo aleatoria . Entonces, t pasos de un programa arbitrario de RAM( m ) pueden simularse por menos de pasos de un despistado Cada simulación inconsciente de RAM( m ) debe hacer al menosaccesos para simular t pasos.
Ahora tenemos el algoritmo de raíz cuadrada para simular el funcionamiento de la RAM sin que se den cuenta.
- Para cadaaccesos, permutar aleatoriamente primeromemoria.
- Primero, verifique las palabras del refugio si queremos acceder a una palabra.
- Si la palabra está presente, accede a una de las palabras ficticias. Si la palabra no está presente, encuentra la ubicación permutada.
Para acceder a la RAM original en t pasos necesitamos simularla con pasos para la RAM inconsciente. Para cada acceso, el costo sería O().
Otra forma de simular es mediante un algoritmo jerárquico. La idea básica es considerar la memoria del refugio como un búfer y extenderla a múltiples niveles de búferes. Para el nivel I , hay cubos y para cada cubo hay log t elementos. Para cada nivel hay una función hash seleccionada aleatoriamente .
La operación es como la siguiente: Primero, carga el programa hasta el último nivel, que se puede decir que tiene Cubos . Para leer, consulte el cubo .Desde cada nivel, si (V,X) ya se encuentra, elige un cubo al azar para acceder, y si no se encuentra, verifica el cubo . , solo hay una coincidencia real y las restantes son entradas ficticias. Para escribir, coloque (V,X) en el primer nivel, y si los primeros niveles I están llenos, mueva todos los niveles I a niveles y vaciar los primeros niveles I.
El costo de tiempo para cada nivel es O (log t); el costo para cada acceso es; El costo del Hashing es ; .
Árbol ajeno
Un árbol ajeno a la realidad es un árbol con raíz que posee la siguiente propiedad:
- Todas las hojas están al mismo nivel.
- Todos los nodos internos tienen un grado como máximo de 3.
- Solo los nodos situados en el extremo derecho del árbol pueden tener grado uno.
El árbol ciego es una estructura de datos similar al árbol 2-3 , pero con la propiedad adicional de ser ciego. El camino más a la derecha puede tener grado uno y esto puede ayudar a describir los algoritmos de actualización. El árbol ciego requiere aleatorización para lograr un Tiempo de ejecución para las operaciones de actualización. Y para dos secuencias de operaciones M y N que actúan sobre el árbol, la salida del árbol tiene las mismas distribuciones de probabilidad de salida. Para el árbol, hay tres operaciones:
CREATE (L)- Construye un nuevo árbol que almacene la secuencia de valores L en sus hojas.
INSERT (b, i,T)- insertar un nuevo nodo hoja que almacene el valor b como la i -ésima hoja del árbol T.
DELETE (i, T)- Retire la i- ésima hoja de T.
Paso de creación: La lista de nodos en el nivel i se obtiene recorriendo la lista de nodos en el nivel i+1 de izquierda a derecha y repitiendo lo siguiente:
- Elija d {2, 3} uniformemente al azar.
- Si quedan menos de d nodos en el nivel i+1, establezca d igual al número de nodos restantes.
- Crea un nuevo nodo n en el nivel I con los siguientes d nodos en el nivel i+1 como hijos y calcula el tamaño de n como la suma de los tamaños de sus hijos.

árbol despistado
Por ejemplo, si los lanzamientos de moneda de d {2, 3} tienen un resultado de: 2, 3, 2, 2, 2, 2, 3 almacena la cadena “OBLIVION” como el siguiente árbol de olvido.
Tanto INSERT (b, I, T)como DELETE(I, T)tienen un tiempo de ejecución esperado de O (log n ). Y para INSERTy DELETE tenemos:
INSERTAR (b, I, CREAR (L)) = CREAR (L [1] + …….., L[ i], b, L[i+1]………..) ELIMINAR (I, CREAR (L)) = CREAR (L[1]+ ………L[I - 1], L[i+1], ………..)
Por ejemplo, si se ejecuta la CREATE (ABCDEFG)operación OR INSERT (C, 2, CREATE (ABDEFG)), se obtienen las mismas probabilidades de resultado entre estas dos operaciones.
Referencias
- ↑ Wang, Xiao; Nayak, Kartik; Liu, Chang; Chan, Hubert; Shi, Elaine ; Stefanov, Emil; Huang, Yan (noviembre de 2014). "Estructuras de datos inconscientes". CCS '14: Actas de la Conferencia ACM SIGSAC de 2014 sobre seguridad informática y de comunicaciones . Scottsdale, Arizona . págs. 215–226 . doi : 10.1145/2660267.2660314 .
- Micciancio, Daniele (mayo de 1997). "Estructuras de datos inconscientes: aplicaciones a la criptografía". STOC '97: Actas del vigésimo noveno simposio anual de la ACM sobre Teoría de la Computación . Simposio sobre Teoría de la Computación . El Paso, Texas . págs. 456–464 . doi : 10.1145/258533.258638 .
- Goldreich, Oded ; Ostrovsky, Rafail (mayo de 1996). "Protección y simulación de software en RAMs ignorantes". Journal of the ACM . 43 (3). Association for Computing Machinery : 431–473 . doi : 10.1145/233551.233553 .
- Mitchell, John C.; Zimmerman, Joe (marzo de 2014). "Estructuras de datos ajenas a los datos". 31.º Simposio Internacional sobre Aspectos Teóricos de la Informática . Simposio sobre Aspectos Teóricos de la Informática . Lyon, Francia . págs. 554–565 . doi : 10.4230/LIPIcs.STACS.2014.554 .
- Gentry, Craig ; Goldman, Kenny A.; Halevi, Shai; Jutla, Charanjit S.; Raykova, Mariana; Wichs, Daniel (julio de 2013). "Optimización de ORAM y su uso eficiente para la computación segura". XIII Simposio Internacional, PETS 2013. Simposio sobre Tecnologías para la Mejora de la Privacidad. Bloomington, IN . doi : 10.1007/978-3-642-39077-7_1 .
- Estructuras de datos