ES2738415T3 - Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos - Google Patents

Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos Download PDF

Info

Publication number
ES2738415T3
ES2738415T3 ES16751297T ES16751297T ES2738415T3 ES 2738415 T3 ES2738415 T3 ES 2738415T3 ES 16751297 T ES16751297 T ES 16751297T ES 16751297 T ES16751297 T ES 16751297T ES 2738415 T3 ES2738415 T3 ES 2738415T3
Authority
ES
Spain
Prior art keywords
configuration data
module
unique
machine
msupi
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
ES16751297T
Other languages
English (en)
Inventor
Erwan Fradet
Philippe Chatelain
Patrick Chanez
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.)
Inexto SA
Original Assignee
Inexto SA
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 Inexto SA filed Critical Inexto SA
Application granted granted Critical
Publication of ES2738415T3 publication Critical patent/ES2738415T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/3234Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3247Cryptographic 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 involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Procedimiento para ofuscar datos almacenados en una red, comprendiendo el procedimiento: definir y almacenar información descriptiva del estado de una máquina informática como número de máquina, MNUM, incluyendo la información descriptiva del estado el número de bases que comprenden la información descriptiva del estado; generar un identificador único y seguro de producto de máquina, MSUPI, como transformación matemática reversible de un identificador único de producto de máquina, MUPI, basándose en información descriptiva del estado de una máquina informática, comprendiendo la etapa de cálculo del MSUPI: definir el número de etapas de manera que sea imax, para cada etapa generar un primer número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,1, y un segundo número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,2, comprendiendo dicha acción de generar: calcular un primer número aleatorio CGOKi,1, coprimo con un número basado en la información descriptiva del estado de la máquina informática, MNUM; calcular un segundo número aleatorio CGOKi,2, que presenta un tamaño de bits igual o menor que MNUM; definir m0,2 = MUPI; calcular para cada elemento i, desde i = 1 a imax - 1: mi,1 = (mi-1,2 x CGOKi,1) mod (MNUM); mi,2 = (mi,1 mod CGOKi,2); si (mi,2 > MNUM) → mi,2 = mi,1; definir MSUPI = mimax,2; almacenar el identificador único y seguro de producto de máquina, MSUPI, en unos medios electrónicos de almacenamiento de datos.

Description

