ES2957712T3 - Dispositivo criptográfico flexible - Google Patents
Dispositivo criptográfico flexible Download PDFInfo
- Publication number
- ES2957712T3 ES2957712T3 ES21193382T ES21193382T ES2957712T3 ES 2957712 T3 ES2957712 T3 ES 2957712T3 ES 21193382 T ES21193382 T ES 21193382T ES 21193382 T ES21193382 T ES 21193382T ES 2957712 T3 ES2957712 T3 ES 2957712T3
- Authority
- ES
- Spain
- Prior art keywords
- programmable device
- module
- configuration data
- configurable
- programmable
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000006467 substitution reaction Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 21
- 238000013461 design Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000015654 memory Effects 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000004848 polyfunctional curative Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
Un método para programar un dispositivo que comprende adquirir datos de configuración, cargar los datos de configuración en un dispositivo programable, procesar al menos una parte de los datos de configuración a través de una función unidireccional para formar datos de configuración procesados y configurar al menos un módulo configurable del dispositivo programable. dispositivo utilizando los datos de configuración procesados del paso de procesamiento. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Dispositivo criptográfico flexible
Esta divulgación se refiere a un método de programación de un dispositivo y de un dispositivo programare, más particularmente, aunque no exclusivamente, a simplificar el diseño de hardware y de fabricación de dispositivos programares. Es particularmente adecuado para, pero por ningún medio limitado, mejorar y simplificar el despliegue de un elemento seguro, tal como en una tarjeta inteligente.
Antecedentes
A menudo, los proveedores de contenido de datos tales como televisión de pago u otros proveedores de contenido protegidos permiten el acceso a datos controlados por medio de, por ejemplo, códigos y/o clave o claves de acceso a algoritmos de encriptación/desencriptación. Para proteger las claves u otros medios de acceso seguro, dispositivos que proporcionan acceso a los datos controlados, tales como un decodificador de salón u otro hardware personalizado, pueden desplegarse con un elemento seguro que proporciona protección contra acceso no autorizado a los medios de acceso seguro.
Es altamente deseable, por lo tanto, que partes no escrupulosas obtengan acceso a la información dentro del elemento seguro para evitar la protección y obtener acceso a los datos controlados. Como resultado, los elementos seguros se diseñan y fabrican habitualmente con sus características de seguridad programadas en el momento de la fabricación. Esto permite un despliegue altamente seguro pero costoso del elemento seguro y dificulta las peticiones de cambio de diseño y evolución de producto mientras que mantiene la seguridad debido a las características de seguridad programadas.
El documento US2015/0235057 A1 propone un dispositivo semiconductor que incluye una memoria segura configurada para almacenar una clave programable, una interfaz para programar la clave programable en la memoria segura y una pluralidad de características configurables del dispositivo semiconductor que están asociadas con la clave programable. El documento US2014/0098953 A1 propone un dispositivo que genera una clave de contenido que depende de la información del estado de seguridad del dispositivo.
El documento US2015/0026471 A1 propone que se pueda realizar una validación de integridad de un dispositivo de red.
El documento US2015/0082048 A1 propone una infraestructura de claves que puede generar y/o gestionar claves criptográficas.
Breve descripción de los dibujos
Se describirán ahora realizaciones, a modo de ejemplo únicamente, y con referencia a los dibujos en los que:
La Figura 1 ilustra un dispositivo programable que comprende módulos criptográficos;
La Figura 2 ilustra un dispositivo programable que incluye un módulo de configuración de acuerdo con una realización;
La Figura 3 ilustra un método de acuerdo con una realización; y
La Figura 4 ilustra una tarjeta inteligente que comprende un dispositivo programable de acuerdo con una realización.
En las figuras, elementos similares se indican por números de referencia similares en todas.
Descripción detallada de los dibujos
Las realizaciones descritas se considerarán únicamente como ilustrativas y no restrictivas. El alcance de la invención se define mediante las reivindicaciones adjuntas, las reivindicaciones dependientes definen realizaciones adicionales de la invención. En algunos aspectos de la divulgación, se proporciona un método de programación de un dispositivo programable que comprende adquirir datos de configuración, cargar los datos de configuración en el dispositivo programable, procesar al menos una porción de los datos de configuración a través de una función unidireccional para formar datos de configuración procesados y configurar al menos un módulo configurable del dispositivo programable usando los datos de configuración procesados de la etapa de procesamiento. Esto permite la programación posfabricación del al menos un módulo configurable de una manera segura y, por lo tanto, el diseño y fabricación del dispositivo programable se simplifica y es menos costoso mientras que mantiene la seguridad. En algunas realizaciones, la función unidireccional comprende una función de troceo que puede ser una función de troceo criptográfica.
En algunas realizaciones, la etapa de carga comprende además el descifrado de los datos de configuración, y opcionalmente, la etapa de carga comprende además verificar la autenticidad y/o integridad de los datos de configuración por medio de una clase asimétrica o una clave simétrica. Esto proporciona seguridad a los datos de configuración.
En algunas realizaciones, la etapa de carga comprende cargar los datos de configuración en un módulo de configuración del dispositivo programable. El descifrado y/o la verificación puede efectuarse por el módulo de configuración.
En algunas realizaciones, la etapa de configuración comprende al menos uno de inicializar el dispositivo programable, configurar un módulo configurable del dispositivo programable y configurar una interconexión entre módulos del dispositivo programable en donde los módulos pueden ser configurables o no configurables.
En algunos aspectos, se dispone un dispositivo programable para efectuar cualquiera de los métodos como se describe en este documento. El dispositivo programable puede comprender una función unidireccional y al menos un módulo configurable. La función unidireccional puede comprender una función de troceo que puede ser una función de troceo criptográfica. En algunas realizaciones, el dispositivo programable comprende un módulo de configuración y/ o un módulo de procesamiento. El dispositivo programable puede comprender una FPGA, PLD, CPLD o un dispositivo antifusible.
En algunas realizaciones, el al menos un módulo configurable comprende un módulo criptográfico. En algunas realizaciones, el módulo criptográfico comprende al menos uno de un módulo de caja de sustitución, un módulo de tabla de sustitución, un módulo de permutación de bits, un módulo de permutación de bytes o un módulo de multiplicación de matrices. En algunas realizaciones, el módulo criptográfico comprende un endurecedor para un generador de números aleatorios verdaderos o una función que no se puede clonar físicamente, 'PUF'.
En algunas realizaciones, el al menos un módulo configurable comprende una máquina de estado programable. El dispositivo programable puede comprender un elemento seguro. El dispositivo programable puede colocarse en una tarjeta inteligente y/o dentro de un decodificador de salón. En algunas realizaciones, el consumo de potencia mientras se ejecuta el método se adhiere a parámetros de operación de tarjeta inteligente y/o el factor de forma del dispositivo programable se adhiere a parámetros de tarjeta inteligente.
En algunas realizaciones, cualquier módulo configurable en el dispositivo programable puede ser configurable por el método.
La Figura 1 ilustra un dispositivo programable 1 (por ejemplo, una FPGA, PLD, CPLD, dispositivo antifusible u otro dispositivo programable adecuado). El dispositivo programable comprende al menos un módulo de ES 10 para proporcionar entradas y salidas a los otros módulos del dispositivo programable, y uno o más módulos criptográficos que comprenden uno o más de un módulo de caja de sustitución/lista de sustitución 12, un módulo de permutación de bits/bytes 14 y un módulo de multiplicación de matrices 16 como se entendería por el experto. Una red de interconexión 18, como se muestra por las líneas verticales y horizontales, pasa entre módulos del dispositivo programable. Como se entendería, la Figura 1 es un ejemplo. Podría desplegarse cualquier combinación de módulos de ES 10, otros módulos 12, 14, 16 y red de interconexión.
Pasando a la Figura 2, puede observarse que al menos uno de los módulos de ES 10, como se muestra en la Figura 1, puede comprender un módulo de desencriptar y verificar 22 y un módulo de procesamiento 24 que puede considerarse como parte de un módulo de configuración 2. Los módulos 22 y 24 pueden ser parte de el mismo módulo físico en el dispositivo programable 1.
Como se muestra también en la Figura 2, la red de interconexión 18 pasa entre módulos del dispositivo programable. Al menos uno de los módulos 10, 12, 14, 16 y/o al menos un subconjunto 28 de cualquiera de la red de interconexión 18 como se muestra por las líneas más gruesas (a modo de ejemplo) puede configurarse usando el módulo de configuración 2. Cualquiera de los módulos del dispositivo programable es capaz de configurarse por medio del módulo de configuración 2. Por lo tanto, puede considerarse que el dispositivo programable 1 comprende un dispositivo criptográfico flexible.
Con referencia a la Figura 3, se describirá ahora un método en el que al menos un módulo del dispositivo programable puede configurarse de una manera segura. En una primera etapa (30), se adquieren datos de configuración y, a continuación, se cargan (etapa 31) en el dispositivo programable 1 por medio de cualquier medio adecuado disponible en el dispositivo programable 1 en cuestión. Después de la carga, los datos de configuración pueden residir en un módulo de configuración 2 del dispositivo 1. En particular, los datos de configuración pueden residir en un módulo de desencriptar y verificar 22. Los datos de configuración pueden descifrarse (etapa 31A) por el módulo 22. La autenticidad (que asegura que los datos son de una fuente confiable) y/o integridad (que asegura que los datos no se han modificado y/o corrompido) de los datos de configuración puede verificarse (etapa 31B) por el módulo 22 por medio de al menos una clave asimétrica o simétrica o una combinación de las mismas como se entendería. La verificación puede producirse antes o después del descifrado.
Después de un descifrado y verificación opcional, se procesa al menos una porción de los datos de configuración, a continuación, en la etapa 32 por el módulo de procesamiento 24 para formar datos de configuración procesados. El módulo de procesamiento 24 comprende una función unidireccional que es operable en los datos de configuración para proporcionar los datos de configuración procesados. La función unidireccional es una función de modo que es sencillo calcular la salida dada la entrada, pero dada una salida, es difícil calcular la entrada. Es decir, que es difícil calcular la función inversa de la función unidireccional y, preferentemente, la función inversa no puede calcularse.
La etapa de procesamiento 32 puede efectuarse antes o después de cualquier descifrado y/o verificación de las etapas 31A y 31B.
En la etapa 33, al menos un módulo configurable (10, 12, 14, 16) del dispositivo programable 1 está configurado usando los datos de configuración procesados. El módulo configurable puede comprender un módulo criptográfico tal como al menos uno de un módulo de caja de sustitución, un módulo de tabla de sustitución, un módulo de permutación de bits, un módulo de permutación de bytes o un módulo de multiplicación de matrices. El módulo configurable también puede comprender un endurecedor para un generador de números aleatorios verdaderos o una función que no se puede clonar físicamente, 'PUF', y/o una máquina de estado flexible, o cualquier porción de la red de interconexión (28 de la Figura 2).
La configuración por medio de los datos de configuración procesados puede comprender al menos uno de:
• inicializar el dispositivo programable 1, de modo que se inicializan bloques componente internos, por ejemplo, biestables, de uno o más módulos configurables del dispositivo programable 1.
• configurar un módulo configurable del dispositivo programable, por ejemplo, configuración de módulos criptográficos tales como cajas de sustitución, permutaciones de bits o máquinas de estado flexible, u operaciones aritméticas tales como multiplicación de matriz, multiplicar o adición, y/u otros módulos tales como registros de desplazamiento de realimentación lineales.
• configurar una interconexión entre módulos del dispositivo programable. Puede configurarse la interconexión entre módulos configurables y no configurables del dispositivo programable 1. Esto puede incluir hacer, romper o unir interconexiones entre cualquiera de los módulos del dispositivo programable 1.
Adicionalmente, o como alternativa, configurar puede comprender generar elementos por la función unidireccional tal como un valor constante que tiene impacto en el comportamiento de un módulo configurable tal como un módulo criptográfico actuando como elementos de segmentación, vectores de inicialización, permutaciones pseudo aleatorias, claves estáticas, por ejemplo. La salida de la función unidireccional también puede combinarse con otros elementos de configuración que se eligen de tal forma que la salida resultante coincide con un valor esperado.
Algunos módulos del dispositivo programable 1 pueden configurarse por medio de datos de configuración que no se han procesado por el módulo de procesamiento 24.
Después de la etapa 33, el dispositivo programable 1 está configurado de forma segura.
Para poner el concepto anterior en contexto, la Figura 4 ilustra un dispositivo programable 1 colocado dentro de un dispositivo de tarjeta inteligente 4. Como se entendería, en la Figura 4 se muestran diversos componentes de una tarjeta inteligente. En el lado izquierdo de la Figura se muestran los conectores de entrada/salida (tierra, Vcc, reloj, datos de e/s y conectores adicionales) mientras que diversos componentes funcionales se muestran como presentes únicamente para propósitos de ilustración. Se muestra una unidad de gestión de memoria (MMU) o de protección de memoria (MPU) para su interacción con las diversas memorias a bordo (ROM, fusible electrónico - una ROM programable una vez, RAM y EEPROM Flash) como se entendería. Los otros módulos no se describen en este documento ya que el experto conocería su función. En ejemplos adicionales puede estar presente un subconjunto de los bloques funcionales ilustrados. Puede considerarse que el dispositivo programable 1 es un elemento seguro. El consumo de potencia, mientras ejecuta el método como se describe en este documento, puede adherirse a parámetros de operación de tarjeta inteligente, y/o el factor de forma del dispositivo programable puede adherirse a la norma de parámetro de tarjeta inteligente.
Por lo tanto, una tarjeta inteligente 4 que comprende el dispositivo criptográfico flexible como se describe en este documento y como se ilustra en la Figura 4 es capaz de encriptación de voz o vídeo personalizada y adaptable, si, por ejemplo, la tarjeta inteligente reside en un decodificador de salón u otro dispositivo de control de acceso de datos de proveedor de contenido. Además, puede proporcionarse una funcionalidad criptográfica flexible a dispositivos de Internet de la Cosas o dispositivos embebidos con sistema en chip (SOC).
Podría usarse un dispositivo criptográfico flexible, como se describe en este documento, como parte de un sistema de acceso condicional (CAS), por ejemplo, residiendo en un módulo de acceso condicional (CAM) de un dispositivo de entrega de contenido.
Los módulos configurables y/o interconexión o interconexiones configurables de dispositivo programable 1, después de experimentar el método descrito en este documento puede personalizarse por necesidades individuales del proveedor sin experimentar un rediseño de hardware del silicio.
Por consiguiente, se proporciona un método de despliegue de un módulo seguro, por ejemplo, un elemento seguro de un dispositivo programable. Permitiendo que aspectos del módulo seguro se programen posfabricación, se simplifica el diseño y fabricación del módulo seguro y, por lo tanto, el dispositivo dentro del que reside y, por lo tanto, es menos costoso. La capacidad de programación posfabricación permite que aspectos del esquema criptográfico empleado por el módulo seguro se desplieguen en o antes del momento de activación del dispositivo que contiene el módulo seguro. Esto reduce la carga en el diseño personalizado de silicio tal como elementos seguros que pueden reducir el tiempo de comercialización, así como permitir la segmentación de diseño y características de seguridad entre diferentes implementaciones. Además, retrasando algunos aspectos del diseño a la etapa de implementación, un ataque a nivel de diseño no resultaría en el conocimiento de toda la información requerida para implementar el elemento seguro.
Esto permite la flexibilidad tanto en el diseño como la fabricación del módulo seguro en que pueden distribuirse nuevos dispositivos/PCB que comprenden un elemento seguro que son de un diseño más genérico, permitiendo la reducción en el coste de fabricación.
Como resultado, los proveedores de contenido controlados pueden aprovecharse de:
1. Pueden personalizar sus algoritmos/claves/códigos de control de acceso a voluntad en el punto de distribución del dispositivo que contiene el dispositivo criptográfico flexible (por ejemplo, un elemento seguro).
2. Pueden cambiar aspectos del control de acceso seguro por medio de una descarga a dispositivos después de la distribución de hardware sin la necesidad de cambiar el hardware en el campo. Esto permite el mantenimiento de acceso seguro por medio del cambio de datos seguros que pueden haberse comprometido por un ataque exitoso.
Además, como se entendería, debido a la acción de la función unidireccional, los datos de configuración no pueden regenerarse para habilitar la programación de un dispositivo programable en blanco. Incluso si se obtiene un estado deseado del dispositivo programable posprogramando, por ejemplo, por medio de un ataque microscópico o explorando todos los pines del dispositivo programable u otro dispositivo en el que reside el dispositivo programable, con todas las combinaciones de entrada posibles, no es posible descubrir los datos de configuración requeridos para conseguir la configuración particular ya que la función unidireccional evita este conocimiento.
Debe apreciarse que la descripción anterior pretende ser ilustrativa, y no restrictiva. Muchas otras implementaciones serán evidentes para los expertos en la materia tras la lectura y el entendimiento de la anterior descripción. Aunque la presente divulgación se ha descrito con referencia a implementaciones de ejemplo específicas, se reconocerá que la divulgación no se limita a las implementaciones descritas, sino que puede ponerse en práctica con modificación y alteración dentro del alcance de las reivindicaciones adjuntas. Por consiguiente, la memoria descriptiva y los dibujos se considerarán en un sentido ilustrativo en lugar de un sentido restrictivo. El alcance de la divulgación debería determinarse, por lo tanto, con referencia a las reivindicaciones adjuntas.
Claims (13)
1. Un método de programación de un dispositivo programare, que comprende:
adquirir datos de configuración;
cargar los datos de configuración en el dispositivo programable;
procesar al menos una porción de los datos de configuración a través de una función unidireccional para formar datos de configuración procesados; y
configurar al menos un módulo configurable del dispositivo programable usando los datos de configuración procesados de la etapa de procesamiento;caracterizado por que:
el al menos un módulo configurable comprende un módulo criptográfico, y en donde el módulo criptográfico comprende una función que no se puede clonar físicamente, "PUF".
2. Un método de acuerdo con la reivindicación 1, en donde la etapa de carga comprende además el descifrado de los datos de configuración.
3. Un método de acuerdo con cualquier reivindicación anterior, en donde la etapa de carga comprende además verificar la autenticidad y/o la integridad de los datos de configuración por medio de una clave simétrica o asimétrica.
4. Un método de acuerdo con cualquier reivindicación anterior, en donde la etapa de carga comprende cargar los datos de configuración en un módulo de configuración del dispositivo programable.
5. Un método de acuerdo con la reivindicación 3, en donde el descifrado y/o la verificación son realizados por el módulo de configuración.
6. Un método de acuerdo con cualquier reivindicación anterior, en donde la etapa de configuración comprende al menos uno de:
inicializar el dispositivo programable;
configurar un módulo configurable del dispositivo programable; y
configurar una interconexión entre módulos del dispositivo programable, en donde los módulos pueden ser configurables o no configurables.
7. Un método de acuerdo con cualquier reivindicación anterior, en donde el consumo de potencia durante la ejecución del método se adhiere a parámetros de operación de tarjeta inteligente.
8. Un dispositivo programable dispuesto para llevar a cabo el método de acuerdo con cualquier reivindicación anterior, en donde el dispositivo programable comprende al menos un módulo configurable, en donde el al menos un módulo configurable comprende un módulo criptográfico, y en donde el módulo criptográfico comprende función que no se puede clonar físicamente, "PUF".
9. Un dispositivo programable de acuerdo con la reivindicación 8, en donde el dispositivo programable comprende una función unidireccional.
10. Un dispositivo programable de acuerdo con la reivindicación 8 o la reivindicación 9, en donde el módulo criptográfico comprende al menos uno de un módulo de caja de sustitución, un módulo de tabla de sustitución, un módulo de permutación de bits, un módulo de permutación de bytes o un módulo de multiplicación de matrices.
11. Un dispositivo programable de acuerdo con cualquiera de las reivindicaciones 8 a 10, en donde el al menos un módulo configurable comprende una máquina de estado programable.
12. Un dispositivo programable de acuerdo con cualquiera de las reivindicaciones 8 a 11, en donde el dispositivo programable está ubicado en una tarjeta inteligente.
13. Un dispositivo programable de acuerdo con cualquiera de las reivindicaciones 8 a 12, en donde el factor de forma del dispositivo programable se adhiere a los parámetros de tarjeta inteligente.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB201605974 | 2016-04-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2957712T3 true ES2957712T3 (es) | 2024-01-24 |
Family
ID=58548673
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17717650T Active ES2899005T3 (es) | 2016-04-07 | 2017-04-07 | Dispositivo criptográfico flexible |
ES21193382T Active ES2957712T3 (es) | 2016-04-07 | 2017-04-07 | Dispositivo criptográfico flexible |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17717650T Active ES2899005T3 (es) | 2016-04-07 | 2017-04-07 | Dispositivo criptográfico flexible |
Country Status (4)
Country | Link |
---|---|
US (2) | US11366936B2 (es) |
EP (2) | EP3398109B1 (es) |
ES (2) | ES2899005T3 (es) |
WO (1) | WO2017174788A1 (es) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706179B2 (en) * | 2018-01-10 | 2020-07-07 | General Electric Company | Secure provisioning of secrets into MPSoC devices using untrusted third-party systems |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4534014A (en) * | 1983-06-20 | 1985-08-06 | Ames Oliver C | Mechanically programmable read only memory |
US4701636A (en) * | 1986-05-29 | 1987-10-20 | National Semiconductor Corporation | Programming voltage control circuit for programmable array logic device |
IT1225638B (it) * | 1988-12-28 | 1990-11-22 | Sgs Thomson Microelectronics | Dispositivo logico integrato come una rete di maglie di memorie distribuite |
US5128871A (en) * | 1990-03-07 | 1992-07-07 | Advanced Micro Devices, Inc. | Apparatus and method for allocation of resoures in programmable logic devices |
US7073069B1 (en) * | 1999-05-07 | 2006-07-04 | Infineon Technologies Ag | Apparatus and method for a programmable security processor |
US6442675B1 (en) * | 1999-07-29 | 2002-08-27 | International Business Machines Corporation | Compressed string and multiple generation engine |
GB9930145D0 (en) * | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
US7240218B2 (en) * | 2000-02-08 | 2007-07-03 | Algotronix, Ltd. | Method of using a mask programmed key to securely configure a field programmable gate array |
US6785816B1 (en) * | 2000-05-01 | 2004-08-31 | Nokia Corporation | System and method for secured configuration data for programmable logic devices |
US20020045952A1 (en) * | 2000-10-12 | 2002-04-18 | Blemel Kenneth G. | High performance hybrid micro-computer |
GB0122477D0 (en) * | 2001-09-18 | 2001-11-07 | Anadigm Ltd | Methods and apparatus for reconfiguring programmable devices |
US7406674B1 (en) * | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
GB2384332B (en) * | 2002-01-21 | 2004-03-17 | Sun Microsystems Inc | Computer configuration |
US20060059574A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System for securely configuring a field programmable gate array or other programmable hardware |
US7535249B1 (en) * | 2005-09-09 | 2009-05-19 | Xilinx, Inc. | Authentication for information provided to an integrated circuit |
WO2007068122A1 (en) * | 2005-12-16 | 2007-06-21 | Univ Western Ontario | System and method for cache management |
US7408381B1 (en) * | 2006-02-14 | 2008-08-05 | Xilinx, Inc. | Circuit for and method of implementing a plurality of circuits on a programmable logic device |
US7809544B1 (en) * | 2007-06-13 | 2010-10-05 | Xilinx, Inc. | Methods of detecting unwanted logic in designs for programmable logic devices |
US20090119503A1 (en) * | 2007-11-06 | 2009-05-07 | L3 Communications Corporation | Secure programmable hardware component |
US7746099B1 (en) * | 2008-01-11 | 2010-06-29 | Xilinx, Inc. | Method of and system for implementing a circuit in a device having programmable logic |
US10057641B2 (en) * | 2009-03-25 | 2018-08-21 | Sony Corporation | Method to upgrade content encryption |
US8205180B1 (en) * | 2009-05-05 | 2012-06-19 | Xilinx, Inc. | Method of and system for generating a logic configuration for an integrated circuit |
US8248869B1 (en) * | 2009-10-16 | 2012-08-21 | Xilinx, Inc. | Configurable memory map interface and method of implementing a configurable memory map interface |
EP2507708B1 (en) * | 2009-12-04 | 2019-03-27 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
EP2558972A1 (en) | 2010-04-12 | 2013-02-20 | InterDigital Patent Holdings, Inc. | Staged control release in boot process |
US8667265B1 (en) * | 2010-07-28 | 2014-03-04 | Sandia Corporation | Hardware device binding and mutual authentication |
US8583944B1 (en) * | 2010-08-04 | 2013-11-12 | Xilinx, Inc. | Method and integrated circuit for secure encryption and decryption |
US8924455B1 (en) * | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
US8415974B1 (en) * | 2011-03-09 | 2013-04-09 | Xilinx, Inc. | Methods and circuits enabling dynamic reconfiguration |
US9331848B1 (en) * | 2011-04-29 | 2016-05-03 | Altera Corporation | Differential power analysis resistant encryption and decryption functions |
US8750502B2 (en) * | 2012-03-22 | 2014-06-10 | Purdue Research Foundation | System on chip and method for cryptography using a physically unclonable function |
US9305185B1 (en) * | 2012-08-07 | 2016-04-05 | Altera Corporation | Method and apparatus for securing programming data of a programmable device |
US8843765B2 (en) | 2012-10-10 | 2014-09-23 | Broadcom Corporation | Key derivation system |
US9754133B2 (en) * | 2013-03-14 | 2017-09-05 | Microchip Technology Incorporated | Programmable device personalization |
US9633210B2 (en) * | 2013-09-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Keying infrastructure |
US10432409B2 (en) * | 2014-05-05 | 2019-10-01 | Analog Devices, Inc. | Authentication system and device including physical unclonable function and threshold cryptography |
US9397835B1 (en) * | 2014-05-21 | 2016-07-19 | Amazon Technologies, Inc. | Web of trust management in a distributed system |
CA2892535C (en) * | 2014-05-26 | 2022-11-22 | Robert Hayhow | Post-manufacture configuration of pin-pad terminals |
CN107004380B (zh) * | 2014-10-13 | 2020-11-13 | 本质Id有限责任公司 | 包括物理不可克隆功能的加密设备 |
US10262161B1 (en) * | 2014-12-22 | 2019-04-16 | Amazon Technologies, Inc. | Secure execution and transformation techniques for computing executables |
US9876645B1 (en) * | 2015-02-17 | 2018-01-23 | Amazon Technologies, Inc. | Tamper detection for hardware devices |
US10177922B1 (en) * | 2015-03-25 | 2019-01-08 | National Technology & Engineering Solutions Of Sandia, Llc | Repeatable masking of sensitive data |
US10095889B2 (en) * | 2016-03-04 | 2018-10-09 | Altera Corporation | Techniques for protecting security features of integrated circuits |
-
2017
- 2017-04-07 WO PCT/EP2017/058407 patent/WO2017174788A1/en active Application Filing
- 2017-04-07 EP EP17717650.0A patent/EP3398109B1/en active Active
- 2017-04-07 ES ES17717650T patent/ES2899005T3/es active Active
- 2017-04-07 US US16/078,588 patent/US11366936B2/en active Active
- 2017-04-07 ES ES21193382T patent/ES2957712T3/es active Active
- 2017-04-07 EP EP21193382.5A patent/EP3933648B1/en active Active
-
2022
- 2022-05-17 US US17/746,564 patent/US11977666B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3933648A1 (en) | 2022-01-05 |
ES2899005T3 (es) | 2022-03-09 |
US11977666B2 (en) | 2024-05-07 |
WO2017174788A1 (en) | 2017-10-12 |
EP3398109A1 (en) | 2018-11-07 |
EP3933648B1 (en) | 2023-07-05 |
US20220391544A1 (en) | 2022-12-08 |
EP3398109B1 (en) | 2021-11-03 |
US20190050605A1 (en) | 2019-02-14 |
US11366936B2 (en) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7606362B1 (en) | FPGA configuration bitstream encryption using modified key | |
CN104252881B (zh) | 半导体集成电路及*** | |
US9887844B2 (en) | Method for safeguarding a system-on-a-chip | |
JP6380904B2 (ja) | 信頼のルート | |
US10833878B2 (en) | Integrated circuit with parts activated based on intrinsic features | |
US9870488B1 (en) | Method and apparatus for securing programming data of a programmable device | |
US10482252B2 (en) | Method for protecting the confidentiality and integrity of firmware for an Internet of Things device | |
US10110380B2 (en) | Secure dynamic on chip key programming | |
US10044514B1 (en) | Secure external key storage for programmable ICS | |
US20130080764A1 (en) | Secure Remote Credential Provisioning | |
US10771062B1 (en) | Systems and methods for enhancing confidentiality via logic gate encryption | |
EP2775657B1 (en) | Device for generating an encrypted key and method for providing an encrypted key to a receiver | |
JP2017506850A (ja) | 公開鍵およびセッション鍵による認証 | |
AU2015359526A1 (en) | Device keys protection | |
US9003197B2 (en) | Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor | |
ES2826977T3 (es) | Programación segura de datos secretos | |
US11977666B2 (en) | Flexible cryptographic device | |
Peterson | Leveraging asymmetric authentication to enhance security-critical applications using Zynq-7000 all programmable SoCs | |
KR20230074501A (ko) | 적어도 하나의 암호 키를 생성하기 위한 디바이스, 대응하는 방법들 및 컴퓨터 프로그램 제품들 | |
ES2777526T3 (es) | Componente lógico programable, circuito de formación de claves y procedimiento para proporcionar una información de seguridad | |
Block et al. | ProASIC3/E Security |