MXPA05009211A - Sistemas y metodos para la generacion y validacion de firmas basadas en la isogenia - Google Patents

Sistemas y metodos para la generacion y validacion de firmas basadas en la isogenia

Info

Publication number
MXPA05009211A
MXPA05009211A MXPA/A/2005/009211A MXPA05009211A MXPA05009211A MX PA05009211 A MXPA05009211 A MX PA05009211A MX PA05009211 A MXPA05009211 A MX PA05009211A MX PA05009211 A MXPA05009211 A MX PA05009211A
Authority
MX
Mexico
Prior art keywords
signature
product
curve
public key
isogenies
Prior art date
Application number
MXPA/A/2005/009211A
Other languages
English (en)
Inventor
Y Jao David
l montgomery Peter
Venkatesan Ramarathnam
Boyko Victor
Original Assignee
Microsoft Corporation*
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 Microsoft Corporation* filed Critical Microsoft Corporation*
Publication of MXPA05009211A publication Critical patent/MXPA05009211A/es

Links

Abstract

Se describen técnicas para generar y validar firmas. En una implementación, un método incluye la generación de una firma utilizando una pluralidad de isogenias incluidas en una clave privada e incorporando la firma y una clave pública en un producto, en el cual la clave pública estáconfigurada para validar la firma.

Description

