ES2665987T3 - Dispositivo y procedimiento para la decodificación de datos - Google Patents

Dispositivo y procedimiento para la decodificación de datos Download PDF

Info

Publication number
ES2665987T3
ES2665987T3 ES12791733.4T ES12791733T ES2665987T3 ES 2665987 T3 ES2665987 T3 ES 2665987T3 ES 12791733 T ES12791733 T ES 12791733T ES 2665987 T3 ES2665987 T3 ES 2665987T3
Authority
ES
Spain
Prior art keywords
module
encoded
homomorphic
calculation
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12791733.4T
Other languages
English (en)
Inventor
Bernd Meyer
Marcus Schafheutle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Application granted granted Critical
Publication of ES2665987T3 publication Critical patent/ES2665987T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Sistema (6), con: un módulo (7), que presenta un medio (8) de aplicación para aplicar un programa (P) transformado por medio de una función de codificación (f) homomórfica a datos de entrada (A) para proporcionar datos de cálculo (B) codificados y un medio (9) de transmisión para transmitir los datos de cálculo (B) codificados, siendo el módulo (7) un ordenador no protegido o un servidor no protegido, y un dispositivo (1) para la decodificación de datos que presenta una pluralidad de medios (3-5) protegidos mediante al menos un módulo (2) de protección, que comprenden un medio (3) de recepción y un medio (4) de decodificación, estando configurado el medio (3) de recepción para recibir los datos de cálculo (B) codificados por medio de la función de codificación (f) homomórfica, y estando configurado el medio (4) de decodificación para decodificar los datos de cálculo (B) codificados mediante la realización de la inversa (I) de la función de codificación (f) homomórfica sobre los datos de cálculo (B) codificados utilizando una clave privada (k1) asociada a la función de codificación (f) homomórfica, siendo el dispositivo (1) un testigo de seguridad, un testigo USB o una tarjeta inteligente, estando dotado el módulo (7) de recursos para ejecutar completamente el programa (P) transformado en un periodo de tiempo predeterminado, en el que el dispositivo (1) no puede ejecutar completamente el programa (P) transformado, teniendo el dispositivo (1) una potencia de cálculo inferior y una capacidad de almacenamiento inferior al módulo (7).

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DISPOSITIVO Y PROCEDIMIENTO PARA LA DECODIFICACION DE DATOS
DESCRIPCIÓN
La presente invención se refiere a la decodificación de datos mediante un dispositivo protegido de manera criptográfica y/o física.
En la criptografía teórica la seguridad de un procedimiento criptográfico se evalúa habitualmente mediante el comportamiento de entrada y salida. A este respecto, un atacante o hacker sólo tiene que ver la entrada y/o la salida de los datos procesados de manera criptográfica y entonces, conociendo el procedimiento utilizado, puede extraer conclusiones con respecto a la clave criptográfica utilizada.
En particular, las etapas de cálculo del procedimiento criptográfico tienen lugar en un entorno protegido al que el atacante no tiene acceso. En la práctica un entorno de cálculo protegido de este tipo puede reproducirse con un testigo de seguridad, por ejemplo con una tarjeta inteligente o una llave. El testigo de seguridad presenta múltiples medidas de protección en hardware y software, que permiten que, por un lado, sirva de memoria fiable y protegida frente a las manipulaciones para datos confidenciales, como por ejemplo material de claves, y por otro lado permiten la implementación de partes de la aplicación del sistema objetivo que se ha de proteger directamente en el entorno protegido del testigo. No obstante, todos los testigos de seguridad habituales en la práctica están muy limitados con respecto al tamaño de memoria de la memoria de datos y programas y con respecto a la potencia y al rendimiento de la capacidad de cálculo disponible. Por tanto, a menudo, en un testigo de seguridad sólo se implementan las funciones criptográficas principales. La mayor parte de la aplicación o del programa se ejecuta entonces en un sistema informático sin nivel de protección o con un nivel de protección claramente inferior.
También existen enfoques que permiten proteger físicamente los sistemas informáticos más potentes. No obstante, la inversión para estas medidas y los costes adicionales en la implementación técnica en relación con los niveles de protección alcanzables y las aplicaciones planificadas es tan elevada que tales procedimientos sólo se utilizan para aplicaciones con seguridad militar.
Cuando debe ejecutarse un algoritmo criptográfico que requiere de una información confidencial en un sistema que permite al atacante seguir el desarrollo del algoritmo, son necesarios mecanismos de protección adicionales para estar protegido frente a determinadas clases de ataques. Por ejemplo, si para el atacante es posible medir propiedades físicas del entorno de cálculo, como por ejemplo duración, consumo de corriente dinámico o radiación electromagnética durante la operación de cálculo, entonces son importantes medidas para defenderse de los denominados ataques de canal lateral.
En caso de que el entorno de cálculo para el procedimiento criptográfico esté compuesto por un sistema informático que no ofrece ninguna protección física, entonces el atacante tiene un control total sobre las etapas de cálculo realizadas y los datos procesados. En este caso el algoritmo debe implementarse de tal modo que el atacante, aunque pueda seguir la ejecución del algoritmo hasta el último detalle, no pueda entenderlo o extraer el secreto procesado. Una implementación de este tipo de un algoritmo se denomina ofuscada.
Los procedimientos para proporcionar un entorno de cálculo seguro van desde meras soluciones de software hasta hardware fabricado especialmente o combinaciones de software y hardware. A este respecto, para la implementación del entorno de cálculo seguro se utiliza al menos un módulo de seguridad que ofrece protección física y/o criptográfica.
Se utilizan meras soluciones de software cuando no están disponibles funciones de protección adicionales por el hardware del sistema informático o no se desea por motivos económicos. El programa, que se ejecutará en el sistema informático, puede modificarse mediante transformaciones de código adecuadas, denominadas ofuscación de código, de tal modo que se dificulte o en el mejor de los casos se evite la ingeniería inversa por parte de un atacante. Pueden utilizarse técnicas especiales, denominadas criptografía White-Box, para la protección de material de claves secreto en el software. El nivel de seguridad alcanzable es reducido en comparación con las técnicas con medidas de protección de hardware y normalmente la transformación del código va unida a pérdidas considerables de rendimiento y a una demanda de espacio de memoria y programa claramente superior.
En los enfoques de solución con soporte de hardware, en la mayoría de los casos de aplicación para proporcionar un sistema informático seguro se utiliza un testigo de seguridad. Un testigo de seguridad de este tipo contiene mecanismos de protección especiales en hardware, como por ejemplo sensores de temperatura, tensión de funcionamiento, ataques por medio de rayos láser, buses y memorias codificados, generadores de ruido, generadores de estados de espera aleatorios, protecciones frente al rastreo con agujas, estilos de diseño especiales para chips, etc. Los testigos de seguridad son sistemas informáticos sencillos compuestos por RAM, una memoria no volátil (habitualmente flash o EEPROM), una CPU e interfaces E/S (UART, SPI, USB, etc.) y ofrecen un nivel de seguridad comparativamente alto contra ataques. A menudo los testigos de seguridad contienen hardware adicional para el cálculo eficaz de procedimientos criptográficos (aceleradores DES, aceleradores AES, unidades de cálculo de números largos). La potencia de los testigos de seguridad es normalmente muy limitada con respecto al tamaño
5
10
15
20
25
30
35
40
45
50
55
60
65
de memoria, la velocidad de la CPU y el flujo de datos de las interfaces, de modo que sólo pueden realizarse partes pequeñas de una aplicación relevantes para la seguridad dentro del testigo.
Alternativamente en el mercado también están disponibles controladores monochip fabricados especialmente para aplicaciones de seguridad que, por ejemplo, pueden utilizarse en aplicaciones integradas. Estos sistemas informáticos son habitualmente algo más potentes que los testigos de seguridad, aunque encarecen considerablemente el diseño de un producto.
También es posible proteger todo el aparato con medidas especiales para el diseño de la carcasa. Estas medidas van desde conmutadores sencillos para reconocer la apertura de una carcasa, carcasas especiales, láminas de protección antitaladro, placas de circuito impreso especiales hasta técnicas de fabricación tales como encaje o sellado. Los aparatos pueden tener un sistema sensor activo para poder detectar intentos de manipulación y reaccionar a los mismos y para ello necesitan un suministro de corriente sin interrupciones por medio de una batería. Dentro de un aparato de este tipo puede utilizarse un sistema informático potente compuesto por componentes estándar. Sin embargo, las inversiones correspondientes para el desarrollo y la fabricación de tales sistemas son elevadas de modo que este tipo de medidas de protección habitualmente sólo se emplean en aplicaciones militares. Además son necesarias medidas de organización para el cambio regular de la batería para poder garantizar la disponibilidad de los aparatos.
Las funciones de codificación homomórficas han sido hasta hace pocos años un concepto discutido solamente en la criptografía teórica, que permitirá únicamente mediante operaciones de cálculo en datos codificados implementar un entorno de cálculo seguro para programas en sistemas informáticos no protegidos.
En el año 2009 Craig Gentry en su tesis doctoral describió por primera vez, teniendo en cuenta determinadas suposiciones de complejidad criptográficas, un método para la implementación de una función de codificación homomórfica con todas las propiedades necesarias para la realización de cualquier cálculo (véase [1]). Entretanto, las técnicas descritas se desarrollaron adicionalmente entre otros por Shai Halevi y Nigel Smart, y se mejoró su rendimiento (véase [2] a [4]).
El documento US 2011/0110525 A1 da a conocer un procedimiento que presenta la codificación de información según un esquema de codificación que utiliza una clave pública. El procedimiento presenta además la codificación de una pluralidad de instancias de una clave secreta, estando codificada cada una con al menos una instancia adicional de la clave pública. El procedimiento presenta además el envío de los datos codificados y de la pluralidad de instancias codificadas de la clave secreta a un destino, la recepción de un resultado codificado desde el destino y la decodificación del resultado codificado. Un procedimiento adicional comprende la recepción de una pluralidad de claves secretas codificadas e información que describen una función que se realiza en los datos. Este procedimiento presenta además la conversión de la información a un circuito que está configurado para realizar la función en los datos. El procedimiento presenta además la aplicación de los datos a las entradas del circuito y la evaluación de los datos utilizando a su vez la pluralidad de claves secretas codificadas.
El documento DE 101 20 288 A1 da a conocer un aparato reproductor para archivos de sonido en el que se generan datos de cuenta. El archivo de medios está codificado con claves aleatorias que a su vez están codificadas con la clave pública del usuario.
Por tanto, el objetivo de la presente invención es implementar de manera económica un entorno de cálculo seguro con seguridad más elevada a partir de los componentes estándar disponibles.
Por consiguiente se propone un dispositivo para la decodificación de datos que comprende una pluralidad de medios protegidos mediante al menos un módulo de protección con al menos un medio de recepción y un medio de decodificación. El medio de recepción está configurado para la recepción de datos de cálculo codificados por medio de una función de codificación homomórfica. El medio de decodificación está configurado para decodificar los datos de cálculo codificados mediante la realización de la inversa de la función de codificación homomórfica sobre los datos de cálculo codificados utilizando una clave privada asociada a la función de codificación homomórfica.
El módulo de seguridad sirve para la implementación de un entorno de cálculo seguro. A este respecto, el módulo de protección ofrece en particular protección física y/o criptográfica. El módulo de protección puede estar fabricado como mera solución de software, como hardware fabricado especialmente o como una combinación de software y hardware. A este respecto, el módulo de protección protege en particular contra ataques de canal lateral.
En el caso de los datos de cálculo codificados por medio de la función de codificación homomórfica puede tratarse de resultados de cálculos de un programa transformado por medio de una función de codificación homomórfica.
Mediante el uso de la función de codificación homomórfica para el cálculo de los datos de cálculo codificados es posible implementar el cálculo en un sistema informático no protegido.
Los datos de cálculo codificados se calculan por un módulo, por ejemplo un ordenador no protegido a partir de
5
10
15
20
25
30
35
40
45
50
55
60
65
componentes estándar. A este respecto, el ordenador no protegido aplica el programa transformado por medio de la función de codificación homomórfica a datos de entrada para proporcionar los datos de cálculo codificados. Entonces, los datos de cálculo codificados están codificados por medio de la función de codificación homomórfica. Ventajosamente, mediante las propiedades de la función de codificación homomórfica es posible realizar la parte del programa que requiere mucho cálculo en el sistema informático u ordenador no protegido de componentes estándar. De este modo, esta parte de la ejecución del programa que requiere mucho cálculo no tiene que ejecutarse en el dispositivo de decodificación con el entorno de cálculo seguro configurado para la decodificación. La seguridad del programa o de la aplicación se garantiza mediante las propiedades criptográficas de la función de codificación homomórfica y no requiere de medidas de protección de hardware especiales mediante el sistema informático. En particular no existen las limitaciones de potencia habituales para el dispositivo de decodificación, por ejemplo un testigo de seguridad, por el tamaño de la memoria y el programa o la potencia de la CPU del dispositivo de decodificación. El programa transformado realiza todos los cálculos de manera codificada. Los datos de cálculo codificados se transfieren al dispositivo de decodificación y a este respecto se reciben por el medio de recepción del dispositivo de decodificación. La decodificación final se realiza en el dispositivo de decodificación protegido, porque el módulo no protegido, en este caso por ejemplo el sistema informático no protegido, no puede poner a disposición medidas suficientes para proteger la clave secreta de la función de codificación homomórfica que se requiere para la decodificación.
La presente solución es muy económica porque para el entorno de cálculo seguro, en este caso el dispositivo de decodificación, sólo son necesarios recursos reducidos, en particular potencia de cálculo y capacidad de almacenamiento en comparación con el módulo para la aplicación del programa transformado. A este respecto, las tareas que requieren mucho cálculo de la aplicación del programa transformado se realizan por el módulo no protegido o poco protegido, que está dotado de mayores recursos, pero con medidas de seguridad menos costosas. Por el contrario el dispositivo de decodificación tiene un nivel de seguridad superior, aunque para la etapa restante de la decodificación necesita claramente menos recursos que el módulo para la aplicación del programa transformado.
Una función de codificación homomórfica de este tipo permite sumar, restar y multiplicar los valores presentes de manera codificada de una estructura matemática adecuada, de modo que el resultado de los cálculos esté presente a su vez de manera codificada. Durante el cálculo en ningún momento hay resultados intermedios u otra información sobre los valores combinados sin codificar de manera que un atacante pueda tener acceso y la realización de estas etapas de cálculo tampoco requiere del conocimiento de material de claves secreto. Es decir, los cálculos pueden realizarse en un sistema informático no protegido, sin poner en riesgo o dar a conocer los datos procesados.
Con ayuda de las operaciones matemáticas de suma, resta y multiplicación es posible calcular funciones polinomiales de valores codificados de manera segura y secreta. Entonces, mediante las funciones polinomiales, a su vez puede describirse cualquier cálculo de sistemas informáticos. Cuando el resultado del cálculo está presente finalmente como valor codificado, sólo el receptor legítimo que tiene la clave privada de la función de codificación homomórfica puede decodificar los valores calculados.
En una forma de realización los medios protegidos por medio del al menos un módulo de protección comprenden un medio de almacenamiento. El medio de almacenamiento está configurado para almacenar un programa para el cálculo de la inversa de la función de codificación homomórfica y para proporcionar el programa almacenado de la inversa de la función de codificación homomórfica al medio de decodificación. El medio de almacenamiento es por ejemplo una memoria flash o una memoria RAM.
En otra forma de realización el medio de almacenamiento está configurado además para almacenar la clave privada asociada a la función de codificación homomórfica y proporcionar la clave privada almacenada al medio de decodificación.
En otra forma de realización el medio de decodificación está configurado de manera cableada. Por ejemplo el medio de decodificación está configurado como circuito integrado (IC o ASIC) o como disposición de puertas programables en campo (FPGA).
En otra forma de realización el dispositivo es un testigo de seguridad, un testigo USB, una tarjeta inteligente, un servidor protegido o un ordenador protegido.
Además se propone un sistema con un módulo que presenta un medio de aplicación para aplicar el programa transformado por medio de la función de codificación homomórfica a datos de entrada para proporcionar los datos de cálculo codificados y un medio de transmisión para transmitir los datos de cálculo codificados, y con un dispositivo como se explicó anteriormente para decodificar los datos de cálculo codificados transmitidos.
En una forma de realización del sistema el módulo es un ordenador no protegido o un servidor no protegido.
En otra forma de realización el medio de transmisión del módulo y el medio de recepción del dispositivo están configurados para ejecutar un protocolo de interfaz predeterminado para la transmisión de los datos de cálculo
5
10
15
20
25
30
35
40
45
50
55
60
65
codificados.
Mediante el protocolo de interfaz predeterminado los datos de cálculo codificados pueden transmitirse de manera controlada y predeterminada del módulo al dispositivo de decodificación.
En otra forma de realización el módulo está dotado de recursos para ejecutar completamente el programa transformado en un periodo de tiempo predeterminado en el que el dispositivo no puede ejecutar completamente el programa transformado.
A este respecto, los recursos comprenden en particular la potencia de cálculo proporcionada de la CPU así como la capacidad de almacenamiento de la memoria o de las memorias del módulo.
En otra forma de realización el módulo presenta un medio de protección que está configurado para proteger el programa transformado frente a una manipulación. El medio de protección puede garantizar una ejecución libre de manipulaciones del programa transformado.
En otra forma de realización el medio de protección está configurado para establecer una prueba de la ejecución correcta del programa transformado mediante el medio de aplicación, en particular por medio de pruebas verificables de manera probabilística (Probabilistically-Checkable-Proofs (PCP)) (véase [5] a [7]).
En esta forma de realización el entorno de protección del programa en el módulo potente que realiza los cálculos codificados de manera homomórfica puede ampliarse en tal medida que el programa se proteja frente a manipulaciones. Para ello puede ampliarse el programa en el módulo potente pero por lo demás no protegido, por ejemplo, el sistema informático no protegido, en particular de tal modo que al aplicar el programa al mismo tiempo se establezcan pruebas de la realización correcta del cálculo. Para ello, en particular, se utilizan pruebas verificables de manera probabilística (PCP). Las pruebas PCP tienen la propiedad de que pueden comprobarse de manera muy eficaz. Entonces la comprobación de la prueba del cálculo realizado correctamente en el módulo puede producirse a su vez en el dispositivo de decodificación. Preferiblemente sólo cuando se acepte la prueba del cálculo como válida el dispositivo de decodificación decodificará los datos de cálculo codificados de manera homomórfica.
El respectivo medio, por ejemplo el medio de recepción, el medio de decodificación o el medio de protección, puede estar implementado con técnica de hardware o software. En el caso de una implementación con técnica de hardware el respectivo medio puede estar configurado como dispositivo o como parte de un dispositivo, por ejemplo como ordenador o como microprocesador o como IC, ASIC o FPGA. En el caso de una implementación con técnica de software el respectivo medio puede estar configurado como producto de programa informático, como una función, como una rutina, como parte de un código de programa o como objeto ejecutable.
Además se propone un procedimiento para la decodificación de datos por medio de un dispositivo protegido mediante al menos un módulo de seguridad que presenta las etapas siguientes:
- recibir datos de cálculo codificados por medio de una función de codificación homomórfica, y
- decodificar los datos de cálculo codificados mediante la realización de la inversa de la función de codificación homomórfica sobre los datos de cálculo codificados utilizando una clave privada asociada a la función de codificación homomórfica.
Además se propone un producto de programa informático que en un módulo controlado por programa da lugar a la realización del procedimiento como se explicó anteriormente para la decodificación de datos por medio de un dispositivo protegido mediante al menos un módulo de seguridad. El módulo controlado por programa es en particular un dispositivo de decodificación, como un testigo de seguridad.
Un producto de programa informático como un medio de programa informático puede proporcionarse o suministrarse por ejemplo como medio de almacenamiento, como tarjeta de almacenamiento, lápiz USB, CD-ROM, DVD o también en forma de archivo descargable de un servidor en una red. Esto puede producirse por ejemplo en una red de comunicación inalámbrica mediante la transmisión de un archivo correspondiente con el producto de programa informático o el medio de programa informático.
Las propiedades, características y ventajas de esta invención descritas anteriormente así como la manera en que se consiguen se entenderán mejor y de manera más clara junto con la siguiente descripción de los ejemplos de realización, que se explican en más detalle junto con los dibujos.
A este respecto muestran:
la figura 1, un diagrama de bloques de un primer ejemplo de realización de un dispositivo de decodificación; la figura 2, un diagrama de bloques de un segundo ejemplo de realización de un dispositivo de decodificación;
5
10
15
20
25
30
35
40
45
50
55
60
65
la figura 3, un diagrama de bloques de un primer ejemplo de realización de un sistema con un módulo de cálculo y un dispositivo de decodificación;
la figura 4, un diagrama de bloques de un segundo ejemplo de realización de un sistema con un módulo de cálculo y un dispositivo de decodificación;
la figura 5, un diagrama de bloques de un tercer ejemplo de realización de un sistema con un módulo de cálculo y un dispositivo de decodificación;
la figura 6, un diagrama de flujo de un primer ejemplo de realización de un procedimiento para la decodificación de datos; y
la figura 7, un diagrama de flujo de un segundo ejemplo de realización de un procedimiento para la decodificación de datos.
En las figuras los elementos iguales o con la misma función están dotados de los mismos números de referencia siempre que no se indique lo contrario.
En la figura 1 se representa un diagrama de bloques de un primer ejemplo de realización de un dispositivo 1 de decodificación protegido de manera criptográfica y/o física.
El dispositivo 1 de decodificación es por ejemplo un testigo de seguridad, un testigo USB, una tarjeta inteligente, un servidor protegido o un ordenador protegido.
Los medios 3, 4 del dispositivo 1 están protegidos mediante al menos un módulo 2 de protección contra manipulación, espionaje y/o ataques de hackers.
El dispositivo 1 de decodificación tiene un medio 3 de recepción y un medio 4 de decodificación. El medio 3 de recepción es adecuado para recibir datos de cálculo B codificados, codificados por medio de una función de codificación f homomórfica.
En el caso de los datos de cálculo B codificados por medio de la función de codificación f homomórfica puede tratarse de resultados de cálculos de un programa P transformado por medio de la función de codificación f homomórfica.
Dicho de otro modo puede transformarse un programa S utilizando la función de codificación f homomórfica en un programa P transformado. Los datos de cálculo B calculados mediante el programa P transformado están codificados, concretamente mediante la función de codificación f homomórfica.
El medio 4 de decodificación es adecuado para decodificar los datos de cálculo B codificados recibidos mediante la realización de la inversa I de la función de codificación f homomórfica sobre los datos de cálculo B codificados utilizando una clave privada k1 asociada a la función de codificación f homomórfica.
En conjunto a la función de codificación f homomórfica está asociado un par de claves de la clave privada k1 y una clave pública k2. La clave pública k2 se utiliza por ejemplo para la transformación de un programa S (véase para ello la figura 5). El medio 4 de decodificación emite en el lado de salida los datos de cálculo K decodificados como texto abierto. Los datos de cálculo K decodificados pueden indicarse por ejemplo en un dispositivo de visualización (no mostrado) o utilizarse para otro programa o una aplicación.
Alternativamente el medio 4 de decodificación también puede estar configurado de manera cableada.
La figura 2 muestra un diagrama de bloques de un segundo ejemplo de realización de un dispositivo 1 de decodificación. El dispositivo 1 de decodificación de la figura 2 se basa en el dispositivo 1 de decodificación de la figura 1 y presenta todas las características de la figura 1. Además el dispositivo 1 de decodificación de la figura 2 tiene un medio 5 de almacenamiento que está configurado para almacenar un programa para el cálculo de la inversa I de la función de codificación f homomórfica y proporcionárselo al medio 4 de decodificación. Además el medio 5 de almacenamiento almacena la clave privada k1 asociada a la función de codificación f homomórfica y se la proporciona al medio 4 de decodificación.
En la figura 3 se representa un diagrama de bloques de un primer ejemplo de realización de un sistema 6 con un módulo 7 de cálculo y un dispositivo 1 de decodificación. Por ejemplo el módulo 7 de cálculo es un sistema informático no protegido, mientras que el dispositivo 1 de decodificación es un testigo de seguridad protegido de manera criptográfica y/o física.
El módulo 7 de cálculo tiene un medio 8 de aplicación, que está configurado para aplicar el programa P
5
10
15
20
25
30
35
40
45
50
55
60
65
transformado a datos de entrada A para proporcionar los datos de cálculo B codificados. El medio 8 de aplicación proporciona los datos de cálculo B calculados a un medio 9 de transmisión del dispositivo 7 de cálculo. El medio 9 de transmisión está configurado para proporcionar los datos de cálculo B codificados al dispositivo 1 de decodificación. El medio 9 de transmisión del módulo 7 y el medio 3 de recepción del dispositivo 1 están configurados para ejecutar un protocolo de interfaz predeterminado para la transmisión de los datos de cálculo B codificados.
El dispositivo 1 de decodificación corresponde al dispositivo 1 de la figura 2. Por consiguiente el medio 8 de recepción recibe los datos de cálculo B codificados transmitidos y se los proporciona al medio 4 de decodificación.
El módulo 7 de cálculo, al contrario que el dispositivo 1 de decodificación, está configurado para ejecutar completamente el programa P transformado en un periodo de tiempo predeterminado. El módulo 7 de cálculo tiene una potencia de cálculo claramente superior así como una capacidad de almacenamiento claramente superior al dispositivo 1 de decodificación. Por consiguiente, en el caso del sistema 6 se aprovecha la potencia de cálculo del módulo 7 de cálculo para la aplicación del programa P transformado, mientras que en cuanto a la seguridad se utiliza el dispositivo 1 de decodificación.
En la figura 4 se representa un diagrama de bloques de un segundo ejemplo de realización de un sistema 6 con un módulo 7 de cálculo y un dispositivo 1 de decodificación. El segundo ejemplo de realización de la figura 4 se basa en el primer ejemplo de realización de la figura 3 y presenta todas las características del primer ejemplo de realización de la figura 3. Además el módulo 7 de cálculo de la figura 4 tiene un medio 10 de protección. El medio 10 de protección está configurado para proteger el programa P transformado frente a manipulaciones. A este respecto, el medio 10 de protección puede establecer en particular una prueba de la ejecución correcta del programa P transformado mediante el medio 8 de aplicación. En este sentido se utilizan preferiblemente pruebas verificables de manera probabilística (PCP).
La figura 5 muestra un diagrama de bloques de un tercer ejemplo de realización de un sistema 6 con un módulo 7 de cálculo y un dispositivo 1 de decodificación. El tercer ejemplo de realización de la figura 5 se basa en el segundo ejemplo de realización de la figura 4 y presenta todas las características del segundo ejemplo de realización de la figura 4. Además el sistema 6 de la figura 5 tiene un medio 11 de transformación. El medio 11 de transformación está configurado para transformar un programa S para el cálculo de los datos de cálculo en el programa P transformado que se utiliza por el medio 8 de aplicación. Para esta transformación el medio 11 de transformación utiliza la función de codificación f homomórfica utilizando la clave pública k2.
La figura 6 ilustra un diagrama de flujo de un primer ejemplo de realización de un procedimiento para la decodificación de datos por medio de un dispositivo 1 protegido, que también puede denominarse dispositivo 1 de decodificación. El dispositivo 1 de decodificación está configurado por ejemplo según la figura 1 o 2.
En la etapa 601 se reciben datos de cálculo B codificados por el dispositivo 1 de decodificación. Los datos de cálculo B codificados están codificados mediante una función de codificación f homomórfica.
En la etapa 602 se decodifican los datos de cálculo B codificados mediante la realización de la inversa I de la función de codificación f homomórfica sobre los datos de cálculo B codificados utilizando una clave privada k1 asociada a la función de codificación f homomórfica.
En la figura 7 se representa un diagrama de flujo de un segundo ejemplo de realización de un procedimiento para la decodificación de datos mediante un dispositivo 1 de decodificación protegido.
En la etapa 701 se transforma un programa S para el cálculo de los datos de cálculo por medio de una función de codificación f homomórfica utilizando una clave pública k2 asociada a la función de codificación f homomórfica en un programa P transformado.
En la etapa 702 se aplica el programa P transformado a datos de entrada A para proporcionar datos de cálculo B codificados.
En la etapa 703 se transmiten los datos de cálculo B codificados al dispositivo 1 de decodificación.
En la etapa 704 se decodifican los datos de cálculo B codificados por medio del dispositivo 1 de decodificación. Para ello se aplica la inversa I de la función de codificación f homomórfica sobre los datos de cálculo B codificados utilizando la clave privada k1 asociada a la función de codificación f homomórfica. Los datos de cálculo B decodificados están disponibles entonces como datos de cálculo K decodificados en texto abierto.
Aunque la invención se ha ilustrado y descrito en detalle mediante el ejemplo de realización preferido, la invención no está limitada por los ejemplos dados a conocer y el experto puede deducir otras variaciones sin alejarse del alcance de protección de la invención.
5
10
15
20
25
Bibliografía
[1] Craig Gentry: A Fully Homomorphic Encryption Scheme, Dissertation, Stanford University, septiembre de 2009
[2] Nigel P. Smart, Frederik Vercauteren: Fully Homomorphic Encryption with Relatively Small Key and Ciphertext Sizes, Public Key Cryptography 2010, Lecture Notes in Computer Science 6056, págs. 420-443, Springer 2010
[3] Marten van Dijk, Craig Gentry, Shai Halevi, Vinod Vaikuntanathan: Fully Homomorphic Encryption over the Integers, Advances in Cryptography, EUROCRYPT 2010, Lecture Notes in Computer Science 6110, págs. 24-43, Springer 2010
[4] Craig Gentry, Shai Halevi: Fully Homomorphic Encryption without Squashing Using Depth-3 Arithemtic Circuits, FOCS 2011
[5] Sanjeev Arora, Shmuel Safra: Probabilistic Checking of Proofs: A New Characterization of NP, Journal of the ACM, 45(1):70-122, 1998
[6] Ingrid Biehl, Bernd Meyer, Susanne Wetzel: Ensuring the Integrity of Agent-Based Computation by Short Proofs, Mobile Agents 1998, Lecture Notes in Computer Science 1477, págs. 183-194, Springer 1999
[7] William Aiello, Sandeep N. Bhatt, Rafail Ostrovsky, Sivaramakrishnan Rajagopalan: Fast Verification of Any Remote Procedure Call: Short Witness- Indistinguishable One-Round Proofs for Np, Automata, Languages and Programming, International Colloquium ICALP 2000, Lecture Notes in Computer Science 1853, págs. 463-474, Springer 2000

