ES2283297T3 - Procedimiento para asegurar la utilizacion de un software a partir de una unidad de tratamiento y de memorizacion de un cogido secreto y sistema para realizar la aplicacion. - Google Patents

Procedimiento para asegurar la utilizacion de un software a partir de una unidad de tratamiento y de memorizacion de un cogido secreto y sistema para realizar la aplicacion. Download PDF

Info

Publication number
ES2283297T3
ES2283297T3 ES00922767T ES00922767T ES2283297T3 ES 2283297 T3 ES2283297 T3 ES 2283297T3 ES 00922767 T ES00922767 T ES 00922767T ES 00922767 T ES00922767 T ES 00922767T ES 2283297 T3 ES2283297 T3 ES 2283297T3
Authority
ES
Spain
Prior art keywords
data
reconstitution
generation
vtcortauna
modified
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.)
Expired - Lifetime
Application number
ES00922767T
Other languages
English (en)
Inventor
Jean-Christophe Cuenod
Gilles Sgro
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.)
Validy SAS
Original Assignee
Validy SAS
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 Validy SAS filed Critical Validy SAS
Application granted granted Critical
Publication of ES2283297T3 publication Critical patent/ES2283297T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento para asegurar la utilización de un software (2) a partir de una unidad (11) de tratamiento y de memorización de al menos un código secreto (S), funcionando el software en un sistema de tratamiento de datos (3u), que tiene una función de generación de datos, llamado entonces sistema de tratamiento de datos de generación (3g) y que tiene una función de reconstitución de datos, llamado entonces sistema de tratamiento de datos de reconstitución (3u), caracterizado porque la fase de utilización del software (2) consiste en - una sub-fase de generación de datos modificados (D''), que permite: - para una primera categoría de usuarios que poseen una unidad de tratamiento y de memorización llamada unidad de generación (11g), comprendiendo dicha unidad de generación (11g) al menos un código secreto de generación (Sg), - establecer, a partir del software (2), unos dados, llamados originales (D), que están asociados a dicho software - generar al menos un parámetro de entrada de generación(Peg) que está constituido por al menos una parte de dichos datos originales (D).

Description