DESCRIPCIÓN
Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos.
Esta solicitud reivindica el beneficio de la solicitud provisional US n.° de serie 62/204,753, presentada el 13 de agosto de 2015.
La presente invención se refiere, en general, a técnicas para cifrar caracteres alfanuméricos en relación con el marcaje de productos con códigos de identificación seguros y la verificación de esos códigos, y también a sistemas y procedimientos para gestionar la distribución de instrucciones seguras de configuración de producción y generar identificadores de productos seguros.
Los procedimientos existentes para la identificación de productos conllevan, típicamente, la aplicación de un identificador único a un producto en el momento de su embalaje. Estos sistemas no se adaptan a escala eficientemente en organizaciones que presentan múltiples instalaciones de producción, o en cadenas de producción con capacidad de embalar a una velocidad muy alta. Adicionalmente, los procedimientos identificadores existentes no son suficientemente seguros ya que no están asociados a instrucciones seguras de configuración de producción y no llevan información adicional de producto beneficiosa para las autoridades reguladoras y los vendedores.
Existe una necesidad de un procedimiento y un aparato mejorados para controlar y autorizar de manera segura la producción de artículos fabricados, así como para marcar artículos fabricados con identificadores de producto seguros, en particular uno que se pueda usar para la verificación de impuestos, la verificación de volúmenes de producción y la autenticación de artículos fabricados.
Los sistemas existentes cifran caracteres alfanuméricos usados como identificadores de producto de carácter en carácter. Esto limita dichos sistemas, por ejemplo en relación con los números, en general de 0 a 9 o, si se usan únicamente letras, limita los sistemas al número de letras en el alfabeto usado, multiplicado por dos (incluyendo letras mayúsculas y letras minúsculas). Esta invención hace frente a estos inconvenientes. Se divulgan sistemas existentes en los documentos US-2013/02979, 29, US-2013/0099901 y en el documento de GIUSEPPE ATENIESE ET AL., “Untraceable RFID tags via insubvertible encryption”, PROCEEDINGS OF THE 12TH. ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY. (CCS'05). ALEXANDRIA, VA, 7 a 11 de NOVIEMBRE de 2005; NUEVA YORK, NY: ACM, US, (20051107), doi:10.1145/1102120.1102134, ISBN 978-1­ 59593-226-6, páginas 92 a 101,
Las siguientes formas de realización de la invención son a título de ejemplo y no están destinadas a limitar el alcance de la invención, el cual queda definido por las reivindicaciones.
Aunque se han descrito una o más formas de realización de la presente invención, en el alcance de la misma se incluyen diversas modificaciones, adiciones, permutaciones y equivalentes de dichas formas de realización. En la siguiente descripción de formas de realización, se hace referencia a los dibujos adjuntos que forman parte de la misma, los cuales muestran, a título de ilustración, formas de realización específicas de la materia en cuestión reivindicada. Debe entenderse que pueden usarse otras formas de realización, y que pueden realizarse cambios o modificaciones, tales como cambios estructurales. Dichas formas de realización, cambios o modificaciones no son, necesariamente, desviaciones con respecto al alcance en relación con la materia en cuestión pretendida y reivindicada. Aunque las etapas siguientes se pueden presentar en un cierto orden, en algunos casos la ordenación se puede cambiar de manera que ciertas entradas se proporcionen en momentos diferentes o en un orden diferente sin cambiar la función de los sistemas y los procedimientos descritos. No es necesario que los diversos cálculos que se describen a continuación, tales como aquellos incluidos en los procedimientos de inicialización, generación y autenticación de código, se lleven a cabo en el orden divulgado, y podrían implementarse fácilmente otras formas de realización usando ordenaciones alternativas de los cálculos. Además de reordenarlos, los cálculos también se podrían descomponer en subcálculos con los mismos resultados.
A continuación se describirán formas de realización de la invención, a título de ejemplo, en referencia a los dibujos adjuntos, en los cuales:
la figura 1 ilustra un procedimiento de ejemplo para calcular un identificador de máquina.
La figura 2 ilustra un procedimiento de ejemplo para ofuscar datos.
La figura 3 ilustra un ejemplo de procedimiento para la inicialización de código.
La figura 4 ilustra un ejemplo de procedimiento para la generación de código.
La figura 5 ilustra un ejemplo de procedimiento para la autorización de código.
De acuerdo con una forma de realización de la invención para un procedimiento destinado a ofuscar datos almacenados en una red, el procedimiento comprende: definir y almacenar información descriptiva del estado de una máquina informática como número de máquina (MNUM), incluyendo la información descriptiva del estado el número de bases que comprenden la información descriptiva del estado; generar un identificador único y seguro de producto de máquina (MSUPI), como transformación matemática reversible de un identificador único de producto de máquina (MUPI), basándose en información descriptiva del estado de una máquina informática, comprendiendo la etapa de cálculo del MSUPI: definir el número de etapas de manera que sea imax, para cada etapa generar un primer número aleatorio Clave de Ofuscación para Generación de Código (CGOK^) y un segundo número aleatorio Clave de Ofuscación para Generación de Código (CGOK,2), comprendiendo dicha acción de generar: calcular un primer número aleatorio (CGOKi,1) coprimo con un número basado en la información descriptiva del estado de la máquina informática (MNUM); calcular un segundo número aleatorio (CGOKi,2) que presenta un tamaño de bits igual o menor que (MNUM); definir mo,2 = MUPI; calcular para cada elemento i, desde i = 1 a imax - 1: m,1 = (m-1,2 x CGOKn) mod (MNUM); m,2 = (m,1 mod CGOK,2); si (m,2 > MNUM) ^ m,2 =m,1 ; definir MSUPI = mimax,2; y almacenar el identificador único y seguro de producto de máquina (MSUPI) en unos medios electrónicos de almacenamiento de datos. La forma de realización antes descrita, así como las formas de realización alternativas adicionales que se describen en la presente memoria, se pueden materializar en una invención implementada por ordenador, un sistema de ordenador, o un soporte de datos informatizado.
Según una forma de realización alternativa o adicional, la información descriptiva del estado de la máquina informática comprende una combinación de información de tiempo y número de producto. De acuerdo con una forma de realización alternativa o adicional, la información de tiempo incluye año juliano, día juliano, hora de producción y minuto de producción. De acuerdo con una forma de realización alternativa o adicional, la información descriptiva del estado incluye el valor de un contador incremental reinicializado sobre una base periódica. De acuerdo con una forma de realización alternativa o adicional, el número basado en la información descriptiva del estado de la máquina informática se calcula como 10 x 366 x 24 x 60 x Identificador de Tiempo. De acuerdo con una forma de realización alternativa o adicional, Identificador de Tiempo se define como el entero 2210. De acuerdo con una forma de realización alternativa o adicional, se obtiene un Identificador Único y Seguro de Producto (SUPI), un código alfanumérico de 12 caracteres, de tal manera que SUPI = (p x m) mod (MNUM x mRuido x RunLim).
Según una forma de realización alternativa o adicional para generar un código con el fin de identificar, de manera segura, productos producidos en una instalación de producción, el procedimiento comprende: recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización; en el módulo de autorización: determinar si la tirada de producción está autorizada; generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de productos autorizados, y un testigo (token) de seguridad; transmitir los datos de configuración validados a un módulo de firma; en el módulo de firma, firmar los datos de configuración validados; en un módulo de identificación, recibir una solicitud de un identificador de producto y generar un identificador de producto como respuesta a la solicitud, llevándose a cabo la generación del identificador de producto: definiendo y almacenando información descriptiva del estado de una máquina informática como número de máquina (MNUM), incluyendo la información descriptiva del estado el número de bases que comprenden la información descriptiva del estado; generando un identificador único y seguro de producto de máquina (MSUPI), como una transformación matemática reversible de un identificador único de producto y máquina (MUPI), sobre la base de información descriptiva del estado de una máquina informática, comprendiendo la etapa de cálculo de MSUPI: definir el número de etapas de manera que sea imax, para cada etapa generar un primer número aleatorio Clave de Ofuscación para Generación de Código (CGOKi,1) y un segundo número aleatorio Clave de Ofuscación para Generación de Código (CGOK,2), comprendiendo dicha acción de generar: calcular un primer número aleatorio (CGOKi,1) coprimo con un número basado en la información descriptiva del estado de la máquina informática (MNUM); calcular un segundo número aleatorio (CGOKi,2) que presenta un tamaño de bits igual o menor que (MNUM); definir mo,2 = MUPI; calcular para cada elemento i, desde i = 1 a imax - 1: m , 1 = (m-1,2 x CGOKn) mod (MNUM); m ,2 = (m,1 mod CGOK,2); si (m ,2 > MNUM) ^ m,2 =m,1; definir MSUPI = m¡max,2; almacenar el identificador único y seguro de producto de máquina (MSUPI) en unos medios electrónicos de almacenamiento de datos como identificador de producto; transmitir el identificador de producto desde el módulo de identificación hasta un módulo de firma; firmar digitalmente el identificador de producto en el módulo de firma; y transmitir el identificador de producto firmado digitalmente a un módulo de impresora.
De acuerdo con una forma de realización alternativa o adicional, el procedimiento comprende, además: recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización; en un módulo de autorización: determinar si la tirada de producción está autorizada; generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de productos autorizados, y un testigo de seguridad; transmitir los datos de configuración validados a un módulo de firma; y en el módulo de firma, firmar los datos de configuración validados.
Según una forma de realización alternativa o adicional, la solicitud es de un intervalo de identificadores. De acuerdo con una forma de realización alternativa o adicional, el procedimiento comprende, además, determinar si los datos de configuración para la tirada de producción están autorizados; si la tirada de producción está autorizada: generar un testigo de seguridad y asociar el testigo a los datos de configuración; y firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración. Según una forma de realización alternativa o adicional, el identificador único de producto y máquina (MUPI) se transforma sin rellenar el identificador único de producto y máquina (MUPI), de tal manera que la longitud en bits del identificador único de producto y máquina (MUPI) es igual a la longitud en bits del identificador único y seguro de producto de máquina (MSUPI).
En una forma de realización alternativa o adicional, el procedimiento para la verificación de un identificador único de producto y máquina seguro comprende: recibir, por parte de un módulo de verificación, para su verificación, un MSUPI; asignar MSUPI como mo,2; recuperar, por parte del módulo de verificación, un primer número aleatorio CGOK1 y un segundo número aleatorio, CGOK2 y el imax asociado a los números aleatorios recuperados y el MSUPI recibido; calcular para cada elemento i, desde i = 1 a imax - 1: m,1 = (m-1,2 mod CGOK2); si (mi,2 > MNUM) ^ m,1 = mi-1,2; m ,2 = (m,1 x CGOK-1, 1) mod (MNUM); mcg = mimax,2; y verificar MUPI = mcg/mRuido y valor de ruido = mcg mod mRuido, basándose MUPI en información descriptiva del estado de una máquina informática. Según una forma de realización alternativa o adicional, el identificador único y seguro de producto de máquina (MSUPI) se transforma sin haber rellenado el identificador único de producto y máquina (MUPI), de tal manera que la longitud en bits del identificador único de producto y máquina (MUPI) es igual a la longitud en bits del identificador único y seguro de producto de máquina (MSUPI). Según una forma de realización alternativa o adicional, las autorizaciones que se reciben de un módulo de autorización se pueden transmitir a un módulo de verificación, de manera que posteriormente se pueden procesar solicitudes de verificación con respecto a dichas autorizaciones, y pudiendo incluir datos transmitidos al módulo de verificación el identificador único y seguro de producto de máquina (MSUPI).
Los procedimientos descritos se pueden usar de manera adicional o alternativamente al cifrado, y se pueden usar como procedimiento para ofuscar números usando una base definida. El procedimiento se puede usar para cualquier base definida finita. Los procedimientos se pueden usar sobre una base numérica predefinida, tal como 0 a 9 cuando se usen números, o cero a F para hexadecimal. Este procedimiento trabaja sobre una base definida que no se limita al número de caracteres usados en el intervalo normal de caracteres correspondiente a esa base.
Para este procedimiento, se define un grupo a partir del cual se seleccionarán caracteres alfanuméricos; a cada uno de estos grupos se le denomina base. Un ejemplo sería 0 ^ 52 (0 y 52 incluidos). Cada uno de estos números sería un “carácter” individual que sería cifrado. Alternativamente, se podría definir una base de 0 ^ 932. Alternativas permitirían una combinación de letras y números. Como ejemplos no limitativos, esto puede incluir los correspondientes del alfabeto inglés, el alfabeto cirílico, o cualquier otro alfabeto además de números. El sistema permite una definición de la base usando cualquier conjunto finito o combinación de conjuntos como bases para que cada uno de ellos se cuente como un “carácter” individual cuando se ofusca el número. Puede usarse cualquier conjunto de caracteres alfanuméricos siempre que se asigne un valor numérico para cada carácter. Esto se puede usar para combinar, por ejemplo, conjuntos de números hexadecimales y un alfabeto. A cada carácter se le asigna un valor numérico, con un valor mínimo y un valor máximo, y los mismos a continuación se combinan. Por ejemplo, si se combinan un número hexadecimal y el alfabeto finlandés el cual tiene 29 letras, se pueden asignar los valores 0 a 15 para los números hexadecimales, de tal manera que 15 se corresponde con 0, 14 se corresponde con 1, hasta 1 que se corresponde con B y 0 que se corresponde con A. Con el alfabeto finlandés, de manera similar los números correspondientes pueden ser 1 con A a 29 con A (suponiendo que se usan solamente letras mayúsculas), o se puede asignar 1 con L y contar hasta donde 18 se corresponde con A, 19 se corresponde con A y 29 se asigna a K.
No es necesario que la asignación sea lineal, siempre que se almacene qué carácter o número se asigna a qué valor numérico. Esto además se puede realizar dinámicamente, también si se desea una ofuscación adicional, siempre que las asignaciones se graben para un posterior descifrado. Con el ejemplo del uso de un hexadecimal y un alfabeto de 29 caracteres, el intervalo podría ser MAX = Hex(max) * Alfabeto(max) Alfabeto(max) mientras que el mínimo MIN = Hex(min) * Alfabeto(min) Alfabeto(min). En ambos ejemplos mencionados, hay dos bases. Este ejemplo proporciona una base de intervalo de [1, 464]. Esto es debido a que los números del Alfabeto discurren desde 1 a 29, por contraposición a 0 a 28 correspondientes a los 29 caracteres. Alternativamente, los mismos conjuntos se pueden combinar como MAX = Alfabeto(max) * Hex(max) Hex(max) y MIN = Alfabeto(min) * Hex(min) Hex(min), y proporciona una base de intervalo de [0, 450]. Por lo tanto, usando las mismas bases componentes, es posible crear diversos intervalos para ofuscar mejor los números que se usarán en el proceso.
En otro ejemplo en el que debe crearse la base de intervalo, la base de intervalo puede ser descriptiva del estado de una máquina informática, tal como una combinación de identificadores de tiempo y numéricos. En este ejemplo, la base de intervalo se puede crear usando múltiples bases. En este ejemplo, la misma está compuesta por cinco bases diferentes y sería una combinación de año juliano truncado (JY) [0-10], combinado con fecha juliana (JD) [0-366], hora del día (HY) [0-24], minuto de la hora (Mins), [0-60] y un Identificador de Tiempo (TI) [0­ 2210] y un contador incremental adicional reinicializado cada minuto. El número de bases que se usan para crear la base de intervalo se define como imax. En la figura 1 se ilustra un ejemplo de esta forma de realización.
El intervalo se determina convirtiendo los caracteres alfanuméricos en un único intervalo. Por ejemplo, en este caso, los años se convierten en días, a continuación los días totales en horas, las horas totales en minutos y, a continuación, en contadores incrementales. Una manera de lograr esto es usar los números máximos para cada uno con el fin de obtener el extremo superior del intervalo y los números mínimos de cada uno para determinar el extremo inferior del intervalo. Por ejemplo, valor máximo MAX = (((JY(max) * JD(max) JD(max)) * HR(max) HR(max)) * Mins(max) Mins(max)) * Tl(max) TI(max). El mínimo del intervalo es MIN = (((JY(min) * JD(min) JD(min)) * HR(min) HR(min)) * Mins(min) Mins(min)) * TI(min) TI(min). En este ejemplo el intervalo es [0,12815659610].
Usando los intervalos del ejemplo anterior, se puede definir un Identificador único de producto y máquina (MUPI). Definiéndolo para que se sitúe dentro del valor tal que MUPI = (((JY * JD(max) JD) * HR(max) HR) * Mins(max) Mins) * TI(max) TI. Para ofuscar mejor el número, puede añadirse un componente aleatorio. Este número aleatorio se puede generar de cualquier manera siempre que se conozca el intervalo del número aleatorio. Este número aleatorio puede ser una firma digital que se genera usando un conjunto de clave secreta y dinámica. Esto se puede realizar, por ejemplo, usando un código de autenticación de mensaje hash con clave. Por ejemplo, un MUPI combinado con clave dinámica, cuando se usa una función de extracción, produciría la clave secreta, y el MUPI combinado con la clave secreta usando una función hash se usaría para calcular el valor de Noise (Ruido). Esto permite definir un valor mcg = MUPI * mRuido Ruido. Este valor MUPI se cifrará usando la Clave de Ofuscación para Generación de Código (CGOK).
Pueden usarse dos valores de CGOK, el primero CGOK,1, es un número que es coprimo con el valor máximo del intervalo correspondiente a MUPI. MNUM = JY(max) * JD(max) * HR(max) * Mins(max) * TI(max), que es 10*366*24*60*2210 en este ejemplo. El segundo CGOK,1, CGOK,2, es un número en el intervalo [MIN, MNUM-1] con un tamaño en bits igual o menor que CGOK, 1. Para efectuar los cálculos, mo,2 se define de manera que sea igual a MUPI y se define MSUPI de manera que sea el elemento máximo de m,2, que es mimax,2. Si hay 8 bases que comprenden la base de intervalo, entonces el elemento MSUPI = m¡¡,2- A continuación, MSUPI se puede combinar con un ID de Generador de Código, CGID. Esto se efectúa desplazando el CGID según la dimensión de MSUPI, de tal manera que m = CGID x (MNUM x mRuido) MSUPI, donde mRuido es el valor posible máximo de Ruido. El código final, Identificador Único y Seguro de Producto (SUPI), se obtiene cifrando m con el uso de un código de ofuscación global, p, que puede ser igual para todos los generadores de código. SUPI se define como (p x m) mod (MNUM x mRuido x RunLim), y SUPI se convierte a un código alfanumérico de 12 caracteres. En la figura 2 se ilustra un ejemplo de esta forma de realización.
El procedimiento de ofuscación es reversible para la verificación del proceso y los productos. Esto se logra ejecutando el proceso de ofuscación a la inversa. Esto es posible debido a que CGOK es coprimo con MNUM, y se usa una función Indicatriz de Euler con respecto a MNUM. Esto permite el cálculo del MUPI y MNUM a partir de MSUPI. El descifrado de SUPI, por lo tanto, requiere las siguientes etapas, m = (p16x34ll_1 x SUPÍ)mod(MNUM x mNoise x RunLim). A partir de m, pueden extraerse el MSUPI y el CGID, MSUPI = m mod (Mn Um x mRuido) y CGID = m / (MNUM x mRuido). A partir de aquí, MSUPI se desofusca usando el inverso de CGOK. Puesto que se conoce CGID, el mismo se puede usar para recuperar, a partir de una base de datos, los CGOK apropiados. MUPI = mcg / mRuido, y el valor de ruido se puede comprobar también ya que ruido = mcg mod mRuido.
Implementación de ejemplo
En otro aspecto de la exposición, los procedimientos descritos en la presente memoria se pueden implementar en un entorno informático según se describe en la presente memoria usando instrucciones ejecutables. Un conjunto de ejemplo de instrucciones para generar un identificador seguro y ofuscado de producto es el siguiente:
//codeGcnID
int id = 122334;
int noisc = 345;
vargr = new ínt[ 12];
int noiseSize = 1;
for (int i = 0; i < 12; i++)
{
grfi] = (id % numberOfGroups);
noiseSize = noiseSize * Groupsfid % numberOfGroups],Length; id = id / numberOfGroups;
}
var usedNoise = noise % noiseSize;
StringBuildcr stb = ncw StringBuildcr(12);
for (int i = 0; i < 12; i++)
í
stb. Appcnd(Groups[gr[i]] [noise % Groups[gr[i]].Length]);
noise = noise / Groups[gr[i]].Length;
}
Consolé. WriteLinc("Codc = " stb.ToString());
string code = "GFL1BARARARA";
id = 0 ;
usedNoise = 0;
int carryOver = 0;
for (int i = 11; i >= 0; i--)
{
var ch = code[i];
for (int j = 0; j < numberOfGroups; j++)
{
var Índex = Groups[j].IndexOf(ch);
if (índex >= 0)
{
id = id * numberOfGroups j;
usedNoise = usedNoise * carryOver Índex;
carryOver = Groups[j].Lcngth;
}
}
}
Console.WriteLinc("ld = " id);
}
Los algoritmos de clave simétrica tales como 3DES, AES y otros actúan sobre bloques de datos de entrada. Para que ocurra esto, la longitud de los datos de entrada debe ser exactamente igual a la longitud de los bloques o un múltiplo entero de la longitud de los bloques para ese algoritmo. En el ejemplo del cifrado AES de 128 bits, la longitud de los bloques puede ser 128 bits o 16 bytes. Los datos de entrada que se deben cifrar podrían tener, por ejemplo, un tamaño de 20 bytes, 4 bytes más allá de la longitud de los bloques en este ejemplo. Con el fin de conseguir que la longitud de los datos de entrada sea un múltiplo de la longitud de los bloques, es necesario rellenar los datos de entrada. En este caso, el relleno se calcularía como: 20 bytes requieren (16 - (20-16)) = 12 bytes de relleno. De este modo, este relleno puede incrementar significativamente el tamaño del conjunto de datos cifrado, incrementando de manera similar la cantidad de almacenamiento físico de datos requerido para almacenar los datos cifrados. Tal como resulta evidente a partir de la implementación del ejemplo anterior, el procedimiento de ofuscación de la invención se puede configurar para ofuscar datos, tales como identificadores de producto, sin requerir un relleno de los datos de los identificadores de producto de entrada.
Integración con sistemas seguros de producción
Los sistemas y procedimientos descritos antes para ofuscar datos se pueden usar, de manera ventajosa, en combinación con sistemas para autenticar una producción de productos. En otro aspecto de la exposición, se proporciona un procedimiento para autenticar una producción de productos, incluyendo el procedimiento almacenar electrónicamente datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; determinar si los datos de configuración para la tirada de producción están autorizados; si la tirada de producción está autorizada: generar un testigo de seguridad y asociar el testigo a los datos de configuración; y firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración; recibir los datos de configuración firmados digitalmente y la firma digital en una máquina de producción; en la máquina de producción, verificar la firma digital asociada a los datos de configuración firmados digitalmente; calcular un conjunto de identificadores de productos seguros sobre la base de los datos de configuración firmados digitalmente; producir productos en una tirada de producción de acuerdo con los datos de configuración firmados digitalmente; e imprimir el conjunto de identificadores de productos seguros sobre los productos de acuerdo con los datos de configuración firmados digitalmente.
Tal como se usa en la presente memoria, una entidad puede referirse a: (i) una persona, tal como un consumidor de un producto; (ii) un grupo, tal como un grupo que tiene un interés común, tal como minoristas; (iii) un dispositivo informático; (iv) un nodo informático en un sistema en red; (v) una ubicación de almacenamiento, tal como una unidad de almacenamiento de memoria que almacena un documento; (vi) un punto virtual en una red, tal que represente una función comercial dentro de una empresa y similares. Adicionalmente, una entidad puede representar un punto en un flujo de trabajo, tal como para una autorización, la cual puede ser llevada a cabo por una persona responsable de ese aspecto del flujo de trabajo o un dispositivo informático que proporcione un procesado automatizado. El término entidad no pretende limitarse a ninguno de estos ejemplos y se puede ampliar a otras situaciones congruentes con los conceptos descritos en la presente memoria.
Módulos del sistema
A continuación se describen varios módulos. Cualquiera de los módulos puede estar ubicado de manera conjunta físicamente, o puede estar ubicado remotamente uno con respecto a otro. Adicionalmente, cualquiera de los módulos se podría combinar en términos lógicos o físicos en un único módulo sin desviarse con respecto al alcance de la invención.
Módulo de control
En referencia a la figura 3, el Módulo de Control (conocido también como “Orquestador”) (110) puede recibir una entrada de cualquiera de los otros módulos o de fuentes exteriores, y puede proporcionar instrucciones a los otros módulos del sistema basándose en programas preconfigurados y/o las entradas del operador en el mismo. También puede generar un resumen de panel de control del estado del sistema.
La entrada destinada al Módulo de Control puede incluir cualesquiera o la totalidad de los datos de configuración (105). Los datos de configuración suministrados pueden indicar cualesquiera o la totalidad de los parámetros incluyendo, aunque sin carácter limitativo, la máquina correspondiente a la producción, la línea de producción, la fábrica, el producto que se va a producir y el volumen de producto. Los datos de configuración pueden indicar qué artículos (por ejemplo, productos) se van a marcar con los identificadores seguros, y cómo pueden producirse esos artículos. Los datos de configuración pueden indicar un intervalo de productos, tales como identificadores de producto de inicio y finales. En algunas formas de realización, el intervalo puede ser un conjunto de identificadores de producto. Los datos de configuración pueden ser proporcionados por un operario del sistema o se pueden generar de manera dinámica o automática. Los datos de configuración pueden incluir, además, instrucciones ejecutables o un algoritmo interpretable. Los datos de configuración se pueden basar en entradas del operario o en la salida de un sistema de ejecución de fabricación, u otro sistema centralizado destinado a ordenar cómo y qué producir.
El Módulo de Control (110) puede transmitir los datos de configuración a cualquier módulo, incluyendo, aunque sin carácter limitativo, el Módulo de Autorización (130), el Módulo de Identificación (140) y el Módulo de Firma (145).
El Módulo de Control puede solicitar autorización del Módulo de Autorización para ejecutar una operación de producción. Este proceso conlleva transmitir una solicitud (que incluye parte o la totalidad de los datos de configuración) al Módulo de Autorización, y recibir datos de configuración firmados o cifrados. En algunas formas de realización, el Módulo de Autorización puede devolver los datos de configuración al Módulo de Control, incluyendo una firma digital aplicada a esos datos de configuración. El Módulo de Autorización determina si autorizar la solicitud del Módulo de Control basándose en los datos que recibe. Adicionalmente, la información devuelta por el Módulo de Autorización incluida en los Datos de configuración se puede usar para delimitar los códigos generados con la autorización proporcionada. Puesto que los datos son firmados por el Módulo de Autorización, se puede evitar que el sistema modifique los datos de configuración. Como ejemplo no limitativo, se puede controlar, permitir o denegar una modificación de una solicitud para producir una marca en lugar de otra. Las autorizaciones recibidas del Módulo de Autorización también se pueden transmitir al Módulo de Verificación de manera que, posteriormente, se pueden procesar solicitudes de verificación con respecto a esas autorizaciones. Los datos transmitidos al Módulo de Verificación pueden incluir un identificador seguro, así como cualesquiera de los datos de configuración. En algunos ejemplos, los datos de configuración enviados al Módulo de Autorización pueden incluir información de intervalos de productos.
Los datos de configuración firmados o validados pueden ser la parte o la totalidad del conjunto de parámetros de entrada del Módulo de Control, verificados y validados por el Módulo de Autorización, que permanece en vigor durante una producción. Un testigo de seguridad puede ser una salida del Módulo de Autorización y/o un parámetro de entrada del Módulo de Control. El testigo de seguridad puede ser una prueba de que el identificador de producto se corresponde con datos de configuración validados y, por lo tanto, con una producción autorizada. El testigo de seguridad puede ser una entrada para el Módulo de Firma con el fin de generar una firma para un identificador de producto individual, o la firma de un identificador de producto individual, o un identificador de producto en sí mismo, o un intervalo de productos o identificadores de producto. El testigo de seguridad puede ser un código exclusivo, un código aleatorio, o un código seudoaleatorio. El testigo de seguridad puede ser cualquier carácter numérico o alfabético, o combinación de caracteres numéricos y alfabéticos.
Módulo de autorización
El Módulo de Autorización funciona de manera que valida solicitudes de autorización para realizar una acción en el sistema de identificación. En algunas formas de realización, puede funcionar como un administrador de licencias.
El Módulo de Autorización puede recibir los datos de configuración. El Módulo de Autorización también puede recibir información de intervalo y/o algoritmo. En algunas formas de realización, el Módulo de Autorización puede recibir datos de configuración de entrada del Módulo de Control. El intervalo de salida puede identificar, opcionalmente, un intervalo de productos, máquinas, fábricas, intervalos o volúmenes de producto que están autorizados. La salida también puede incluir información de intervalo y/o puede incluir un algoritmo que comprende un conjunto de instrucciones ejecutables o interpretables que se usarán para generar el testigo de seguridad. El Módulo de Autorización puede estar centralizado a nivel de fábrica o puede estar descentralizado en cada línea de producción, o una combinación de ambas opciones.
El Módulo de Autorización puede almacenar y/o generar una o más claves de cifrado. En algunas formas de realización, la clave almacenada por el Módulo de Autorización puede ser una clave de cifrado privada pública de acuerdo con una infraestructura de clave pública (PKI). En algunas formas de realización, el Módulo de Autorización almacena la única copia de la clave privada. En otras formas de realización, el Módulo de Autorización se distribuye sobre varias instancias que reproducen las claves entre ellas. En el caso de la PKI, el Módulo de Autorización puede dar salida a datos de configuración firmados. En algunas formas de realización, el Módulo de Autorización puede cifrar los datos de configuración y/o firmar la salida de datos de configuración. En algunas formas de realización, el sistema está configurado de manera que solamente el Módulo de Autorización puede leer los parámetros de entrada protegidos del Módulo de Control, requeridos para la generación del testigo de seguridad. En algunas formas de realización, la clave se proporciona al Módulo de Autorización desde otra fuente.
El Módulo de Autorización se puede materializar en forma de un módulo de seguridad de hardware (HSM), u otro tipo de dispositivo informático físico que salvaguarde y gestione claves digitales para una autenticación fuerte y que proporcione procesado criptográfico. La funcionalidad del Módulo de Autorización la puede llevar a cabo un ordenador con una placa incorporada con una clave de cifrado o clave privada PKI. El módulo puede estar equipado con características de tal manera que intentos de acceder a los datos darán como resultado que el mismo se vuelva ilegible o inaccesible.
Si la entrada para el Módulo de Autorización es un intervalo y un algoritmo, el Módulo de Autorización puede dar salida a una identidad en el intervalo de autorización y un testigo de seguridad del identificador. Por ejemplo, la identidad de salida puede ser un intervalo de 0 a 1,000 con un testigo de seguridad para cada artículo del intervalo.
El Módulo de Autorización puede generar una clave a partir de cualquier parámetro usado en el Módulo de Control. En algunas formas de realización, el Módulo de Autorización puede generar u obtener una clave a partir de una clave existente de cualquier parámetro usado en el Módulo de Control, de tal manera que solamente un Módulo de Autorización específico pueda usar esta clave. El equipo y el software que implementan esta técnica de clave pública se pueden materializar en un criptosistema asimétrico.
La salida del Módulo de Autorización puede ser información, tal como los datos de configuración y, opcionalmente, uno o más testigos de seguridad, con una firma digital proporcionada por el Módulo de Firma. Alternativamente, la salida del Módulo de Autorización puede ser los datos de configuración cifrados para una clave poseída por el Módulo de Autorización. La salida del Módulo de Autorización se puede proporcionar al Módulo de Control.
De acuerdo con una forma de realización, el procedimiento para autenticar una producción de productos incluye almacenar electrónicamente datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; determinar si los datos de configuración para la tirada de producción están autorizados; si la tirada de producción está autorizada: generar un testigo de seguridad y asociar el testigo a los datos de configuración; y firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración; recibir los datos de configuración firmados digitalmente y la firma digital en una máquina de producción; en la máquina de producción, verificar la firma digital asociada a los datos de configuración firmados digitalmente; calcular un conjunto de identificadores de productos seguros sobre la base de los datos de configuración firmados digitalmente; producir productos en una tirada de producción de acuerdo con los datos de configuración firmados digitalmente; e imprimir el conjunto de identificadores de productos seguros en los productos de acuerdo con los datos de configuración firmados digitalmente.
En una forma de realización alternativa o adicional, los datos de configuración representan un intervalo de productos que van a ser producidos. En una forma de realización alternativa o adicional, los datos de configuración representan un intervalo de productos, máquinas, fábricas, intervalos o volúmenes de producto que están autorizados. Formas de realización alternativas o adicionales pueden incluir recibir una solicitud de verificación, comprendiendo la solicitud un identificador de producto, y determinar si los datos de configuración para la tirada de producción están autorizados por referencia a un administrador de licencias. Formas de realización alternativas o adicionales pueden incluir generar un testigo de seguridad para un intervalo de productos; y asociar el testigo de seguridad al intervalo de productos.
Módulo de firma
El Módulo de Firma puede recibir los datos de configuración, una clave de autorización, un testigo de seguridad o cualquier combinación de los mismos, así como un identificador de producto exclusivo o generado por el Módulo de Identificación. En algunas formas de realización, el Módulo de Firma puede recibir, adicionalmente, una o más características intrínsecas de máquina y/o producto, y/o características de artículo de producto. El Módulo de Firma puede crear una firma digital sobre la base de cualesquiera o la totalidad de esas entradas, a las que se hace referencia, en general, en la presente memoria, como datos de configuración.
Para generar la firma digital, en algunas formas de realización, en primer lugar el Módulo de Firma puede generar un compendio u otra representación de los datos de configuración. En algunas formas de realización, el compendio se puede generar calculando un valor hash criptográfico de los datos de configuración de acuerdo con un algoritmo de firma digital proporcionado por el Módulo de Firma que ejecuta el algoritmo de firma digital. Como ejemplos no limitativos, el valor hash se puede calcular de acuerdo con funciones MD5, SHA-1, SHA-2, SHA-3/Keccak. A continuación, el compendio se puede cifrar usando una clave privada obtenida por el Módulo de Firma para generar la firma digital.
En algunas formas de realización, una firma digital puede usar una tecnología de Infraestructura de Clave Pública (PKI) para establecer la autenticidad de datos de configuración. Los sistemas de PKI usan certificados y claves para identificar entidades, individuos u organizaciones. El Módulo de Autenticación usa una clave privada para firmar los datos de configuración y asocia los datos de configuración a un certificado incluyendo la clave pública usada por el Módulo de Autenticación.
Un módulo destinatario usa una clave pública para verificar la firma digital y, de este modo, la autenticidad de los datos de configuración firmados. Pueden utilizarse tecnologías de soporte para establecer otras características de no repudio, tales como el momento de la firma y el estado de las claves de firma. La clave pública se puede proporcionar directamente a la entidad destinataria, o mediante publicación en un directorio o repositorio en línea.
1
Módulo de identificación
El Módulo de Identificación puede recibir los datos de configuración y generar identificadores para artículos a marcar. El Módulo de Identificación puede recibir una firma digital generada por el Módulo de Firma que se combinará con el identificador único para generar un identificador único compuesto.
Los identificadores pueden incluir, o pueden basarse en, la fecha y/o la hora de producción de un producto a marcar y la firma digital recibida desde el Módulo de Firma. En algunas formas de realización, los identificadores seguros generados pueden ser exclusivos o sustancialmente exclusivos. En algunas formas de realización, los identificadores seguros pueden ser el testigo de seguridad.
En el caso de intervalos, el Módulo de Identificación puede generar un identificador de intervalo y un conjunto de identificadores dentro del intervalo generado.
A los identificadores creados se les puede dar salida hacia un módulo de control de impresión para su impresión directa sobre un producto o los mismos se pueden llevar a un procesado adicional para generar otro código que se imprime en el envase del producto.
Módulo de verificación
En referencia a la figura 5, el Módulo de Verificación (150) puede recibir los datos de configuración verificados y, sobre la base de esos datos de configuración validados, validar una solicitud de autorización (305) para una fábrica, máquina, producto o volumen de producción notificado. Las entradas para el Módulo de Verificación pueden incluir cualesquiera o la totalidad de los datos de configuración verificados, la salida del módulo de firma, identificadores, testigos de seguridad y/o información de intervalos. El Módulo de Verificación puede generar información para un Módulo de Autorización con estos parámetros con el fin de verificar/validar un identificador de producto.
El Módulo de Verificación puede generar un descifrado (320) de la solicitud, que incluye uno o más identificadores o intervalos de identificadores (315) y datos de firma (310) que incluyen uno o más testigos de seguridad.
Si se introduce un testigo de seguridad en el Módulo de Verificación, el Módulo de Verificación puede devolver información referente a la autorización, los datos de configuración y/o intervalos. Si se usa un testigo de seguridad individual para un intervalo de productos, el testigo de seguridad se puede proporcionar al Módulo de Verificación con el fin de verificar parámetros asociados al intervalo de productos, más que productos individuales. Esta forma de realización puede ser particularmente útil en el contexto de la regulación de exportaciones.
Procesos del sistema
Inicialización del código de identificación
La Inicialización del Código de Identificación se puede llevar a cabo para validar la autorización y los parámetros. En algunas formas de realización, por motivos de rendimiento, esto se puede realizar una vez en el comienzo de la producción. En referencia a la figura 3, el Módulo de Control (110) puede acceder a unos medios de almacenamiento de datos (115) en relación con parámetros adicionales, o pueden proporcionarse parámetros adicionales al módulo. Los parámetros y los datos de configuración, una vez firmados por el Módulo de Autorización (130), forman los datos de configuración validados (135). El Módulo de Control recibe datos de configuración verificados, según se ha descrito anteriormente, como respuesta a su solicitud al Módulo de Autorización (130).
La autorización puede ser una autorización para producir un producto, o para marcar un producto con una cierta ID, o ambas opciones. Los datos de configuración y los parámetros adicionales se transmiten al Módulo de Autorización y son usados por el Módulo de Autorización para generar el testigo de seguridad. El Módulo de Autorización puede firmar los datos de configuración y los parámetros adicionales, formando los datos de configuración firmados. Tal como se ha descrito anteriormente, los datos de configuración pueden especificar una cierta tirada de producción u otros productos y actividades. El Módulo de Autorización puede generar un bloque de autorización que incluye una clave, identificadores autorizados y un testigo de seguridad. En algunas formas de realización, la clave puede ser generada por el Módulo de Autorización o se puede proporcionar al mismo. El Módulo de Autorización puede transmitir el bloque de autorización al Módulo de Control. El Módulo de Control puede transmitir los datos de configuración validados y otra información, tal como una lista de identificadores, un intervalo de identificadores y/o uno o más testigos de seguridad, al Módulo de Firma (145). El Módulo de Firma puede firmar los datos y enviar los datos firmados y la firma al Módulo de Control. A continuación, el Módulo de Identificación (140) puede recibir del Módulo de Control un bloque de inicialización que incluye los identificadores y/o intervalos de identificadores para productos.
Una forma de realización de la invención puede incluir un procedimiento para inicializar un proceso con el fin de controlar de manera segura una instalación de producción, que comprende: recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización; en el módulo de autorización: determinar si la tirada de producción está autorizada; generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de producto autorizados, y un testigo de seguridad; transmitir los datos de configuración validados a un módulo de firma; y, en el módulo de firma, firmar los datos de configuración validados.
Formas de realización alternativas o adicionales pueden incluir determinar si los datos de configuración para la tirada de producción están autorizados; si la tirada de producción está autorizada: generar un testigo de seguridad y asociar el testigo a los datos de configuración; y firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración.
Formas de realización alternativas o adicionales pueden incluir recibir los datos de configuración firmados digitalmente y la firma digital en una máquina de producción; en la máquina de producción, verificar la firma digital asociada a los datos de configuración firmados digitalmente; y calcular un conjunto de identificadores de producto seguros sobre la base de los datos de configuración firmados digitalmente.
Formas de realización alternativas o adicionales pueden incluir producir productos en una tirada de producción de acuerdo con los datos de configuración firmados digitalmente; e imprimir el conjunto de identificadores de producto seguros en los productos de acuerdo con los datos de configuración firmados digitalmente.
Formas de realización alternativas o adicionales pueden incluir que determinar si la tirada de producción está autorizada comprenda, además, recuperar datos de licencia de un servidor de licencias.
Generación de códigos de identificación
En referencia a la figura 4, el proceso de Generación de Código genera los códigos durante el proceso de producción. El proceso de generación del código de identificación puede comenzar con una solicitud al Módulo de Identificación (140) de un identificador o un intervalo de identificadores, los cuales, a continuación, se devuelven al Módulo de Control (110). A continuación, los identificadores se envían al Módulo de Firma (145), el cual firma los identificadores y devuelve los identificadores firmados al Módulo de Control. El Módulo de Firma puede recibir un testigo de seguridad. En algunas formas de realización, no es necesario que el Módulo de Firma sea controlado por medio de instrucciones externas y, si debe considerarse cualquier código de identificación, el código se puede vincular a un testigo de seguridad individual. El Módulo de Firma puede ser controlado por el Módulo de Autorización. A continuación, el Módulo de Control puede enviar los datos de salida al control de impresión en el Módulo de Impresora (210). Los datos de salida enviados al control de impresión se pueden cifrar antes de la transmisión. Los datos de configuración se pueden transmitir al Módulo de Verificación (150) para la gestión de solicitudes de verificación subsiguientes.
Una forma de realización de la invención incluye un procedimiento para generar un código con vistas a identificar de manera segura productos producidos en una instalación de producción, que incluye recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización; en el módulo de autorización: determinar si la tirada de producción está autorizada; generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de producto autorizados, y un testigo de seguridad; transmitir los datos de configuración validados a un módulo de firma; en el módulo de firma, firmar los datos de configuración validados; en un módulo de identificación, recibir una solicitud de un identificador de producto y generar un identificador de producto como respuesta a la solicitud; transmitir el identificador de producto desde el módulo de identificación hasta un módulo de firma; firmar digitalmente el identificador de producto en el módulo de firma; y transmitir el identificador de producto firmado digitalmente a un módulo de impresora.
Formas de realización alternativas o adicionales pueden incluir recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización; en un módulo de autorización: determinar si la tirada de producción está autorizada; generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de producto autorizados, y un testigo de seguridad; transmitir los datos de configuración validados a un módulo de firma; en el módulo de firma, firmar los datos de configuración validados.
En formas de realización alternativas o adicionales, la solicitud es de un intervalo de identificadores. Formas de realización alternativas o adicionales pueden incluir determinar si los datos de configuración para la tirada de producción están autorizados; si la tirada de producción está autorizada: generar un testigo de seguridad y asociar el testigo a los datos de configuración; y firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración.
Verificación del código de identificación
El Módulo de Verificación puede recibir una solicitud de verificación. La solicitud puede incluir uno o más códigos de identificación. El módulo de verificación puede descifrar o desenmarañar de otra manera el código de identificador recibido. La información resultante, tras su descifrado, puede incluir un componente de firma y un identificador. A continuación, el identificador resultante se puede vincular con respecto a los datos de configuración originales almacenados previamente en asociación con el identificador. Los datos vinculados pueden incluir otros identificadores en un intervalo, un testigo de seguridad y otra información almacenada en relación con la producción del producto que lleva ese código de identificación.
Algunas formas de realización pueden incluir una funcionalidad adicional para procesar identificadores que se proporcionan al Módulo de Verificación sobre la base de la parte que solicita la verificación del código. Diferentes partes pueden estar provistas de medios diferentes para acceder al Módulo de Verificación. Por ejemplo, un minorista u otra forma de comerciante puede proveerse de un portal o canal de comunicaciones diferente al de un consumidor. También se puede requerir al minorista que se autentique en el Módulo de Verificación.
En algunas formas de realización, el sistema se puede configurar de manera que una verificación por parte de un consumidor dé como resultado la marcación de un identificador como verificado. El sistema se puede configurar además para almacenar aquellos códigos para los cuales un consumidor solicita verificación. Todas las solicitudes subsiguientes de verificación de aquellos códigos ya verificados pueden ser denegadas o procesadas de otra manera diferencialmente.
Funciones de exportación
Formas de realización de la invención se pueden aplicar en el contexto de la exportación de código a terceros. Esas formas de realización pueden incluir una función de exportación configurada para generar un código independiente con este fin. El código exportado se puede generar recopilando uno o más identificadores de producto y/o testigos de seguridad, y firmando esos identificadores y/o testigos. Los identificadores y/o testigos se pueden recopilar en cualquier punto del proceso de producción. Los identificadores y/o testigos firmados en forma de códigos exportados se pueden proporcionar a un tercero el cual los puede almacenar y llevar a cabo una verificación de la validez de los identificadores y/o testigos.
Arquitecturas del sistema
Los sistemas y procedimientos descritos en la presente memoria se pueden implementar en software o hardware o cualquier combinación de los mismos. Los sistemas y procedimientos descritos en la presente memoria se pueden implementar usando uno o más dispositivos informáticos los cuales pueden ser o no independientes entre sí en términos físicos o lógicos. Adicionalmente, varios aspectos de los procedimientos descritos en la presente memoria se pueden combinar o fusionar en otras funciones. En algunas formas de realización, los elementos del sistema ilustrados se podrían combinar en un único dispositivo de hardware o se podrían separar en múltiples dispositivos de hardware. Si se usan múltiples dispositivos de hardware, los dispositivos de hardware podrían estar ubicados próximos físicamente o alejados uno de otro.
Los procedimientos se pueden implementar en un producto de programa informático accesible desde un soporte de almacenamiento utilizable por ordenador o legible por ordenador que proporcione código de programa para su uso por parte de o en relación con un ordenador o cualquier sistema de ejecución de instrucciones. Un soporte de almacenamiento utilizable por ordenador o legible por ordenador puede ser cualquier aparato que pueda contener o almacenar el programa para su uso por parte del o en relación con el ordenador o sistema, aparato o dispositivo de ejecución de instrucciones.
Un sistema de procesado de datos adecuado para almacenar y/o ejecutar el código de programa correspondiente puede incluir por lo menos un procesador acoplado de manera directa o indirecta a dispositivos informatizados de almacenamiento de datos, tales como elementos de memoria. Al sistema se le pueden acoplar dispositivos de entrada/salida (I/O) (que incluyen, aunque sin carácter limitativo, teclados, pantallas, dispositivos señaladores, etc.). Al sistema también se le pueden acoplar adaptadores de red para permitir que el sistema de procesado de datos llegue a acoplarse a otros sistemas de procesado de datos o impresoras remotas o dispositivos de almacenamiento a través de redes privadas o públicas intermedias. Para proporcionar interacción con un usuario, las características se pueden implementar en un ordenador con un dispositivo de pantalla, tal como un CRT (tubo de rayos catódicos), una LCD (pantalla de cristal líquido) u otro tipo de monitor para
1
visualizar información al usuario, y un teclado y un dispositivo de entrada, tal como un ratón o un control de trackball por medio de los cuales el usuario puede proporcionar entradas al ordenador.
Un programa informático puede ser un conjunto de instrucciones que se pueden usar, de manera directa o indirecta, en un ordenador. Los sistemas y procedimientos descritos en la presente memoria se pueden implementar usando lenguajes de programación tales como Flash™, JAVA™, C++, C, C#, Visual Basic™, JavaScript™, PHP, XML, HTML, etc., o una combinación de lenguajes de programación, incluyendo lenguajes compilados o interpretados, y se pueden desplegar en cualquier formato, incluyendo en forma de un programa autónomo o en forma de un módulo, componente, subrutina u otra unidad adecuada para su uso en un entorno informático. El software puede incluir, aunque sin carácter limitativo, firmware, software residente, microcódigo, etc. En la implementación de interfaces entre módulos de programación se pueden usar protocolos tales como el SOAP/HTTP. Los componentes y la funcionalidad descritos en la presente memoria se pueden implementar en cualquier sistema operativo de escritorio que se ejecute en un entorno virtualizado o no virtualizado, utilizando cualquier lenguaje de programación adecuado para desarrollo de software, incluyendo, aunque sin carácter limitativo, diferentes versiones de Microsoft Windows™, Apple™ Mac™, iOS™, Unix™/X-Windows™, Linux™, etc.
Los procesadores adecuados para la ejecución de un programa de instrucciones incluyen, aunque sin carácter limitativo, microprocesadores de propósito general y especial, y el procesador único o uno de los múltiples procesadores o núcleos, de cualquier tipo de ordenador. Un procesador puede recibir y almacenar instrucciones y datos de un dispositivo informatizado de almacenamiento de datos, tal como una memoria de solo lectura, una memoria de acceso aleatorio, ambas, o cualquier combinación de los dispositivos de almacenamiento de datos descritos en la presente memoria. Un procesador puede incluir cualquier circuitería de procesado o circuitería de control operativa para controlar las operaciones y el rendimiento de un dispositivo electrónico.
El procesador también puede incluir, o puede estar acoplado operativamente para comunicarse con uno o más dispositivos de almacenamiento de datos para almacenar datos. Dichos dispositivos de almacenamiento de datos pueden incluir, como ejemplos no limitativos, discos magnéticos (incluyendo discos duros internos y discos extraíbles), discos magnetoópticos, discos ópticos, memoria de solo lectura, memoria de acceso aleatorio y/o medios de almacenamiento flash. Los dispositivos de almacenamiento adecuados para incorporar de manera tangible instrucciones de programa informático y datos también pueden incluir todas las formas de memoria no volátil, incluyendo, por ejemplo, dispositivos de memoria de semiconductores, tales como EPROM, EEPROM y dispositivos de memoria flash; discos magnéticos tales como discos duros internos y discos extraíbles; discos magnetoópticos; y discos CD-ROM, y DVD-ROM. El procesador y la memoria se pueden suplementar con, o incorporar en, ASIC (circuitos integrados de aplicación específica).
Los sistemas, módulos y procedimientos descritos en la presente memoria se pueden implementar usando cualquier combinación de elementos de software o hardware. Los sistemas, módulos y procedimientos descritos en la presente memoria se pueden implementar usando una o más máquinas virtuales que funcionen de manera individual o en combinación mutua. Para encapsular una plataforma de máquina informática física en una máquina virtual que se ejecuta bajo el control de software de virtualización que funciona en un anfitrión o plataforma informática de hardware se puede usar cualquier solución de virtualización aplicable. La máquina virtual puede tener tanto hardware de sistema virtual como software de sistema operativo invitado.
Los sistemas y procedimientos descritos en la presente memoria se pueden implementar en un sistema de ordenador que incluya un componente de fondo (back-end), tal como un servidor de datos, o que incluya un componente de software intermedio (middleware), tal como un servidor de aplicación o un servidor de Internet, o que incluya un componente de presentación (front-end) tal como un ordenador de cliente que tenga una interfaz de usuario gráfica o un navegador de Internet, o cualquier combinación de los mismos. Los componentes del sistema se pueden conectar mediante cualquier forma o soporte de comunicación de datos digitales, tal como una red de comunicaciones. Los ejemplos de redes de comunicaciones incluyen, por ejemplo, una LAN, una WAN y los ordenadores y redes que forman Internet.
Una o más formas de realización de la invención se pueden poner en práctica con otras configuraciones de sistemas de ordenador, incluyendo dispositivos de mano, sistemas de microprocesador, electrónica de consumo basada en microprocesadores o programable, miniordenadores, ordenadores centrales, etc. La invención también se puede poner en práctica en entornos informáticos distribuidos en los que las tareas son realizadas por dispositivos de procesado remotos que se enlazan a través de una red.
Aunque se han descrito una o más formas de realización de la invención, dentro del alcance de la misma se incluyen diversas modificaciones, adiciones, transformaciones y equivalentes de ella.