Claims (5)

  1. REIVINDICACIONES
    1.
    10
    15
    20
    25
  2. 2.
    30
  3. 3.
  4. 4.
    35
  5. 5.
    40
    Sistema (6), con:
    un módulo (7), que presenta un medio (8) de aplicación para aplicar un programa (P) transformado por medio de una función de codificación (f) homomórfica a datos de entrada (A) para proporcionar datos de cálculo (B) codificados y un medio (9) de transmisión para transmitir los datos de cálculo (B) codificados, siendo el módulo (7) un ordenador no protegido o un servidor no protegido, y
    un dispositivo (1) para la decodificación de datos que presenta una pluralidad de medios (3-5) protegidos mediante al menos un módulo (2) de protección, que comprenden un medio (3) de recepción y un medio (4) de decodificación,
    estando configurado el medio (3) de recepción para recibir los datos de cálculo (B) codificados por medio de la función de codificación (f) homomórfica, y
    estando configurado el medio (4) de decodificación para decodificar los datos de cálculo (B) codificados mediante la realización de la inversa (I) de la función de codificación (f) homomórfica sobre los datos de cálculo (B) codificados utilizando una clave privada (k1) asociada a la función de codificación (f) homomórfica, siendo el dispositivo (1) un testigo de seguridad, un testigo USB o una tarjeta inteligente,
    estando dotado el módulo (7) de recursos para ejecutar completamente el programa (P) transformado en un periodo de tiempo predeterminado, en el que el dispositivo (1) no puede ejecutar completamente el programa (P) transformado, teniendo el dispositivo (1) una potencia de cálculo inferior y una capacidad de almacenamiento inferior al módulo (7).
    Sistema según la reivindicación 1, caracterizado porque el medio (9) de transmisión del módulo (7) y el medio (3) de recepción del dispositivo (1) están configurados para ejecutar un protocolo de interfaz predeterminado para la transmisión de los datos de cálculo (B) codificados.
    Sistema según la reivindicación 1, caracterizado porque el módulo (7) presenta un medio (10) de protección, que está configurado para proteger el programa (P) transformado frente a una manipulación.
    Sistema según la reivindicación 3, caracterizado porque el medio (10) de protección está configurado para establecer una prueba de la ejecución correcta del programa (P) transformado mediante el medio (8) de aplicación, en particular por medio de pruebas verificables de manera probabilística (PCP).
    Sistema según una de las reivindicaciones 1 a 4, caracterizado porque está previsto un medio (11) de transformación para la transformación de un programa (S) para el cálculo de los datos de cálculo por medio de la función de codificación (f) homomórfica utilizando una clave pública (k2) asociada a la función de codificación (f) homomórfica en el programa (P) transformado.
