ES2957712T3 - Dispositivo criptográfico flexible - Google Patents

Dispositivo criptográfico flexible Download PDF

Info

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
Application number
ES21193382T
Other languages
English (en)
Inventor
Andre Kudelski
Nicolas Fischer
Jerome Perrine
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.)
Nagravision SARL
Original Assignee
Nagravision SARL
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 Nagravision SARL filed Critical Nagravision SARL
Application granted granted Critical
Publication of ES2957712T3 publication Critical patent/ES2957712T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/76Protecting 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/73Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/77Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation 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
    • 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/32Cryptographic 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/3271Cryptographic 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/3278Cryptographic 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]
    • 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/32Cryptographic 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)
  • Geometry (AREA)
  • Evolutionary Computation (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)

REIVINDICACIONES
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.
ES21193382T 2016-04-07 2017-04-07 Dispositivo criptográfico flexible Active ES2957712T3 (es)

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) EP3933648B1 (es)
ES (2) ES2899005T3 (es)
WO (1) WO2017174788A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
KR101714108B1 (ko) * 2009-12-04 2017-03-08 크라이프토그라피 리서치, 인코포레이티드 검증가능 누출 방지 암호화 및 복호화
TW201741925A (zh) * 2010-04-12 2017-12-01 內數位專利控股公司 啟洞程序中階段控制釋放
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
JP6789222B2 (ja) * 2014-10-13 2020-11-25 イントリンシツク・イー・デー・ベー・ベー 物理的複製不可能関数を備える暗号デバイス
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

Also Published As

Publication number Publication date
EP3933648A1 (en) 2022-01-05
EP3398109A1 (en) 2018-11-07
US11977666B2 (en) 2024-05-07
US20190050605A1 (en) 2019-02-14
US11366936B2 (en) 2022-06-21
EP3933648B1 (en) 2023-07-05
EP3398109B1 (en) 2021-11-03
ES2899005T3 (es) 2022-03-09
US20220391544A1 (en) 2022-12-08
WO2017174788A1 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
CN104252881B (zh) 半导体集成电路及系统
US8750503B1 (en) FPGA configuration bitstream encryption using modified key
US9887844B2 (en) Method for safeguarding a system-on-a-chip
JP6380904B2 (ja) 信頼のルート
US10833878B2 (en) Integrated circuit with parts activated based on intrinsic features
US8645677B2 (en) Secure remote credential provisioning
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
US10771062B1 (en) Systems and methods for enhancing confidentiality via logic gate encryption
US10044514B1 (en) Secure external key storage for programmable ICS
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
US11977666B2 (en) Flexible cryptographic device
ES2826977T3 (es) Programación segura de datos secretos
US11874928B2 (en) Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain
Peterson Leveraging asymmetric authentication to enhance security-critical applications using Zynq-7000 all programmable SoCs
CN112470158A (zh) 用于可编程逻辑器件的故障表征系统和方法
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