Procedimiento para asegurar la utilización de un software a partir de una unidad de tratamiento y de memorización de un código secreto y sistema para realizar la aplicación.
Campo técnico
La presente invención pertenece al campo técnico de los sistemas de tratamiento de datos en sentido general y se refiere, más precisamente, a los medios para asegurar la utilización de un programa o de un software que funciona en dichos sistemas de tratamiento de datos.
El objeto de la invención se refiere, más particularmente, a los medios para asegurar la utilización de un software a partir de una unidad de tratamiento y de memorización de un código secreto, designado comúnmente por tarjeta de chip.
Técnica anterior
En el campo técnico anterior, el principal inconveniente se refiere al empleo no autorizado de software por usuarios que no han adquirido derechos de licencia. Esta utilización ilícita de software provoca un perjuicio manifiesto para los editores y los distribuidores de software. Para evitar tales copias ilícitas, se han propuesto en el estado de la técnica diversas soluciones para proteger el software. Así, por ejemplo, se conoce una solución de seguridad que consiste en utilizar un sistema material de protección, tal como un elemento físico llamado clave de protección o "dongle" en terminología anglo-sajona. Tal clave de protección debería garantizar al editor de un software la ejecución del software únicamente en presencia de la clave.
Ahora bien, debe constatarse que tal solución es ineficaz, puesto que presenta el inconveniente de ser fácilmente eludible. Una persona mal intencionada o pirata puede suprimir, con la ayuda de herramientas especializadas, tales como desensambladores, las instrucciones de control. Entonces es posible realizar copias ilícitas que corresponden a versiones modificadas del software que no tienen ya ninguna protección. Además, esta solución no se puede generalizar a todos los softwares, en la medida en que es difícil conectar más de dos claves de protección en una misma máquina.
La solicitud de patente EP 0 191 162 describe un procedimiento para asegurar el cifrado de un software para evitar una utilización no autorizada. Tal procedimiento consiste en cifrar el programa con la ayuda de una clave única, registrarlo en un soporte de distribución, utilizar para la ejecución del programa un ordenador que comprende una memoria protegida y medios criptográficos protegidos que incluyen una clave secreta única para este ordenador. El procedimiento consiste en suministrar al usuario del programa una palabra de paso secreta única que depende de la clave del programa y de la clave del ordenador, con el fin de que el ordenador pueda descifrar y ejecutar el programa en su memoria protegida. De acuerdo con una segunda forma de realización, una tarjeta de chip que posee una clave única puede ser asociada al ordenador, de tal manera que en este caso, la palabra de paso secreta única suministrada al usuario depende de la clave del programa y de la clave de la tarjeta de chip.
El inconveniente principal de este procedimiento es que se necesita para la utilización del programa un ordenador que tiene una memoria protegida. Ahora bien, los ordenadores convencionales no poseen tal característica, lo que limita considerablemente el desarrollo de este procedimiento.
Otro inconveniente en su aplicación práctica que necesita, por parte del usuario, la gestión de solicitar a un centro de distribución de palabras de paso, la palabra de paso que corresponde al programa y que depende del ordenador o de la tarjeta de chip del usuario.
Otro inconveniente de este procedimiento es que se necesitan tantos códigos secretos como tarjetas de chip existen, y obligar al centro de distribución de las palabras de paso a generar todos estos códigos secretos.
Descripción de la invención
El objeto de la invención pretende remediar los inconvenientes de la técnica anterior proponiendo un procedimiento para asegurar la utilización de un software a partir de una unidad de tratamiento y de memorización de un código secreto, concebido para ser ejecutado en un ordenador convencional, y que no necesita ninguna gestión por parte del usuario ante un centro de distribución de palabras de paso.
Para conseguir tal objetivo, el procedimiento según la invención pretende asegurar un software de utilización a partir de una unidad de tratamiento y de memorización de al menos un código secreto, funcionando el software en un sistema de tratamiento de datos.
Un procedimiento de este tipo se define en la reivindicación independiente 1.
El procedimiento según la invención no se basa en un cifrado del software antes de su distribución, sino en una modificación de los datos generados durante la utilización del software. La utilización de una unidad de tratamiento y de memorización de un código secreto permite modificar de manera no previsible los datos y reconstituir los datos originales con vistas a utilizarlos. Hay que indicar que la unidad de tratamiento y de memorización es suministrada durante la adquisición del software y que el usuario no tiene que realizar ninguna gestión ante un organismo de distribución de las palabras de paso.
El procedimiento según la invención permite de esta manera asegurar un software de utilización para la ejecución de una unidad de tratamiento y de memorización de un código secreto, que presenta la particularidad de conservar la información confidencial incluso después de varias utilizaciones del código secreto. De esta manera, parece que toda versión derivada del software que trate de funcionar en la unidad de tratamiento y de memorización correspondiente, es incapaz de generar o de servirse de los datos producidos por el software original, en la medida en que el código secreto contenido en la unidad de tratamiento y de memorización de reconstitución está fuera de toda previsión. La utilización de tal código secreto permite modificar de manera no previsible el formato de almacenamiento de datos, de tal manera que la utilización de los datos modificados no permite obtener un funcionamiento correcto del software si el usuario no posee el código secreto de reconstitución. El objeto de la invención encuentra una aplicación particularmente ventajosa, principalmente en el caso de software que permite el intercambio de datos, como por ejemplo software de edición o de archivo.
Otro aspecto de la invención es un dispositivo tal como se define en la reivindicación independiente 10. Otros modos de realización de la invención se especifican en las reivindicaciones dependientes alternativas.
Otras diversas características se deducen a partir de la descripción realizada a continuación con referencia a los dibujos anexos que muestran, a título de ejemplos no limitativos, formas de realización y de ejecución del objeto de la invención.
\vskip1.000000\baselineskip
Breve descripción de los dibujos
La figura 1 es un esquema que ilustra un ejemplo de realización material que permite la ejecución del objeto de la invención.
Las figuras 2A y 2B son esquemas de principio, respectivamente, de generación de datos modificados asociados a un software, y de reconstitución de los datos originales, según una primera variante de realización.
Las figuras 3A y 3B son esquemas de principio, respectivamente, de generación de datos modificados, y de reconstitución de los datos originales según una segunda variante de realización.
\vskip1.000000\baselineskip
Mejor manera de realizar la invención
La figura 1 ilustra un ejemplo de realización de un dispositivo 1 para asegurar la utilización de un programa o de un software 2 en sentido general. El dispositivo de seguridad 1 comprende un sistema de tratamiento de datos 3 de todo los tipos conocidos en sí. En el ejemplo considerado, el sistema de tratamiento de datos 3 constituye un ordenador, pero debe considerarse que tal sistema de tratamiento de datos 3 puede formar parta integrante de diversas máquinas, dispositivos o vehículos en sentido general. En el ejemplo considerado, el sistema de tratamiento de datos 3 comprende al menos un procesador 4, al menos una memoria de trabajo 5, al menos un soporte de memorización de datos 6 y al menos un circuito de interfaz de entradas y salidas 7. Clásicamente, los diversos componentes del sistema de tratamiento de datos 3 están conectados entre sí por medio de un bus de comunicación 8. El circuito de interfaz 7 está conectado a un lector 10 de una unidad 11 de tratamiento y de memorización de al menos un código secreto. En el ejemplo ilustrado, la unidad de tratamiento y de memorización de una tarjeta e chip destinada a ser escrita o leída por el lector 10, pero debe considerarse que tal unidad de tratamiento y de memorización 11 se puede presentar en forma de una clave material de cualquier tipo, conectada sobre un circuito de entrada/salida, directamente sobre el bus de comunicación 8, o por cualquier otro medio de comunicación, tal como un enlace de radio, por ejemplo. De una manera general, la unidad de tratamiento y de memorización 11 comprende al menos un código secreto o un dispositivo de memorización de una información codificada S, medios algorítmicos de tratamiento de datos y un sistema de intercambio de datos entre la unidad 11 y el sistema de tratamiento de datos 3. Clásicamente, la unidad de tratamiento y de memorización 11 está realizada por una tarjeta de chip.
El dispositivo 1 descrito anteriormente permite la ejecución de un procedimiento para asegurar la utilización de un software 2. Para hacerlo, la fase de utilización del software 2 será considerada descompuesta en tres sub-fases, a saber:
-
una sub-fase llamada funcional en el curso de la cual el usuario utiliza las funcionalidades del software,
-
una sub-fase de creación o de generación de datos modificados, correspondiendo estos datos modificados a datos originales creados o generados por el software o que deben ser protegidos,
-
y una sub-fase de reconstitución de los datos originales que permite la utilización del software con los datos modificados.
Así, pues, cuando el dispositivo 1 es utilizado en una sub-fase de generación, se añade un índice g a las referencias de los elementos constitutivos de tal dispositivo. De la misma manera, en la fase de utilización o más precisamente de reconstitución, se añade un índice "u" a las referencias de los elementos constitutivos de este dispositivo 1. Hay que indicar que los sistemas de tratamiento de datos 3_{g} y 3_{u} pueden ser idénticos o diferentes y que las unidades de tratamiento y de memorización 11_{g} y 11_{u} pueden ser idénticas o diferentes.
Las figuras 2A y 2B ilustran un primer ejemplo de realización de un procedimiento de traducción o de codificación de datos asociados a un software determinado. Más precisamente, la figura 2A ilustra la sub-fase de generación de datos modificados D', mientras que la figura 2B describe la sub-fase de reconstitución de los datos originales.
En la sub-fase de tratamiento de datos, llamada de generación, se crean o generan por el software 2 datos llamados originales D asociados al software 2 (figura 2A). Estos datos originales D constituyen datos que deben ser protegidos teniendo en cuenta su interés económico. Debe considerarse que estos datos originales D son datos de intercambio con el software, pero no constituyen necesariamente datos indispensables para el funcionamiento del software. Estos datos originales D pueden constituir, por ejemplo, un fichero de intercambio de datos de un tratamiento de texto o datos de un editor gráfico. En el curso de esta sub-fase de generación, los datos originales D son modificados para obtener datos modificados D' que sirven de datos de intercambio en lugar de los datos originales D. En la sub-fase llamada de reconstitución, estos datos modificados D' son retraducidos para permitir reconstituir los datos originales D. El software 2 es capaz, en la mayor parte de los casos, de modificar y de reconstituir los datos.
Conforme a la invención, se elige un parámetro de entrada de generación P_{eg} para la unidad de tratamiento y de memorización llamada de generación 11g, designada por unidad de generación 11g en la descripción siguiente. En el ejemplo de realización ilustrado en la figura 2A, el parámetro de entrada de generación P_{eg} está constituido por al menos una parte o la totalidad de los datos originales D. Bien entendido, el parámetro de entrada de generación P_{eg} puede comprender, en asociación con los datos originales D, otros datos no asociados al software 2.
El parámetro de entrada de generación P_{eg} es transferido desde el sistema de tratamiento de datos llamado de generación 3_{g}, designado por sistema de generación 3_{g} en la descripción siguiente, a la unidad de generación 11_{g}. Esta unidad de generación 11_{g} está adaptada para asegurar la determinación de al menos un parámetro de salida de generación P_{sg} a partir de al menos un código secreto de generación S_{g} y del parámetro de entrada de generación P_{eg}. La unidad e generación 11g comprende de una manera habitual al menos un código secreto de generación S_{g}.
Hay que indicar que el código secreto de generación S_{g} puede estar constituido o bien por al menos una función secreta que, a partir del parámetro de entrada de generación P_{eg}, genera el parámetro de salida de generación P_{sg}, ya sea por al menos una información secreta I_{sg} y al menos una función de conversión F_{cg} conocida o no, que permite generar a partir del parámetro de entrada de generación P_{eg} y de la información secreta I_{sg}, el parámetro de salida de generación P_{sg}. En los ejemplos ilustrados, el código secreto de generación S_{g} está constituido por una información secreta I_{sg} y una función de conversión F_{cg}. La aplicación de la unidad de generación 11_{g} permite, cuando el secreto de generación S_{g} no se conoce, hacer difícil, incluso imposible, la deducción del parámetro de salida de generación P_{sg}, a partir del parámetro de entrada de generación P_{eg}.
El parámetro de salida de generación P_{sg} es transferido desde la unidad de generación 11_{g} hasta el sistema de generación 3_{g}. El sistema de generación 3_{g} está adaptado para ejecutar al menos una función de generación F_{g} utilizando, al menos en parte, el parámetro de salida de generación P_{sg}, con vistas a obtener datos modificados D'. En el ejemplo de realización ilustrado en la figura 2A, la función de generación F_{g} suministra los datos modificados D' a partir del parámetro de salida de generación P_{sg}. En otros términos, los datos modificados D' corresponden al parámetro de salida de generación P_{sg}.
El parámetro de salida de generación P_{sg} es transferido desde la unidad de regeneración 11_{g} hasta el sistema de regeneración 3_{g}. El sistema de generación 3_{g} está adaptado para ejecutar al menos una función de generación F_{g} utilizando, al menos en parte, el parámetro de salida de generación P_{sg}, con vistas a obtener datos modificados D'. En el ejemplo de realización ilustrado en la figura 2A, la función de generación F_{g} suministra los datos modificados D' a partir del parámetro de salida de generación P_{sg}. En otros términos, los datos modificados D' corresponden al parámetro de salida de generación P_{sg}.
Hay que indicar que durante la sub-fase de generación, existen dos categorías de usuarios. Así, pues, permite a una primera categoría de usuarios que poseen una unidad de generación 11_{g} que comprende el código secreto de generación S_{g}, traducir los datos originales D para obtener datos modificados D', mientras que una segunda categoría de usuarios, que no poseen la unidad de generación 11_{g}, es decir, el código secreto de generación S_{g}, puede a lo mejor generar los datos originales D sin poder traducirlos para obtener datos modificados D'.
La figura 2B ilustra el procedimiento que permite traducir de manera inversa los datos D' modificados según el principio descrito con relación a la figura 2A, con el fin de recuperar o de reconstituir los datos originales D. Así, en tal sub-fase de reconstitución de los datos originales, el procedimiento de acuerdo con la invención es ejecutado con la ayuda de un sistema de tratamiento de datos llamado de reconstitución 3_{u} único o diferente del sistema de generación 3_{g}. El sistema de tratamiento de datos de reconstitución 3_{u} está designado por el sistema de reconstitución 3_{u} en la descripción siguiente.
El procedimiento consiste en seleccionar un parámetro de entrada de reconstitución P_{eu} constituido por al menos una parte de los datos modificados D'. En el ejemplo de realización ilustrado en la figura 2B, el parámetro de entrada de reconstitución P_{eu} comprende al menos la totalidad de los datos modificados D'.
El parámetro de entrada de reconstitución P_{eu} es transferido desde el sistema de reconstitución 3_{u} hasta una unidad de tratamiento y de memorización, llamada de reconstitución 11_{u} designada por la unidad de reconstitución 11_{u} en la descripción siguiente. Esta unidad de reconstitución 11_{u} comprende al menos un código secreto de reconstitución S_{u} que es idéntico o diferente del código secreto de generación S_{g}, pero que está adaptado para permitir recuperar o reconstituir los datos originales D a partir de los datos modificados D'. En el ejemplo ilustrado, el código secreto de reconstitución Su está constituido por una información secreta I_{su} y una función conocida o no de conversión F_{cu}.
La unidad de reconstitución 11_{u} determina al menos un parámetro de salida de reconstitución P_{su} a partir del código secreto de reconstitución Su y del parámetro de entrada de reconstitución P_{eu}. La unidad de reconstitución 11u transfiere a continuación el parámetro de salida de reconstitución P_{su} al sistema de reconstitución 3_{u}. El sistema de reconstitución 3u ejecuta al menos una función de reconstitución Fu utilizando, al menos en parte, el parámetro de salida de reconstitución P_{su}, con vistas a obtener los datos originales D. En el ejemplo de realización ilustrado en la figura 2B, la función de reconstitución Fu suministra los datos originales D a partir del parámetro de salida de reconstitución P_{su}. En otros términos, según un ejemplo preferido de esta variante, los datos originales D corresponden al parámetro de salida de reconstitución P_{su}.
Según la realización preferida del ejemplo ilustrado en las figuras 2A y 2B, los datos originales D son transferidos a la unidad de generación 11_{g} que suministra los datos modificados D'. De la misma manera, en la sub-fase de reconstitución, los datos modificados D' son transferidos a la unidad de reconstitución 11_{u} que suministra los datos originales D.
De la descripción que precede se deduce que pueden aparecer dos categorías de usuarios durante esta sub-fase de reconstitución. Así, el usuario que posee una unidad de reconstitución 11_{u}, que comprende el código secreto de reconstitución S_{u} asignado a un software determinado, puede reconstituir y utilizar los datos originales asociados a dicho software. Por el contrario, un usuario que no posee la unidad de reconstitución 11_{u} correspondiente, es decir, el código secreto de reconstitución S_{u}, puede utilizar el software sin los datos originales D y a lo mejor con los datos modificados D'.
La eficacia del procedimiento según la invención es real, incluso si las funciones de conversión F_{cg}, F_{cu} son conocidas e incluso si las funciones de generación F_{g} y de reconstitución F_{u} y los parámetros de entrada de generación P_{eg} y de reconstitución P_{eu} y los parámetros de salida de generación P_{sg} y de reconstitución P_{su} pueden ser observados y modificados por una persona mal intencionada. Por el contrario, es necesario que los códigos secretos de generación S_{g} y de reconstitución Su sean conservados. En efecto, una persona intencionada es incapaz de recuperar la modificación de los datos D en D' y la modificación inversa de los datos D' en D. Está claro que tal persona puede modificar el software 2, de manera que no tenga necesidad de la unidad de tratamiento y de memorización. En este caso, los datos generados por tal software pirata pueden ser utilizados por este software pirata. A pesar de todo, es imposible para este software pirata crear datos utilizables por el software 2 original o utilizar datos generados por el software 2 original. Los usuarios que poseen la unidad de generación 11_{g}, la unidad de reconstitución 11_{u} y el software 2 puede intercambiar libremente datos. Los usuarios que poseen el software pirata pueden intercambiar también datos entre sí libremente, pero los intercambios de datos entre estas dos categorías de usuarios son difíciles, si no imposibles.
En el ejemplo de realización ilustrado en las figuras 2A - 2B, los datos originales D son transferidos totalmente a una unidad de tratamiento y de memorización, Para mejorar la velocidad del dispositivo, las figuras 3A - 3B describen una variante preferida de realización del procedimiento de seguridad conforme a la invención. Bien entendido, los elementos comunes al ejemplo anteriormente descrito conservan referencias idénticas y no se explican de nuevo.
Según un ejemplo de realización ilustrado en la figura 3A, debe considerarse que los datos originales D están descompuestos en al menos una primera parte D1 y una segunda parte D_{2}. En el ejemplo de realización ilustrado en la figura 3A, el parámetro de generación Peg está constituido por la primera parte D_{1} de los datos originales D. Bien entendido, la descomposición de los datos originales D en al menos dos partes es totalmente arbitraria. El parámetro de entrada de generación P_{eg}, a saber, en el ejemplo ilustrado, la primera parte Da de los datos originales, es transferido de esta manera desde el sistema de generación 3_{g} hasta la unidad de generación 11_{g}. La unidad de generación 11_{g} determina el parámetro de salida de generación P_{sg} a partir del código secreto de generación S_{g} y de la primera parte D1 de los datos.
El parámetro de salida de generación P_{sg} es transferido desde la unidad de generación 11_{g} hasta el sistema de generación 3_{g}. Los datos originales D son modificados a continuación, con vistas a obtener datos modificados D', por al menos una función de generación F_{g} que comprende una función de traducción T que permite traducir únicamente la segunda parte D_{2} de los datos originales, con vistas a obtener una segunda parte modificada D'_{2} de los datos. La función de traducción T que puede estar constituida, por ejemplo, por una función inversible, utiliza el parámetro de salida de generación P_{sg} para su operación de traducción. Tal como se deduce de la figura 3A, la función de generación F_{g} está adaptada para hacer, en salida, que los datos modificados D' comprendan también la primera parte D_{1} de los datos originales. Así, los datos modificados D' están compuestos por la primera parte D_{1} de los datos originales y la segunda parte modificada D'_{2} de los datos. Los datos modificados D'comprenden así, por un lado, una parte no modificada D1 que es utilizada para permitir la determinación del parámetro de salida de generación Psg a partir de un código secreto de generación S_{g} y, por otro lado, una segunda parte D'_{2} codificada a partir del parámetro de salida de generación P_{sg}.
La figura 3B ilustra el procedimiento que permite traducir de manera inversa los dato D' modificados según el principio descrito con relación a la figura 3A. Esta figura 3B ilustra así la sub-fase de reconstitución de los datos originales D.
El procedimiento descompone los datos modificados D' en una primera parte y en una segunda parte. Según el ejemplo ilustrado en las figuras 3A y 3B, se eligen como primera y segunda partes de los datos modificados D', respectivamente, la primera parte D_{1} de los datos originales y la segunda parte modificada D'_{2} de los datos. La primera parte de los datos modificados D', a saber, D_{1}, es transferida desde el sistema de reconstitución 3u hasta la unidad de reconstitución 11_{u}. La unidad de reconstitución 11_{u} asegura a continuación la determinación de al menos un parámetro de salida de reconstitución P_{su} a partir de un código secreto de reconstitución S_{u} y de la primera parte de los datos modificados, a saber, D_{1}.
La unidad de reconstitución 11_{u} asegura a continuación la transferencia del parámetro de salida de reconstitución Psu de la unidad de reconstitución 11_{u} hasta el sistema de reconstitución 3_{u}. El sistema de reconstitución 3_{u} asegura, por una función de reconstitución F_{u}, la modificación de los datos modificados D', con vistas a retornar a los datos originales D. La función de reconstitución F_{u} comprende una función de traducción inversa Ti que permite traducir la segunda parte de los datos modificados utilizando el parámetro de salida de reconstitución P_{su}, con vistas a retornar a los datos originales D. Por ejemplo, la función de traducción inversa T_{i} puede estar constituida por la función inversa de la función de traducción T o por una combinación de funciones elementales equivalentes. En el ejemplo de realización ilustrado en las figuras 3A y 3B, la función de traducción inversa Ti utiliza el parámetro de salida de reconstitución P_{su} para traducir la segunda parte modificada D'_{2} de los datos, con vistas a recuperar la segunda parte D_{2} de los datos originales. Además, la función de reconstitución Fu está adaptada para incorporar la primera parte D1 de los datos a los datos originales D. Así, los datos originales D son reconstituidos por la primera parte D_{1} de los datos originales y la segunda parte D_{2} de los datos originales.
Según una característica preferida de realización anexa al ejemplo descrito en las figuras 3A y 3B, la primera parte D1 de los datos originales, destinada a ser transferida a la unidad de tratamiento y de memorización, es tratada para disminuir el número de las operaciones de tratamiento ejecutadas por dicha unidad. La primera parte D_{1} de los datos originales es suministrada así en entrada al menos a una función de traducción intermedia de generación H_{g}, tal como una función no inversible por ejemplo del tipo "one way hash", con el fin de obtener al menos un parámetro de entrada intermedio de generación P_{eig}. Este parámetro de entrada intermedio de generación P_{eig} determinado por el sistema de generación 3_{g}, es transferido por este último a la unidad de generación 11_{g}, de manera que esta última puede asegurar la determinación del parámetro de salida P_{sg} a partir del código secreto de generación S_{g} y del parámetro de entrada constituido por el parámetro de entrada intermedio de generación P_{eig}. Bien entendido, durante la traducción de los datos modificados D' para volver a los datos originales D (figura 3B), el sistema de reconstitución 3_{u} define el parámetro de entrada intermedio de reconstitución P_{eiu} a partir de la primera parte D_{1} de los datos originales y utilizando una función de traducción intermedia de reconstitución H_{u}, tal como una función no inversible, por ejemplo del tipo "one way hash". Este parámetro de entrada intermedio de reconstitución P_{eiu} es transferido a la unidad de reconstitución 11_{u} para permitir la determinación del parámetro de salida de reconstitución P_{su}.
Según una característica preferida de realización de la invención, los datos modificados D' son escritos o registrados sobre el soporte 6 de memorización de los datos, asociado al sistema de tratamiento de datos 3 para permitir la reconstitución de los datos modificados D' durante la sub-fase de reconstitución del software 2. Bien entendido, el soporte 6 de memorización de datos puede estar constituido de cualquier manera conocida, tal como por ejemplo un disco duro, una banda magnética, un CD ROM, o cualquier otro dispositivo utilizado con vistas al almacenamiento o a una transmisión de estos datos.
En los ejemplos descritos anteriormente, se deduce que en la sub-fase de generación, los datos modificados se obtienen en el curso de una etapa de tratamiento que ejecuta un parámetro de salida de generación P_{sg} y un código secreto de generación S_{g}. Bien entendido, puede estar previsto reiniciar n veces esta etapa de tratamiento para aumentar la complejidad de codificación de los datos. Así, las operaciones siguientes pueden ser reiniciadas tantas veces como sean necesarias, a saber:
-
descomponer los datos modificados obtenidos anteriormente en al menos una primera y una segunda partes;
-
determinar al menos un parámetro de salida de generación a partir de una función de uno o de varios códigos secretos diferentes o idénticos al o a los utilizados anteriormente, y a partir de una parte de los datos;
-
modificar la otra parte de los datos por una función de traducción idéntica o diferente a la utilizada anteriormente;
-
y reconstituir datos modificados después de cada fase de tratamiento de los datos.
\newpage
Según este ejemplo de realización, durante la sub-fase de reconstitución, las operaciones de traducción de los datos modificados para reconstituir los datos originales, son reiniciadas en el orden inverso, un número de veces n idéntico al número de etapas efectuadas durante la sub-fase de generación de los datos modificados.
Según una variante preferida de realización del ejemplo ilustrado en las figuras 3A y 3B, la descomposición de los datos originales D se realiza en dos partes D_{1}, D_{2} de tamaños sensiblemente equivalentes. Después de una primera etapa de tratamiento, se obtienen datos modificados D' constituidos por la primera parte D_{1} de los datos originales y la segunda parte modificada D'_{2} de los datos. En una segunda etapa de tratamiento, el papel de las partes D_{1} y D_{2} se invierte. Así, la segunda parte modificada D'_{2} de los datos es utilizada como parámetro de entrada de la unidad de generación 11g, mientras que la primera parte D_{1} de los datos originales es modificada por una función de traducción. Se deduce que el conjunto de los datos originales D está modificado. Bien entendido, durante la sub-fase de reconstitución, se realizan operaciones inversas con el fin de recuperar los datos original D.
El procedimiento según la invención descrito anteriormente puede ser realizado con diferentes funciones de traducción T según los objetivos deseados por el editor del software protegido. Por ejemplo, la función de traducción T puede ser una función de cifrado. En este caso, los datos traducidos son manifiestamente incomprensibles. Según otro ejemplo, la función de traducción T puede ser una función de modificación menor pseudo-aleatoria de las cifras contenidas en los datos originales. De esta manera, el usuario de un software parata puede utilizar los datos generados por la versión original del software, pero éstos son erróneos. De la misma manera, un usuario de un software original puede utilizar los datos generados por el software pirata y éstos son también erróneos.