ES12791733.4T 2011-12-06 2012-11-14 Dispositivo y procedimiento para la decodificación de datos Active ES2665987T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102011087804 2011-12-06
DE102011087804A DE102011087804A1 (de) 2011-12-06 2011-12-06 Vorrichtung und Verfahren zum Entschlüsseln von Daten
PCT/EP2012/072598 WO2013083375A1 (de) 2011-12-06 2012-11-14 Vorrichtung und verfahren zum entschlüsseln von daten

Publications (1)

Publication Number Publication Date
ES2665987T3 true ES2665987T3 (es) 2018-04-30

Family

ID=47257778

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12791733.4T Active ES2665987T3 (es) 2011-12-06 2012-11-14 Dispositivo y procedimiento para la decodificación de datos

Country Status (6)

Country Link
US (1) US9584311B2 (es)
EP (1) EP2742643B1 (es)
CN (1) CN103988461B (es)
DE (1) DE102011087804A1 (es)
ES (1) ES2665987T3 (es)
WO (1) WO2013083375A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729312B2 (en) 2015-04-28 2017-08-08 The United States Of America As Represented By The Secretary Of The Navy System and method for high-assurance data storage and processing based on homomorphic encryption
DE102015218472A1 (de) * 2015-09-25 2017-03-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Betreiben eines technischen Systems
US10839096B2 (en) * 2016-03-28 2020-11-17 International Business Machines Corporation Cryptographically provable zero-knowledge content distribution network
DE102017223099A1 (de) 2017-12-18 2019-06-19 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Übertragen von Daten zwischen einem ersten und einem zweiten Netzwerk
EP3503493A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Kommunikationsvorrichtung und verfahren zum verarbeiten eines netzwerkpakets
EP3502806A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Verfahren zum schutz der produktionsdaten zur herstellung eines produkts
EP3506143B1 (en) 2017-12-27 2024-02-14 Siemens Aktiengesellschaft Interface for a hardware security module
EP3509004A1 (en) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Adaption of mac policies in industrial devices
EP3509247A1 (de) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Verfahren und schlüsselgenerator zum rechnergestützten erzeugen eines gesamtschlüssels
EP3514743A1 (en) 2018-01-22 2019-07-24 Siemens Aktiengesellschaft Device and method for providing instruction data for manufacturing an individualized product
EP3534282A1 (de) 2018-03-01 2019-09-04 Siemens Aktiengesellschaft Verfahren und sicherheitsmodul zum rechnergestützten ausführen von programmcode
EP3557463B1 (de) 2018-04-16 2020-10-21 Siemens Aktiengesellschaft Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem steuergerät
EP3562194B1 (en) 2018-04-23 2021-07-28 Siemens Aktiengesellschaft Method for identifying at least one network slice configuration of a mobile network, communication system, and automation system
EP3561713B1 (en) 2018-04-25 2022-07-13 Siemens Aktiengesellschaft Retrieval device for authentication information, system and method for secure authentication
EP3561709B1 (en) 2018-04-25 2020-07-29 Siemens Aktiengesellschaft Data processing apparatus, system, and method for proving or checking the security of a data processing apparatus
EP3562090B1 (en) 2018-04-25 2020-07-01 Siemens Aktiengesellschaft Data processing device for processing a radio signal
EP3562116A1 (en) 2018-04-26 2019-10-30 Siemens Aktiengesellschaft Cryptographic key exchange or key agreement involving a device without network access
EP3570489B1 (en) 2018-05-18 2020-04-08 Siemens Aktiengesellschaft Device and method for transforming blockchain data blocks
EP3584654B1 (en) 2018-06-19 2020-06-10 Siemens Aktiengesellschaft Hierarchical distributed ledger
EP3598365A1 (en) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Traffic shaping for transactions of a distributed database system
EP3598363A1 (en) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Resource reservation for transactions of a distributed database system
EP3598364A1 (en) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Timing constraint for transactions of a distributed database system
EP3599740A1 (de) 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
EP3609148A1 (de) 2018-08-06 2020-02-12 Siemens Aktiengesellschaft Verfahren und netzwerkknoten zur verarbeitung von messdaten
EP3609240A1 (de) 2018-08-09 2020-02-12 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
EP3614319A1 (en) 2018-08-20 2020-02-26 Siemens Aktiengesellschaft Tracking execution of an industrial workflow of a petri net
EP3629332A1 (de) 2018-09-28 2020-04-01 Siemens Aktiengesellschaft Sicheres ausgeben einer substanz
EP3633914A1 (de) 2018-10-05 2020-04-08 Siemens Aktiengesellschaft Verfahren und system zur nachweisbaren datenverarbeitung unter anwendung von obfuskation
EP3637345A1 (de) 2018-10-10 2020-04-15 Siemens Aktiengesellschaft Verknüpfung von identitäten in einer verteilten datenbank
CN109558759B (zh) * 2018-11-20 2021-05-14 电子科技大学 一种用于非接触式智能卡电磁攻击的模拟信号调理电路
EP3687209A1 (en) 2019-01-25 2020-07-29 Siemens Aktiengesellschaft Secure multi-hop communication paths
EP3693918A1 (en) 2019-02-08 2020-08-12 Siemens Gamesa Renewable Energy A/S Operational data of an energy system
EP3736715A1 (en) 2019-05-10 2020-11-11 Siemens Aktiengesellschaft Managing admission to a distributed database based on a consensus process

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10120288A1 (de) * 2001-04-25 2002-11-07 Siemens Ag Verfahren zum Abrechnen der Nutzung digitaler Daten sowie zugehörige Komponenten
EP2043015B1 (en) * 2007-09-27 2014-04-23 Sap Ag Secure logical vector clocks
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
DE102010028375A1 (de) 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
US8903083B2 (en) * 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
US8245116B2 (en) * 2011-01-14 2012-08-14 Mitsubishi Electric Research Laboratories, Inc. Method for performing soft decision decoding of Euclidean space Reed-Muller codes