SISTEMAS Y MÉTODOS PARA LA G E N ERACIÓN Y VALIDACIÓN DE FIRMAS BASADA EN LA ISOG ENIA Cam po de la Invención La primera invención se refiere generalmente a firmas y más particularmente se refiere a firmas basadas en la isogenia. La falsificación y piratería de los productos es un problema creciente que afecta no solamente a los fabricantes de los productos, si no también a los consumidores de los productos pirateados. Por ejemplo , un prod ucto copiado, tal como u na herramienta puede no haber sido man ufacturado para tener la calidad que es equivalente al prod ucto que está siendo copiado. Por lo tanto, el prod ucto copiado puede no ser adecuado para los propósitos pretendidos por el consumidor. Esto se puede complicar todavía más, cuando el consumidor cree que el producto es auténtico, dándole por lo tanto al consumidor, una impresión falsa de la calidad de los prod uctos del fabricante. En otro ejemplo, el producto puede ser una versión copiada de software. Sin em bargo , debido a que el software no es auténtico, el software pudiera no utilizar todas las funciones que están d ispon ibles para las versiones auténticas del software, tales como características que están incl uidas en el software mismo, el acceso a las actualizaciones proporcionadas por el fabricante del software, y así sucesivamente. Una técn ica que es utilizada para limitar la falsificación y piratería de prod uctos es el uso de firmas. Por ejem plo, las firmas pueden ser generadas utilizando una técn ica matemática . Para verificar la firma, la firma es procesada para identificar si está presente en la misma una propiedad matemática. De ser así , la firma general mente es considerada válida . Sin embargo, conforme contin úa creciendo la cantidad de recursos de computación disponibles para los consumidores, existe una necesidad correspondiente de desarrollar técn icas mejoradas para la generación y validación de firmas, de modo que la disponibilidad creciente de los recursos de computadora , no pueda ser utilizada para "revelar" la firma . Sumario de la Invención Se describen técn icas para la generación y validación de firmas. En una implementación , un método incluye la generación de una firma utilizando una pl uralidad de isogenias incluida en una clave privada e incorporando la firma y una clave pública en un producto, en el cual, la clave pública está config urada para validar la firma. En otra implementación , un método incl uye recibir una firma y validar la fi rma utilizando una clave pú blica que tiene una plu ralidad de resultados de la aplicación de una pluralidad de isogenias hasta u n pu nto en una curva el íptica. En una i mplementación adicional , u n medio legible por com putadora incluye una firma, una clave pública que tiene una pl uralidad de imágenes obten idas aplicando u na pluralidad de isogenias hasta un punto en una curva elíptica , y uno o más módulos los cuales se pueden ejecutar para validar la firma que utiliza la clave pública . Breve Descri pción de los Dibu jos La figura 1 es una ilustración de un entorno en una implementación de ejem plo q ue puede operar para emplear técnicas para la generación y validación de firmas. La fig u ra 2 es una ilustración de un sistema en una implementación de ejemplo que m uestra con mayor detalle el proveedor de un prod ucto-cliente de la figura 1 . La figura 3 es un diagrama de flujo que ilustra un procedim iento en una implementación de acuerdo con la cual es generada una firma utilizando una técnica basada en la isogen ia, la cual incluye u na clave privada de la fig ura 2. La figura 4 es un diagrama de flujo que il ustra un procedimiento en una implementación de ejemplo en el cual la firma es generada por medio del procedimiento de la figura 3 y es verificada utilizando una clave pública de la fig ura 2, la cual está también incluida en el producto que tiene la firma . La figura 5 es un diagrama de flujo q ue ¡lustra otro procedimiento de una implementación de ejemplo en la cual son utilizadas técnicas de isogenia para verificar una firma. Se utilizan los mismos n úmeros de referencia en los ejemplos de la presente descripción q ue hacen referencia a estructuras y com ponentes similares. Descri pción Detallada de la Invención Vis ión General Se describen técnicas para la generación y validación de firmas. Las firmas se pueden utilizar para una variedad de propósitos, tales como para validar la identidad del que envía un mensaje, el que firma un documento y así sucesivamente. Por ejemplo, u na firma puede estar configurada como la totalidad o parte de identificador del producto (PI D), tam bién denominado una I D del producto. El identificador del producto entonces puede ser utilizado para determinar si el producto correspondiente es "auténtico". Por ejemplo, un desarrollador de un software puede escribir instrucciones ejecutables por computadora (por ejemplo, una aplicación) a un medio legible por com putadora , tal como un CD-RO M . El desarrollador del software puede incluir también un PI D el cual incluye una firma generada utilizando una técnica matemática en el CD-RO M . Cuando un usuario desea instalar la aplicación en una com putadora, el proceso de instalación puede comprender la verificación para determinar si el software es auténtico a través del uso del P I D . Por ejem plo , el proceso de instalación puede determinar si el P I D y más particularmente, la firma que se encuentra dentro del PI D exhibe una propiedad matemática particular. De ser así , la aplicación es considerada auténtica y contin úa el proceso de instalación . De no ser así, el proceso de instalación puede ser terminado para evitar la instalación de una copia no autorizada de la aplicación. También se puede utilizar una amplia variedad de otras técnicas en conj unto con u na firma , cuya descripción adicional se puede encontrar en relación con las siguientes figuras. En la explicación siguiente, se describe primero un entorno de ejemplo el cual emplea técnicas para la generación y validación de firmas. Los procedimientos de ejemplo son descritos entonces de modo que se pueden operar en el entorno de ejemplo, así como también en otros entornos . Entorno de Eiem plo La fig u ra 1 es una ilustración de un entorno 1 00 en una implementación de ejemplo que se puede operar para emplear técnicas para la generación y validación de firmas. El entorno ilustrado 1 00 incluye un proveedor de producto 1 02 , una pluralidad de clientes 1 04( 1 ) ... 1 04(n), ... 1 04(N) , y una pluralidad de productos 108 (m), en donde "m" puede ser cualq uier entero de u no a "M", para la distribución a la pluralidad de clientes del 1 04( 1 ) al 1 04(N). Los productos 108(m) pueden ser configurados de una variedad de modos. Por ejemplo, uno o más de los productos 108 (m) pueden ser configurados como una partida física (por ejemplo, un producto manufacturado, un medio legible por computadora que tiene instrucciones ejecutables por computadora), contenido electrónico (por ejemplo, una canción, software, fotografía digital que se pueden descargar) y así sucesivamente. Los productos 108(m) entonces pueden ser entregados a un distribuidor de productos 106 por medio de un canal de distribución 110 para su distribución. Por ejemplo, un canal de distribución 110 puede representar la entrega física de los productos 108(m) al distribuidor del producto 106, tal como una transferencia física de una planta del fabricante a una tienda de "tabiques y morteros". En otro ejemplo, el canal de entrega 110 puede ser configurado como un canal de comunicación para la comunicación electrónica del producto 108(m), tal como una red. El distribuidor del producto 106 entonces puede distribuir los productos 108(m) a la pluralidad de clientes 104(1), 104(n), 104(N) por medio de los canales de distribución respectivos 112(1), 112(n), 112(N), los cuales pueden ser el mismo canal de distribución 110 o un canal diferente, por ejemplo, físico, de red y así sucesivamente. Como se explicó anteriormente, el copiado no autorizado del producto es una preocupación creciente. Por lo tanto, el proveedor de productos 102 puede utilizar un sistema de firmas 114 con el objeto de generar una firma 116(m) para cada pluralidad de productos. En una implementación, cada uno de los productos 108(m) tiene una firma correspondiente a la pluralidad de firmas 116(m) que son diferentes entre ellas. También está contemplada una variedad de otras implementaciones, tales como la agrupación de firmas para grupos de productos diferentes. El sistema de firmas 114 es ilustrado como que incluye un módulo de firmas 118 el cual se puede ejecutar para generar las firmas 116(m) y/o verificar las firmas. Por ejemplo, el módulo de firmas 118 puede generar las firmas 116(m), de modo que cada una de las firmas 116(m) pasará una prueba la cual puede ser utilizada para determinar si la firma 116(m) es válida, y por lo tanto, no generada por una parte infractora. La verificación de la firma 116(m) se puede realizar de una variedad de modos. Por ejemplo, cada uno de la pluralidad de clientes de 104 (1) al 104(N) puede ser provisto con técnicas para determinar si la firma 116(m) es válida sin comunicarse con el proveedor del producto 102. En este ejemplo, dicha verificación se puede realizar "fuera de línea" debido a que la conexión de comunicación con el proveedor del producto 104 no es necesaria. En otro ejemplo, uno más de los clientes del 104(1) al 104(N) pueden comunicar la firma 116(m) al proveedor del producto 102, de modo que el proveedor del producto 102 puede determinar si la firma es válida. Por ejemplo, el cliente 104(n) puede desear recibir una actualización de un software para un producto 108(m) configurado como una aplicación. Por lo tanto, el cliente 104(n) puede comunicar la firma correspondiente 116(m) (por ejemplo, por medio de la Internet, el teléfono y así sucesivamente) al proveedor de productos 102. El proveedor de productos 102 entonces puede determinar si el cliente 104(n , tiene una versión "válida" (es decir, auténtica) de la aplicación y por lo tanto, tiene permiso para recibir ia actualización. En un ejemplo adicional, la verificación se puede realizar por otra entidad diferente al proveedor del producto 102, por los clientes 104(1) al 104(N), tal como un servicio independiente de verificación. Se podrá encontrar una explicación adicional de generación y verificación de las firmas 116(m) en relación con la figura 2. Generalmente, cualquiera de las funciones aquí descritas puede ser implementada utilizando un software, firmware (por ejemplo, un sistema fijo de circuitos lógico), un procesamiento manual o una combinación de estas implementaciones. Los términos "módulo" y "lógica" como se usan en la presente descripción, generalmente representan un software, un firmware, o una combinación de software y firmware. En el caso de una implementación de software, el mód ulo, funcionalidad o lógica representa el código del programa que realiza las tareas especificadas cuando es ejecutado en un procesador (por ejemplo CPU ó CPUs). El código del programa puede ser almacenado un uno o más dispositivos de memoria legibles por computadora , cuya descripción adicional se podrá encontrar en relación con la figura 2. Las características de las técn icas de generación y validación q ue se describen a continuación son independientes de la plataforma , significando q ue las técnicas pueden ser implementadas en una variedad de plataformas de cómputo comerciales q ue tienen una variedad de procesadores . La fig ura 2 es una ilustración de un sistema 200 en una implementación de ejemplo q ue m uestra con mayor detalle al proveedor del producto 1 02 y el cliente 1 04(n) de la fig ura 1 . El proveedor de prod ucto 1 02 es ilustrado como que incluye una pl uralidad de servidores de firma 202(s) (en donde "s" puede ser cualquier entero de 1 a "S") y el cliente 1 04(n) es ilustrado como aparatos clientes. El cliente 1 04(n) puede ser config urado como una variedad de aparatos diferentes. Por ejemplo, el cliente 1 04(n ) puede ser configurado como u n aparato de cómputo, tal como una computadora de escritorio, una estación móvil , un accesorio de entretenimiento, un descodificador de televisión conectado de manera comunicativa a un aparato de pantalla , un teléfono inalám brico , una consola de juegos y así sucesivamente. Por lo tanto, el cliente 1 04(n) puede encontrase en un rango de un aparato de recursos completos con recursos substanciales de memoria y procesador (por ejemplo , computadoras personales, consolas de juegos) , hasta aparatos de bajos recu rsos con memoria y/o recursos de procesam iento limitado (por ejemplo , descodificadores de televisión tradicionales, consolas de j uegos portátiles). Para propósitos de la sig uiente explicación , el cliente 1 04(n) también se puede relacionar con una persona y/o entidad q ue opera a los clientes. En otras palabras, el cliente 104(n) también puede describir clientes lógicos que incl uyen usuarios, softwares y/o aparatos. Se ilustran un servidor de firma 202(s) y el cliente 1 04(n ) como que incluyen un procesador respectivo 204(o), 206(n) y una memoria respectiva 208(o), 21 0(n ). Los procesadores no están limitados por los materiales de los cuales son formados o los mecan ismos de procesamiento empleados en los mimos. Por ejemplo, los procesadores pueden comprender sem iconductores y/o transistores (por ejemplo, circuitos electrónicos integrados (I Cs)). En dicho contexto, las instrucciones ejecutables por el procesador pueden ser instrucciones ejecutables electrónicamente. Alternativamente, los mecanismos de o para los procesadores, y por lo tanto, de o para los aparatos de cómputo, pueden incluir pero no están limitados a, computación cuántica, computación óptica, computación mecánica (por ejemplo, utilizando la nanotecnolog ía) y así sucesivamente. Adicionalmente, aunq ue solamente se m uestra u na sola memoria 208(o), 21 0(n) , para el servidor de firma 202(s) y el cliente 1 04(n), respectivamente, se puede emplear una pluralidad de tipos y combinaciones de memorias, tales como memorias de acceso aleatorio (RAM) , memoria de disco d uro o memoria de medio removi ble y así sucesivamente . El mód ulo de firmas 1 1 8 es ilustrado como que está siendo ejecutado en el procesador 204(o) y se puede almacenar en la memoria 208(o). El módulo de firma 1 1 8 también está ilustrado como que incl uye un módulo de generación de firma 212 y un módulo de validación de firma 214. El mód ulo de generación de firma 212 es representativo de la funcionalidad para generar firmas, el módulo de validación de firmas 214 es representativo de la funcionalidad para verificar la autenticidad de las firmas para determinar si las firmas fueron generadas probablemente por el módulo de generación de firma 212 o una entidad que tiene acceso a la técnica del propietario para generar la firma , tal como una tercera parte autorizada. El módulo de generación de firma 212 se puede ejecutar para generar la firma 1 1 6(m), la cual pasará a un texto aplicado por el módulo de validación de firma 214, el cual es utilizado para determinar si la firma 116(m) es válida, y por lo tanto, no generada por una parte infractora. La firma 116(m) se ilustra como que incluye una ID de productos 216(m) la cual está incluida en un producto 108(m) que está configurado como un medio legible por computadora. El producto 108(m) (por ejemplo, el medio legible por computadora) también está ilustrado como que incluye una aplicación 218(m) (la cual corresponde a la firma 116(m) y la ID del producto 216(m)) para la distribución al cliente 104(n). Por lo tanto, el producto 108 (m) de este ejemplo puede ser considerado la aplicación 218(m) y/o el medio legible por computadora que contiene la aplicación 218(m). La ID del producto 216(m) es representada generalmente utilizando letras y/o números. La ID de producto 216(m) puede estar configurada de modo que una entidad (por ejemplo, el cliente 104 (n) y/o el proveedor dei producto 102) verifica la ID del producto 216(m) convirtiendo la firma 116(m) en una secuencia de números y aplicando un algoritmo matemático para determinar si ese número y por consiguiente la firma 116(m), fue generada por una entidad (por ejemplo, el sistema de firma 114 de la figura 1) que tenía acceso a la técnica que fue utilizada para generar la firma 116(m). Se puede utilizar una variedad de técnicas para generar la firma 116(m). Por ejemplo, el servidor de firma 202(s) está ilustrado como que incluye una clave privada 220, una clave pública 222 y una base de datos 224 de mensajes 226(k) (en donde "k" puede ser cualquier entero de uno a "K") que están almacenados en la memoria 208(o) . El módulo de generación de firma 212, se puede ejecutar para procesar la pluralidad de mensajes 226(k) utilizando la clave privada 220 con el objeto de generar la pluralidad de firmas 116(m). En otras palabras, el módulo de generación de firmas 212 aplica una "transformación" a los mensajes 226(k) con el objeto de obtener las firmas 116(m). Se podrá encontrar una explicación adicional del procesamiento de los mensajes 226(k) para generar firmas en relación con la figura 3. En el ejemplo ilustrado el proveedor del producto 102 es un fabricante de software que ejecuta el módulo de generación de firmas 212 para generar la firma 116(m). El módulo de generación de firma 212 utiliza una técnica que tiene una propiedad matemática particular para generar la firma. La firma 116(m) es incluida entonces como por lo menos, una parte de la ID del producto 216(m) en el producto 108(m). El producto 108(m) en la implementación de la figura 2 es un medio legible por computadora, el cual es distribuido al cliente 104(n) por medio del distribuidor del producto 106 e incluye la aplicación 218(m) para la instalación en el cliente 104(n) y una versión de la clave pública, la cual se ¡lustra como la clave pública 222(m). La versión del producto es ilustrada como el producto 108(n), la cual incluye la ID del producto 216(n) y la firma 116(n). El módulo de validación de firma 214 se puede ejecutar para verificar las firmas 116(m) generadas por el módulo de generación de firma 212. Por ejemplo, el módulo de validación de firma 214 puede procesar la firma 116(m) utilizando la clave pública 222(m) incluida en el producto 108(m) para obtener una de dos respuestas: (1) si, la firma 116(m) es válida; ó (2) no, la firma 116(m) no es válida. Las respuestas están basadas en si la firma 116(m) exhibe la propiedad matemática particular, cuya descripción adicional se podrá encontrar en relación con la figura 4. En una implementación la clave pública 222 se hace pública para permitir que otras entidades, las cuales no generaron la firma, verifiquen la firma 116 (m), pero la clave privada 220 se mantiene en secreto, de modo que otras entidades no puedan generar firmas que tienen la propiedad matemática particular. Continuando con el ejemplo anterior, en el caso de que un cliente 104(n) pueda desear recibir una actualización para la aplicación 218(n). Con el objeto de "probar" que el cliente 104(n) tiene una copia autorizada del software, el cliente 104(n) suministra la ID del producto 216(n) al proveedor del producto 102. El proveedor de producto 102 puede entonces ejecutar el mód ulo de validación de firma 214 para utilizar las técnicas de validación para determinar si la I D del producto 216(n) y más particularmente, ia firma 1 1 6(n) exh ibe la propiedad matemática particular. De ser así , la I D del prod ucto 21 6(n ) es considerada "genuina" y el cliente 1 04(n) está autorizado para recibir la actualización . Aunque la validación que ha sido realizada a través de la ejecución del mód u lo de validación de firma 214 por el proveedor de producto 1 02 ha sido descrita, la val idación también puede ser realizada a través de la ejecución de un mód ulo de validación de firma 214(n) en el cliente 1 04(n), así como por un verificador de tercera parte como se describió anteriormente. La clave privada 220 y la clave pública 222 pueden ser configuradas de una variedad de modos para proporcionar las técnicas de generación y verificación . Por ejemplo , estas técnicas pueden estar basadas en isogenias, las cuales en los ejemplos siguientes, están configuradas como mapeos entre una pl uralidad de cu rvas el ípticas. Las isogen ias generadas permiten el uso de curvas múltiples, en vez de una sola curva para proporcionar la firma . Estas técnicas pueden ser aplicadas a firmas digitales relativamente cortas (por ejemplo, escritas por un usuario o enviadas por un canal de ancho de banda bajo), encriptación (por ejemplo, soluciones de encriptación basadas en la identidad (I B E), permitiendo de este modo claves públicas que se pueden memorizar) y así sucesivamente. Por ejemplo, la clave pública 222 puede incluir un campo finito, una curva elíptica y una función de acoplamiento, la cual es representada de la manera siguiente: K, la cual es el campo finito; E2, la cual es una curva elíptica sobre K; y Una función de acoplamiento de mapeo e2 de un par de puntos sobre E2 a un elemento de K que no es cero. La clave privada 220 puede incluir la siguiente información: EL la cual también es una curva elíptica sobre K; isógena a E2 (posiblemente igual que E2), - esto explica que Ei y E2 tienen el mismo orden del grupo; Una función de acoplamiento de mapeo e-¡ de un par de puntos sobre E-¡ para un elemento de K que no es cero; y P, Q, las cuales los dos son puntos finitos sobre E1; y Una pluralidad de of isogenias (0!, 0t) Cada una de la pluralidad de ¡sogenias (0?,..., 0t) mapea los puntos de la curva elíptica E-i a los puntos de la curva elíptica E2. Las funciones de acoplamiento e-i y e2 en 220 y 222 son seleccionadas de modo que 0: Ei ?E2 es una isogenoa, entonces e2 (0(P?), 0 (Q = e1(deg(0)P1lQí) para todos los P1( Qi y E^. El entero deg(0) es el grado de deg(0) y deg(0)Pí que indica una multiplicación de escala de la curva el íptica en la cu rva E , Para proporcionar la verificación , la clave pú blica 222 también puede incluir información de resultados sobre la aplicación de la pl uralidad de isogenia para Q, la cual puede ser representada de la manera siguiente: 0? ( Q), 02( Q), 03(Q) 0,( Q). Cada u na de estas imágenes es un punto sobre E2. La clave pública 222 también puede incluir el valor de e^ (P, Q), el cual es un elemento del campo K. Por lo tanto, la clave pública en este ejemplo, puede ser utilizada para verificar q ue una firma exhibe una propiedad matemática particular sin poder utilizar la clave pública para generar firmas adicionales, las cuales exhiben esa propiedad matemática, cuya descripción adicional podrá ser encontrada en relación con las sig uientes figuras. Procedim ientos de Eiem plo La sig uiente descripción describe técnicas de generación y verificación que pueden ser im plementadas utilizando los sistemas y aparatos anteriormente descritos. Los aspectos de cada uno de los procedimientos pueden ser im plementados en el hardware, firmware o software, o un a com binación de ellos. Los procedimientos se muestran como un conjunto de bloques que especifican las operaciones realizadas por uno o más aparatos, y no necesariamente limitadas a los órdenes mostrados por los bloques respectivos para realizar las operaciones. En porciones de la siguiente descripción, se hará referencia al entorno 100 de la figura 1, y el sistema 200 de la figura 2. La figura 3 es un diagrama de flujo que ilustra un procedimiento 300 en una implementación de ejemplo en la cual es generada una firma utilizando una técnica basada en la isogenia. Un mensaje "m" es recibido (bloque 302). El mensaje puede ser recibido de una variedad de modos, tales como desde un generador de números aleatorios, una cadena descriptiva la cual especifica las características de un producto correspondiente y así sucesivamente. El mensaje "m" es considerado por el módulo de generación firma 212 como una lista de enteros, la cual puede ser representada como: 17? i, A772, mz,..., mt Por ejemplo, se puede obtener una lista de enteros de un generador de números aleatorios como se describió anteriormente, una cadena alfanumérica convertida y así sucesivamente. Una firma "O "es generada entonces a partir del mensaje "m" utilizando la clave privada 220 (bloque 304). Por ejemplo, la firma "O " puede ser computada utilizando técnicas de isogenia, las cuales incluyen la adición de la curva elíptica y la adición de la ¡sogenia utilizando información tomada de la clave privada 220 y un ejemplo de la cual se muestra en la siguiente ecuación: _ m1fl(P) + m2f2(P) + ...+mtft(P) (SIGMA) s = deg(mxfl + m2f2+...+mtfl) Tal y como se muestra en la ecuación anterior, cada entero (por ejemplo, /771?/772,m3,...,mf) el cual colectivamente forma el mensaje m, es multiplicado con la función de ¡sogenia correspondiente (por ejemplo 0\, 02, 03,....,0t ) de la clave privada 220. Además, la firma es un punto de la curva elíptica E2. En ia ecuación anterior el numerador es calculado utilizando la adición de la curva elíptica y el denominador es calculado como el grado de la cantidad obtenida utilizando la adición de la isogenia. Por ejemplo, como se describió anteriormente 01( 02, 03,..., 0t son isogenias, las cuales tienen una propiedad matemática denominada un grado. Una isogenia multiplicada por un entero es una isogenia. Adicionalmente, cuando son agregadas dos o más isogenias entre el mismo par de curvas, el resultado también es una isogenia. Por lo tanto, la adición de los resultados multiplicados por los enteros correspondientes (por ejemplo, , m , m3 -i) es una isogenia y por lo tanto, es computada utilizando la "adición de isogenia". Para el numerador, la multiplicación de los puntos de la curva elíptica (imágenes isogénicas) 0?(PJ, 0 (P), 0z(P),..., 0t(P) en E2 por los enteros correspondientes (por ejemplo m-i, m2, mz,..., m?) utiliza la adición de curva elíptica. Deberá observarse que la firma "O" no puede ser calculada sin conocer la clave privada 220. Por ejemplo, para firmar un mensaje, aunque son conocidos los enteros (por ejemplo m-i, m2, mz,..., m-i) están incluidas las ¡sogenias (por ejemplo 0-¡, 02 03,..., 0t) y sus imágenes en P, en este ejemplo, exclusivamente en la clave privada 220. El grado en el denominador de O es un entero - la división se hace invirtiendo del módulo denominador del orden del grupo común |E-?| =| E2|. La firma generada 116(m) y una versión de la clave pública 222 (la cual se ilustra como la clave pública 222(m)) es incorporada entonces en un producto 108(m) (bloque 306) el cual es distribuido a un cliente 104(n) (bloque 308). Por ejemplo, la firma generada 116(m) puede ser incorporada en un medio legible por computadora (por ejemplo, un CD-ROM) el cual contiene un código ejecutable por computadora, es decir, la aplicación 218(m). La firma generada 116(m) puede ser utilizada entonces para verificar que el medio legible por computadora es auténtico, cuya descripción adicional se puede encontrar en relación con la figura siguiente. La figura 4 es un diagrama de flujo que ilustra el procedimiento 400 en una implementación de ejemplo, en el cual la firma 116(m) generada por el procedimiento 300 de la figura 3 es verificado utilizando la clave pública 222(m) de la figura 2, la cual también está incluida en el producto 108(m) que tiene la firma 116(m). Un cliente 104(n) recibe un producto (por ejemplo, el medio legible por computadora que se describió anteriormente) el cual incluye una firma'O" y la clave pública 222(m) (bloque 402). Por ejemplo, el cliente puede comprar el medio legible por computadora en un almacén, por la Internet y así sucesivamente. El producto recibido entonces está disponible localmente para el cliente, el cual está ilustrado como el producto 108(n), la aplicación 218(n), la clave pública 222(n), la ID del producto 216(n) y la firma 116(n) de la figura 2. Un módulo (por ejemplo, el módulo de validación de firma 214(n)) es ejecutado entonces para verificar que la firma generada incorporada en el medio legible por computadora es válida (bloque 404). Por ejemplo, el módulo de validación de firma 214(n) puede estar incluido como una parte del módulo de instalación de la aplicación 218(m). Por lo tanto, para instalar la aplicación 218(m), el módulo de instalación inicia el módulo de generación de firma 214(n) para determinar si la firma 116(m) ingresada por un usuario es válida. Por ejemplo, cuando es ejecutado, el módulo de validación de firma 214(n), puede utilizar la clave pública para determinar si la siguiente expresión continúa siendo verdadera (bloque de decisión 406): e2 (O m101(Q)+mz0(Q)+...+m101(Q))= e^(P,Q) Como se describió anteriormente, el elemento del campo e<¡ (P,Q) está incluido en la clave pública, así como las imágenes 0?(Q), 02(Q),..., 0t(Q). Si la relación anterior continúa siendo cierta ("si" del bloque de decisión 406), entonces la firma 116(m) es válida (bloque 408). Si la relación anterior no es cierta ("no"del bloque de decisión 406), entonces la firma 116(m) es inválida (bloque 410). Un resultado de la validación entonces es producido por el módulo de validación de firma (bloque 412), tal como por medio de una interfase del usuario a un módulo de instalación que es responsable de instalar la aplicación 218(m), y así sucesivamente. Por ejemplo, se puede utilizar un resultado de la verificación para informar al cliente 104(n) que la firma es válida y por lo tanto, se puede obtener la actualización del software para un producto correspondiente que tiene la firma. La verificación puede ser realizada para una variedad de otras razones, cuya descripción adicional se podrá encontrar en relación con la figura 5. Por lo tanto, como se muestra en la descripción anterior, la verificación puede ser realizada utilizando la firma, el mensaje y la clave pública. Por lo tanto, cualquier cliente que tiene la clave pública puede verificar si la firma es válida, pero no puede generar firmas nuevas sin conocer la clave privada 220. Digamos que s es un punto de la curva elíptica E2, tal y como se definió en la ecuación (SIGMA). Lo siguiente ilustra una prueba de la técnica de verificación: deg(m1f1+m -2f2+..+mtft) La expresión anterior entonces puede ser simplificada como: (m,f,+m2f2+... + m.f.)(P) , , , ?^ 'deg(mlf1+m2f2+...+m,ft) Digamos que 0 = m?0? + m202 + ...+/77t0f. Esta es una isogenia de E a E2. La expresión anterior se convierte en e2 (O, 0(Q)) = e2(0)P)/deg(0), 0(Q)) = e2 (0(P/deg(0;;, 0fQ = e?(P,Q) utilizando la ecuación y la relación anteriormente mencionadas tal y como se describió con anterioridad para las claves pública y privada 220, 222. Como se podrá apreciar, e^P, Q) es una de las expresiones incluidas en la clave pública 222, la cual fue utilizada para verificar la firma 116(m). Por lo tanto, la firma 116(m) puede ser verificada sin utilizar la clave privada. Al seleccionar la clave pública, se pueden seleccionar las isogenias de un modo tal que mensajes diferentes producen firmas diferentes. Esto se puede hacer asegurando que las combi naciones lineales pequeñas no triviales de los puntos 0i ( Q) no sean cero, ya q ue dicha propiedad garantiza el procedimiento de recuperación de un mensaje que se describe más adelante, recuperará el mensaje original determinado como la firma O. Esto último a la vez es equivalente a la no existencia de vectores peq ueños que n o son cero en una cuadricula definida de manera adecuada. La regla para la existencia de dichos vectores pequeños que no son cero en una cuadricula determinada, puede utilizar los métodos de reducción básica de cuadricu la estándar. El uso de isogenías en lo anterior también distingue el sistema de los sistemas basados en registros estándar separados en los que en una modalidad de este último puede producir un ataq ue separado al registro, mientras que el sistema descrito no lo hace. La fig u ra 5 es un diagrama de flujo que il ustra otro procedi miento 500 en una implementación de ejemplo en la cual son utilizadas las técnicas de isogen ia para verificar la firma . U n usuario compra un prod ucto que tiene u n identificador absoluto asociado (I D) q ue incluye 25 caracteres (bloque 502). La I D del prod ucto entonces es convertida en un número "x" (bloque 504). Entonces se calcula una firma del n úmero "x" (bloq ue 506) . Por ejemplo, el número "x" es dividido en dos partes de la manera siguiente: x r - = q+- z z En la expresión anterior, z= \K\ es el n úmero de elementos de campo finito K. La "r" restante, la cual es menor de \K\ , identifica un elemento de K. Ese elemento de K entonces es tomado como la firma de la coordenada x de "O" para la I D del prod ucto (bloq ue 508). El cociente "q" es utilizado como un "indicio" para localizar el mensaje. La fi rma puede ser considerada como la coordenada x de un punto de una curva elíptica (bloq ue 51 0), en vez de como un punto completo. Por ejemplo, la curva el íptica "E" puede estar representada de la manera siguiente: E :y2 = x3 + ax+b En la expresión anterior "a" y "b" son constantes del campo finito K; y "x" e "y" son variables de K. Un punto finito sobre E es un par de coordenadas (x, y) que satisface la ecuación anterior de la curva elíptica "E". Si solamente x es conocido, podemos solucionar los valores posibles de y utilizando una ra íz cuad rada en el cam po K. Cuando no existe raíz cuad rada , entonces x puede ser rechazada. Cada firma candidato O = (x, y) y el mensaje incrustado m son validados entonces (bloq ue 51 2) determinando si la firma tiene una propiedad matemática que indica la autenticidad . El código utiliza el cociente "q" como un "indicio" de donde puede ser encontrado el mensaje (bloque 514). Por ejemplo, durante la verificación , un módulo (por ejemplo, el módulo de validación de firma 214) es ejecutado para calcular la sig uiente expresión para cada valor posible de (m-t, m2, m3, ...mt), hasta que el mensaje es encontrado, el cual hace la expresión igual a e- (P, Q): e2(0, (m^tíQ) + m2, 02(Q) + ...m101 (Q))) En una implementación , el módulo de validación de firma 214 puede ser ejecutado para utilizar "la búsqueda exhaustiva" con el objeto de localizar el mensaje aprovechando el número de cálculos q ue pueden ser realizados por un procesador (por ejemplo, el procesador 204(o)), en una cantidad de tiempo relativamente corto. En este ejem plo, el indicio "q" también es utilizado para localizar de una manera más eficiente el mensaje, por lo tanto, se limita la cantidad de "pasos" (por ejemplo, recursos de procesamiento) los cuales son utilizados para calcular el mensaje . Por lo tanto , el indicio "q" reduce el espacio de búsqueda disponible. Si son encontrados un par (x, y) y un mensaje, de modo que la expresión es ig ual a e1(P, Q), Entonces la firma es válida y se reg resa un resultado el cual indica la validez. Por otra parte, si dicho mensaje no se ha encontrado, la firma se considera inválida y se regresa un resultado el cual indica la invalidez como se indicó anteriormente en relación con la fig ura 4. Se pueden utilizar una variedad de técnicas de búsqueda para la recuperación del mensaje, tales como de paso de gigante a paso de bebé, o el método lambda de Pollard , los cuales son asintóticamente más rápidos que un método de búsq ueda de "fuerza bruta" y puede duplicar la longitud de los mensajes los cuales pueden ser recu perados, com parados con la fuerza bruta. Conclusión Aunque la presente invención ha sido descrita en un lenguaje específico de las características estructurales y/o acciones metodológicas, deberá entenderse q ue la presente invención definida en las reivindicaciones adjuntas, no está limitada necesariamente a las características o acciones específicas descritas. En vez de ello, las características y acciones específicas son descritas como una forma de ejemplo de implementación de la invención reivindicada.

Claims (20)

  1. REIVINDICACIONES 1. Un método que comprende: la generación de una firma utilizando una pluralidad de isogenias incluidas en una clave privada; y la incorporación de la firma y una clave pública en un producto en donde la clave pública está configurada para validar la firma.
  2. 2. Un método tal y como se describe en la reivindicación 1, caracterizado porque: la firma y la clave pública son incorporadas en un producto; y las formas de firma son por lo menos una parte de un identificador del producto.
  3. 3. El método tal y como se describe en la reivindicación 1, caracterizado porque la pluralidad de isogenias mapea los puntos en una curva elíptica E a los puntos en una curva elíptica E2, y la clave privada que incluye además: la curva elíptica ; y P, Q, los cuales son dos puntos finitos sobre E-i,
  4. 4. El método tal y. como se describe en la reivindicación 1, caracterizado porque la clave pública incluye un campo finito, una curva elíptica E2, una función de acoplamiento e imágenes de aplicación de la pluralidad de isogenias, las cuales son evaluadas en un punto en una curva elíptica E-i.
  5. 5. El método tal y como se describe en la reivindicación 1, caracterizado porque las imágenes son puntos sobre la curva elíptica E2.
  6. 6. El método tal y como se describe en la reivindicación 1, caracterizado porque la firma es computada utilizando la adición de la curva elíptica y la adición de la isogenia.
  7. 7. Un método tal y como se describe en la reivindicación 6, caracterizado porque el cálculo es realizado utilizando la siguiente expresión: en donde "O "es la firma, de 0 a 0t son las isogenias de la clave privada, y la firma es un punto en una elíptica isógena de la curva E2.
  8. 8. El método tal y como se describe en la reivindicación 1, caracterizado porque la clave pública está configurada para validar la firma que incluye una pluralidad de resultados de la aplicación de la pluralidad de isogenias a un punto en una curva elíptica.
  9. 9. El método tal y como se describe en la reivindicación 8, caracterizado porque la validación incluye la determinación de si es verdadera la siguiente expresión: e2 (sm?0?(Q) +... + m101(Q)) = e^P, Q), en donde e y e 2 son funciones de acoplamiento, P y Q son puntos sobre la curva elíptica E t y de m- a mt son enteros los cuales forman un mensaje "m".
  10. 10. Un método el cual comprende: recibir una firma; y validar la firma utilizando una clave pública que tiene una pluralidad de resultados de la aplicación de una pluralidad de isogenias a un punto en una curva elíptica.
  11. 11. Un método tal y como se describe en la reivindicación 10, caracterizado porque la firma y la clave pública son incluidas en un producto.
  12. 12. Un método tal y como se describe en la reivindicación 11, caracterizado porque el producto es un medio legible por computadora.
  13. 13. Un método tal y como se describe en la reivindicación 10, caracterizado porque la validación incluye determinar si es cierta la siguiente expresión: e2( 0/77,0,(0; +...+m10?(Q)) = e,(P, Q) en donde e-\ y e2 son funciones de acoplamiento, P y Q son puntos sobre la curva elíptica de Ei, y de m a m3 son enteros los cuales forman un mensaje "m".
  14. 14. Un método tal y como se describe en la reivindicación 13, caracterizado porque el mensaje "m" es utilizado para generar la firma.
  15. 15. Un método tal y como se describe en la reivindicación 1 0, caracterizado porq ue la firma es generada utilizando u na pl uralidad de isogenias incl uidas en la clave privada.
  16. 1 6. U n método tal y como se describe en la reivindicación 1 5, caracterizado porque la pluralidad de isogenias mapea puntos sobre la curva el íptica E1 a puntos sobre la curva elíptica E2, y la clave privada incluye además: la curva elíptica EÚ y P, Q, los cuales son dos puntos finitos sobre E-¡ .
  17. 1 7. Un método tal y como se describe en la reivindicación 1 0, caracterizado porque la firma es generada utilizando la sig u iente expresión : en donde "O ", es la firma de, 0-? a 01 son isogenias en una clave privada y la firma es un punto en una curva elíptica isogéna E2.
  18. 1 8. Un medio legible por computadora el cual comprende: una firma; una clave pública que tiene una pluralidad de resultados obtenidos mediante la aplicación de una pluralidad de isogen ias a un punto en una cu rva el íptica; y uno o más módulos los cuales se pueden ejecutar para validar la firma utilizando la clave pública.
  19. 1 9. U n medio legible por computadora tal y como se describe en la reivindicación 1 8, el cual comprende además por lo menos uno de otros módulos para la instalación y ejecución en un cliente, y en donde dicho uno o más módulos se pueden ejecutar para determinar si i nstalar dicho al menos otro módulo basado en un resultado de la validación de la firma .
  20. 20. U n med io leg ible por computadora tal y como se describe en la reivindicación 1 8 , caracterizado porque la firma es generada utilizando una pluralidad de isogenias incl uidas en una llave privada.
MXPA/A/2005/009211A 2005-04-29 2005-08-29 Sistemas y metodos para la generacion y validacion de firmas basadas en la isogenia MXPA05009211A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11119405 2005-04-29

Publications (1)

Publication Number Publication Date
MXPA05009211A true MXPA05009211A (es) 2006-12-13

Family

ID=

Similar Documents

Publication Publication Date Title
KR101153085B1 (ko) 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법
CN109074433B (zh) 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统
KR100690417B1 (ko) 컴퓨터 네트워크 내에서 응용 프로그램 코드와 콘텐트데이터의 분배 제어
CN100382483C (zh) 防止程序篡改的方法、升级混淆程序的方法及装置
US8656175B2 (en) Secure processing device, secure processing method, encrypted confidential information embedding method, program, storage medium, and integrated circuit
US7734921B2 (en) System and method for guaranteeing software integrity via combined hardware and software authentication
CN111095322A (zh) 数字商品的真实例
CN113810410A (zh) 无法滥用密钥去中心化属性基加密方法、系统及存储介质
US20080127332A1 (en) Information processing system, electronic authorization information issuing device, electronic information utilizing device, right issuing device, recording medium storing electronic authorization information issuing program, electronic information utilizing program and right issuing program, and information processing method
US9626674B1 (en) System and method for exchanging, sharing and redeeming credits
MXPA05009211A (es) Sistemas y metodos para la generacion y validacion de firmas basadas en la isogenia
US7392523B1 (en) Systems and methods for distributing objects
JP5738896B2 (ja) 統合反転を使用する曲線上でのペアリングの決定
CN117278213B (zh) 基于多项式承诺的方法、电子设备及可读存储介质
JP7070689B2 (ja) 署名処理装置、署名処理方法、署名処理システム、及びプログラム
CN116260572A (zh) 数据杂凑处理方法、数据验证方法及电子设备
CN117375822A (zh) 一种椭圆曲线的密钥拆分方法及系统
CN115952473A (zh) 基于nft技术的智能算法版权鉴权方法、装置及相关介质
CN115280308A (zh) 一种许可认证的方法、装置、电子设备、系统及存储介质
JP2001119552A (ja) 電子透かしシステムとその方法並びにコンテンツ再配布システム及び記憶媒体