Claims (17)

REIVINDICACIONES
1. Procedimiento para ofuscar datos almacenados en una red, comprendiendo el procedimiento:
definir y almacenar información descriptiva del estado de una máquina informática como número de máquina, MNUM, incluyendo la información descriptiva del estado el número de bases que comprenden la información descriptiva del estado;
generar un identificador único y seguro de producto de máquina, MSUPI, como transformación matemática reversible de un identificador único de producto de máquina, MUPI, basándose en información descriptiva del estado de una máquina informática, comprendiendo la etapa de cálculo del MSUPI:
definir el número de etapas de manera que sea imax, para cada etapa generar un primer número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,1, y un segundo número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,2, comprendiendo dicha acción de generar:
calcular un primer número aleatorio CGOKi,1, coprimo con un número basado en la información descriptiva del estado de la máquina informática, MNUM;
calcular un segundo número aleatorio CGOKi,2, que presenta un tamaño de bits igual o menor que MNUM; definir mo,2 = MUPI;
calcular para cada elemento i, desde i = 1 a imax - 1:
m,1 = (mi-1,2 x CGOK1 ) mod (MNUM);
m,2 = (mi,1 mod CGOK2);
si (m,2 > MNUM) ^ m,2 = m u
definir MSUPI = mimax, 2;
almacenar el identificador único y seguro de producto de máquina, MSUPI, en unos medios electrónicos de almacenamiento de datos.
2. Procedimiento según una o más de las reivindicaciones anteriores, en el que la información descriptiva del estado de la máquina informática comprende una combinación de información de tiempo y número de producto.
3. Procedimiento según una o más de las reivindicaciones anteriores, en el que la información de tiempo incluye año juliano, día juliano, hora de producción y minuto de producción.
4. Procedimiento según una o más de las reivindicaciones anteriores, en el que la información descriptiva del estado incluye el valor de un contador incremental reinicializado sobre una base periódica.
5. Procedimiento según una o más de las reivindicaciones anteriores, en el que el número basado en la información descriptiva del estado de la máquina informática se calcula como 10 x 366 x 24 x 60 x Identificador de Tiempo.
6. Procedimiento según una o más de las reivindicaciones anteriores, en el que el Identificador de Tiempo se define como el entero 2210.
7. Procedimiento según una o más de las reivindicaciones anteriores, en el que un Identificador Único y Seguro de Producto, SUPI, un código alfanumérico de 12 caracteres, se obtiene de tal manera que SUPI = (p x m) mod (MNUM x mRuido x RunLim).
8. Procedimiento para generar un código con el fin de identificar de manera segura productos producidos en una instalación de producción, que comprende:
recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización;
en el módulo de autorización:
determinar si la tirada de producción está autorizada;
generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de productos autorizados, y un testigo de seguridad;
transmitir los datos de configuración validados a un módulo de firma;
en el módulo de firma, firmar los datos de configuración validados;
en un módulo de identificación, recibir una solicitud de un identificador de producto y generar un identificador de producto como respuesta a la solicitud, llevándose a cabo la generación del identificador de producto con un procedimiento según cualquier reivindicación anterior que incluye almacenar el identificador único y seguro de producto de máquina, MSUPI, en los medios electrónicos de almacenamiento de datos como identificador de producto;
transmitir el identificador único y seguro de producto de máquina desde el módulo de identificación hasta un módulo de firma;
firmar digitalmente el identificador único y seguro de producto de máquina en el módulo de firma; y transmitir el identificador único y seguro de producto de máquina firmado digitalmente a un módulo de impresora.
9. Procedimiento según una o más de las reivindicaciones 1 a 7, que comprende, además:
recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización;
en un módulo de autorización:
determinar si la tirada de producción está autorizada;
generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de productos autorizados, y un testigo de seguridad;
transmitir los datos de configuración validados a un módulo de firma;
en el módulo de firma, firmar los datos de configuración validados.
10. Procedimiento según la reivindicación 8, en el que la solicitud es de un intervalo de identificadores.
11. Procedimiento según una o más de las reivindicaciones 8 a 10, que comprende, además:
determinar si los datos de configuración para la tirada de producción están autorizados;
si la tirada de producción está autorizada:
generar un testigo de seguridad y asociar el testigo a los datos de configuración; y
firmar digitalmente los datos de configuración generando una firma digital y asociando la firma digital a los datos de configuración.
12. Procedimiento según una o más de las reivindicaciones anteriores, en el que el identificador único de producto de máquina, MUPI, se transforma sin rellenar el identificador único de producto de máquina, MUPI, de tal manera que la longitud en bits del identificador único de producto de máquina, MUPI, es igual a la longitud en bits del identificador único y seguro de producto de máquina, MSUPI.
13. Procedimiento para verificar un identificador seguro y exclusivo de producto y máquina, que comprende: recibir, por parte de un módulo de verificación, para su verificación, un MSUPI;
asignar MSUPI como mo,2;
1
recuperar, por parte del módulo de verificación, un primer número aleatorio CGOK,1 y un segundo número aleatorio, CGOK,2 y el imax asociado a los números aleatorios recuperados y el MSUPI recibido; calcular para cada elemento i, desde i = 1a imax -1:
m,1 = (mi-1,2 mod CGOK2);
si (m,2 > MNUM) ^ m,1 = m-1,2
mi,2 = (mu x CGOK-1, 1) mod (MNUM);
mcg = mimax,2;
verificar MUPI = mcg / mRuido y valor de ruido = mcg mod mRuido, donde MUPI se basa en información descriptiva del estado de una máquina informática.
14. Procedimiento según la reivindicación 13, en el que el identificador único y seguro de producto de máquina, MSUPI, se transforma sin haber rellenado el identificador único de producto de máquina, MUPI, de tal manera que la longitud en bits del identificador único de producto de máquina, MUPI, es igual a la longitud en bits del identificador único y seguro de producto de máquina, MSUPI.
15. Procedimiento según una o más de las reivindicaciones anteriores, en el que las autorizaciones que se reciben de un módulo de autorización se pueden transmitir a un módulo de verificación, de manera que posteriormente se pueden procesar solicitudes de verificación con respecto a dichas autorizaciones, y, en el que los datos transmitidos al módulo de verificación pueden incluir el identificador único y seguro de producto de máquina, MSUPI.
16. Sistema para ofuscar datos almacenados en una red, comprendiendo el sistema:
un procesador informático configurado para:
definir y almacenar información descriptiva del estado de una máquina informática como número de máquina, MNUM, incluyendo la información descriptiva del estado el número de bases que comprenden la información descriptiva del estado;
generar un identificador único y seguro de producto de máquina, MSUPI, como transformación matemática reversible de un identificador único de producto de máquina, MUPI, basándose en información descriptiva del estado de una máquina informática, comprendiendo la etapa de cálculo del MSUPI:
definir el número de etapas de manera que sea imax, para cada etapa generar un primer número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,1, y un segundo número aleatorio Clave de Ofuscación para Generación de Código, CGOKi,2, comprendiendo dicha acción de generar: calcular un primer número aleatorio, CGOKi,1, coprimo con un número basado en la información descriptiva del estado de la máquina informática, MNUM;
calcular un segundo número aleatorio, CGOKi2, que presenta un tamaño de bits igual o menor que MNUM;
definir mo,2 = MUPI;
calcular para cada elemento i, desde i = 1 a imax - 1:
m,1 = (mi-1,2 x CGOK,1) mod (MNUM);
m,2 = (mu mod CGOK,2);
si (m,2 > MNUM) ^ m,2 =m,1 ;
definir MSUPI = mimax,2; y
unos medios electrónicos de almacenamiento de datos configurados para almacenar el identificador único y seguro de producto de máquina, MSUPI, en los medios electrónicos de almacenamiento de datos.
17. Sistema para generar un código con el fin de identificar de manera segura productos producidos en una instalación de producción, que comprende un procesador informatizado configurado para ejecutar instrucciones con el fin de:
recibir electrónicamente datos de configuración de unos medios electrónicos de almacenamiento de datos; almacenar electrónicamente los datos de configuración para una tirada de producción, especificando los datos de configuración para la tirada de producción unos parámetros usados en la producción de productos; transmitir los datos de configuración a un módulo de autorización;
en el módulo de autorización:
determinar si la tirada de producción está autorizada;
generar datos de configuración validados que comprenden una clave, una representación de una pluralidad de identificadores de productos autorizados, y un testigo de seguridad;
transmitir los datos de configuración validados a un módulo de firma;
en el módulo de firma, firmar los datos de configuración validados;
en un módulo de identificación, recibir una solicitud de un identificador de producto y generar un identificador de producto como respuesta a la solicitud, llevándose a cabo la generación del identificador de producto con un sistema según la reivindicación 16, almacenándose el identificador único y seguro de producto de máquina, MSUPI, en los medios electrónicos de almacenamiento de datos como identificador de producto; y estando configurado el procesador, además, para:
transmitir el identificador único y seguro de producto de máquina desde el módulo de identificación hasta un módulo de firma;
firmar digitalmente el identificador único y seguro de producto de máquina en el módulo de firma; y transmitir el identificador único y seguro de producto de máquina firmado digitalmente a un módulo de impresora.
1
ES16751297T 2015-08-13 2016-08-13 Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos Active ES2738415T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562204753P 2015-08-13 2015-08-13
PCT/EP2016/069316 WO2017025645A1 (en) 2015-08-13 2016-08-13 Enhanced obfuscation or randomization for secure product identification and verification