Also Published As

Publication number Publication date
US9584311B2 (en) 2017-02-28
WO2013083375A1 (de) 2013-06-13
CN103988461B (zh) 2018-12-04
EP2742643B1 (de) 2018-03-07
CN103988461A (zh) 2014-08-13
US20140348326A1 (en) 2014-11-27
DE102011087804A1 (de) 2013-06-06
EP2742643A1 (de) 2014-06-18

Similar Documents

Publication Publication Date Title
ES2665987T3 (es) Dispositivo y procedimiento para la decodificación de datos
US9940463B2 (en) System and method for secure authentication
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
ES2619613T3 (es) Método criptográfico para intercambiar mensajes de forma segura y dispositivo y sistema para implementar este método
US20230254120A1 (en) Secret material exchange and authentication cryptography operations
BR102018015221B1 (pt) método para compartilhamento seguro de informações e sistema relacionado
TW201010370A (en) Integrated cryptographic security module for a network node
KR20200037847A (ko) 공급 체인 자산 관리를 보호하기 위한 애플리케이션을 가지는 원격 서버에 대한 nfc 태그 인증
US20200366496A1 (en) Whitebox computation of keyed message authentication codes
Kehret et al. Integration of hardware security modules into a deeply embedded TLS stack
WO2015008607A1 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
ES2687396T3 (es) Métodos y dispositivos para la transferencia segura de datos útiles
US10230532B2 (en) Entity authentication in network
KR101677138B1 (ko) 오프라인 토큰의 안전성을 보장할 수 있는 온라인/오프라인 전자서명 방법
Flikkema et al. When things are sensors for cloud AI: Protecting privacy through data collection transparency in the age of digital assistants
de Boer Secure communication channels for the mTask system
Wan et al. ACMHS: Efficient access control for mobile health care system
JP2011171936A (ja) 情報処理装置および方法、並びに認証システム
KR20140145967A (ko) 암호화 시스템 및 그것의 암호 통신 방법