MX2014001451A - Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion. - Google Patents

Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion.

Info

Publication number
MX2014001451A
MX2014001451A MX2014001451A MX2014001451A MX2014001451A MX 2014001451 A MX2014001451 A MX 2014001451A MX 2014001451 A MX2014001451 A MX 2014001451A MX 2014001451 A MX2014001451 A MX 2014001451A MX 2014001451 A MX2014001451 A MX 2014001451A
Authority
MX
Mexico
Prior art keywords
information
algorithm
verifier
tester
message
Prior art date
Application number
MX2014001451A
Other languages
English (en)
Other versions
MX338025B (es
Inventor
Koichi Sakumoto
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of MX2014001451A publication Critical patent/MX2014001451A/es
Publication of MX338025B publication Critical patent/MX338025B/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

[Problema] Implementar un esquema de autentificación de clave pública, muy seguro. [Solución] Se proporciona un dispositivo para procesamiento de información que: genera un mensaje sobre la base de una tupla (F=(f1, .,fm)) de polinomios de múltiples variables y un vector s; proporciona dicho mensaje a un verificador quien conoce la tupla (F) de polinomios de múltiples variables y un vector y (y=(f1(s),..., fm(s)); y proporciona a dicho verificador la información de respuesta correspondiente a un patrón de verificación que el verificador ha seleccionado de entre k patrones de verificación. La tupla (F) de polinomios de múltiples variables comprende los polinomios (f1, ..., fm) definidos sobre un anillo (R) con característica q y orden qk• También un polinomio G(x1, x2) definido como G(x1, x2)=F(x1+x2)-F(x1)- F(x2) para un vector x1 (x1=(x11, ..., X1n)) comprende términos proporcionales a (x1i) q(z) (con 1= i=n, q (z) =qz, y 1=z=k ).

Description

DISPOSITIVO PARA EL PROCESAMIENTO DE INFORMACIÓN, MÉTODO, PROGRAMA Y MEDIO DE REGISTRO PARA EL PROCESAMIENTO DE INFORMACIÓN CAMPO TÉCNICO La presente tecnología se refiere a un aparato para el procesamiento de información, un método, programa y medio de almacenamiento para el procesamiento de información.
ANTECEDENTES DE LA INVENCIÓN Con el rápido desarrollo de las tecnologías de procesamiento de la información y las tecnologías de comunicación, los documentos han sido digitalizados rápidamente independientemente de si los documentos son públicos o privados. Con la digitalización de tales documentos, muchos individuos y compañías tienen un interés considerable en la administración de la seguridad de los documentos electrónicos. Las medidas en contra de los actos de manipulación o alteración tales como el espionaje electrónico o la falsificación de documentos electrónicos han sido estudiadas activamente en varios campos, en respuesta a un interés creciente. Con relación al espionaje electrónico de los documentos electrónicos, la seguridad se garantiza, por ejemplo, encriptando los documentos electrónicos. Además, con relación a la falsificación de los documentos electrónicos, la seguridad se garantiza por ejemplo, usando firmas digitales. Sin embargo, cuando la encriptación o las firmas digitales a ser usadas no tienen mucha resistencia a la manipulación o alteración, no se garantiza una seguridad suficiente.
Las firmas digitales se usan para especificar el autor de un documento electrónico. Por consiguiente, las firmas digitales deberían poder generase solo por el autor del documento electrónico. Si una tercera parte maliciosa es capaz de generar la misma firma digital, tal tercera parte puede hacerse pasar por el autor del documento electrónico. Es decir, un documento electrónico es falsificado por la tercera parte maliciosa. Se han expresado varias opiniones con relación a la seguridad de las firmas digitales para evitar tal falsificación. Como los esquemas de firmas digitales que están siendo usados actualmente, se conoce un esquema de firma RSA y un esquema de firma DSA, por ejemplo.
El esquema de firma RSA toma la "dificultad de la factorización prima de un número compuesto grande (llamado de aquí en adelante, problema de factorización prima)" como la base de la seguridad. También, el esquema de firma DSA toma la "dificultad de resolver el problema de logaritmo discreto" como la base para la seguridad. Estas bases se basan en que los algoritmos que resuelven de forma eficiente el problema de la factori zación prima y el problema del algoritmo discreto usando las computadoras clásicas, no existen. Es decir, las dificultades mencionadas anteriormente sugieren la dificultad computacional de una computadora clásica. Sin embargo, se dice que las soluciones al problema de la factori zación prima y el problema del algoritmo discreto pueden ser calculadas de forma eficiente cuando se usa una computadora cuántica.
De forma similar al esquema de firma RSA y el esquema de forma DSA, muchos de los esquemas de firmas digitales y los esquemas de autenticación de clave pública que se usan actualmente también toman la dificultad del problema de factorización prima o el problema del algoritmo discreto como la base de la seguridad. Por lo tanto, si las computadoras cuánticas se utilizan de forma práctica, la seguridad de tales esquemas de firmas digitales y esquemas de autenticación de clave pública no será garantizada. Por consiguiente, se desea materializar nuevos esquemas de firmas digitales y esquemas de autentificación de claves públicas que tomen, como la base de la seguridad, un problema diferente a los problemas tales como el problema de factorización prima y el problema del logaritmo discreto, que pueden ser resueltos fácilmente por las computadoras cuánticas. Como un problema, el cual no es resuelto fácilmente por las computadoras cuánticas, existe un problema relacionado con un polinomio de múltiples variables, por ejemplo.
Por ejemplo, como los esquemas de firmas digitales que toman el problema del polinomio de múltiples variables como la base para la seguridad, se conocen aquellos basados en la criptografía de atsumoto-Imai (MI), la criptografía de la Ecuación de Campo Oculto (HFE) , el esquema de firma de Oil-Vinegar (OV) , y la criptografía por el Método de Transformación Dominada (TTM) . Por ejemplo, el esquema de firma digital basado en HFE se describe en las siguientes literaturas no relacionadas con patentes 1 y 2.
LISTA DE CITAS BIBLIOGRAFÍA NO RELACIONADA CON PATENTES Literatura No Relacionada con Patentes 1: Jacques Patarin, Asymmetric Cryptography with a Hidden Monomial, CRYPTO 1996, pp . 45-60.
Literatura No Relacionada con Patentes 2: Patarin, J., Courtois, N . , y Goubin, L., QUARTZ, 128-Bit Long Digital Signatures, En Naccache, D. , Ed. Topics in Cryptology - CT-RSA 2001 (San Francisco, CA, EUA, Abril de 2001), vol. 2020 de Lecture Notes in Computer Science, Springer-Verlag . , pp. 282-297.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Problema Técnico Como se describe anteriormente, el problema del polinomio de múltiples variables es un ejemplo de un problema llamado el problema NP complejo el cual es difícil de resolver aun cuando se usen computadoras cuánticas. Normalmente, un esquema de autentificación de clave pública que usa el problema del polinomio de múltiples variables tipificado por el HFE o los similares usa ecuaciones simultáneas de múltiples variables, de orden múltiple, con una puerta trasera. Por ejemplo, se proporciona la ecuación simultanea de múltiples variables, de orden múltiple F(xi, .··, Xn)=y relacionada con xl xn y las trasformacxones lineales A y B, las transformaciones lineales A y B se manejan de forma secreta. En este caso, la ecuación simultanea de múltiples variables, de orden múltiple, F, y las transformaciones A y B son puertas traseras.
Una entidad que conoce las puertas traseras F, A, y B puede resolver la ecuación B(F(A(xi, xn) ) ) = y' relacionada con i, ... , xn. Por otro lado, la ecuación B(F(A(xi, xn) ) ) = y' relacionada con xi xn no es resuelta por una entidad que no conoce las puertas traseras F, A, y B. Al usar este mecanismo, puede ser materializado un esquema de autentificación de clave pública y un esquema de firma digital que toman la dificultad de resolver la ecuación simultánea de múltiples variables, de orden múltiple, como la base para la seguridad.
Como se menciona anteriormente, con el fin de materializar el esquema de autentificación de clave pública o el esquema de firma digital, es necesario preparar una ecuación simultánea de múltiples variables, de orden múltiple que satisfaga la ecuación B ( F (A ( Xi , ... , xn) ) ) =y . además, en el momento de la generación de las firmas, es necesario resolver las ecuaciones simultáneas de múltiples variables, de orden múltiple, F. Por esta razón, la ecuación simultánea de múltiples variables, de orden múltiple, F, ha estado limitada a ecuaciones que se pueden resolver de forma relativamente fácil. Es decir, en los esquemas pasados, se ha usado solo una ecuación simultánea de múltiples variables, de orden múltiple, B ( F (A (xi, ... , xn) ) ) =y de una forma combinada de tres funciones (puertas traseras) B, F, y A, que puede ser resuelta de forma relativamente fácil, y por lo tanto, es difícil garantizar una seguridad suficiente.
La presente tecnología se concibe en vista de la circunstancia mencionada anteriormente, y tiene la intención de proporcionar un aparato para procesamiento de información novedoso y mejorado, un método para procesamiento de información novedoso y mejorado, un programa novedoso y mejorado, y un medio de registro novedoso y mejorado, capaces de materializar un esquema de autentificación de clave pública y un esquema de firma digital que sean eficientes y que tengan alta seguridad, usando ecuaciones simultáneas, de múltiples variables, de orden múltiple, para las cuales no se conoce un medio de resolución eficiente (puertas trasera) Solución al Problema De acuerdo con una modalidad de la presente tecnología se proporciona un aparato para procesamiento de información que incluye una unidad de generación de mensajes, que genera un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s, que es un elemento de un conjunto Kn, una unidad de suministro de mensajes, que suministra el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y=(yi, ·-·, ym) = (fi(s), fm(s)), una unidad de generación de la información intermedia que genera la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje, una unidad de suministro de la información intermedia, que suministra la tercera información al verificador, y una unidad de suministro de respuestas, que suministra al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k= 2) patrones de verificación. El vector s es una clave secreta. El par de polinomios, de múltiples variables, de orden múltiple, F, y los vectores y, son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios fi, fm definidos en un anillo R de una característica q, y un orden qk, y se establecen en una manera en que un polinomio G(xi, 2) definido como G(xi; X2) =F( I+ 2) _F(XI) -F(X2) con respecto a los vectores xi=(xii ···/ Xin) (donde 1= 1, 2) se configura como un término proporcional a (xii)q<z) (donde l=i=n, q(z)=qz, y 1 =z=k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un aparato para procesamiento de información que incluye una unidad de almacenamiento de información, que almacena un par de polinomios de múltiples variables, de orden múltiple, de múltiples variables, F=(fi, fm) y los vectores y=(yi, ···, ym) = (fi(s), fm(s)), una unidad de adquisición de mensajes, que adquiere un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple, F, y un vector s el cual es un elemento del conjunto Kn, una unidad de suministro de información, que suministra la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje, una unidad de adquisición de información intermedia, que adquiere la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaje, una unidad de suministro de la información del patrón, que suministra al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k =3) patrones de verificación, una unidad de adquisición de respuestas, que adquiere la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador, y una unidad de verificación, que verifica si el comprobador almacena o no el vector s, con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple, F, y la información de respuesta. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios fi, ... , fm definidos en un anillo R de una característica q, y un orden qk y se establece en una manera en que un polinomio G(xi, X2) definido como G(xi, X2) =F (xi+x2) -F (??) -F (x2) con respecto a los vectores xi=(xii, in) (donde 1= 1, 2) se configura como un término proporcional a (xii)q(z) (donde l<i=n, q(z)=qz, y l=z=k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un método para el procesamiento de información que incluye generar un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, ..., fm) y^ un vector s que es un elemento del conjunto Kn, suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y=(yi, ym) = (fi(s), fm(s)), generar la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje, suministrar la tercera información al verificador, y suministrar al verificador la información de respuesta correspondiente al patrón de verificación, el cual selecciona el verificador de entre k (donde k=2) patrones de verificación. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta. Al par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios fx, ... , fm, definidos en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, X2) definido como G(xi, x2) =F (xi+x2) -F (??) -F (x2) con respecto a los vectores Xi=(xn, ·.·, Xin) (donde 1=1,2) se configura como un término proporcional a (xn)q<z) (donde l=i=n, q(z)=qz, y l<z<k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un método para procesamiento de información que incluye, por medio de un aparato para procesamiento de información que almacena un par de polinomios de múltiples variables, de orden múltiple F=(fi,..., fm) y los vectores y=(yi, ···, ym) = (fi(s), fm(s)), adquiere un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple, F, y un vector s el cual es un elemento del conjunto Kn, suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje, adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaje, suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación, y adquirir la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador, verificar si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple, F, y la información de respuesta. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios fi, ... , fm definidos en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(xi, x2) =F (X1+X2) -F (xi) -F (x2) con respecto a los vectores xi=(xn, . ··, in) (donde 1=1,2) se configura como un término proporcional a (xn)q(z) (donde l<i<n, q(z)=qz, y l<z<k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un programa que hace que una computadora lleve a cabo una función de generación de mansajes para generar un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento de un conjunto Kn, una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y=(yi, · · ·, ym) = (fi(s), · .., fm(s) ), una función de generación de la información intermedia, para generar la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje, una función de suministro de la información intermedia, para suministrar la tercera información al verificador, y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente al patrón de verificación el cual selecciona el verificador de entre k (donde k > 2 patrones de verificación. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios flr ... , fm definidos en un anillo R de una característica q y un orden qk, y se establecen en una manera en que un polinomio G(xi, X2) definido como G(xi, x2) =F (xi+x2) -F (xi) -F (x2) con respecto a los vectores Xi=(xii · ··! Xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l=i=n, q(z)=qz, y l=z=k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un programa que hace que una computadora lleve a cabo una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, ··., fm) y los vectores y=(yi, · · ·/ ym) = ( f1 ( s ) , ..·, fm(s)), una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple, F, y un vector s el cual es un elemento del conjunto Kn, una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje, una función de adquisición de la información intermedia, para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaje, una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación, y una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador, una función de verificación, que verifica si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple, F, y la información de respuesta. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple F, incluyen los polinomios fx, fm definidos en un anillo R de una q y un orden qk, y se establecen en una manera en que un polinomio G(xi, X2) definido como G(xi, x2) =F (xi+x2) -F (xi) -F (x2) con respecto a los vectores Xi=(xiif · · ·/ xin) (donde 1=1,2) se configura como un término proporcional a (xii)q<z) (donde l=i=n, q(z)=qz, y l=z=k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un medio de registro legible por computadora, que tiene un programa registrado en el mismo, el programa que hace que una computadora lleve a cabo una función de generación de mensajes, para generar un mensaje basado en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento de un conjunto Kn, una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi/ ···, Ym) = ( f1 ( s ) , ·.., fm(s)), una función de generación de la información intermedia, para generar la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador, y la segunda información, obtenida en el momento de la generación del mensaje, una función de suministro de la información intermedia, para suministrar la tercera información al verificador, y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios f l r ... , fm definidos en un anillo R de una característica q y un orden qk, y se establecen en una manera en que un polinomio G(xi, X2) definido como G(xi, X2) =F (x!+ 2) -F (xi) -F (x2) con respecto a los vectores Xi=(xn, • • • r xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l<i<n, q(z)=qz, y l=z=k) .
De acuerdo con una modalidad de la presente tecnología, se proporciona un medio de registro legible por computadora, que tiene un programa almacenado en el mismo, el programa que hace que una computadora lleve a cabo una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, ym) = (fi(s), fm(s)), una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s que es un elemento de un conjunto Kn, una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria a un comprobador que suministra el mensaje, una función de adquisición de la información intermedia para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaje, una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k 3) patrones de verificación, una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador, y una función de verificación para verificar si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de respuesta. El vector s es una clave secreta. El par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas. El mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta. El par de polinomios de múltiples variables, de orden múltiple, F, incluye los polinomios fi, fm definidos en un anillo R de una característica q y un orden qk, y se establecen en una manera en que un polinomio G(xi, X2) definido como G(xi, X2 ) =F (X1+X2) -F (xi ) -F (X2 ) con respecto a los vectores Xi=(xii, ···, in) (donde 1=1,2) se configura como un término proporcional a (xn)q<z) (donde l=i=n, q(z)=qz, y l=z=k) .
Efecbos Ventajosos de la Invención De acuerdo con la presente tecnología descrita anteriormente, es posible materializar un esquema de autentificación de clave pública y un esquema de firma digital que son eficientes y tienen alta seguridad, usando ecuaciones simultáneas de múlliples variables, de orden múltiple para las cuales no se conoce un medio de resolución (puerta trasera) eficiente .
BREVE DESCRIPCIÓN DE LOS DIBUJOS [FIG. 1] La FIG. 1 es un diagrama explicativo para describir la estructura algorítmica relacionada con el esquema de autentificación de clave pública.
[FIG. 2] La FIG. 2 es un diagrama explicativo para describir la estructura algorítmica relacionada con un esquema de firma digital.
[FIG. 3] La FIG. 3 es un diagrama explicativo para describir la estructura algorítmica relacionada con un esquema de autentificación de clave pública de n pasos.
[FIG. 4] La FIG. 4 es un diagrama explicativo para describir un ejemplo de la estructura algorítmica específica relacionada con un esquema de autentificación de clave pública de 3 pasos.
[FIG. 5] La FIG. 5 es un diagrama explicativo para describir un algoritmo eficiente relacionado con el esquema de autentificación de clave pública de 3 pasos.
[FIG. 6] La FIG. 6 es un diagrama explicativo para describir la paralelización de los algoritmos eficientes relacionados con el esquema de autentificación de clave pública de 3 pasos.
[FIG. 7] La FIG. 7 es un diagrama explicativo para describir un ejemplo del algoritmo de un esquema de autentificación de clave pública (esquema #1) que usa polinomios de múltiples variables, de orden alto, de 3 pasos.
[FIG. 8] La FIG. 8 es un diagrama explicativo para describir un ejemplo del algoritmo paralelizado del esquema de autentificación de clave pública (esquema #1) que usa polinomios de múltiples variables, de orden alto, de 3 pasos.
[FIG. 9] La FIG. 9 es un diagrama explicativo para describir un ejemplo de la estructura algorítmica específica relacionada con un esquema de autentificación de clave pública de 5 pasos.
[FIG. 10] La FIG. 10 es un diagrama explicativo para describir un ejemplo de un algoritmo eficiente relacionado con el esquema de autentxficación de clave pública, de 5 pasos.
[FIG. 11] La FIG. 11 es un diagrama explicativo para describir la paralelización del algoritmo eficiente relacionado con el esquema de autentxficación de clave pública, de 5 pasos.
[FIG. 12] La FIG. 12 es un diagrama explicativo para describir un ejemplo del algoritmo del esquema de autentxficación de clave pública (esquema #1) que usa polinomios de múltiples variables, de orden alto, de 5 pasos.
[FIG. 13] La FIG. 13 es un diagrama explicativo para describir un ejemplo de un algoritmo de paralelización del esquema de autentxficación de clave pública (esquema #1) que usa polinomios de múltiples variables, de orden alto, de 5 pasos .
[FIG. 14] La FIG. 14 es un diagrama explicativo para describir un ejemplo de un algoritmo del esquema de autentxficación de clave pública (esquema #2) que usa polinomios de múltiples variables, de orden alto, de 5 pasos.
[FIG. 15] La FIG. 15 es un diagrama explicativo para describir un ejemplo de un algoritmo paralelizado del esquema de autentxficación de clave pública (esquema #2) que usa polinomios de múltiples variables, de orden alto, de 5 pasos.
[FIG. 16] La FIG. 16 es un diagrama explicativo para describir un ejemplo de un algoritmo paralelizado eficiente del esquema de autentificación de clave pública (esquema #2) que usa polinomios de múltiples variables, de orden alto, de 5 pasos .
[FIG. 17] La FIG. 17 es un diagrama explicativo para describir un ejemplo de un algoritmo paralelizado eficiente, adicional, del esquema de autentificación de clave pública (esquema #2) que usa polinomios de múltiples variables, de orden alto, de 5 pasos.
[FIG. 18] La FIG. 18 es un diagrama explicativo para describir un método para la modificación de un algoritmo eficiente relacionado con el esquema de autentificación de clave pública de 3 pasos, a un algoritmo del esquema de firma digital .
[FIG. 19] La FIG. 19 es un diagrama explicativo para describir un método para la modificación de un algoritmo eficiente, adicional, relacionado con el esquema de autentificación de clave pública de 3 pasos, a un algoritmo del esquema de firma digital.
[FIG. 20] La FIG. 20 es un diagrama explicativo para describir un método para la modificación de un algoritmo eficiente relacionado con el esquema de autenticación de clave pública de 5 pasos, a un algoritmo del esquema de firma digital .
[FIG. 21] La FIG. 21 es un diagrama explicativo para describir un método para la modificación de un algoritmo eficiente, adicional, relacionado con el esquema de autentificación de clave pública, de 5 pasos, a un algoritmo del esquema de firma digital.
[FIG. 22] La FIG. 22 es un diagrama explicativo para describir una estructura en paralelo-en serie del algoritmo eficiente relacionado con el esquema de autentificación de clave pública, de 3 pasos.
[FIG. 23] La FIG. 23 es un diagrama explicativo para describir una estructura en serie-en paralelo del algoritmo eficiente relacionado con el esquema de autentificación de clave pública, de 3 pasos.
[FIG. 24] La FIG. 24 es un diagrama explicativo para describir una estructura en paralelo-en serie (estructura en paralelo-en serie #1) del algoritmo eficiente relacionado con el esquema de autentificación de clave pública, de 5 pasos.
[FIG. 25] La FIG. 25 es un diagrama explicativo para describir una estructura en paralelo-en serie (estructura en paralelo-en serie #2) del algoritmo eficiente relacionado con el esquema de autentificación de clave pública de 5 pasos.
[FIG. 26] La FIG. 26 es un diagrama explicativo para describir una estructura en serie-en paralelo (estructura en serie- en paralelo #1) del algoritmo eficiente relacionado con el esquema de autentificación de clave pública, de 5 pasos.
[FIG. 27] La FIG. 27 es un diagrama explicativo para describir una estructura en serie-en paralelo (estructura en serie-en paralelo #2) del algoritmo eficiente relacionado con el esquema de autentxficación de clave pública de 5 pasos.
[FIG. 28] La FIG. 28 es un diagrama explicativo para describir un ejemplo de la configuración de los componentes físicos del aparato para procesamiento de información capaz de ejecutar el algoritmo de acuerdo con cada modalidad de la presente tecnología.
[FIG. 29] la FIG. 29 es un diagrama explicativo para describir cada método adecuado para establecer los parámetros usados en el esquema de autentxficación de clave pública de acuerdo con la primera y la segunda modalidades de la presente tecnología y los efectos ventajosos.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN Descripción de las Modalidades A partir de aquí se describirán en detalle las modalidades preferidas de la presente invención con referencia a los dibujos anexos. Nótese que, en esta especificación y en los dibujos, los elementos que tienen substancialmente la misma función y estructura se denotan con los mismos símbolos de referencia y su explicación repetida se omite.
Flujo de la Descripción Aquí, se describirá brevemente el flujo de la descripción de las modalidades de la presente tecnología, a ser efectuada a continuación. Primero se describirá la estructura algorítmica de un esquema de autentificación de claves públicas, con referencia a la FIG. 1. Enseguida, se describirá la estructura algorítmica de un esquema de firma digital, con referencia a la FIG. 2. Enseguida, se describirá el esquema de autentificación de claves públicas, de n pasos, con referencia a la FIG. 3.
Enseguida se describirá un ejemplo de la estructura algorítmica relacionada con un esquema de autentificación de clave pública, con referencia a las FIGS. 4 a 8. Enseguida, se describirá un ejemplo de la estructura algorítmica relacionada con un esquema de autentificación de clave pública, con referencia a las FIGS. 5 a 17. Enseguida, se describirá un método para modificarlos algoritmos eficientes relacionados con los esquemas de autentificación de clave pública de 3 pasos y de 5 pasos, a algoritmos del esquema de firma digital, con referencia a las FIGS. 18 a 21.
Enseguida se describirá una estructura en paralelo-en serie y una estructura en serie-en paralelo de los algoritmos eficientes relacionados con los esquemas de autentificación de clave pública de 3 pasos y de 5 pasos, con referencia a las FIGS. 22 a 27. Enseguida, se describirá un ejemplo de la configuración de los componentes físicos de un aparato para procesamiento de información capaz de materializar cada algoritmo de acuerdo con la primera y la segunda modalidades de la presente tecnología, con referencia a las FIG. 28.
Finalmente, se describirá de forma sucinta una síntesis del espíritu técnico de las presentes modalidades y los efectos operacionales ventajosos obtenidos a partir de espíritu técnico .
Artículos Detallados 1: Introducción 1-1: Algoritmo del Esquema de Autentificación de Clave Pública 1-2: Algoritmos para el Esquema de Firma Digital 1-3: Esquema de Autentificación de Clave Pública de N Pasos 2: Estructuras Algorítmicas Relacionadas con el Esquema de Autentificación de Clave Pública de 3 Pasos 2-1: Ejemplo de la Estructura Algorítmica Específica 2-2: Algoritmo Eficiente Basado en Polinomios de Múltiples Variables Cuadráticas 2-2-1: Estructura Básica 2-2-2: Algoritmo Paralelizado 2-3: Algoritmo Eficiente Basado en Polinomios de Múltiples Variables, de Orden Alto (Esquema #1) 2-3-1: Estructura Básica 2-3-2: Algoritmo Paralelizado 3: Estructura Algorítmica Relacionada con el Esquema de Autentificación de Clave Pública de 5 pasos 3-1: Ejemplo de la Estructura Algorítmica Específica 3-2: Algoritmo Eficiente Basado en Polinomios de Múltiples Variables Cuadráticas 3-2-1: Estructura Básica 3-2-2: Algoritmo Paralelizado 3-3: Algoritmo Eficiente Basado en Polinomios de Múltiples variables, de Orden Alto (Primera Modalidad) 3-3-1: Estructura Básica 3-3-2: Algoritmo Paralelizado 3-4: Algoritmo Eficiente Basado en Polinomios de Múltiples Variables, de Orden Alto (Segunda Modalidad) 3-4-1: Estructura Básica 3-4-2: Algoritmo Paralelizado (Ejemplo Estructural 1) 3-4-3: Algoritmo Paralelizado (Ejemplo Estructural 2: Alta Eficiencia) 3-4-4: Algoritmo Paralelizado (Ejemplo Estructural 2: Eficiencia Superior) 4 : Modificación del Esquema de Firma Digital 4-1: Modificación del Esquema de Autentificación de Clave Pública de 3 pasos, al Esquema de Firma Digital 4-1-1: Algoritmo de Firma Digital (Ejemplo Estructural 1) 4-1-2: Algoritmo de Firma Digital (Ejemplo Estructural 2: Alta Eficiencia) 4-2: Modificación del Esquema de Autentificación de Clave Pública de 5 pasos, al Esquema de Firma Digital 4-2-1: Algoritmo de Firma Digital (Ejemplo Estructural 1) 4-2-2: Algoritmo de Firma Digital (Ejemplo Estructural 2: Alta eficiencia) 5: Algoritmo de Tipo Híbrido 5- 1: Algoritmo de Tipo Híbrido Relacionado con el Esguema de Autentificación de Clave Público de 3 Pasos 5-1-1: Algoritmo en Paralelo-en Serie 5-1-2: Algoritmo en Serie-en Paralelo 5-2: Algoritmo de Tipo Híbrido Relacionado con el Esquema de Autentificación de Clave Pública de 5 pasos 5-2-1: Algoritmo en Paralelo-en Serie ( E emplo Estructural #1) 5-2-2: Algoritmo en Paralelo-en Serie (Ej emplo Estructural #2) 5-2-3: Algoritmo en serie-en Paralelo (Ej emplo Estructural #1) 5-2-4: Algoritmo en Serie-en Paralelo (Ejemplo Estructural #2) 6: Apéndice 6- 1: Método para Establecer los Parámetros del Sistema 6-2: Método para Responder a Interrogaciones Irregulares 6-2-1: Método de Respuesta por el Comprobador 6-2-2: Método de Respuesta por el Verificador 7: Ejemplo de la Configuración de los Componentes Físicos 8. Síntesis 1. Introducción Las modalidades de este documento se refieren a un esquema de autentificación de clave pública y un esquema de firma digital que basan su seguridad en la dificultad para resolver ecuaciones simultáneas de múltiples variables, de orden múltiple. Sin embargo, las modalidades de este documento difieren de las técnicas de la técnica previa tales como los esquemas de firma digital HFE, y se refieren a un esquema de autentificación de clave pública y a un esquema de firma digital que utilizan ecuaciones simultáneas de múltiples variables, de orden múltiple, que carecen de medios de resolución (puertas traseras) eficientes. Primero, se e emplificarán de forma suscita los algoritmos para un esquema de autentificación de clave pública, los algoritmos para un esquema de firma digital, y un esquema de autentificación de clave pública de n pasos. 1-1 : Algoritmo del Esquema de Autentificación de Clave Pública Primero, se describirá una visión general de un algoritmo de un esquema de autentificación de claves públicas, con referencia a la FIG. 1. La FIG. 1 es un diagrama ejemplificante para describir la estructura algorítmica de un esquema de autentificación de claves públicas.
La autentificación de claves públicas se usa cuando una persona (comprobador) convence a otra persona (verificador) que esta es el comprobador en si, usando una clave pública pk y una clave secreta sk. Por ejemplo, una clave pública pk.¾ de un comprobador A se da a conocer al verificador B. Por otro lado, una clave secreta sk¾ del comprobador A se administra de forma secreta por el comprobador A. De acuerdo con el esquema de autentificación de claves públicas, una persona que conoce la clave secreta skA correspondiente a la clave pública pkA se considera como el comprobador A en si.
Para que el comprobador A demuestre al verificador B que esté es el comprobador A en si, usando la configuración de autentificación de clave pública, el comprobador A, por medio de un protocolo interactivo, presenta la prueba al verificador B que indica que este conoce la clave secreta skA correspondiente a la clave pública pkA. La prueba que indica que el comprobador A conoce la clave secreta skA se presenta entonces al verificador B, y en el caso donde el verificador B es capaz de confirmar esa prueba, se comprueba la validez del comprobador A (el hecho de que el comprobador A es esta persona) .
Sin embargo, la configuración de autentificación de clave pública requiere las siguientes condiciones con el fin de garantizar la seguridad.
La primera condiciones es "reducir tanto como sea posible la posibilidad de falsificación que se establece, en el momento en que se lleva a cabo el protocolo interactivo, por un falsificador que no tenga la clave secreta sk". Que esta primera condición se satisfaga se llama "validez". En otras palabras, la validez significa que la "falsificación no se establece durante la ejecución de un protocolo interactivo por un falsificador que no tiene la clave secreta sk con una probabilidad no insignificante". La segunda condición es que "aun si se lleva a cabo el protocolo interactivo, la información sobre la clave secreta skA del comprobador A no se filtra en absoluto al verificador B" . El que la segunda condición se satisfaga se llama "conocimiento nulo".
Llevar a cabo la autentificación de la clave pública involucra usar un protocolo interactivo que exhibe tanto validez y conocimiento nulo. Si un proceso de autentificación se llevará a cabo hipotéticamente usando un protocolo interactivo que carece de la validez y el conocimiento nulo, habría una oportunidad definitiva de verificación falsa y una oportunidad definitiva de divulgación de la clave secreta, y por lo tanto, la validez del comprobador no seria verificada aun si el proceso en si se completa de forma exitosa. En consecuencia, la cuestión de cómo garantizar la validez y el conocimiento nulo de un protocolo de sesión es importante.
(Modelo) En un modelo del esquema de autentificación de clave pública, están presentes dos entidades, es decir, un comprobador y un verificador, como se muestra en la FIG. 1. El comprobador genera un par de clave pública pk y clave secreta sk, único para el comprobador, usando un algoritmo de generación de la clave Gen. Entonces, el comprobador lleva a cabo un protocolo interactivo con el verificador, al usar el par de clave secreta sk y clave pública pk, generado usando el algoritmo de generación de la clave Gen. En este momento, el comprobador lleva a cabo el protocolo interactivo usando un algoritmo del comprobador P. Como se describe anteriormente, en el protocolo interactivo, el comprobador comprueba al verificador, usando el algoritmo del comprobador P, que este posee la clave secreta sk.
Por otro lado, el verificador lleva a cabo el protocolo interactivo usando un algoritmo del verificador V, y verifica si el comprobador posee o no la clave secreta correspondiente a la clave pública que ha publicado el comprobador. Es decir, el verificador es una entidad que verifica si el comprobador posee o no la clave secreta correspondiente a una clave pública. Como se describe, el modelo del esquema de autentificación de la clave pública se compone de dos entidades, es decir, el comprobador y el verificador, y tres algoritmos, es decir, el algoritmo de generación de la clave Gen, el algoritmo del comprobador P y el algoritmo del verificador V.
Adicionalmente, las expresiones "comprobador" y "verificador" se usan en la siguiente descripción pero estas expresiones significan estrictamente las entidades. Por lo tanto, el sujeto que lleva a cabo el algoritmo de generación de la clave Gen y el algoritmo del comprobador P es un aparato de procesamiento de información correspondiente a la entidad "comprobador". De forma similar, el sujeto que lleva a cabo el algoritmo del verificador V es un aparato para el procesamiento de información. La configuración de los componentes físicos de estos aparatos de procesamiento de información es la que se muestra en la FIG. 28, por ejemplo. Es decir, el algoritmo de generación de la clave Gen, el algoritmo del comprobador P, y el algoritmo del verificador V se llevan a cabo por una CPU 902 con base en un programa registrado en una ROM 904, una RAM 906, una unidad 920 de almacenamiento, un medio 928 de registro removible, o los similares .
Algoritmo de generación de la clave Gen El algoritmo de generación de la clave Gen es usado por el comprobador. El algoritmo de generación de la clave Gen es un algoritmo para generar un par de clave pública pk y clave secreta sk, único para el comprobador. La clave pública pk generada por el algoritmo de generación de la clave Gen se publica. Además, la clave pública pk, publicada es usada por el verificador. Por otro lado, la clave secreta sk generada por el algoritmo de generación de la clave Gen es administrada de forma secreta por el comprobador. La clave secreta sk que se administra de forma secreta por el comprobador, se usa para comprobar al verificador la posesión de la clave secreta sk correspondiente a la clave pública, por el comprobador. Formalmente, el algoritmo de generación de la clave Gen se representa como la fórmula (1) siguiente, como un algoritmo que toma el parámetro de seguridad 1? (? es un entero de 0 o más) como la entrada y produce la clave secreta sk y la clave pública pk.
Matemática 1 (sk,pk) <^ Gen{\x) - ( i ) Algoritmo del Comprobador P El algoritmo del comprobador P es usado por un comprobador. El algoritmo del comprobador P es un algoritmo para comprobar al verificador que el comprobador posee la clave secreta sk correspondiente a la clave pública pk. En otras palabras, el algoritmo del comprobador P es un algoritmo que toma la clave pública pk y la clave secreta sk como entradas y lleva a cabo el protocolo interactivo.
Algoritmo del verificador V El algoritmo del verificador V ' es usado por el verificador. El algoritmo del verificador V es un algoritmo que verifica si el comprobador posee o no la clave secreta sk correspondiente a la clave pública pk durante el protocolo de sesión. El algoritmo del verificador V es un algoritmo que acepta una clave pública pk como la entrada, y produce 0 o 1 (1 bitio) de acuerdo con el resultado de la ejecución del protocolo de sesión. En este punto, el verificador decide que el comprobador es inválido en el caso donde el algoritmo del verificador V produce 0, y decide que el comprobador es válido en el caso donde el algoritmo del verificador V produce 1. Formalmente, el algoritmo del verificador V se expresa como en la siguiente fórmula (2) .
Matemática 2 - ( 2 ) Como anteriormente, llevar a cabo la autentificación de clave pública involucra hacer que el protocolo interactivo satisfaga las dos condiciones de validez y conocimiento nulo. Sin embargo, probar que el comprobador posee la clave secreta sk implica que el comprobador ejecute un procedimiento dependiente de la clave secreta sk, y después notifique al verificador del resultado, haciendo que el verificador ejecute la verificación con base en el contenido de la notificación. El procedimiento dependiente de la clave secreta sk se ejecuta para garantizar la validez. Al mismo tiempo, no se debería revelar información sobre la clave secreta sk al verificador. Por esta razón, el algoritmo de generación de la clave Gen, el algoritmo del comprobador P, y el algoritmo del verificador V, se diseñan hábilmente para satisfacer estos requerimientos.
Lo anterior sintetiza por lo tanto los algoritmos en un esquema de autentificación de la clave pública. 1-2 : Algoritmos para el Esquema de Firma Digital Enseguida, los algoritmos para un esquema de firma digital se resumirán con referencia a la FIG. 2. La FIG. 2 es un diagrama explicativo que resume los algoritmos para un esquema de firma digital A diferencia de los documentos en papel, no es posible firmar físicamente o poner un sello a los datos digitalizados . Por esta razón, proporcionar el creador de datos digitalizados involucra un arreglo electrónico que proporcione efectos similares a firmar físicamente o poner un sello a un documento en papel. Este arreglo son las firmas digitales. Una firma digital se refiere a un arreglo que asocia datos dados con los datos de la firma, conocidos solamente por el creador de los datos, proporciona los datos de la firma a un receptor, y verifica esos datos de la firma en el extremo del receptor.
Modelo Como se ilustra en la FIG. 2, las dos entidades firmante y verificador existen en un modelo de un esquema de firma digital. Además, el modelo de un esquema de firma digital se compone de tres algoritmos: un algoritmo de generación de la clave Gen, un algoritmo de generación de la firma Sig, y un algoritmo de verificación de la firma Ver.
El firmante usa el algoritmo de generación de la clave Gen para generar una clave de firma apareada sk y la clave de verificación pk única para el firmante. El firmante también usa el algoritmo de generación de la firma Sig para generar una firma digital q para anexarla a un mensaje M. En otras palabras, el firmante es una entidad que anexa una firma digital a un mensaje M. Entretanto, el verificador usa el algoritmo de verificación de la firma Ver para verificar la firma digital anexada al mensaje M. En otras palabras, el verificador es una entidad que verifica la firma digital q con el fin de confirmar si el creador del mensaje M es el firmante o no .
Nótese que, aunque los términos "firmante" y "verificador" se usan en la descripción a partir de aquí, estos términos significan en última instancia entidades. En consecuencia, el agente que ejecuta el algoritmo de generación de la clave Gen y el algoritmo de generación de la firma Sig es un aparato para el procesamiento de información correspondiente a la entidad "firmante". De forma similar, el agente que ejecuta el algoritmo de verificación de la firma Ver es un aparato para el procesamiento de información. La configuración de los componentes físicos de este aparato para procesamiento de información es la que se ilustra en la FIG. 28, por ejemplo. En otras palabras, el algoritmo de generación de la clave Gen, el algoritmo de generación de la firma Sig, y el algoritmo de verificación de la firma Ver son ejecutados por un dispositivo tal como una CPU 902 con base en un programa registrado en un dispositivo, tal como una ROM 904 , una RAM 906, una unidad 920 de almacenamiento, o un medio 928 de registro removible.
Algoritmo de Generación de la Clave Gen El algoritmo de generación de la clave es usado por el firmante. El algoritmo de generación de la clave Gen, es un algoritmo gue genera una clave de firma apareada sk y una clave de verificación pk, únicas para el firmante. La clave de verificación pk, generada por el algoritmo de generación de la clave Gen se hace pública. Entretanto, el firmante mantiene en secreto la clave de firma sk generada por el algoritmo de generación de la clave Gen. La clave de firma sk se usa entonces para generar la firma digital q, para anexarla a un mensaje M. Por ejemplo, el algoritmo de generación de la clave Gen acepta un parámetro de seguridad lp (donde p es un entero igual o mayor a 0) como entrada, y produce una clave de firma sk y una clave de verificación pk. En este caso, el algoritmo de generación de la clave Gen puede ser expresado formalmente como en la siguiente fórmula (3) .
Matemática 3 (sk,pk) <— Gen(\ ) - ( 3 ) 3 Algoritmo de Generación de la Firma Sig El algoritmo de generación de la firma Sig es usado por el firmante. El algoritmo de generación de la firma Sig es un algoritmo que genera una firma digital q a ser anexada a un mensaje M. El algoritmo de generación de la firma Sig es un algoritmo que acepta una clave de firma sk y un mensaje M como entradas, y produce una firma digital q. El algoritmo de generación de la firma Sig puede ser expresado formalmente como en la siguiente fórmula (4) .
Matemática 4 s 4- Sig(sk,M) ... (4) Algoritmo de Verificación de la Firma Ver El algoritmo de verificación de la firma Ver es usado por el verificador. El algoritmo de verificación de la firma Ver es un algoritmo que verifica si la firma digital q es una firma digital válida o no, para el mensaje M. El algoritmo de verificación de la firma Ver es un algoritmo que acepta la clave de verificación del firmante pk, el mensaje M, y una firma digital q como entradas, y produce 0 o 1 (1 bitio) . El algoritmo de verificación de la firma Ver puede ser expresado formalmente como en la siguiente fórmula (5) . En este punto, el verificador decide que la firma digital q es inválida en el caso donde el algoritmo de verificación de la firma Ver produce 0 (el caso donde la clave de verificación pk rechaza el mensaje M y la firma digital q) , y decide que la firma digital q es válida en el caso donde el algoritmo de verificación de la firma Ver produce 1 (el caso donde la clave de verificación pk acepta el mensaje M y la firma digital q) .
Matemática 5 0/1 - Ver(pkM,s) - (5) Lo anterior resume por lo tanto los algoritmos en un esquema de firma digital. 1-3: Esquema de Autentificación de la Clave Pública de N Pasos Enseguida, se describirá el esquema de autentificación de la clave pública de n pasos con referencia a la FIG. 3. La FIG. 3 es un diagrama explicativo que ilustra un esquema de autentificación de la clave pública de n pasos.
Como se describe anteriormente, un esquema de autentificación de la clave pública es un esquema de autentificación que comprueba a un verificador que un comprobador posee una clave secreta sk correspondiente a una clave pública pk, durante un protocolo interactivo. Además, el protocolo interactivo debe satisfacer las dos condiciones de validez y conocimiento nulo. Por esta razón, durante el protocolo interactivo tanto el comprobador y el verificador intercambian información n veces mientras que se ejecutan los procesos respectivos, como se ilustra en la FIG. 3.
En el caso de un esquema de autentificación de la clave pública de n pasos, el comprobador ejecuta un proceso usando el algoritmo del comprobador P (operación #1), y transmite la información Ti al verificador. Posteriormente, el verificador ejecuta un proceso usando el algoritmo del verificador V (operación #2) y transmite la información T2 al comprobador. Esta ejecución, y los procesos, y la transmisión de la información ?¾ se llevan a cabo exitosamente para k=3 a n (operación #k) , y por último se ejecuta un proceso (operación #n+l) . Transmitir y recibir la información n veces de esta forma se llama por lo tanto un esquema de autentificación de clave pública de "n pasos".
Lo anterior describe por lo tanto un esquema de autentificación de la clave pública de n pasos. 2. Estructuras Algorítmicas Relacionadas con el Esquema de Autentificación de Clave Pública de 3 pasos A partir de aquí, se describirán los algoritmos relacionados con el esquema de autentificación de clave pública de 3 pasos. Nótese que en la siguiente descripción, el esquema de autentificación de clave pública de 3 pasos también se puede llamar "esquema de tres pasos" en algunos casos. 2-1: Ejemplo de la Estructura Algorítmica Específica Primero, se introducirá un ejemplo de la estructura algorítmica relacionada con el esquema de 3 pasos, con referencia a la FIG. 4. La FIG. 4 es un diagrama explicativo que describir la estructura algorítmica específica relacionada con el esquema de 3 pasos. El algoritmo del esquema de 3 pasos se compone de un algoritmo de generación de la clave Gen, un algoritmo del comprobador P, y un algoritmo del verificador V. A partir de aquí, se describirá cada estructura algorítmica.
Algoritmo de Generación de la Clave Gen El algoritmo de generación de la clave Gen genera m polinomios de múltiples variables fi(xi, xn) fm(xi, ... , xn) definidos en un anillo k y un vector s = (si, ... , sn) que es un elemento de un conjunto Kn. Enseguida, el algoritmo de generación Gen calcula y=(yi, ¦¦·, ym) <_ (fi(s), fm(s)) . También, el algoritmo de generación Gen establece (fi(Xi, xn) fm(xi/ Xn) Í y) en la clave pública pk y establece s como una clave secreta. A partir de aquí, un vector (xi, ... , xn) se representa como x y un par de polinomios de múltiples variables (fi(x), fm(x)) se representa como F(x) .
Algoritmo del Comprobador P, Algoritmo del Verificador V Enseguida, se describirá un proceso llevado a cabo por el algoritmo del comprobador P y un proceso llevado a cabo por el algoritmo del verificador V durante el protocolo interactivo, con referencia a la FIG. 4.
Durante el protocolo interactivo anterior, el comprobador no filtra en absoluto la información sobre la clave secreta s a un verificador y expresa al verificador que "este conoce el valor de s que satisface la ecuación y=F(s)". Por otro lado, el verificador, verifica si el comprobador conoce el valor de s que satisface la ecuación y=F(s) . Se asume que la clave pública pk debe ser dada a conocer al verificador. También, se asume que la clave secreta s debe ser administrada de forma secreta por el comprobador. A partir de aquí, se hará la descripción con referencia al diagrama de flujo ilustrado en la FIG. 4.
Operación #1 : Primero, el algoritmo del comprobador P selecciona cualquier número de semillao- Posteriormente, el algoritmo del comprobador P genera un vector ro el cual es un elemento del conjunto Kn y un número semillai aplicando el número semillao a un generador de números pseudo aleatorios PRNG . Es decir, el algoritmo del comprobador P calcula (r0, semillao) <-PRNG ( semillao ) · Posteriormente, el algoritmo del comprobador P genera un polinomio de múltiples variables Fi ( x ) = ( fn ( ) , fim(x)) al aplicar el número semillai al generador de números pseudo aleatorios PRNG. Es decir, el algoritmo del comprobador P calcula Fi <- PRNG ( semillai ) .
Operación # 1 (continuación) : Posteriormente, el algoritmo del comprobador P calcula ri <-s -r0. Este cálculo es equivalente a ocultar la clave secreta s con el vector ro- Adicionalmente, el algoritmo del comprobador P calcula F2 (x) <- F(x + r0)+Fi(x) . Este cálculo es equivalente a ocultar el polinomio de múltiples variables F(x+r0) para x, con el polinomio de múltiples variables Fi(x) .
Operación #1 (continuación) : Posteriormente, el algoritmo del comprobador P genera un valor de Hash co de i y Fi(ri) . Es decir, el algoritmo del comprobador P calcula co <- Hi(Fi(ri), ri) . También, el algoritmo del comprobador P genera un valor de Hash ci del número semillai. Es decir, el algoritmo del comprobador P calcula c± <- H (semillan.) . También, el algoritmo del comprobador P genera un valor de Hash c2 de un polinomio de múltiples variables F2. Es decir, el algoritmo del comprobador P calcula c2 <- H(F2) . Los valores de Hash (co, ci, c2) se envían como mensajes al algoritmo del verificador V. en este momento, se debe notar que la información sobre s, la información sobre r0, y la información sobre ri no se filtran en absoluto al verificador.
Operación #2 : Tras la recepción del mensaje (c0, Ci, c3), el algoritmo del verificador V selecciona cuál patrón de verificación usar, de entre tres patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre tres valores numéricos {0, 1, 2} que representan patrones de verificación, y establece el valor numérico seleccionado en una interrogación Ch. Esta interrogación Ch se envia al algoritmo del comprobador P.
Operación #3 : Tras la recepción de la interrogación Ch, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V, en respuesta a la interrogación Ch recibida. En el caso donde Ch=0, el algoritmo del comprobador P genera una respuesta Rsp=semilla0. En el caso donde Ch=l, el algoritmo del comprobador P genera una respuesta Rsp= ( semillai, ri) . En el caso donde Ch=2, el algoritmo del comprobador P genera una respuesta Rsp=(F2, ri) . La respuesta Rsp generada en la operación #3 se envia al algoritmo del verificador V. En este momento, se debe notar que la información sobre r no se filtra en absoluto al verificador en el caso donde Ch=0, y la información sobre ro no se filtra en absoluto al verificador en el caso donde Ch=l o 2.
Operación #4: Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta Rsp recibida.
En el caso donde Ch=0, el algoritmo del verificador V calcula (ro, semillai) <-PRNG(Rsp) . También, el algoritmo del verificador V calcula Fi<-PRNG ( semillai ) ¦ Entonces, el algoritmo del verificador V verifica si se mantiene o no la igualdad de C]=H (semillai) . Además, el algoritmo del verificador V verifica si se mantiene o no la igualdad de C2=H(F(x+r0) +Fi (x) ) . El algoritmo del verificador V transmite el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y transmite el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde Ch=l, el algoritmo del verificador V establece (semillai, ri)<-Rsp. También, el algoritmo del verificador V calcula Fi<-PRNG (semillai) . Entonces, el algoritmo del verificador V verifica si se mantiene la igualdad de c0=H(Fi(ri), rx) o no. además, el algoritmo del verificador V verifica si se mantiene la igualdad de ci=H (semillai) o no. El algoritmo del verificador V transmite el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y transmite el valor 0 para indicar la falla de la autentificación, en el caso donde una verificación falle.
En el caso donde Ch=2, el algoritmo del verificador V establece (F2, ri)<-Rsp. Entonces el algoritmo del verificador V verifica si se mantiene la igualdad de c2=H(F2) o no. El algoritmo del verificador V transmite el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y transmite el valor 0 para indicar la falla de la autentificación, en el caso donde falla una verificación.
Validez Aquí, se complementará la descripción de la validez de los algoritmos relacionados con el esquema de 3 pasos. La validez de los algoritmos relacionados con el esquema de 3 pasos, se garantiza con base en la lógica de que F2, nr ro y que satisfacen la siguiente fórmula (6) y la fórmula (7) siguientes, pueden ser calculados cuando el algoritmo del comprobador P devuelve una respuesta apropiada Rsp para todas las interrogaciones Ch=0, 1 y 2 seleccionables por el algoritmo del verificador V".
Matemática 6 F2(x) = F(x + r0) + Fl(x) - (6) F2{rl) -y = Fl{r) - (7) Al garantizar la validez anterior, el hecho de que la falsificación exitosa con una probabilidad mayor a 2/3 no sea posible, se garantiza siempre y cuando no se resuelva el problema de resolver las ecuaciones simultáneas, de múltiples variables, de orden múltiple. Es decir, para hacer apropiadamente la respuesta para todas las interrogaciones Ch=0, 1, 2 del verificador, el falsificador debe calcular F2, Flr r0, y ¾ que satisfagan fórmula (6) y la fórmula (7) anteriores. En otras palabras, el falsificador debe calcular s que satisfaga F(s)=y. Sin embargo, existe aún la probabilidad de que el falsificador proporcione las respuestas apropiadas para dos interrogaciones superiores entre las interrogaciones Ch=0, 1, 2 del verificador. Por lo tanto, la probabilidad de éxito de la verificación falsa resulta de 2/3. Además, al ejecutar repetidamente el protocolo interactivo anterior un número suficientemente grande de veces, la probabilidad de una falsificación exitosa resulta insignificante.
Función de Hash H Aquí, se complementará la descripción de la función de Hash H. En los algoritmos anteriores, c0 clr C2, y las similares se calculan usando la función de Hash H. Sin embargo, una función de compromiso COM puede ser usada en lugar de la función de Hash H. La función de compromiso COM es una función en la cual, una cadena de caracteres S y un número aleatorio p son factores. Un ejemplo de la función de compromiso incluye un esquema publicado en la Conferencia internacional CRYPTO 1996 por Shai Halevi y Silvio Micali.
Por ejemplo, se considerará un caso en el cual co, ¾, y C2 se calculan usando la función de compromiso COM. En este caso, los números aleatorios p0, pi, y (¾ se preparan antes de que se calculen co, cx, y C , y c0, Ci, y c2 se generan aplicando las funciones de compromiso COM(-,p0), COM(-,px), COM (·,|¾)/ en lugar de aplicar la función de Hash ?(·)· Además, pi necesaria para que el verificador genere Ci, se establece para estar incluida en la respuesta Rsp y se envía.
El ejemplo de la estructura algorítmica específica relacionada con el esquema de 3 pasos ha sido introducido anteriormente. 2-2 : Algoritmo Eficiente Basado en Polinomios Cuadráticas de Múltiples Variables Enseguida, se describirá un método para realizar los algoritmos relacionados con el esquema de 3 pasos eficiente. Aquí, se describirá un caso en el cual se usa un par de polinomios cuadráticos (fi(x), fm(x)) como los polinomios de múltiples variables F. Aquí, se asume que un polinomio cuadrático fi(x) se expresa como en la siguiente fórmula (8) .
Matemática 7 También, el par de polinomios cuadráticos (fi(x), fm(x)) pueden ser expresados como en la siguiente fórmula (9). Aquí, x=(xi, xn) . ??, m es una matriz de n X m. Además, cada bi, 1¾ es un vector de n X 1.
Matemática 8 (9) Cuando se usa esta expresión, un polinomio de múltiples variables F puede ser expresado como en la siguiente fórmula (10) y la fórmula (11) . A partir de la siguiente fórmula (12) se puede confirmar fácilmente que esta expresión se satisface. Matemática 9 (1 1) fl(x+y)= (x+y)TA,(x+y)+bf(x+y) = xTA,x+xJA,y+yTA,x+yTA,y+Z>,rx+é^ = f,(x)+f,(y)+ TA,y+yTA,x =/,(*)+f,(y)+xr(Af)Ty+yTA,x = ¿(*) + (/) + (4r*) +/ * = //(*)+fy)+yT(Afx) +yTA,x Cuando se divide F(x+y) en una primera porción dependiente de x, una segunda porción dependiente de y, y una tercera porción dependiente tanto de x e y, de esta forma, el término G(x, y) correspondiente a la tercera porción se vuelve bilineal con respecto a x e y. Usar esta propiedad permite la construcción de un algoritmo eficiente.
Por ejemplo, usar el vector to que es un elemento del conjunto Kn el vector eo que es un elemento del conjunto K™ para expresar el polinomio de múltiples variables Fi(x), el cual se usa para ocultar el polinomio de múltiples variables F(x+r), como Fi(x)=G(x, t0)+e0. En este caso, la suma del polinomio de múltiples variables F(x+r0) y G(x) se expresa como en la fórmula (13) siguiente.
Aquí, cuando ti=r0+t0, ei=F(r0)+e0, el polinomio de múltiples variables F2 (x) =F(x+ro) +Fi (x) puede ser expresado por el vector ti, el cual es un elemento del conjunto Kn y el vector ei que es un elemento del conjunto Ff1. Por esta razón, cuando se establece "Fi(x)=G(x, to)+eo", Fi y F2 pueden ser expresados usando un vector en Kn y un vector en K™ y por lo tanto, el tamaño de los datos necesarios para la comunicación puede ser reducido considerablemente. Específicamente, la eficiencia de la comunicación puede ser mejorada al grado de miles, a decenas de miles de miles de veces.
Matemática 10 F(x)+F(r0)+G(x,r0)+ G(x,í0)+e0 F(x)+ G(x,rQ + t0)+ (r0) + «¾ (13) A través de la modificación anterior, la información sobre r0 no se filtra en absoluto desde F2 (o Fi) . Por ejemplo, aun cuando se proporcione ei y ti (o eo y t0) , la información sobre ro no se conoce en absoluto, siempre y cuando t0 (o ei y ti) no se conozcan. Por consiguiente, se garantiza el conocimiento nulo. A partir de aquí, se describirá un algoritmo eficiente relacionado con el esquema de 3 pasos, con referencia a las FIGS. 5 y 6. 2-2-1: Estructura Básica (FIG. 5) Primero, se describirá la estructura básica de un algoritmo eficiente relacionado con el esquema de 3 pasos, con referencia a la FIG. 5. Sin embargo, se omitirá la descripción adicional de la estructura del algoritmo de generación de la clave Gen.
Operación #1 : Como se ilustra en la FIG. 5, el algoritmo del comprobador P primero genera de forma aleatoria el vector ro, to que es un elemento del conjunto Kn, y el vector eo que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula ri <- s-ro. Este cálculo es equivalente a ocultar la clave secreta s con el vector ro. Adicionalmente, el algoritmo del comprobador P calcula ti <-r0-t0. Posteriormente, el algoritmo del comprobador P calcula ei<-F(ro) -e0.
Operación #1 (continuación) : Posteriormente, el algoritmo del comprobador P calcula c0 <-H(ri, G(t0, ri)+e0) . Posteriormente, el algoritmo del comprobador P calcula ci <- H(t0, e0) . Posteriormente, el algoritmo del comprobador P calcula c2<-H(ti, ei). El mensaje (co, C:, c2) generado en la operación ? se envía al algoritmo del verificador V.
Operación #2 : Tras la recepción del mensaje (c0, Ci, c2) , el algoritmo del verificador V selecciona cuál patrón de verificación usar, de entre tres patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de éntre tres valores numéricos (0, 1, 2) que representan patrones de verificación y establece el valor numérico seleccionado en una interrogación Ch . Esta interrogación Ch se envía al algoritmo del comprobador P.
Operación #3 : Tras la recepción de la interrogación Ch, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación Ch recibida. En el caso donde Ch=0, el algoritmo del comprobador P genera una respuesta Rsp=(r0, ti, ei) . En el caso donde Ch=l, el algoritmo del comprobador P genera una repuesta Rsp=(ri, t0, c0) . En el caso donde Ch=2, el algoritmo del comprobador P genera una respuesta Rsp=(ri, ti, ei). La respuesta Rsp generada en la operación #3 se envía al algoritmo del verificador V.
Operación #4 : Tras la recepción de la repuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la repuesta Rsp recibida.
En el caso donde Ch=0, el algoritmo del verificador V verifica si se mantiene o no la igualdad de ci=H(r0-ti, F(r0)-ex) . Además, el algoritmo del verificador V verifica si se mantiene o no la igualdad de C2=H(ti, ei) . El algoritmo del verificador V produce el valor de 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y produce el valor de 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde Ch=l, el algoritmo del verificador V verifica si se mantiene o no la igualdad de co=H(to, ri)+e0. Además el algoritmo del verificador V verifica si se mantiene o no la igualdad de Ci=H(t0, e0) . El algoritmo del verificador V produce el valor de 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y produce el valor de 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde Ch=2, el algoritmo del verificador V verifica si se mantiene o no la igualdad de co=H(ri, y-F(ri)-G(ti, ri) -e0) . Además el algoritmo del verificador V verifica si se mantiene o no la igualdad de C2=H(ti, ei) . El algoritmo del verificador V produce el valor de 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones son exitosas, y produce el valor de 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
El ejemplo de la estructura del algoritmo eficiente relacionada con el esquema de 3 pasos ha sido descrito anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. 2-2-2: Algoritmo Paralelizado (FIG. 6) Enseguida, se describirá un método para la paralelización de los algoritmos ilustrados en la FIG. 5, con referencia a la FIG. 6. Sin embargo, la descripción de la estructura del algoritmo de generación de la clave Gen se omitirá.
Como se describe anteriormente, aplicar el protocolo se sesión anterior hace posible mantener la probabilidad de una falsificación exitosa en 2/3 o menos. En consecuencia, ejecutar el protocolo de sesión dos veces hace posible mantener la probabilidad de una falsificación exitosa en (2/3)2 o menos. Además, si el protocolo de sesión se ejecuta N veces, la probabilidad de una falsificación exitosa se vuelve de (2/3) N, y si N se establece en un número suficientemente grande (N=140, por ejemplo), la probabilidad de una falsificación exitosa se vuelve insignificante.
Los métodos concebibles para ejecutar un protocolo interactivo múltiples veces incluyen un método en serie que repite secuencialmente el intercambio del mensaje, la interrogación, y la respuesta múltiples veces, y un método en paralelo, que intercambia múltiples mensajes, interrogaciones, y respuestas en un solo intercambio, por ejemplo. Aquí, se describirán los algoritmos que ejecutan el protocolo interactivo anterior relacionado con el esquema de 3 pasos en paralelo (designados de aquí en adelante como algoritmos paralelizados ) .
Operación #1 El algoritmo del comprobador P ejecuta primero los siguientes procesos (1) a (6) para i=l a N.
Proceso (1): el algoritmo del comprobador P genera al azar los vectores r0, toi que son elementos del conjunto Kn, y el vector eoi que es un elemento del conjunto Km.
Proceso (2): El algoritmo del comprobador P calcula ra <-s-roi. Este cálculo es equivalente a ocultar la clave secreta s con el vector r0i. Adicionalmente , el algoritmo del comprobador P calcula tu <-r0i+t0i.
Proceso (3): El algoritmo del comprobador P calcula eu<-F (r0i) -e0i.
Proceso (4) : El algoritmo del comprobador P calcula COÍ<- H(ru, G(ru, t0i)+e Proceso (5): El algoritmo del comprobador P calcula cli<-H ( t0i , e0i ) .
Proceso (6) : El algoritmo del comprobador P calcula c2i<-H(tu, e1±) .
Operación #1 (continuación) : Después de ejecutar los procesos (1) a (6) anteriores para i=l a N, el algoritmo del comprobador P calcula Cmt<-H(c0i, C , C21, ·.., c0N, CIN, C2n) · El valor de Hash Cmt generado en la operación #1 se envía al algoritmo del verificador V. De esta forma, el mensaje (coi, ¾, c2i, .·., CO , CIN, C2N) se convierte en un valor de Hash antes de ser enviado al algoritmo del verificador V, permitiéndose por lo tanto una reducción en el volumen de las comunicaciones.
Operación #2 : Tras la recepción del valor de Hash Cmt, el algoritmo del verificador V selecciona cuál patrón de verificación usar de entre tres patrones de verificación, para cada uno de i=l a N. Por ejemplo, el algoritmo del verificador V puede, para cada uno de i=l a N, seleccionar un valor numérico de entre tres valores numéricos {0, 1, 2} que representan patrones de verificación, y establece el valor numérico seleccionado en una interrogación Ch. Las interrogaciones Chi, ... , ChN se envían al algoritmo del proveedor P.
Operación #3 : Tras la recepción de las interrogaciones Chi, ... , ChN, el algoritmo del comprobador P genera las respuestas Rspi, RspN, para enviarlas al algoritmo del verificador V en respuesta a cada una de las interrogaciones recibidas Chi, ..., ChN. En el caso donde Chi=0, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, tu, en, coi) . En el caso donde Chi=l, el algoritmo del comprobador P genera una respuesta Rspi=(ru, toi, e0i , c2i) . En el caso donde Ch±=2 , el algoritmo del comprobador P genera una respuesta Rspi=(rn, tu, en, c1L) .
Las respuestas Rspx, ... , RspN generadas en la operación #3 se envían al algoritmo del verificador V.
Operación #4 : Tras la recepción de las repuestas Rspi, ... , RspN, el algoritmo del verificador V ejecuta los siguientes procesos (1) a (3) para i= 1 a N, usando las respuestas recibidas Rspi, RspN. Aquí, El algoritmo del verificador V ejecuta el proceso (1) para el caso donde Chi=0, el proceso (2) en el caso donde Chi=l, y el proceso (3) en el caso donde Chi=2.
Proceso (1) : En el caso donde Chi=0, el algoritmo del verificador V recupera (roí, tu, en, CQÍ) desde Rspx. Posteriormente, el algoritmo del verificador V calcula C ii=H ( roi-tii, F(roi-eu) . Además, el algoritmo del verificador V calcula C2i=H(tu, eu) . El algoritmo del verificador V almacena entonces (coi, C u , C2 i ) Proceso (2) : En el caso donde Chi=l, el algoritmo del verificador V recupera (ru, toi, eoi, C2í ) ) desde Rspi-Posteriormente, el algoritmo del verificador V calcula coi=H(ru, G(ru, toi)+eoi) . Además, el algoritmo del verificador V calcula C ii=H(t0i, eoi) . El algoritmo del verificador V almacena entonces (c0i, Cn, C2i) .
Proceso (3) : En el caso donde Ch±=2 , el algoritmo del verificador V recupera (rli( tu, eXi, ¾) desde Rspi. Posteriormente, el algoritmo del verificador V calcula Coi=H(rii, y-F(rii) -G (tu, rii)-en) . Además, el algoritmo del verificador V calcula c2i=H(tii, en) . El algoritmo del verificador V almacena entonces (c0±, Cu, c2i) .
Después de ejecutar los procesos (1) a (3) anteriores para i= 1 a N, el algoritmo del verificador V verifica si se mantiene la igualdad de Cmt = H(c0i, Cu, c2i, ···/ CON, CIN, C2N) ) o no . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde la verificación tiene éxito, y produce el valor 0 para indicar la falla de la autentificación en el caso donde la verificación falla.
El ejemplo de las estructuras de los algoritmos eficientes paralelizados relacionados con el esquema 3 ha sido descrito anteriormente. También, los algoritmos paralelizados mostrados en la FIG. 6 incluyen la estratagema en la cual, el mensaje se convierte en el valor de Hash antes de ser enviado. La estratagema mejora la eficiencia de la comunicación. De forma similar, la estructura puede ser modificada de modo tal que las interrogaciones Chi, ... , ChN o las respuestas Rspi, ... , RspN se conviertan en valores de Hash antes de ser enviados. Modificar la estructura de esta forma permite que se espere una mejoría adicional en la eficiencia de la comunicación . 2-3 Algoritmo Eficiente Basado en Polinomios de Múltiples Variables, de Orden Alto (Esquema 1) El algoritmo eficiente anterior usa la propiedad en que el polinomio G definido en la fórmula (10) anterior se vuelve bilineal al expresar el polinomio de múltiples variables F con el par de polinomios cuadráticos fi, definidos en la fórmula (8) anterior. Sin embargo, cuando el polinomio G es aditivamente homomórfico, se puede construir un algoritmo eficiente igualmente cuando el polinomio G no sea bilineal.
Construcción del Algoritmo Eficiente Usando Polinomios Cuadráticos fi Cuando el polinomio G es aditivamente homomórfico, la relación de la fórmula (14) a la fórmula (16) siguientes se establece usando las variables, ro, t?, to, y e0. También, la siguiente fórmula (14) es una fórmula obtenida al dividir la clave secreta s en s=r0 + rx y desarrollando la clave pública F(s) . La fórmula (14) a la fórmula (16) siguientes pueden ser divididas en una primera porción (ri, t0, eo) reproducible con (ro, ti, ei) , una segunda porción (ri, ti, ei), y una tercera porción reproducible con (r±, tx, ex) .
Por ejemplo, "ro, ti" incluidas en la siguiente fórmula (15) y "F(ro), ei" incluidas en la siguiente fórmula (14), "to" incluida en la siguiente fórmula (15), y "eo" incluida en la siguiente fórmula (16) son la segunda porción. Adicionalmente "ei, F(ri), G(ti, r ) " incluido en la siguiente fórmula (14) es la tercera porción. En otras palabras, la siguiente fórmula (14) incluye la segunda y la tercera porciones, la siguiente fórmula (15) incluye la primera y la segunda porciones, y la siguiente fórmula (16) incluye la primera y la segunda porciones .
Como se describe anteriormente, cada una de la siguiente fórmula (14) a la fórmula (16) incluye dos tipos de porciones. Adicionalmente, a partir de la definición de la clave secreta s y la relación entre la siguiente fórmula (14) a la fórmula (16), se garantiza que la clave secreta s no puede ser obtenida cuando se usa alguna de (ro, ti, ei) , (rx, to, e0) , y (rx, ti, ei) . Usar esta propiedad permite, por ejemplo, la construcción de un algoritmo eficiente relacionado con el esquema de 3 pasos mostrado en la FIG. 5.
Matemática 11 F(r0 + r, ) = e0 + e, + (r, ) + G(t0 , rx ) + G (í, , rx ) - (1 ) Construcción del Algoritmo Eficiente Usando Polinomios Cúbicos f± El método para construir un algoritmo eficiente usando un polinomio cúbico fi de un anillo R expresado como en la siguiente fórmula (17) se examinará desarrollando la siguiente descripción del caso donde el polinomio cuadrático f . Un polinomio de múltiples variables F={f ... , fm) expresado con un par de polinomios cúbicos fi, satisface la relación de la siguiente fórmula (18) . Aquí, Gx(x, y) representa un término lineal para y. Cuando Gx=(gxi, g y Gy=(gyl, qw) se expresan, gxi y gyi pueden ser desarrollados como en la siguiente fórmula (19) y la fórmula (20) respectivamente. Aqui, ya que el segundo término de la derecha gxi también es lineal para una de x e y, el segundo término de la derecha puede incluir gyl.
Matemática 12 ·· ( 1 7 ) F(x +y)-F(x)- F(y) = Gx(x,y) + Gy{x,y) - (18) (19) » (20) Como se entiende a partir de la formula (19) y la fórmula (20) anteriores, Gx(x, y) y Gy(x, y) se vuelven aditivamente homomórficos para x e y. Por lo tanto, usando esta propiedad, la clave pública F(s) se divide introduciendo las nuevas variables ro, rír t0, u0, y eo, como en el método para la construcción del algoritmo eficiente usando polinomios cuadráticos fj_.
Ya que los polinomios Gx y Gy son aditivamente homomórficos, la relación entre la siguiente fórmula (21) a la fórmula (24) se establece usando las variables ro, ri, to, Uo, y eo- Las siguientes fórmulas (21) a la fórmula (24) pueden ser divididas en una primera porción reproducible con (ro, to, uo, e0) , una segunda porción reproducible con (r0, Ui, ei) , una tercera porción reproducible con (ri, to, eo) , y unja cuarta porción reproducible con (rx, ti, Ui, ei) .
Por ejemplo, "r0, t0" incluidas en la siguiente fórmula (22), "u0" incluida en la siguiente fórmula (23), y "F(ro), Gy(r0, u0)" incluidas en la siguiente fórmula (24) son la primera porción. Adicionalmente , "Gy(r0, ui), ei" incluidas en la siguiente fórmula (24) es la segunda porción. Adicionalmente "ei, F(rx), Gx(ti, rx) " incluidas en la siguiente fórmula (21), "ti" incluida en la siguiente fórmula (22), y "ui" incluida en la siguiente fórmula (23) son la cuarta porción .
En otras palabras, la siguiente fórmula (21) incluye la tercera y la cuarta porciones, la siguiente fórmula (22) y la siguiente fórmula (23) incluyen la primera y la cuarta porciones, y la siguiente fórmula (24) incluye la primera y la segunda porciones. De esta forma, cada una de las siguientes fórmulas (21) a la fórmula (24) incluye dos tipos de porciones .
A partir de la definición de la clave secreta s y la relación entre las siguientes formulas (21) a la fórmula (24), se garantiza que la clave secreta s no pueda ser obtenida cuando se usa cualquiera de (ro, to, Uo, e0) , (r0, Ui, ei) , (ri, to eo) Y (rir ti, ui, ei) . Usar esta propiedad permite, por ejemplo, la construcción de un algoritmo eficiente (de aquí en adelante, un algoritmo extendido) relacionado con el esquema de 3 pasos, usando el polinomio cúbico fi del anillo R.
Matemática 13 (r0 + r{) = e0 + ex + fo)+ Gx(t0^)- Gx(t{,r ) - (21) *0 ^ ¿0 ~*~? ·» (22) rx - 0 + w, ··· (23) ^fo)+<¼>?»«?)+ G>(re,ae)=e0 +et - (24) A partir de aquí, se describirá un ejemplo de una estructura algorítmica extendida, especifica. Los dos puntos básicos con relación al diseño del algoritmo extendido son que el mensaje expresado en la siguientes formulas (25) a la fórmula (27) se envía a un verificador y que una de la primera a la cuarta porciones se verifica. Sin embargo, solo en esta verificación, puede no ser verificado que Mri", incluida en la tercera porción sea idéntica a "ri" incluida en la cuarta porción. De forma similar, puede no ser verificado que "r0" incluida en la primera porción, sea identifica a "r0" incluida en la segunda porción y que "to, e0", incluidas en la primera porción sea idéntica a "t0, eo" incluidas en la tercera porción, tampoco. Adicionalmente , puede no ser verificado que "ui, ei" incluidas en la segunda porción, sean idénticas a "ulf i" incluidas en la cuarta porción, tampoco. Por consiguiente, el ejemplo de la estructura que permite esta verificación, se introducirá a continuación.
Matemática 14 ·· (27) 2-3-1: Estructura Básica (FIG. 7) Primero, se describirá la estructura básica de un algoritmo extendido relacionado con el esquema de 3 pasos, con referencia a la FIG. 7. Sin embargo, la descripción adicional de la estructura del algoritmo de generación de la clave Gen se omitirá.
Operación #1 : Como se ilustra en la FIG. 7, el algoritmo del comprobador P genera de forma aleatoria los vectores r0, t0, Uo que son elementos del conjunto Kn, y el vector e0 que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula ri<- s-r0. Este cálculo es equivalente a ocultar la clave secreta s con el vector r0. Posteriormente, el algoritmo del comprobador P calcula ti<- r0 + t0. Posteriormente, el algoritmo del comprobador P calcula Ui <- ri + u0. Posteriormente, el algoritmo del comprobador P calcula ?? <- F(r0)-e0.
Operación #1 (continuación) : Posteriormente, el algoritmo del comprobador P calcula Co <- H(ri, Gx(to/ ri)+e0) . Posteriormente, el algoritmo del comprobador P calcula ci <-H(ro~to, uo) . Posteriormente, el algoritmo del comprobador P calcula c? <- H(r0, ei-Gy(r0, Ui) ) . Posteriormente, el algoritmo del comprobador P calcula c3 <-H(to, e0) . Posteriormente, el algoritmo del comprobador P calcula c4 <- H(ui, ei) . Los mensajes (c0, c1( C2, c3, c4) generados en la operación #1 se envian al algoritmo del verificador V.
Operación #2 : Tras la recepción de los mensajes (co, Ci, C2, C3, C4) , el algoritmo del verificador V selecciona cuál patrón de verificación usar, de entre cuatro patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre cuatro valores numéricos {0, 1, 2, 3} gue representan los patrones de verificación, y establece el valor numérico seleccionado en una interrogación Ch. La interrogación Ch se envía al algoritmo del comprobador P.
Operación #3 : Tras la recepción de la interrogación Ch, el algoritmo del comprobador P genera las respuestas Rsp para enviarlas al algoritmo del verificador V en respuesta a cada una de las interrogaciones recibidas Ch. En el caso donde Ch=0, el algoritmo del comprobador P genera una respuesta Rsp=(r0, t0, uo, e0) . En el caso donde Ch=l, el algoritmo del comprobador P genera una respuesta Rsp=(r0, Ui, ex) . En el caso donde Ch=2, el algoritmo del comprobador P genera una respuesta Rsp=(ri, t0, e0) . En el caso donde Ch=3, el algoritmo del comprobador P genera una respuesta Rsp=(ri, ti, Ui, ei) . La respuesta Rsp generada en la operación #3 se envía al algoritmo del verificador V.
Operación #4 : Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta Rsp recibida.
En el caso donde Ch=0, el algoritmo del verificador V verifica si se mantiene o no la igualdad de ci=H(ro-t0, u0) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c2=H(r0, F(ro)+Gy(r0, uo)-e0) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c3=H(t0, e0) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autent ificación en el caso donde todas las verificaciones tienen éxito, y produce el valor 0 para indicar la falla de la autent ificación en el caso donde la verificación falla.
En el caso donde Ch=l, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c2=H(r0, e1; -Gy(r0, ui) ) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c4=H(ui, ei) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas las verificaciones tienen éxito, y produce el valor 0 para indicar la falla de la autent ificación en el caso donde una verificación falla.
En el caso donde Ch=2, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Co=H(ri, eo-Gx(tc, r) ) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de C3=H(t0, e0) · El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas las verificaciones tienen éxito, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde Ch=3, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Co=H(ri, y-F(ri)-ei~Gx(ti, ri) ) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de ci=H(ti, r , Ui) . Posteriormente, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c4=H(ui, ei) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autent ificación en el caso donde todas las verificaciones tienen éxito, y produce el valor 0 para indicar la falla de la autent ificación en el caso donde una verificación falle.
El ejemplo de la estructura del algoritmo extendido relacionado con el esquema de 3 pasos ha sido descrito anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También, usar el polinomio cúbico permite la obtención de una seguridad superior. 2-3-2: Algoritmo Paralelizado (FI6. 8) Enseguida, un método para la paralelización de los algoritmos extendidos relacionados con el esquema de 3 pasos, se describirá con referencia a la FIG. 8. Sin embargo, la descripción adicional de la estructura del algoritmo de generación de la clave Gen se omitirá.
Operación #1 : Como se ilustra en la FIG. 8, el algoritmo del comprobador P ejecuta los siguientes procesos para i=l a N. Primero el algoritmo del comprobador P genera de forma aleatoria los vectores r0i, to±, UOÍ que son elementos del conjunto Kn, y el vector eoi que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula rii<- s-roi. Este cálculo es equivalente a ocultar la clave secreta s con el vector roí. Posteriormente, el algoritmo del comprobador P calcula tn<- r0i + t0i. Posteriormente, el algoritmo del comprobador P calcula un <- ru + u0i. Posteriormente, el algoritmo del comprobador P calcula en <-F (r0i) -e0i .
Operación #1 (continuación) : Posteriormente, el algoritmo del comprobador P calcula coi <- H(rü, Gx(toi, n)+eoi) . Posteriormente, el algoritmo del comprobador P calcula cu <-H(r0i-toi, u0i) . Posteriormente, el algoritmo del comprobador P calcula c2i <- H(r0i, eii-Gy(rni, un) ) . Posteriormente, el algoritmo del comprobador P calcula C3i <- H(toi, eoi) . Posteriormente, el algoritmo del comprobador P calcula c4i <- H(U , en) .
Después de la generación de (c0i, cu, C21, c3i, c4i, Con, CINÍ C2N? C3N, C4N) , el algoritmo del comprobador P calcula el valor de Hash Cmt <- H(c0i, Cu, c2i, c3i, c41, C0N/ CIN, C211, c3Nr c4 ) · El valor de Hash Cmt generado en la operación #1 se envia al algoritmo del verificador V.
Operación #2 : Tras la recepción del valor de Hash, el algoritmo del verificador V selecciona cuál patrón de verificación usar, de entre cuatro patrones de verificación, para cada una de i=l a N. Por ejemplo, el algoritmo del verificador V puede seleccionar, para cada i= 1 a N, un valor numérico de entre cuatro valores numéricos {0, 1, 2, 3} que representan los patrones de verificación, y establece el valor numérico seleccionado en una interrogación Ch?. La interrogación Chi (i=l a N) se envia al algoritmo del comprobador P.
Operación #3 : Tras la recepción de la interrogación Chi (i=l a N) , el algoritmo del comprobador P genera las respuestas Rspi para cada 1 i=l a N, para enviarlas al algoritmo del verificador V en respuesta a cada una de las interrogaciones recibidas Chi . En el caso donde Chi=0, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, toi, UOÍ, eoi, coi, c4i) . En el caso donde Chi=l, el algoritmo del comprobador P genera una respuesta Rspi=(roi, un, eii, coi, cu) . En el caso donde Chi=2, el algoritmo del comprobador P genera una respuesta Rspi=(ru, t0i, &oir Cu, C2i, c4i) . En el caso donde Chi=3, el algoritmo del comprobador P genera una respuesta Rspi=(rn, tu, uu, en, cur C3i) . La respuesta Rspi (i=l a N) generada en la operación #3 se envía al algoritmo del verificador V.
Operación #4 : Tras la recepción de la respuesta Rspi (i=l a N) , el algoritmo del verificador V ejecuta el siguiente proceso para i=l a N, usando la respuesta Rsp recibida.
En el caso donde Chi=0, el algoritmo del verificador V calcula Cn=H ( 0i-toi, UQÍ) . Posteriormente, el algoritmo del verificador V calcula C2i=H(pi, F (roi+Gy (roí, uoi)-eoi) . Posteriormente, el algoritmo del verificador V calcula C3i=H(toi, eoi) · El algoritmo del verificador V almacena entonces (c0i, clir c2i, c3i, c4i) .
En el caso donde Chi=l, el algoritmo del verificador V calcula c2i=H(r0i, eii-Gy( 0i, uu) ) . Posteriormente, el algoritmo del verificador V calcula C Í=H(UIÍ, en) . Posteriormente, el algoritmo del verificador V calcula C31=(t0i, e0i) . El algoritmo del verificador V almacena entonces (coi, c-a, C21, c^±, c i) .
En el caso donde Chi=2, el algoritmo del verificador V calcula Co1=H(rii, Gx(t0i, rn)+eoi) . Posteriormente, el algoritmo del verificador V calcula C3i=H(toi, e0i) . El algoritmo del verificador V almacena entonces (coi, ¾, c2i, 031, c4i) .
En el caso donde Chi=3, el algoritmo del verificador V calcula c0 =H(rii, y-F (rn) -en-Gx (tu, ru) ) . Posteriormente, el algoritmo del verificador V calcula Cn=H(tii, ru-uii) . Posteriormente, el algoritmo del verificador V calcula C Í=H(UIÍ, en) . El algoritmo del verificador V almacena entonces (c0i, ¾, c2i, c3i, c i) .
Después de ejecutar los procesos anteriores para i=l a N, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Cmt=H(c0i, Cu, c2i, c3i, c41, c0N, cWr c2N, c3N, c4 ) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde la verificación sea exitosa, y produce el valor 0 para indicar la falla de la autentificación en el caso donde la verificación falla.
La paraleli zación de la estructura del algoritmo extendido relacionado con el esquema de 3 pasos ha sido descrita anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También usar polinomios cúbicos permite la obtención de seguridad superior. 3 : Estructura Algorítmica Relacionada con el Esquema de Autentificación de 5 Pasos A partir de aquí, se descubrirán los algoritmos relacionados con un esquema de autentificación de clave pública de 5 pasos. Nótese que en la siguiente descripción, el esquema de autentificación de clave pública de 5 pasos también se puede conocer como "esquema de 5 pasos" en algunos casos.
En el caso del esquema de 3 pasos, la probabilidad de la verificación falsa es 2/3 por ejecución del protocolo interactivo. Sin embargo, en el caso del esquema de 5 pasos, la probabilidad de la verificación falsa por ejecución del protocolo interactivo es de 1/2 + 1/q. Aquí, q es el orden del anillo a ser usado. Por consiguiente, cuando el orden del anillo es suficientemente grande, la probabilidad de la verificación falsa por ejecución del esquema de 5 pasos se puede reducir, y por lo tanto, la probabilidad de la verificación falsa puede ser reducida de forma suficiente al ejecutar el protocolo interactivo un número pequeño de veces.
Por ejemplo, cuando se desea que la probabilidad de la verificación falsa sea igual o menor a l/2n, el protocolo interactivo debe ser ejecutado n/ ( log3-l ) =1.7 Oln veces o más en el esquema de 3 pasos. Por otro lado, cuando se desea que la probabilidad de la verificación falsa sea igual o menos a l/2n, el protocolo interactivo debe ser ejecutado n/(l-log(l+l/q)) veces o más en el esquema de 5 pasos. Por consiguiente, cuando q=24, la cantidad de comunicación necesaria para lograr el mismo nivel de seguridad, es menor en el esquema de 5 pasos que en el esquema de 3 pasos. 3-1: Ejemplo de la Estructura Algorítmica Especifica (FIG. 9) Primero, se introducirá un ejemplo de la estructura algorítmica específica relacionada con el esquema de 5 pasos, con referencia a la FIG. 9. La FIG. 9 es un diagrama explicativo para describir la estructura algorítmica específica relacionada con el esquema de 5 pasos. El algoritmo del esquema de 5 pasos se compone de un algoritmo de generación de la clave Gen, un algoritmo del comprobador P, y un algoritmo del verificador V. A partir de aquí, se describirá la estructura de cada algoritmo.
Algoritmo de Generación de la Clave Gen El algoritmo de generación de la clave los polinomios de múltiples variables fi( i, xn) , fm(xi, ···, xn) definidos en un anillo k y un vector s=(si, sn) que es un elemento de conjunto Kn. Enseguida, el algoritmo de generación de la clave Gen establece (fi, fm , y) en la clave pública pk y establece s como la clave secreta. A partir de aquí, un vector (xi, ... , xn) se representa por x y en el par de polinomios de múltiples variables (fi(x), fm(x)) se representa por F(x) .
Algoritmo del comprobador P, Algoritmo del Verificador V Enseguida, se describirán los procesos llevados a cabo por el algoritmo del comprobador P y el algoritmo del verificador V durante el protocolo interactivo, con referencia a la FIG . 9.
Operación #1 : Como se ilustra en la FIG. 9, el algoritmo del comprobador P selecciona de forma aleatoria un número semillao- Enseguida, el algoritmo del comprobador P genera un vector r0, el cual es un elemento del conjunto Kn y un par de polinomios de múltiples variables Fi(x) = (fn(x) , ···, fim(x)) al aplicar el número semillao al generador de números pseudo aleatorios PRNG. Posteriormente, el algoritmo del comprobador P calcula (r0, Fi) <- G ( semillao) . Posteriormente, el algoritmo del comprobador P calcula rl <- s-r0. Este cálculo es equivalente a ocultar la clave secreta s con el vector r0.
Operación #1 (continuación) : Enseguida, el algoritmo del comprobador P genera Fi(rj) y un valor de Hash Co de r± . Es decir, el algoritmo del comprobador P calcula co <- H(Fi(ri), r . También, el algoritmo del comprobador P genera un valor de Hash el del número semillao. Es decir, el algoritmo del comprobador P calcula ci <- H (semillao) . Los mensajes (c0, Ci) generados en la operación #1 se envían al algoritmo del verificador V.
Operación #2 : Tras la recepción de los mensajes (c0, c ) el algoritmo del verificador V selecciona de forma aleatoria un número ChA de los orígenes de q anillos K, y envía el número seleccionado Ch¾ al algoritmo del comprobador P.
Operación #3 : Tras la recepción del número ChA, el algoritmo del comprobador P calcula F2(x) <- ChA-F(x+r0) para x con el polinomio de múltiples variables Fi(x) . El polinomio de múltiples variables F2 generado en la operación #3 se envía al algoritmo del verificador V.
Operación #4 : Tras la recepción del polinomio de múltiples variables F2, el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} que representa patrones de verificación, y establece el valor numérico seleccionado en una interrogación ChB. Esta interrogación ChB se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de la interrogación ChB, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChB. En el caso donde ChB=0, el algoritmo del comprobador P genera una respuesta Rsp=semillao . En el caso donde ChB=l, el algoritmo del comprobador P genera una respuesta Rsp=ri. La respuesta Rsp generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6: Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta recibida Rsp.
En el caso donde ChB=0, el algoritmo del verificador V calcula (ro, Fi) <-PRNG (Rsp) . Entonces, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Ci=H(Rsp) . Además, el algoritmo del verificador V verifica si se mantiene o no la igualdad de F2 (x) =ChA 'F ( F (x+r0) +Fi (x) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones sean exitosas, y transmite el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde ChB=l, el algoritmo del verificador V establece ri<-Rsp. También, el algoritmo del verificador V verifica si se mantiene o no la igualdad de co=H ( F2 ( ri ) -ChA · y , ri) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una de las verificaciones falle.
Validez La validez del esquema de 5 pasos se garantiza por el hecho de que Fi, F2, F2- , r0 y ri que satisfacen las siguientes fórmula (28) a la fórmula (30) pueden ser calculadas a partir del contenido de una repuesta, cuando el algoritmo del comprobador P produce apropiadamente la respuesta a la interrogación ChB=0 y 1 con respecto a (c0, cx) y dos (ChA, ChA' ) seleccionadas por el algoritmo del verificador V.
Matemática 15 F^x^Ch^Fix + r^ + F^x) - (28) F2 x) = ChA*-F(x+ r0) + F(x) ·· <29) F2{r)-ChM-y = F1 r,)-Ch y - (30) Al garantizar la validez anterior del esquema de 5 pasos, el hecho de que no sea posible la falsificación con una probabilidad mayor a 1/2+1/q se garantiza siempre y cuando no se resuelva el problema de resolver las ecuaciones simultánea, de múltiples variables, de orden múltiple. Es decir, para producir de forma apropiada la respuesta a todas las interrogaciones ChA=0 y 1 del verificador, el falsificador debe calcular Fi, F2, F2' , r0, y ri que satisfagan la fórmula (28) y la fórmula (30) anteriores. En otras palabras, el falsificador debe calcular s que satisfaga la ecuación F(s)=y. Por consiguiente, el falsificador puede no tener éxito en la falsificación con una probabilidad mayor al 1/2 + 1/q siempre y cuando no se resuelva el problema de resolver las ecuaciones simultáneas, de múltiples variables, de orden múltiple. Además, al ejecutar repetidamente el protocolo interactivo anterior un número suficientemente grande de veces, la probabilidad de una falsificación exitosa se vuelve insignificante.
Función de Hash H Aquí, se complementará la descripción de la función de Hash H. En los algoritmos anteriores, c0, Ci, y las similares se calculan usando la función de Hash H. Sin embargo, puede ser usada una función de compromiso COM usada en lugar de la función de Hash H. La función de compromiso COM es una función en la cual, una cadena de caracteres S y un número aleatorio p son factores. Un ejemplo de la función de compromiso incluye un esquema publicado en la Conferencia internacional CRYPTO 1996 por Shai Halevi y Silvio Micali.
Por ejemplo, se considerará un caso en el cual c0 y ci, se calculan usando la función de compromiso COM. En este caso, los números aleatorios po y pi se preparan antes de que se calculen c0 y Ci y c0 y ci, se generan aplicando las funciones de compromiso COM( -,p0) y CO ( -,pi), en lugar de aplicar la función de Hash H( ·) · Además, pi necesaria para que el verificador genere ci, se establece para estar incluida en la respuesta Rsp y se envia.
El ejemplo de la estructura algorítmica específica relacionada con el esquema de 5 pasos ha sido descrito anteriormente . 3-2 : Algoritmo E icien e Basado en Polinomios Cuadra icos de Múltiples Variables Enseguida, se describirá un método para producir los algoritmos relacionados con el esquema de 5 pasos eficiente. Aquí, se describirá un caso en el cual se usa un par de polinomios cuadráticos (fi(x), fm(x) ) como los polinomios de múltiples variables F.
Como en los algoritmos eficientes relacionados con el esquema de 3 pasos, dos vectores es decir, el vector t0 que es un elemento del conjunto Kn el vector e0 que es un elemento del conjunto Km se usan para expresar el polinomio de múltiples variables Fi(x), el cual se usa para ocultar el polinomio de múltiples variables F(x+r0), como Fi(x)=G(x, t0)+eo. Cuando se usa esta expresión, se puede obtener la relación expresada en la siguiente fórmula (31), para el polinomio de múltiples variables F(x+ro) .
Matemática 16 CV (x + r0) + i¾(*) = ChA · F(x)+ ChA¦ F(r0)+ ChA¦ G(JC, r0) + +e0 = ChA · /*(*)+ G(x,ChA -rQ + t0) + ChA- F(r0)+ eQ • (31) Por esta razón, cuando ti=ChA · r0+t0, ei=Ch¾ -F (r0) +eo, el polinomio de múltiples variables F2 (x) =ChA¦ F (x+r0) +Fi (x) después del enmascaramiento, también pueden ser expresado por dos vectores, es decir, el vector ti, el cual es un elemento del conjunto Kn y el vector ei, que es un elemento del conjunto Km. Por esta razón, cuando se establece "fi(x)=G(x, to)+eo" Fi y F2 pueden ser expresados usando un vector en Kn y un vector en Km, y por lo tanto, el tamaño de los datos necesarios para la comunicación puede ser reducido de forma considerable. Específicamente, el costo de la comunicación puede ser reducido al grado de miles a decenas de miles de veces.
A través de la modificación anterior, la información sobre r0 no se filtra en absoluto desde F2 (o Fi) . Por ejemplo, aun cuando se proporcione e2 y ti (o, e0 y t0) , la información sobre r no se conoce en absoluto siempre y cuando eo y to (o ei y ti) no se conozcan. Por consiguiente, se garantiza el conocimiento nulo. ? partir de aquí, se describirá un algoritmo eficiente relacionado con el esquema de 5 pasos, con referencia a las FIGS. 10 y 11. 3-2-1: Estructura Básica (FIG. 10) Primero, se describirá la estructura básica de un algoritmo eficiente relacionado con el esquema de 5 pasos, con referencia a la FIG. 10. Sin embargo, se omitirá la descripción adicional de la estructura del algoritmo de generación de la clave Gen.
Operación #1 : Como se ilustra en la FIG. 10, el algoritmo del comprobador P genera de forma aleatoria el vector ro que es un elemento del conjunto Kn, y el vector t0 que es un elemento del conjunto Kn y el vector eo que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula ri <-s-r0. Este cálculo es equivalente a ocultar la clave secreta s con el vector r0. Posteriormente, el algoritmo del comprobador P calcula el valor de Hash de los vectores r0, to, eo. Es decir, el algoritmo del comprobador P calcula Co <-H(ro, to, eo) . Posteriormente, el algoritmo del comprobador P genera G(t0, ri)+e0 y el valor de Hash cx de rx. Es decir, el algoritmo del comprobador P calcula c0 <-H(ri, G(to, ri)+e0). Los mensajes (co, Ci) generados en la operación #1 se envían al algoritmo del verificador V.
Operación #2 : Tras la recepción de los mensajes (c0, cx) el algoritmo del verificador V selecciona de forma aleatoria un número ChA de los orígenes de q anillos K, y envía el número seleccionado ChA al algoritmo del comprobador P.
Operación #3 : Tras la recepción del número ChA, el algoritmo del comprobador P calcula F2 (x) <- ChA-r0-to. Adicionalmente , el algoritmo del comprobador P calcula ei<-ChA -F (r0) -e0- El algoritmo del comprobador P envía ti y ei al algoritmo del verificador V.
Operación #4 : Tras la recepción de ti y ei, el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} gue representan patrones de verificación, y establece el valor numérico seleccionado en una interrogación ChB. Esta interrogación ChB se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de la interrogación ChB, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChB. En el caso donde ChB=0, el algoritmo del comprobador P genera una respuesta Rsp=ro. En el caso donde ChB=l, el algoritmo del comprobador P genera una respuesta Rsp=ri. La respuesta Rsp generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6 : Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta recibida Rsp.
En el caso donde ChB=0, el algoritmo del verificador V calcula r0<-Rsp. Entonces, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Co=H(ro, Ch¾-r0-ti, Ch¾ -F (r0) -ei) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones sean exitosas, y transmite el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde ChB=l, el algoritmo del verificador V ejecuta ri<-Rsp. Entonces, el algoritmo del verificador V verifica si se mantiene o no la igualdad de cl=Hi(ri, ChA-(y-F(ri)-G(ti, ri)-ei- El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde todas estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
El ejemplo de la estructura del algoritmo eficiente relacionada con el esquema de 5 pasos ha sido descrito anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. 3-2-2: Algoritmo Paralelizado (FIG. 11) Enseguida, se describirá un método para la paralelización de los algoritmos eficientes ilustrados en la FIG. 10, con referencia a la FIG. 11. Sin embargo, la descripción adicional de la estructura del algoritmo de generación de la clave Gen se omitirá.
Como se describe anteriormente, aplicar el protocolo interactivo anterior relacionado con el esquema de 5 pasos, hace posible mantener la probabilidad de una falsificación exitosa en (1/2+1/q) o menos. En consecuencia, ejecutar el protocolo interactivo dos veces hace posible mantener la probabilidad de una falsificación exitosa en (1/2+1/q)2 o menos. Además, si el protocolo interactivo se ejecuta N veces, la probabilidad de una falsificación exitosa resulta de (l/2+l/q)N, y si N se ajusta a un número suficientemente grande N=80, por ejemplo), la probabilidad de una falsificación exitosa resulta insignificante.
Los métodos concebibles para ejecutar un protocolo interactivo múltiples veces incluyen un método en serie que repite secuencialmente el intercambio del mensaje, la interrogación, y la respuesta múltiples veces, y un método en paralelo, que intercambia múltiples mensajes, interrogaciones, y respuestas en un solo intercambio, por ejemplo. Aquí, se describirán los algoritmos que ejecutan el protocolo interactivo anterior relacionado con el esquema de 5 pasos en paralelo (designados de aqui en adelante como algoritmos paralelizados ) .
Operación #1 : El algoritmo del comprobador P ejecuta primero los siguientes procesos (1) a (4) para i=l a N.
Proceso (1) : El algoritmo del comprobador P genera de forma arbitraria los vectores r0i y t0i que son elementos del conjunto Kn, y el vector eoi que es un elemento del conjunto Km.
Proceso (2): El algoritmo del comprobador P calcula ru <-s-roi. Este cálculo es equivalente a ocultar la clave secreta s usando el vector roí.
Proceso (3) : El algoritmo del comprobador P calcula c0i <-H ( r0i, toi, eoi ) - Proceso (4): El algoritmo del comprobador P calcula Cu <-H (ru, G (toi, ru) +e0i) .
Después de ejecutar los procesos (1) a (4) anteriores para i=l a N, el algoritmo del comprobador P ejecuta el valor de Hash Cmt <-H (c0i, cllr ... , cm, c1N) . El valor de Hash generado en la operación #1 se envía al algoritmo del verificador V.
Operación #2 : Tras la recepción del valor de Hash el algoritmo del verificador V selecciona de forma aleatoria un número ChAl de los orígenes de q anillos K, para i=l a N y envía el número seleccionado ChAi al algoritmo del comprobador P.
Operación #3 : Tras la recepción del número ChAi (i=l a N¡ , el algoritmo del comprobador P calcula tii<-ChAi -r0i-t0i para i=l a N. Adicionalmente , el algoritmo del comprobador P calcula eu<-ChAi · F (r0i) -eoi para i=l a N. Entonces, el algoritmo del comprobador P envía tllf t1N y e , e1N al algoritmo del verificador V.
Operación #4 : Tras la recepción de tu, tw y elx, eiN, el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación para i=l a N. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} que representa patrones de verificación, y establece el valor numérico seleccionado en una interrogación ChBi. Esta interrogación ChBi se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de la interrogación ChBi (i=l a N) , el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChBi · En el caso donde ChBi=0, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, cu) . En el caso donde ChBi=l, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, c0l) . La respuesta Rsp± (i=l a N) generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6 : Tras la recepción de la respuesta Rspi (i=l a N) , el algoritmo del verificador V ejecuta los siguientes procesos de verificación usando la respuesta recibida Rspi (i=l a N) .
Proceso (1) : En el caso donde ChBi=0, el algoritmo del verificador V ejecuta (r0i, Cn)<-Rspi. Entonces, el algoritmo del verificador V calcula COÍ=H ( r0i-ChAi · ro±-t , Ch¾1 · F ( ( roí ) -en) . El algoritmo del verificador V almacena entonces (coi, Cli) .
Proceso (2) : En el caso donde ChBi=l, el algoritmo del verificador V ejecuta (¾, Coi)<-Rspi. Entonces, el algoritmo del verificador V calcula cu- H (?n~Ch¾í ¦ ( y—F( ii))-G ( tu, rÜ ) — en) . El algoritmo del verificador V almacena entonces (coi, cu) .
Después de ejecutar los procesos (1) y (2) para i=l a N, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Cmt=H(coi, ¾, . · ·/ c0N, Cm) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una de las verificaciones falle.
El ejemplo de las estructuras de los algoritmos eficientes, paralelizados , relacionados con el esquema de 5 pasos, ha sido descrito anteriormente. También, los algoritmos paralelizados mostrados en la FIG. 11 incluyen la estratagema en la cual, el mensaje se convierte en el valor de Hash antes de ser enviado. La estratagema mejora la eficiencia de la comunicación. De forma similar, la estructura puede ser modificada de modo tal que las interrogaciones Ch¾1, ChAN, ChBi, ChB o las o las respuestas Rspi, RspN se conviertan en valores de Hash antes de ser enviados. Modificar la estructura de esta forma permite que se espere una mejoría adicional en la eficiencia de la comunicación. 3-3: Algoritmo Eficiente Basado en Polinomios de Múltiples Variables, de Orden Alto (Esquema #1) Los algoritmos eficientes anteriores usan la propiedad de que el polinomio G definido en la fórmula (10) anterior se vuelve bilineal al expresar el polinomio de múltiples variables F con el par de polinomios cuadráticos fi definidos en la fórmula (8) anterior. Aquí, el algoritmo eficiente ilustrado en la FIG. 10 usa el hecho de que la clave pública F(s) puede ser dividida en una porción en la cual un término, el cual es ChA veces, es dependiente de ChA y otra porción. Sin embargo, aun en el caso del esquema de 5 pasos, cuando el polinomio G es lineal para al menos una de x e y, se puede construir un algoritmo eficiente igualmente aun cuando el polinomio G no sea bilineal.
Construcción del Algoritmo Eficiente Usando el Polinomio Cubico fi Un método para la construcción de un algoritmo eficiente que usa un polinomio cúbico fi de un anillo R, se examinará como en el caso del esquema de 3 pasos. Cuando el polinomio fx se expresa como en la fórmula (17) anterior, el hecho de que Gx(x, y) y Gy(x, y) se vuelvan lineales para x e y puede ser entendido por la fórmula (19) y la fórmula (20) .
Por lo tanto, usando la propiedad anterior, la clave pública F(s) se divide en un término, el cual es de Ch¾ veces, al introducir las nuevas variables r0, ri, t0, u0, y e0. Ya que los polinomios Gx y Gy son lineales para x e y, la relación entre las siguientes fórmulas (32) a la fórmula (35) se establece usando las variables r0, ri, to, uo, y eo. Las siguientes fórmulas (32) a la fórmula (35) pueden ser dividas en una primera porción dependiente de ChA y una segunda porción no dependiente de ChA. Aquí, la primera porción puede ser reproducida con (ri, ti, Ui, ei) . La segunda porción puede ser reproducida con (r0, ti, Ui, ex) .
Por ejemplo, "e0, Gx(to, ri)" incluidos en la siguiente fórmula (32), "to" incluida en la siguiente fórmula (33), "uo" incluida en la siguiente fórmula (34), y "e0, Gy(r0, uo)" incluidas en la siguiente fórmula (35) son las primeras porciones. Por otro lado, "Ch¾1 · F ( r0+ri ) , eif ChA-F(ri), Gx(ti, ri)" incluida en la siguiente fórmula (32), "ChA-ro, ti" incluidas en la siguiente fórmula (33), "ChA-ri,ui" incluidas en la siguiente fórmula (34), y "ChA-F(ro), Gy(r0, ui) , ei" incluidas en la siguiente fórmula (35) son las segundas porciones .
De la definición de la clave secreta s y la relación entre las siguientes fórmulas (32) a la fórmula (35), el hecho de que la clave secreta letreas no pueda ser obtenida se garantiza aun cuando se use alguna de (ri, ti, ui, ei) y (r0, ti, ui, ex) . Usar esta propiedad, por ejemplo, permite la construcción de un algoritmo eficiente (llamado de aqui en adelante un algoritmo extendido) relacionado con el esquema de 5 pasos que usa el polinomio cúbico fi del anillo R.
Matemática 17 ChA¦ F(rQ +rl) e + e]+ChA-F( )+ Gx{t,^) +Gx{t^) (32) ChÁ -F(r0)+Gy(r0,ul)+Gy(rQ,u0) = e0+e, - (35) A partir de aqui, se describirá un ejemplo de la estructura especifica del algoritmo extendido. Dos puntos básicos con relación al diseño de un algoritmo extendido son que el mensaje expresado en las siguientes fórmula (36) y la fórmula (37) se envía al verificador y que la porción (primera porción) dependiente de ChA se verifica para Ch¾ seleccionada por el verificador. Aquí, ya que se evita que ro y ri usadas en el momento de la generación del mensaje, sean sustituidas con otras ro y ri en el momento de la verificación", se introducirá ahora un ejemplo de una estructura a la cual se agrega la verificación sobre ro y ri.
Matemática 18 c0 =#(/ose0-G(>0,w0)) ··· (36) c, = H(u0,Gx(t0,r]) + e0) - (37) 3-3-1: Estructura Básica (FIG. 12) Primero, se describirá la estructura básica del algoritmo extendido relacionado con el esquema de 5 pasos, con referencia a la FIG. 12. Sin embargo, se omitirá la descripción adicional del algoritmo de generación de la clave Gen .
Operación #1 : Como se ilustra en la FIG. 12, el algoritmo del comprobador P genera de forma aleatoria los vectores ro, to, uo que son elementos del conjunto Kn, y el vector e0 que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula ri <- s-r0. Este cálculo es equivalente a ocultar la clave secreta s con el vector ro- Posteriormente, el algoritmo del comprobador P calcula Co <-H(r0, to, eo~Gy(ro, UQ) ) . Posteriormente, el algoritmo del comprobador P calcula Ci <-H(ri, u0, Gx(to, ri)+e0). Los mensajes (c0, cx) generados en la operación #1 se envían al algoritmo del verificador V.
Operación #2 : Tras la recepción de los mensajes (co, Ci) el algoritmo del verificador V selecciona de forma aleatoria un número Ch¾. El número Ch¾ se envía al algoritmo del comprobador P.
Operación #3 : Tras la recepción del número ChA, el algoritmo del comprobador P calcula ti <- ChA-r0-t0. Posteriormente, el algoritmo del comprobador P calcula ui<-ChA -ri-u0. Posteriormente, el algoritmo del comprobador P calcula ei <-ChA¦ F ( ri ) +ChA -Gy ( r0, ri)-e0. Entonces (ti, Ui, ex) generados en la operación #3 se envían al algoritmo del verificador V.
Operación #4 : Tras la recepción de (ti, Ui, ei) , el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} que representan patrones de verificación, y establece el valor numérico seleccionado en una interrogación ChB. Esta interrogación ChB se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de la interrogación ChB, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChB. En el caso donde ChB=0, el algoritmo del comprobador P genera una respuesta Rsp=r0. En el caso donde ChB=l, el algoritmo del comprobador P genera una respuesta Rsp=ri. La respuesta Rsp generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6 : Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta recibida Rsp.
En el caso donde ChB=0, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Co=H(ro, ChA-ro-ti, ChA -F (ro) +Gy (ro, ui)-ei) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde ChB=l, el algoritmo del verificador V verifica si se mantiene o no la igualdad de ci=H(ri, ChA Ti-ui, ChA · (y-F(ri) ) -Gx (ti, ri)-ei) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
El ejemplo de la estructura del algoritmo extendido relacionado con el esquema 5 ha sido descrito anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También, usar el polinomio cúbico permite la obtención de seguridad superior. 3-3-2: Algoritmo Paralelizado (FIG. 13) Enseguida, se describirá un método para la paralelización de los algoritmos extendidos relacionados con el esquema de 5 pasos, con referencia a la FIG. 13. Sin embargo, se omitirá la descripción adicional de la estructura del algoritmo de generación de la clave Gen.
Operación #1 Como se ilustra en la FIG. 13, el algoritmo del comprobador P ejecuta los siguientes procesos para i=l a N. Primero el algoritmo del comprobador P genera de forma aleatoria los vectores roí, toi, UOÍ que son elementos del conjunto Kn, y el vector eoi que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula rii<- s-roi- Este cálculo es equivalente a ocultar la clave secreta s con el vector r0i . Posteriormente, el algoritmo del comprobador P calcula c0i<- H(r0i, toi, e0i, -Gy(r0i, u0i) ) . Posteriormente, el algoritmo del comprobador P calcula cu <-H(r , UQÍ - Gx(toi, Operación #1 (continuación) Después de calcular (coi, cu, .. . , CON, CIN) el algoritmo del comprobador P calcula Cmt <-H(c0i, cllf C0N, Cm) . El valor de hasta Cmt generado en la operación #1 se envía al algoritmo del verificador V.
Operación #2 : Tras la recepción del valor de Hash Cmt, el algoritmo del verificador V selecciona de forma aleatoria los números ChA1, ... , ChAN. Los números ChAi, ... , ChAN se envían al algoritmo del comprobador P.
Operación #3 : Tras la recepción de los números ChAi, ChAN, el algoritmo del comprobador P ejecuta los siguientes procesos para i=l a N. Primero, el algoritmo del comprobador P calcula tu <-ChAi · roi-toi · Posteriormente, el algoritmo del comprobador P calcula Un<-ChAi · rn-uoi . Posteriormente, el algoritmo del comprobador P calcula ei1<-Chfti · F ( r0l ) +ChAl -Gy ( r0i, rli)-eüi.
Entonces, (tu, un, en, tu, uiN eiN) generados en la operación #3 se envían al algoritmo del verificador V.
Operación #4 : Tras la recepción de (tu, Un, en, ... , tiN, uiN, em) el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación para i=l a N. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {O, 1} que representa patrones de verificación para i-1 a N, y establece el valor numérico seleccionado en una interrogación ChBi . Esta interrogación ChBi se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de las interrogaciones ChBi a Chm, el algoritmo del comprobador P genera una respuesta Rspi para enviarla al algoritmo del verificador V en respuesta a la interrogación ChBl recibida, para i=l a N. En el caso donde ChBi=0, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, Cu) . En el caso donde ChBi=l, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, c0i) . La respuesta Rspi generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6 Tras la recepción de la respuesta Rsp± (i=l a N) , el algoritmo del verificador V ejecuta los siguientes procesos de usando la respuesta recibida Rspi para i=l a N.
En el caso donde ChBi=0, el algoritmo del verificador V calcula c0i=H(r0i-ChAi -roi-tu, h^ -F ( (roi) +Gy (r0i, uu)-eu). El algoritmo del verificador V almacena entonces (c0i, ¾) .
En el caso donde ChBi=l, el algoritmo del verificador V calcula cii=H (rii-Ch -rii-uii¦ (y-F (¾) ) -Gx (tu, rü) -en) . El algoritmo del verificador V almacena entonces (<¾., c±) .
Después de ejecutar los procesos (1) y (2) para i=l a N, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Cmt=H (coi, Cu, C0N, ¾?) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
La paralelización de la estructura del algoritmo extendido relacionado con el esquema de 5 pasos ha sido descrita anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También, usar el polinomio cúbico, permite la obtención de mayor seguridad. 3-4: Algoritmo Eficiente Basado en un Polinomio de Múltiples Variables de Orden Alto (Esquema #2) Hasta ahora, se ha descrito el método para construir el algoritmo eficiente usando el polinomio cúbico fi del anillo R. Aquí, se considerará un método para construir un algoritmo extendido usando un polinomio de orden alto flr definido en un anillo R de una característica q, y un orden qk. El polinomio de orden alto fi, se expresa como en, por ejemplo la siguiente fórmula (38) . Cuando se usa el polinomio de orden alto fi, un componente gi del polinomio G definido como G(x, y)=F(x+y)-F(x) -F (y) = (gi, gm) se expresa como en la siguiente fórmula (39).
Matemática 19 - (38) ?· (39) La relación mostrada en la siguiente fórmula (4) se establece para ChA que es un elemento del conjunto R. Adicionalmente , también se establece la relación mostrada en la siguiente fórmula (41) . Por lo tanto, usando esta propiedad (conocida de aquí en adelante como cuasi-linealidad) , la clave pública F(s) se divide en un término, el cual es Ch¾ veces, al introducir las nuevas variables ro, i, toz? y &?· Ya que G tiene la cuasi-linealidad, la relación entre las siguientes fórmulas (42) a la fórmula (44) se establece usando las variables r0, ri, t0z, y e0. Las siguientes fórmulas (42) a la fórmula (44) pueden ser divididas en una primera porción dependiente de ChA y una segunda porción no dependiente de ChA. Aquí, la primera porción puede ser reproducida con (ri, ti7, ei) . La segunda porción puede ser reproducida con (r0, tiz, ei) .
Por ejemplo, "e0f ?Gz(t0z, ri" incluidas en la siguiente fórmula (42), "toz" incluida en la siguiente fórmula (44) son las primeras porciones. Por otro lado, "Cha -F (r0+ri) , eif ChA-F(ri), ?GZ (tiz, ri)" incluidas en la siguiente fórmula (42), "ChAq(~z) -r0, tiz" y "ChA-F(r0), ei" incluidas en la siguiente fórmula (44) son las segundas porciones.
De la definición de la clave secreta s y al relación entre las siguientes fórmulas (42) a la fórmula (44) el hecho de que la clave secreta s no pueda ser obtenida se garantiza aun cuando se use cualquiera de (ri, tiz ex) y (r0, tl2l ex) . Usar esta propiedad permite por ejemplo, la construcción de un algoritmo eficiente (de aquí en adelante, un algoritmo extendido de orden alto) relacionado con el esquema de 5 pasos, usando el polinomio de orden alto fi del anillo R.
Matemática 20 - (40) G(xl +x2,y) = G(x,y)+ G(x29y) - (4 l) ChA>F(r0 +r}) ··· (42) (ChAy".r0=tQz+tiz ··· (43) A partir de aquí, se describirá la estructura especifica del algoritmo extendido de orden alto. Dos puntos básicos con relación al diseño del algoritmo extendido de orden alto son que un mensaje expresado en las siguientes fórmulas (45) y la fórmula (46) se envían al verificador y que la porción (primera porción) dependiente de ChA se verifica para el ChA seleccionado por el verificador. Aquí, ya que "r0 y i se usan en el momento de la generación del mensaje se evita que sean sustituidas con otras r0 y rx en el momento de la verificación", un ejemplo de la estructura a la cual se agregan r0 y ri se introducirá a continuación.
Matemática 21 co = (*? 0?1>'·· *>ß?) ( 4 5 ) 6 ) 3-4-1: Estructura Básica (FIG. 14) Primero, se describirá la estructura básica de un algoritmo extendido de orden alto, relacionado con el esquema de 5 pasos, con referencia a la FIG. 14. Sin embargo, se omitirá la descripción detallada de la estructura del algoritmo de generación de la clave Gen.
Operación #1 : Como se ilustra en la FIG. 14, el algoritmo del comprobador P genera de forma aleatoria los vectores ro, toi, tok que son elementos del conjunto Kn, y el vector eo que es un elemento del conjunto Km. Posteriormente, el algoritmo del comprobador P calcula ri<- s-ro- Este cálculo es equivalente a ocultar la clave secreta s con el vector r0- Posteriormente, el algoritmo del comprobador P calcula c0<- H(r0, t0i, t0k, e0) . Posteriormente, el algoritmo del comprobador P calcula Ci <- H(ri, ?zGz(toz ri)+eo) (donde ?z representa la sumatoria para z=l a k. Los mensajes (co, Ci) generados en la operación #1 se envían al algoritmo del verificador V.
Operación #2 Tras la recepción de los mensajes (co, c el algoritmo del verificador V selecciona de forma aleatoria un número Ch¾. El número ChA se envía al algoritmo del comprobador P.
Operación #3 : Tras la recepción del número ChA, el algoritmo del comprobador P calcula ti? <- (ChA)q<z_1> -r0-toz para 2=1 a k. Posteriormente, el algoritmo del comprobador P calcula ei <-ChA -F (ro) -e0. Entonces (tu, tik, ex) generadas en la operación #3 se envían al algoritmo del verificador V.
Operación #4 : Tras la recepción de (tu, tik, ??), el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} que representan patrones de verificación, y establece el valor numérico seleccionado en una interrogación ChB. Esta interrogación ChB se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción . de la interrogación ChB, el algoritmo del comprobador P genera una respuesta Rsp para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChB. En el caso donde ChB=0, el algoritmo del comprobador P genera una respuesta Rsp=r0. En el caso donde ChB=l, el algoritmo del comprobador P genera una respuesta Rsp=ri. La respuesta Rsp generada en la operación #5 se envía al algoritmo del verificador V.
Operación #6: Tras la recepción de la respuesta Rsp, el algoritmo del verificador V ejecuta el siguiente proceso de verificación usando la respuesta recibida Rsp.
En el caso donde ChB=0, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c0=H(rO, (ChA)q(0) -ro-tn, (Chft)^^1' -r0-tlk, ChA · F ( r0) -e1 ) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
En el caso donde ChB=l, el algoritmo del verificador V verifica si se mantiene o no la igualdad de Ci=H(rlf ChA-(y-F ( ri) ) -?ZGZ (tlz, ri) ) . El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
El ejemplo de la estructura del algoritmo extendido de alto orden, relacionado con el esquema de 5 pasos ha sido descrito anteriormente. Al usar los algoritmos el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También, al usar el polinomio de orden alto, se obtiene seguridad superior. 3-4-2 : Algoritmo Faralelizado (Ejemplo Estructural 1) (FI6. 15) Enseguida, se describirá un método para la paralización de los algoritmos extendidos de alto orden relacionados con el esquema de 5 pasos, con referencia a la FIG. 15. Sin embargo, se omitirá la descripción adicional de la estructura del algoritmo de generación de la clave Gen.
Operación #1: Como se ilustra en la FIG. 15, el algoritmo del comprobador P ejecuta los siguientes procesos para i=l a N. primero, el algoritmo del comprobador P genera de forma aleatoria los vectores roi, ton, ... , toki que son elementos del conjunto Kn, y el vector e0 que es un elemento del conjunto m. Posteriormente, el algoritmo del comprobador P calcula ru<- s-r0i. Este cálculo es equivalente a ocultar la clave secreta s con el vector roí- Posteriormente, el algoritmo del comprobador P calcula c0i<- H(r0i, ton, ·· ·, toki^ eoi) . Posteriormente, el algoritmo del comprobador P calcula cu <- H(ri, ?(r , ?zGz(t0zi, rn)+eoi) (donde ?z representa la sumatoria para z=l a k. Los mensajes (coi, cu) generados en la operación #1 se envían al algoritmo del verificador V.
Operación #2 Tras la recepción de los mensajes (coi, Cu) (donde i=l a N) el algoritmo del verificador V selecciona de forma aleatoria los números ChAi, ChAN. Los números ChAi, Ch¾N se envían al algoritmo del comprobador P.
Operación #3: Tras la recepción de los números ChAi, ... , ChAN, el algoritmo del comprobador P calcula tnz <- (Ch¾i)q(z_1) Toi-tozi para i=l a N y z=l a k. Posteriormente, el algoritmo del comprobador P calcula en <-ChAi · F ( r0i) -eoi . Entonces (tm, tiki, (donde i=l a N) generadas en la operación #3 se envían al algoritmo del verificador V.
Operación #4 : Tras la recepción de (tm, ... , tiki, eu) (donde i=l a N) , el algoritmo del verificador V selecciona cuál patrón de verificación usar entre dos patrones de verificación para i=l a N. Por ejemplo, el algoritmo del verificador V puede seleccionar un valor numérico de entre dos valores numéricos {0, 1} que representan patrones de verificación para i=l a N, y establece el valor numérico seleccionado en una interrogación ChBi. Esta interrogación ChBi se envía al algoritmo del comprobador P.
Operación #5 : Tras la recepción de la interrogación ChBi (donde i=l a N) , el algoritmo del comprobador P genera una respuesta Rspi para enviarla al algoritmo del verificador V en respuesta a la interrogación recibida ChBi para i=l a N. En el caso donde ChBi=0, el algoritmo del comprobador P genera una respuesta Rspi=r0i. En el caso donde ChBi=l, el algoritmo del comprobador P genera una respuesta Rsp=rn. La respuesta Rspi (donde i=l a N) generada en la operación #5 se envia al algoritmo del verificador V.
Operación #6: Tras la recepción de la respuesta Rspi (i=l a N) , el algoritmo del verificador V ejecuta los siguientes procesos de verificación usando la respuesta recibida Rspi para i=l a N.
En el caso donde ChBi=0, el algoritmo del verificador V verifica si se mantiene o no la igualdad de c0i=H(r0i, (ChAl) q(0) -roi-tui, (ChAi) ^^11 -roi-tiki, ChAi · F ( roi ) -eu ) . En el caso donde ChBi=l el algoritmo del verificador V verifica si se mantiene o no la igualdad de cn=H(rii, ChAi# (y-F (¾) -?ZGZ (tiZi, rii) ) El algoritmo del verificador V produce el valor 1 para indicar el éxito de la autentificación en el caso donde estas verificaciones sean exitosas, y produce el valor 0 para indicar la falla de la autentificación en el caso donde una verificación falle.
La paralelización del algoritmo de oreen alto relacionado con el esquema de 5 pasos ha sido descrita anteriormente. Al usar los algoritmos, el tamaño de los datos necesarios para la comunicación se reduce considerablemente. También, al usar el polinomio de orden alto, se logra una seguridad superior. 3-4-3: Algoritmo Paralelizado (Ejemplo Estructural 2: Alta Eficiencia) (FIG. 16) Sin embargo, en la estructura paralelizada del algoritmo extendido de orden alto, ilustrado en la FIG. 15, los mensajes (coi, cu) (donde i=l a N) han sido enviados en el primer paso sin cambios. Sin embargo, en consideración de la eficiencia de la comunicación, es preferible que los mensajes (coi, ¾) (donde i=l a N) sean enviados colectivamente con un valor de Hash. Con el fin de enviar colectivamente los mensajes (c0i, cu) (donde i=l a N) con un valor de Hash, en el primero paso, la estructura algorítmica puede ser modificada como se ilustra en la FIG. 16.
En el ejemplo de la estructura de la FIG. 16, el algoritmo del comprobador P calcula el valor de Hash Cmt<-H(coi, Cu, CO Í CIN) en la operación #1. Tras la generación de la respuesta Rspi en la operación #5, el algoritmo del comprobador P genera una respuesta Rspi=(r0i, Cu) en el caso donde ChBi=0 y genera una respuesta Rsp =(ru, coi) en el caso donde ChBi=l . Por otro lado, el algoritmo del verificador V genera (c0i, cn, c0N, ciN) a partir de (ChAi, ChBi, Rspi) (donde i=l a N) en la operación -6 y verifica si se mantiene o no la igualdad de Cmt=H(coi, Cu, CQ^, CIn) . Llevar a cabo tal modificación permite una mejoría adicional en la eficiencia de la comunicación.
El algoritmo paralelizado eficiente basado en los algoritmos extendidos de orden alto, ha sido descrito anteriormente. 3-4-4: Algoritmo Paralelizado (Ejemplo Estructural 2: Eficiencia Superior) (FIG . 17) Sin embargo, en la estructura paralelizada del algoritmo extendido de orden alto, ilustrado en la FIG. 15, los mensajes (coi, cu) (donde i=l a N) han sido enviados en el primer paso sin cambio. Adicionalmente, (tm, ·.., tiki, en) (donde i=l a N) han sido enviadas en el tercer paso, sin cambio. Sin embargo, en consideración de la eficiencia de la comunicación, es preferible que los mensajes (coi, ¾) (donde i=l a N) sean enviados colectivamente con un valor de Hash. Adicionalmente, es preferible que (tm, tiki, en) (donde i=l a N) sean enviadas colectivamente con un valor de Hash. Para enviar colectivamente los mensajes (c0i, ¾) (donde i=l a N) con un valor de Hash, en el primer paso, y enviar colectivamente (tm, .. . , tikif en) (donde i=l a N) con un valor de Hash en el tercer paso, la estructura algorítmica puede ser modificada como se ilustra en la FIG. 17.
En el ejemplo de la estructura de la FIG. 17, el algoritmo del comprobador P calcula el valor de Hash Cmt<-H(coi, Cu, CO ? CIN) en la operación #1. El algoritmo del comprobador P calcula el valor de Hash CmtB<-H (tm, tikN, en, eiN) en la operación #3. Tras la generación de la respuesta Rspi en la operación #5, el algoritmo del comprobador P genera una respuesta Rspi=(roi, ton, .·-, toik, e0i, cu) en el caso donde ChBi=0 y genera una repuesta Rspi=(rn, tm, tiki, en, c0i) en el caso donde ChBi=l.
Por otro lado, el algoritmo del verificador V genera (c0i, Cu, . . . , CON, IN) a partir de (ChAi, ChB±, Rsp±) (donde i=l a N) y (tm, tlkN, en, eiN) en la operación #6 y verifica si se mantiene o no la igualdad de CmtA=(coi, Cu, ···, CON, CIK) y CmtB =(tm, tikN, en, eiN) . Llevar a cabo tal modificación permite una mejoría adicional en la eficiencia de la comunicación .
El algoritmo paralelizado, eficiente, adicional, basado en los algoritmos extendidos de orden alto, ha sido descrito anteriormente .
Al aplicar el algoritmo extendido de orden alto, descrito anteriormente, se puede obtener un esquema de autentificación de clave pública eficiente, que tienen seguridad superior. Por ejemplo, cuando (q, n, m, N)=(24, 45, 30, 88) en un algoritmo extendido relacionado con el esquema de 5 pasos, el tamaño de la clave pública es de 120 bitios, el tamaño de la clave secreta es de 180 bitios y el tamaño de los datos de comunicación es de 27512 bitios.
Por ejemplo, cuando se cumple la condición de que (q, n, m, N) = (22, 42, 40, 118), en el caso de un algoritmo extendido de orden alto, relacionado con el esquema de 5 pasos, la seguridad se garantiza al mismo grado. Bajo esta condición, el tamaño de la clave pública es de 80 bitios, el tamaño de una clave secreta es de 84 bitios, y el tamaño de los datos de comunicación es de 27814 bitios. Es decir, al aplicar el algoritmo extendido de orden alto, el tamaño de los datos de comunicación puede ser mantenido al mismo grado, y el tamaño de una clave pública y el tamaño de una clave secreta pueden ser reducidos considerablemente.
La condición puede ser modificada a (q, n, m, N)=(23, 28, 27, 97) . En este caso, el tamaño de una clave pública es de 81 bitios, el tamaño de una clave secreta es de 84 bitios, y el tamaño de los datos de comunicación es de 27145 bitios. Además, la condición puede ser modificada a (q, n, m, N)=(24, 21, 20, 88). En este caso, el tamaño de una clave pública es de 80 bitios, el tamaño de una clave secreta es de 84 bitios, y el tamaño de los datos de comunicación es de 28392 bitios. Bajo cualquier condición, se logra una eficiencia considerable . 4 : Modificación del Esquema de Firma Digital Aquí, se introducirá un método para la modificación del esquema de autentificación de clave pública anterior a un esquema de firma digital.
Cuando el comprobador, en el modelo del esquema de autentificación de clave pública, corresponde a un firmante en un esquema de firma digital, se puede entender fácilmente una aproximación al modelo del esquema de firma digital, en que solamente el comprobador puede convencer al verificador. Con base en esta idea, se describirá un método para modificar el esquema de autentificación de clave pública, descrito anteriormente, a un esquema de firma digital. 4-1: Modificación del Esquema de Autentificación de Clave Pública de 3 Pasos al Esquema de Firma Digital Primero, se describirá la modificación de un esquema de autentificación de clave pública de 3 pasos a un esquema de firma digital. 4-1-1 : Algoritmo de Firma Digital (Ejemplo Estructural 1) (FIG. 18) Como se ilustra en la FIG. 18, un algoritmo eficiente (por ejemplo, véanse las FIGS. 6 y 8) relacionado con el esquema de 3 pasos, se expresa con interactividad de tres veces y cuatro operaciones, es decir, la operación #1 a la operación #4.
La operación #1 incluye un proceso (1) para generar ai=(roi, t0i, e0i, rli( tu, en, c0i, Cu, c2i) y un proceso (2) para calcula Cmt <- H(c0i, Cu, c2i, c0N, ciN, c2N) . El Cmt generado en la operación #1 por el algoritmo del comprobador P, se envia al algoritmo del verificador V.
La operación #2 incluye un proceso para seleccionar Chx, ChN. Chi, ChN seleccionadas en la operación #2 por el algoritmo del verificador V se envían al algoritmo del comprobador P.
La operación #3 incluye un proceso para generar Rspi, ... , RspN usando Chi, ... , ChN y ai, ... , aN. Este proceso se expresa como Rspi <- Seleccionar (Chi, ai). Rspi, RspN generadas en la operación #3 por el algoritmo del comprobador P se envían al algoritmo del verificador V.
La operación #4 incluye un proceso (1) para reproducir coi, cu, C21, CON, ciN, c2N usando Chi, ChN y Rspi, RspN y un proceso (2) para verificar Cmt=H(c0i, Cu, c2i, C0N, CIN c2N) usando c0i, ¾, c21, c0t ciN, c2N reproducidas.
El algoritmo del esquema de autentificación de clave pública expresado con las operaciones #1 a la operación #4 anteriores, se modifica al algoritmo de generación de la firma Sig y al algoritmo de verificación de la firma Ver ilustrados en la FIG. 18.
Algoritmo de Generación de la Firma Sig Primero, se describirá la estructura del algoritmo de generación de la firma Sig. El algoritmo de generación de la firma Sig incluye los siguientes procesos (1) a (5).
Proceso (1): El algoritmo de generación de la firma Sig genera ai=(r0i, t0i, e0i, r tu, eu, c0i, c2i) .
Proceso (2) : El algoritmo de generación de la firma Sig calcula Cmt <- H(c0i, Cu, c2i, C0N, CW, C2N) .
Proceso (3) : El algoritmo de generación de la firma Sig calcula (Chi, ChN) <-H(M, Cmt). Aquí, M es un documento al cual se anexa la firma.
Proceso (4) : El algoritmo de generación de la firma calcula Rspi <- Selección (Chi, a±) .
Proceso (5) : El algoritmo de generación de la firma Sig establece (Cmt, Rspi, RspN) como la firma.
Algoritmo de Verificación de la Firma Ver Enseguida, se describirá la estructura del algoritmo de verificación de la firma Ver. El algoritmo de verificación de la firma Ver incluye los siguientes procesos (1) a (3) .
Proceso (1) : El algoritmo de verificación de la firma Ver calcula (Chi, ChN) <- H(M, Cmt).
Proceso (2): El algoritmo de verificación de la firma Ver genera Coi, Cu, c2i, .. . , C0N, CIN, C2N usando Chi, · · · , ChN y Rspi, ... , RspN.
Proceso (3) : El algoritmo de verificación de la firma Ver verifica Cmt = H(coi, Cu, C21, ···, c0N, CiN, C2N) usando los mensajes c0i, ¾, C21, · · ·, con, CiN, C2N reproducidos.
Como se describe anteriormente, al igualar el comprobador en el modelo del esquema de autentificación de la clave pública con el firmante en el esquema de firma digital, el algoritmo del esquema de autentificación de la clave pública puede ser modificado al algoritmo del esquema de firma digital. 4-1-2 Algoritmo de Firma Digital (Ejemplo Estructural 2 : Alta Eficiencia) (FI6. 19) Aquí, cuando nos concentramos en la estructura del algoritmo de generación de la firma Sig ilustrada en la FIG. 18, se puede comprender que el cálculo de un valor de Hash ha sido llevado a cabo en los procesos (2) y (3) . Además, cuando nos concentramos en la estructura del algoritmo de verificación de la firma Ver, se puede comprender que el mismo cálculo del valor de Hash como el proceso (3) del algoritmo de generación de la firma Sig ha sido llevado a cabo en el proceso (1) . Cuando las configuraciones del algoritmo de generación de la firma Sig y el algoritmo de verificación de la firma Ver se mejoran enfocándose en estos procesos, como se ilustra en la FIG. 13, la eficiencia del cálculo puede ser mejorada adicionalmente .
Algoritmo de Generación de la Firma Sig Primero, se describirá la estructura mejorada del algoritmo de generación de la firma Sig, con referencia a la FIG. 19. El algoritmo de generación de la firma Sig incluye los siguientes procesos (1) a (4) .
Proceso (1): El algoritmo de generación de la firma Sig genera ai=(r0i, t0i, e0l, rli( tu, eli( c0i, cu, c2i) .
Proceso (2): El algoritmo de generación de la firma Sig calcula (Chi, ChN) <- H (M, c0i, cü, c2i, c0N, c , c2N) . Aquí, M es un documento al cual se anexa la firma.
Proceso (3): El algoritmo de generación de la firma Sig calcula Rspi <- Selección (Chi, ai) .
Proceso (4): El algoritmo de generación de la firma Sig establece (Chi, ChN, Rspi, RspN) como la firma.
Algoritmo de Verificación de la Firma Ver Enseguida se describirá la estructura del algoritmo de verificación de la firma, mejorado. El algoritmo de verificación de la firma Ver incluye los siguientes procesos (1) y (2) .
Proceso (1): El algoritmo de verificación de la firma Ver genera c0i, Cu, c2i, c0N, Wr c2N usando Chi, ... , ChN y Rspi, ... , RspN.
Proceso (2) : El algoritmo de verificación de la firma Ver verifica (Chi,..., ChN)=H(c0i, cllr c2i, C0 , ciN, C2N) usando los mensajes Coi, ¾, c2i, .. . , C0N, ciN, c2N reproducidos.
Al mejorarse las estructuras del algoritmo de generación de la firma Sig y del algoritmo de verificación de la firma Ver, como se describen anteriormente, el cálculo de los valores de Hash en cada algoritmo se reduce una vez y por lo tanto se mejora la eficiencia del cálculo. 4-2 : Modificación del Esquema de Autentificación de Clave Pública de 5 Pasos al Esquema de Firma Digital Enseguida, se describirá la modificación del esquema de autentificación de clave pública relacionado con el esquema de 5 pasos a un esquema de firma digital. 4-2-1: Algoritmo de Firma Digital (Ejemplo Estructural 1) (FIG. 20) Como se ilustra en la FIG. 20, un algoritmo eficiente (por ejemplo, véanse las FIGS. 11, 13, y 16) relacionado con el esquema de 5 pasos, se expresa con interactividad de cinco veces y seis operaciones, es decir, las operaciones #1 a la operación #6.
La operación #1 incluye un proceso (1) para generar a? = (r0i, toi, e0i, rii, t , en, c0i, cu) para i=l a N y el proceso (2) para calcular Cmt <- H(c0i, Cu, ··., CON, CIN) . El Cmt generado en la operación #1 por el algoritmo del comprobador P se envía al algoritmo del verificador V.
La operación #2 incluye el proceso de seleccionar Ch¾i, ChAN. Ch¾i, ChAN seleccionadas en la operación #2 por el algoritmo del verificador V se envían al algoritmo del comprobador P.
La operación #3 incluye un proceso para generar bi=(tü, en) para i=l a N. Aquí, bi, bn, generadas en la operación #3 por el algoritmo del comprobador P se envían al algoritmo del verificador V.
La operación #4 incluye un proceso para seleccionar ChBi, ... , ChBN. ChBi, ... , ChBN seleccionadas en la operación #4 por el algoritmo del verificador V se envían al algoritmo del comprobador P.
La operación #5 incluye un proceso para generar Rspi, RspN usando ChBi, ChBN, al, aN, bi, ..., bN. Este proceso se expresa como Rspi <- Selección (ChBi, ai, b ) . Rspi, ... , RspN generadas en la operación #5 por el algoritmo del comprobador P se envían al algoritmo del verificador V.
La operación #6 incluye un proceso (1) para reproducir Coi, C , .. . , COH, CIN usando ChAi, ... , ChAN, ChBi, ChBN, Rspi, RspN y un proceso (2) para verificar Cmt=H(c0i, Cu, .··, c0N, CiN) usando los mensajes c0i, Cu, c0íil ciN reproducidos.
El algoritmo del esquema de autentificación de clave pública expresado con las operaciones #1 a la operación #4 anteriores se modifica a un algoritmo de generación de la firma Sig y un algoritmo de verificación de la firma Ver ilustrados en la FIG. 20.
Algoritmo de Generación de la Firma Sig Primero, se describirá la estructura del algoritmo de generación de la firma Sig. El algoritmo de generación de la firma Sig incluye los siguientes procesos (1) a (7).
Proceso (1) : El algoritmo de generación de la firma Sig genera ai=(r0i, t0i, e0i, ru, tu, eu, c0i, cü) .
Proceso (2) : El algoritmo de generación de la firma Sig calcula Cmt<-H(c0i, Cu, c0N CiN) .
Proceso (3): El algoritmo de generación de la firma Sig calcula (ChAi, ChAN) <-H (M, Cmt) . Aquí, M es un documento al cual se anexa la firma.
Proceso (4) . El algoritmo de generación de la firma Sig genera bi=(tu, en) para i=l a N.
Proceso (5) : El algoritmo de generación de la firma Sig calcula (ChBi, ChBN) <- H(M, Cmt, ChAi, ChAN, bi, bN) . Adicionalmente, se puede llevar a cabo la modificación a (ChB1, ChBN) <-H (ChA1, ChAN, bx, bN) .
Proceso (6). El algoritmo de generación de la firma Sig calcula Rspi<-Selección (ChBi, aif bj.) .
Proceso (7) : El algoritmo de generación de la firma Sig establece (Cmt, bi, bN, Rspi, RspN) como la firma digital.
Algoritmo de Verificación de la Firma Ver Enseguida, se describirá la estructura del algoritmo de verificación de la firma Ver. El algoritmo de verificación de la firma Ver incluye los siguientes procesos (1) a (4).
Proceso (1):; El algoritmo de verificación de la firma Ver calcula (ChA1, ChAN)=H(M, Cmt).
Proceso (2): El algoritmo de verificación de la firma Ver calcula (ChBi, ChBN) =H (M, Cmt, ChAi, ChAN, bi, bN) . Cuando se lleva a cabo la modificación a (ChBi, ···, ChBN) =H (Chai, ChAN, bi, bN) en el proceso (5), por el algoritmo de verificación de la firma Algoritmo de verificación de la firma Ver, el algoritmo de verificación de la firma Ver calcula (ChBi, - .·, ChBN) =H (ChA1, bi, bN) .
Proceso (3) : El algoritmo de verificación de la firma Ver genera c0i, Cu, c0N, CiN usando Ch¾i, ..., ChAN, ChBi, ChBN, Rspi, RspN.
Proceso (4): El algoritmo de verificación de la firma Ver verifica Cmt =H(coi, Cu, . · · , CO , CIn) usando los mensajes coi, Cu, CO , CIN reproducidos.
Como se describe anteriormente, al igualar el comprobador en el modelo del esquema de autent ificación de clave pública con el firmante en el esquema de firma digital, el algoritmo del esquema de autentificación de clave pública puede ser modificado al algoritmo del esquema de firma digital. 4-2-2: Algoritmo de Firma Digital (Ejemplo Estructural 2: Alta Eficiencia) (FIG. 21) Como se ilustra en la FIG. 21, un algoritmo eficiente adicional (por ejemplo, véase la FIG. 17) relacionado con el esquema de 5 pasos, se expresa con interactividad de cinco veces y las seis operaciones #1 a la operación #6.
La operación #1 incluye un proceso (1) para generar ai = (r0i, toi, e0i, rii, tu, en, c0i, ¾) para i=l a N y el proceso (2) para calcular CmtA <- H(c0i, ¾, c0N, cw) . El CmtA generado en la operación #1 por el algoritmo del comprobador P se envía al algoritmo del verificador V.
La operación #2 incluye el proceso de seleccionar ChA1, ... ChAN. ChA1, ... , ChAN seleccionadas en la operación #2 por el algoritmo del verificador V se envían al algoritmo del comprobador P.
La operación #3 incluye un proceso para generar i=(tn, en) y un proceso (2) para calcula CmtB <-H(bx, bN) para i=l a N. El CmtB generado en la operación #3 por el algoritmo del comprobador P, se envía al algoritmo del verificador V.
La operación #4 incluye un proceso para seleccionar ChBi, ... , ChBN. ChB1, ... , ChBN seleccionadas en la operación #4 por el algoritmo del verificador V se envían al algoritmo del comprobador P.
La operación #5 incluye un proceso para generar Rspi, ... , RspN usando ChBi, ... , ChBN, ai, ... , aN, bi, ... , bN. Este proceso se expresa como Rspi <- Selección (ChBi, ai, bj.) . Rspi, ... , RspN generadas en la operación #5 por el algoritmo del comprobador P se envían al algoritmo del verificador V.
La operación #6 incluye un proceso (1) para reproducir Coi Cu, .. . , CON, cWr i ... , bN usando Ch¾i, .. - , ChAN, ChBi, ChBN, Rspi, RspN y un proceso (2) para verificar Cmt=H(c0i, Cu, ·.., CON? CIn) usando los mensajes CQI, Cu, · · ·, CQJ¡, CIN, y un proceso (3) para verificar CmtB=H(bi, bN) usando bi, bN reproducidos .
El algoritmo del esquema de autentificación de clave pública expresado con las operaciones #1 a la operación #6 anteriores se modifica a un algoritmo de generación de la firma Sig y un algoritmo de verificación de la firma Ver ilustrados en la FIG. 21.
Algoritmo de Generación de la Firma Sig Primero, se describirá la estructura del algoritmo de generación de la firma Sig. El algoritmo de generación de la firma Sig incluye los siguientes procesos (1) a (8) .
Proceso (1): El algoritmo de generación de la firma Sig genera ai=(roi, t0i, e0l, rlir tlír elíf c0i, cu).
Proceso (2) : El algoritmo de generación de la firma Sig calcula CmtA<-H(c0i, Cu, c0N, CiN) .
Proceso (3): El algoritmo de generación de la firma Sig calcula (Ch¾i, ChAN)<-H(M, CmtA) . Aqui, M es un documento al cual se anexa la firma.
Proceso (4) . El algoritmo de generación de la firma Sig genera bi=(tn, &_-_±) para i=l a N.
Proceso (5) : El algoritmo de generación de la firma Sig calcula CmtB <-H(bi, bN) .
Proceso (6). El algoritmo de generación de la firma Sig calcula ChBi, ChBN) <-H (M, Cmt , ChA1, ChAN, CmtB) . Adicionalmente, se puede llevar a cabo la modificación a (ChBi, ChBN) <-? (ChAi, ..., Ch¾N, CmtB) .
Proceso (7) : El algoritmo de generación de la firma Sig calcula Rspi<-Selección (ChBi, ai, bi) .
Proceso (8) : El algoritmo de generación de la firma Sig establece (CmtA, CmtB, Rspi, ..., RspN) como la firma digital.
Algoritmo de Verificación de la Firma Ver Enseguida, se describirá la estructura del algoritmo de verificación de la firma Ver. El algoritmo de verificación de la firma Ver incluye los siguientes procesos (1) a (5) .
Proceso (1) : el algoritmo de verificación de la firma Ver calcula (ChAi, ChAN)=H( , CmtA) .
Proceso (2) : El algoritmo de verificación de la firma Ver calcula (ChBi, ..·, ChBN)=H( , CmtA, ChAi, ChAN, blf bN, CmtB) . Cuando se lleva a cabo la modificación a (ChBi, ·¦·, CÍIB ) =H (ChAi, ·· ., ChAN, CmtB) en el proceso (6) llevado a cabo por el algoritmo de verificación de la firma Ver, el algoritmo de verificación de la firma Ver calcula (ChBi, · · ·, ChBN)=H(ChA1, Ch¾N, CmtB) .
Proceso (3) : El algoritmo de verificación de la firma Ver genera c0i, cn, c0N, cw, bi, bN, usando ChAi, ChAN, ChBi, ChBN, Rspi, RspN.
Proceso (4) : El algoritmo de verificación de la firma Ver verifica CmtA=H(coi, Cu, CQ , ciN) usando los mensajes c0i, Cu, CON, CIN reproducidos.
Proceso (5) . El algoritmo de verificación de la firma Ver verifica CmtB=H(bi, bN) usando bi, bN reproducidos.
Como se describe anteriormente, al igualar el comprobador en el modelo del esquema de autentificación de clave pública con el firmante en el esquema de firma digital, el algoritmo del esquema de autentificación de clave pública puede ser modificado al algoritmo del esquema de firma digital. 5 : Algoritmo de Tipo Híbrido La necesidad de llevar a cabo el protocolo interactivo una pluralidad de veces de modo tal que la probabilidad de una falsificación exitosa resulte insignificante, ya se ha descrito. Además, el método en serie y el método en paralelo han sido introducidos como los métodos para llevar a cabo el protocolo interactivo una pluralidad de veces. En particular, el método en paralelo ha sido descrito dando un ejemplo del algoritmo paralelizado especifico. Aqui, se introducida un algoritmo de tipo híbrido en el cual, se combina un método en serie y un método en paralelo. 5-1: Algoritmo de Tipo Híbrido Relacionado con el Esquema de Autentificación de Clave Pública de 3 Pasos Primero, se describirá un algoritmo de tipo híbrido relacionado con el esquema de autentificación de clave pública de 3 pasos. 5-1-1: Algoritmo en Paralelo-en Serie (FIG. 22) Un ejemplo de una estructura de tipo híbrido (conocida de aquí en adelante como estructura en paralelo-en serie) se describirá con referencia a la FIG. 22. La FIG. 22 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene una estructura en paralelo-en serie .
En el caso de la estructura básica, un mensaje Cmt se envía desde el comprobador al verificador en el primer paso. En el segundo paso, una interrogación Ch se envía desde el verificador al comprobador. En el tercer paso, una respuesta Rsp se envía desde el comprobador al verificador.
Por otro lado, en el caso de la estructura en paralelo-en serie, los mensajes (Cmti, CmtN) de N veces se envían desde el comprobador al verificador en el primer paso. En el segundo paso, una interrogación Chi de una vez, se envía desde el verificador al comprobador. En el tercer paso, una respuesta Rs i de una vez, se envía desde el comprobador al verificador. Después, las interrogaciones Ch2, .··/ ChN y las respuestas Rsp2, ... , RspN se intercambian secuencialmente entre el comprobador y el verificador.
En el caso de la estructura en paralelo-en serie basada en el algoritmo del esquema de autentificación de clave pública descrito anteriormente, se garantiza la seguridad contra los ataques pasivos. Además, el número de interactividades es únicamente de 2N+1 veces. Además, cuando los mensaje de N veces, enviados en el primer paso, se recolectan con un valor de Hash, la eficiencia de la comunicación puede ser mejorada. 5-1-2: Algoritmo En Serie-En Paralelo (FIG. 23) Otro ejemplo de la estructura híbrida (conocida de aquí en adelante como estructura en serie-en paralelo) se escribirá con referencia a la FIG. 23. La FIG. 23 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene una estructura en serie-en paralelo.
En el caso de la estructura básica, un mensaje Cmt, es enviado desde el comprobador al verificador en el primer paso. En el segundo paso, una interrogación Ch es enviada desde el verificador al comprobador. En el tercer paso, una respuesta Rsp es enviada desde el comprobador al verificador.
En el caso de la estructura en serie-en paralelo, un mensaje Cmt] de una vez, se envía desde el comprobador al verificador en el primer paso. En el segundo paso, una interrogación Chi de una vez, se envía desde el verificador al comprobador. Después, los mensajes Cmt2, ···/ CmtN y las interrogaciones Ch2, ... , ChN se intercambian secuencialmente entre el comprobador y el verificador. Después que la interrogación ChN se envía desde el verificador al comprobador, las respuestas Rsp?, ... , RspN se envían desde el comprobador al verificador.
En el caso de la estructura en serie-en paralelo basada en el algoritmo del esquema de autentificación de clave pública descrito anteriormente, se garantiza la seguridad contra los ataques activos. Además, el número de interactividades es únicamente de 2N+1 veces. 5-2 : Algoritmo de Tipo Híbrido Relacionado con el Esquema de Autentificación de Clave Pública de 5 Pasos Enseguida, se describirá un algoritmo de tipo híbrido relacionado con el esquema de autentificación de clave pública de 5 pasos. 5-2-1: Algoritmo En Paralelo-En Serie (Ejemplo Estructural #1) (FIG. 24) Primero, se describirá un ejemplo de una estructura de tipo híbrida (llamada de aquí en adelante como estructura en paralelo-en serie #1), con referencia a la FIG. 24. La FIG. 24 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene la estructura en paralelo-en serie #1.
En el caso de la estructura básica, un mensaje Cmt¾ se envía desde el comprobador al verificador, en el primer paso. En el segundo paso, un número Ch¾ se envía desde el verificador al comprobador. En el tercer paso, un vector CmtB se envía desde el comprobador al verificador. En el cuarto paso, una interrogación ChB se envía desde el verificador al comprobador. En el quinto paso, una respuesta Rsp se envía desde el comprobador al verificador.
En el caso de la estructura en paralelo-en serie #1, los mensajes (CmtAi, ···, CmtAN ) de las N veces se envían desde el comprobador al verificador en el primer paso. En el segundo paso, un número ChAi de una vez, se envía desde el verificador al comprobador. En el tercer paso, un vector CmtBi de una vez, se envía desde el comprobador al verificador. En el cuarto paso, una interrogación ChBi de una vez, se envía desde el verificador al comprobador. En el quinto paso, una repuesta Rspi de una vez, se envía desde el comprobador al verificador. Después, ChA2, ... , Ch¾N, CmtB2r · · · CmtBN, y las repuestas Rsp2, ... , RspN se intercambian secuencialmente entre el comprobador y el verificador.
En el caso de la estructura en paralelo-en serie #1, se garantiza la seguridad contra los ataques pasivos. Además, el número de interactividades es únicamente de 4N+1 veces. Además, cuando los mensajes de N veces enviados en el primer paso, se recolectan con un valor de Hash, la eficiencia de la comunicación puede ser mejorada. 5-2-2: Algoritmo En Paralelo-En Serie (Ejemplo Estructural #2) (FIG. 25) Enseguida, se describirá otro ejemplo de la estructura de tipo híbrida (llamada de aquí en adelante como estructura en paralelo-en serie #2), con referencia a la FIG. 25. La FIG. 25 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene una estructura en paralelo-en serie #2.
En el caso de la estructura en paralelo-en serie #2, los mensajes (CmtAi, ..., CmtAN) de N veces, se envían desde el comprobador al verificador en el primer paso. En el segundo paso, los números (ChAi, ... , ChAN) de las N veces, se envían desde el verificador al comprobador. En el tercer paso, los vectores (CmtBi, ..., CmtBN) de las N veces, se envían desde el comprobador al verificador. En el cuarto paso, una interrogación ChBi de una vez, se envía desde el verificador al comprobador. En el quinto paso, una respuesta Rspi, de una vez, se envía desde el comprobador al verificador. Después, de ChB2/ · · · ? ChBN, las respuestas Rsp2, ..., RspN se intercambian secuencialmente entre el comprobador y el verificador.
En el caso de la estructura en paralelo-en serie #2, se garantiza la seguridad contra los ataques pasivos. Además, el número de interactividades es únicamente de 2N+3 veces. Además, cuando los mensajes de N veces enviados en el primer paso, los vectores de N veces enviados en el tercer paso, y los similares, se recolectan con un valor de Hash, la eficiencia de la comunicación puede ser mejorada. 5-2-3: Algoritmo En Serie-En Paralelo (Ejemplo Estructural #1) (FIG. 26) Enseguida, se describirá otro ejemplo de la estructura de tipo híbrida (llamada de aquí en adelante como estructura en serie-en paralelo #1) con referencia a la FIG. 26. La FIG. 26 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene una estructura en serie-en paralelo #1.
En el caso de la estructura en serie-en paralelo #1, un mensaje CmtAi de una vez se envía desde el comprobador al verificador en el primer paso. En el segundo paso, un número ChAi de una vez, se envía desde el verificador al comprobador. En el tercer paso, un vector CmtBi de una vez, se envía desde el comprobador al verificador. En el cuarto paso, una interrogación ChB1 de una vez se envía desde el verificador al comprobador. Después, CmtA2, ···, Cmt¾N, ChA2, ChAN, CmtB2, ... , CmtBN, ChB2, · · · , ChBN se intercambian secuencialmente entre el comprobador uy el verificador. Finalmente, las respuestas (Rspi, ... , RspN) de las N veces se envían desde el comprobador al verificador.
En el caso de la estructura en serie-en paralelo #1, se garantiza la seguridad contra los ataques activos. Además, el número de interact ividades es únicamente de 4N+1 veces. 5-2-4: Algoritmo En Serie-En Paralelo (Ejemplo Estructural #2) (FIG. 27) Enseguida, se describirá otro ejemplo de la estructura de tipo híbrida (llamada de aquí en adelante como estructura en serie-en paralelo #2), con referencia a la FIG. 27. La FIG. 27 es un diagrama que ilustra un algoritmo que tiene una estructura básica y un algoritmo que tiene una estructura en serie-en paralelo #2.
En el caso de la estructura en serie-en paralelo #2, un mensaje CmtAi de una vez, se envía desde el comprobador al verificador en el primer paso. Después, CmtA2, ···, CmtAN, ChA2, ... , ChAN se intercambian secuencialmente entre el comprobador y el verificador. Después que se termina el intercambio de ChAN, los vectores (CmtBi, ···, CmtBN) de las N veces se envían desde el comprobador al verificador. Posteriormente, las interrogaciones (ChBi, ChBN) de las N veces se envían desde el verificador al comprobador. Finalmente, las respuestas (Rspi, RspN) de las N veces se envían desde el comprobador al verificador.
En el caso de la estructura en serie-en paralelo #2, se garantiza la seguridad contra los ataques activos. Además, el número de interactividades es únicamente de 2N+3 veces.
Los algoritmos de tipo híbrido relacionados con el esquema de autent ificación de clave pública de 5 pasos han sido descritos anteriormente. 6 : Apéndice Aquí, se complementará la descripción del esquema de autentificación de clave pública anterior. 6-1: Método para Establecer los Parámetros del Sistema Aquí, se complementará la descripción de un método para establecer los parámetros.
Coeficientes de Polinomios de Múltiples Variables Cómo establecer los coeficientes de los polinomios de múltiples variables y una semilla de número aleatorio (conocidos de aquí en adelante como los coeficientes y los similares de los polinomios de múltiples variables) usados para generar los coeficientes, no se ha descrito anteriormente. Los coeficientes y los similares de los polinomios de múltiples variables pueden ser parámetros comunes a un sistema o pueden ser parámetros diferentes para cada usuario.
Sin embargo, cuando los coeficientes y los similares de los polinomios de múltiples variables se establecen como parámetros comunes a un sistema, puede ser necesario actualizar el establecimiento del sistema completo si se encuentran debilidades de los polinomios de múltiples variables. Adicionalmente , la robustez promedio (dificultad de resolución) se analiza para los polinomios de múltiples variables que tienen los coeficientes seleccionados de forma aleatoria, pero es difícil garantizar la robustez suficiente para los polinomios de múltiples variables que tengan ciertos coeficientes específicos.
Por consiguiente, los inventores de la tecnología actual, han proyectado una estructura en la cual, los coeficientes de los polinomios de múltiples variables se generan usando una cadena de caracteres o las similares, seleccionada por cada usuario en una semilla de un generador de números pseudo aleatorios, y generando los coeficientes de los polinomios de múltiples variables. Por ejemplo, los métodos concebibles incluyen un método para usar una dirección de , correo electrónico de un usuario en una semilla, y un método para usar una cadena de caracteres en la cual, una dirección de correo electrónico, una fecha de actualización, y los similares, se combinan en una semilla. Cuando se usan tales métodos, su influencia se limita solamente al usuario |que usa los polinomios de múltiples variables que tienen los coeficientes aun si se encuentran debilidades én los polinomios de múltiples variables que tienen los coeficientes generados a partir de una cadena de caracteres dada. Adicionalmente, ya que los polinomios de múltiples variables se cambian únicamente al cambiar una cadena de caracteres, las debilidades pueden ser resueltas fácilmente.
El método para establecer los parámetros del sistema ha sido descrito anteriormente. En la cadena de caracteres ha sido dada puede usar una cadena de números diferente para cada usuario.
Número m de Polinomios y Número n de Variables El protocolo interactivo descrito anteriormente garantiza la seguridad contra los ataques pasivos. Sin Embargo, cuando el protocolo interactivo se lleva a cabo repetidamente en paralelo, la condición a ser descrita a continuación es necesaria con el fin de comprobar que la seguridad contra los ataques activos está garantizada de forma confiable.
El protocolo interactivo anterior es un algoritmo para verificar a un verificador que "el comprobador conoce la clave s que satisface la ecuación y=F(s) para y" usando un par de claves (una clave pública y, una clave secreta s) . Por esta razón, cuando se lleva a cabo la interactividad aceptada en la verificación, la probabilidad de que la información, la cual indica que "el comprobador usa s en el momento de la interactividad", conocida por el verificador sea innegable. Adicionalmente, no se garantiza la resistencia al enfrentamiento para los polinomios de múltiples varialbles F. Por esta razón, cuando el protocolo interactivo anterior se lleva a cabo repetidamente en paralelo, es difícil comprobar que la seguridad contra los ataques activos se garantiza de forma confiable sin ninguna condición.
Por consiguiente, los inventores de la presente tecnología han examinado un método para hacer que la información, que indica que "un comprobador usa la clave s en el momento de la interactividad", no sea conocida por el verificador cuando se lleva a cabo la interactividad aceptada en la verificación. Adicionalmente, los inventores de la presente tecnología han proyectado un método para permitir que la seguridad contra ataques activos sea garantizada auní cuando el protocolo interactivo anterior sea llevado & cabo repetidamente en paralelo. Este método es un método para establecer el número m de polinomios de múltiples variables fi, ... , fm usados como claves públicas, en un valor suficientemente más pequeño que el número n de variables. Por ejemplo, m y n se establecen de modo tal que 2m_n<<l (por ejemplo, cuando n=160 y m=80, 2"80«1) .
En los esquemas que basan su seguridad en la dificultad para resolver las ecuaciones simultáneas de múltiples variables, de orden múltiple, es difícil generar otra clave secreta s2 correspondiente a una clave pública pk aun cuando se dé la clave secreta Si y la clave pública pk correspondiente a la misma. Por esta razón, cuando se garantiza que existen dos o más claves secretas s para la clave pública pk, se puede hacer que la información que indica que "el comprobador usa s en el momento de la interactividad" , no sea conocida por el verificador aun cuando se lleve a cabo la interactividad aceptada en la verificación. Es decir, cuando se establece esta garantía, la seguridad contra los ataques activos puede ser garantizada aun cuando el protocolo interactivo se lleve a cabo repetidamente en paralelo.
Cuando una función F: Kn -> Km que incluye el número m de polinomios de orden múltiple con n variables (donde n > m) , se considera con referencia a la FIG. 29, el número de elementos del dominio de definición que no tienen la segunda pre-imagen es |K|m -1 a lo sumo. Por esta razón, cuando |K|m~n se establece para ser suficientemente pequeña, la probabilidad de la selección de elementos del dominio de definición que no tienen segunda pre-imagen puede resultar insignificante. Es decir, cuando el número m de polinomios de orden múltiple fi, fm, con n variables, se establece en un valor suficientemente más pequeño que el número n de variables, se puede garantizar que existen dos o más claves secretas para la clave pública pk. En consecuencia, aun cuando se lleve a cabo la interactividad aceptada en la verificación, se puede hacer que la información que indica que "el comprobador usa la clave s en el momento de la interactividad", no sea conocida por el verificador. Por lo tanto, se garantiza la seguridad contra los ataques activos aun cuando el protocolo interactivo sea llevado a cabo repetidamente en paralelo.
Como se descrine anteriormente, al imponer la condición de establecimiento en la cual, el número m de polinomios de ordenes múltiples fi, fm, con n variables, se establece en un valor suficientemente más pequeño que el número n de variables (donde n > m y pref riblemente 2m_n << 1), la seguridad puede ser garantizada cuando se lleva a cabo el protocolo interactivo, repetidamente en paralelo. 6-2 : Método Para Responder a las Interrogaciones Irregulares Aquí, se examinará un método para responder a una interrogación irregular. 6-2-1: Método de Respuesta Por el Comprobador Se considerará La probabilidad de que un verificador proporcione una interrogación falsa en el protocolo interactivo. Por ejemplo, en el caso del esquema de 3 pasos, el comprobador envía los mensajes (c0, Ci, c2) al verificador y el verificador envía una interrogación Ch=0 al comprobador. Después, una respuesta Rsp correspondiente a la interrogación Ch=0 se envía desde el comprobador al verificador. Hasta ahora, ha sido llevada a cabo la interactividad normal.
Después, se asumirá que el verificador emplaza una respuesta Rsp correspondiente a la interrogación Ch=l al comprobador. Si el comprobador envía la respuesta Rsp respondiendo a la interrogación Ch=l al verificador, en respuesta a la interrogación, la clave secreta puede ser filtrada al verificador. La filtración de la clave secreta puede ocurrir en la práctica. Por ejemplo, el verificador puede fingir enviar la interrogación Ch=0 en lugar de la interrogación Ch=l en el segundo paso, y puede emplazar además la respuesta Rsp respondiendo a la interrogación Ch=l . Por otro lado, el comprobador puede comprender mal que los bitios de la interrogación Ch enviada en el segundo paso se conviertan en bitios diferentes debido a un error de comunicación .
Por consiguiente, los inventores de la presente tecnología han proyectado, como un método para evitar la filtración de una clave secreta, un método para terminar la interactividad o reiniciar la interactividad desde el primer paso usando un nuevo número aleatorio, cuando el comprobador desafie una respuesta correspondiente a las interrogaciones Ch de dos o más métodos con respecto a un mensaje de una vez. Cuando se aplica este método, la clave secreta no se filtra aun cuando el verificador finja y desafie una respuesta correspondiente a las interrogaciones Ch de dos o más métodos. 6-2-2: Método de Respuesta por el Verificador Enseguida, se considerará la probabilidad de que un comprobador finja y emplace el reenvió de un interrogación Ch. por ejemplo asumiendo que el comprobador envía los mensajes (co, Ci, C2) a un verificador en el esquema de 3 pasos, el verificador envía la interrogación Ch=0 al comprobador, y entonces, el comprobador emplaza el reenvío de la interrogación Ch. Cuando el verificador vuelve a seleccionar de forma aleatoria Ch en respuesta a la interrogación, existe la probabilidad de que la interrogación Ch=l, la cual es diferente a la interrogación Ch=0 enviada previamente, sea seleccionada. En este caso, la interrogación Ch=l se envía desde el verificador al comprobador. Se asume que el comprobador puede enviar al verificador la respuesta Rsp correspondiente a la interrogación Ch=l.
En este caso, el comprobador puede responder a la interrogación Ch=l, pero puede no responder a la interrogación Ch=0. Es decir, la probabilidad de que el comprobador engañe al verificador es innegable. Por ejemplo, el comprobador puede emplazar el reenvío de la interrogación Ch al verificador, ya que el comprobador pierde la interrogación Ch. Por otro lado, el verificador puede considerar gue la interrogación enviada previamente está pérdida debido a un error de comunicación y vuelve a enviar la interrogación Ch en respuesta a la interrogación del comprobador. Entonces, cuando la interrogación Ch reenviada es diferente a la interrogación Ch enviada previamente, puede tener éxito la falsificación.
Como se entiende a partir de este ejemplo, el comprobador puede enfrentar un riesgo de falsificación ya que la interrogación Ch se selecciona de forma aleatoria. Por consiguiente, con el fin de no presentar un riesgo de falsificación, los inventores de la presente tecnología han proyectado un método para mejorar el protocolo interactivo al hacer que el verificador termine la interactividad o vuelva a enviar la interrogación que sea igual a la interrogación previa, en lugar de generar un número aleatorio cuando el comprobador vuelve a emplazar el envío de la interrogación Ch con respecto a un mensaje de un tiempo. Aplicar este método permite la eliminación del riesgo de la falsificación usando una interrogación para reenviar una interrogación Ch.
El método seguro para responder a una interrogación irregular ha sido descrito anteriormente. En la descripción anterior, la estructura básica de los 3 pasosa ha sido e emplificada. Sin embargo, la seguridad puede ser mejorada aplicando también la misma idea a la estructura de repetición en serie, una estructura de repetición en paralelo, o una estructura de tipo híbrida. Por supuesto, lo mismo se puede aplicar también a los algoritmos relacionados con los 5 pasos. 7: Ejemplo de la Configuración de los Componentes Físicos Cada uno de los algoritmos descritos anteriormente puede ser llevado a cabo usando, por ejemplo, la configuración de los componentes físicos del aparato para el procesamiento de información mostrada en la FIG. 28. Es decir, el procesamiento de cada algoritmo puede ser llevado a cabo al controlar los componentes físicos mostrados en la FIG. 28, usando programas de computadora. Adicionalmente , el modo de estos componentes físicos es arbitrario, y puede ser una computadora personal, una terminal de información móvil, tal como por ejemplo un teléfono móvil, un PHS o un PDA, una máquina de juegos, un circuito integrado IC con contacto o sin contacto, una tarjeta IC con contacto o sin contacto, o varios tipos de aparatos de información. Además, PHS es una abreviación para Sistema Telefónico Portátil Personal. También, PDA es una abreviación de Asistente Personal Digital.
Como se muestra en la FIG. 28, estos componentes físico incluyen principalmente una CPU 902, una ROM 904, una RAM 906, un adaptador 908 de interfaz a red, y un puente 910. Además, estos componentes físicos incluyen una línea 912 común de transmisiones externa, una interfaz 914, una unidad 916 de entrada, una unidad 918 de salida, una unidad 920 de almacenamiento, un lector 922, un puerto 924 de conexión, y una unidad 926 de comunicaciones. Además, CPU es una abreviación para Unidad Central de Procesamiento. También, ROM es una abreviatura para Memoria de Solo Lectura. Además, RAM es una abreviación para Memoria de Acceso Aleatorio.
La CPU 902 funciona como una unidad de procesamiento aritmético o una unidad de control, por ejemplo, y controla la operación completa o una parte de la operación de cada elemento estructural, con base en varios programas registrados en la ROM 904, la RAM 906, la unidad 920 de almacenamiento, o un medio 928 de registro removible. La ROM 904 es un medio para almacenar, por ejemplo, un programa a ser cargado en la CPU 902, o datos o los similares usados en una operación aritmética. La RAM 906 almacena de forma temporal o perpetua, por ejemplo, un programa a ser cargado en la CPU 902 o varios parámetros o los similares, cambiados de forma arbitraria durante la ejecución del programa.
Estos elementos estructurales se conectan entre si, por ejemplo, por medio del adaptador 908 de interfaz a red capaz de llevar a cabo la transmisión de alta velocidad de los datos. Por su parte, el adaptador 908 de interfaz a red se conecta a través del puente 910, a la linea 912 común de transmisión externa, cuya velocidad de transmisión de datos es relativamente baja, por ejemplo. Además, la unidad 916 de entrada es por ejemplo, un ratón, un teclado, un panel táctil, botones, interruptores, o palancas. También, la unidad 916 de entrada puede ser un control remoto que puede transmitir señales de control usando un haz infrarrojo u otras ondas de radio .
La unidad 918 de salida es por ejemplo, un dispositivo de visualización tal como una CRT, una LCD, una PDP, o una ELD, un dispositivo de salida de audio, tal como un altavoz, auriculares, una impresora, un teléfono móvil, o un fax, que pueda notificar al usuario de forma visual o auditiva sobre la información adquirida. Además, CRT es una abreviación de Tubo de Rayos Catódicos. LCD es una abreviación de Pantalla de Cristal Liquido. DPD es una abreviación para Panel de Pantalla de Plasma. También, ELD es una abreviación para Pantalla Electroluminiscente .
La unidad 920 de almacenamiento es un dispositivo para almacenar varios datos. La unidad 920 de almacenamiento es por ejemplo, un dispositivo de almacenamiento magnético, tal como una unidad de disco duro (HDD) , un dispositivo de almacenamiento de semiconductores, un dispositivo de almacenamiento óptico, o un dispositivo de almacenamiento magnetoóptico . HDD es una abreviación de Unidad de Disco Duro.
El lector 922 es un dispositivo que lee la información registrada en el medio de registro 928 removióle, tal como un disco magnético, un disco óptico, un disco magnetoóptico, o una memoria de semiconductores, o escribe la información en el medio 928 de registro removible. El medio 928 de registro removióle es por ejemplo, un medio de DVD, un medio de Blu-ray, un medio de HD-DVD, varios tipos de medios de almacenamiento de semiconductores, o los similares. Por supuesto, el medio 928 de registro removible puede ser, por ejemplo, un dispositivo electrónico o una tarjeta IC en la cual se instala una ficha de IC sin contacto. IC es la abreviación para Circuito Integrado.
El puerto 924 de conexión es un puerto, tal como un puerto USB, un puerto IEEE1394, un puerto SCSI, un puerto RS-232C, o un puerto para conectar un dispositivo 930 conectado externamente, tal como una terminal óptica de audio. El dispositivo 930 conectado externamente es por ejemplo, una grabadora de IC. Además, USB es la abreviación de Linea de Transmisión en Serie Universal. También, SCSI es la abreviación de Interfaz Estándar de Equipos Pequeños.
La unidad 926 de comunicación es un dispositivo de comunicación a ser conectado a una red 932, y es por ejemplo, una tarjeta de comunicaciones para una LAN por cable o inalámbrica, Bluetooth (marca registrada) , o USB, un encaminador óptico de comunicaciones, un encaminador ADSL, o un dispositivo para comunicaciones con contacto o sin contacto. La red 932 conectada a la unidad 926 de comunicaciones se compone de una red conectada por cable o conectada de forma inalámbrica, y es la Red Internacional, una LAN de uso doméstico, comunicaciones infrarrojas, comunicaciones por luz visible, radiodifusión, o comunicaciones por satélite, por ejemplo. Además, LAN es una abreviación de Red de Área Local. También, WUSV es una abreviación de USB Inalámbrica. Además, ADSL es una abreviación para Linea Digital Asimétrica de Abonado. 8 : Síntesis Por último, se describirán brevemente los contenidos técnicos de acuerdo con la modalidad de la tecnología actual. Los contenidos técnicos establecidos aquí pueden ser aplicados a varios aparatos para el procesamiento de información, tales como computadoras personales, teléfonos móviles, máquinas de juegos, terminales de información, aparatos de información, sistemas de navegación para automóviles, y los similares. Además, las funciones de los aparatos para el procesamiento de información, descritas a continuación pueden ser llevadas a cabo usando un solo aparato para el procesamiento de información o usando una pluralidad de aparatos para el procesamiento de información. Además, los medios de almacenamiento de datos y los medios de procesamiento aritmético los cuales se usan para llevar a cabo los procesos por los aparatos para el procesamiento de información descritos a continuación, pueden ser instalados en los aparatos para el procesamiento de información, o pueden ser instalados en los dispositivos conectados por medio de una red .
La configuración funcional del aparato para procesamiento de información anterior se obtiene como sigue. Por ejemplo, un aparato para procesamiento de información descrito en el punto (1) siguiente tiene la función de ejecutar un algoritmo relacionado con un esquema de autentificación de clave pública eficiente que basa su seguridad en la dificultad para resolver ecuaciones simultáneas de múltiples variables, de orden múltiple. (1) Un aparato para procesamiento de información, que incluye : una unidad de generación de mensajes, que genera un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento de un conjunto Kn; una unidad de suministro de mensajes, que suministra el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple, F, y los vectores y=(yi, ym) = (fi(s), fm(s) ); una unidad de generación de la información intermedia, que genera la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; un unidad de suministro de la información intermedia, que suministra la tercera información al verificador; y una unidad de suministro de respuestas, que suministra al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en las claves públicas, la primera información, la tercera información, y la información de repuesta, y en donde, el par de polinomios de múltiples variables de orden múltiple F incluye los polinomios f l r ... , fm definidos en un anillo R de una característica q y un orden qk y se establecen en una manera en que un polinomio G(xi, 2) definido como G(xi, x2) =F (xi+x2) -F (xi) -F (x2) con respecto a los vectores xi=(xiif · · · xir.) (donde 1=1,2) se configura como un término proporcional a (xii)q<z) (donde l=i=n, q(z)=qz, y l=z=k) . (2) El aparato para procesamiento de información de acuerdo con el punto (1), en donde, la unidad de generación de mensajes genera los mensajes de N veces (donde N<2), en donde, la unidad de suministro de mensajes proporciona al verificador los mensajes de N veces con interact ividad de una vez; en donde, la unidad de generación de la información intermedia genera la tercera información de las N veces con base en la primera información seleccionada por el verificador para los mensajes de las N veces y la segunda información de las N veces obtenida en el momento de la generación de los mensaj es , en donde la unidad de suministro de la información intermedia suministra al verificador la tercera información de las N veces con interactividad de una vez, y en donde, la unidad de suministro de respuestas proporciona al verificador la información de repuesta de las N veces correspondiente a los patrones de verificación seleccionados por el verificador para los mensajes respectivos de las N veces, con interactividad de una vez. (3) El aparato para procesamiento de información de acuerdo con el punto (2 ) , en donde, la unidad de generación de mensajes genera los mensajes de las N veces (donde N=2) y genera un valor de Hash a partir de los mensajes de las N veces, en donde la unidad de suministro de mensajes, suministra al verificador el valor de Hash, en donde, la unidad de generación de la información intermedia genera la tercera información de las N veces con base en la primera información seleccionada por el verificador para cada uno de los mensajes de las N veces y la segunda información de las N veces, obtenida en el momento de la generación de los mensajes, en donde, la unidad de suministro de la información intermedia, suministra al verificador la tercera información de las N veces con interactividad de una vez, y en donde, la unidad de suministro de respuestas suministra al verificador la información de respuesta de las N veces correspondiente al patrón de verificación seleccionado por el verificador para cada uno de los mensajes de las N veces y algunos de los mensajes no obtenidos aun durante la ejecución del cálculo preparado por adelantado para el patrón de verificación correspondiente a la información basada en las claves públicas y la información de respuesta, con interactividad de una vez. (4) Un aparato para procesamiento de información, que incluye : una unidad de almacenamiento de información, que almacena un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, ..., ym) = (fi(s), fm(s) ) ; una unidad de adquisición de mensajes, que adquiere un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una unidad de suministro de información, que suministra la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una unidad de adquisición de la información intermedia, que adquiere la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaj e ; una unidad de suministro de la información del patrón, que suministra al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; una unidad de adquisición de respuestas, que adquiere la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; y una unidad de verificación, que verifica si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde el par de polinomios de múltiples variables, de orden múltiple F y los vectores y, son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un anillo R de una característica qk y un orden qk y se establecen en una manera en que un polinomio G(xi, x2) definido como G(xi, 2) =F (??+?2) -F (xx) -F (x2) con respecto a los vectores xi=(xn, .·., in) (donde 1=1,2) se configura como un término proporcional a (xii)q<z) (donde l=i=n, q(z)=qz, y l=z=k) . (5) El aparato para procesamiento de información de acuerdo con el punto (4) en donde, la unidad de adquisición de mensajes adquiere los mensajes de N (donde N = 2) veces con interactividad de una vez, en donde, la unidad de suministro de información selecciona de forma aleatoria la primera información para cada uno de los mensajes de las N veces y suministra al comprobador la primera información seleccionada de las N veces con interactividad de una vez, en donde, la unidad de adquisición de la información intermedia adquiere la tercera información de las N veces generada por el comprobador con base en la primera información de las N veces y la segunda información de las N veces, obtenida en el momento de la generación de los mensajes de las N veces, en donde, la unidad de suministro de la información del patrón, selecciona el patrón de verificación para cada uno de los mensajes de las N veces y suministra al comprobador la información sobre los patrones de verificación seleccionados de las N veces con interactividad de una vez, en donde, la unidad de adquisición de respuestas adquiere la información de respuesta de las N veces correspondiente a los patrones de verificación seleccionados de las N veces desde el comprobador, con interactividad de una vez, y en donde la unidad de verificación determina que el comprobador almacena el vector s cuando la verificación tiene éxito para todos los mensajes de las N veces. (6) El aparato para procesamiento de información de acuerdo con el punto ( 5 ) , en donde, la unidad de adquisición de mensajes adquiere un valor de Hash generado a partir de los mensajes de las N veces (donde N = 2), en donde, la unidad de suministro de información selecciona de forma aleatoria la primera información para cada uno de los mensajes de las N veces y sumista al comprobador la primera información seleccionada de las N veces con interactividad de una vez, en donde, la unidad de adquisición de la información intermedia adquiere la tercera información de las N veces generada por el comprobador con base en la primera información de las N veces y la segunda información de las N veces obtenidas en el momento de la generación de los mensajes de las N veces, en donde, la unidad de suministro de la información del patrón selecciona el patrón de verificación para cada uno de los mensajes de las N veces y suministra al comprobador la información sobre los patrones de verificación seleccionados de las N veces con interactividad de una vez, en donde, la unidad de adquisición de respuestas adquiere, desde el comprobador, la información de respuesta correspondiente al patrón de verificación seleccionado y algunos de los mensajes no obtenidos aun durante la ejecución del cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información y la información de respuesta, y en donde, la unidad de verificación, verifica si el comprobador almacena o no el vector s basado en el valor de Hash, algunos de los mensajes, las claves públicas, y la información de respuesta y determina que el comprobador almacena el vector s, cuando la verificación tiene éxito para todos los mensajes de las N veces. (7) Un método para procesamiento de información, que incluye: generar un mensaje basado en un par de polinomios de múltiples variables, de orden múltiple F=(fi, .·., fm) y un vector s que es un elemento del conjunto Kn; suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, ym) = (fi(s), fm(s)); generar la tercera información basada en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; suministrar la tercera información al verificador; y suministrar al verificador la información de respuesta correspondiente al patrón de verificación, el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y, son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un anillo R de una característica q y un orden qL y se establecen en una manera en que polinomio G ( xi , X2) definido como G ( xi , 2) =F (X1+X2) -F ( xi ) -F (X2) con respecto a los vectores Xi= ( x i i f • • • r xin) ( donde 1=1,2) se configura como un término proporcional a ( x i i ) q ( z ) (donde l=i=n, q(z)=q y l<z=k) . (8) Un método para el procesamiento de información, que incluye: por un aparato para procesamiento de información que almacena un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, ym) = (fi(s), ... , fra (s) ) , adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s, el cual es un elemento de un conjunto Kn; suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaj e ; suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; y adguirir la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador; verificar si el comprobador almacena o no el vector s, con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de repuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y, son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, fm definido en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, 2) definido como G(xi, x2 ) =F ( ??+?2 ) -F ( x: ) -F (x2 ) con respecto a los vectores xi=(xii/ · · ·/ xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z) (donde l=i=n, q(z)=qz, y l<z=k) . (9) Un programa, que hace que una computadora lleve a cabo: una función de generación de mensajes, para generar un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(flr fm) y un vector s que es un elemento de un conjunto Kn; una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yif · · ·, ym) = (fi(s) , fm(s)); una función de generación de la información intermedia, para generar la información intermedia con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; una función de suministro de la información intermedia, para suministrar la tercera información al verificador; y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k > 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, fm definidos en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(xi, x2) =F (xi+x2) -F (xi) -F (x2) con respecto a los vectores Xi=(xn, ·· ·, in) (donde 1=1,2) se configura como un término proporcional a (xn)q(z) (donde l=i=n, q(z)=qz, y l=z=k) . (10) Un programa, que hace que una computadora lleve a cabo: una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, ··., fm) y los vectores y=(yi, · · ·, ym) = ( fi (s) , ... , fm (s) ) ; una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una función de adquisición de la información intermedia, para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaj e ; una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3 ) patrones de verificación; y una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; una función de verificación que verifica si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fx, .. . , fm definidos en un nanillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(xi, x2) =F (X1+X2) -F (xi) -F (X2) con respecto a los vectores xi=(xn, · ··, Xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l=i=n, q(z)=qz, y l<z<k) . (11) Un medio de registro legible por computadora, que tiene un programa registrado en el mismo, el programa, que hace que una computadora lleve a cabo: una función de generación de mensajes, para generar un mensaje basado en un par de polinomios de múltiples variables, de orden múltiple F=(fi, ..., fm) y un vector s, que es un elemento de un conjunto Kn; una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, yro) = (fi(s), fm(s)); una función de generación de la información intermedia, para genera la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; una función de suministro de la información intermedia, para suministrar la tercera información al verificador; y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente al patrón de verificación el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ..., fm definido en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, X2) definido como G(xi, x2 ) =F (Xi+x2 ) -F ( i ) -F ( x2 ) con respecto a los vectores Xi=(Xn, Xin) (donde 1=1,2) se configura como un término proporcional a (xn)qíz' (donde l=i=n, q(z)=qz, y l=z=k) . (12) Un medio de registro legible por computadora, que tiene un programa registrado en el mismo, el programa que hace que una computadora lleve a cabo: una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, ···, fm) Y los vectores y=(yi, ···/ ym) = (fi (s) , ... , fm(s) ) ; una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una función de adquisición de la información intermedia, para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensa e ; una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; y una función de verificación para verificar si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un nanillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(xx, x2) =F (??+?2) -F (xi) -F (x2) con respecto a los vectores Xi=(xii/ Xin) (donde 1=1,2) se configura como un término proporcional a (xn)qÍZ) (donde l=i=n, q(z)=qz, y l=z=k) . (13) El aparato de acuerdo con cualquiera de los puntos (1) a (6), en donde, m y n descritas anteriormente tienen una relación de m<n . (14) El aparato de acuerdo con el punto (13), en donde, m y n descritas anteriormente tienen una relación de 2m'n « 1.
Observaciones El algoritmo del comprobador P es un ejemplo de una unidad de generación de mensajes, una unidad de suministro de mensajes, una unidad de suministro de respuestas, una unidad de generación de la información interina, y una unidad de suministro de la información intermedia. Adicionalmente, el algoritmo del verificador V es un ejemplo de una unidad de almacenamiento de información, una unidad de adquisición de información, una unidad de suministro de información del patrón, una unidad de adquisición de la respuesta, una unidad de verificación, y una unidad de adquisición de la información intermedia.
Las modalidades preferidas de la presente invención han sido descritas anteriormente con referencia a los dibujos anexos, aunque por supuesto, la presente invención no está limitada a los ejemplos anteriores. Las personas experimentadas en la técnica pueden encontrar varias alternaciones y modificaciones dentro del ámbito de las reivindicaciones anexas, y se debe entender que estas están naturalmente dentro de ámbito técnico de la presente invención.
LISTA. DE SÍMBOLOS DE REFERENCIA Gen algoritmo de generación de la clave P algoritmo del comprobador V algoritmo del verificador Sig algoritmo de generación de la firma Ver algoritmo de verificación de la firma

Claims (12)

REIVINDICACIONES
1. Un aparato para procesamiento de información, caracterizado porque comprende: una unidad de generación de mensajes, que genera un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento de un conjunto Kn; una unidad de suministro de mensajes, que suministra el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, ... , ym) = (fi (s) , ... , fm(s) ) ; una unidad de generación de la información intermedia, que genera la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; una unidad de suministro de la información intermedia, que suministra la tercera información al verificador; y una unidad de suministro de respuestas, que suministra al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en las claves públicas, la primera información, la tercera información, y la información de repuesta, y en donde, el par de polinomios de múltiples variables de orden múltiple F incluye los polinomios f ± , . . . , fm definidos en un anillo R de una característica q y un orden qk y se establecen en una manera en que un polinomio G(xi, X2) definido como G(xi, x2 ) -F ( xi+x2) -F (xi ) -F ( x2) con respecto a los vectores Xi=(xiir · · ·/ xin) (donde 1=1,2) se configura como un término proporcional a (xn)q(z) (donde l<i<n, q(z)=q y l=z=k) .
2. El aparato para procesamiento de información de acuerdo con la reivindicación 1, caracterizado porque, la unidad de generación de mensajes genera los mensajes de N veces (donde N<2), en donde, la unidad de suministro de mensajes proporciona al verificador los mensajes de N veces con interactividad de una vez; en donde, la unidad de generación de la información intermedia genera la tercera información de las N veces con base en la primera información seleccionada por el verificador para los mensajes de las N veces y la segunda información de las N veces obtenida en el momento de la generación de los mensajes, en donde la unidad de suministro de la información intermedia suministra al verificador la tercera información de las N veces con interactividad de una vez, y en donde, la unidad de suministro de respuestas proporciona al verificador la información de repuesta de las N veces correspondiente al patrón de verificación seleccionado por el verificador para los mensajes respectivos de las N veces, con interactividad de una vez.
3. El aparato para procesamiento de información de acuerdo con la reivindicación 2, caracterizado porque, la unidad de generación de mensajes genera los mensajes de las N veces (donde N=2) y genera un valor de Hash a partir de los mensajes de las N veces, en donde la unidad de suministro de mensajes, suministra al verificador el valor de Hash, en donde, la unidad de generación de la información intermedia genera la tercera información de las N veces con base en la primera información seleccionada por el verificador para cada uno de los mensajes de las N veces y la segunda información de las N veces, obtenida en el momento de la generación de los mensajes, en donde, la unidad de suministro de la información intermedia, suministra al verificador la tercera información de las N veces con interactividad de una vez, y en donde, la unidad de suministro de respuestas, suministra al verificador la información de respuesta de las N veces correspondiente al patrón de verificación seleccionado por el verificador para cada uno de los mensajes de las N veces y algunos de los mensajes no obtenidos aun durante la ejecución del cálculo preparado por adelantado para el patrón de verificación correspondiente a la información basada en las claves públicas y la información de respuesta, con interactividad de una vez.
4. Un aparato para procesamiento de información, caracterizado porque comprende: una unidad de almacenamiento de información, que almacena un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, ym) = (fi(s), fm(s) ) ; una unidad de adquisición de mensajes, que adquiere un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una unidad de suministro de información, que suministra la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una unidad de adquisición de la información intermedia, que adquiere la tercera información generada por el comprobador con base en la primera información y la segunda información obtenida en el momento de la generación del mensaje; una unidad de suministro de la información del patrón, que suministra al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k > 3) patrones de verificación; una unidad de adquisición de respuestas, que adquiere la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; y una unidad de verificación, que verifica si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde el par de polinomios de múltiples variables, de orden múltiple F y los vectores y, son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un anillo R de una característica qk y un orden qk y se establecen en una manera en que un polinomio G(xi, x2) definido como G(xi, x2) =F (??+?2) -F ( i) -F (x2) con respecto a los vectores xi=(xii/ ···, xin) (donde 1=1,2) se configura como un término proporcional a (xii)q<2) (donde l=i=n, q(z)=qz, y l<z=k) .
5. El aparato para procesamiento de información de acuerdo con la reivindicación 4, caracterizado porque, la unidad de adquisición de mensajes adquiere los mensajes de N (donde N > 2) veces con interactividad de una vez, en donde, la unidad de suministro de información selecciona de forma aleatoria la primera información para cada uno de los mensajes de las N veces y suministra al comprobador la primera información seleccionada de las N veces con interactividad de una vez, en donde, la unidad de adquisición de la información intermedia adquiere la tercera información de las N veces generada por el comprobador con base en la primera información de las N veces y la segunda información de las N veces obtenida en el momento de la generación de los mensajes de las N veces, en donde, la unidad de suministro de la información del patrón, selecciona el patrón de verificación para cada uno de los mensajes de las N veces y suministra al comprobador la información sobre los patrones de verificación seleccionados de las N veces con interactividad de una vez, en donde, la unidad de adquisición de respuestas adquiere la información de respuesta de las N veces correspondiente a los patrones de verificación seleccionados de las N veces desde el comprobador, con interactividad de una vez, y en donde la unidad de verificación determina que el comprobador almacena el vector s cuando la verificación tiene éxito para todos los mensajes de las N veces.
6. El aparato para procesamiento de información de acuerdo con la reivindicación 5, caracterizado porque, la unidad de adquisición de mensajes adquiere un valor de Hash generado a partir de los mensajes de las N veces (donde N = 2), en donde, la unidad de suministro de información selecciona de forma aleatoria la primera información para cada uno de los mensajes de las N veces y sumista al comprobador la primera información seleccionada de las N veces con interactividad de una vez, en donde, la unidad de adquisición de la información intermedia adquiere la tercera información de las N veces generada por el comprobador con base en la primera información de las N veces y la segunda información de las N veces obtenida en el momento de la generación de los mensajes de las N veces, en donde, la unidad de suministro de la información del patrón selecciona el patrón de verificación para cada uno de los mensajes de las N veces y suministra al comprobador la información sobre los patrones de verificación seleccionados de las N veces con interactividad de una vez, en donde, la unidad de adquisición de respuestas adquiere, desde el comprobador, la información de respuesta correspondiente al patrón de verificación seleccionado y algunos de los mensajes no obtenidos aun durante la ejecución del cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información y la información de respuesta, y en donde, la unidad de verificación, verifica si el comprobador almacena o no el vector s basado en el valor de Hash, algunos de los mensajes, las claves públicas, y la información de respuesta y determina que el comprobador almacena el vector s, cuando la verificación tiene éxito para todos los mensajes de las N veces.
7. Un método para procesamiento de información, caracterizado porque comprende: generar un mensaje basado en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento del conjunto Kn; suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, ym) = (fi(s), fm ( s ) ) ; generar la tercera información basada en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; suministrar la tercera información al verificador; y suministrar al verificador la información de respuesta correspondiente al patrón de verificación, el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta basada en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un anillo R de una característica q y un orden qk y se establecen en una manera en que el polinomio G(xi, X2) definido como G(xi, X2) =F (xi+x2) -F (xi) -F (x2) con respecto a los vectores Xi= (xiir · · · ! Xin) (donde 1=1,2) se configura como un término proporcional a (xii)q<z) (donde l=i=n, q(z)=qz, y l=z=k) .
8. Un método para el procesamiento de información, caracterizado porque comprende: por un aparato para procesamiento de información que almacena un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, ym) = (fi(s), fm(s)), adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s, el cual es un elemento de un conjunto Kn; suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaj e ; suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; y adquirir la información de respuesta correspondiente al patrón de verificación seleccionado desde el comprobador; verificar si el comprobador almacena o no el vector s, con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de repuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y, son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un anillo R de una característica q y un orden qk y se establecen en una manera en que un polinomio G(xi, x?) definido como G(Xi, X2 ) =F ( X1+X2) -F (xi ) -F (x2 ) con respecto a los vectores i=( iif ···! xin) (donde 1—1,2) se configura como un término proporcional a (xn)q(z) (donde l=i=n, q(z)=qz, y l=z=k) .
9. Un programa, caracterizado porque, hace que una computadora lleve a cabo: una función de generación de mensajes, para generar un mensaje con base en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s que es un elemento de un conjunto Kn; una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, ym) = (fi(s), fm(s) ) ; una función de generación de la información intermedia, para generar la información intermedia con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; una función de suministro de la información intermedia, para suministrar la tercera información al verificador; y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente a un patrón de verificación el cual selecciona el verificador de entre k (donde k = 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta, con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios flr fm definidos en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, 2) definido como G(xi, X2 ) =F (X1+X2 ) -F ( xx ) -F ( X2 ) con respecto a los vectores xi=(xn, Xin) (donde 1=1,2) se configura como un término proporcional a (xn)q(z> (donde l=i=n, q(z)=qz, y l=z=k) .
10. Un programa, caracterizado porque, hace que una computadora lleve a cabo: una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi, · - ·, ym) = (fi (s) , ... , fm(s) ) ; una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una función de adquisición de la información intermedia, para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaje; una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; y una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; una función de verificación que verifica si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, fm definidos en un nanillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, X2) definido como G(xi, x2) =F (??+?2) -F (??) -F (x2) con respecto a los vectores xi=(xii/ ···/ xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l<i<n, q(z)=qz, y l=z<k) .
11. Un medio de registro legible por computadora, caracterizado porque, tiene un programa registrado en el mismo, el programa, que hace que una computadora lleve a cabo: una función de generación de mensajes, para generar un mensaje basado en un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y un vector s, que es un elemento de un conjunto Kn; una función de suministro de mensajes, para suministrar el mensaje a un verificador que almacena el par de polinomios de múltiples variables, de orden múltiple F y los vectores y=(yi, ···, ym) = (fi(s), ..., fm(s)),- una función de generación de la información intermedia, para genera la tercera información con base en la primera información seleccionada de forma aleatoria por el verificador y la segunda información obtenida en el momento de la generación del mensaje; una función de suministro de la información intermedia, para suministrar la tercera información al verificador; y una función de suministro de respuestas, para suministrar al verificador la información de respuesta correspondiente al patrón de verificación el cual selecciona el verificador de entre k (donde k > 2) patrones de verificación, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, fm definido en un anillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(x:, X2) = (xi+x2) -F (??) -F (x2) con respecto a los vectores xi=(xi: ·· ·! xin) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l=i=n, q(z)=qz, y l<z=k) .
12. Un medio de registro legible por computadora, caracterizado porque, tiene un programa registrado en el mismo, el programa que hace que una computadora lleve a cabo: una función de almacenamiento de información, para almacenar un par de polinomios de múltiples variables, de orden múltiple F=(fi, fm) y los vectores y=(yi/ ···/ ym) = (fi(s) , ... , fm(s) ) ; una función de adquisición de mensajes, para adquirir un mensaje generado con base en el par de polinomios de múltiples variables, de orden múltiple F y un vector s el cual es un elemento de un conjunto Kn; una función de suministro de información, para suministrar la primera información seleccionada de forma aleatoria al comprobador que suministra el mensaje; una función de adquisición de la información intermedia, para adquirir la tercera información generada por el comprobador con base en la primera información y la segunda información obtenidas en el momento de la generación del mensaj e ; una función de suministro de la información del patrón, para suministrar al comprobador la información sobre un patrón de verificación seleccionado de forma aleatoria de entre k (donde k = 3) patrones de verificación; una unidad de adquisición de respuestas, para adquirir la información de respuesta correspondiente al patrón de verificación seleccionado, desde el comprobador; y una función de verificación para verificar si el comprobador almacena o no el vector s con base en el mensaje, la primera información, la tercera información, el par de polinomios de múltiples variables, de orden múltiple F, y la información de respuesta, en donde, el vector s es una clave secreta, en donde, el par de polinomios de múltiples variables, de orden múltiple F y los vectores y son claves públicas, en donde, el mensaje es la información obtenida al ejecutar el cálculo preparado por adelantado para el patrón de verificación correspondiente a la información de respuesta con base en las claves públicas, la primera información, la tercera información, y la información de respuesta, y en donde, el par de polinomios de múltiples variables, de orden múltiple F incluye los polinomios fi, ... , fm definidos en un nanillo R de una característica q y un orden qk y se establece en una manera en que un polinomio G(xi, x2) definido como G(xi, x2) =F (??+?2) -F (xi) -F (x2) con respecto a los vectores Xi= (xn, in) (donde 1=1,2) se configura como un término proporcional a (xii)q(z> (donde l=i=n, q(z)=qz, y l=z=k) .
MX2014001451A 2011-08-12 2012-06-25 Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion. MX338025B (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011177071A JP5790287B2 (ja) 2011-08-12 2011-08-12 情報処理装置、情報処理方法、プログラム、及び記録媒体
PCT/JP2012/066125 WO2013024629A1 (ja) 2011-08-12 2012-06-25 情報処理装置、情報処理方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
MX2014001451A true MX2014001451A (es) 2014-02-27
MX338025B MX338025B (es) 2016-03-31

Family

ID=47714958

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2014001451A MX338025B (es) 2011-08-12 2012-06-25 Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion.

Country Status (12)

Country Link
US (1) US9178700B2 (es)
EP (1) EP2744146A4 (es)
JP (1) JP5790287B2 (es)
KR (1) KR101986392B1 (es)
CN (1) CN103718502B (es)
AU (1) AU2012296044B2 (es)
BR (1) BR112014002854A2 (es)
CA (1) CA2839690A1 (es)
MX (1) MX338025B (es)
RU (1) RU2603551C2 (es)
TW (1) TWI511517B (es)
WO (1) WO2013024629A1 (es)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014090372A (ja) * 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
US10484186B2 (en) * 2016-09-30 2019-11-19 Intel Corporation Cascading multivariate quadratic identification schemes for chain of trust
CN110995438B (zh) * 2019-10-24 2022-07-12 南京可信区块链与算法经济研究院有限公司 一种非交互零知识证明方法、系统及存储介质
CN111090842B (zh) * 2019-12-23 2022-04-26 上海源庐加佳信息科技有限公司 一种基于零知识证明的供应链金融客户贷款信息保护方法
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19513898B4 (de) * 1995-04-12 2006-11-30 Deutsche Telekom Ag Public-Key-Verfahren zur Verschlüsselung von Daten
CA2263588C (en) * 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
DE69920875T2 (de) * 1999-04-29 2005-10-27 Bull Cp8 Vorrichtung und Verfahren zum Berechnen einer digitalen Unterschrift
WO2001026278A1 (fr) * 1999-10-01 2001-04-12 France Telecom Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
KR101367101B1 (ko) * 2006-08-30 2014-02-25 삼성전자주식회사 다항식환을 이용한 키 합의 방법 및 이를 위한 장치
US9059838B2 (en) * 2007-03-30 2015-06-16 Verizon Patent And Licensing Inc. Encryption algorithm with randomized buffer
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和系统
US8019079B2 (en) * 2007-07-08 2011-09-13 Georgia Tech Research Corporation Asymmetric cryptosystem employing paraunitary matrices
JP4612027B2 (ja) * 2007-09-03 2011-01-12 村田機械株式会社 署名システム
US8837736B2 (en) * 2008-04-14 2014-09-16 Koninklijke Philips N.V. Method for distributing encryption means
JP5593850B2 (ja) * 2010-05-31 2014-09-24 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5594034B2 (ja) * 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
US8532289B2 (en) * 2010-08-16 2013-09-10 International Business Machines Corporation Fast computation of a single coefficient in an inverse polynomial
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption

Also Published As

Publication number Publication date
CA2839690A1 (en) 2013-02-21
JP5790287B2 (ja) 2015-10-07
EP2744146A4 (en) 2015-06-17
MX338025B (es) 2016-03-31
CN103718502B (zh) 2017-02-22
US20140153717A1 (en) 2014-06-05
JP2013042295A (ja) 2013-02-28
TW201308969A (zh) 2013-02-16
CN103718502A (zh) 2014-04-09
EP2744146A1 (en) 2014-06-18
BR112014002854A2 (pt) 2017-03-01
US9178700B2 (en) 2015-11-03
RU2014104084A (ru) 2015-08-10
KR20140046455A (ko) 2014-04-18
TWI511517B (zh) 2015-12-01
RU2603551C2 (ru) 2016-11-27
KR101986392B1 (ko) 2019-06-05
AU2012296044A1 (en) 2014-01-30
WO2013024629A1 (ja) 2013-02-21
AU2012296044B2 (en) 2016-02-25

Similar Documents

Publication Publication Date Title
MX2014001451A (es) Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion.
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
WO2013031533A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2013042315A (ja) 情報処理装置、及び情報処理方法
EP2753019A1 (en) Information processing device, signature generation device, information processing method, signature generation method, and program
EP2744147B1 (en) Information processing device, information processing method, program, and recording medium
EP2744148B1 (en) Information processing device, signature-provision method, signature-verification method, program, and recording medium
WO2013024627A1 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
Zhang et al. Improved quantum (t, n) threshold group signature
EP2752836A1 (en) Information processing device, signature generation device, signature verification device, information processing method, signature generation method, and signature verification method
US9184914B2 (en) Information processing apparatus and information processing method
EP2743902B1 (en) Information processing device and information processing method
WO2013031413A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024628A1 (ja) 情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
FG Grant or registration