Claims (11)

1. Procedimiento para asegurar la utilización de un software (2) a partir de una unidad (11) de tratamiento y de memorización de al menos un código secreto (S), funcionando el software en un sistema de tratamiento de datos (3_{u}), que tiene una función de generación de datos, llamado entonces sistema de tratamiento de datos de generación (3_{g}) y que tiene una función de reconstitución de datos, llamado entonces sistema de tratamiento de datos de reconstitución (3_{u}), caracterizado porque la fase de utilización del software (2) consiste en
\rightarrow una sub-fase de generación de datos modificados (D'), que permite:
-
\vtcortauna para una primera categoría de usuarios que poseen una unidad de tratamiento y de memorización llamada unidad de generación (11_{g}), comprendiendo dicha unidad de generación (11_{g}) al menos un código secreto de generación (S_{g}),
\bullet
\vtcortauna establecer, a partir del software (2), unos dados, llamados originales (D), que están asociados a dicho software
\bullet
\vtcortauna generar al menos un parámetro de entrada de generación (P_{eg}) que está constituido por al menos una parte de dichos datos originales (D),
\bullet
\vtcortauna transferir el parámetro de entrada de generación (P_{eg}) de dicho sistema de tratamiento de datos de generación (3_{g}) a dicha unidad de generación (11_{g}),
\bullet
\vtcortauna asegurar la determinación por dicha unidad de generación (11_{g}) de al menos un parámetro de salida de generación (P_{sg}) a partir de dicho código secreto de generación (S_{g}) y de dicho parámetro de entrada de generación (P_{eg}),
\bullet
\vtcortauna transferir dicho parámetro de salida de generación (P_{sg})desde dicha unidad de generación (11_{g}) hacia el sistema de tratamiento de datos de generación (3_{g}),
\bullet
\vtcortauna ejecutar al menos una función de generación (F_{g}) utilizando al menos en parte dicho parámetro de salida de generación (P_{sg}), con vistas a obtener datos modificados (D'),
-
\vtcortauna para una segunda categoría de usuarios que no poseen la unidad de generación (11g), poder a lo mejor generar los datos originales (D) sin poder traducirlos para obtener los datos modificados (D')
\rightarrow y una sub-fase de reconstitución de los datos originales (D), que permite
-
\vtcortauna para una primera categoría de usuarios que poseen una unidad de tratamiento y de memorización dicha unidad de reconstitución (11_{u}), comprendiendo dicha unidad de reconstitución (11u) al menos un código secreto de reconstitución (S_{u}), modificar de manera inversa, los datos modificados (D') para volver a los datos originales (D):
\bullet
\vtcortauna generar un parámetro de entrada de reconstitución (P_{eu}) constituido por al menos una parte de los datos modificados (D'),
\bullet
\vtcortauna transferir dicho parámetro de entrada de reconstitución (P_{eu}) de dicho sistema de tratamiento de datos de reconstitución (3u) a dicha unidad de reconstitución (11_{u}),
\bullet
\vtcortauna asegurar la determinación por dicha unidad de reconstitución (11_{u}) de al menos un parámetro de salida de reconstitución (P_{su}) a partir de dicho código secreto de reconstitución (S_{u}) y de dicho parámetro de entrada de reconstitución (P_{eu}),
\bullet
\vtcortauna transferir dicho parámetro de salida de reconstitución (P_{su}) de dicha unidad de reconstitución (11_{u}) a dicho sistema de tratamiento de datos de reconstitución (3_{u}),
\bullet
\vtcortauna y ejecutar al menos una función de reconstitución (F_{u}) utilizando al menos en parte el parámetro de salida de reconstitución (P_{su}), con vistas a obtener los datos originales (D),
-
\vtcortauna para una segunda categoría de usuarios que no poseen la unidad de reconstitución (11u), poder utilizar a lo mejor los datos modificados (D').
\newpage
2. Procedimiento según la reivindicación 1, caracterizado porque consiste:
\rightarrow en la sub-fase de generación de datos modificados (D'):
-
\vtcortauna en seleccionar un parámetro de entrada de generación (P_{eg}) que comprende al menos la totalidad de los datos originales (D),
-
\vtcortauna y en ejecutar una función de generación (F_{g}) que suministra los datos modificados (D') a partir del parámetro de salida de generación (P_{sg}),
\rightarrow y en la sub-fase de reconstitución de los datos originales (D):
-
\vtcortauna en seleccionar un parámetro de entrada de utilización (P_{eu}) que comprende al menos en parte los datos modificados (D'),
-
\vtcortauna y en ejecutar una función de utilización (F_{u}) que suministra los datos originales (D) a partir del parámetro de salida de utilización (P_{su}),
3. Procedimiento según la reivindicación 1, caracterizado porque consiste:
\rightarrow en la sub-fase de generación de datos modificados (D'):
-
\vtcortauna en descomponer los datos originales (D) en al menos una primera parte (D_{1}) y una segunda parte (D_{2}),
-
\vtcortauna en asegurar la determinación del parámetro de salida de generación (P_{sg}) a partir del código secreto de generación (S_{g}) y del parámetro de entrada de generación (P_{cg}) constituido, al menos en parte, por la primera parte (D_{1}) de los datos originales,
-
\vtcortauna en modificar por una función de traducción (T) que forma parte de la función de generación (F_{g}), únicamente la segunda parte (D_{2}) de los datos originales, utilizando el parámetro de salida de generación (P_{sg}) con vistas a obtener una segunda parte modificada (D'_{2}) de los datos,
-
\vtcortauna y en constituir los datos modificados (D') compuestos por la primera parte (D_{1}) de los datos originales y la segunda parte modificada (D'_{2}) de los datos.
4. Procedimiento según la reivindicación 3, caracterizado porque consiste:
\rightarrow en la sub-fase de reconstitución de los datos originales (D):
-
\vtcortauna en descomponer los datos modificados (D') en una primera parte y una segunda parte, que corresponde, respectivamente, a la primera parte (D_{1}) de los datos originales y a la segunda parte modificada (D'_{2}) de los datos,
-
\vtcortauna en transferir, como parámetro de entada de reconstitución (P_{eu}), la primera parte de los datos modificados (D')del sistema de tratamiento de datos y de reconstitución (3_{u}) a la unidad de reconstitución (11_{u}),
-
\vtcortauna en modificar la segunda parte modificada (D'_{2}) de los datos por una función de traducción inversa (T_{i}) que forma parte de la función de reconstitución (F_{u}), utilizando el parámetro de salida de reconstitución (P_{su}) con el fin de recuperar la segunda parte (D_{2}) de los datos originales,
-
\vtcortauna y en reconstituir los datos originales (D) a partir de la primera parte (D1) de los datos originales y de dicha segunda parte (D2) de los datos originales.
5. Procedimiento según las reivindicaciones 3 y 4, caracterizado porque consiste:
-
\vtcortauna en seleccionar como parámetros de entrada de generación (P_{eg}) y de reconstitución (P_{eu}) parámetros de entradas intermedias, respectivamente, de generación (P_{eig}) y de reconstitución (P_{eiu}) definidos a partir de una función de traducción intermedia, respectivamente, de generación (H_{g}) y de reconstitución (H_{u}) utilizando, al menos en parte, la primera parte (D_{1}) de los datos originales,
-
\vtcortauna y en asegurar la determinación de los parámetros de salida de generación (P_{sg}) y de reconstitución (P_{su}) a partir, respectivamente, por una parte, del código secreto de generación (S_{g}) y del parámetro de entrada intermedio de generación (P_{eig}) y, por otra parte, del código secreto de reconstitución (S_{u}) y del parámetro de entrada intermedio de reconstitución (P_{eiu}).
\global\parskip0.950000\baselineskip
6. Procedimiento según la reivindicación 1, caracterizado porque consiste en escribir los datos modificados (D') sobre un soporte (56) de memorización permanente de datos, asociado al sistema de tratamiento de datos (3) para permitir la utilización de los datos modificados (D') durante la sub-fase de reconstitución de los datos originales (D).
7. Procedimiento según la reivindicación 3, caracterizado porque consiste en reiniciar, en la sub-fase de generación de datos modificados (D'), n veces, con n \geq 1, las operaciones:
-
\vtcortauna de descomposición de los datos modificados anteriormente obtenidos en al menos una primera y segunda partes,
-
\vtcortauna de determinación de al menos un parámetro de salida de generación a partir de una función de uno o de varios códigos secretos de generación diferentes o idénticos a los utilizados anteriormente, y de una parte de los datos,
-
\vtcortauna de modificación de la otra parte de los datos por una función de traducción idéntica o diferente a la utilizada anteriormente,
-
\vtcortauna y de constitución de los datos modificados después de cada fase de modificación de los datos.
8. Procedimiento según la reivindicación 7, caracterizado porque consiste, en la sub-fase de generación de datos modificados (D'):
-
\vtcortauna en una primera etapa de tratamiento.
\bullet
\vtcortauna en descomponer los datos originales (D) en una primera parte (D_{1}) y una segunda parte (D_{2}),
\bullet
\vtcortauna y en constituir datos modificados compuestos por la primera parte (D_{1}) de los datos originales y la segunda parte modificada (D'_{2}) de los datos,
-
\vtcortauna y en una segunda etapa de tratamiento:
\bullet
\vtcortauna en utilizar la segunda parte modificada (D'_{2}) de los datos, como parámetro de entrada de la unidad de generación (11g), mientras que la primera parte (D1) de los datos originales es modificada por una función de traducción, de tal manera que el conjunto de los datos originales es modificado.
9. Procedimiento según las reivindicaciones 4 y 7 í 4 y 8, caracterizado porque consiste en reiniciar n veces en el orden inverso, con n \geq 1, las operaciones de traducción de los datos modificados para volver a los datos originales.
10. Dispositivo para asegurar la utilización de un software (2) que comprende al menos un sistema de tratamiento de datos (3) al que está asociada una unidad (11) de tratamiento y de memorización de al menos un código secreto, caracterizado porque comprende durante la utilización de dicho software:
-
\vtcortauna en una sub-fase de generación de datos modificados (D'):
\bullet
\vtcortauna un sistema de tratamiento de datos llamado de generación de datos (3_{g}) que comprende:
\ding{226}
medios que permiten establecer a partir del software (2) los datos llamados originales (D) asociados a dicho software,
\ding{226}
medios para generar al menos un parámetro de entrada de generación (P_{eg}) constituido por al menos una parte de los datos originales,
\ding{226}
medios de transferencia del parámetro de entrada de generación (P_{eg}) del sistema de generación (3_{g}) a la unidad de tratamiento y de memorización asociada a dicha unidad de generación (11_{g}),
\ding{226}
medios que ejecutan al menos una función de generación (F_{gs})
\bullet
\vtcortauna comprendiendo dicha unidad de generación (11_{g}):
\ding{226}
medios que aseguran la determinación de al menos un parámetro de salida de generación (P_{sg}) a partir del código secreto de generación (S_{g}) y del parámetro de entrada de generación (P_{eg}),
\ding{226}
medios de transferencia del parámetro de salida de generación (P_{sg}) de la unidad de generación (11g) al sistema de generación (3g) que utiliza al menos la función de generación (F_{g}) por el desvío de dichos medios que la ejecutan, y al menos en parte el parámetro de salida de generación (P_{sg}), con vistas a obtener datos modificados (D'),
\global\parskip1.000000\baselineskip
\newpage
-
\vtcortauna y en una sub-fase de reconstitución de los datos originales (D):
\bullet
\vtcortauna un sistema de tratamiento de datos llamado de reconstitución de datos (3_{u}) que, en presencia de una unidad de tratamiento y de memorización asociada a dicha unidad de reconstitución (11_{u}) que comprende al menos un código secreto de reconstitución (S_{u}), permite volver a los datos originales (D) a partir delos datos modificados (D').
11. Dispositivo según la reivindicación 10, caracterizado porque, en la sub-fase de reconstitución de los datos originales (D):
-
\vtcortauna el sistema de reconstitución (3_{u}) comprende:
\bullet
\vtcortauna medios para determinar un parámetro de entrada de reconstitución (P_{eu}) constituido por al menos una parte de los datos modificados (D'),
\bullet
\vtcortauna medios de transferencia del parámetro de entrada de reconstitución (P_{eu}) del sistema de reconstitución (3_{u}) a la unidad de reconstitución (11_{u}),
\bullet
\vtcortauna medios que ejecutan al menos una función de reconstitución (F_{u})
-
\vtcortauna dicha unidad de reconstitución (11_{u}) comprende:
\bullet
\vtcortauna medios que aseguran la determinación de al menos un parámetro de salida de reconstitución (P_{su}) a partir del código secreto de reconstitución (S_{u}) y del parámetro de entrada de reconstitución (P_{eu}),
\ding{226}
medios de transferencia del parámetro de salida de reconstitución (P_{su}) de la unidad de reconstitución (11u) al sistema de reconstitución (3_{u}) que utiliza al menos la función de reconstitución (F_{u}) por el desvío de los medios que la ejecutan y al menos en parte el parámetro de salida de generación (P_{sg}), con vistas a obtener datos modificados (D').
ES00922767T 1999-04-28 2000-04-27 Procedimiento para asegurar la utilizacion de un software a partir de una unidad de tratamiento y de memorizacion de un cogido secreto y sistema para realizar la aplicacion. Expired - Lifetime ES2283297T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9905569A FR2793049B1 (fr) 1999-04-28 1999-04-28 Procede pour securiser l'utilisation d'un logiciel a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
FR9905569 1999-04-28

Publications (1)

Publication Number Publication Date
ES2283297T3 true ES2283297T3 (es) 2007-11-01

Family

ID=9545129

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00922767T Expired - Lifetime ES2283297T3 (es) 1999-04-28 2000-04-27 Procedimiento para asegurar la utilizacion de un software a partir de una unidad de tratamiento y de memorizacion de un cogido secreto y sistema para realizar la aplicacion.

Country Status (8)

Country Link
US (1) US7231527B1 (es)
EP (1) EP1185913B1 (es)
AT (1) ATE356387T1 (es)
AU (1) AU4305700A (es)
DE (1) DE60033808T2 (es)
ES (1) ES2283297T3 (es)
FR (1) FR2793049B1 (es)
WO (1) WO2000067093A1 (es)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
JPH08305558A (ja) * 1995-04-27 1996-11-22 Casio Comput Co Ltd 暗号化プログラム演算装置
JP3486043B2 (ja) * 1996-03-11 2004-01-13 株式会社東芝 ソフトウエア流通システムの動作方法及びソフトウエアシステム

Also Published As

Publication number Publication date
EP1185913B1 (fr) 2007-03-07
FR2793049A1 (fr) 2000-11-03
WO2000067093A1 (fr) 2000-11-09
AU4305700A (en) 2000-11-17
ATE356387T1 (de) 2007-03-15
US7231527B1 (en) 2007-06-12
FR2793049B1 (fr) 2001-08-17
DE60033808T2 (de) 2007-11-08
EP1185913A1 (fr) 2002-03-13
DE60033808D1 (de) 2007-04-19

Similar Documents

Publication Publication Date Title
JP5643318B2 (ja) 一時的な機密のセキュアストレージ方法
EP2264639B1 (en) Securing executable code integrity using auto-derivative key
EP2006792A2 (en) Encryption and decryption methods and a PLC system using said methods
US20050108532A1 (en) Method and system to provide a trusted channel within a computer system for a SIM device
JPH08305558A (ja) 暗号化プログラム演算装置
EP2264640B1 (en) Feature specific keys for executable code
JP2007013433A (ja) 暗号化データを送受信する方法及び情報処理システム
TW200947202A (en) System and method for providing secure access to system memory
CN102362280A (zh) 在电子设备中安全地存储数据的系统和方法
US20200204339A1 (en) Portable electronic device and ic module
KR100693874B1 (ko) 판독을 제어하는 마이크로프로세서를 포함한 컴퓨터 판독매체 및 이러한 매체와 통신하도록 설정된 컴퓨터
ES2720077T3 (es) Método y sistema para realizar una transacción y para realizar una verificación de acceso legítimo o uso de datos digitales
CN102782695A (zh) 硬件装置
ES2283297T3 (es) Procedimiento para asegurar la utilizacion de un software a partir de una unidad de tratamiento y de memorizacion de un cogido secreto y sistema para realizar la aplicacion.
ES2282104T3 (es) Procedimiento para asegurar un software de utilizacion a partir de una unidad de tratamiento y de memorizacion de un secreto y sistema para su aplicacion.
JP4592337B2 (ja) データ記憶装置
JPH10228374A (ja) 複製防止を施した計算機カード
CN103870769A (zh) 一种对磁盘进行保护的方法及系统
JP2002538566A5 (es)
JP2000047866A (ja) プログラム実行プロテクト方法およびicカード、並びに記録媒体
CN102129535A (zh) 基于硬件的非易失性计算机系统的加密方法及计算机
JP4832926B2 (ja) 持ち運び可能なデータストレージデバイスおよびデータの読み出し制御方法
McGregor et al. Braving the cold: New methods for preventing cold boot attacks on encryption keys
JPH043224A (ja) Icカードによるソフトモジュールの管理方法
JPS6358538A (ja) ソフトウエア保護方式