Publications (1)

Publication Number Publication Date
ES2738415T3 true ES2738415T3 (es) 2020-01-22

Family

ID=56684668

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16751297T Active ES2738415T3 (es) 2015-08-13 2016-08-13 Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos

Country Status (11)

Country Link
US (2) US20180205543A1 (es)
EP (1) EP3335370B1 (es)
JP (1) JP7068826B2 (es)
CN (1) CN107852328B (es)
BR (1) BR112017027643A2 (es)
EA (1) EA036066B1 (es)
ES (1) ES2738415T3 (es)
HK (1) HK1257075B (es)
PL (1) PL3335370T3 (es)
TR (1) TR201910315T4 (es)
WO (1) WO2017025645A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560118A (zh) * 2019-09-26 2021-03-26 杭州中天微系统有限公司 用于提供可重置的标识符的配置装置和配置方法
US20210278826A1 (en) * 2020-03-04 2021-09-09 International Business Machines Corporation Quality control based on measurements from verified sensors
CN112865981B (zh) * 2021-02-02 2023-05-02 中国工商银行股份有限公司 一种令牌获取、验证方法及装置

Family Cites Families (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035615A (en) 1976-05-20 1977-07-12 Sperry Rand Corporation System for accepting wide ranges of universal product code system
US4094244A (en) 1976-12-22 1978-06-13 Dymo Industries, Inc. Hand-held bar code label marking device
US4354101A (en) 1977-04-15 1982-10-12 Msi Data Corporation Method and apparatus for reading and decoding a high density linear bar code
US4463250A (en) 1981-07-11 1984-07-31 Mcneight David L Method and apparatus for use against counterfeiting
US4529871A (en) 1982-09-29 1985-07-16 Loblaw Companies Limited Price marking system
US4860226A (en) 1986-09-09 1989-08-22 Martin Edward L Method and apparatus for bar code graphics quality control
US4963719A (en) 1989-11-01 1990-10-16 Spectra-Physics Bar code scanner and method of scanning
US5646389A (en) 1990-11-13 1997-07-08 Symbol Technologies, Inc. Inventory management system using coded re-order information
DE69221502T2 (de) 1991-11-22 1998-03-05 Engineered Data Products Inc Vorrichtung zum generieren von etiketten
JPH05151381A (ja) 1991-11-29 1993-06-18 Nippondenso Co Ltd バーコード読取装置
US5483624A (en) 1992-03-27 1996-01-09 Monarch Marking Systems, Inc. Programmable hand held labeler
US5467433A (en) 1992-04-15 1995-11-14 Monarch Marking Systems, Inc. Label printing and data collection program generator
US5382779A (en) 1993-05-07 1995-01-17 Digicomp Research Corporation Shelf price label verification apparatus and method
US5400319A (en) 1993-10-06 1995-03-21 Digital Audio Disc Corporation CD-ROM with machine-readable I.D. code
US6122403A (en) 1995-07-27 2000-09-19 Digimarc Corporation Computer system linked by using information in data objects
JPH07156459A (ja) 1993-12-03 1995-06-20 Japan Tobacco Inc 封函テープ供給装置及び出荷品の製造情報記録システム
US6456729B1 (en) 1994-04-14 2002-09-24 Lewis J. Moore Anti-counterfeiting and tracking system
JP3355804B2 (ja) 1994-08-30 2002-12-09 株式会社デンソー 車両用道路地図表示装置
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
US5850080A (en) 1995-08-03 1998-12-15 Barcode Graphics Inc. Verification of barcodes
US6371375B1 (en) 1995-09-25 2002-04-16 Intermec Ip Corp. Method and apparatus for associating data with a wireless memory device
US5837983A (en) 1996-06-10 1998-11-17 Psc, Inc. Readability monitoring system for optical codes
US6272634B1 (en) 1996-08-30 2001-08-07 Regents Of The University Of Minnesota Digital watermarking to resolve multiple claims of ownership
US5767498A (en) 1996-09-17 1998-06-16 Ncr Corporation Bar code error scanner
US7797164B2 (en) 1996-10-02 2010-09-14 Nintendo Of America, Inc. Method and apparatus for enabling purchasers of products to obtain return information and to initiate product returns via an on-line network connection
US6442276B1 (en) 1997-07-21 2002-08-27 Assure Systems, Inc. Verification of authenticity of goods by use of random numbers
US6832202B1 (en) 1997-08-29 2004-12-14 Electronic Data Systems Corporation Method and system of routing requests for authorized approval
US5974150A (en) 1997-09-30 1999-10-26 Tracer Detection Technology Corp. System and method for authentication of goods
US6212638B1 (en) 1997-12-02 2001-04-03 George C. Lee Method for generating unpredictable authentication identification symbols
US6134561A (en) 1997-12-29 2000-10-17 Pitney Bowes Inc. System for tracking the receipt and internal delivery of items such as packages
US6069955A (en) 1998-04-14 2000-05-30 International Business Machines Corporation System for protection of goods against counterfeiting
US6924781B1 (en) 1998-09-11 2005-08-02 Visible Tech-Knowledgy, Inc. Smart electronic label employing electronic ink
GB2342743B (en) 1998-10-17 2003-05-14 Nicholas Paul Elliot Verification method
US6226619B1 (en) 1998-10-29 2001-05-01 International Business Machines Corporation Method and system for preventing counterfeiting of high price wholesale and retail items
US6963846B1 (en) 2000-07-17 2005-11-08 Kelly Registration Systems, Inc. System and method of managing registration, sale, distribution and use of regulated agricultural products and the licensing/certification of dealers and applicators of agricultural products
US6217966B1 (en) 1999-02-26 2001-04-17 Ncr Corporation Desensitized price label
US6260029B1 (en) 1999-08-11 2001-07-10 Pitney Bowes Inc. Postage meter that provides on a mailpiece evidence of postage paid together with cryptographically secured, third party certified, non-shipping information about the sender of the mailpiece
US7188258B1 (en) 1999-09-17 2007-03-06 International Business Machines Corporation Method and apparatus for producing duplication- and imitation-resistant identifying marks on objects, and duplication- and duplication- and imitation-resistant objects
AU2991101A (en) 2000-01-27 2001-08-07 Crossoff, Incorporated Authenticity verification method and apparatus
US6547137B1 (en) 2000-02-29 2003-04-15 Larry J. Begelfer System for distribution and control of merchandise
US20060143180A1 (en) 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
JP2001328711A (ja) 2000-05-18 2001-11-27 Ishikawajima Harima Heavy Ind Co Ltd 商品の配送管理方法
JP4577950B2 (ja) 2000-06-23 2010-11-10 大日本印刷株式会社 非接触型icカードの発行処理システム
US6725366B1 (en) 2000-09-07 2004-04-20 International Business Machines, Corporation System and method for 32 bit code branching to 64 bit targets
US7113922B2 (en) 2000-11-02 2006-09-26 Living Naturally, Llc Electronic inventory movement and control device
US20020053796A1 (en) 2000-11-07 2002-05-09 Mccann Mark Graphical label and method of manufacturing
DE10058688B4 (de) 2000-11-25 2011-08-11 Alstom Technology Ltd. Dämpferanordnung zur Reduktion von Brennkammerpulsationen
WO2002073550A1 (en) 2001-03-14 2002-09-19 Orell Füssli Security Documents AG A method for verifying the authenticity of an article
US6497367B2 (en) 2001-04-26 2002-12-24 International Business Machines Corporation Providing a location and item identification data to visually impaired shoppers in a site having barcode labels
US20020158137A1 (en) 2001-04-30 2002-10-31 William Grey Systems and methods wherein a machine-readable item code is substantially invisible to a human
US6729603B1 (en) 2001-06-08 2004-05-04 Psc Scanning, Inc. Add-on capture rate in a barcode scanning system
RU2199781C1 (ru) 2001-07-20 2003-02-27 Ямилев Ильгиз Амирович Способ маркировки товара, или изделия, или конструкции с последующей идентификацией (варианты) и система проведения идентификации товара или изделия, или конструкции с указанной маркировкой (варианты)
US6616056B2 (en) 2001-08-31 2003-09-09 International Business Machines Corporation Method and system of capturing and reading consumer-oriented responses through consumer-appended bar codes
US20030051767A1 (en) 2001-09-19 2003-03-20 Unilever Home And Personal Care Usa Package and system
CA2461312C (en) 2001-09-24 2015-12-01 Scott Laboratories, Inc. Methods and apparatuses for assuring quality and safety of drug administration and medical products and kits
JP2003104562A (ja) 2001-09-29 2003-04-09 Toshiba Corp 手荷物管理方法および手荷物管理システム
US8209226B2 (en) 2001-11-15 2012-06-26 Nintendo Of America Inc. Non-serialized electronic product registration system and method of operating same
US7251730B2 (en) * 2001-12-21 2007-07-31 Qualcomm Incorporated Method and apparatus for simplified audio authentication
RU2216776C2 (ru) 2001-12-24 2003-11-20 Общество с ограниченной ответственностью "АЙ-ФЕРСТ" Способ идентификации и учета маркированных объектов и система для его осуществления
AU2002352468A1 (en) 2002-01-04 2003-07-15 Flying Null Limited Multi label verification system
JP3834241B2 (ja) 2002-01-16 2006-10-18 埼玉日本電気株式会社 ソフトウェア記録部分離型情報処理装置及びソフトウェア管理方法
RU2225641C2 (ru) 2002-01-24 2004-03-10 Слепов Анатолий Алексеевич Способ защиты от подделки изделий массового изготовления
JP2003233794A (ja) 2002-02-07 2003-08-22 Hitachi Ltd 無線タグ、商品、商品付随物、商品セット、リーダ、印刷機、情報加工方法、及び判定方法
EP1525541A2 (en) 2002-07-26 2005-04-27 Ron Everett Data management architecture associating generic data items using references
JP2004094510A (ja) 2002-08-30 2004-03-25 Inst Of Physical & Chemical Res 商品流通における虚偽表示防止方法及びこれに用いる改ざん防止機能付きラベル書込装置
US20040117265A1 (en) 2002-12-12 2004-06-17 Paul Hoffman Method and system for labeling and managing the sale of manufactured concrete blocks
US6827275B2 (en) 2003-01-22 2004-12-07 Ufp Technologies, Inc. Method of tracking and marking tools
US6712275B1 (en) 2003-02-10 2004-03-30 Targus Fly And Feather, Llc UPC identification device
US7286043B2 (en) 2003-04-28 2007-10-23 Battelle Memorial Institute K1-53 System and method for inventorying multiple remote objects
DE10328328B4 (de) * 2003-06-25 2015-06-03 TÜV Rheinland Holding AG Produktschutz-Portal und Verfahren zur Echtheitsprüfung von Produkten
US20050006469A1 (en) 2003-07-10 2005-01-13 United Parcel Service Of America, Inc. Methods, systems, and computer-readable media for linking object identification data to package identification data
US7028901B2 (en) 2003-07-17 2006-04-18 Symbol Technologies, Inc. System and method for reading and decoding optical codes using multiple color illumination
US6892947B1 (en) 2003-07-30 2005-05-17 Hewlett-Packard Development Company, L.P. Barcode embedding methods, barcode communication methods, and barcode systems
JP2005060080A (ja) 2003-08-19 2005-03-10 Dainippon Printing Co Ltd 可変印字管理システム
JP2005115890A (ja) 2003-10-07 2005-04-28 Pv Up:Kk 購読条件付メールマガジン登録システム
US7752137B2 (en) 2003-11-03 2010-07-06 Meyers Printing Company Authentication and tracking system
US8543411B2 (en) 2003-11-05 2013-09-24 United Parcel Service Of America, Inc. Systems and methods for detecting counterfeit pharmaceutical drugs at the point of retail sale
JP2005200187A (ja) 2004-01-19 2005-07-28 Nippon Telegr & Teleph Corp <Ntt> 情報管理方法、情報管理システムおよび情報管理プログラム
US7055691B2 (en) 2004-02-27 2006-06-06 Owens-Illinois Healthcare Packaging Inc. Plastic packaging having embedded micro-particle taggants
US7497379B2 (en) 2004-02-27 2009-03-03 Microsoft Corporation Counterfeit and tamper resistant labels with randomly occurring features
WO2005083644A1 (en) 2004-03-02 2005-09-09 Stikker.Com Bv Method and system for verifying the authenticity of goods
JP4402490B2 (ja) 2004-03-22 2010-01-20 東芝テック株式会社 流通物情報管理システム
JP4455246B2 (ja) 2004-03-29 2010-04-21 株式会社日立製作所 リコール対応支援システム、リコール対応支援方法、およびリコール対応支援プログラム
US20050273434A1 (en) 2004-04-18 2005-12-08 Allen Lubow System and method for managing security in a supply chain
US20050234823A1 (en) 2004-04-20 2005-10-20 Rainer Schimpf Systems and methods to prevent products from counterfeiting and surplus production also of tracking their way of distribution.
US7307536B2 (en) 2004-05-06 2007-12-11 Savi Technology, Inc. Portable deployment kit for nested visibility
WO2005115890A1 (ja) 2004-05-31 2005-12-08 Densei-Lambda Kabushiki Kaisha 製品管理システム
US7267271B2 (en) 2004-06-16 2007-09-11 Dell Products L.P. System and method for component inventory tracking with shipper identification codes
US7246748B1 (en) 2004-06-30 2007-07-24 Adobe Systems Incorporated Enabling the use of machine-readable codes
US20060011726A1 (en) 2004-07-14 2006-01-19 Culture.Com Technology (Macau) Ltd. Micro bar code and recognition system and method thereof
JP2006103813A (ja) 2004-09-30 2006-04-20 Hitachi Ltd 物品追跡情報格納方法および物品追跡情報格納システム
EP1645992A1 (en) 2004-10-08 2006-04-12 Philip Morris Products S.A. Methods and systems for marking, tracking and authentication of products
US7309011B2 (en) 2004-10-29 2007-12-18 Symbol Technologies, Inc. Method of authenticating products using hardware compatibility flag
US7614546B2 (en) * 2005-02-03 2009-11-10 Yottamark, Inc. Method and system for deterring product counterfeiting, diversion and piracy
JP2006229582A (ja) 2005-02-17 2006-08-31 Ricoh Co Ltd 文書処理装置、画像形成装置及び文書処理プログラム
US7677461B2 (en) * 2005-03-10 2010-03-16 Mil. Digital Labeling Inc. Digital labels for product authentication
US7513436B2 (en) 2005-06-30 2009-04-07 Symbol Technologies, Inc. Apparatus and methods for optical representations of radio frequency identification tag information
JP4272186B2 (ja) 2005-07-08 2009-06-03 株式会社みずほコーポレート銀行 回収代行システム
US7492267B2 (en) 2005-07-29 2009-02-17 Suzanne Bilyeu Tracking methods and systems using RFID tags
FR2900486A1 (fr) 2006-04-28 2007-11-02 Hafshejani Abdollah Sadeghi Procede de detection de la contrefacon ou de l'authenticite d'un produit
US20080066167A1 (en) 2006-09-12 2008-03-13 Andri Michael J Password based access including error allowance
US8332656B2 (en) * 2007-01-09 2012-12-11 Mojix, Inc. Systems and methods for secure supply chain management and inventory control
CN101201886B (zh) 2007-01-15 2012-08-22 于志 一种数字化识别商品的方法
US20080216185A1 (en) 2007-01-19 2008-09-04 Invitrogen Corporation Compositions and Methods for Genetic Manipulation and Monitoring of Cell Lines
US8175578B2 (en) 2007-05-07 2012-05-08 Battelle Energy Alliance, Llc Wireless device monitoring methods, wireless device monitoring systems, and articles of manufacture
EP2051189A1 (en) 2007-10-18 2009-04-22 Siemens Aktiengesellschaft Device for electronic identification of items
CA2645990C (en) 2007-12-20 2014-07-29 Bce Inc. Contact-less tag with signature, and applications thereof
JP2009151668A (ja) 2007-12-21 2009-07-09 Hitachi Ltd 農産物トレーサビリティシステム、農産物トレーサビリティ方法、農産物トレーサビリティプログラム、および小売業者端末
EP2104067A1 (en) 2008-03-17 2009-09-23 Philip Morris Products S.A. Method and apparatus for identifying, authenticating, tracking and tracing manufactured items
US8140852B2 (en) * 2008-06-16 2012-03-20 International Business Machines Corporation Authenticating serialized commodities
KR100911762B1 (ko) 2008-06-23 2009-08-11 (주)지디에스케이 주소표준화 시스템 및 방법
US8761390B2 (en) * 2008-06-30 2014-06-24 Gm Global Technology Operations Production of cryptographic keys for an embedded processing device
CN101354753B (zh) 2008-09-10 2010-09-29 张其善 产品标签制作方法、产品真伪检验方法与系统
EP2172882A1 (en) 2008-10-06 2010-04-07 JT International S.A. Method of cigarette packaging and cigarette packaging system
EP2350910B1 (en) 2008-11-24 2018-07-25 Certicom Corp. System and method for hardware based security
FR2939542B1 (fr) 2008-12-04 2012-08-03 Advanced Track & Trace Procede et dispositif de protection d'un recipient et etiquette pour leur mise en oeuvre
GB2470900B (en) 2009-06-08 2017-06-14 Kezzler As Method and system for storage and retrieval of track and trace information
CN101609626A (zh) 2009-07-10 2009-12-23 烟台东方瑞创达电子科技有限公司 产品防伪防窜货的附标方法
EP2348465A1 (en) 2009-12-22 2011-07-27 Philip Morris Products S.A. Method and apparatus for storage of data for manufactured items
CN102110199A (zh) * 2009-12-28 2011-06-29 北京安码科技有限公司 一种利用Elgamal公钥算法生成软件注册码的方法
JP5730491B2 (ja) 2010-02-26 2015-06-10 株式会社ニコン・エシロール レンズ加工管理システム、レンズ製造システム、レンズ製造方法、コンピュータプログラム、レンズ加工管理方法、データ供給装置、レンズ設計データ利用管理システム、レンズ設計データ利用管理装置、及びレンズ設計データ利用管理プログラム
US8839459B2 (en) 2010-09-22 2014-09-16 Qualcomm Incorporated Product authentication using end-to-end cryptographic scheme
US9507971B2 (en) 2010-11-05 2016-11-29 Barcode Graphics Inc. Systems and methods for barcode integration in packaging design and printing
CN102542215A (zh) 2010-12-13 2012-07-04 杭州华杭科技有限公司 一次性容器的双签认证法
EP2472451A1 (en) * 2010-12-30 2012-07-04 Philip Morris Products S.A. Method and apparatus for marking manufactured items
US8903884B2 (en) 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
TW201236927A (en) 2011-03-11 2012-09-16 China Steel Corp Anti-counterfeiting bottle
US20120254052A1 (en) 2011-04-04 2012-10-04 Gao Zeming M Anti-counterfeiting marking with dual-code and partial concealment
US9130917B2 (en) 2011-05-02 2015-09-08 Verisign, Inc. DNSSEC signing server
US20120310848A1 (en) 2011-05-31 2012-12-06 Gao Zeming M Anti-counterfeiting marking with asymmetrical concealment
DE102011081804B4 (de) 2011-08-30 2015-02-12 Siemens Aktiengesellschaft Verfahren und System zum Bereitstellen von gerätespezifischen Betreiberdaten, welche an ein Authentisierungs-Credential gebunden werden, für ein Automatisierungsgerät einer Automatisierungsanlage
CN104025542B (zh) 2011-08-31 2018-07-03 汤姆逊许可公司 终端用户设备配置数据的备份和恢复的方法及设备
CN103186863A (zh) 2011-12-30 2013-07-03 鸿富锦精密工业(深圳)有限公司 防伪方法及应用该防伪方法的产品
DE102012005427A1 (de) * 2012-03-16 2013-09-19 Giesecke & Devrient Gmbh Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät
US8881005B2 (en) 2012-04-20 2014-11-04 King Abdulaziz City For Science And Technology Methods and systems for large-scale statistical misspelling correction
US9064229B2 (en) * 2012-05-07 2015-06-23 Sap Se Real-time asset tracking using discovery services
US20140122479A1 (en) 2012-10-26 2014-05-01 Abbyy Software Ltd. Automated file name generation
TWI622969B (zh) 2012-12-17 2018-05-01 印奈克斯托股份有限公司 用以使用物理特性來標記製造物品的方法及設備
GB2508922A (en) 2012-12-17 2014-06-18 Ibm Controlling cabling modifications in storage area networks by physical locks
TWI610253B (zh) * 2012-12-17 2018-01-01 印奈克斯托股份有限公司 用於儲存追踪製造品項用的資料之方法及設備
EP3547238A1 (en) 2012-12-21 2019-10-02 Kezzler AS Method and system for storing and retrieving packaging realtionships
GB201302206D0 (en) 2013-02-07 2013-03-27 Benson Ip Ltd System,apparatus and method of authenticating products
EP3005209B1 (en) * 2013-05-30 2021-02-17 JScrambler S.A. Web application protection
US20150269559A1 (en) 2014-03-24 2015-09-24 Cellum Innovacios es Szolgaltato Zrt. Systems and methods for a quick card
CN103873226B (zh) * 2014-04-02 2017-03-29 成都西山居互动娱乐科技有限公司 针对用户密码的随机混淆方法
WO2015197494A1 (en) 2014-06-23 2015-12-30 Philip Morris Products S.A. Method and system for marking manufactured items to detect unauthorised refilling
US20160027021A1 (en) 2014-07-24 2016-01-28 Andrew Kerdemelidis Product Authenticator
US9628270B2 (en) * 2014-09-09 2017-04-18 Microsoft Technology Licensing, Llc Cryptographically-verifiable attestation label
CN104639543A (zh) * 2015-01-29 2015-05-20 南京三宝科技股份有限公司 基于射频识别标签id的传感器采集数据合法性检验方法
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
DE102015213412A1 (de) 2015-07-16 2017-01-19 Siemens Aktiengesellschaft Verfahren und Anordnung zum sicheren Austausch von Konfigurationsdaten einer Vorrichtung

Also Published As

Publication number Publication date
EP3335370B1 (en) 2019-05-01
US10587403B2 (en) 2020-03-10
HK1257075B (zh) 2020-07-03
CN107852328A (zh) 2018-03-27
EA036066B1 (ru) 2020-09-22
TR201910315T4 (tr) 2019-08-21
EA201792664A1 (ru) 2018-07-31
JP2018523388A (ja) 2018-08-16
JP7068826B2 (ja) 2022-05-17
WO2017025645A1 (en) 2017-02-16
PL3335370T3 (pl) 2019-11-29
US20180205543A1 (en) 2018-07-19
CN107852328B (zh) 2021-04-06
EP3335370A1 (en) 2018-06-20
BR112017027643A2 (pt) 2018-09-11

Similar Documents

Publication Publication Date Title
CN101369889B (zh) 一种对文档进行电子签名的方法
AU2019419934A1 (en) Methods and systems for preparing and performing an object authentication
CN106548353B (zh) 一种商品防伪码生成与验证方法
ES2738415T3 (es) Ofuscación o aleatorización mejorada para una identificación y verificación seguras de productos
CN109478214A (zh) 用于证书注册的装置和方法
US10917245B2 (en) Multiple authorization modules for secure production and verification
CN108768975A (zh) 支持密钥更新和第三方隐私保护的数据完整性验证方法
CN104184736B (zh) 一种实现安全云计算的方法和系统
ES2728680T3 (es) Identificación y verificación seguras de productos
CN101496021A (zh) 用于为医疗设备产生访问数据的方法
CN108140076B (zh) 用于安全产品标识符的具有容错的验证
HU231480B1 (hu) Időzáras titkosító eljárás, megfejtő eljárás időzáras titkosításhoz, valamint ezekhez való számítógépes rendszer, számítógépes program és számítógéppel olvasható adathordozó
CN1264305C (zh) 生成加密签名以及与产品副本一起使用此类签名的技术
JP6735062B2 (ja) 乱数列生成装置、方法及びプログラム
KR101375807B1 (ko) 데이터 관리 장치
CN116488903A (zh) 密钥管理方法、装置、计算机设备及存储介质
CN117313157A (zh) 区块链上基于矩阵结构的康复数据属性成员可撤销方法
CN113935054A (zh) 基于区块链的数字身份更新方法、装置、设备及存储介质
BR112017015025B1 (pt) Método para inicializar um processo para controlar com segurança uma instalação de produção