ES2691258T3 - Sistema y método para una comunicación anfitrión-esclavo segura - Google Patents
Sistema y método para una comunicación anfitrión-esclavo segura Download PDFInfo
- Publication number
- ES2691258T3 ES2691258T3 ES12830795.6T ES12830795T ES2691258T3 ES 2691258 T3 ES2691258 T3 ES 2691258T3 ES 12830795 T ES12830795 T ES 12830795T ES 2691258 T3 ES2691258 T3 ES 2691258T3
- Authority
- ES
- Spain
- Prior art keywords
- slave device
- slave
- circuitry
- host
- value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- 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/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/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
Una circuitería (230) de dispositivo esclavo, incluida en un dispositivo (110) esclavo, comprendiendo la circuitería de dispositivo esclavo: un procesador (200) y una memoria (210) acoplada al mismo que tiene almacenadas dentro instrucciones de código de programa que, cuando son ejecutadas por el procesador (200), provocan al procesador (200) a: después de que la circuitería (230) del dispositivo esclavo se reinicie, determinar el valor de semilla (20) basado en un valor de semilla del dispositivo esclavo anterior al reinicio del dispositivo esclavo; recibir un número de anfitrión desde un anfitrión (100) que es sustancialmente aleatorio; generar una clave de sesión (50) basada en el valor de semilla determinado y el número de anfitrión, siendo la clave de sesión sustancialmente aleatoria; y realizar las operaciones cifrado y descifrado (60) en base a la clave de sesión generada en los datos a transmitir y los datos recibidos por la circuitería (230) de esclavo, respectivamente, y determinar un valor de dirección (80) en base a la clave de sesión generada para comunicarse con el anfitrión (100), en donde sustancialmente aleatorio comprende ser uno de entre un número aleatorio real y un número pseudoaleatorio, y en donde una primera parte de la clave de sesión es usada por el procesador (200) que realiza las operaciones de cifrado y descifrado (60) en los datos a transmitir y a recibir, respectivamente, y una segunda parte de la clave de sesión se usa para generar el valor de dirección.
Description
5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Sistema y método para una comunicación anfitrión-esclavo segura Referencias cruzadas a las solicitudes relacionadas
La presente solicitud se relaciona con y reivindica prioridad de la solicitud de patente provisional U.S. 61/532,527, archivada el 8 de setiembre, 2011, titulada, “SISTEMA Y MÉTODO PARA UNA COMUNICACIÓN MAESTRO- ESCAVO SEGURA”.
Antecedentes
1. Campo de la descripción
Las realizaciones de ejemplo de la presente descripción se refieren de manera general a la comunicación maestro- esclavo segura, y más particularmente a un sistema y un método de comunicación en el que una clave de sesión es generada tanto por el dispositivo maestro como por el esclavo para usar tanto en el cifrado/descifrado como en la generación de direcciones de esclavo.
2. Descripción de la técnica relacionada
Los dispositivos de impresión son conocidos por usar esquemas de autenticación electrónicos asociados con sus elementos de suministros consumibles. Normalmente, el elemento de suministro reemplazable contiene un chip de circuito integrado que se comunica con el controlador ubicado en la impresora. En tal disposición, la impresora se configura como el dispositivo anfitrión y cada elemento de suministro como el dispositivo esclavo. El controlador en el anfitrión verifica la autenticidad de cada uno de los dispositivos esclavos mediante el envío de un reto a los mismos. La autenticidad es verificada por el anfitrión que recibe la respuesta correcta al reto desde el dispositivo esclavo.
En algunos esquemas existentes de autenticación de consumibles, los dispositivos anfitrión y esclavo se comunican a través del bus I2C. El anfitrión envía comandos al esclavo usando la dirección de esclavo asignada al mismo, el esclavo ejecuta los comandos y envía las respuestas, según sea apropiado, de vuelta al anfitrión. Los comandos y los datos se envían sin verificación de datos.
Mientras las comunicaciones entre anfitriones y esclavos no están cifradas, dicho sistema utiliza una característica de cambio de dirección de esclavo única para hacer más difícil duplicar la función del dispositivo esclavo. La dirección de esclavo se cambia de manera regular a valores de dirección de esclavo determinados por un algoritmo que es conocido por tanto el anfitrión como el esclavo. Después de recibir un comando de cambio de dirección desde el anfitrión, el esclavo no responderá a los sondeos de direcciones desde el anfitrión hasta después de que un cierto comando se reciba en la nueva dirección. La dirección actual se almacena en una memoria no volátil de tanto el anfitrión como el esclavo por lo que la dirección actual junto con la posición en la secuencia de direcciones, se mantiene a lo largo de los ciclos de alimentación.
La característica de cambio de dirección hace que clonar el chip de circuito integrado del dispositivo esclavo sea más difícil porque el algoritmo para computar el siguiente valor de la dirección de esclavo utiliza el valor actual de la misma. El problema con esta característica es que el anfitrión y el esclavo pueden resultar estar no sincronizados en la secuencia de direcciones. Por ejemplo, esto ocurrirá al mover un elemento de suministro esclavo desde una impresora anfitriona a otra ya que la segunda impresora no sabrá donde está el dispositivo esclavo en la secuencia de direcciones. Para superar esto, se proporciona un medio para reconfigurar la secuencia, que sustancialmente debilita la seguridad del sistema.
En concreto, el sistema existente sufre de 1) una falta de verificación y corrección de datos; 2) comunicación no cifrada; y 3) secuencias de direcciones de esclavo reiniciables.
El funcionamiento en ambientes ruidosos puede provocar la corrupción de los datos en el bus, pero el sistema existente no tiene medios para detectar o corregir estos errores inducidos por el ruido. Esto es de cierta importancia ya que los elementos de suministro (dispositivos esclavos) se ubican a menudo dentro de la impresora anfitriona a una distancia relativamente larga del controlador del anfitrión y los cables del bus de comunicaciones se pueden enrutar cerca de fuentes de ruido agresivo, tales como motores. El envío de los comandos de forma no cifrada permite que un atacante aprenda los comandos y datos del sistema capturando el tráfico entre el controlador de la impresora y el elemento de suministro.
Basado en lo anterior, existe la necesidad de un sistema de comunicación anfitrión-esclavo mejorado. La descripción de la US 2003/093694 A1 puede ser útil para entender la presente invención, como describe este documento obteniendo una clave de sesión a partir de un identificador de semilla y de anfitrión.
Compendio
Las realizaciones de ejemplo superan las deficiencias con los esquemas de comunicación existentes y de este modo
satisfacen una necesidad significativa del dispositivo esclavo de comunicarse de manera segura con un anfitrión sobre un bus. El dispositivo esclavo puede incluir un procesador y una memoria acoplada a este que tiene almacenados dentro instrucciones de código de programa. Las instrucciones de código de programa, cuando son ejecutadas por el procesador, provocan al procesador a: después de que el dispositivo esclavo se reinicie, 5 determinar un valor de semilla basado en un valor de semilla del dispositivo esclavo anterior a que el dispositivo esclavo se reiniciara; recibir un número de anfitrión desde un anfitrión que es sustancialmente aleatorio; determinar una clave de sesión basada en el valor de semilla determinado y el número de anfitrión, siendo la clave de sesión sustancialmente aleatoria; y usar la clave de sesión para realizar operaciones de cifrado y descifrado en los datos a transmitir y en los datos recibidos por el dispositivo esclavo, respectivamente, y a determinar un valor de dirección 10 para el dispositivo esclavo para comunicarse con el anfitrión. En la presente memoria, una primera parte de la clave de sesión es usada por el procesador para las operaciones de cifrado y descifrado, en donde una segunda parte es usada para generar el valor de dirección. Creando una clave de sesión que no se comunica con el anfitrión y que se usa en el cifrado/descifrado así como en la generación de direcciones de esclavo, el dispositivo esclavo coopera con el anfitrión para comunicarse de manera segura con este.
15 Breve descripción de los dibujos
Las características anteriormente mencionadas y otras y las ventajas de las diversas realizaciones, y la manera de alcanzarlas, resultarán más claras y se entenderán mejor con referencia a los dibujos adjuntos.
La Figura 1 es un diagrama de bloques de un sistema de comunicación que incluye un dispositivo anfitrión y al menos un dispositivo esclavo; y
20 La Figura 2 es un diagrama de flujo que ilustra el funcionamiento del dispositivo esclavo de la Figura 1 según una realización de ejemplo,
Descripción detallada
Se ha de entender que la invención no se limita en su aplicación a los detalles de construcción y disposición de los componentes enunciados en la siguiente descripción o ilustrados en los dibujos. La invención es capaz de otras 25 realizaciones y de ser puesta en práctica o ser llevada a cabo de diversas maneras. También, se ha de entender que la fraseología y la terminología usadas en la presente memoria son por el propósito de la descripción y no debería considerarse como limitante. El uso de “incluye,” “comprende,” o “tiene” y las variaciones de los mismos están destinadas en la presente memoria a abarcar los elementos listados después y los equivalentes de los mismos así como elementos adicionales. A menos que estén limitados de otro modo, los términos “conectado,” “acoplado,” y las 30 variaciones de los mismos se usan en la presente memoria ampliamente y abarcan las conexiones y acoplamientos directos e indirectos. Además, los términos “conectado,” “acoplado,” y las variaciones de los mismos no se restringen a las conexiones o acoplamientos físicos o mecánicos. Además, y como se describe en los párrafos siguientes, las configuraciones mecánicas específicas ilustradas en los dibujos están destinadas a ejemplificar las realizaciones de la invención y son posibles otras configuraciones mecánicas alternativas.
35 Las realizaciones de ejemplo de la presente descripción están dirigidas a la comunicación entre un dispositivo 100 anfitrión y uno o más dispositivos 110 esclavos, como se muestra en la Fig. 1. El dispositivo 100 anfitrión y el dispositivo 110 esclavo se comunican a través de un bus 120. En una realización de ejemplo, el dispositivo 100 anfitrión es un dispositivo de impresión y el dispositivo 110 esclavo es un elemento de suministro reemplazable. En concreto, el dispositivo 100 anfitrión puede incluir componentes y módulos utilizados normalmente en impresoras, 40 que incluyen un motor 130 de impresión para presentar una imagen en una hoja de medios. Por ejemplo, el motor 130 de impresión puede ser un motor de impresión para una impresora láser o para una impresora de tinta. Se entiende que el motor 130 de impresión puede ser cualquier motor usado para crear una imagen en una hoja de medios. El dispositivo 100 anfitrión puede incluir además un sistema 140 de escáner para capturar una imagen que aparece en una hoja de medios para su uso posterior en una operación de impresión, comunicación por correo 45 electrónico o similar Se puede incluir un sistema 150 alimentador de medios en el dispositivo 100 anfitrión para mover sucesivamente las hojas de medios desde una pila de entrada (no mostrada) al motor 130 de impresión para realizar una operación de impresión después de la cual la hoja impresa se puede mover a un área de salida del dispositivo 100 anfitrión (no mostrada). Los detalles del motor 130 de impresión, el sistema 140 de escáner y el sistema 150 alimentador de medios son bien conocidos y no se describirán en la presente memoria por razones de 50 simplicidad.
El dispositivo 100 anfitrión puede incluir además una interfaz 160 de usuario que permite la comunicación entre el dispositivo 100 anfitrión y un usuario del mismo. La interfaz 160 de usuario puede ser cualquier interfaz para facilitar la comunicación entre el dispositivo 100 anfitrión y el usuario, tal como, por ejemplo, una pantalla táctil.
El dispositivo 100 anfitrión puede incluir además un puerto 170 de la interfaz para comunicarse con uno o más 55 dispositivos 110 esclavos a través del bus 120. El dispositivo 100 anfitrión puede incluir además un controlador 180 para controlar los diferentes componentes del dispositivo 100 anfitrión. En el contexto en el que el dispositivo 100 anfitrión es un dispositivo de impresión, el controlador 180 puede controlar el funcionamiento del motor 130 de impresión, el sistema 140 de escáner, el sistema 150 alimentador de medios, la interfaz 160 y la interfaz 170 de
5
10
15
20
25
30
35
40
45
usuario. El controlador 180 puede ejecutar instrucciones almacenadas en la memoria 190 para controlar los diversos componentes del dispositivo 100 anfitrión.
En una realización en la que el dispositivo 100 anfitrión es un dispositivo de impresión, el dispositivo 110 esclavo puede ser un cartucho o envase de tinta o tóner, por ejemplo. Además, o como alternativa, el dispositivo 110 esclavo puede ser otro componente reemplazable de una impresora láser anfitriona, tal como una unidad de revelado de un motor 130 de impresión o una unidad de fusor.
El dispositivo esclavo puede incluir un procesador 200 para, entre otras cosas, cooperar con el dispositivo 100 anfitrión a realizar la autenticación del esclavo para permitir sólo a los esclavos autorizados comunicarse con el dispositivo 100 anfitrión y de este modo evitar ataques o daños al dispositivo 100 anfitrión. El procesador 200 se acopla con la memoria 210 que tiene instrucciones almacenadas dentro para su ejecución por el procesador 200. El procesador 200 y la memoria 210 se pueden crear en un chip 230 de circuito integrado. En una realización alternativa, el procesador 200 y l memoria 210 residen en chips de circuitos integrados separados. En aún otra realización alternativa, el dispositivo 110 esclavo puede incluir una circuitería, tal como una circuitería basada en una máquina de estados, para cooperar con el dispositivo 100 anfitrión para realizar la autenticación del esclavo.
Se entiende que el dispositivo 100 anfitrión no se limita a un dispositivo de impresión y puede ser virtualmente cualquier dispositivo electrónico con el que un elemento extraíble y/o reemplazable se pueda comunicar a través de un bus 120. Se entiende de manera similar que el dispositivo 110 esclavo puede ser virtualmente cualquier elemento reemplazable que se comunica con el dispositivo 100 anfitrión, incluyendo dispositivos esclavos que estén acoplados de manera comunicativa con éste de forma temporal.
El bus 120 puede ser cualquier bus que soporte un protocolo de bus en el que un anfitrión 100 y uno o más dispositivos 110 esclavos se comuniquen los unos con los otros. Según una realización de ejemplo, el bus 120 puede ser un bus de Circuito inter-Integrado (I2C). En un bus I2C, un cable del bus 120 compartido lleva los datos de una manera bidireccional, y otro cable lleva las señales de reloj desde el dispositivo 100 anfitrión hasta los dispositivos 110 esclavos. También, aunque el bus 120 compartido se ilustra como un bus en serie de dos cables, se pueden utilizar estructuras de bus en paralelo compartidos.
Según al menos algunas realizaciones, incluyendo las realizaciones en las que el bus 120 es un bus I2C, el bus 120 es un bus maestro-esclavo, con el dispositivo 100 anfitrión sirviendo como el maestro del bus y los dispositivos 110 esclavos como los esclavos del bus. Al usar el protocolo I2C, el dispositivo 100 anfitrión inicia todas las comunicaciones con los respectivos dispositivos 110 esclavos. Los dispositivos 110 esclavos sólo responden a las solicitudes del dispositivo 100 anfitrión. En el caso de que un impostor se conecte al bus 120 compartido y emplee una dirección de esclavo válida, entonces el dispositivo impostor puede recibir una comunicación dirigida a él desde el dispositivo 100 anfitrión. Cuando se pasa información sensible a través del bus 120 a los dispositivos 110 esclavos, el dispositivo impostor puede recibir esta misma de una manera no autorizada, desconocida para el dispositivo 100 anfitrión. Esto puede ocurrir si un dispositivo 110 esclavo autorizado fuera desconectado del bus 120 compartido y el dispositivo impostor fuera conectado en el mismo y programado o cableado para asumir la dirección del dispositivo 110 esclavo que fue desconectado. Si los dispositivos 110 esclavos fueran equipados todos con direcciones fijas, lo que ha sido la práctica establecida, entonces no es excesivamente complicado acoplar un dispositivo impostor al bus 120 compartido y recibir las comunicaciones sensibles de una manera no autorizada desconocida para el dispositivo 100 anfitrión. Como resultado, los dispositivos 110 esclavos cambian de manera ocasional sus direcciones de esclavo en respuesta a una solicitud del dispositivo 100 anfitrión.
En una realización de ejemplo, el anfitrión 100 y el esclavo 110 se comunican usando comandos y datos cifrados usando un cifrado de flujo u otro esquema de cifrado. El establecimiento de una sesión de cifrado es realizado mediante el intercambio de valores entre el anfitrión 100 y el esclavo 110. Entonces el anfitrión 100 y el esclavo 110 calculan cada uno de manera independiente una clave de sesión a partir de los valores intercambiados y un secreto que es conocido por ambos. La clave de sesión se usa después para inicializar el cifrado de flujo (o cualquier otro esquema de cifrado) y la función de dirección de esclavo.
Específicamente, la tabla a continuación muestra los valores en el esquema de cifrado entre el anfitrión 100 y el esclavo 110, incluyendo los tamaños de ejemplo para cada valor.
- Datos
- Descripción Tamaño
- SN
- Número de serie del esclavo 4 bytes
- EK
- Clave de cifrado secreta 16 bytes
- SEMILLA
- Semilla del número aleatorio de esclavo 20 bytes
- SID
- Identificación de sesión 2 bytes
- HRN
- Número aleatorio de anfitrión 8 bytes
5
10
15
20
25
30
35
40
45
- SRN
- Número aleatorio de esclavo 8 bytes
- SK
- Clave de Sesión 20 bytes
TABLA
Valores de Cifrado
Cada esclavo 110 almacena en su memoria 210 un número SN de serie del esclavo único, una clave EK de cifrado de secreto única, una semilla SEMILLA del número aleatorio de esclavo y un identificador SID de sesión en una memoria no volátil, tal como la memoria 210. Estos valores se pueden escribir inicialmente en la memoria 210 como parte del proceso de fabricación para el esclavo 110. El número SN de serie del esclavo es el número de serie único del esclavo 100. La clave EK de cifrado secreta es la clave secreta mantenida en tanto el esclavo 110 como el anfitrión 100 que se usa para obtener la clave SK de sesión. La semilla SEMILLA del número aleatorio de esclavo se inicializa con un número aleatorio real durante el proceso de fabricación y es actualizada por el esclavo 110 después de cada ciclo de alimentación con un valor obtenido de éste. La identificación SID de sesión se inicializa a cero o algún otro valor y es aumentada o disminuida por el esclavo 110 con cada ciclo de alimentación.
El funcionamiento del esclavo 110 se describirá a continuación con respecto a la Fig. 2.
Después de que se haya reiniciado el esclavo 110, lo que puede ocurrir, por ejemplo, cuando el esclavo 100 se conecta inicialmente y es alimentado por el anfitrión 100, el esclavo 110 calcula en 10 una nueva identificación SID de sesión basada en la identificación SID de sesión actual que se mantiene en una memoria 210 no volátil dentro del esclavo 110. El valor de la nueva identificación SID de sesión se puede calcular, por ejemplo, aumentando o disminuyendo el valor de la identificación SID de sesión actual.
Además, después del reinicio, el esclavo 110 determina una nueva semilla SEMILLA del número aleatorio de esclavo en 20. Según la realización de ejemplo, SEMILLA0 representa el número aleatorio real escrito en la memoria 210 para la semilla SEMILLA del número aleatorio de esclavo durante el proceso de fabricación del dispositivo 110 esclavo. La semilla SEMILLA1 del número aleatorio de esclavo es el valor de la semilla SEMILLA del número aleatorio de esclavo después del i-ésimo ciclo de alimentación posterior. El valor i-ésimo de la semilla SEMILLA del número aleatorio de esclavo se puede actualizar con el valor SEMILLAi-1 de la semilla SEMILLA del número aleatorio de esclavo que sigue a un encendido del dispositivo 110 esclavo. En concreto, SEMILLAi se puede computar usando un algoritmo seguro, tal como un algoritmo hash seguro (SHA). De esta manera, SEMILLA se puede representar como:
SEMILLA = SHA-1 (SEMILLAu)
Donde “SHA-1” es la función hash segura de 160 bit diseñada por la Agencia de Seguridad Nacional. Se entiende que SEMILLAi se puede calcular usando un algoritmo diferente, lo que incluye un algoritmo seguro diferente, tal como un SHA diferente.
La semilla SEMILLA del número aleatorio de esclavo se usa después para computar en 30 un número R aleatorio (o pseudoaleatorio multi byte, tal como un número de 20 bytes, según la ecuación:
R = SHA-1 (SN & SEMILLA] & SID)
donde “&” representa la concatenación. El número SRN aleatorio de esclavo para la sesión se puede calcular para ser un número predeterminado de los bytes más significativos del número R, tal como los 8 bytes más significativos de R:
se entiende que se pueden utilizar funciones y algoritmos distintos del SHA-1 para generar el SRN, así como otro algoritmo basado en hash.
El anfitrión 100 computa el número HRN aleatorio de anfitrión usando una computación similar a la descrita anteriormente para generar el número SRN aleatorio de esclavo, o cualquier otro algoritmo generador de números aleatorios o pseudoaleatorios.
El anfitrión 100 y el esclavo 110 se comunican usando comandos y datos que son cifrados. En una realización de ejemplo, el anfitrión 100 y el esclavo 110 cifran los comandos y los datos a comunicar entre sí usando un cifrado de flujo. Por ejemplo, el anfitrión 100 y el esclavo 110 pueden utilizar el cifrado de flujo RC4 debido a su bajo coste computacional. Se entiende, sin embargo, que cualquier esquema de cifrado y/o cifrado de flujo puede ser utilizado por el anfitrión 100 y el esclavo 110 para comunicar la información entre ellos. En términos generales, una sesión de cifrado es establecida mediante el intercambio de valores entre el anfitrión 100 y el esclavo 110, a partir de lo cual el anfitrión 100 y el esclavo 110 calculan de manera independiente una clave Sk de sesión basada en los valores
5
10
15
20
25
30
35
40
45
50
intercambiados y un valor secreto conocido por cada uno. La clave SK de sesiones se usa después para inicializar el cifrado, que como se discutió en la realización de ejemplo es un cifrado de flujo.
Para establecer una sesión de cifrado en 40 para comunicar la información cifrada entre el anfitrión 100 y el esclavo 110, el anfitrión 100 envía al esclavo 110 el valor HRN aleatorio de anfitrión. En respuesta, el esclavo 110 envía al anfitrión 100 el número SRN aleatorio de esclavo y la identificación SID de sesión en respuesta. Después, tanto el anfitrión 100 como el esclavo 110 calculan en 50 la clave SK de sesión como sigue:
SK = HMAC(EK,HRN & SRN & SID)
donde HMAC es el código de autenticación de mensaje basado en hash. Como se mencionó anteriormente, la clave EK de cifrado secreta es conocida por tanto el anfitrión 100 como el esclavo 110, pero no se transmite a través del bus 120. La clave SK de sesión puede ser, por ejemplo, de 20 bytes de longitud y no se comunica a través del bus 120.
Se entiende que otras funciones de cifrado, tales como otra función basada en hash, se pueden utilizar para generar la clave SK de sesión. Se entiende además que cualquier esquema de cifrado se podría usar, y la realización de ejemplo usa el cifrado de flujo RC4 por su bajo coste computacional.
Según una realización de ejemplo, los bytes más significativos de la clave SK de sesión, tales como SK[159:32] (16 bytes), se pueden usar para inicializar el cifrado de flujo en 60 en el comienzo de la sesión de cifrado. Después de la inicialización, el cifrado produce una secuencia de bytes K0 K1 K2 K3.... Tanto el anfitrión 100 como el esclavo 110 computan la misma secuencia de bytes K ya que cada uno inicializa el flujo de cifrado con la misma clave SK de sesión. El anfitrión 100 entonces es capaz de cifrar en 60 un paquete de comando para su transmisión al esclavo 110 realizando una operación OR exclusiva (“XOR”) de los bytes de comando y datos con Ki, donde el valor i es aumentando por cada byte cifrado. Tras la recepción del paquete de comando cifrado, el esclavo 110 descifra después en 60 el paquete recibido realizando la operación XOR de los bytes con los mismo K bytes del cifrado. De manera similar, el esclavo 110 cifra en 60 el paquete de respuesta y transmite el paquete de respuesta cifrado que el anfitrión 100 es capaz de descifrar usando los mismos K bytes usados por el esclavo 110 al cifrar el paquete de respuesta.
Como se mencionó anteriormente, los bytes más significativos de la clave SK de sesión se pueden usar para una sesión de cifrado. Los bytes menos significativos de la clave SK de sesión, en este caso SK[31:0] (4 bytes), se pueden usar para inicializar en 70 el generador de direcciones de esclavo por el esclavo 110 y el anfitrión 100.
El esclavo 110 puede usar una dirección de 10 bits en el bus 120. Según una realización de ejemplo en la que el anfitrión 100 es un dispositivo de impresión y cada dispositivo 110 esclavo es un cartucho de tóner/tinta diferente, los cuatro bits más significativos de la dirección de esclavo pueden ser fijos y asignados a un valor que corresponde con un tipo de tinta o tóner - cian, magenta, amarillo o negro, por ejemplo. Los seis bits menos significativos de la dirección de esclavo de 10 bits pueden ser establecidos entonces mediante un generador de números pseudoaleatorios (PRNG) dentro del esclavo 110 y el anfitrión 100. Después de que el esclavo 110 es reiniciado, los seis bits menos significativos de su dirección de esclavo, esto es, la dirección I2C de esclavo, en el bus 120 son 0. Cuando el anfitrión 100 da instrucciones al esclavo 110 para cambiar su dirección de esclavo en 70, los seis bits menos significativos de la dirección de esclavo se establecen a partir de los bits predeterminados en el siguiente valor del PRNG.
De acuerdo con una realización de ejemplo, el PRNG puede ser un generador de congruencia lineal (LCG) y puede generar el número X0 pseudoaleatorio como sigue:
Xn = 2891336453 Xn-1 * 1523469037 mod f2
donde Xn-1 representa el valor actual del número Xn. Se entiende que se pueden utilizar otros LCG y/o PRNG para generar el número pseudoaleatorio Xn.
Según una realización de ejemplo, el LCG se inicializa con un número predeterminado de bytes de la clave SK de sesión, tales como los cuatro bytes menos significativos, SK[31:0], de manera tal que:
Después el anfitrión 110 lee la respuesta al comando de establecimiento de dirección, se calcula el siguiente valor del LCG (Xn) y se establece la dirección de esclavo (I2C) en 80 para ser un subconjunto predeterminado de bits de Xn. En una realización de ejemplo,
Dirección de Esclavo [5:0] = Xn [29:24]
El anfitrión 100 envía los comandos para cambiar las direcciones al esclavo 110 de una manera periódica, después
5
10
15
20
25
30
35
40
45
de lo que el anfitrión 100 y el esclavo 110 computan cada uno la nueva dirección Xn para el esclavo 110.
Después de esto, el esclavo 110 no responderá a las solicitudes de sondeo de dirección hasta después de que haya recibido una solicitud de estado desde el anfitrión 100 usando la nueva dirección Xn.
El anfitrión 100 y el esclavo 110 se comunican usando los paquetes de comando y respuesta a través del bus 120. Los paquetes contienen un valor de verificación de redundancia cíclica (CRC) para comprobar en busca de errores de datos en los paquetes. Si la verificación CRC falla en el esclavo 110, entonces el esclavo 110 devuelve una respuesta CRC al anfitrión 100. Si la verificación CRC falla en el anfitrión 100, entonces el anfitrión 100 retransmite el paquete de comando anterior sin avanzar el cifrado de flujo. En cualquier caso, el anfitrión 100 retransmite el paquete de comando de nuevo sin cambiar su contenido. Este enfoque mantiene el anfitrión 100 y el esclavo 110 sincronizados en el flujo de cifrado y también evita que se usen los mismos bytes de cifrado para cifrar diferentes datos.
El sistema de comunicación anfitrión-esclavo descrito anteriormente usa un esquema de comunicación cifrado basado en paquetes. Se proporciona un medio para la detección y corrección de errores utilizando verificación CRC y retransmisión de paquetes. El anfitrión 100 y el esclavo 110 intercambian valores de modo que cada uno computa una clave SK de sesión a partir de una clave secreta conocida por tanto el anfitrión 100 como el esclavo 110 pero no la intercambian a través del bus 120. La clave SK de sesión se usa después para inicializar tanto el cifrado de flujo como la función de dirección de bus. Con respecto a lo anterior, el anfitrión 100 y el esclavo 110 cifran y descifran cada uno sus comunicaciones realizando la operación XOR de los datos transmitidos/recibidos con los bytes del cifrado de flujo. El anfitrión 100 cambia de manera periódica y/u ocasional las direcciones de esclavo a través del bus 120.
Las ventajas sobre los sistemas existentes incluyen la detección y corrección de errores, las comunicaciones cifradas, y el método de cambio de dirección seguro que estará siempre sincronizado entre el anfitrión 100 y el esclavo 110. La detección y corrección de errores aumenta la fiabilidad en ambientes ruidosos. El cifrado de datos evita que un atacante analice el tráfico de bus para aprender el significado de los comandos y los datos compartidos entre el anfitrión 100 y el esclavo 110. Cuando se implementa en un sistema en el que el anfitrión 100 es una impresora y el esclavo 110 está asociado con un cartucho de tóner o de tinta consumible, el método de cambio de direcciones anteriormente descrito permite que un esclavo 110 se mueva de impresora a impresora sin problemas mientras se mantiene una comunicación segura con la impresora conectada.
Aunque lo anterior describe realizaciones de ejemplo, son posibles muchas variaciones dentro del alcance de la presente descripción. Por ejemplo, como se discutió anteriormente se usa un cifrado de flujo para cifrar los datos debido a su simplicidad. De manera alternativa, un cifrado de bloques, tal como el Estándar de Cifrado Avanzado (AES), ofrecería una seguridad relativamente mayor pero con un alto coste computacional. En dicha realización alternativa, alguna o todas las claves SK de sesión determinadas se usarían para realizar el cifrado y descifrado de la información a transmitir y de la información recibida, respectivamente, de acuerdo con el cifrado de bloques concreto utilizado. El protocolo corrige los errores mediante la retransmisión de paquetes. Además, se podría usar un esquema de corrección de errores precoz en el que los bits de corrección de errores se incluyen en el paquete transmitido. Aún más, se podría usar un bus direccionado diferente, tal como el Bus en Serie Universal (USB), para el bus 120 en lugar de un bus que utiliza el protocolo I2C.
La descripción anterior de una o más realizaciones de ejemplo se ha presentado con propósitos de ilustración. No está destinado a ser exhaustivo o limitar la aplicación a las formas precisas descritas, y obviamente son posibles muchas modificaciones y variaciones a la luz de la enseñanza anterior. Se entiende que la invención se puede poner en práctica de maneras distintas a las específicamente establecidas en la presente memoria sin salir del alcance de la invención. Se pretende que el alcance de la aplicación sea definido por las reivindicaciones adjuntas.
Lo que se reivindica es:
Claims (13)
- 5101520253035404550REIVINDICACIONES1. Una circuitería (230) de dispositivo esclavo, incluida en un dispositivo (110) esclavo, comprendiendo la circuitería de dispositivo esclavo:un procesador (200) y una memoria (210) acoplada al mismo que tiene almacenadas dentro instrucciones de código de programa que, cuando son ejecutadas por el procesador (200), provocan al procesador (200) a:después de que la circuitería (230) del dispositivo esclavo se reinicie, determinar el valor de semilla (20) basado en un valor de semilla del dispositivo esclavo anterior al reinicio del dispositivo esclavo;recibir un número de anfitrión desde un anfitrión (100) que es sustancialmente aleatorio;generar una clave de sesión (50) basada en el valor de semilla determinado y el número de anfitrión, siendo la clave de sesión sustancialmente aleatoria; yrealizar las operaciones cifrado y descifrado (60) en base a la clave de sesión generada en los datos a transmitir y los datos recibidos por la circuitería (230) de esclavo, respectivamente, y determinar un valor de dirección (80) en base a la clave de sesión generada para comunicarse con el anfitrión (100),en donde sustancialmente aleatorio comprende ser uno de entre un número aleatorio real y un número pseudoaleatorio, y en donde una primera parte de la clave de sesión es usada por el procesador (200) que realiza las operaciones de cifrado y descifrado (60) en los datos a transmitir y a recibir, respectivamente, y una segunda parte de la clave de sesión se usa para generar el valor de dirección.
- 2. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde el procesador (200) calcula un valor del identificador de sesión (10) después de que la circuitería (230) del dispositivo esclavo se reinicie, estando basado el valor del identificador de sesión en un valor de identificador de sesión anterior a que la circuitería (230) del dispositivo esclavo se reiniciara, estando basada la clave de sesión en el valor del identificador de sesión calculado.
- 3. La circuitería (230) del dispositivo esclavo de la reivindicación 2, en donde el valor del identificador de sesión calculado es el valor del identificador de sesión anterior a que la circuitería (230) del dispositivo esclavo se reiniciara que es aumentado o disminuido.
- 4. La circuitería (230) del dispositivo esclavo de la reivindicación 2, en donde el procesador (200) determina un número sustancialmente aleatorio (30) basado sólo en el valor de semilla determinado, el valor del identificador de sesión calculado y el número de serie del dispositivo esclavo, y en donde la clave de sesión está basada en el número sustancialmente aleatorio.
- 5. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde el valor de semilla determinado se determina usando un algoritmo hash seguro.
- 6. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde el valor de semilla determinado es sustancialmente aleatorio.
- 7. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde la clave de sesión está basada en una clave de cifrado secreta del dispositivo esclavo.
- 8. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde las instrucciones que provocan que el procesador determine la clave de sesión (50) usan un código de autenticación de mensaje basado en hash (HMAC).
- 9. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde las operaciones de cifrado y descifrado forman parte de un cifrado de flujo para comunicarse con el anfitrión.
- 10. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde el valor de semilla determinado está basado en un valor de semilla del dispositivo esclavo anterior a que el dispositivo esclavo se reiniciara.
- 11. La circuitería (230) del dispositivo esclavo de la reivindicación 1, en donde un envase de tóner incluye la circuitería de dispositivo esclavo.
- 12. La circuitería (230) de dispositivo esclavo de la reivindicación 1, en donde el procesador (200) funciona como un generador de números pseudoaleatorios que se inicializa con una segunda parte de la clave de sesión, y una parte de la salida del generador de números pseudoaleatorios forma una parte del valor de dirección del dispositivo (110) esclavo.
- 13. La circuitería (230) del dispositivo esclavo de la reivindicación 2, en donde el procesador determina un número sustancialmente aleatorio basado en un algoritmo SHA-1 del valor de semilla determinado, del valor del identificador de sesión calculado y del número de serie del dispositivo (110) esclavo. identifica un número aleatorio de esclavo (30) a partir de una parte del número sustancialmente aleatorio, y determina la clave de sesión (50) basado en uncódigo de autenticación de mensajes basado en hash (HMAC) del número de anfitrión recibido del anfitrión (100), el número aleatorio de esclavo, una clave de cifrado secreta del dispositivo (110) esclavo y el valor del identificador de semilla, siendo la clave de sesión un número sustancialmente aleatorio.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161532527P | 2011-09-08 | 2011-09-08 | |
US201161532527P | 2011-09-08 | ||
US201113308363 | 2011-11-30 | ||
US13/308,363 US9231926B2 (en) | 2011-09-08 | 2011-11-30 | System and method for secured host-slave communication |
PCT/US2012/054108 WO2013036733A1 (en) | 2011-09-08 | 2012-09-07 | System and method for secured host-slave communication |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2691258T3 true ES2691258T3 (es) | 2018-11-26 |
Family
ID=47830817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12830795.6T Active ES2691258T3 (es) | 2011-09-08 | 2012-09-07 | Sistema y método para una comunicación anfitrión-esclavo segura |
Country Status (10)
Country | Link |
---|---|
US (2) | US9231926B2 (es) |
EP (1) | EP2754062B1 (es) |
CA (1) | CA2851587C (es) |
DK (1) | DK2754062T3 (es) |
ES (1) | ES2691258T3 (es) |
HK (1) | HK1200041A1 (es) |
PL (1) | PL2754062T3 (es) |
PT (1) | PT2754062T (es) |
TR (1) | TR201815427T4 (es) |
WO (1) | WO2013036733A1 (es) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231926B2 (en) * | 2011-09-08 | 2016-01-05 | Lexmark International, Inc. | System and method for secured host-slave communication |
DE102012206272A1 (de) * | 2012-04-17 | 2013-10-17 | Beckhoff Automation Gmbh | Feldbus-Datenübertragung |
US10771448B2 (en) | 2012-08-10 | 2020-09-08 | Cryptography Research, Inc. | Secure feature and key management in integrated circuits |
DE102013108713B8 (de) * | 2013-08-12 | 2016-10-13 | WebID Solutions GmbH | Verfahren zum Verifizieren der ldentität eines Nutzers |
US10305900B2 (en) * | 2013-10-15 | 2019-05-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Establishing a secure connection between a master device and a slave device |
DE112014006185B4 (de) | 2014-01-16 | 2023-08-24 | Hewlett-Packard Development Company, L.P. | Vorrichtung zum Erstellen von dreidimensionalen Gegenständen |
JP6570542B2 (ja) | 2014-01-16 | 2019-09-04 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | 三次元物体の生成 |
EP3626434A1 (en) | 2014-01-16 | 2020-03-25 | Hewlett-Packard Development Company, L.P. | Generating a three dimensional object |
US9923719B2 (en) | 2014-12-09 | 2018-03-20 | Cryptography Research, Inc. | Location aware cryptography |
WO2016108189A1 (en) * | 2014-12-29 | 2016-07-07 | Visa International Service Association | Authorizing access to an application library |
CN107852275B (zh) * | 2015-07-31 | 2020-10-23 | 索尼公司 | 数据传输装置和数据传输方法、接收装置和接收方法 |
CN106452770B (zh) * | 2015-08-12 | 2020-10-13 | 深圳市腾讯计算机系统有限公司 | 一种数据加密方法、解密方法、装置和系统 |
US10333699B1 (en) * | 2015-09-30 | 2019-06-25 | Cryptography Research, Inc. | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation |
US10218698B2 (en) * | 2015-10-29 | 2019-02-26 | Verizon Patent And Licensing Inc. | Using a mobile device number (MDN) service in multifactor authentication |
US9465769B1 (en) * | 2015-12-29 | 2016-10-11 | Altera Corporation | Methods and apparatus for high-speed serial interface link assist |
KR101929137B1 (ko) * | 2016-10-27 | 2019-03-12 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 교체가능 물품 인증 |
JP6895273B2 (ja) * | 2017-03-02 | 2021-06-30 | 任天堂株式会社 | 情報処理装置、情報処理プログラム、無線通信システム、および、通信方法 |
US10984136B2 (en) * | 2017-04-21 | 2021-04-20 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
US20190319915A1 (en) * | 2018-04-16 | 2019-10-17 | Lexmark International, Inc. | System and Methods for Changing Addresses of One or More Components |
WO2019204292A1 (en) * | 2018-04-16 | 2019-10-24 | Lexmark International, Inc. | System and methods for changing addresses of one or more components |
KR20210087982A (ko) | 2018-12-03 | 2021-07-13 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 로직 회로 |
EP3687820B1 (en) * | 2018-12-03 | 2022-03-23 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
JP6995252B1 (ja) * | 2018-12-03 | 2022-02-09 | ヒューレット-パッカード デベロップメント カンパニー エル.ピー. | 論理回路 |
US11338586B2 (en) | 2018-12-03 | 2022-05-24 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
WO2021080607A1 (en) * | 2019-10-25 | 2021-04-29 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
AU2018452006B2 (en) | 2018-12-03 | 2022-12-01 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
BR112021010044A2 (pt) * | 2018-12-03 | 2021-08-17 | Hewlett-Packard Development Company, L.P. | circuitos lógicos |
ES2886253T3 (es) | 2018-12-03 | 2021-12-16 | Hewlett Packard Development Co | Circuitos lógicos |
WO2020117397A1 (en) * | 2018-12-03 | 2020-06-11 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
AU2019394682A1 (en) | 2018-12-03 | 2021-06-24 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
KR20210087987A (ko) | 2018-12-03 | 2021-07-13 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 로직 회로 패키지 |
US10894423B2 (en) | 2018-12-03 | 2021-01-19 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
US11364716B2 (en) | 2018-12-03 | 2022-06-21 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
US11479048B2 (en) | 2019-10-25 | 2022-10-25 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
EP3833546A1 (en) * | 2019-10-25 | 2021-06-16 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
EP3829883B1 (en) * | 2019-10-25 | 2023-03-08 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
US11271735B1 (en) * | 2020-08-26 | 2022-03-08 | Micron Technology, Inc. | Apparatuses, systems, and methods for updating hash keys in a memory |
US11537298B2 (en) | 2020-12-01 | 2022-12-27 | Micron Technology, Inc. | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher |
US11899829B2 (en) | 2020-12-01 | 2024-02-13 | Micron Technology, Inc. | Memory systems and devices including examples of generating access codes for memory regions using authentication logic |
CN113099431B (zh) * | 2021-03-24 | 2022-05-06 | 瀚云科技有限公司 | 基于LoRa信道的通信方法、装置和LoRa主机 |
US11989737B2 (en) * | 2021-07-09 | 2024-05-21 | Lexmark International, Inc. | Methods and systems for determining the authenticity of a component |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4308568A1 (de) * | 1993-03-18 | 1994-09-22 | Telefunken Microelectron | Verfahren zum Betreiben einer Datenverarbeitungsanlage |
US5386369A (en) * | 1993-07-12 | 1995-01-31 | Globetrotter Software Inc. | License metering system for software applications |
US6487661B2 (en) * | 1995-04-21 | 2002-11-26 | Certicom Corp. | Key agreement and transport protocol |
AUPO850597A0 (en) * | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
US6879689B2 (en) * | 2000-05-09 | 2005-04-12 | Verizon Laboratories Inc. | Stream-cipher method and apparatus |
DE60129742T2 (de) * | 2000-12-19 | 2008-04-30 | Azoteq (Proprietary) Ltd. | Verfahren und vorrichtung zum datentransfer |
US7203837B2 (en) * | 2001-04-12 | 2007-04-10 | Microsoft Corporation | Methods and systems for unilateral authentication of messages |
US7007050B2 (en) * | 2001-05-17 | 2006-02-28 | Nokia Corporation | Method and apparatus for improved pseudo-random number generation |
US7131004B1 (en) * | 2001-08-31 | 2006-10-31 | Silicon Image, Inc. | Method and apparatus for encrypting data transmitted over a serial link |
US20030063750A1 (en) | 2001-09-26 | 2003-04-03 | Alexander Medvinsky | Unique on-line provisioning of user terminals allowing user authentication |
US20030093695A1 (en) | 2001-11-13 | 2003-05-15 | Santanu Dutta | Secure handling of stored-value data objects |
US7243366B2 (en) | 2001-11-15 | 2007-07-10 | General Instrument Corporation | Key management protocol and authentication system for secure internet protocol rights management architecture |
ATE504446T1 (de) | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
US20050096124A1 (en) * | 2003-01-21 | 2005-05-05 | Asip Holdings, Inc. | Parimutuel wagering system with opaque transactions |
US7610487B2 (en) * | 2003-03-27 | 2009-10-27 | Microsoft Corporation | Human input security codes |
US7987249B2 (en) * | 2003-04-09 | 2011-07-26 | Intel Corporation | Soft system failure recovery for management consoles supporting ASF RMCP |
US7401215B2 (en) * | 2003-09-29 | 2008-07-15 | Sun Microsystems, Inc. | Method and apparatus for facilitating cryptographic layering enforcement |
US7940932B2 (en) * | 2004-04-08 | 2011-05-10 | Texas Instruments Incorporated | Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor |
US20070083491A1 (en) * | 2004-05-27 | 2007-04-12 | Silverbrook Research Pty Ltd | Storage of key in non-volatile memory |
US20050283148A1 (en) * | 2004-06-17 | 2005-12-22 | Janssen William M | Ablation apparatus and system to limit nerve conduction |
TWI268423B (en) * | 2004-12-03 | 2006-12-11 | Hon Hai Prec Ind Co Ltd | System and method for configuring I2C address dynamically |
US7562224B2 (en) * | 2005-04-04 | 2009-07-14 | Cisco Technology, Inc. | System and method for multi-session establishment for a single device |
US7526208B2 (en) * | 2005-04-26 | 2009-04-28 | Finisar Corporation | Changing transceiver module device addresses using a single host interface |
JP4502393B2 (ja) * | 2005-06-13 | 2010-07-14 | キヤノン株式会社 | 通信パラメータの共有方法及び通信装置 |
US7853898B2 (en) * | 2005-11-17 | 2010-12-14 | International Business Machines Corporation | Method and apparatus for managing image display in a digital image display apparatus |
US7444453B2 (en) * | 2006-01-03 | 2008-10-28 | International Business Machines Corporation | Address translation device |
US20070162591A1 (en) * | 2006-01-09 | 2007-07-12 | Utstarcom, Inc. | Network equipment restart indication |
US20120182832A1 (en) * | 2006-09-29 | 2012-07-19 | INOVA, Ltd. | Seismic data acquisition systems and method utilizing a wireline repeater unit |
US20080184341A1 (en) * | 2007-01-29 | 2008-07-31 | David Jaroslav Sebesta | Master-Slave Protocol for Security Devices |
US20080186187A1 (en) * | 2007-02-06 | 2008-08-07 | Christopher Alan Adkins | Ink tank having integrated rfid tag |
CN101315617A (zh) * | 2007-06-01 | 2008-12-03 | 鸿富锦精密工业(深圳)有限公司 | 总线电路装置 |
US7636806B2 (en) * | 2007-09-07 | 2009-12-22 | Infineon Technologies Ag | Electronic system and method for sending or receiving a signal |
US9003201B2 (en) * | 2008-02-26 | 2015-04-07 | David Pohm | Hardware protection for encrypted strings and protection of security parameters |
JP5068884B2 (ja) * | 2008-05-21 | 2012-11-07 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 位置検出機能を有するマルチドロップシリアルバス及び方法 |
US20100287382A1 (en) * | 2009-05-07 | 2010-11-11 | John Charles Gyorffy | Two-factor graphical password for text password and encryption key generation |
US8225021B2 (en) * | 2009-05-28 | 2012-07-17 | Lexmark International, Inc. | Dynamic address change for slave devices on a shared bus |
US8429404B2 (en) * | 2009-09-30 | 2013-04-23 | Intel Corporation | Method and system for secure communications on a managed network |
US20110119419A1 (en) * | 2009-11-13 | 2011-05-19 | Donald William Chapelle | Apparatus and Method for Polling Addresses of One or More Slave Devices in a Communications System |
US9225526B2 (en) * | 2009-11-30 | 2015-12-29 | Red Hat, Inc. | Multifactor username based authentication |
US8769288B2 (en) * | 2011-04-22 | 2014-07-01 | Alcatel Lucent | Discovery of security associations |
US9231926B2 (en) * | 2011-09-08 | 2016-01-05 | Lexmark International, Inc. | System and method for secured host-slave communication |
-
2011
- 2011-11-30 US US13/308,363 patent/US9231926B2/en active Active
-
2012
- 2012-09-07 DK DK12830795.6T patent/DK2754062T3/en active
- 2012-09-07 PT PT12830795T patent/PT2754062T/pt unknown
- 2012-09-07 EP EP12830795.6A patent/EP2754062B1/en active Active
- 2012-09-07 TR TR2018/15427T patent/TR201815427T4/tr unknown
- 2012-09-07 CA CA2851587A patent/CA2851587C/en active Active
- 2012-09-07 PL PL12830795T patent/PL2754062T3/pl unknown
- 2012-09-07 WO PCT/US2012/054108 patent/WO2013036733A1/en unknown
- 2012-09-07 ES ES12830795.6T patent/ES2691258T3/es active Active
-
2015
- 2015-01-15 HK HK15100452.4A patent/HK1200041A1/xx unknown
- 2015-12-09 US US14/964,110 patent/US9535852B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TR201815427T4 (tr) | 2018-11-21 |
US9535852B2 (en) | 2017-01-03 |
US20160098359A1 (en) | 2016-04-07 |
WO2013036733A1 (en) | 2013-03-14 |
DK2754062T3 (en) | 2018-09-24 |
PT2754062T (pt) | 2018-10-16 |
CA2851587C (en) | 2017-06-27 |
US9231926B2 (en) | 2016-01-05 |
CA2851587A1 (en) | 2013-03-14 |
PL2754062T3 (pl) | 2019-01-31 |
EP2754062A1 (en) | 2014-07-16 |
US20130067016A1 (en) | 2013-03-14 |
HK1200041A1 (en) | 2015-07-31 |
EP2754062A4 (en) | 2015-05-27 |
EP2754062B1 (en) | 2018-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2691258T3 (es) | Sistema y método para una comunicación anfitrión-esclavo segura | |
US9118467B2 (en) | Generating keys using secure hardware | |
RU2010136824A (ru) | Блок, использующий операционную систему и устройство формирования изображений, использующее ее | |
CN104902138B (zh) | 加密/解密系统及其控制方法 | |
JP2016152623A (ja) | 操作から保護する方法 | |
CN112910650B (zh) | 经认证加密和解密的方法和系统 | |
JP2014143568A (ja) | 認証システム及び認証子変換器 | |
KR20190126242A (ko) | 데이터 전송 시스템 및 전송 방법 | |
Pfeiffer | Implementing scalable can security with cancrypt | |
AU2019255227B2 (en) | System and methods for changing addresses of one or more components | |
US20200004476A1 (en) | System and Methods for Changing Addresses of One or More Components | |
WO2022075081A1 (ja) | 情報処理装置、移動体装置、および通信システム | |
US20160321458A1 (en) | Systems and methods for secured data transfer via inter-chip hopping buses | |
US20080045180A1 (en) | Data transmitting method and apparatus applying wireless protected access to a wireless distribution system | |
KR20200043855A (ko) | Dim을 이용한 드론 인증 방법 및 장치 | |
US11804951B2 (en) | Advanced sensor security protocol | |
US20080212772A1 (en) | Image forming apparatus | |
US20220368543A1 (en) | Technique for protecting secret information of authentication-target apparatus | |
JP6436794B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
US20210099417A1 (en) | System and Methods for Changing Addresses of One or More Components | |
CN117426070A (zh) | 在网络设备之间安全且可靠地传送消息 | |
JP2021141460A (ja) | 被認証装置、認証システムおよび認証方法 | |
CN116760560A (zh) | 单位时间消息验证码 | |
CN112329074A (zh) | 片上系统 | |
JP2010135950A (ja) | 暗号処理装置および暗号処理方法 |